Object(a.g)("a",{class:"list-group-item list-group-item-action",style:{borderLeft:"5px solid "+(!e.mergedAt&&e.closedAt?m.closed:e.draft?m.draft:m[t]),color:"white"},href:e.url},e.title," ",(e=>e.labels&&e.labels.map(e=>Object(a.g)(a.b,null," ",Object(a.g)("span",{class:"badge",style:{color:"black",backgroundColor:"#"+e.color}},e.name))))(e),Object(a.g)("br",null),Object(a.g)("span",{class:"text-muted"},h()(e.mergedAt?e.mergedAt:e.closedAt?e.closedAt:e.createdAt)));t.default=Object(l.b)(e=>({commits:Object(n.h)(e),mergedPulls:Object(n.n)(e),openedPulls:Object(n.p)(e),closedIssues:Object(n.g)(e),openedIssues:Object(n.o)(e),release:Object(n.m)(e),details:Object(n.i)(e)}),e=>Object(g.b)({fetchBootstrap:j.b,fetchCommits:n.b,fetchPulls:n.e,fetchReleases:n.f,fetchIssues:n.d},e))(Object(u.a)(async e=>{let{fetchBootstrap:t,fetchCommits:s,fetchPulls:a,fetchReleases:l,fetchIssues:c}=e;await t(),await l(),s(),a(),c()})(e=>{let{details:t,commits:s,release:l,mergedPulls:n,openedPulls:o,closedIssues:g,openedIssues:u}=e;return l.date&&Object(a.g)(c.a,null,Object(a.g)(i.a,{title:"Pulse - "+r.a.title,description:"Activity since last release"}),Object(a.g)("section",{id:"pulse"},Object(a.g)("div",{class:"content-section",style:{maxWidth:"100%"}},Object(a.g)("div",{class:"page-header"},Object(a.g)("h1",null,"Activity since the ",l.name," release"),Object(a.g)("p",{class:"text-muted"},"From ",Object(a.g)("b",null,l.date.toDateString())," to"," ",Object(a.g)("b",null,(new Date).toDateString()))),Object(a.g)("div",{class:"progress page-header",title:u.length+o.length+" open issues and pull requests",style:{backgroundColor:m.open}},Object(a.g)("div",{class:"progress-bar",title:n.length+" merged pull requests",style:{width:n.length/(n.length+o.length+g.length+u.length)*100+"%",backgroundColor:m.merged}}),Object(a.g)("div",{class:"progress-bar",title:g.length+" closed issues",style:{width:g.length/(n.length+o.length+g.length+u.length)*100+"%",backgroundColor:m.closed}})),Object(a.g)("div",{class:"page-header"},"Excluding merges, ",Object(a.g)("b",null,t.commits," commits")," from"," ",Object(a.g)("b",null,t.authors," authors")," have been pushed to master. On master, ",Object(a.g)("b",null,t.files," files")," have changed and there have been"," ",Object(a.g)("b",null,Object(a.g)("span",{class:"text-success"},Object(b.f)(t.additions))," ","additions")," ","and"," ",Object(a.g)("b",null,Object(a.g)("span",{class:"text-danger"},Object(b.f)(t.deletions))," ","deletions"),"."),Object(a.g)("div",{class:"row page-header"},Object(a.g)("div",{class:"col-md-6"},Object(a.g)("h1",{class:"page-header"},Object(a.g)("b",null,n.length)," pull requests merged"),Object(a.g)("ul",{class:"list-group"},n.map(e=>O(e,"merged")))),Object(a.g)("div",{class:"col-md-6"},Object(a.g)("h1",{class:"page-header"},Object(a.g)("b",null,o.length)," pull requests opened"),Object(a.g)("ul",{class:"list-group"},o.map(e=>O(e,"open"))))),Object(a.g)("div",{class:"row page-header"},Object(a.g)("div",{class:"col-md-6"},Object(a.g)("h1",{class:"page-header"},Object(a.g)("b",null,g.length)," issues closed"),Object(a.g)("ul",{class:"list-group"},g.map(e=>O(e,"closed")))),Object(a.g)("div",{class:"col-md-6"},Object(a.g)("h1",{class:"page-header"},Object(a.g)("b",null,u.length)," issues opened"),Object(a.g)("ul",{class:"list-group"},u.map(e=>O(e,"open"))))),Object(a.g)("h1",{class:"page-header"},Object(a.g)("b",null,s.length)," new commits"),Object(a.g)("ul",{class:"list-group"},s.map(e=>Object(a.g)("a",{class:"list-group-item list-group-item-action",style:{color:"white"},href:e.url},e.title,Object(a.g)("br",null),Object(a.g)("span",{class:"text-muted"},"by ",e.author.name)))))))}))}}]);
+//# sourceMappingURL=10.b70b6f6f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/10.86bd059c.chunk.js.map b/static/js/10.b70b6f6f.chunk.js.map
similarity index 99%
rename from static/js/10.86bd059c.chunk.js.map
rename to static/js/10.b70b6f6f.chunk.js.map
index e305a1274..af68c0030 100644
--- a/static/js/10.86bd059c.chunk.js.map
+++ b/static/js/10.b70b6f6f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","routes/pulse.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","typeMap","merged","open","draft","closed","buildPull","pull","type","borderLeft","mergedAt","closedAt","url","title","labels","map","label","Fragment","backgroundColor","buildLabels","ago","createdAt","connect","commits","getCommits","mergedPulls","getMergedPullsSinceLastRelease","openedPulls","getOpenedPullsSinceLastRelease","closedIssues","getClosedIssues","openedIssues","getOpenedIssues","release","getLatestRelease","details","getDetails","dispatch","bindActionCreators","fetchBootstrap","fetchCommits","fetchPulls","fetchReleases","fetchIssues","async","_ref2","Meta","hero","description","toDateString","authors","files","numberWithCommas","additions","deletions","commit","author"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,4CCoBEc,MA/BCA,IACdb,YAAA,OACES,MAAO,CACLK,QAAS,QACTC,MAAO,OACPC,OAAQ,SAGVhB,YAAA,OACES,MAAO,CACLK,QAAS,aACTG,cAAe,WAGjBjB,YAAA,OACES,MAAO,CACLS,WAAY,OACZC,YAAa,OACbC,UAAW,SACXC,WAAY,IACZC,MAAO,UAGTtB,YAAA,OAAKE,MAAM,SACTF,YAAA,KAAGE,MAAM,+BCQJqB,IA/BCC,GAAwBC,GAC/B,cAAcC,IACnBC,cACEC,QACAC,KAAKC,MAAQ,CACXC,SAAS,GAIbC,oBACE,MAAMC,EAAMT,EAAqBK,KAAKrB,OAClCyB,aAAeC,QACjBD,EAAIE,KAAK,IACPN,KAAKO,SAAS,CACZL,SAAS,KAIbF,KAAKO,SAAS,CACZL,SAAS,IAKfM,OAAO7B,GACL,MAAM,QAAEuB,GAAYF,KAAKC,MACzB,OAAOC,EAAU/B,YAACa,EAAO,MAAMb,YAACyB,EAAqBjB,M,iCCb3D,SAAS8B,EAAOC,EAAMC,EAASC,EAAMC,EAAMC,EAAQC,GAC/C,IAAIC,EAAMC,KAAKC,MAAMD,KAAKE,IAAIT,GAAQC,GACtC,OAAII,EACOC,GAAO,EAAIF,EAAS,MAAQE,EAAM,IAAMJ,EAAO,IACnDI,GAAO,EAAIH,EAAOG,EAAM,IAAMJ,EAAO,QAEhD,IAAIQ,EAAQ,CACR,CAAEC,IAAK,MAASC,MAAO,IAAOC,KAAM,SAAUV,KAAM,eAAgBC,OAAQ,eAC5E,CAAEO,IAAK,KAAUC,MAAO,KAASC,KAAM,OAAQV,KAAM,cAAeC,OAAQ,cAC5E,CAAEO,IAAK,OAAWC,MAAO,MAAUC,KAAM,MAAOV,KAAM,YAAaC,OAAQ,YAC3E,CAAEO,IAAK,QAAYC,MAAO,OAAWC,KAAM,OAAQV,KAAM,YAAaC,OAAQ,aAC9E,CAAEO,IAAK,QAAaC,MAAO,OAAYC,KAAM,QAASV,KAAM,aAAcC,OAAQ,eAEtFU,EAAOC,QAAU,SAAaC,GAC1B,IAAIhB,EAAOiB,KAAKC,MAAQF,EAAKG,UAE7B,GAAIZ,KAAKE,IAAIT,GAAQ,IACjB,MAAO,WACX,IAAK,IAAIoB,EAAI,EAAGA,EAAIV,EAAMW,OAAQD,IAC9B,GAAIb,KAAKE,IAAIT,GAAQU,EAAMU,GAAGT,IAC1B,OAAOZ,EAAOC,EAAMU,EAAMU,GAAGR,MAAOF,EAAMU,GAAGP,KAAMH,EAAMU,GAAGjB,KAAMO,EAAMU,GAAGhB,OAAQJ,EAAO,GAWlG,OAAOD,EAAOC,EAAM,QAAa,OAAQ,YAAa,YAAaA,EAAO,K,6EC/C9E,qIA0BA,MAAMsB,EAAU,CACdC,OAAQ,UACRC,KAAM,UACNC,MAAO,UACPC,OAAQ,WAiBJC,EAAYA,CAACC,EAAMC,IACvBpE,YAAA,KACEE,MAAM,yCACNO,MAAO,CACL4D,WAAa,eACVF,EAAKG,UAAYH,EAAKI,SACnBV,EAAQI,OACRE,EAAKH,MACLH,EAAQG,MACRH,EAAQO,IAEd9C,MAAO,SAETnB,KAAMgE,EAAKK,KAEVL,EAAKM,MAAM,IA7BIN,IAClBA,EAAKO,QACLP,EAAKO,OAAOC,IAAIC,GACd5E,YAAC6E,IAAQ,KACN,IACD7E,YAAA,QACEE,MAAM,QACNO,MAAO,CAAEa,MAAO,QAASwD,gBAAiB,IAAMF,EAAMtD,QAErDsD,EAAMxB,QAoBG2B,CAAYZ,GAC1BnE,YAAA,WACAA,YAAA,QAAME,MAAM,cACT8E,IACCb,EAAKG,SACDH,EAAKG,SACLH,EAAKI,SACLJ,EAAKI,SACLJ,EAAKc,aAsMFC,sBApCSpD,IAAK,CAC3BqD,QAASC,YAAWtD,GACpBuD,YAAaC,YAA+BxD,GAC5CyD,YAAaC,YAA+B1D,GAC5C2D,aAAcC,YAAgB5D,GAC9B6D,aAAcC,YAAgB9D,GAC9B+D,QAASC,YAAiBhE,GAC1BiE,QAASC,YAAWlE,KAGKmE,GACzBC,YACE,CACEC,mBACAC,iBACAC,eACAC,kBACAC,iBAEFN,GAiBWf,CAGb3D,YAjB2BiF,UAMtB,IAN6B,eAClCL,EAAc,aACdC,EAAY,WACZC,EAAU,cACVC,EAAa,YACbC,GACDE,QACON,UACAG,IACNF,IACAC,IACAE,KAMAhF,CAnMYlB,IAAA,IAAC,QACb0F,EAAO,QACPZ,EAAO,QACPU,EAAO,YACPR,EAAW,YACXE,EAAW,aACXE,EAAY,aACZE,GACDtF,EAAA,OACCwF,EAAQtC,MACNvD,YAACI,IAAM,KACLJ,YAAC0G,IAAI,CACHjC,MAAQ,WAAUkC,IAAKlC,MACvBmC,YAAY,gCAGd5G,YAAA,WAASC,GAAG,SACVD,YAAA,OACEE,MAAM,kBACNO,MAAO,CACLC,SAAU,SAGZV,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAI,sBAAoB6F,EAAQzC,KAAK,YACrCpD,YAAA,KAAGE,MAAM,cAAa,QACfF,YAAA,SAAI6F,EAAQtC,KAAKsD,gBAAmB,MAAI,IAC7C7G,YAAA,UAAI,IAAIwD,MAAOqD,kBAInB7G,YAAA,OACEE,MAAM,uBACNuE,MACEkB,EAAa/B,OAAS2B,EAAY3B,OAD5B,iCAGRnD,MAAO,CACLqE,gBAAiBjB,EAAQE,OAG3B/D,YAAA,OACEE,MAAM,eACNuE,MAAUY,EAAYzB,OAAd,wBACRnD,MAAO,CACLM,MACGsE,EAAYzB,QACVyB,EAAYzB,OACX2B,EAAY3B,OACZ6B,EAAa7B,OACb+B,EAAa/B,QACf,IACF,IACFkB,gBAAiBjB,EAAQC,UAG7B9D,YAAA,OACEE,MAAM,eACNuE,MAAUgB,EAAa7B,OAAf,iBACRnD,MAAO,CACLM,MACG0E,EAAa7B,QACXyB,EAAYzB,OACX2B,EAAY3B,OACZ6B,EAAa7B,OACb+B,EAAa/B,QACf,IACF,IACFkB,gBAAiBjB,EAAQI,WAK/BjE,YAAA,OAAKE,MAAM,eAAc,qBACLF,YAAA,SAAI+F,EAAQZ,QAAQ,YAAY,QAAM,IACxDnF,YAAA,SAAI+F,EAAQe,QAAQ,YAAY,2CACxB9G,YAAA,SAAI+F,EAAQgB,MAAM,UAAU,oCAC/B,IACL/G,YAAA,SACEA,YAAA,QAAME,MAAM,gBACT8G,YAAiBjB,EAAQkB,YACpB,IAAI,aAET,IAAI,MACL,IACJjH,YAAA,SACEA,YAAA,QAAME,MAAM,eACT8G,YAAiBjB,EAAQmB,YACpB,IAAI,aAEV,KAINlH,YAAA,OAAKE,MAAM,mBACTF,YAAA,OAAKE,MAAM,YACTF,YAAA,MAAIE,MAAM,eACRF,YAAA,SAAIqF,EAAYzB,QAAW,yBAE7B5D,YAAA,MAAIE,MAAM,cACPmF,EAAYV,IAAIR,GAAQD,EAAUC,EAAM,aAG7CnE,YAAA,OAAKE,MAAM,YACTF,YAAA,MAAIE,MAAM,eACRF,YAAA,SAAIuF,EAAY3B,QAAW,yBAE7B5D,YAAA,MAAIE,MAAM,cACPqF,EAAYZ,IAAIR,GAAQD,EAAUC,EAAM,YAK/CnE,YAAA,OAAKE,MAAM,mBACTF,YAAA,OAAKE,MAAM,YACTF,YAAA,MAAIE,MAAM,eACRF,YAAA,SAAIyF,EAAa7B,QAAW,kBAE9B5D,YAAA,MAAIE,MAAM,cACPuF,EAAad,IAAIR,GAAQD,EAAUC,EAAM,aAG9CnE,YAAA,OAAKE,MAAM,YACTF,YAAA,MAAIE,MAAM,eACRF,YAAA,SAAI2F,EAAa/B,QAAW,kBAE9B5D,YAAA,MAAIE,MAAM,cACPyF,EAAahB,IAAIR,GAAQD,EAAUC,EAAM,YAKhDnE,YAAA,MAAIE,MAAM,eACRF,YAAA,SAAImF,EAAQvB,QAAW,gBAEzB5D,YAAA,MAAIE,MAAM,cACPiF,EAAQR,IAAIwC,GAETnH,YAAA,KACEE,MAAM,yCACNO,MAAO,CACLa,MAAO,SAETnB,KAAMgH,EAAO3C,KAEZ2C,EAAO1C,MACRzE,YAAA,WACAA,YAAA,QAAME,MAAM,cAAa,MAAIiH,EAAOC,OAAOhE","file":"static/js/10.86bd059c.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import { h, Fragment } from 'preact'\nimport './home.scss'\nimport './pulse.scss'\nimport { connect } from 'react-redux'\nimport Layout from '../components/layout'\nimport {\n fetchCommits,\n fetchIssues,\n fetchPulls,\n fetchReleases,\n getClosedIssues,\n getCommits,\n getDetails,\n getLatestRelease,\n getMergedPullsSinceLastRelease,\n getOpenedIssues,\n getOpenedPullsSinceLastRelease\n} from '../modules/git'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport { numberWithCommas } from '../util'\nimport ago from 's-ago'\nimport { fetchBootstrap } from '../modules/bootstrap'\n\nconst typeMap = {\n merged: '#6f42c1',\n open: '#2cbe4e',\n draft: '#c6c6c6',\n closed: '#cb2431'\n}\n\nconst buildLabels = pull =>\n pull.labels &&\n pull.labels.map(label => (\n \n {' '}\n \n {label.name}\n \n \n ))\n\nconst buildPull = (pull, type) => (\n \n {pull.title} {buildLabels(pull)}\n \n \n {ago(\n pull.mergedAt\n ? pull.mergedAt\n : pull.closedAt\n ? pull.closedAt\n : pull.createdAt\n )}\n \n \n)\n\nconst Pulse = ({\n details,\n commits,\n release,\n mergedPulls,\n openedPulls,\n closedIssues,\n openedIssues\n}) =>\n release.date && (\n \n \n\n \n \n \n\n
\n\n \n\n
\n
\n \n
\n {mergedPulls.map(pull => buildPull(pull, 'merged'))}\n \n
\n
\n \n
\n {openedPulls.map(pull => buildPull(pull, 'open'))}\n \n
\n
\n\n
\n
\n \n
\n {closedIssues.map(pull => buildPull(pull, 'closed'))}\n \n
\n
\n \n
\n {openedIssues.map(pull => buildPull(pull, 'open'))}\n \n
\n
\n\n \n
\n
\n \n \n )\n\nconst mapStateToProps = state => ({\n commits: getCommits(state),\n mergedPulls: getMergedPullsSinceLastRelease(state),\n openedPulls: getOpenedPullsSinceLastRelease(state),\n closedIssues: getClosedIssues(state),\n openedIssues: getOpenedIssues(state),\n release: getLatestRelease(state),\n details: getDetails(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchCommits,\n fetchPulls,\n fetchReleases,\n fetchIssues\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchCommits,\n fetchPulls,\n fetchReleases,\n fetchIssues\n}) => {\n await fetchBootstrap()\n await fetchReleases()\n fetchCommits()\n fetchPulls()\n fetchIssues()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Pulse))\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","routes/pulse.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","typeMap","merged","open","draft","closed","buildPull","pull","type","borderLeft","mergedAt","closedAt","url","title","labels","map","label","Fragment","backgroundColor","buildLabels","ago","createdAt","connect","commits","getCommits","mergedPulls","getMergedPullsSinceLastRelease","openedPulls","getOpenedPullsSinceLastRelease","closedIssues","getClosedIssues","openedIssues","getOpenedIssues","release","getLatestRelease","details","getDetails","dispatch","bindActionCreators","fetchBootstrap","fetchCommits","fetchPulls","fetchReleases","fetchIssues","async","_ref2","Meta","hero","description","toDateString","authors","files","numberWithCommas","additions","deletions","commit","author"],"mappings":"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","file":"static/js/10.b70b6f6f.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import { h, Fragment } from 'preact'\nimport './home.scss'\nimport './pulse.scss'\nimport { connect } from 'react-redux'\nimport Layout from '../components/layout'\nimport {\n fetchCommits,\n fetchIssues,\n fetchPulls,\n fetchReleases,\n getClosedIssues,\n getCommits,\n getDetails,\n getLatestRelease,\n getMergedPullsSinceLastRelease,\n getOpenedIssues,\n getOpenedPullsSinceLastRelease\n} from '../modules/git'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport { numberWithCommas } from '../util'\nimport ago from 's-ago'\nimport { fetchBootstrap } from '../modules/bootstrap'\n\nconst typeMap = {\n merged: '#6f42c1',\n open: '#2cbe4e',\n draft: '#c6c6c6',\n closed: '#cb2431'\n}\n\nconst buildLabels = pull =>\n pull.labels &&\n pull.labels.map(label => (\n \n {' '}\n \n {label.name}\n \n \n ))\n\nconst buildPull = (pull, type) => (\n \n {pull.title} {buildLabels(pull)}\n \n \n {ago(\n pull.mergedAt\n ? pull.mergedAt\n : pull.closedAt\n ? pull.closedAt\n : pull.createdAt\n )}\n \n \n)\n\nconst Pulse = ({\n details,\n commits,\n release,\n mergedPulls,\n openedPulls,\n closedIssues,\n openedIssues\n}) =>\n release.date && (\n \n \n\n \n \n \n\n
\n\n \n\n
\n
\n \n
\n {mergedPulls.map(pull => buildPull(pull, 'merged'))}\n \n
\n
\n \n
\n {openedPulls.map(pull => buildPull(pull, 'open'))}\n \n
\n
\n\n
\n
\n \n
\n {closedIssues.map(pull => buildPull(pull, 'closed'))}\n \n
\n
\n \n
\n {openedIssues.map(pull => buildPull(pull, 'open'))}\n \n
\n
\n\n \n
\n
\n \n \n )\n\nconst mapStateToProps = state => ({\n commits: getCommits(state),\n mergedPulls: getMergedPullsSinceLastRelease(state),\n openedPulls: getOpenedPullsSinceLastRelease(state),\n closedIssues: getClosedIssues(state),\n openedIssues: getOpenedIssues(state),\n release: getLatestRelease(state),\n details: getDetails(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchCommits,\n fetchPulls,\n fetchReleases,\n fetchIssues\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchCommits,\n fetchPulls,\n fetchReleases,\n fetchIssues\n}) => {\n await fetchBootstrap()\n await fetchReleases()\n fetchCommits()\n fetchPulls()\n fetchIssues()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Pulse))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/100.93a0e944.chunk.js b/static/js/100.b28c9844.chunk.js
similarity index 98%
rename from static/js/100.93a0e944.chunk.js
rename to static/js/100.b28c9844.chunk.js
index fe921995d..d869622d7 100644
--- a/static/js/100.93a0e944.chunk.js
+++ b/static/js/100.b28c9844.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[100],{375:function(e,n){e.exports={title:"1.5.28 Release",description:"BA gamble count and duels chat commands, beginner hot cold clues, and 2010 cross sprites",author:"Adam",body:'The chat commands plugin now includes the !gc
and !duels
commands which\nshows your BA high gamble count and duel arena wins and losses with streak,\nrespectively. You must first win or lose a duel for the client to begin tracking\nthe counts after the update, however the gamble count will work immediately.
\n \n
\nThe clue plugin now supports beginner hot cold clues (this is the last of the\nupdates from the clue update from April)
\n
\nThe interface styles plugin now has an option to replace the left click cross\nsprites with the ones from RuneScape
\n
\nThe grand exchange plugin now has an option to show the total amount of the\noffers in the grand exchange:
\n
\nThe prayer plugin now can draw a "HD" prayer bar which looks more consistent\nwith the HD health bar option of the interface styles plugin.
\n
\nThe metronome plugin now works even when game sounds are muted. If you had the\nmetronome plugin on with the game sounds muted prior to the update, you probably\nwill want to turn it off now.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map \nAdd snakeskin gear to the skill calculator \nAdd Larran\'s chest to the loot tracker \nFix world map Hosidius rare tree icons and Kourend agility obstacle placement \nAdd fishing spots south of the farming guild to the fishing plugin \nThe Wintertodt plugin now has an option to send a notification before the\nround start \nFix Father Jean\'s location for the easy cryptic clue \nFix the alignment of some of the icons on the 2005 interface style to more\nclosely resemble the 2005 gameframe \nThe cooking plugin now tracks burning stew \nAdd option to the world hopper plugin to hide the Hop-to menu option on\nfriends and clan members \nThe cursor plugin now has a dragon dagger (p) cursor \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 28 contributors this release!
\nAdam (4):\n api: rename unknownSoundValues1 -> queuedSoundEffectLoops\n config manager: treat null and empty string equally in setDefaultConfiguration\n client: fix behavior of walking where there are no tiles\n timers plugin: fix teleblock timers\n\nDamen (1):\n worldmap: fix shield of arrav start points\n\nDaniel (2):\n Add snakeskin gear to skill calculator (#9172)\n Added Larran\'s chest to loot tracker (#9209)\n\nDaniel Serpa (1):\n ge plugin: add grand exchange total value\n\nEvaldas Lavrinovi\u010dius (2):\n Fix location of Kourend Agility obstacle on world map (#9203)\n Fix WC world map icons around Hosidius area (#9205)\n\nHermetism (1):\n npchighlight: Do not render \'null\' names (#9093)\n\nHydrox6 (2):\n fishing: add missing spots near farming guild\n prayer: add HD prayer bar\n\nJacob McElroy (1):\n chat commands: add ba high gamble command\n\nJavaBlah (1):\n cursors plugin: add dragon dagger (p) cursor\n\nJordan Atwood (8):\n EmoteClue: Add null checks for stashUnit\n npc indicators: Fix long respawn timer bug\n HotColdClue: Refactor to use enums for temperatures\n HotColdClue: Add hot-cold solver class\n cluescrolls: Add beginner hot-cold clues\n HotColdTemperature: Fix warm-but-colder temperature bug\n HotColdClue: Improve behavior on visibly shaking location\n HotColdClue: Clear final location on clue reset\n\nKusha Gharahi (1):\n wintertodt plugin: add round start notification\n\nLotto (1):\n interface styles: add RuneScape cross sprites option\n\nMax Weber (1):\n cache/FrameDumperTest: Don\'t get the wrong framemaps for a frame\n\nRice Boxer (1):\n Fix Father Jean\'s coordinates in easy cryptic clue\n\nRobert Alexander (1):\n chat commands: add duel arena chat command\n\nSander de Groot (2):\n Adjust alignment of icons in fixed 2005 interface style and fix inventory icon\n Add Barbarian Assault quick-start option to menu entry swapper\n\nScapeRune (1):\n worldmap: Fix MEP2 and Shadows of the Storm quest tooltips (#9166)\n\nTwiglet1022 (1):\n mining plugin: only show timers on same level in motherlode mine\n\nWilliam Collishaw (2):\n Replace use of deprecated Guava Files write method\n Clean up some instances of double white space\n\nWooxSolo (1):\n Add sounds to devtools\n\nitscalvinwang (1):\n Add support for burning stews to Cooking plugin (#9196) (#9202)\n\nkristo naeris (1):\n world hopper: add option to disable Hop-to menu option\n\nltvill (1):\n Change default examine chat color to green\n\npsikoi (2):\n Add ENTER/ESC key events for screenmarker saving\n Add hover preview to screen markers\n\ntanlines (1):\n Add item charges for baskets and sacks (#9212)\n\ntrimbe (2):\n api: add method to play sound effects while volume is muted\n metronome: play sounds while volume is muted\n\nwinterdaze (1):\n Add tooltips to DevTools buttons (#9224)\n\nxdesr (1):\n Fix typos in Falo the Bard clues (comma, favourite) (#9185)\n
\n',image:"/img/blog/1.5.28-Release/gc.png"}}}]);
-//# sourceMappingURL=100.93a0e944.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[100],{376:function(e,n){e.exports={title:"1.5.28 Release",description:"BA gamble count and duels chat commands, beginner hot cold clues, and 2010 cross sprites",author:"Adam",body:'The chat commands plugin now includes the !gc
and !duels
commands which\nshows your BA high gamble count and duel arena wins and losses with streak,\nrespectively. You must first win or lose a duel for the client to begin tracking\nthe counts after the update, however the gamble count will work immediately.
\n \n
\nThe clue plugin now supports beginner hot cold clues (this is the last of the\nupdates from the clue update from April)
\n
\nThe interface styles plugin now has an option to replace the left click cross\nsprites with the ones from RuneScape
\n
\nThe grand exchange plugin now has an option to show the total amount of the\noffers in the grand exchange:
\n
\nThe prayer plugin now can draw a "HD" prayer bar which looks more consistent\nwith the HD health bar option of the interface styles plugin.
\n
\nThe metronome plugin now works even when game sounds are muted. If you had the\nmetronome plugin on with the game sounds muted prior to the update, you probably\nwill want to turn it off now.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map \nAdd snakeskin gear to the skill calculator \nAdd Larran\'s chest to the loot tracker \nFix world map Hosidius rare tree icons and Kourend agility obstacle placement \nAdd fishing spots south of the farming guild to the fishing plugin \nThe Wintertodt plugin now has an option to send a notification before the\nround start \nFix Father Jean\'s location for the easy cryptic clue \nFix the alignment of some of the icons on the 2005 interface style to more\nclosely resemble the 2005 gameframe \nThe cooking plugin now tracks burning stew \nAdd option to the world hopper plugin to hide the Hop-to menu option on\nfriends and clan members \nThe cursor plugin now has a dragon dagger (p) cursor \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 28 contributors this release!
\nAdam (4):\n api: rename unknownSoundValues1 -> queuedSoundEffectLoops\n config manager: treat null and empty string equally in setDefaultConfiguration\n client: fix behavior of walking where there are no tiles\n timers plugin: fix teleblock timers\n\nDamen (1):\n worldmap: fix shield of arrav start points\n\nDaniel (2):\n Add snakeskin gear to skill calculator (#9172)\n Added Larran\'s chest to loot tracker (#9209)\n\nDaniel Serpa (1):\n ge plugin: add grand exchange total value\n\nEvaldas Lavrinovi\u010dius (2):\n Fix location of Kourend Agility obstacle on world map (#9203)\n Fix WC world map icons around Hosidius area (#9205)\n\nHermetism (1):\n npchighlight: Do not render \'null\' names (#9093)\n\nHydrox6 (2):\n fishing: add missing spots near farming guild\n prayer: add HD prayer bar\n\nJacob McElroy (1):\n chat commands: add ba high gamble command\n\nJavaBlah (1):\n cursors plugin: add dragon dagger (p) cursor\n\nJordan Atwood (8):\n EmoteClue: Add null checks for stashUnit\n npc indicators: Fix long respawn timer bug\n HotColdClue: Refactor to use enums for temperatures\n HotColdClue: Add hot-cold solver class\n cluescrolls: Add beginner hot-cold clues\n HotColdTemperature: Fix warm-but-colder temperature bug\n HotColdClue: Improve behavior on visibly shaking location\n HotColdClue: Clear final location on clue reset\n\nKusha Gharahi (1):\n wintertodt plugin: add round start notification\n\nLotto (1):\n interface styles: add RuneScape cross sprites option\n\nMax Weber (1):\n cache/FrameDumperTest: Don\'t get the wrong framemaps for a frame\n\nRice Boxer (1):\n Fix Father Jean\'s coordinates in easy cryptic clue\n\nRobert Alexander (1):\n chat commands: add duel arena chat command\n\nSander de Groot (2):\n Adjust alignment of icons in fixed 2005 interface style and fix inventory icon\n Add Barbarian Assault quick-start option to menu entry swapper\n\nScapeRune (1):\n worldmap: Fix MEP2 and Shadows of the Storm quest tooltips (#9166)\n\nTwiglet1022 (1):\n mining plugin: only show timers on same level in motherlode mine\n\nWilliam Collishaw (2):\n Replace use of deprecated Guava Files write method\n Clean up some instances of double white space\n\nWooxSolo (1):\n Add sounds to devtools\n\nitscalvinwang (1):\n Add support for burning stews to Cooking plugin (#9196) (#9202)\n\nkristo naeris (1):\n world hopper: add option to disable Hop-to menu option\n\nltvill (1):\n Change default examine chat color to green\n\npsikoi (2):\n Add ENTER/ESC key events for screenmarker saving\n Add hover preview to screen markers\n\ntanlines (1):\n Add item charges for baskets and sacks (#9212)\n\ntrimbe (2):\n api: add method to play sound effects while volume is muted\n metronome: play sounds while volume is muted\n\nwinterdaze (1):\n Add tooltips to DevTools buttons (#9224)\n\nxdesr (1):\n Fix typos in Falo the Bard clues (comma, favourite) (#9185)\n
\n',image:"/img/blog/1.5.28-Release/gc.png"}}}]);
+//# sourceMappingURL=100.b28c9844.chunk.js.map
\ No newline at end of file
diff --git a/static/js/100.93a0e944.chunk.js.map b/static/js/100.b28c9844.chunk.js.map
similarity index 98%
rename from static/js/100.93a0e944.chunk.js.map
rename to static/js/100.b28c9844.chunk.js.map
index 1f7e5126c..1c77373a5 100644
--- a/static/js/100.93a0e944.chunk.js.map
+++ b/static/js/100.b28c9844.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-07-04-10-00-1.5.28-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2FAA2F,OAAS,OAAO,KAAO,gjLAA4jL,MAAQ","file":"static/js/100.93a0e944.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.28 Release\",\"description\":\"BA gamble count and duels chat commands, beginner hot cold clues, and 2010 cross sprites\",\"author\":\"Adam\",\"body\":\"The chat commands plugin now includes the !gc
and !duels
commands which\\nshows your BA high gamble count and duel arena wins and losses with streak,\\nrespectively. You must first win or lose a duel for the client to begin tracking\\nthe counts after the update, however the gamble count will work immediately.
\\n \\n
\\nThe clue plugin now supports beginner hot cold clues (this is the last of the\\nupdates from the clue update from April)
\\n
\\nThe interface styles plugin now has an option to replace the left click cross\\nsprites with the ones from RuneScape
\\n
\\nThe grand exchange plugin now has an option to show the total amount of the\\noffers in the grand exchange:
\\n
\\nThe prayer plugin now can draw a "HD" prayer bar which looks more consistent\\nwith the HD health bar option of the interface styles plugin.
\\n
\\nThe metronome plugin now works even when game sounds are muted. If you had the\\nmetronome plugin on with the game sounds muted prior to the update, you probably\\nwill want to turn it off now.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map \\nAdd snakeskin gear to the skill calculator \\nAdd Larran's chest to the loot tracker \\nFix world map Hosidius rare tree icons and Kourend agility obstacle placement \\nAdd fishing spots south of the farming guild to the fishing plugin \\nThe Wintertodt plugin now has an option to send a notification before the\\nround start \\nFix Father Jean's location for the easy cryptic clue \\nFix the alignment of some of the icons on the 2005 interface style to more\\nclosely resemble the 2005 gameframe \\nThe cooking plugin now tracks burning stew \\nAdd option to the world hopper plugin to hide the Hop-to menu option on\\nfriends and clan members \\nThe cursor plugin now has a dragon dagger (p) cursor \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 28 contributors this release!
\\nAdam (4):\\n api: rename unknownSoundValues1 -> queuedSoundEffectLoops\\n config manager: treat null and empty string equally in setDefaultConfiguration\\n client: fix behavior of walking where there are no tiles\\n timers plugin: fix teleblock timers\\n\\nDamen (1):\\n worldmap: fix shield of arrav start points\\n\\nDaniel (2):\\n Add snakeskin gear to skill calculator (#9172)\\n Added Larran's chest to loot tracker (#9209)\\n\\nDaniel Serpa (1):\\n ge plugin: add grand exchange total value\\n\\nEvaldas Lavrinovičius (2):\\n Fix location of Kourend Agility obstacle on world map (#9203)\\n Fix WC world map icons around Hosidius area (#9205)\\n\\nHermetism (1):\\n npchighlight: Do not render 'null' names (#9093)\\n\\nHydrox6 (2):\\n fishing: add missing spots near farming guild\\n prayer: add HD prayer bar\\n\\nJacob McElroy (1):\\n chat commands: add ba high gamble command\\n\\nJavaBlah (1):\\n cursors plugin: add dragon dagger (p) cursor\\n\\nJordan Atwood (8):\\n EmoteClue: Add null checks for stashUnit\\n npc indicators: Fix long respawn timer bug\\n HotColdClue: Refactor to use enums for temperatures\\n HotColdClue: Add hot-cold solver class\\n cluescrolls: Add beginner hot-cold clues\\n HotColdTemperature: Fix warm-but-colder temperature bug\\n HotColdClue: Improve behavior on visibly shaking location\\n HotColdClue: Clear final location on clue reset\\n\\nKusha Gharahi (1):\\n wintertodt plugin: add round start notification\\n\\nLotto (1):\\n interface styles: add RuneScape cross sprites option\\n\\nMax Weber (1):\\n cache/FrameDumperTest: Don't get the wrong framemaps for a frame\\n\\nRice Boxer (1):\\n Fix Father Jean's coordinates in easy cryptic clue\\n\\nRobert Alexander (1):\\n chat commands: add duel arena chat command\\n\\nSander de Groot (2):\\n Adjust alignment of icons in fixed 2005 interface style and fix inventory icon\\n Add Barbarian Assault quick-start option to menu entry swapper\\n\\nScapeRune (1):\\n worldmap: Fix MEP2 and Shadows of the Storm quest tooltips (#9166)\\n\\nTwiglet1022 (1):\\n mining plugin: only show timers on same level in motherlode mine\\n\\nWilliam Collishaw (2):\\n Replace use of deprecated Guava Files write method\\n Clean up some instances of double white space\\n\\nWooxSolo (1):\\n Add sounds to devtools\\n\\nitscalvinwang (1):\\n Add support for burning stews to Cooking plugin (#9196) (#9202)\\n\\nkristo naeris (1):\\n world hopper: add option to disable Hop-to menu option\\n\\nltvill (1):\\n Change default examine chat color to green\\n\\npsikoi (2):\\n Add ENTER/ESC key events for screenmarker saving\\n Add hover preview to screen markers\\n\\ntanlines (1):\\n Add item charges for baskets and sacks (#9212)\\n\\ntrimbe (2):\\n api: add method to play sound effects while volume is muted\\n metronome: play sounds while volume is muted\\n\\nwinterdaze (1):\\n Add tooltips to DevTools buttons (#9224)\\n\\nxdesr (1):\\n Fix typos in Falo the Bard clues (comma, favourite) (#9185)\\n
\\n\",\"image\":\"/img/blog/1.5.28-Release/gc.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-07-04-10-00-1.5.28-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2FAA2F,OAAS,OAAO,KAAO,gjLAA4jL,MAAQ","file":"static/js/100.b28c9844.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.28 Release\",\"description\":\"BA gamble count and duels chat commands, beginner hot cold clues, and 2010 cross sprites\",\"author\":\"Adam\",\"body\":\"The chat commands plugin now includes the !gc
and !duels
commands which\\nshows your BA high gamble count and duel arena wins and losses with streak,\\nrespectively. You must first win or lose a duel for the client to begin tracking\\nthe counts after the update, however the gamble count will work immediately.
\\n \\n
\\nThe clue plugin now supports beginner hot cold clues (this is the last of the\\nupdates from the clue update from April)
\\n
\\nThe interface styles plugin now has an option to replace the left click cross\\nsprites with the ones from RuneScape
\\n
\\nThe grand exchange plugin now has an option to show the total amount of the\\noffers in the grand exchange:
\\n
\\nThe prayer plugin now can draw a "HD" prayer bar which looks more consistent\\nwith the HD health bar option of the interface styles plugin.
\\n
\\nThe metronome plugin now works even when game sounds are muted. If you had the\\nmetronome plugin on with the game sounds muted prior to the update, you probably\\nwill want to turn it off now.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map \\nAdd snakeskin gear to the skill calculator \\nAdd Larran's chest to the loot tracker \\nFix world map Hosidius rare tree icons and Kourend agility obstacle placement \\nAdd fishing spots south of the farming guild to the fishing plugin \\nThe Wintertodt plugin now has an option to send a notification before the\\nround start \\nFix Father Jean's location for the easy cryptic clue \\nFix the alignment of some of the icons on the 2005 interface style to more\\nclosely resemble the 2005 gameframe \\nThe cooking plugin now tracks burning stew \\nAdd option to the world hopper plugin to hide the Hop-to menu option on\\nfriends and clan members \\nThe cursor plugin now has a dragon dagger (p) cursor \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 28 contributors this release!
\\nAdam (4):\\n api: rename unknownSoundValues1 -> queuedSoundEffectLoops\\n config manager: treat null and empty string equally in setDefaultConfiguration\\n client: fix behavior of walking where there are no tiles\\n timers plugin: fix teleblock timers\\n\\nDamen (1):\\n worldmap: fix shield of arrav start points\\n\\nDaniel (2):\\n Add snakeskin gear to skill calculator (#9172)\\n Added Larran's chest to loot tracker (#9209)\\n\\nDaniel Serpa (1):\\n ge plugin: add grand exchange total value\\n\\nEvaldas Lavrinovičius (2):\\n Fix location of Kourend Agility obstacle on world map (#9203)\\n Fix WC world map icons around Hosidius area (#9205)\\n\\nHermetism (1):\\n npchighlight: Do not render 'null' names (#9093)\\n\\nHydrox6 (2):\\n fishing: add missing spots near farming guild\\n prayer: add HD prayer bar\\n\\nJacob McElroy (1):\\n chat commands: add ba high gamble command\\n\\nJavaBlah (1):\\n cursors plugin: add dragon dagger (p) cursor\\n\\nJordan Atwood (8):\\n EmoteClue: Add null checks for stashUnit\\n npc indicators: Fix long respawn timer bug\\n HotColdClue: Refactor to use enums for temperatures\\n HotColdClue: Add hot-cold solver class\\n cluescrolls: Add beginner hot-cold clues\\n HotColdTemperature: Fix warm-but-colder temperature bug\\n HotColdClue: Improve behavior on visibly shaking location\\n HotColdClue: Clear final location on clue reset\\n\\nKusha Gharahi (1):\\n wintertodt plugin: add round start notification\\n\\nLotto (1):\\n interface styles: add RuneScape cross sprites option\\n\\nMax Weber (1):\\n cache/FrameDumperTest: Don't get the wrong framemaps for a frame\\n\\nRice Boxer (1):\\n Fix Father Jean's coordinates in easy cryptic clue\\n\\nRobert Alexander (1):\\n chat commands: add duel arena chat command\\n\\nSander de Groot (2):\\n Adjust alignment of icons in fixed 2005 interface style and fix inventory icon\\n Add Barbarian Assault quick-start option to menu entry swapper\\n\\nScapeRune (1):\\n worldmap: Fix MEP2 and Shadows of the Storm quest tooltips (#9166)\\n\\nTwiglet1022 (1):\\n mining plugin: only show timers on same level in motherlode mine\\n\\nWilliam Collishaw (2):\\n Replace use of deprecated Guava Files write method\\n Clean up some instances of double white space\\n\\nWooxSolo (1):\\n Add sounds to devtools\\n\\nitscalvinwang (1):\\n Add support for burning stews to Cooking plugin (#9196) (#9202)\\n\\nkristo naeris (1):\\n world hopper: add option to disable Hop-to menu option\\n\\nltvill (1):\\n Change default examine chat color to green\\n\\npsikoi (2):\\n Add ENTER/ESC key events for screenmarker saving\\n Add hover preview to screen markers\\n\\ntanlines (1):\\n Add item charges for baskets and sacks (#9212)\\n\\ntrimbe (2):\\n api: add method to play sound effects while volume is muted\\n metronome: play sounds while volume is muted\\n\\nwinterdaze (1):\\n Add tooltips to DevTools buttons (#9224)\\n\\nxdesr (1):\\n Fix typos in Falo the Bard clues (comma, favourite) (#9185)\\n
\\n\",\"image\":\"/img/blog/1.5.28-Release/gc.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/101.4fac27c1.chunk.js b/static/js/101.c7660ddd.chunk.js
similarity index 98%
rename from static/js/101.4fac27c1.chunk.js
rename to static/js/101.c7660ddd.chunk.js
index 3628ae33f..9be94b800 100644
--- a/static/js/101.4fac27c1.chunk.js
+++ b/static/js/101.c7660ddd.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[101],{376:function(n,e){n.exports={title:"1.5.29 Release",description:"Seed vault price checker, scroll zoom speed changer, and bug fixes",author:"Adam",body:'The bank plugin will now total up the value of all of the seeds in the seed\nvault
\n
\nThe camera zoom plugin now has a setting to configure the scroll zoom speed, and\nallows configuring the control key to reset zoom.
\nThe grounditems plugin can now recolor the telegrab menu to according to the items value
\n
\nThe color picker now has a palette of recent colors
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Esc changing tabs when in typing mode in the key remapping plugin \nAdd ability to configure custom key remaps for the F keys and esc to key\nremapping plugin \nFix impling plugin sometimes not working with Puro-Puro impling spawns \nFix Motherlode mine rock obstacles not being marked when entering the mine \nAdd Dragonfire shield timer to timers plugin \nAdd farming harvest actions to the idle notifier \nAdd Shilo gem rocks to the mining plugin respawn timer \nAdd Sarachnis respawn timer \nFix location of Fishing Platform elite clue stash unit \nFix HD prayer bar flick bar \nAdd Entrana river fishing spots to fishing plugin \nFix MTA telekinetic solver sometimes not updating after telegrabbing the\nguardian \nFix several edge cases related to untradeables in the items kept on death\nplugin \nAdd support for labeling ore and gems to the item identification plugin \nAdd menu swaps for ToB Quick-Enter and Enchant on Eluned \nAdd Rantz arrow collection to the daily task plugin \nAdd option to the chat filter plugin to filter all login and logout\nnotifications \nFix the loot tracker counting duplicate raids chests if opened more than once \nFix skybox color on the Cosmic entity\'s plane \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\nAdam (11):\n Remove runescape-api and mixins\n keyremapping: fix escape from chat triggering game keybindings\n keyremapping: allow custom keybinds for F keys\n keyremapping: add F-key remap for escape\n api: add item container id to item container changed event\n chat filter: add option to filter login notifications\n api: add npc changed event\n imp plugin: cleanup\n imp plugin: handle npc changes to imps\n bank plugin: refactor to allow pricing multiple containers\n bank plugin: add seed vault\n\nAdam Witkowski (1):\n mlm: fix rock obstacles not being marked on load\n\nCameron Moberg (1):\n Stop screenshotPlugin from overwriting previous screenshots\n\nDamen (1):\n Add Dragonfire Shield timer to timers plugin (#9234)\n\nDaniel (1):\n Properly capitalize \'Brother Kojo\' in Watchtower clue scroll (#9297)\n\nDavid (4):\n idle notifier: add farming harvest animations\n Center the Inventory icon in 2005 resizable mode (#9322)\n mining plugin: add gem rocks\n Add GE limit for Golovanova fruit top (#9385)\n\nDecorth (2):\n Add Sarachnis respawn timer to Boss timers plugin (#9313)\n Fix location of Fishing Platform elite clue stash (#9327)\n\nHydrox6 (1):\n prayer: fix HD prayer bar flick location\n\nJordan Atwood (6):\n PluginListItem: Reset label color on popup menu item click\n loottracker: Fix duplicate cox and tob chest loots\n grounditemsplugin: Color telegrab menu entries\n Remove unused Slf4j annotations and imports\n hotcoldclue: Display npc location before using device\n slayerplugin: Correct Jad and Zuk task tracking\n\nJordan Parker (1):\n fishing: Add Entrana river fishing spots\n\nMax Weber (6):\n runelite-client: Don\'t try to contain to screen when contain is off\n ClientThread: repeat call immediate invokes correctly\n runelite-client: Handle missing sprites correctly\n runelite-client: Use BufferedImage where applicable\n InfoBoxManager: handle AsyncBufferedImage more correctly\n runelite-client: Allow partial screen containment again\n\nOussama (1):\n Fix typo in Loot Tracker panel (#9341)\n\nPineapplezz (1):\n Improve Arrandar mountain pass clue description (#9331)\n\nQuasindro (2):\n mlm: fix ore vein max respawn time threshold\n skybox: fix color at Cosmic Entity\'s Plane region\n\nRon Young (6):\n Bank Tags: close chat input like withdraw-x\n widget item overlay: don\'t render on tag tabs and bank tabs\n mta: fix Telekinetic solver not moving\n RuneliteColorPicker: add onClose consumer\n Add ColorPickerManager\n RuneliteColorPicker: add support for recent colors\n\nRyan (2):\n zoom plugin: add control to reset zoom\n zoom plugin: add zoom scroll speed configuration\n\nSomeBall-1 (1):\n Add option to swap Talk-to with Enchant for Eluned (#9183)\n\nSu-Shing Chen (2):\n Sort worlds in world hopper using Guava\n Put worlds with unknown ping at the bottom of the world hopper list\n\nTheStonedTurtle (2):\n itemskeptondeath: fix many edge cases and add tests\n ClueScroll - Fix demonic ruins text\n\nUnknown (1):\n dailytasksplugin: Add Rantz ogre arrow collection notification\n\ncaleyz (1):\n chat filter: refresh chat on config change, startup, and shutdown\n\nmeshens (1):\n item identification: add support for labeling ores and gems (#9268)\n\nrlw0014 (1):\n Add swap for ToB Quick-Enter to menu entry swapper (#9136)\n
\n',image:"/img/blog/1.5.29-Release/seedvault.png"}}}]);
-//# sourceMappingURL=101.4fac27c1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[101],{377:function(n,e){n.exports={title:"1.5.29 Release",description:"Seed vault price checker, scroll zoom speed changer, and bug fixes",author:"Adam",body:'The bank plugin will now total up the value of all of the seeds in the seed\nvault
\n
\nThe camera zoom plugin now has a setting to configure the scroll zoom speed, and\nallows configuring the control key to reset zoom.
\nThe grounditems plugin can now recolor the telegrab menu to according to the items value
\n
\nThe color picker now has a palette of recent colors
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Esc changing tabs when in typing mode in the key remapping plugin \nAdd ability to configure custom key remaps for the F keys and esc to key\nremapping plugin \nFix impling plugin sometimes not working with Puro-Puro impling spawns \nFix Motherlode mine rock obstacles not being marked when entering the mine \nAdd Dragonfire shield timer to timers plugin \nAdd farming harvest actions to the idle notifier \nAdd Shilo gem rocks to the mining plugin respawn timer \nAdd Sarachnis respawn timer \nFix location of Fishing Platform elite clue stash unit \nFix HD prayer bar flick bar \nAdd Entrana river fishing spots to fishing plugin \nFix MTA telekinetic solver sometimes not updating after telegrabbing the\nguardian \nFix several edge cases related to untradeables in the items kept on death\nplugin \nAdd support for labeling ore and gems to the item identification plugin \nAdd menu swaps for ToB Quick-Enter and Enchant on Eluned \nAdd Rantz arrow collection to the daily task plugin \nAdd option to the chat filter plugin to filter all login and logout\nnotifications \nFix the loot tracker counting duplicate raids chests if opened more than once \nFix skybox color on the Cosmic entity\'s plane \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\nAdam (11):\n Remove runescape-api and mixins\n keyremapping: fix escape from chat triggering game keybindings\n keyremapping: allow custom keybinds for F keys\n keyremapping: add F-key remap for escape\n api: add item container id to item container changed event\n chat filter: add option to filter login notifications\n api: add npc changed event\n imp plugin: cleanup\n imp plugin: handle npc changes to imps\n bank plugin: refactor to allow pricing multiple containers\n bank plugin: add seed vault\n\nAdam Witkowski (1):\n mlm: fix rock obstacles not being marked on load\n\nCameron Moberg (1):\n Stop screenshotPlugin from overwriting previous screenshots\n\nDamen (1):\n Add Dragonfire Shield timer to timers plugin (#9234)\n\nDaniel (1):\n Properly capitalize \'Brother Kojo\' in Watchtower clue scroll (#9297)\n\nDavid (4):\n idle notifier: add farming harvest animations\n Center the Inventory icon in 2005 resizable mode (#9322)\n mining plugin: add gem rocks\n Add GE limit for Golovanova fruit top (#9385)\n\nDecorth (2):\n Add Sarachnis respawn timer to Boss timers plugin (#9313)\n Fix location of Fishing Platform elite clue stash (#9327)\n\nHydrox6 (1):\n prayer: fix HD prayer bar flick location\n\nJordan Atwood (6):\n PluginListItem: Reset label color on popup menu item click\n loottracker: Fix duplicate cox and tob chest loots\n grounditemsplugin: Color telegrab menu entries\n Remove unused Slf4j annotations and imports\n hotcoldclue: Display npc location before using device\n slayerplugin: Correct Jad and Zuk task tracking\n\nJordan Parker (1):\n fishing: Add Entrana river fishing spots\n\nMax Weber (6):\n runelite-client: Don\'t try to contain to screen when contain is off\n ClientThread: repeat call immediate invokes correctly\n runelite-client: Handle missing sprites correctly\n runelite-client: Use BufferedImage where applicable\n InfoBoxManager: handle AsyncBufferedImage more correctly\n runelite-client: Allow partial screen containment again\n\nOussama (1):\n Fix typo in Loot Tracker panel (#9341)\n\nPineapplezz (1):\n Improve Arrandar mountain pass clue description (#9331)\n\nQuasindro (2):\n mlm: fix ore vein max respawn time threshold\n skybox: fix color at Cosmic Entity\'s Plane region\n\nRon Young (6):\n Bank Tags: close chat input like withdraw-x\n widget item overlay: don\'t render on tag tabs and bank tabs\n mta: fix Telekinetic solver not moving\n RuneliteColorPicker: add onClose consumer\n Add ColorPickerManager\n RuneliteColorPicker: add support for recent colors\n\nRyan (2):\n zoom plugin: add control to reset zoom\n zoom plugin: add zoom scroll speed configuration\n\nSomeBall-1 (1):\n Add option to swap Talk-to with Enchant for Eluned (#9183)\n\nSu-Shing Chen (2):\n Sort worlds in world hopper using Guava\n Put worlds with unknown ping at the bottom of the world hopper list\n\nTheStonedTurtle (2):\n itemskeptondeath: fix many edge cases and add tests\n ClueScroll - Fix demonic ruins text\n\nUnknown (1):\n dailytasksplugin: Add Rantz ogre arrow collection notification\n\ncaleyz (1):\n chat filter: refresh chat on config change, startup, and shutdown\n\nmeshens (1):\n item identification: add support for labeling ores and gems (#9268)\n\nrlw0014 (1):\n Add swap for ToB Quick-Enter to menu entry swapper (#9136)\n
\n',image:"/img/blog/1.5.29-Release/seedvault.png"}}}]);
+//# sourceMappingURL=101.c7660ddd.chunk.js.map
\ No newline at end of file
diff --git a/static/js/101.4fac27c1.chunk.js.map b/static/js/101.c7660ddd.chunk.js.map
similarity index 99%
rename from static/js/101.4fac27c1.chunk.js.map
rename to static/js/101.c7660ddd.chunk.js.map
index f86da02c3..8794edb84 100644
--- a/static/js/101.4fac27c1.chunk.js.map
+++ b/static/js/101.c7660ddd.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-07-18-10-00-1.5.29-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qEAAqE,OAAS,OAAO,KAAO,koLAAwoL,MAAQ","file":"static/js/101.4fac27c1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.29 Release\",\"description\":\"Seed vault price checker, scroll zoom speed changer, and bug fixes\",\"author\":\"Adam\",\"body\":\"The bank plugin will now total up the value of all of the seeds in the seed\\nvault
\\n
\\nThe camera zoom plugin now has a setting to configure the scroll zoom speed, and\\nallows configuring the control key to reset zoom.
\\nThe grounditems plugin can now recolor the telegrab menu to according to the items value
\\n
\\nThe color picker now has a palette of recent colors
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Esc changing tabs when in typing mode in the key remapping plugin \\nAdd ability to configure custom key remaps for the F keys and esc to key\\nremapping plugin \\nFix impling plugin sometimes not working with Puro-Puro impling spawns \\nFix Motherlode mine rock obstacles not being marked when entering the mine \\nAdd Dragonfire shield timer to timers plugin \\nAdd farming harvest actions to the idle notifier \\nAdd Shilo gem rocks to the mining plugin respawn timer \\nAdd Sarachnis respawn timer \\nFix location of Fishing Platform elite clue stash unit \\nFix HD prayer bar flick bar \\nAdd Entrana river fishing spots to fishing plugin \\nFix MTA telekinetic solver sometimes not updating after telegrabbing the\\nguardian \\nFix several edge cases related to untradeables in the items kept on death\\nplugin \\nAdd support for labeling ore and gems to the item identification plugin \\nAdd menu swaps for ToB Quick-Enter and Enchant on Eluned \\nAdd Rantz arrow collection to the daily task plugin \\nAdd option to the chat filter plugin to filter all login and logout\\nnotifications \\nFix the loot tracker counting duplicate raids chests if opened more than once \\nFix skybox color on the Cosmic entity's plane \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (11):\\n Remove runescape-api and mixins\\n keyremapping: fix escape from chat triggering game keybindings\\n keyremapping: allow custom keybinds for F keys\\n keyremapping: add F-key remap for escape\\n api: add item container id to item container changed event\\n chat filter: add option to filter login notifications\\n api: add npc changed event\\n imp plugin: cleanup\\n imp plugin: handle npc changes to imps\\n bank plugin: refactor to allow pricing multiple containers\\n bank plugin: add seed vault\\n\\nAdam Witkowski (1):\\n mlm: fix rock obstacles not being marked on load\\n\\nCameron Moberg (1):\\n Stop screenshotPlugin from overwriting previous screenshots\\n\\nDamen (1):\\n Add Dragonfire Shield timer to timers plugin (#9234)\\n\\nDaniel (1):\\n Properly capitalize 'Brother Kojo' in Watchtower clue scroll (#9297)\\n\\nDavid (4):\\n idle notifier: add farming harvest animations\\n Center the Inventory icon in 2005 resizable mode (#9322)\\n mining plugin: add gem rocks\\n Add GE limit for Golovanova fruit top (#9385)\\n\\nDecorth (2):\\n Add Sarachnis respawn timer to Boss timers plugin (#9313)\\n Fix location of Fishing Platform elite clue stash (#9327)\\n\\nHydrox6 (1):\\n prayer: fix HD prayer bar flick location\\n\\nJordan Atwood (6):\\n PluginListItem: Reset label color on popup menu item click\\n loottracker: Fix duplicate cox and tob chest loots\\n grounditemsplugin: Color telegrab menu entries\\n Remove unused Slf4j annotations and imports\\n hotcoldclue: Display npc location before using device\\n slayerplugin: Correct Jad and Zuk task tracking\\n\\nJordan Parker (1):\\n fishing: Add Entrana river fishing spots\\n\\nMax Weber (6):\\n runelite-client: Don't try to contain to screen when contain is off\\n ClientThread: repeat call immediate invokes correctly\\n runelite-client: Handle missing sprites correctly\\n runelite-client: Use BufferedImage where applicable\\n InfoBoxManager: handle AsyncBufferedImage more correctly\\n runelite-client: Allow partial screen containment again\\n\\nOussama (1):\\n Fix typo in Loot Tracker panel (#9341)\\n\\nPineapplezz (1):\\n Improve Arrandar mountain pass clue description (#9331)\\n\\nQuasindro (2):\\n mlm: fix ore vein max respawn time threshold\\n skybox: fix color at Cosmic Entity's Plane region\\n\\nRon Young (6):\\n Bank Tags: close chat input like withdraw-x\\n widget item overlay: don't render on tag tabs and bank tabs\\n mta: fix Telekinetic solver not moving\\n RuneliteColorPicker: add onClose consumer\\n Add ColorPickerManager\\n RuneliteColorPicker: add support for recent colors\\n\\nRyan (2):\\n zoom plugin: add control to reset zoom\\n zoom plugin: add zoom scroll speed configuration\\n\\nSomeBall-1 (1):\\n Add option to swap Talk-to with Enchant for Eluned (#9183)\\n\\nSu-Shing Chen (2):\\n Sort worlds in world hopper using Guava\\n Put worlds with unknown ping at the bottom of the world hopper list\\n\\nTheStonedTurtle (2):\\n itemskeptondeath: fix many edge cases and add tests\\n ClueScroll - Fix demonic ruins text\\n\\nUnknown (1):\\n dailytasksplugin: Add Rantz ogre arrow collection notification\\n\\ncaleyz (1):\\n chat filter: refresh chat on config change, startup, and shutdown\\n\\nmeshens (1):\\n item identification: add support for labeling ores and gems (#9268)\\n\\nrlw0014 (1):\\n Add swap for ToB Quick-Enter to menu entry swapper (#9136)\\n
\\n\",\"image\":\"/img/blog/1.5.29-Release/seedvault.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-07-18-10-00-1.5.29-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qEAAqE,OAAS,OAAO,KAAO,koLAAwoL,MAAQ","file":"static/js/101.c7660ddd.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.29 Release\",\"description\":\"Seed vault price checker, scroll zoom speed changer, and bug fixes\",\"author\":\"Adam\",\"body\":\"The bank plugin will now total up the value of all of the seeds in the seed\\nvault
\\n
\\nThe camera zoom plugin now has a setting to configure the scroll zoom speed, and\\nallows configuring the control key to reset zoom.
\\nThe grounditems plugin can now recolor the telegrab menu to according to the items value
\\n
\\nThe color picker now has a palette of recent colors
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Esc changing tabs when in typing mode in the key remapping plugin \\nAdd ability to configure custom key remaps for the F keys and esc to key\\nremapping plugin \\nFix impling plugin sometimes not working with Puro-Puro impling spawns \\nFix Motherlode mine rock obstacles not being marked when entering the mine \\nAdd Dragonfire shield timer to timers plugin \\nAdd farming harvest actions to the idle notifier \\nAdd Shilo gem rocks to the mining plugin respawn timer \\nAdd Sarachnis respawn timer \\nFix location of Fishing Platform elite clue stash unit \\nFix HD prayer bar flick bar \\nAdd Entrana river fishing spots to fishing plugin \\nFix MTA telekinetic solver sometimes not updating after telegrabbing the\\nguardian \\nFix several edge cases related to untradeables in the items kept on death\\nplugin \\nAdd support for labeling ore and gems to the item identification plugin \\nAdd menu swaps for ToB Quick-Enter and Enchant on Eluned \\nAdd Rantz arrow collection to the daily task plugin \\nAdd option to the chat filter plugin to filter all login and logout\\nnotifications \\nFix the loot tracker counting duplicate raids chests if opened more than once \\nFix skybox color on the Cosmic entity's plane \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (11):\\n Remove runescape-api and mixins\\n keyremapping: fix escape from chat triggering game keybindings\\n keyremapping: allow custom keybinds for F keys\\n keyremapping: add F-key remap for escape\\n api: add item container id to item container changed event\\n chat filter: add option to filter login notifications\\n api: add npc changed event\\n imp plugin: cleanup\\n imp plugin: handle npc changes to imps\\n bank plugin: refactor to allow pricing multiple containers\\n bank plugin: add seed vault\\n\\nAdam Witkowski (1):\\n mlm: fix rock obstacles not being marked on load\\n\\nCameron Moberg (1):\\n Stop screenshotPlugin from overwriting previous screenshots\\n\\nDamen (1):\\n Add Dragonfire Shield timer to timers plugin (#9234)\\n\\nDaniel (1):\\n Properly capitalize 'Brother Kojo' in Watchtower clue scroll (#9297)\\n\\nDavid (4):\\n idle notifier: add farming harvest animations\\n Center the Inventory icon in 2005 resizable mode (#9322)\\n mining plugin: add gem rocks\\n Add GE limit for Golovanova fruit top (#9385)\\n\\nDecorth (2):\\n Add Sarachnis respawn timer to Boss timers plugin (#9313)\\n Fix location of Fishing Platform elite clue stash (#9327)\\n\\nHydrox6 (1):\\n prayer: fix HD prayer bar flick location\\n\\nJordan Atwood (6):\\n PluginListItem: Reset label color on popup menu item click\\n loottracker: Fix duplicate cox and tob chest loots\\n grounditemsplugin: Color telegrab menu entries\\n Remove unused Slf4j annotations and imports\\n hotcoldclue: Display npc location before using device\\n slayerplugin: Correct Jad and Zuk task tracking\\n\\nJordan Parker (1):\\n fishing: Add Entrana river fishing spots\\n\\nMax Weber (6):\\n runelite-client: Don't try to contain to screen when contain is off\\n ClientThread: repeat call immediate invokes correctly\\n runelite-client: Handle missing sprites correctly\\n runelite-client: Use BufferedImage where applicable\\n InfoBoxManager: handle AsyncBufferedImage more correctly\\n runelite-client: Allow partial screen containment again\\n\\nOussama (1):\\n Fix typo in Loot Tracker panel (#9341)\\n\\nPineapplezz (1):\\n Improve Arrandar mountain pass clue description (#9331)\\n\\nQuasindro (2):\\n mlm: fix ore vein max respawn time threshold\\n skybox: fix color at Cosmic Entity's Plane region\\n\\nRon Young (6):\\n Bank Tags: close chat input like withdraw-x\\n widget item overlay: don't render on tag tabs and bank tabs\\n mta: fix Telekinetic solver not moving\\n RuneliteColorPicker: add onClose consumer\\n Add ColorPickerManager\\n RuneliteColorPicker: add support for recent colors\\n\\nRyan (2):\\n zoom plugin: add control to reset zoom\\n zoom plugin: add zoom scroll speed configuration\\n\\nSomeBall-1 (1):\\n Add option to swap Talk-to with Enchant for Eluned (#9183)\\n\\nSu-Shing Chen (2):\\n Sort worlds in world hopper using Guava\\n Put worlds with unknown ping at the bottom of the world hopper list\\n\\nTheStonedTurtle (2):\\n itemskeptondeath: fix many edge cases and add tests\\n ClueScroll - Fix demonic ruins text\\n\\nUnknown (1):\\n dailytasksplugin: Add Rantz ogre arrow collection notification\\n\\ncaleyz (1):\\n chat filter: refresh chat on config change, startup, and shutdown\\n\\nmeshens (1):\\n item identification: add support for labeling ores and gems (#9268)\\n\\nrlw0014 (1):\\n Add swap for ToB Quick-Enter to menu entry swapper (#9136)\\n
\\n\",\"image\":\"/img/blog/1.5.29-Release/seedvault.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/102.eba0d7d6.chunk.js b/static/js/102.aeb0b34b.chunk.js
similarity index 98%
rename from static/js/102.eba0d7d6.chunk.js
rename to static/js/102.aeb0b34b.chunk.js
index f6d6dcab4..015fe56e2 100644
--- a/static/js/102.eba0d7d6.chunk.js
+++ b/static/js/102.aeb0b34b.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[102],{377:function(n,e){n.exports={title:"1.5.30 Release",description:"Song of the Elves, and item despawn timers",author:"Adam",body:'We have been diligently working off the SotE meta\nissue over the last week, as\nit touches a lot of the plugins and features. Much of it is done and included in\nthis release:
\n\nAdd divine potion timers to the timers plugin \nAdd Zalcano respawn timer to the boss plugin \nAdd Prifddinas farming patches to the time tracking plugin \nAdd Gauntlet kill count and personal best support to chat commands \nAdd Prifddinas agility course "kill count" and personal best to chat commands \nUpdates to the world map:\n\nAdd SotE quest start \nAdd rare tree, transportation, and shortcut tooltips \nFix Elf camp teleport location \nAdd farming patch tooltips \nAdd teleport crystal locations \nAdd minigame icon to the Gauntlet \n \n \nAdd Prifddinas agility course to the agility plugin \nAdd Prifddinas mining rocks to the mining plugin \nAdd Gauntlet and Prifddinas Crystal Chest to loot tracking plugin \nAdd crystal tree and agility course to the skill calculator \nAdd Gauntlet consumable information to the item stats plugin, and to potion\ntimers \nAdd Prifddinas and surrounding areas to the skybox plugin \nAdd Prifddinas and surrounding areas to the possible Discord locations \nAdd crystal sapling to the item identification plugin \nAdd new crystal tools to the idle notifier \nAdd crystal axe to woodcutting plugin and wintertodt plugin \nAdd crystal pickaxe to motherlode plugin \nAdd crystal implings to the impling plugin \n \nItem despawn timers have been added to the ground items plugin, which show how\nlong until an item will despawn for items which you drop and receive as loot\nfrom a PvM kill.
\n
\nThe world hopper plugin now has an option to show the current world\'s ping
\n
\nThe clue plugin now shows locations for emote clues on the overlay, instead of\njust the world map:
\n
\nThe bank tags plugin now has an interface for searching items to use for the tab\nicon. This allows you to easily set the tab icon to items you do not have.
\n
\nThe raids scouter plugin now broadcasts scouted raids to your RuneLite party
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix tracking of Jad and Zuk personal best \nShow grand exchange value when examining items in the seed vault \nThe quest list plugin now has an additional filter to show uncompleted quests\nonly \nAdd support for Lava Eels to the fishing plugin \nFix world map quest marker for Depths of Despair \nAdd Hespori to the loot tracker \nThe item prices plugin can now show HA profit when casting on items \nChange "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs \nAdd option to add skill xptrackers to the canvas on the skill menu tab \nFix removing teleblock timer when your opponent who cast the teleblock dies \nAdd total points and points per hour to the NMZ overlay \nFix the zoom plugin control reset config value to be properly bounded to\nvalid values \nAdd 2005 style sprite override for friend/ignore list toggle icon \nThe item charges plugin now supports Rings of Forging \nAdd gnome stronghold fishing spots to fishing plugin \nIncrease smelting overlay timeout to account for cannonballs \nFix the XP tracker rounding to not show 100% prior to gaining a level \nIgnore player loot at LMS in the loot tracker \nChange Chaos Elemental respawn timer to 60 seconds \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 29 contributors this release!
\n15987632 (3):\n hot cold clues: center kandarin outpost dig location\n hot cold clues: center level 38 wilderness dig location\n hot cold clues: center zeah lovakite furnace dig location\n\nAdam (17):\n api: mark getItemDefinition as nonnull\n ovelay renderer: more gracefully handle exceptions\n tooltip overlay: move tooltip clearing to a finally block\n tooltip component: fix exception from malformed tags\n api: rename Item to TileItem and add Item value class\n client: change item layer item uages to TileItem\n chatfilter test: remove player bind\n grounditems: add despawn timers\n loot tracker: fix HERBIBOAR_EVENT name typo\n timers: add divine potions\n chat commands: add gauntlet kc\n fps plugin: move fps off logout button on bottom line mode\n world hopper: change ping task to ping one world\n world hopper: add option to show current world ping\n chat commands: fix tracking zuk pb\n chat commands: add gg pb\n chat commands: add guantlet pb\n\nAdam Witkowski (1):\n itemstats: Add support for Tai Bwo Wannai food (spiders on stick) (#9485)\n\nAlexsuperfly (19):\n loot tracker: add Elven Crystal Chest\n world map: add song of the elves quest location\n world map: add Prifddinas rare tree icons\n world map: add Prifddinas tranportation icons\n world map: add teleport crytal icon\n world map: elf camp -> Iorwerth camp teleport scroll\n world map: add Prifddinas farming patch icons\n world map: add elven overpass shortcuts on Prifddinas map\n world map: add Iorwerths dungeon agility shortcut icons\n world map: add gauntlet minigame icon\n bosstimers: add Zalcano\n AnimationID: add crystal and new dragon orn tools\n idle notifier: add ids for crystal and new dragon orn tools\n woodcutting: add crystal axe to axe enum\n motherlode: update animation id set with new crystal and dragon tools\n skill calc: add Prifddinas agility course\n skill calc: add crystal tree\n discord: add Prifddinas locations\n wintertodt: add crystal axe to animation list\n\nAndrew Benson (1):\n Fix Ardounge -> Ardougne typo in cryptic clue description (#9460)\n\nAttackOfTheMoons (3):\n Fix casing in shiftClickActionIndex (#9404)\n examine: Add support for examining Seed Vault items (#9431)\n slayer: Fix NPE when getting unsupported task (#9490)\n\nDaniel Serpa (1):\n quest list plugin: add not completed filter\n\nDavid (6):\n clue plugin: add locations to emote clues\n Add GE limit for Drift net (#9411)\n Add new Jethic medium clue step (#9456)\n impling plugin: add Crystal implings\n fishing: Add support for Lava Eeels (#9477)\n worldmap: Fix quest marker for Depths of Despair (#9506)\n\nDecorth (1):\n loottracker: Add Hespori loot tracking\n\nGamma91 (1):\n mining plugin: add Prifddinas rocks\n\nGustavo Rodrigues (1):\n Added infernal cape and infernal max cape to master clue scroll step\n\nHydrox6 (2):\n cluescrolls: add dragon pick (or) to master emote clue\n Add item mappings for crystal equipment\n\nJacky L (1):\n Show HA profit while casting HA on items (#9070)\n\nJordan Atwood (7):\n groundmarkerplugin: Use RUNELITE menu action\n timersplugin: Escape periods in teleblock patterns\n npcindicators: Use "Un-tag" menu option for tagged NPCs\n objectindicators: Use "Unmark" menu option for marked objects\n groundmarkers: Use "Unmark" menu option for marked tiles\n overlaymanager: Add anyMatch method\n xptrackerplugin: Add canvas menu options to skill tab\n\nMax Weber (13):\n runelite-api Remove WidgetPositioned\n Revert "Shutdown plugins on window close"\n runelite-client: remove RuneLiteModuleTest\n runelite-client: Don\'t write all images to disk when loading them\n ChatboxPerformancePlugin: Hook the cs2 to know when to rebuild\n BankTags: Call scripts with all of their arguments explicitly\n runelite-client: Start the ClientLoader running before injection starts\n runelite-client: Preload certain slow classes\n Update Quest Enum to latest cache\n timetracking: Support Prifddinas patches\n agility: Support Prifddinas course\n Skybox: Add Prifddinas and Iorwerth dungeon\n itemidentification: Add crystal sapling\n\nQuasindro (1):\n nmz: Add total and per hour points to NMZ overlay\n\nRon Young (3):\n api: import itemCount\n chatbox: add ChatboxItemSearch\n TabInterface: add item searching for change icon\n\nRyan (1):\n zoom plugin: fix range bounds for ctrl zoom value config\n\nSander de Groot (2):\n interface styles: add sprite override for 2005 friend/ignore list toggle\n chat filter: fix filtering messages containing nbsp\n\nSebastiaanVanspauwen (1):\n chat commands: add Prifddinas agility course kc and pb\n\nTheStonedTurtle (3):\n loot tracker: add gauntlet support\n itemstats: add Guantlet food and potion\n timer plugin: add stamina timer for Guantlet potion\n\nTomas Slusny (3):\n Use GL_DYNAMIC_DRAW for ever-changing uniformBuffer\n party: add party chat messages\n raids plugin: send raids layout message to party\n\nWilliam Collishaw (2):\n emoji plugin: support nbsp in messages\n raids: Switch from Pattern splitting to Text.fromCSV (#9422)\n\nZacharias Tyllstr\xf6m (1):\n item charges: add ring of forging\n\ndekvall (2):\n Add gnome stronghold fishing spots to fishing plugin (#9444)\n Increase timeout for smelting overlay to handle cannonballs (#9448)\n\njdkleuver (1):\n xp tracker: Change rounding mode so that it rounds down rather than up (#9378)\n\npsikoi (1):\n loot tracker: ignore player loot in LMS\n\nrlw0014 (1):\n timer plugin: remove tb timer when opponent dies\n\nxDemoN (1):\n clue scrolls: Use consistent label for "Location" (#9421)\n
\n',image:"/img/blog/1.5.30-Release/despawntimer.png"}}}]);
-//# sourceMappingURL=102.eba0d7d6.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[102],{378:function(n,e){n.exports={title:"1.5.30 Release",description:"Song of the Elves, and item despawn timers",author:"Adam",body:'We have been diligently working off the SotE meta\nissue over the last week, as\nit touches a lot of the plugins and features. Much of it is done and included in\nthis release:
\n\nAdd divine potion timers to the timers plugin \nAdd Zalcano respawn timer to the boss plugin \nAdd Prifddinas farming patches to the time tracking plugin \nAdd Gauntlet kill count and personal best support to chat commands \nAdd Prifddinas agility course "kill count" and personal best to chat commands \nUpdates to the world map:\n\nAdd SotE quest start \nAdd rare tree, transportation, and shortcut tooltips \nFix Elf camp teleport location \nAdd farming patch tooltips \nAdd teleport crystal locations \nAdd minigame icon to the Gauntlet \n \n \nAdd Prifddinas agility course to the agility plugin \nAdd Prifddinas mining rocks to the mining plugin \nAdd Gauntlet and Prifddinas Crystal Chest to loot tracking plugin \nAdd crystal tree and agility course to the skill calculator \nAdd Gauntlet consumable information to the item stats plugin, and to potion\ntimers \nAdd Prifddinas and surrounding areas to the skybox plugin \nAdd Prifddinas and surrounding areas to the possible Discord locations \nAdd crystal sapling to the item identification plugin \nAdd new crystal tools to the idle notifier \nAdd crystal axe to woodcutting plugin and wintertodt plugin \nAdd crystal pickaxe to motherlode plugin \nAdd crystal implings to the impling plugin \n \nItem despawn timers have been added to the ground items plugin, which show how\nlong until an item will despawn for items which you drop and receive as loot\nfrom a PvM kill.
\n
\nThe world hopper plugin now has an option to show the current world\'s ping
\n
\nThe clue plugin now shows locations for emote clues on the overlay, instead of\njust the world map:
\n
\nThe bank tags plugin now has an interface for searching items to use for the tab\nicon. This allows you to easily set the tab icon to items you do not have.
\n
\nThe raids scouter plugin now broadcasts scouted raids to your RuneLite party
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix tracking of Jad and Zuk personal best \nShow grand exchange value when examining items in the seed vault \nThe quest list plugin now has an additional filter to show uncompleted quests\nonly \nAdd support for Lava Eels to the fishing plugin \nFix world map quest marker for Depths of Despair \nAdd Hespori to the loot tracker \nThe item prices plugin can now show HA profit when casting on items \nChange "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs \nAdd option to add skill xptrackers to the canvas on the skill menu tab \nFix removing teleblock timer when your opponent who cast the teleblock dies \nAdd total points and points per hour to the NMZ overlay \nFix the zoom plugin control reset config value to be properly bounded to\nvalid values \nAdd 2005 style sprite override for friend/ignore list toggle icon \nThe item charges plugin now supports Rings of Forging \nAdd gnome stronghold fishing spots to fishing plugin \nIncrease smelting overlay timeout to account for cannonballs \nFix the XP tracker rounding to not show 100% prior to gaining a level \nIgnore player loot at LMS in the loot tracker \nChange Chaos Elemental respawn timer to 60 seconds \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 29 contributors this release!
\n15987632 (3):\n hot cold clues: center kandarin outpost dig location\n hot cold clues: center level 38 wilderness dig location\n hot cold clues: center zeah lovakite furnace dig location\n\nAdam (17):\n api: mark getItemDefinition as nonnull\n ovelay renderer: more gracefully handle exceptions\n tooltip overlay: move tooltip clearing to a finally block\n tooltip component: fix exception from malformed tags\n api: rename Item to TileItem and add Item value class\n client: change item layer item uages to TileItem\n chatfilter test: remove player bind\n grounditems: add despawn timers\n loot tracker: fix HERBIBOAR_EVENT name typo\n timers: add divine potions\n chat commands: add gauntlet kc\n fps plugin: move fps off logout button on bottom line mode\n world hopper: change ping task to ping one world\n world hopper: add option to show current world ping\n chat commands: fix tracking zuk pb\n chat commands: add gg pb\n chat commands: add guantlet pb\n\nAdam Witkowski (1):\n itemstats: Add support for Tai Bwo Wannai food (spiders on stick) (#9485)\n\nAlexsuperfly (19):\n loot tracker: add Elven Crystal Chest\n world map: add song of the elves quest location\n world map: add Prifddinas rare tree icons\n world map: add Prifddinas tranportation icons\n world map: add teleport crytal icon\n world map: elf camp -> Iorwerth camp teleport scroll\n world map: add Prifddinas farming patch icons\n world map: add elven overpass shortcuts on Prifddinas map\n world map: add Iorwerths dungeon agility shortcut icons\n world map: add gauntlet minigame icon\n bosstimers: add Zalcano\n AnimationID: add crystal and new dragon orn tools\n idle notifier: add ids for crystal and new dragon orn tools\n woodcutting: add crystal axe to axe enum\n motherlode: update animation id set with new crystal and dragon tools\n skill calc: add Prifddinas agility course\n skill calc: add crystal tree\n discord: add Prifddinas locations\n wintertodt: add crystal axe to animation list\n\nAndrew Benson (1):\n Fix Ardounge -> Ardougne typo in cryptic clue description (#9460)\n\nAttackOfTheMoons (3):\n Fix casing in shiftClickActionIndex (#9404)\n examine: Add support for examining Seed Vault items (#9431)\n slayer: Fix NPE when getting unsupported task (#9490)\n\nDaniel Serpa (1):\n quest list plugin: add not completed filter\n\nDavid (6):\n clue plugin: add locations to emote clues\n Add GE limit for Drift net (#9411)\n Add new Jethic medium clue step (#9456)\n impling plugin: add Crystal implings\n fishing: Add support for Lava Eeels (#9477)\n worldmap: Fix quest marker for Depths of Despair (#9506)\n\nDecorth (1):\n loottracker: Add Hespori loot tracking\n\nGamma91 (1):\n mining plugin: add Prifddinas rocks\n\nGustavo Rodrigues (1):\n Added infernal cape and infernal max cape to master clue scroll step\n\nHydrox6 (2):\n cluescrolls: add dragon pick (or) to master emote clue\n Add item mappings for crystal equipment\n\nJacky L (1):\n Show HA profit while casting HA on items (#9070)\n\nJordan Atwood (7):\n groundmarkerplugin: Use RUNELITE menu action\n timersplugin: Escape periods in teleblock patterns\n npcindicators: Use "Un-tag" menu option for tagged NPCs\n objectindicators: Use "Unmark" menu option for marked objects\n groundmarkers: Use "Unmark" menu option for marked tiles\n overlaymanager: Add anyMatch method\n xptrackerplugin: Add canvas menu options to skill tab\n\nMax Weber (13):\n runelite-api Remove WidgetPositioned\n Revert "Shutdown plugins on window close"\n runelite-client: remove RuneLiteModuleTest\n runelite-client: Don\'t write all images to disk when loading them\n ChatboxPerformancePlugin: Hook the cs2 to know when to rebuild\n BankTags: Call scripts with all of their arguments explicitly\n runelite-client: Start the ClientLoader running before injection starts\n runelite-client: Preload certain slow classes\n Update Quest Enum to latest cache\n timetracking: Support Prifddinas patches\n agility: Support Prifddinas course\n Skybox: Add Prifddinas and Iorwerth dungeon\n itemidentification: Add crystal sapling\n\nQuasindro (1):\n nmz: Add total and per hour points to NMZ overlay\n\nRon Young (3):\n api: import itemCount\n chatbox: add ChatboxItemSearch\n TabInterface: add item searching for change icon\n\nRyan (1):\n zoom plugin: fix range bounds for ctrl zoom value config\n\nSander de Groot (2):\n interface styles: add sprite override for 2005 friend/ignore list toggle\n chat filter: fix filtering messages containing nbsp\n\nSebastiaanVanspauwen (1):\n chat commands: add Prifddinas agility course kc and pb\n\nTheStonedTurtle (3):\n loot tracker: add gauntlet support\n itemstats: add Guantlet food and potion\n timer plugin: add stamina timer for Guantlet potion\n\nTomas Slusny (3):\n Use GL_DYNAMIC_DRAW for ever-changing uniformBuffer\n party: add party chat messages\n raids plugin: send raids layout message to party\n\nWilliam Collishaw (2):\n emoji plugin: support nbsp in messages\n raids: Switch from Pattern splitting to Text.fromCSV (#9422)\n\nZacharias Tyllstr\xf6m (1):\n item charges: add ring of forging\n\ndekvall (2):\n Add gnome stronghold fishing spots to fishing plugin (#9444)\n Increase timeout for smelting overlay to handle cannonballs (#9448)\n\njdkleuver (1):\n xp tracker: Change rounding mode so that it rounds down rather than up (#9378)\n\npsikoi (1):\n loot tracker: ignore player loot in LMS\n\nrlw0014 (1):\n timer plugin: remove tb timer when opponent dies\n\nxDemoN (1):\n clue scrolls: Use consistent label for "Location" (#9421)\n
\n',image:"/img/blog/1.5.30-Release/despawntimer.png"}}}]);
+//# sourceMappingURL=102.aeb0b34b.chunk.js.map
\ No newline at end of file
diff --git a/static/js/102.eba0d7d6.chunk.js.map b/static/js/102.aeb0b34b.chunk.js.map
similarity index 99%
rename from static/js/102.eba0d7d6.chunk.js.map
rename to static/js/102.aeb0b34b.chunk.js.map
index b70509870..818647b4c 100644
--- a/static/js/102.eba0d7d6.chunk.js.map
+++ b/static/js/102.aeb0b34b.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-08-01-10-00-1.5.30-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,6CAA6C,OAAS,OAAO,KAAO,orUAAysU,MAAQ","file":"static/js/102.eba0d7d6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.30 Release\",\"description\":\"Song of the Elves, and item despawn timers\",\"author\":\"Adam\",\"body\":\"We have been diligently working off the SotE meta\\nissue over the last week, as\\nit touches a lot of the plugins and features. Much of it is done and included in\\nthis release:
\\n\\nAdd divine potion timers to the timers plugin \\nAdd Zalcano respawn timer to the boss plugin \\nAdd Prifddinas farming patches to the time tracking plugin \\nAdd Gauntlet kill count and personal best support to chat commands \\nAdd Prifddinas agility course "kill count" and personal best to chat commands \\nUpdates to the world map:\\n\\nAdd SotE quest start \\nAdd rare tree, transportation, and shortcut tooltips \\nFix Elf camp teleport location \\nAdd farming patch tooltips \\nAdd teleport crystal locations \\nAdd minigame icon to the Gauntlet \\n \\n \\nAdd Prifddinas agility course to the agility plugin \\nAdd Prifddinas mining rocks to the mining plugin \\nAdd Gauntlet and Prifddinas Crystal Chest to loot tracking plugin \\nAdd crystal tree and agility course to the skill calculator \\nAdd Gauntlet consumable information to the item stats plugin, and to potion\\ntimers \\nAdd Prifddinas and surrounding areas to the skybox plugin \\nAdd Prifddinas and surrounding areas to the possible Discord locations \\nAdd crystal sapling to the item identification plugin \\nAdd new crystal tools to the idle notifier \\nAdd crystal axe to woodcutting plugin and wintertodt plugin \\nAdd crystal pickaxe to motherlode plugin \\nAdd crystal implings to the impling plugin \\n \\nItem despawn timers have been added to the ground items plugin, which show how\\nlong until an item will despawn for items which you drop and receive as loot\\nfrom a PvM kill.
\\n
\\nThe world hopper plugin now has an option to show the current world's ping
\\n
\\nThe clue plugin now shows locations for emote clues on the overlay, instead of\\njust the world map:
\\n
\\nThe bank tags plugin now has an interface for searching items to use for the tab\\nicon. This allows you to easily set the tab icon to items you do not have.
\\n
\\nThe raids scouter plugin now broadcasts scouted raids to your RuneLite party
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix tracking of Jad and Zuk personal best \\nShow grand exchange value when examining items in the seed vault \\nThe quest list plugin now has an additional filter to show uncompleted quests\\nonly \\nAdd support for Lava Eels to the fishing plugin \\nFix world map quest marker for Depths of Despair \\nAdd Hespori to the loot tracker \\nThe item prices plugin can now show HA profit when casting on items \\nChange "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs \\nAdd option to add skill xptrackers to the canvas on the skill menu tab \\nFix removing teleblock timer when your opponent who cast the teleblock dies \\nAdd total points and points per hour to the NMZ overlay \\nFix the zoom plugin control reset config value to be properly bounded to\\nvalid values \\nAdd 2005 style sprite override for friend/ignore list toggle icon \\nThe item charges plugin now supports Rings of Forging \\nAdd gnome stronghold fishing spots to fishing plugin \\nIncrease smelting overlay timeout to account for cannonballs \\nFix the XP tracker rounding to not show 100% prior to gaining a level \\nIgnore player loot at LMS in the loot tracker \\nChange Chaos Elemental respawn timer to 60 seconds \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 29 contributors this release!
\\n15987632 (3):\\n hot cold clues: center kandarin outpost dig location\\n hot cold clues: center level 38 wilderness dig location\\n hot cold clues: center zeah lovakite furnace dig location\\n\\nAdam (17):\\n api: mark getItemDefinition as nonnull\\n ovelay renderer: more gracefully handle exceptions\\n tooltip overlay: move tooltip clearing to a finally block\\n tooltip component: fix exception from malformed tags\\n api: rename Item to TileItem and add Item value class\\n client: change item layer item uages to TileItem\\n chatfilter test: remove player bind\\n grounditems: add despawn timers\\n loot tracker: fix HERBIBOAR_EVENT name typo\\n timers: add divine potions\\n chat commands: add gauntlet kc\\n fps plugin: move fps off logout button on bottom line mode\\n world hopper: change ping task to ping one world\\n world hopper: add option to show current world ping\\n chat commands: fix tracking zuk pb\\n chat commands: add gg pb\\n chat commands: add guantlet pb\\n\\nAdam Witkowski (1):\\n itemstats: Add support for Tai Bwo Wannai food (spiders on stick) (#9485)\\n\\nAlexsuperfly (19):\\n loot tracker: add Elven Crystal Chest\\n world map: add song of the elves quest location\\n world map: add Prifddinas rare tree icons\\n world map: add Prifddinas tranportation icons\\n world map: add teleport crytal icon\\n world map: elf camp -> Iorwerth camp teleport scroll\\n world map: add Prifddinas farming patch icons\\n world map: add elven overpass shortcuts on Prifddinas map\\n world map: add Iorwerths dungeon agility shortcut icons\\n world map: add gauntlet minigame icon\\n bosstimers: add Zalcano\\n AnimationID: add crystal and new dragon orn tools\\n idle notifier: add ids for crystal and new dragon orn tools\\n woodcutting: add crystal axe to axe enum\\n motherlode: update animation id set with new crystal and dragon tools\\n skill calc: add Prifddinas agility course\\n skill calc: add crystal tree\\n discord: add Prifddinas locations\\n wintertodt: add crystal axe to animation list\\n\\nAndrew Benson (1):\\n Fix Ardounge -> Ardougne typo in cryptic clue description (#9460)\\n\\nAttackOfTheMoons (3):\\n Fix casing in shiftClickActionIndex (#9404)\\n examine: Add support for examining Seed Vault items (#9431)\\n slayer: Fix NPE when getting unsupported task (#9490)\\n\\nDaniel Serpa (1):\\n quest list plugin: add not completed filter\\n\\nDavid (6):\\n clue plugin: add locations to emote clues\\n Add GE limit for Drift net (#9411)\\n Add new Jethic medium clue step (#9456)\\n impling plugin: add Crystal implings\\n fishing: Add support for Lava Eeels (#9477)\\n worldmap: Fix quest marker for Depths of Despair (#9506)\\n\\nDecorth (1):\\n loottracker: Add Hespori loot tracking\\n\\nGamma91 (1):\\n mining plugin: add Prifddinas rocks\\n\\nGustavo Rodrigues (1):\\n Added infernal cape and infernal max cape to master clue scroll step\\n\\nHydrox6 (2):\\n cluescrolls: add dragon pick (or) to master emote clue\\n Add item mappings for crystal equipment\\n\\nJacky L (1):\\n Show HA profit while casting HA on items (#9070)\\n\\nJordan Atwood (7):\\n groundmarkerplugin: Use RUNELITE menu action\\n timersplugin: Escape periods in teleblock patterns\\n npcindicators: Use "Un-tag" menu option for tagged NPCs\\n objectindicators: Use "Unmark" menu option for marked objects\\n groundmarkers: Use "Unmark" menu option for marked tiles\\n overlaymanager: Add anyMatch method\\n xptrackerplugin: Add canvas menu options to skill tab\\n\\nMax Weber (13):\\n runelite-api Remove WidgetPositioned\\n Revert "Shutdown plugins on window close"\\n runelite-client: remove RuneLiteModuleTest\\n runelite-client: Don't write all images to disk when loading them\\n ChatboxPerformancePlugin: Hook the cs2 to know when to rebuild\\n BankTags: Call scripts with all of their arguments explicitly\\n runelite-client: Start the ClientLoader running before injection starts\\n runelite-client: Preload certain slow classes\\n Update Quest Enum to latest cache\\n timetracking: Support Prifddinas patches\\n agility: Support Prifddinas course\\n Skybox: Add Prifddinas and Iorwerth dungeon\\n itemidentification: Add crystal sapling\\n\\nQuasindro (1):\\n nmz: Add total and per hour points to NMZ overlay\\n\\nRon Young (3):\\n api: import itemCount\\n chatbox: add ChatboxItemSearch\\n TabInterface: add item searching for change icon\\n\\nRyan (1):\\n zoom plugin: fix range bounds for ctrl zoom value config\\n\\nSander de Groot (2):\\n interface styles: add sprite override for 2005 friend/ignore list toggle\\n chat filter: fix filtering messages containing nbsp\\n\\nSebastiaanVanspauwen (1):\\n chat commands: add Prifddinas agility course kc and pb\\n\\nTheStonedTurtle (3):\\n loot tracker: add gauntlet support\\n itemstats: add Guantlet food and potion\\n timer plugin: add stamina timer for Guantlet potion\\n\\nTomas Slusny (3):\\n Use GL_DYNAMIC_DRAW for ever-changing uniformBuffer\\n party: add party chat messages\\n raids plugin: send raids layout message to party\\n\\nWilliam Collishaw (2):\\n emoji plugin: support nbsp in messages\\n raids: Switch from Pattern splitting to Text.fromCSV (#9422)\\n\\nZacharias Tyllström (1):\\n item charges: add ring of forging\\n\\ndekvall (2):\\n Add gnome stronghold fishing spots to fishing plugin (#9444)\\n Increase timeout for smelting overlay to handle cannonballs (#9448)\\n\\njdkleuver (1):\\n xp tracker: Change rounding mode so that it rounds down rather than up (#9378)\\n\\npsikoi (1):\\n loot tracker: ignore player loot in LMS\\n\\nrlw0014 (1):\\n timer plugin: remove tb timer when opponent dies\\n\\nxDemoN (1):\\n clue scrolls: Use consistent label for "Location" (#9421)\\n
\\n\",\"image\":\"/img/blog/1.5.30-Release/despawntimer.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-08-01-10-00-1.5.30-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,6CAA6C,OAAS,OAAO,KAAO,orUAAysU,MAAQ","file":"static/js/102.aeb0b34b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.30 Release\",\"description\":\"Song of the Elves, and item despawn timers\",\"author\":\"Adam\",\"body\":\"We have been diligently working off the SotE meta\\nissue over the last week, as\\nit touches a lot of the plugins and features. Much of it is done and included in\\nthis release:
\\n\\nAdd divine potion timers to the timers plugin \\nAdd Zalcano respawn timer to the boss plugin \\nAdd Prifddinas farming patches to the time tracking plugin \\nAdd Gauntlet kill count and personal best support to chat commands \\nAdd Prifddinas agility course "kill count" and personal best to chat commands \\nUpdates to the world map:\\n\\nAdd SotE quest start \\nAdd rare tree, transportation, and shortcut tooltips \\nFix Elf camp teleport location \\nAdd farming patch tooltips \\nAdd teleport crystal locations \\nAdd minigame icon to the Gauntlet \\n \\n \\nAdd Prifddinas agility course to the agility plugin \\nAdd Prifddinas mining rocks to the mining plugin \\nAdd Gauntlet and Prifddinas Crystal Chest to loot tracking plugin \\nAdd crystal tree and agility course to the skill calculator \\nAdd Gauntlet consumable information to the item stats plugin, and to potion\\ntimers \\nAdd Prifddinas and surrounding areas to the skybox plugin \\nAdd Prifddinas and surrounding areas to the possible Discord locations \\nAdd crystal sapling to the item identification plugin \\nAdd new crystal tools to the idle notifier \\nAdd crystal axe to woodcutting plugin and wintertodt plugin \\nAdd crystal pickaxe to motherlode plugin \\nAdd crystal implings to the impling plugin \\n \\nItem despawn timers have been added to the ground items plugin, which show how\\nlong until an item will despawn for items which you drop and receive as loot\\nfrom a PvM kill.
\\n
\\nThe world hopper plugin now has an option to show the current world's ping
\\n
\\nThe clue plugin now shows locations for emote clues on the overlay, instead of\\njust the world map:
\\n
\\nThe bank tags plugin now has an interface for searching items to use for the tab\\nicon. This allows you to easily set the tab icon to items you do not have.
\\n
\\nThe raids scouter plugin now broadcasts scouted raids to your RuneLite party
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix tracking of Jad and Zuk personal best \\nShow grand exchange value when examining items in the seed vault \\nThe quest list plugin now has an additional filter to show uncompleted quests\\nonly \\nAdd support for Lava Eels to the fishing plugin \\nFix world map quest marker for Depths of Despair \\nAdd Hespori to the loot tracker \\nThe item prices plugin can now show HA profit when casting on items \\nChange "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs \\nAdd option to add skill xptrackers to the canvas on the skill menu tab \\nFix removing teleblock timer when your opponent who cast the teleblock dies \\nAdd total points and points per hour to the NMZ overlay \\nFix the zoom plugin control reset config value to be properly bounded to\\nvalid values \\nAdd 2005 style sprite override for friend/ignore list toggle icon \\nThe item charges plugin now supports Rings of Forging \\nAdd gnome stronghold fishing spots to fishing plugin \\nIncrease smelting overlay timeout to account for cannonballs \\nFix the XP tracker rounding to not show 100% prior to gaining a level \\nIgnore player loot at LMS in the loot tracker \\nChange Chaos Elemental respawn timer to 60 seconds \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 29 contributors this release!
\\n15987632 (3):\\n hot cold clues: center kandarin outpost dig location\\n hot cold clues: center level 38 wilderness dig location\\n hot cold clues: center zeah lovakite furnace dig location\\n\\nAdam (17):\\n api: mark getItemDefinition as nonnull\\n ovelay renderer: more gracefully handle exceptions\\n tooltip overlay: move tooltip clearing to a finally block\\n tooltip component: fix exception from malformed tags\\n api: rename Item to TileItem and add Item value class\\n client: change item layer item uages to TileItem\\n chatfilter test: remove player bind\\n grounditems: add despawn timers\\n loot tracker: fix HERBIBOAR_EVENT name typo\\n timers: add divine potions\\n chat commands: add gauntlet kc\\n fps plugin: move fps off logout button on bottom line mode\\n world hopper: change ping task to ping one world\\n world hopper: add option to show current world ping\\n chat commands: fix tracking zuk pb\\n chat commands: add gg pb\\n chat commands: add guantlet pb\\n\\nAdam Witkowski (1):\\n itemstats: Add support for Tai Bwo Wannai food (spiders on stick) (#9485)\\n\\nAlexsuperfly (19):\\n loot tracker: add Elven Crystal Chest\\n world map: add song of the elves quest location\\n world map: add Prifddinas rare tree icons\\n world map: add Prifddinas tranportation icons\\n world map: add teleport crytal icon\\n world map: elf camp -> Iorwerth camp teleport scroll\\n world map: add Prifddinas farming patch icons\\n world map: add elven overpass shortcuts on Prifddinas map\\n world map: add Iorwerths dungeon agility shortcut icons\\n world map: add gauntlet minigame icon\\n bosstimers: add Zalcano\\n AnimationID: add crystal and new dragon orn tools\\n idle notifier: add ids for crystal and new dragon orn tools\\n woodcutting: add crystal axe to axe enum\\n motherlode: update animation id set with new crystal and dragon tools\\n skill calc: add Prifddinas agility course\\n skill calc: add crystal tree\\n discord: add Prifddinas locations\\n wintertodt: add crystal axe to animation list\\n\\nAndrew Benson (1):\\n Fix Ardounge -> Ardougne typo in cryptic clue description (#9460)\\n\\nAttackOfTheMoons (3):\\n Fix casing in shiftClickActionIndex (#9404)\\n examine: Add support for examining Seed Vault items (#9431)\\n slayer: Fix NPE when getting unsupported task (#9490)\\n\\nDaniel Serpa (1):\\n quest list plugin: add not completed filter\\n\\nDavid (6):\\n clue plugin: add locations to emote clues\\n Add GE limit for Drift net (#9411)\\n Add new Jethic medium clue step (#9456)\\n impling plugin: add Crystal implings\\n fishing: Add support for Lava Eeels (#9477)\\n worldmap: Fix quest marker for Depths of Despair (#9506)\\n\\nDecorth (1):\\n loottracker: Add Hespori loot tracking\\n\\nGamma91 (1):\\n mining plugin: add Prifddinas rocks\\n\\nGustavo Rodrigues (1):\\n Added infernal cape and infernal max cape to master clue scroll step\\n\\nHydrox6 (2):\\n cluescrolls: add dragon pick (or) to master emote clue\\n Add item mappings for crystal equipment\\n\\nJacky L (1):\\n Show HA profit while casting HA on items (#9070)\\n\\nJordan Atwood (7):\\n groundmarkerplugin: Use RUNELITE menu action\\n timersplugin: Escape periods in teleblock patterns\\n npcindicators: Use "Un-tag" menu option for tagged NPCs\\n objectindicators: Use "Unmark" menu option for marked objects\\n groundmarkers: Use "Unmark" menu option for marked tiles\\n overlaymanager: Add anyMatch method\\n xptrackerplugin: Add canvas menu options to skill tab\\n\\nMax Weber (13):\\n runelite-api Remove WidgetPositioned\\n Revert "Shutdown plugins on window close"\\n runelite-client: remove RuneLiteModuleTest\\n runelite-client: Don't write all images to disk when loading them\\n ChatboxPerformancePlugin: Hook the cs2 to know when to rebuild\\n BankTags: Call scripts with all of their arguments explicitly\\n runelite-client: Start the ClientLoader running before injection starts\\n runelite-client: Preload certain slow classes\\n Update Quest Enum to latest cache\\n timetracking: Support Prifddinas patches\\n agility: Support Prifddinas course\\n Skybox: Add Prifddinas and Iorwerth dungeon\\n itemidentification: Add crystal sapling\\n\\nQuasindro (1):\\n nmz: Add total and per hour points to NMZ overlay\\n\\nRon Young (3):\\n api: import itemCount\\n chatbox: add ChatboxItemSearch\\n TabInterface: add item searching for change icon\\n\\nRyan (1):\\n zoom plugin: fix range bounds for ctrl zoom value config\\n\\nSander de Groot (2):\\n interface styles: add sprite override for 2005 friend/ignore list toggle\\n chat filter: fix filtering messages containing nbsp\\n\\nSebastiaanVanspauwen (1):\\n chat commands: add Prifddinas agility course kc and pb\\n\\nTheStonedTurtle (3):\\n loot tracker: add gauntlet support\\n itemstats: add Guantlet food and potion\\n timer plugin: add stamina timer for Guantlet potion\\n\\nTomas Slusny (3):\\n Use GL_DYNAMIC_DRAW for ever-changing uniformBuffer\\n party: add party chat messages\\n raids plugin: send raids layout message to party\\n\\nWilliam Collishaw (2):\\n emoji plugin: support nbsp in messages\\n raids: Switch from Pattern splitting to Text.fromCSV (#9422)\\n\\nZacharias Tyllström (1):\\n item charges: add ring of forging\\n\\ndekvall (2):\\n Add gnome stronghold fishing spots to fishing plugin (#9444)\\n Increase timeout for smelting overlay to handle cannonballs (#9448)\\n\\njdkleuver (1):\\n xp tracker: Change rounding mode so that it rounds down rather than up (#9378)\\n\\npsikoi (1):\\n loot tracker: ignore player loot in LMS\\n\\nrlw0014 (1):\\n timer plugin: remove tb timer when opponent dies\\n\\nxDemoN (1):\\n clue scrolls: Use consistent label for "Location" (#9421)\\n
\\n\",\"image\":\"/img/blog/1.5.30-Release/despawntimer.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/103.e0b59f1d.chunk.js b/static/js/103.196adb12.chunk.js
similarity index 98%
rename from static/js/103.e0b59f1d.chunk.js
rename to static/js/103.196adb12.chunk.js
index a55de38c1..3505496eb 100644
--- a/static/js/103.e0b59f1d.chunk.js
+++ b/static/js/103.196adb12.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[103],{378:function(e,n){e.exports={title:"1.5.31 Release",description:"Challenge clues, splash screen, and loot tracker improvements",author:"Adam",body:'The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania
\n
\nThe clue plugin now supports Sherlock challenge clues
\n
\nA loading splash screen was added which shows the client load progress when it\nis starting. It also includes better error handling, so if the client fails to\nstart it will show a prompt with the reason and possible resolution steps.
\n
\nA launcher release is planned soon to include a similar themed loading screen,\nand the improved error handling.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix wasd camera sometimes blocking messages from being sent \nUpdated the XP tracker to try to account for offline xp gain (from eg. mobile)\nand not factor it into XP/hr \nAdd the remaining new SotE clue steps \nUpdate Prifddinas course xp rates \nAdd four dose stamina to herblore calculator \nAdd Dragon bolts to skill calculator \nAdd ferrets to the hunter plugin \nAdd arrow fletching to idle notifier \nAdd Isafdar tripwire to agility shortcuts \nAdd Sarachnis task to the slayer plugin \nFix items on death plugin values for repairable untradeables \nAdd volcanic mine entrance to menu entry swapper \nFix a bug causing the attack styles plugin to not hide attack styles properly\nfor certain weapon switches \nFix loot tracker loot loading on startup to place newer loot at the top \nFix mining plugin respawn timers in the wilderness resource area, and on Miscellania \nAdd Trollweiss Mountain Cave agility shortcut \nFix camera effects from drunkenness and the fishing trawler with the GPU\nplugin \nFix bug causing bank tag tabs to sometimes not automatically reopen when the\nbank is opened \nFix clipping of world map tooltips \nAdd divine potions to item stats plugin \n \nWe are aware of the client pauses common in the demonic gorilla cavern. Some\noptimization work has gone into this release which should reduce the frequency\nof the pauses. We hope this combined with the upcoming launcher release, which\nincludes a newer version of Java with increased performance characteristics,\nwill solve this issue for most players.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 24 contributors this release!
\n15987632 (2):\n hot cold clues: center northern blast mine dig location\n hot cold clues: center eastern part of piscatoris hunter area dig location\n\nAdam (18):\n client: cache and reuse Graphics\n client: cache config values\n slayer plugin: validate !task name and location\n slayer plugin: fix task lookup test\n keyremapping: fix race with sending messages and clearing chat input\n config service: return status based on whether set/unset were successful\n config service: add test for parseJsonString\n config service: validate config values\n xptracker: update lastXp after submitting xp gains\n xptracker: move initialization until after login\n xptracker: support xp gains when offline\n cml plugin: fix request throttling\n http-service: use jndi provided mongo\n http-service: remove inferred destroy method on mongo client bean\n osbuddy client: update exchange summary location\n osbuddy client: set UA to RuneLite\n overlay renderer: reduce graphics properties copying\n overlay renderer: remove unnecessary color resetting\n\nAlexsuperfly (10):\n clues: add RUE GO anagram\n clues: add Lady Trahaearn cryptic\n clues: add elvish onions cryptic\n clues: update bow near Lord Iorwerth emote\n clues: add bow in the Iorwerth camp emote\n clues: add beckon by crystalline maple trees emote\n agility: update prif last obstacle exp\n agility: update prif whole course exp\n skill calc: update prif course\n clues: update Falo crystal bow items\n\nBrady (1):\n skill calc: Add four dose stamina to herblore calculator (#4689)\n\nDaniel (1):\n Loot Tracker: Allow loot boxes to be collapsed (#9439)\n\nDaniel Bolink (2):\n achievmentdiary: Update Ardougne Hard diary text (#9551)\n loot tracker: add Kingdom of Miscellania\n\nDavid (2):\n skill calc: Add Dragon bolts (#9552)\n ge: Add item limits for redwood and celastrus seeds/saplings (#9476)\n\nDylan Smith (1):\n cluescrolls: Add the new General Hining cryptic clue (#9613)\n\nGustavo Rodrigues (1):\n hunter: Add support for ferrets (#9524)\n\nHydrox6 (8):\n idle notifier: notify when adding feathers or heads to shafts\n Move Item Requirement code from EmoteClue to its own sub-package\n Add support for named AllRequirementsCollections\n Add support for Challenge Clues\n clues: remove mis-categorised skill challenge\n item prices: show alch price while selecting item to alch\n item prices: show alch price when alching with Explorer\'s Ring interface\n Add new crystal equipment IDs to the Item Mapping\n\nIan Gibson (1):\n clue plugin: update Monk camp clue location\n\nJordan Atwood (1):\n hotcold: Center level 5 wilderness location\n\nKrysa (1):\n agility shotcuts: add Isafdar tripwire\n\nMax Weber (8):\n ClanManager: handle startup with an empty cache\n runelite-api: Annotate script ids with their argument counts\n runelite-api: allow runScript to take a plain Object...\n runelite-client: Call scripts with the correct number of arguments\n runelite-client: Add loading splash screen\n runelite-client: Make RuneLiteProperties fully static\n runelite-client: Add fatal error dialog\n runelite-client: Bypass Jagex load balancer if we can\'t connect\n\nMaxwell Chow (1):\n discord: Fix spelling errors in Discord status locations (#9615)\n\nNate Brown (1):\n slayer plugin: add Sarachnis task\n\nRon Young (1):\n colorpicker: force hex color to update on window close\n\nTheStonedTurtle (2):\n Fix BrokenOnDeathItems death value by adding repair price\n menuentryswapper - Add volcanic mine entrance to swapQuick\n\nTomas Slusny (1):\n Snapshot all grahics2d properties in safeRender\n\nToocanzs (1):\n fix MSAA white pixels\n\ndekvall (7):\n Disable inventory grid if the dragged item is removed\n attack styles: fix NPE in overlay\n attack styles: fix hide styles on weapon change\n loottracker: remove timestamp from LootTrackerRecord\n loottracker: fix order on client reload\n examine plugin: remove examine value for coins\n mining plugin: fix respawn timers in misc and resource area\n\ntortuga69 (2):\n grandexchange: Add Forthos Dungeon item buy limits (#9540)\n Add support for Trollweiss Mountain Cave agility shortcut (#9543)\n\ntrimbe (6):\n gpu plugin: fix camera effects used for drunkeness and fishing trawler\n api: remove devtools annotation and rename setSetting\n bank tags: use setVarbit instead of setVarbitValue\n bank tags: properly open saved tab\n hot cold: center \'west of farming guild\' location\n world map: correct canvas bounds location and clip tooltips properly\n\nxdesr (1):\n item stats: add divine potions\n
\n',image:"/img/blog/1.5.31-Release/lootcollapse.png"}}}]);
-//# sourceMappingURL=103.e0b59f1d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[103],{379:function(e,n){e.exports={title:"1.5.31 Release",description:"Challenge clues, splash screen, and loot tracker improvements",author:"Adam",body:'The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania
\n
\nThe clue plugin now supports Sherlock challenge clues
\n
\nA loading splash screen was added which shows the client load progress when it\nis starting. It also includes better error handling, so if the client fails to\nstart it will show a prompt with the reason and possible resolution steps.
\n
\nA launcher release is planned soon to include a similar themed loading screen,\nand the improved error handling.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix wasd camera sometimes blocking messages from being sent \nUpdated the XP tracker to try to account for offline xp gain (from eg. mobile)\nand not factor it into XP/hr \nAdd the remaining new SotE clue steps \nUpdate Prifddinas course xp rates \nAdd four dose stamina to herblore calculator \nAdd Dragon bolts to skill calculator \nAdd ferrets to the hunter plugin \nAdd arrow fletching to idle notifier \nAdd Isafdar tripwire to agility shortcuts \nAdd Sarachnis task to the slayer plugin \nFix items on death plugin values for repairable untradeables \nAdd volcanic mine entrance to menu entry swapper \nFix a bug causing the attack styles plugin to not hide attack styles properly\nfor certain weapon switches \nFix loot tracker loot loading on startup to place newer loot at the top \nFix mining plugin respawn timers in the wilderness resource area, and on Miscellania \nAdd Trollweiss Mountain Cave agility shortcut \nFix camera effects from drunkenness and the fishing trawler with the GPU\nplugin \nFix bug causing bank tag tabs to sometimes not automatically reopen when the\nbank is opened \nFix clipping of world map tooltips \nAdd divine potions to item stats plugin \n \nWe are aware of the client pauses common in the demonic gorilla cavern. Some\noptimization work has gone into this release which should reduce the frequency\nof the pauses. We hope this combined with the upcoming launcher release, which\nincludes a newer version of Java with increased performance characteristics,\nwill solve this issue for most players.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 24 contributors this release!
\n15987632 (2):\n hot cold clues: center northern blast mine dig location\n hot cold clues: center eastern part of piscatoris hunter area dig location\n\nAdam (18):\n client: cache and reuse Graphics\n client: cache config values\n slayer plugin: validate !task name and location\n slayer plugin: fix task lookup test\n keyremapping: fix race with sending messages and clearing chat input\n config service: return status based on whether set/unset were successful\n config service: add test for parseJsonString\n config service: validate config values\n xptracker: update lastXp after submitting xp gains\n xptracker: move initialization until after login\n xptracker: support xp gains when offline\n cml plugin: fix request throttling\n http-service: use jndi provided mongo\n http-service: remove inferred destroy method on mongo client bean\n osbuddy client: update exchange summary location\n osbuddy client: set UA to RuneLite\n overlay renderer: reduce graphics properties copying\n overlay renderer: remove unnecessary color resetting\n\nAlexsuperfly (10):\n clues: add RUE GO anagram\n clues: add Lady Trahaearn cryptic\n clues: add elvish onions cryptic\n clues: update bow near Lord Iorwerth emote\n clues: add bow in the Iorwerth camp emote\n clues: add beckon by crystalline maple trees emote\n agility: update prif last obstacle exp\n agility: update prif whole course exp\n skill calc: update prif course\n clues: update Falo crystal bow items\n\nBrady (1):\n skill calc: Add four dose stamina to herblore calculator (#4689)\n\nDaniel (1):\n Loot Tracker: Allow loot boxes to be collapsed (#9439)\n\nDaniel Bolink (2):\n achievmentdiary: Update Ardougne Hard diary text (#9551)\n loot tracker: add Kingdom of Miscellania\n\nDavid (2):\n skill calc: Add Dragon bolts (#9552)\n ge: Add item limits for redwood and celastrus seeds/saplings (#9476)\n\nDylan Smith (1):\n cluescrolls: Add the new General Hining cryptic clue (#9613)\n\nGustavo Rodrigues (1):\n hunter: Add support for ferrets (#9524)\n\nHydrox6 (8):\n idle notifier: notify when adding feathers or heads to shafts\n Move Item Requirement code from EmoteClue to its own sub-package\n Add support for named AllRequirementsCollections\n Add support for Challenge Clues\n clues: remove mis-categorised skill challenge\n item prices: show alch price while selecting item to alch\n item prices: show alch price when alching with Explorer\'s Ring interface\n Add new crystal equipment IDs to the Item Mapping\n\nIan Gibson (1):\n clue plugin: update Monk camp clue location\n\nJordan Atwood (1):\n hotcold: Center level 5 wilderness location\n\nKrysa (1):\n agility shotcuts: add Isafdar tripwire\n\nMax Weber (8):\n ClanManager: handle startup with an empty cache\n runelite-api: Annotate script ids with their argument counts\n runelite-api: allow runScript to take a plain Object...\n runelite-client: Call scripts with the correct number of arguments\n runelite-client: Add loading splash screen\n runelite-client: Make RuneLiteProperties fully static\n runelite-client: Add fatal error dialog\n runelite-client: Bypass Jagex load balancer if we can\'t connect\n\nMaxwell Chow (1):\n discord: Fix spelling errors in Discord status locations (#9615)\n\nNate Brown (1):\n slayer plugin: add Sarachnis task\n\nRon Young (1):\n colorpicker: force hex color to update on window close\n\nTheStonedTurtle (2):\n Fix BrokenOnDeathItems death value by adding repair price\n menuentryswapper - Add volcanic mine entrance to swapQuick\n\nTomas Slusny (1):\n Snapshot all grahics2d properties in safeRender\n\nToocanzs (1):\n fix MSAA white pixels\n\ndekvall (7):\n Disable inventory grid if the dragged item is removed\n attack styles: fix NPE in overlay\n attack styles: fix hide styles on weapon change\n loottracker: remove timestamp from LootTrackerRecord\n loottracker: fix order on client reload\n examine plugin: remove examine value for coins\n mining plugin: fix respawn timers in misc and resource area\n\ntortuga69 (2):\n grandexchange: Add Forthos Dungeon item buy limits (#9540)\n Add support for Trollweiss Mountain Cave agility shortcut (#9543)\n\ntrimbe (6):\n gpu plugin: fix camera effects used for drunkeness and fishing trawler\n api: remove devtools annotation and rename setSetting\n bank tags: use setVarbit instead of setVarbitValue\n bank tags: properly open saved tab\n hot cold: center \'west of farming guild\' location\n world map: correct canvas bounds location and clip tooltips properly\n\nxdesr (1):\n item stats: add divine potions\n
\n',image:"/img/blog/1.5.31-Release/lootcollapse.png"}}}]);
+//# sourceMappingURL=103.196adb12.chunk.js.map
\ No newline at end of file
diff --git a/static/js/103.e0b59f1d.chunk.js.map b/static/js/103.196adb12.chunk.js.map
similarity index 99%
rename from static/js/103.e0b59f1d.chunk.js.map
rename to static/js/103.196adb12.chunk.js.map
index 51b529bfc..36e22da0f 100644
--- a/static/js/103.e0b59f1d.chunk.js.map
+++ b/static/js/103.196adb12.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-08-15-10-00-1.5.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gEAAgE,OAAS,OAAO,KAAO,g8OAAw8O,MAAQ","file":"static/js/103.e0b59f1d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.31 Release\",\"description\":\"Challenge clues, splash screen, and loot tracker improvements\",\"author\":\"Adam\",\"body\":\"The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania
\\n
\\nThe clue plugin now supports Sherlock challenge clues
\\n
\\nA loading splash screen was added which shows the client load progress when it\\nis starting. It also includes better error handling, so if the client fails to\\nstart it will show a prompt with the reason and possible resolution steps.
\\n
\\nA launcher release is planned soon to include a similar themed loading screen,\\nand the improved error handling.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix wasd camera sometimes blocking messages from being sent \\nUpdated the XP tracker to try to account for offline xp gain (from eg. mobile)\\nand not factor it into XP/hr \\nAdd the remaining new SotE clue steps \\nUpdate Prifddinas course xp rates \\nAdd four dose stamina to herblore calculator \\nAdd Dragon bolts to skill calculator \\nAdd ferrets to the hunter plugin \\nAdd arrow fletching to idle notifier \\nAdd Isafdar tripwire to agility shortcuts \\nAdd Sarachnis task to the slayer plugin \\nFix items on death plugin values for repairable untradeables \\nAdd volcanic mine entrance to menu entry swapper \\nFix a bug causing the attack styles plugin to not hide attack styles properly\\nfor certain weapon switches \\nFix loot tracker loot loading on startup to place newer loot at the top \\nFix mining plugin respawn timers in the wilderness resource area, and on Miscellania \\nAdd Trollweiss Mountain Cave agility shortcut \\nFix camera effects from drunkenness and the fishing trawler with the GPU\\nplugin \\nFix bug causing bank tag tabs to sometimes not automatically reopen when the\\nbank is opened \\nFix clipping of world map tooltips \\nAdd divine potions to item stats plugin \\n \\nWe are aware of the client pauses common in the demonic gorilla cavern. Some\\noptimization work has gone into this release which should reduce the frequency\\nof the pauses. We hope this combined with the upcoming launcher release, which\\nincludes a newer version of Java with increased performance characteristics,\\nwill solve this issue for most players.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 24 contributors this release!
\\n15987632 (2):\\n hot cold clues: center northern blast mine dig location\\n hot cold clues: center eastern part of piscatoris hunter area dig location\\n\\nAdam (18):\\n client: cache and reuse Graphics\\n client: cache config values\\n slayer plugin: validate !task name and location\\n slayer plugin: fix task lookup test\\n keyremapping: fix race with sending messages and clearing chat input\\n config service: return status based on whether set/unset were successful\\n config service: add test for parseJsonString\\n config service: validate config values\\n xptracker: update lastXp after submitting xp gains\\n xptracker: move initialization until after login\\n xptracker: support xp gains when offline\\n cml plugin: fix request throttling\\n http-service: use jndi provided mongo\\n http-service: remove inferred destroy method on mongo client bean\\n osbuddy client: update exchange summary location\\n osbuddy client: set UA to RuneLite\\n overlay renderer: reduce graphics properties copying\\n overlay renderer: remove unnecessary color resetting\\n\\nAlexsuperfly (10):\\n clues: add RUE GO anagram\\n clues: add Lady Trahaearn cryptic\\n clues: add elvish onions cryptic\\n clues: update bow near Lord Iorwerth emote\\n clues: add bow in the Iorwerth camp emote\\n clues: add beckon by crystalline maple trees emote\\n agility: update prif last obstacle exp\\n agility: update prif whole course exp\\n skill calc: update prif course\\n clues: update Falo crystal bow items\\n\\nBrady (1):\\n skill calc: Add four dose stamina to herblore calculator (#4689)\\n\\nDaniel (1):\\n Loot Tracker: Allow loot boxes to be collapsed (#9439)\\n\\nDaniel Bolink (2):\\n achievmentdiary: Update Ardougne Hard diary text (#9551)\\n loot tracker: add Kingdom of Miscellania\\n\\nDavid (2):\\n skill calc: Add Dragon bolts (#9552)\\n ge: Add item limits for redwood and celastrus seeds/saplings (#9476)\\n\\nDylan Smith (1):\\n cluescrolls: Add the new General Hining cryptic clue (#9613)\\n\\nGustavo Rodrigues (1):\\n hunter: Add support for ferrets (#9524)\\n\\nHydrox6 (8):\\n idle notifier: notify when adding feathers or heads to shafts\\n Move Item Requirement code from EmoteClue to its own sub-package\\n Add support for named AllRequirementsCollections\\n Add support for Challenge Clues\\n clues: remove mis-categorised skill challenge\\n item prices: show alch price while selecting item to alch\\n item prices: show alch price when alching with Explorer's Ring interface\\n Add new crystal equipment IDs to the Item Mapping\\n\\nIan Gibson (1):\\n clue plugin: update Monk camp clue location\\n\\nJordan Atwood (1):\\n hotcold: Center level 5 wilderness location\\n\\nKrysa (1):\\n agility shotcuts: add Isafdar tripwire\\n\\nMax Weber (8):\\n ClanManager: handle startup with an empty cache\\n runelite-api: Annotate script ids with their argument counts\\n runelite-api: allow runScript to take a plain Object...\\n runelite-client: Call scripts with the correct number of arguments\\n runelite-client: Add loading splash screen\\n runelite-client: Make RuneLiteProperties fully static\\n runelite-client: Add fatal error dialog\\n runelite-client: Bypass Jagex load balancer if we can't connect\\n\\nMaxwell Chow (1):\\n discord: Fix spelling errors in Discord status locations (#9615)\\n\\nNate Brown (1):\\n slayer plugin: add Sarachnis task\\n\\nRon Young (1):\\n colorpicker: force hex color to update on window close\\n\\nTheStonedTurtle (2):\\n Fix BrokenOnDeathItems death value by adding repair price\\n menuentryswapper - Add volcanic mine entrance to swapQuick\\n\\nTomas Slusny (1):\\n Snapshot all grahics2d properties in safeRender\\n\\nToocanzs (1):\\n fix MSAA white pixels\\n\\ndekvall (7):\\n Disable inventory grid if the dragged item is removed\\n attack styles: fix NPE in overlay\\n attack styles: fix hide styles on weapon change\\n loottracker: remove timestamp from LootTrackerRecord\\n loottracker: fix order on client reload\\n examine plugin: remove examine value for coins\\n mining plugin: fix respawn timers in misc and resource area\\n\\ntortuga69 (2):\\n grandexchange: Add Forthos Dungeon item buy limits (#9540)\\n Add support for Trollweiss Mountain Cave agility shortcut (#9543)\\n\\ntrimbe (6):\\n gpu plugin: fix camera effects used for drunkeness and fishing trawler\\n api: remove devtools annotation and rename setSetting\\n bank tags: use setVarbit instead of setVarbitValue\\n bank tags: properly open saved tab\\n hot cold: center 'west of farming guild' location\\n world map: correct canvas bounds location and clip tooltips properly\\n\\nxdesr (1):\\n item stats: add divine potions\\n
\\n\",\"image\":\"/img/blog/1.5.31-Release/lootcollapse.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-08-15-10-00-1.5.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gEAAgE,OAAS,OAAO,KAAO,g8OAAw8O,MAAQ","file":"static/js/103.196adb12.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.31 Release\",\"description\":\"Challenge clues, splash screen, and loot tracker improvements\",\"author\":\"Adam\",\"body\":\"The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania
\\n
\\nThe clue plugin now supports Sherlock challenge clues
\\n
\\nA loading splash screen was added which shows the client load progress when it\\nis starting. It also includes better error handling, so if the client fails to\\nstart it will show a prompt with the reason and possible resolution steps.
\\n
\\nA launcher release is planned soon to include a similar themed loading screen,\\nand the improved error handling.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix wasd camera sometimes blocking messages from being sent \\nUpdated the XP tracker to try to account for offline xp gain (from eg. mobile)\\nand not factor it into XP/hr \\nAdd the remaining new SotE clue steps \\nUpdate Prifddinas course xp rates \\nAdd four dose stamina to herblore calculator \\nAdd Dragon bolts to skill calculator \\nAdd ferrets to the hunter plugin \\nAdd arrow fletching to idle notifier \\nAdd Isafdar tripwire to agility shortcuts \\nAdd Sarachnis task to the slayer plugin \\nFix items on death plugin values for repairable untradeables \\nAdd volcanic mine entrance to menu entry swapper \\nFix a bug causing the attack styles plugin to not hide attack styles properly\\nfor certain weapon switches \\nFix loot tracker loot loading on startup to place newer loot at the top \\nFix mining plugin respawn timers in the wilderness resource area, and on Miscellania \\nAdd Trollweiss Mountain Cave agility shortcut \\nFix camera effects from drunkenness and the fishing trawler with the GPU\\nplugin \\nFix bug causing bank tag tabs to sometimes not automatically reopen when the\\nbank is opened \\nFix clipping of world map tooltips \\nAdd divine potions to item stats plugin \\n \\nWe are aware of the client pauses common in the demonic gorilla cavern. Some\\noptimization work has gone into this release which should reduce the frequency\\nof the pauses. We hope this combined with the upcoming launcher release, which\\nincludes a newer version of Java with increased performance characteristics,\\nwill solve this issue for most players.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 24 contributors this release!
\\n15987632 (2):\\n hot cold clues: center northern blast mine dig location\\n hot cold clues: center eastern part of piscatoris hunter area dig location\\n\\nAdam (18):\\n client: cache and reuse Graphics\\n client: cache config values\\n slayer plugin: validate !task name and location\\n slayer plugin: fix task lookup test\\n keyremapping: fix race with sending messages and clearing chat input\\n config service: return status based on whether set/unset were successful\\n config service: add test for parseJsonString\\n config service: validate config values\\n xptracker: update lastXp after submitting xp gains\\n xptracker: move initialization until after login\\n xptracker: support xp gains when offline\\n cml plugin: fix request throttling\\n http-service: use jndi provided mongo\\n http-service: remove inferred destroy method on mongo client bean\\n osbuddy client: update exchange summary location\\n osbuddy client: set UA to RuneLite\\n overlay renderer: reduce graphics properties copying\\n overlay renderer: remove unnecessary color resetting\\n\\nAlexsuperfly (10):\\n clues: add RUE GO anagram\\n clues: add Lady Trahaearn cryptic\\n clues: add elvish onions cryptic\\n clues: update bow near Lord Iorwerth emote\\n clues: add bow in the Iorwerth camp emote\\n clues: add beckon by crystalline maple trees emote\\n agility: update prif last obstacle exp\\n agility: update prif whole course exp\\n skill calc: update prif course\\n clues: update Falo crystal bow items\\n\\nBrady (1):\\n skill calc: Add four dose stamina to herblore calculator (#4689)\\n\\nDaniel (1):\\n Loot Tracker: Allow loot boxes to be collapsed (#9439)\\n\\nDaniel Bolink (2):\\n achievmentdiary: Update Ardougne Hard diary text (#9551)\\n loot tracker: add Kingdom of Miscellania\\n\\nDavid (2):\\n skill calc: Add Dragon bolts (#9552)\\n ge: Add item limits for redwood and celastrus seeds/saplings (#9476)\\n\\nDylan Smith (1):\\n cluescrolls: Add the new General Hining cryptic clue (#9613)\\n\\nGustavo Rodrigues (1):\\n hunter: Add support for ferrets (#9524)\\n\\nHydrox6 (8):\\n idle notifier: notify when adding feathers or heads to shafts\\n Move Item Requirement code from EmoteClue to its own sub-package\\n Add support for named AllRequirementsCollections\\n Add support for Challenge Clues\\n clues: remove mis-categorised skill challenge\\n item prices: show alch price while selecting item to alch\\n item prices: show alch price when alching with Explorer's Ring interface\\n Add new crystal equipment IDs to the Item Mapping\\n\\nIan Gibson (1):\\n clue plugin: update Monk camp clue location\\n\\nJordan Atwood (1):\\n hotcold: Center level 5 wilderness location\\n\\nKrysa (1):\\n agility shotcuts: add Isafdar tripwire\\n\\nMax Weber (8):\\n ClanManager: handle startup with an empty cache\\n runelite-api: Annotate script ids with their argument counts\\n runelite-api: allow runScript to take a plain Object...\\n runelite-client: Call scripts with the correct number of arguments\\n runelite-client: Add loading splash screen\\n runelite-client: Make RuneLiteProperties fully static\\n runelite-client: Add fatal error dialog\\n runelite-client: Bypass Jagex load balancer if we can't connect\\n\\nMaxwell Chow (1):\\n discord: Fix spelling errors in Discord status locations (#9615)\\n\\nNate Brown (1):\\n slayer plugin: add Sarachnis task\\n\\nRon Young (1):\\n colorpicker: force hex color to update on window close\\n\\nTheStonedTurtle (2):\\n Fix BrokenOnDeathItems death value by adding repair price\\n menuentryswapper - Add volcanic mine entrance to swapQuick\\n\\nTomas Slusny (1):\\n Snapshot all grahics2d properties in safeRender\\n\\nToocanzs (1):\\n fix MSAA white pixels\\n\\ndekvall (7):\\n Disable inventory grid if the dragged item is removed\\n attack styles: fix NPE in overlay\\n attack styles: fix hide styles on weapon change\\n loottracker: remove timestamp from LootTrackerRecord\\n loottracker: fix order on client reload\\n examine plugin: remove examine value for coins\\n mining plugin: fix respawn timers in misc and resource area\\n\\ntortuga69 (2):\\n grandexchange: Add Forthos Dungeon item buy limits (#9540)\\n Add support for Trollweiss Mountain Cave agility shortcut (#9543)\\n\\ntrimbe (6):\\n gpu plugin: fix camera effects used for drunkeness and fishing trawler\\n api: remove devtools annotation and rename setSetting\\n bank tags: use setVarbit instead of setVarbitValue\\n bank tags: properly open saved tab\\n hot cold: center 'west of farming guild' location\\n world map: correct canvas bounds location and clip tooltips properly\\n\\nxdesr (1):\\n item stats: add divine potions\\n
\\n\",\"image\":\"/img/blog/1.5.31-Release/lootcollapse.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/104.2b4991e9.chunk.js b/static/js/104.a734d402.chunk.js
similarity index 89%
rename from static/js/104.2b4991e9.chunk.js
rename to static/js/104.a734d402.chunk.js
index 825503add..44ef9ac3d 100644
--- a/static/js/104.2b4991e9.chunk.js
+++ b/static/js/104.a734d402.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[104],{379:function(e,n){e.exports={title:"Launcher 2.0 Release",description:"",author:"Adam",body:'The launcher has been updated to 2.0. This release bundles Java 11, and if you\nwish to run the jar directly, requires Java 11. It also includes a new loading\nsplash screen with improved error handling if there is an error when launching\nthe client.
\nLauncher updates require manually downloading and installing the new launcher.\nHowever if you do not have problems with the existing version I would not\nrecommend downloading the newer one just because it is newer.
\nThe Windows binaries remain digitially signed by Alexander Henne
for\nverification. Regardless, Windows SmartScreen tends to block new executables\nanyway, so if it doesn\'t work try downloading the old\nlauncher instead.
\nAdam
\n'}}}]);
-//# sourceMappingURL=104.2b4991e9.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[104],{380:function(e,n){e.exports={title:"Launcher 2.0 Release",description:"",author:"Adam",body:'The launcher has been updated to 2.0. This release bundles Java 11, and if you\nwish to run the jar directly, requires Java 11. It also includes a new loading\nsplash screen with improved error handling if there is an error when launching\nthe client.
\nLauncher updates require manually downloading and installing the new launcher.\nHowever if you do not have problems with the existing version I would not\nrecommend downloading the newer one just because it is newer.
\nThe Windows binaries remain digitially signed by Alexander Henne
for\nverification. Regardless, Windows SmartScreen tends to block new executables\nanyway, so if it doesn\'t work try downloading the old\nlauncher instead.
\nAdam
\n'}}}]);
+//# sourceMappingURL=104.a734d402.chunk.js.map
\ No newline at end of file
diff --git a/static/js/104.2b4991e9.chunk.js.map b/static/js/104.a734d402.chunk.js.map
similarity index 94%
rename from static/js/104.2b4991e9.chunk.js.map
rename to static/js/104.a734d402.chunk.js.map
index c4b549406..9847f56fa 100644
--- a/static/js/104.2b4991e9.chunk.js.map
+++ b/static/js/104.a734d402.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-08-16-10-00-Launcher-Release-2.0.0.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,uBAAuB,YAAc,GAAG,OAAS,OAAO,KAAO","file":"static/js/104.2b4991e9.chunk.js","sourcesContent":["module.exports = {\"title\":\"Launcher 2.0 Release\",\"description\":\"\",\"author\":\"Adam\",\"body\":\"The launcher has been updated to 2.0. This release bundles Java 11, and if you\\nwish to run the jar directly, requires Java 11. It also includes a new loading\\nsplash screen with improved error handling if there is an error when launching\\nthe client.
\\nLauncher updates require manually downloading and installing the new launcher.\\nHowever if you do not have problems with the existing version I would not\\nrecommend downloading the newer one just because it is newer.
\\nThe Windows binaries remain digitially signed by Alexander Henne
for\\nverification. Regardless, Windows SmartScreen tends to block new executables\\nanyway, so if it doesn't work try downloading the old\\nlauncher instead.
\\nAdam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-08-16-10-00-Launcher-Release-2.0.0.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,uBAAuB,YAAc,GAAG,OAAS,OAAO,KAAO","file":"static/js/104.a734d402.chunk.js","sourcesContent":["module.exports = {\"title\":\"Launcher 2.0 Release\",\"description\":\"\",\"author\":\"Adam\",\"body\":\"The launcher has been updated to 2.0. This release bundles Java 11, and if you\\nwish to run the jar directly, requires Java 11. It also includes a new loading\\nsplash screen with improved error handling if there is an error when launching\\nthe client.
\\nLauncher updates require manually downloading and installing the new launcher.\\nHowever if you do not have problems with the existing version I would not\\nrecommend downloading the newer one just because it is newer.
\\nThe Windows binaries remain digitially signed by Alexander Henne
for\\nverification. Regardless, Windows SmartScreen tends to block new executables\\nanyway, so if it doesn't work try downloading the old\\nlauncher instead.
\\nAdam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/105.26176ec9.chunk.js b/static/js/105.55b672c7.chunk.js
similarity index 98%
rename from static/js/105.26176ec9.chunk.js
rename to static/js/105.55b672c7.chunk.js
index c461cd14d..385538361 100644
--- a/static/js/105.26176ec9.chunk.js
+++ b/static/js/105.55b672c7.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[105],{380:function(e,n){e.exports={title:"1.5.32 Release",description:"Global pickpocket menu swap, Low Detail auto-reloading, screenshot to clipboard, and de-duplicated stacked fishing spots",author:"Jordan",body:'The Menu Entry Swapper plugin can\nnow swap the "Pickpocket" menu option with the "Talk-to" menu option for all NPCs, not just H.A.M\nmembers. (With the exception of NPCs who can be blackjacked)
\nThe Low Detail plugin will now reload your\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.
\nThe Screenshot plugin\'s Upload setting\nnow allows you to optionally copy the screenshot image to your clipboard when taken. Thanks to\n@Alexsuperfly for this contribution.
\nThe Fishing plugin no longer draws duplicate\nsprites for stacked fishing spots of the same type.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Boosts Information plugin can\nnow toggle displaying combat/non-combat/both boosts \nExamining items found in the seed box will now trigger the Examine\nplugin \nThe overlay renderer now shows drag outlines at their proper locations again \nThe Slayer plugin correctly recognizes Lizard\nand Vampyre tasks \nThe Clue Scroll plugin saw multiple\nfixes, correcting some STASH unit locations, fixing a Song of the Elves-related clue, fixing some\nclue items showing no names, and added some item variants to some item sets \nThe text of a Western Provinces diary step has been updated in the Diary Requirements\nplugin after a change since the\nrelease of the Song of the Elves quest \nThe white pixels which appeared at the edges of game objects for some players while using MSAA\nwith the GPU plugin have been exterminated \nThe Death Indicator plugin will\ncorrectly recognize when players die when respawning in Prifddinas \nBraindeath Island now has a skybox color \nCorrections have been made in the Items Kept on Death\nplugin to show correct values of\nAvernic defenders and Salve amulet (ei)s. \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (24):\n Revert "Merge pull request #9354 from Toocanzs/centroid-fix"\n xptracker: fix calculating xp offset from offline xp\n api: add accessor for GameState state\n api: add setGameState\n low memory plugin: run changeMemoryMode on game thread\n overlay renderer: fix drawing overlay drag bounds\n authfilter: cache sessions\n loot tracker: batch loot submissions\n ui: center fatal error dialog on screen\n rs: validate loaded config\n slayer plugin: update desert lizards task to lizards\n low memory plugin: set low memory mode after startup\n gpu plugin: require high detail textures\n fishing plugin: deduplicate spot overlay color logic\n fishing plugin: don\'t render the same fishing spot twice\n fishingspot: don\'t expose spots map\n api: remove unused Query class\n menu entry swapper: expand talk-to/pickpocket swap to non-blackjack npcs\n Fix some typos\n config manager: overwrite defaults when unable to unmarshall values\n screenshot plugin: add screenshot to clipboard\n runecraft plugin: check config group before updating config\n examine plugin: combine identical widget cases\n examine plugin: add seed box\n\nAlexsuperfly (5):\n slayer plugin: fix unknown tasks not decrementing counter\n slayer: correct Vampyre task spelling\n slayer: add additional target names to Vampyre task\n clues: fix port sarim easy stash plane location\n clues: fix wizards tower bridge plane location\n\nDaniel Bolink (1):\n Update Western Provinces Diary Step after SOTE update\n\nHydrox6 (8):\n clues: correct "Has no one told you it is rude to ask a lady her age?"\n clues: Fix Bryophyta\'s staff having no name\n clues: fix names for skilling outfits\n gpu: fix MSAA white pixels\n agility: fix objectid for Arandar lvl 85 obstacle\n runecraft: fix layer of AbyssOverlay\n clues: fix abyssal head recognition\n death indicator: add prifddinas\n\nJordan Atwood (1):\n slayerplugin: Fix first slayer kill not being registered\n\nQuasindro (1):\n skybox: add Braindeath Island\n\nRon Young (1):\n ChatboxItemSearch: fix null name check\n\nTheStonedTurtle (2):\n itemskeptondeath: fix avernic defender price\n ItemsKeptOnDeath - Add missing salve (ei) price offset\n\nThomas Cedeno (1):\n clues: add agility and max capes to graceful set\n\nchestnut1693 (1):\n boosts: add config to not display combat boosts\n\ndekvall (4):\n Add Nullable to Actor::getName\n Fix NPE in groundmarker plugin\n Add Nullable to Client::getLocalPlayer\n Add Nullable to widget dragging methods\n\nxDemoN (4):\n item mapping: add bird nest variations\n timers: update imbued heart to reset on death\n agility: add missing ladder to prifddinas\n emote: change "stomp" to "stamp"\n
\n'}}}]);
-//# sourceMappingURL=105.26176ec9.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[105],{381:function(e,n){e.exports={title:"1.5.32 Release",description:"Global pickpocket menu swap, Low Detail auto-reloading, screenshot to clipboard, and de-duplicated stacked fishing spots",author:"Jordan",body:'The Menu Entry Swapper plugin can\nnow swap the "Pickpocket" menu option with the "Talk-to" menu option for all NPCs, not just H.A.M\nmembers. (With the exception of NPCs who can be blackjacked)
\nThe Low Detail plugin will now reload your\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.
\nThe Screenshot plugin\'s Upload setting\nnow allows you to optionally copy the screenshot image to your clipboard when taken. Thanks to\n@Alexsuperfly for this contribution.
\nThe Fishing plugin no longer draws duplicate\nsprites for stacked fishing spots of the same type.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Boosts Information plugin can\nnow toggle displaying combat/non-combat/both boosts \nExamining items found in the seed box will now trigger the Examine\nplugin \nThe overlay renderer now shows drag outlines at their proper locations again \nThe Slayer plugin correctly recognizes Lizard\nand Vampyre tasks \nThe Clue Scroll plugin saw multiple\nfixes, correcting some STASH unit locations, fixing a Song of the Elves-related clue, fixing some\nclue items showing no names, and added some item variants to some item sets \nThe text of a Western Provinces diary step has been updated in the Diary Requirements\nplugin after a change since the\nrelease of the Song of the Elves quest \nThe white pixels which appeared at the edges of game objects for some players while using MSAA\nwith the GPU plugin have been exterminated \nThe Death Indicator plugin will\ncorrectly recognize when players die when respawning in Prifddinas \nBraindeath Island now has a skybox color \nCorrections have been made in the Items Kept on Death\nplugin to show correct values of\nAvernic defenders and Salve amulet (ei)s. \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (24):\n Revert "Merge pull request #9354 from Toocanzs/centroid-fix"\n xptracker: fix calculating xp offset from offline xp\n api: add accessor for GameState state\n api: add setGameState\n low memory plugin: run changeMemoryMode on game thread\n overlay renderer: fix drawing overlay drag bounds\n authfilter: cache sessions\n loot tracker: batch loot submissions\n ui: center fatal error dialog on screen\n rs: validate loaded config\n slayer plugin: update desert lizards task to lizards\n low memory plugin: set low memory mode after startup\n gpu plugin: require high detail textures\n fishing plugin: deduplicate spot overlay color logic\n fishing plugin: don\'t render the same fishing spot twice\n fishingspot: don\'t expose spots map\n api: remove unused Query class\n menu entry swapper: expand talk-to/pickpocket swap to non-blackjack npcs\n Fix some typos\n config manager: overwrite defaults when unable to unmarshall values\n screenshot plugin: add screenshot to clipboard\n runecraft plugin: check config group before updating config\n examine plugin: combine identical widget cases\n examine plugin: add seed box\n\nAlexsuperfly (5):\n slayer plugin: fix unknown tasks not decrementing counter\n slayer: correct Vampyre task spelling\n slayer: add additional target names to Vampyre task\n clues: fix port sarim easy stash plane location\n clues: fix wizards tower bridge plane location\n\nDaniel Bolink (1):\n Update Western Provinces Diary Step after SOTE update\n\nHydrox6 (8):\n clues: correct "Has no one told you it is rude to ask a lady her age?"\n clues: Fix Bryophyta\'s staff having no name\n clues: fix names for skilling outfits\n gpu: fix MSAA white pixels\n agility: fix objectid for Arandar lvl 85 obstacle\n runecraft: fix layer of AbyssOverlay\n clues: fix abyssal head recognition\n death indicator: add prifddinas\n\nJordan Atwood (1):\n slayerplugin: Fix first slayer kill not being registered\n\nQuasindro (1):\n skybox: add Braindeath Island\n\nRon Young (1):\n ChatboxItemSearch: fix null name check\n\nTheStonedTurtle (2):\n itemskeptondeath: fix avernic defender price\n ItemsKeptOnDeath - Add missing salve (ei) price offset\n\nThomas Cedeno (1):\n clues: add agility and max capes to graceful set\n\nchestnut1693 (1):\n boosts: add config to not display combat boosts\n\ndekvall (4):\n Add Nullable to Actor::getName\n Fix NPE in groundmarker plugin\n Add Nullable to Client::getLocalPlayer\n Add Nullable to widget dragging methods\n\nxDemoN (4):\n item mapping: add bird nest variations\n timers: update imbued heart to reset on death\n agility: add missing ladder to prifddinas\n emote: change "stomp" to "stamp"\n
\n'}}}]);
+//# sourceMappingURL=105.55b672c7.chunk.js.map
\ No newline at end of file
diff --git a/static/js/105.26176ec9.chunk.js.map b/static/js/105.55b672c7.chunk.js.map
similarity index 99%
rename from static/js/105.26176ec9.chunk.js.map
rename to static/js/105.55b672c7.chunk.js.map
index 71f9eed0c..597c23d41 100644
--- a/static/js/105.26176ec9.chunk.js.map
+++ b/static/js/105.55b672c7.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-08-29-10-00-1.5.32-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2HAA2H,OAAS,SAAS,KAAO","file":"static/js/105.26176ec9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.32 Release\",\"description\":\"Global pickpocket menu swap, Low Detail auto-reloading, screenshot to clipboard, and de-duplicated stacked fishing spots\",\"author\":\"Jordan\",\"body\":\"The Menu Entry Swapper plugin can\\nnow swap the "Pickpocket" menu option with the "Talk-to" menu option for all NPCs, not just H.A.M\\nmembers. (With the exception of NPCs who can be blackjacked)
\\nThe Low Detail plugin will now reload your\\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.
\\nThe Screenshot plugin's Upload setting\\nnow allows you to optionally copy the screenshot image to your clipboard when taken. Thanks to\\n@Alexsuperfly for this contribution.
\\nThe Fishing plugin no longer draws duplicate\\nsprites for stacked fishing spots of the same type.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Boosts Information plugin can\\nnow toggle displaying combat/non-combat/both boosts \\nExamining items found in the seed box will now trigger the Examine\\nplugin \\nThe overlay renderer now shows drag outlines at their proper locations again \\nThe Slayer plugin correctly recognizes Lizard\\nand Vampyre tasks \\nThe Clue Scroll plugin saw multiple\\nfixes, correcting some STASH unit locations, fixing a Song of the Elves-related clue, fixing some\\nclue items showing no names, and added some item variants to some item sets \\nThe text of a Western Provinces diary step has been updated in the Diary Requirements\\nplugin after a change since the\\nrelease of the Song of the Elves quest \\nThe white pixels which appeared at the edges of game objects for some players while using MSAA\\nwith the GPU plugin have been exterminated \\nThe Death Indicator plugin will\\ncorrectly recognize when players die when respawning in Prifddinas \\nBraindeath Island now has a skybox color \\nCorrections have been made in the Items Kept on Death\\nplugin to show correct values of\\nAvernic defenders and Salve amulet (ei)s. \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (24):\\n Revert "Merge pull request #9354 from Toocanzs/centroid-fix"\\n xptracker: fix calculating xp offset from offline xp\\n api: add accessor for GameState state\\n api: add setGameState\\n low memory plugin: run changeMemoryMode on game thread\\n overlay renderer: fix drawing overlay drag bounds\\n authfilter: cache sessions\\n loot tracker: batch loot submissions\\n ui: center fatal error dialog on screen\\n rs: validate loaded config\\n slayer plugin: update desert lizards task to lizards\\n low memory plugin: set low memory mode after startup\\n gpu plugin: require high detail textures\\n fishing plugin: deduplicate spot overlay color logic\\n fishing plugin: don't render the same fishing spot twice\\n fishingspot: don't expose spots map\\n api: remove unused Query class\\n menu entry swapper: expand talk-to/pickpocket swap to non-blackjack npcs\\n Fix some typos\\n config manager: overwrite defaults when unable to unmarshall values\\n screenshot plugin: add screenshot to clipboard\\n runecraft plugin: check config group before updating config\\n examine plugin: combine identical widget cases\\n examine plugin: add seed box\\n\\nAlexsuperfly (5):\\n slayer plugin: fix unknown tasks not decrementing counter\\n slayer: correct Vampyre task spelling\\n slayer: add additional target names to Vampyre task\\n clues: fix port sarim easy stash plane location\\n clues: fix wizards tower bridge plane location\\n\\nDaniel Bolink (1):\\n Update Western Provinces Diary Step after SOTE update\\n\\nHydrox6 (8):\\n clues: correct "Has no one told you it is rude to ask a lady her age?"\\n clues: Fix Bryophyta's staff having no name\\n clues: fix names for skilling outfits\\n gpu: fix MSAA white pixels\\n agility: fix objectid for Arandar lvl 85 obstacle\\n runecraft: fix layer of AbyssOverlay\\n clues: fix abyssal head recognition\\n death indicator: add prifddinas\\n\\nJordan Atwood (1):\\n slayerplugin: Fix first slayer kill not being registered\\n\\nQuasindro (1):\\n skybox: add Braindeath Island\\n\\nRon Young (1):\\n ChatboxItemSearch: fix null name check\\n\\nTheStonedTurtle (2):\\n itemskeptondeath: fix avernic defender price\\n ItemsKeptOnDeath - Add missing salve (ei) price offset\\n\\nThomas Cedeno (1):\\n clues: add agility and max capes to graceful set\\n\\nchestnut1693 (1):\\n boosts: add config to not display combat boosts\\n\\ndekvall (4):\\n Add Nullable to Actor::getName\\n Fix NPE in groundmarker plugin\\n Add Nullable to Client::getLocalPlayer\\n Add Nullable to widget dragging methods\\n\\nxDemoN (4):\\n item mapping: add bird nest variations\\n timers: update imbued heart to reset on death\\n agility: add missing ladder to prifddinas\\n emote: change "stomp" to "stamp"\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-08-29-10-00-1.5.32-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2HAA2H,OAAS,SAAS,KAAO","file":"static/js/105.55b672c7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.32 Release\",\"description\":\"Global pickpocket menu swap, Low Detail auto-reloading, screenshot to clipboard, and de-duplicated stacked fishing spots\",\"author\":\"Jordan\",\"body\":\"The Menu Entry Swapper plugin can\\nnow swap the "Pickpocket" menu option with the "Talk-to" menu option for all NPCs, not just H.A.M\\nmembers. (With the exception of NPCs who can be blackjacked)
\\nThe Low Detail plugin will now reload your\\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.
\\nThe Screenshot plugin's Upload setting\\nnow allows you to optionally copy the screenshot image to your clipboard when taken. Thanks to\\n@Alexsuperfly for this contribution.
\\nThe Fishing plugin no longer draws duplicate\\nsprites for stacked fishing spots of the same type.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Boosts Information plugin can\\nnow toggle displaying combat/non-combat/both boosts \\nExamining items found in the seed box will now trigger the Examine\\nplugin \\nThe overlay renderer now shows drag outlines at their proper locations again \\nThe Slayer plugin correctly recognizes Lizard\\nand Vampyre tasks \\nThe Clue Scroll plugin saw multiple\\nfixes, correcting some STASH unit locations, fixing a Song of the Elves-related clue, fixing some\\nclue items showing no names, and added some item variants to some item sets \\nThe text of a Western Provinces diary step has been updated in the Diary Requirements\\nplugin after a change since the\\nrelease of the Song of the Elves quest \\nThe white pixels which appeared at the edges of game objects for some players while using MSAA\\nwith the GPU plugin have been exterminated \\nThe Death Indicator plugin will\\ncorrectly recognize when players die when respawning in Prifddinas \\nBraindeath Island now has a skybox color \\nCorrections have been made in the Items Kept on Death\\nplugin to show correct values of\\nAvernic defenders and Salve amulet (ei)s. \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (24):\\n Revert "Merge pull request #9354 from Toocanzs/centroid-fix"\\n xptracker: fix calculating xp offset from offline xp\\n api: add accessor for GameState state\\n api: add setGameState\\n low memory plugin: run changeMemoryMode on game thread\\n overlay renderer: fix drawing overlay drag bounds\\n authfilter: cache sessions\\n loot tracker: batch loot submissions\\n ui: center fatal error dialog on screen\\n rs: validate loaded config\\n slayer plugin: update desert lizards task to lizards\\n low memory plugin: set low memory mode after startup\\n gpu plugin: require high detail textures\\n fishing plugin: deduplicate spot overlay color logic\\n fishing plugin: don't render the same fishing spot twice\\n fishingspot: don't expose spots map\\n api: remove unused Query class\\n menu entry swapper: expand talk-to/pickpocket swap to non-blackjack npcs\\n Fix some typos\\n config manager: overwrite defaults when unable to unmarshall values\\n screenshot plugin: add screenshot to clipboard\\n runecraft plugin: check config group before updating config\\n examine plugin: combine identical widget cases\\n examine plugin: add seed box\\n\\nAlexsuperfly (5):\\n slayer plugin: fix unknown tasks not decrementing counter\\n slayer: correct Vampyre task spelling\\n slayer: add additional target names to Vampyre task\\n clues: fix port sarim easy stash plane location\\n clues: fix wizards tower bridge plane location\\n\\nDaniel Bolink (1):\\n Update Western Provinces Diary Step after SOTE update\\n\\nHydrox6 (8):\\n clues: correct "Has no one told you it is rude to ask a lady her age?"\\n clues: Fix Bryophyta's staff having no name\\n clues: fix names for skilling outfits\\n gpu: fix MSAA white pixels\\n agility: fix objectid for Arandar lvl 85 obstacle\\n runecraft: fix layer of AbyssOverlay\\n clues: fix abyssal head recognition\\n death indicator: add prifddinas\\n\\nJordan Atwood (1):\\n slayerplugin: Fix first slayer kill not being registered\\n\\nQuasindro (1):\\n skybox: add Braindeath Island\\n\\nRon Young (1):\\n ChatboxItemSearch: fix null name check\\n\\nTheStonedTurtle (2):\\n itemskeptondeath: fix avernic defender price\\n ItemsKeptOnDeath - Add missing salve (ei) price offset\\n\\nThomas Cedeno (1):\\n clues: add agility and max capes to graceful set\\n\\nchestnut1693 (1):\\n boosts: add config to not display combat boosts\\n\\ndekvall (4):\\n Add Nullable to Actor::getName\\n Fix NPE in groundmarker plugin\\n Add Nullable to Client::getLocalPlayer\\n Add Nullable to widget dragging methods\\n\\nxDemoN (4):\\n item mapping: add bird nest variations\\n timers: update imbued heart to reset on death\\n agility: add missing ladder to prifddinas\\n emote: change "stomp" to "stamp"\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/106.cb8fa36b.chunk.js b/static/js/106.40865a08.chunk.js
similarity index 96%
rename from static/js/106.cb8fa36b.chunk.js
rename to static/js/106.40865a08.chunk.js
index fdc807716..d33bd5c67 100644
--- a/static/js/106.cb8fa36b.chunk.js
+++ b/static/js/106.40865a08.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[106],{381:function(e,n){e.exports={title:"1.5.33 Release",description:"Idle Movement notifications, World Map Teleport icon click jumping, and Clue fixes in Prifddinas",author:"Alexsuperfly",body:'The World Map plugin can now show you where certain teleports take you by jumping to the corresponding location when clicking on the icon in the world map
\n
\nThe Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time
\nThe Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Slayer plugin no longer shows the task infobox on login \nThe Chat Notifications plugin has had its highlighting of messages with color improved \nThe Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications \nThe Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons \nThe XP Globes plugin has received an option to configure the tooltip information \n \nEnjoy!
\n- Alexsuperfly
\nNew commits \nWe had 10 contributors this release!
\nAdam (7):\n plugin manager: fix two log format strings\n menu entry swapper: optimize menu searching for strict matching\n slayer plugin: do not show task infobox on login\n chat message manager: fix recoloring messages with embedded </col> tags\n devtools: add msg command\n chat notifications: fix matching messages with color\n clue plugin: support Prifddinas clues\n\nAdam Witkowski (1):\n chat: add LOGINLOGOUTNOTIFICATIONs recoloring\n\nAndrew Chow (1):\n idle notifer: add movement idle notification\n\nDaniel Bolink (1):\n agility shortcuts: add Forthos dungeon and Catacombs of Kourend shortcuts\n\nDavid (1):\n timersconfig: fix typo in antipoison description (#9781)\n\nGustavo Rodrigues (1):\n xpglobes: add configs for globe tooltips\n\nHunter Harloff (1):\n hooks: draw ABOVE_MAP before ABOVE_WIDGETS\n\nHydrox6 (2):\n runecraft: move rift update function to plugin\n runecraft: move minimap code to its own overlay\n\nMax Weber (1):\n gpu: wait for canvas to get it\'s native peer before starting OpenGL\n\nQuasindro (2):\n worldmap: add on-click jumping for unambiguous single-target transports\n chat: fix private chat username recolouring, improve responsiveness to config settings\n
\n',image:"/img/blog/1.5.33-Release/world_map_tele_jumping.gif"}}}]);
-//# sourceMappingURL=106.cb8fa36b.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[106],{382:function(e,n){e.exports={title:"1.5.33 Release",description:"Idle Movement notifications, World Map Teleport icon click jumping, and Clue fixes in Prifddinas",author:"Alexsuperfly",body:'The World Map plugin can now show you where certain teleports take you by jumping to the corresponding location when clicking on the icon in the world map
\n
\nThe Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time
\nThe Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Slayer plugin no longer shows the task infobox on login \nThe Chat Notifications plugin has had its highlighting of messages with color improved \nThe Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications \nThe Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons \nThe XP Globes plugin has received an option to configure the tooltip information \n \nEnjoy!
\n- Alexsuperfly
\nNew commits \nWe had 10 contributors this release!
\nAdam (7):\n plugin manager: fix two log format strings\n menu entry swapper: optimize menu searching for strict matching\n slayer plugin: do not show task infobox on login\n chat message manager: fix recoloring messages with embedded </col> tags\n devtools: add msg command\n chat notifications: fix matching messages with color\n clue plugin: support Prifddinas clues\n\nAdam Witkowski (1):\n chat: add LOGINLOGOUTNOTIFICATIONs recoloring\n\nAndrew Chow (1):\n idle notifer: add movement idle notification\n\nDaniel Bolink (1):\n agility shortcuts: add Forthos dungeon and Catacombs of Kourend shortcuts\n\nDavid (1):\n timersconfig: fix typo in antipoison description (#9781)\n\nGustavo Rodrigues (1):\n xpglobes: add configs for globe tooltips\n\nHunter Harloff (1):\n hooks: draw ABOVE_MAP before ABOVE_WIDGETS\n\nHydrox6 (2):\n runecraft: move rift update function to plugin\n runecraft: move minimap code to its own overlay\n\nMax Weber (1):\n gpu: wait for canvas to get it\'s native peer before starting OpenGL\n\nQuasindro (2):\n worldmap: add on-click jumping for unambiguous single-target transports\n chat: fix private chat username recolouring, improve responsiveness to config settings\n
\n',image:"/img/blog/1.5.33-Release/world_map_tele_jumping.gif"}}}]);
+//# sourceMappingURL=106.40865a08.chunk.js.map
\ No newline at end of file
diff --git a/static/js/106.cb8fa36b.chunk.js.map b/static/js/106.40865a08.chunk.js.map
similarity index 98%
rename from static/js/106.cb8fa36b.chunk.js.map
rename to static/js/106.40865a08.chunk.js.map
index 48401b98d..339180477 100644
--- a/static/js/106.cb8fa36b.chunk.js.map
+++ b/static/js/106.40865a08.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-09-12-10-00-1.5.33-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mGAAmG,OAAS,eAAe,KAAO,usGAA0vG,MAAQ","file":"static/js/106.cb8fa36b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.33 Release\",\"description\":\"Idle Movement notifications, World Map Teleport icon click jumping, and Clue fixes in Prifddinas\",\"author\":\"Alexsuperfly\",\"body\":\"The World Map plugin can now show you where certain teleports take you by jumping to the corresponding location when clicking on the icon in the world map
\\n
\\nThe Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time
\\nThe Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Slayer plugin no longer shows the task infobox on login \\nThe Chat Notifications plugin has had its highlighting of messages with color improved \\nThe Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications \\nThe Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons \\nThe XP Globes plugin has received an option to configure the tooltip information \\n \\nEnjoy!
\\n- Alexsuperfly
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (7):\\n plugin manager: fix two log format strings\\n menu entry swapper: optimize menu searching for strict matching\\n slayer plugin: do not show task infobox on login\\n chat message manager: fix recoloring messages with embedded </col> tags\\n devtools: add msg command\\n chat notifications: fix matching messages with color\\n clue plugin: support Prifddinas clues\\n\\nAdam Witkowski (1):\\n chat: add LOGINLOGOUTNOTIFICATIONs recoloring\\n\\nAndrew Chow (1):\\n idle notifer: add movement idle notification\\n\\nDaniel Bolink (1):\\n agility shortcuts: add Forthos dungeon and Catacombs of Kourend shortcuts\\n\\nDavid (1):\\n timersconfig: fix typo in antipoison description (#9781)\\n\\nGustavo Rodrigues (1):\\n xpglobes: add configs for globe tooltips\\n\\nHunter Harloff (1):\\n hooks: draw ABOVE_MAP before ABOVE_WIDGETS\\n\\nHydrox6 (2):\\n runecraft: move rift update function to plugin\\n runecraft: move minimap code to its own overlay\\n\\nMax Weber (1):\\n gpu: wait for canvas to get it's native peer before starting OpenGL\\n\\nQuasindro (2):\\n worldmap: add on-click jumping for unambiguous single-target transports\\n chat: fix private chat username recolouring, improve responsiveness to config settings\\n
\\n\",\"image\":\"/img/blog/1.5.33-Release/world_map_tele_jumping.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-09-12-10-00-1.5.33-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mGAAmG,OAAS,eAAe,KAAO,usGAA0vG,MAAQ","file":"static/js/106.40865a08.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.33 Release\",\"description\":\"Idle Movement notifications, World Map Teleport icon click jumping, and Clue fixes in Prifddinas\",\"author\":\"Alexsuperfly\",\"body\":\"The World Map plugin can now show you where certain teleports take you by jumping to the corresponding location when clicking on the icon in the world map
\\n
\\nThe Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time
\\nThe Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Slayer plugin no longer shows the task infobox on login \\nThe Chat Notifications plugin has had its highlighting of messages with color improved \\nThe Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications \\nThe Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons \\nThe XP Globes plugin has received an option to configure the tooltip information \\n \\nEnjoy!
\\n- Alexsuperfly
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (7):\\n plugin manager: fix two log format strings\\n menu entry swapper: optimize menu searching for strict matching\\n slayer plugin: do not show task infobox on login\\n chat message manager: fix recoloring messages with embedded </col> tags\\n devtools: add msg command\\n chat notifications: fix matching messages with color\\n clue plugin: support Prifddinas clues\\n\\nAdam Witkowski (1):\\n chat: add LOGINLOGOUTNOTIFICATIONs recoloring\\n\\nAndrew Chow (1):\\n idle notifer: add movement idle notification\\n\\nDaniel Bolink (1):\\n agility shortcuts: add Forthos dungeon and Catacombs of Kourend shortcuts\\n\\nDavid (1):\\n timersconfig: fix typo in antipoison description (#9781)\\n\\nGustavo Rodrigues (1):\\n xpglobes: add configs for globe tooltips\\n\\nHunter Harloff (1):\\n hooks: draw ABOVE_MAP before ABOVE_WIDGETS\\n\\nHydrox6 (2):\\n runecraft: move rift update function to plugin\\n runecraft: move minimap code to its own overlay\\n\\nMax Weber (1):\\n gpu: wait for canvas to get it's native peer before starting OpenGL\\n\\nQuasindro (2):\\n worldmap: add on-click jumping for unambiguous single-target transports\\n chat: fix private chat username recolouring, improve responsiveness to config settings\\n
\\n\",\"image\":\"/img/blog/1.5.33-Release/world_map_tele_jumping.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/107.cbf75092.chunk.js b/static/js/107.52f72a9f.chunk.js
similarity index 97%
rename from static/js/107.cbf75092.chunk.js
rename to static/js/107.52f72a9f.chunk.js
index 2f44a4ac6..d9d84d387 100644
--- a/static/js/107.cbf75092.chunk.js
+++ b/static/js/107.52f72a9f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[107],{382:function(e,n){e.exports={title:"1.5.34 Release",description:"Bank value searching and volume overrides",author:"Jordan",body:'The Bank plugin now supports searching for items\nby value. Thanks to @raiyni for this feature.
\n
\nThe Music plugin now offers volume overrides for\nthe ingame music, sound effect, and area sound effect volumes. These settings allow you to set more\ngranular values for each of these volumes.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Opponent Information plugin \nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you \nForthos Dungeon monsters now show proper HP values in the Opponent Information\nplugin and will now cause the\nXP Tracker plugin to display kills to\ngoal targets instead of actions \nThe Agility plugin now has an option to\ndisplay laps needed to reach your set agility goal \nYou can now set the left-click menu option of the house advertisement board using the Menu Entry\nSwapper plugin \nThe Timers plugin no longer thinks the\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells \nThe Loot Tracker plugin now truncates\nmonster names instead of kill count for entries with long text \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (8):\n menu entry swapper: fix menu searching optimization\n bank tags: use item name string indexof from script\n opponent info: add show opponents in menu\n hooks: ignore npc update immediately after login\n api: add sound volume accessors and vars\n api: add volume changed event\n music list plugin: rename to music plugin\n music plugin: add sound volume overrides\n\nBrian Rogers (1):\n item mappings: update birds nest mapping\n\nDaniel Bolink (1):\n Remove Half timers for Snare, Bind and Entangle\n\nHudson Shykowski (1):\n Add Forthos Dungeon monsters to the NPC health list\n\nHydrox6 (2):\n loot tracker: truncate name instead of kills\n clues: fix emote hint ordering\n\nJohn Polich (2):\n clues: update "Salty peter" solution for Hosidius rework\n clues: add fairy ring code to "Graveyard west of Shayzien" solution\n\nJordan Atwood (1):\n cluescrolls: Reset clue on new beginner/master step\n\nKrysa (2):\n clues: update Warriors\' Guild emote clue\n clues: add Deviant spectre variant to cryptic clue\n\nMax Weber (3):\n runelite-api: Add setAllWidgetsAreOpTargetable\n runelite-client: Don\'t add our menu options in spell casting/target mode\n WidgetInspector: Add widget picker\n\nRon Young (1):\n bank plugin: add item value searching\n\nbeaumitch (1):\n agility plugin: add laps to goal to overlay\n\neric-weaver (1):\n menu entry swapper: add house advertisement board\n
\n',image:"/img/blog/1.5.34-Release/bank-value-search.gif"}}}]);
-//# sourceMappingURL=107.cbf75092.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[107],{383:function(e,n){e.exports={title:"1.5.34 Release",description:"Bank value searching and volume overrides",author:"Jordan",body:'The Bank plugin now supports searching for items\nby value. Thanks to @raiyni for this feature.
\n
\nThe Music plugin now offers volume overrides for\nthe ingame music, sound effect, and area sound effect volumes. These settings allow you to set more\ngranular values for each of these volumes.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Opponent Information plugin \nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you \nForthos Dungeon monsters now show proper HP values in the Opponent Information\nplugin and will now cause the\nXP Tracker plugin to display kills to\ngoal targets instead of actions \nThe Agility plugin now has an option to\ndisplay laps needed to reach your set agility goal \nYou can now set the left-click menu option of the house advertisement board using the Menu Entry\nSwapper plugin \nThe Timers plugin no longer thinks the\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells \nThe Loot Tracker plugin now truncates\nmonster names instead of kill count for entries with long text \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (8):\n menu entry swapper: fix menu searching optimization\n bank tags: use item name string indexof from script\n opponent info: add show opponents in menu\n hooks: ignore npc update immediately after login\n api: add sound volume accessors and vars\n api: add volume changed event\n music list plugin: rename to music plugin\n music plugin: add sound volume overrides\n\nBrian Rogers (1):\n item mappings: update birds nest mapping\n\nDaniel Bolink (1):\n Remove Half timers for Snare, Bind and Entangle\n\nHudson Shykowski (1):\n Add Forthos Dungeon monsters to the NPC health list\n\nHydrox6 (2):\n loot tracker: truncate name instead of kills\n clues: fix emote hint ordering\n\nJohn Polich (2):\n clues: update "Salty peter" solution for Hosidius rework\n clues: add fairy ring code to "Graveyard west of Shayzien" solution\n\nJordan Atwood (1):\n cluescrolls: Reset clue on new beginner/master step\n\nKrysa (2):\n clues: update Warriors\' Guild emote clue\n clues: add Deviant spectre variant to cryptic clue\n\nMax Weber (3):\n runelite-api: Add setAllWidgetsAreOpTargetable\n runelite-client: Don\'t add our menu options in spell casting/target mode\n WidgetInspector: Add widget picker\n\nRon Young (1):\n bank plugin: add item value searching\n\nbeaumitch (1):\n agility plugin: add laps to goal to overlay\n\neric-weaver (1):\n menu entry swapper: add house advertisement board\n
\n',image:"/img/blog/1.5.34-Release/bank-value-search.gif"}}}]);
+//# sourceMappingURL=107.52f72a9f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/107.cbf75092.chunk.js.map b/static/js/107.52f72a9f.chunk.js.map
similarity index 98%
rename from static/js/107.cbf75092.chunk.js.map
rename to static/js/107.52f72a9f.chunk.js.map
index adc862302..7a074e76d 100644
--- a/static/js/107.cbf75092.chunk.js.map
+++ b/static/js/107.52f72a9f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-09-26-10-00-1.5.34-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4CAA4C,OAAS,SAAS,KAAO,6xHAA21H,MAAQ","file":"static/js/107.cbf75092.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.34 Release\",\"description\":\"Bank value searching and volume overrides\",\"author\":\"Jordan\",\"body\":\"The Bank plugin now supports searching for items\\nby value. Thanks to @raiyni for this feature.
\\n
\\nThe Music plugin now offers volume overrides for\\nthe ingame music, sound effect, and area sound effect volumes. These settings allow you to set more\\ngranular values for each of these volumes.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Opponent Information plugin \\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you \\nForthos Dungeon monsters now show proper HP values in the Opponent Information\\nplugin and will now cause the\\nXP Tracker plugin to display kills to\\ngoal targets instead of actions \\nThe Agility plugin now has an option to\\ndisplay laps needed to reach your set agility goal \\nYou can now set the left-click menu option of the house advertisement board using the Menu Entry\\nSwapper plugin \\nThe Timers plugin no longer thinks the\\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells \\nThe Loot Tracker plugin now truncates\\nmonster names instead of kill count for entries with long text \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (8):\\n menu entry swapper: fix menu searching optimization\\n bank tags: use item name string indexof from script\\n opponent info: add show opponents in menu\\n hooks: ignore npc update immediately after login\\n api: add sound volume accessors and vars\\n api: add volume changed event\\n music list plugin: rename to music plugin\\n music plugin: add sound volume overrides\\n\\nBrian Rogers (1):\\n item mappings: update birds nest mapping\\n\\nDaniel Bolink (1):\\n Remove Half timers for Snare, Bind and Entangle\\n\\nHudson Shykowski (1):\\n Add Forthos Dungeon monsters to the NPC health list\\n\\nHydrox6 (2):\\n loot tracker: truncate name instead of kills\\n clues: fix emote hint ordering\\n\\nJohn Polich (2):\\n clues: update "Salty peter" solution for Hosidius rework\\n clues: add fairy ring code to "Graveyard west of Shayzien" solution\\n\\nJordan Atwood (1):\\n cluescrolls: Reset clue on new beginner/master step\\n\\nKrysa (2):\\n clues: update Warriors' Guild emote clue\\n clues: add Deviant spectre variant to cryptic clue\\n\\nMax Weber (3):\\n runelite-api: Add setAllWidgetsAreOpTargetable\\n runelite-client: Don't add our menu options in spell casting/target mode\\n WidgetInspector: Add widget picker\\n\\nRon Young (1):\\n bank plugin: add item value searching\\n\\nbeaumitch (1):\\n agility plugin: add laps to goal to overlay\\n\\neric-weaver (1):\\n menu entry swapper: add house advertisement board\\n
\\n\",\"image\":\"/img/blog/1.5.34-Release/bank-value-search.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-09-26-10-00-1.5.34-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4CAA4C,OAAS,SAAS,KAAO,6xHAA21H,MAAQ","file":"static/js/107.52f72a9f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.34 Release\",\"description\":\"Bank value searching and volume overrides\",\"author\":\"Jordan\",\"body\":\"The Bank plugin now supports searching for items\\nby value. Thanks to @raiyni for this feature.
\\n
\\nThe Music plugin now offers volume overrides for\\nthe ingame music, sound effect, and area sound effect volumes. These settings allow you to set more\\ngranular values for each of these volumes.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Opponent Information plugin \\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you \\nForthos Dungeon monsters now show proper HP values in the Opponent Information\\nplugin and will now cause the\\nXP Tracker plugin to display kills to\\ngoal targets instead of actions \\nThe Agility plugin now has an option to\\ndisplay laps needed to reach your set agility goal \\nYou can now set the left-click menu option of the house advertisement board using the Menu Entry\\nSwapper plugin \\nThe Timers plugin no longer thinks the\\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells \\nThe Loot Tracker plugin now truncates\\nmonster names instead of kill count for entries with long text \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (8):\\n menu entry swapper: fix menu searching optimization\\n bank tags: use item name string indexof from script\\n opponent info: add show opponents in menu\\n hooks: ignore npc update immediately after login\\n api: add sound volume accessors and vars\\n api: add volume changed event\\n music list plugin: rename to music plugin\\n music plugin: add sound volume overrides\\n\\nBrian Rogers (1):\\n item mappings: update birds nest mapping\\n\\nDaniel Bolink (1):\\n Remove Half timers for Snare, Bind and Entangle\\n\\nHudson Shykowski (1):\\n Add Forthos Dungeon monsters to the NPC health list\\n\\nHydrox6 (2):\\n loot tracker: truncate name instead of kills\\n clues: fix emote hint ordering\\n\\nJohn Polich (2):\\n clues: update "Salty peter" solution for Hosidius rework\\n clues: add fairy ring code to "Graveyard west of Shayzien" solution\\n\\nJordan Atwood (1):\\n cluescrolls: Reset clue on new beginner/master step\\n\\nKrysa (2):\\n clues: update Warriors' Guild emote clue\\n clues: add Deviant spectre variant to cryptic clue\\n\\nMax Weber (3):\\n runelite-api: Add setAllWidgetsAreOpTargetable\\n runelite-client: Don't add our menu options in spell casting/target mode\\n WidgetInspector: Add widget picker\\n\\nRon Young (1):\\n bank plugin: add item value searching\\n\\nbeaumitch (1):\\n agility plugin: add laps to goal to overlay\\n\\neric-weaver (1):\\n menu entry swapper: add house advertisement board\\n
\\n\",\"image\":\"/img/blog/1.5.34-Release/bank-value-search.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/108.0d51428d.chunk.js b/static/js/108.41136f93.chunk.js
similarity index 93%
rename from static/js/108.0d51428d.chunk.js
rename to static/js/108.41136f93.chunk.js
index 2caf52201..ff594d064 100644
--- a/static/js/108.0d51428d.chunk.js
+++ b/static/js/108.41136f93.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[108],{383:function(e,n){e.exports={title:"1.5.35 Release",description:"Removal of Demonic Gorillas plugin",author:"Adam",body:'In accordance with Jagex\'s message about unofficial\nclients \nthe demonic gorillas plugin has been removed.
\nMore features may be removed in future releases, however I find the statement\nfrom Jagex sufficiently vague that I am not able to tell how much, if at all, it\napplies to other RuneLite features, such as the menu entry swapper.
\nWording such as The same can be said of features which might modify how you select actions in the game or change how you click on menus
has a whole lot of\nwiggle room - and I think that the intent of Jagex is to have clients remove\nfeatures which unbalance either skilling experience rates or end-game content\n(and thus end-game rewards). I don\'t think the majority of MES fit into this\ncategory, although the Bury
and Pickpocket
swap probably would.
\nI am trying to get further clarification from Jagex first before I make any wide\nsweeping decisions on where to draw the line at between acceptable and not\nacceptable with regard to menu swapping because I understand how QOL much of it\nis to so many users. So, the MES has been left untouched in this release.
\nIn other news, the object indicator plugin can now tag walls (such as MLM ore\nveins), and a couple clue texts and hints have been fixed.
\n- Adam
\n'}}}]);
-//# sourceMappingURL=108.0d51428d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[108],{384:function(e,n){e.exports={title:"1.5.35 Release",description:"Removal of Demonic Gorillas plugin",author:"Adam",body:'In accordance with Jagex\'s message about unofficial\nclients \nthe demonic gorillas plugin has been removed.
\nMore features may be removed in future releases, however I find the statement\nfrom Jagex sufficiently vague that I am not able to tell how much, if at all, it\napplies to other RuneLite features, such as the menu entry swapper.
\nWording such as The same can be said of features which might modify how you select actions in the game or change how you click on menus
has a whole lot of\nwiggle room - and I think that the intent of Jagex is to have clients remove\nfeatures which unbalance either skilling experience rates or end-game content\n(and thus end-game rewards). I don\'t think the majority of MES fit into this\ncategory, although the Bury
and Pickpocket
swap probably would.
\nI am trying to get further clarification from Jagex first before I make any wide\nsweeping decisions on where to draw the line at between acceptable and not\nacceptable with regard to menu swapping because I understand how QOL much of it\nis to so many users. So, the MES has been left untouched in this release.
\nIn other news, the object indicator plugin can now tag walls (such as MLM ore\nveins), and a couple clue texts and hints have been fixed.
\n- Adam
\n'}}}]);
+//# sourceMappingURL=108.41136f93.chunk.js.map
\ No newline at end of file
diff --git a/static/js/108.0d51428d.chunk.js.map b/static/js/108.41136f93.chunk.js.map
similarity index 96%
rename from static/js/108.0d51428d.chunk.js.map
rename to static/js/108.41136f93.chunk.js.map
index 1a65e6e32..11584164d 100644
--- a/static/js/108.0d51428d.chunk.js.map
+++ b/static/js/108.41136f93.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-10-02-10-00-1.5.35-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qCAAqC,OAAS,OAAO,KAAO","file":"static/js/108.0d51428d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.35 Release\",\"description\":\"Removal of Demonic Gorillas plugin\",\"author\":\"Adam\",\"body\":\"In accordance with Jagex's message about unofficial\\nclients \\nthe demonic gorillas plugin has been removed.
\\nMore features may be removed in future releases, however I find the statement\\nfrom Jagex sufficiently vague that I am not able to tell how much, if at all, it\\napplies to other RuneLite features, such as the menu entry swapper.
\\nWording such as The same can be said of features which might modify how you select actions in the game or change how you click on menus
has a whole lot of\\nwiggle room - and I think that the intent of Jagex is to have clients remove\\nfeatures which unbalance either skilling experience rates or end-game content\\n(and thus end-game rewards). I don't think the majority of MES fit into this\\ncategory, although the Bury
and Pickpocket
swap probably would.
\\nI am trying to get further clarification from Jagex first before I make any wide\\nsweeping decisions on where to draw the line at between acceptable and not\\nacceptable with regard to menu swapping because I understand how QOL much of it\\nis to so many users. So, the MES has been left untouched in this release.
\\nIn other news, the object indicator plugin can now tag walls (such as MLM ore\\nveins), and a couple clue texts and hints have been fixed.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-10-02-10-00-1.5.35-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qCAAqC,OAAS,OAAO,KAAO","file":"static/js/108.41136f93.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.35 Release\",\"description\":\"Removal of Demonic Gorillas plugin\",\"author\":\"Adam\",\"body\":\"In accordance with Jagex's message about unofficial\\nclients \\nthe demonic gorillas plugin has been removed.
\\nMore features may be removed in future releases, however I find the statement\\nfrom Jagex sufficiently vague that I am not able to tell how much, if at all, it\\napplies to other RuneLite features, such as the menu entry swapper.
\\nWording such as The same can be said of features which might modify how you select actions in the game or change how you click on menus
has a whole lot of\\nwiggle room - and I think that the intent of Jagex is to have clients remove\\nfeatures which unbalance either skilling experience rates or end-game content\\n(and thus end-game rewards). I don't think the majority of MES fit into this\\ncategory, although the Bury
and Pickpocket
swap probably would.
\\nI am trying to get further clarification from Jagex first before I make any wide\\nsweeping decisions on where to draw the line at between acceptable and not\\nacceptable with regard to menu swapping because I understand how QOL much of it\\nis to so many users. So, the MES has been left untouched in this release.
\\nIn other news, the object indicator plugin can now tag walls (such as MLM ore\\nveins), and a couple clue texts and hints have been fixed.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/109.e43b39d1.chunk.js b/static/js/109.1a88d1c2.chunk.js
similarity index 98%
rename from static/js/109.e43b39d1.chunk.js
rename to static/js/109.1a88d1c2.chunk.js
index 28c019a0e..85fdd8d2e 100644
--- a/static/js/109.e43b39d1.chunk.js
+++ b/static/js/109.1a88d1c2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[109],{384:function(n,e){n.exports={title:"1.5.36 Release",description:"Website redesign and random event plugin",author:"Adam",body:'The website has been given an all new dark look, with a redesigned home page.\nThanks to @psikoi and @gc \nfor their work on this.
\nA random event plugin has been added which can notify you when a random event\nspawns for you, and will also hide Talk-to and Dismiss from random events which\naren\'t yours.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe clickbox generation code has been optimized and now causes less lag when\ndrawing complex clickboxes, such as the the herbiboar trail objects \nThe object indicators plugin now supports marking many more object types that\npreviously did not work, such as the MLM sack and ladders \nSetting the slayer plugin infobox timeout to 0 now makes it never timeout,\nconsistent with other plugins \nThe item identification plugin now also identifies placeholders and noted\nversions of items \nThe inventory grid plugin now shows the results of swapping items, if applicable \nAdd Broodoo shield, drift net, spears, and hastae to skill calculator \nAdd missing fishing spots from the fishing platform to the fishing plugin \nFix Monk\'s residence and Rommik cryptic crate locations \nAdd Rimmington ship transpotation icons and locations to the world map \nFix location of the northern pipe in Mount Karuulm on the world map \n \n- Adam
\nNew commits \nWe had 23 contributors this release!
\n15987632 (1):\n timers plugin: remove prayer enhance infobox on expire\n\nAdam (18):\n item controller: add etag to bulk prices\n feed controller: add etag\n client: use own okhttp client with cache\n http-api: add javax.inject dependency\n feed: use caching okhttp client\n item manager: use caching okhttp client\n Use caching okhttp client for worldclient\n tile indicators: fix storing names for multilocs\n object indicators: support non-gameobject multilocs\n api: add getConvexHull to GroundObject\n object indicator: add support for ground objects\n screenmarkers: optimize panel rebuilding\n cache: update object definition\n item charges: fix explorer\'s ring infobox caching\n async buffered image: fix listener leak from subscribing to already loaded images\n async buffered image: rename changed to loaded\n async buffered image: move to util\n Fix slayer infobox disappearing on \'0\' timeout\n\nDaniel Bolink (1):\n Add Elf Cannon Spot in Priff\n\nDavid (2):\n agility: add plant door obstacle\n skillcalc: add Broodoo shield\n\nElkins, Trey (1):\n Add no weapon/shield enforcement to aerial fishing clue\n\nEric Weaver (2):\n Update Anglerfish master challenge clue text (#9988)\n Fix typo in Barrows chest emote clue (#9982)\n\nGustavo Rodrigues (1):\n Add Drift Net to skill calc plugin (#9958)\n\nHydrox6 (1):\n world map: fix location of northern pipe in Mount Karuulm dungeon\n\nIgnas Maslinskas (1):\n xptracker: fix out-of-sync add to canvas menu (#9983)\n\nKrysaczek (1):\n Add Spears and Hastae smithing to Skill calculator\n\nMESLewis (1):\n Add teleport icon for Stony Basalt under 73 Agility\n\nMax Weber (12):\n runelite-api: Use more general Shape for clickboxes and convex hulls\n runelite-api: Add simple Shape implementations\n Perspective: Add modelToCanvas\n Jarvis: use primitive arrays\n runelite-api: Optimize getClickbox\n runelite-api: Remove Triangle and Vertex classes\n StackFormatter: remove quantityToRSStackSize\n StackFormatter: Fix documentation\n StackFormatter: synchronize access to NumberFormats\n runelite-client: Rename StackFormatter to QuantityFormatter\n prayer: Use ItemStats for prayer bonuses\n runelite-api: Add some more documentation\n\nMorgan Lewis (1):\n worldmap: Update Rimmington ship transportation icons and locations (#10010)\n\nRensB (1):\n item charges: add charges to guthix rest tea (#10002)\n\nRon Young (4):\n ChatboxTextInput: add ability to filter character inputs\n banktags: filter out <,>, and / from tag input\n banktags: clean invalid config items\n banktags: null check for no tagtabs\n\nSebastiaanVanspauwen (1):\n worldmap: Add Wilderness crabs teleport (#9970)\n\nTaylor (1):\n Fix Monk\'s residence and Rommik cryptic crate locations (#9936)\n\nTomas Slusny (2):\n Properly update plugin toggle button of plugin state change\n Null-check WorldResult in DefaultWorldPlugin\n\nTrey (1):\n Add revertible Neitiznot Faceguard to ItemMapping (#10038)\n\ndekvall (6):\n Inventorygrid: Draw image for replaced item\n xptracker: fix goals set from level 1\n fishing: Set status to NOT fishing when the flying fish is active\n item identification: show identifier for placeholders and noted items\n XpTracker: Fix hopping to/from DMM worlds\n Clarify that blowpipe won\'t work with Robin clue\n\nhuddy987 (1):\n Add divine potion buy limits\n\ntrimbe (1):\n client: add random event plugin\n\nwwchak (1):\n fishing: Add missing fishing platform highlight (#9989)\n
\n',image:"/img/blog/1.5.36-Release/random.png"}}}]);
-//# sourceMappingURL=109.e43b39d1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[109],{385:function(n,e){n.exports={title:"1.5.36 Release",description:"Website redesign and random event plugin",author:"Adam",body:'The website has been given an all new dark look, with a redesigned home page.\nThanks to @psikoi and @gc \nfor their work on this.
\nA random event plugin has been added which can notify you when a random event\nspawns for you, and will also hide Talk-to and Dismiss from random events which\naren\'t yours.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe clickbox generation code has been optimized and now causes less lag when\ndrawing complex clickboxes, such as the the herbiboar trail objects \nThe object indicators plugin now supports marking many more object types that\npreviously did not work, such as the MLM sack and ladders \nSetting the slayer plugin infobox timeout to 0 now makes it never timeout,\nconsistent with other plugins \nThe item identification plugin now also identifies placeholders and noted\nversions of items \nThe inventory grid plugin now shows the results of swapping items, if applicable \nAdd Broodoo shield, drift net, spears, and hastae to skill calculator \nAdd missing fishing spots from the fishing platform to the fishing plugin \nFix Monk\'s residence and Rommik cryptic crate locations \nAdd Rimmington ship transpotation icons and locations to the world map \nFix location of the northern pipe in Mount Karuulm on the world map \n \n- Adam
\nNew commits \nWe had 23 contributors this release!
\n15987632 (1):\n timers plugin: remove prayer enhance infobox on expire\n\nAdam (18):\n item controller: add etag to bulk prices\n feed controller: add etag\n client: use own okhttp client with cache\n http-api: add javax.inject dependency\n feed: use caching okhttp client\n item manager: use caching okhttp client\n Use caching okhttp client for worldclient\n tile indicators: fix storing names for multilocs\n object indicators: support non-gameobject multilocs\n api: add getConvexHull to GroundObject\n object indicator: add support for ground objects\n screenmarkers: optimize panel rebuilding\n cache: update object definition\n item charges: fix explorer\'s ring infobox caching\n async buffered image: fix listener leak from subscribing to already loaded images\n async buffered image: rename changed to loaded\n async buffered image: move to util\n Fix slayer infobox disappearing on \'0\' timeout\n\nDaniel Bolink (1):\n Add Elf Cannon Spot in Priff\n\nDavid (2):\n agility: add plant door obstacle\n skillcalc: add Broodoo shield\n\nElkins, Trey (1):\n Add no weapon/shield enforcement to aerial fishing clue\n\nEric Weaver (2):\n Update Anglerfish master challenge clue text (#9988)\n Fix typo in Barrows chest emote clue (#9982)\n\nGustavo Rodrigues (1):\n Add Drift Net to skill calc plugin (#9958)\n\nHydrox6 (1):\n world map: fix location of northern pipe in Mount Karuulm dungeon\n\nIgnas Maslinskas (1):\n xptracker: fix out-of-sync add to canvas menu (#9983)\n\nKrysaczek (1):\n Add Spears and Hastae smithing to Skill calculator\n\nMESLewis (1):\n Add teleport icon for Stony Basalt under 73 Agility\n\nMax Weber (12):\n runelite-api: Use more general Shape for clickboxes and convex hulls\n runelite-api: Add simple Shape implementations\n Perspective: Add modelToCanvas\n Jarvis: use primitive arrays\n runelite-api: Optimize getClickbox\n runelite-api: Remove Triangle and Vertex classes\n StackFormatter: remove quantityToRSStackSize\n StackFormatter: Fix documentation\n StackFormatter: synchronize access to NumberFormats\n runelite-client: Rename StackFormatter to QuantityFormatter\n prayer: Use ItemStats for prayer bonuses\n runelite-api: Add some more documentation\n\nMorgan Lewis (1):\n worldmap: Update Rimmington ship transportation icons and locations (#10010)\n\nRensB (1):\n item charges: add charges to guthix rest tea (#10002)\n\nRon Young (4):\n ChatboxTextInput: add ability to filter character inputs\n banktags: filter out <,>, and / from tag input\n banktags: clean invalid config items\n banktags: null check for no tagtabs\n\nSebastiaanVanspauwen (1):\n worldmap: Add Wilderness crabs teleport (#9970)\n\nTaylor (1):\n Fix Monk\'s residence and Rommik cryptic crate locations (#9936)\n\nTomas Slusny (2):\n Properly update plugin toggle button of plugin state change\n Null-check WorldResult in DefaultWorldPlugin\n\nTrey (1):\n Add revertible Neitiznot Faceguard to ItemMapping (#10038)\n\ndekvall (6):\n Inventorygrid: Draw image for replaced item\n xptracker: fix goals set from level 1\n fishing: Set status to NOT fishing when the flying fish is active\n item identification: show identifier for placeholders and noted items\n XpTracker: Fix hopping to/from DMM worlds\n Clarify that blowpipe won\'t work with Robin clue\n\nhuddy987 (1):\n Add divine potion buy limits\n\ntrimbe (1):\n client: add random event plugin\n\nwwchak (1):\n fishing: Add missing fishing platform highlight (#9989)\n
\n',image:"/img/blog/1.5.36-Release/random.png"}}}]);
+//# sourceMappingURL=109.1a88d1c2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/109.e43b39d1.chunk.js.map b/static/js/109.1a88d1c2.chunk.js.map
similarity index 98%
rename from static/js/109.e43b39d1.chunk.js.map
rename to static/js/109.1a88d1c2.chunk.js.map
index 3a18cd938..4cf9077f0 100644
--- a/static/js/109.e43b39d1.chunk.js.map
+++ b/static/js/109.1a88d1c2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-10-17-10-00-1.5.36-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2CAA2C,OAAS,OAAO,KAAO,02KAAm3K,MAAQ","file":"static/js/109.e43b39d1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.36 Release\",\"description\":\"Website redesign and random event plugin\",\"author\":\"Adam\",\"body\":\"The website has been given an all new dark look, with a redesigned home page.\\nThanks to @psikoi and @gc \\nfor their work on this.
\\nA random event plugin has been added which can notify you when a random event\\nspawns for you, and will also hide Talk-to and Dismiss from random events which\\naren't yours.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe clickbox generation code has been optimized and now causes less lag when\\ndrawing complex clickboxes, such as the the herbiboar trail objects \\nThe object indicators plugin now supports marking many more object types that\\npreviously did not work, such as the MLM sack and ladders \\nSetting the slayer plugin infobox timeout to 0 now makes it never timeout,\\nconsistent with other plugins \\nThe item identification plugin now also identifies placeholders and noted\\nversions of items \\nThe inventory grid plugin now shows the results of swapping items, if applicable \\nAdd Broodoo shield, drift net, spears, and hastae to skill calculator \\nAdd missing fishing spots from the fishing platform to the fishing plugin \\nFix Monk's residence and Rommik cryptic crate locations \\nAdd Rimmington ship transpotation icons and locations to the world map \\nFix location of the northern pipe in Mount Karuulm on the world map \\n \\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\n15987632 (1):\\n timers plugin: remove prayer enhance infobox on expire\\n\\nAdam (18):\\n item controller: add etag to bulk prices\\n feed controller: add etag\\n client: use own okhttp client with cache\\n http-api: add javax.inject dependency\\n feed: use caching okhttp client\\n item manager: use caching okhttp client\\n Use caching okhttp client for worldclient\\n tile indicators: fix storing names for multilocs\\n object indicators: support non-gameobject multilocs\\n api: add getConvexHull to GroundObject\\n object indicator: add support for ground objects\\n screenmarkers: optimize panel rebuilding\\n cache: update object definition\\n item charges: fix explorer's ring infobox caching\\n async buffered image: fix listener leak from subscribing to already loaded images\\n async buffered image: rename changed to loaded\\n async buffered image: move to util\\n Fix slayer infobox disappearing on '0' timeout\\n\\nDaniel Bolink (1):\\n Add Elf Cannon Spot in Priff\\n\\nDavid (2):\\n agility: add plant door obstacle\\n skillcalc: add Broodoo shield\\n\\nElkins, Trey (1):\\n Add no weapon/shield enforcement to aerial fishing clue\\n\\nEric Weaver (2):\\n Update Anglerfish master challenge clue text (#9988)\\n Fix typo in Barrows chest emote clue (#9982)\\n\\nGustavo Rodrigues (1):\\n Add Drift Net to skill calc plugin (#9958)\\n\\nHydrox6 (1):\\n world map: fix location of northern pipe in Mount Karuulm dungeon\\n\\nIgnas Maslinskas (1):\\n xptracker: fix out-of-sync add to canvas menu (#9983)\\n\\nKrysaczek (1):\\n Add Spears and Hastae smithing to Skill calculator\\n\\nMESLewis (1):\\n Add teleport icon for Stony Basalt under 73 Agility\\n\\nMax Weber (12):\\n runelite-api: Use more general Shape for clickboxes and convex hulls\\n runelite-api: Add simple Shape implementations\\n Perspective: Add modelToCanvas\\n Jarvis: use primitive arrays\\n runelite-api: Optimize getClickbox\\n runelite-api: Remove Triangle and Vertex classes\\n StackFormatter: remove quantityToRSStackSize\\n StackFormatter: Fix documentation\\n StackFormatter: synchronize access to NumberFormats\\n runelite-client: Rename StackFormatter to QuantityFormatter\\n prayer: Use ItemStats for prayer bonuses\\n runelite-api: Add some more documentation\\n\\nMorgan Lewis (1):\\n worldmap: Update Rimmington ship transportation icons and locations (#10010)\\n\\nRensB (1):\\n item charges: add charges to guthix rest tea (#10002)\\n\\nRon Young (4):\\n ChatboxTextInput: add ability to filter character inputs\\n banktags: filter out <,>, and / from tag input\\n banktags: clean invalid config items\\n banktags: null check for no tagtabs\\n\\nSebastiaanVanspauwen (1):\\n worldmap: Add Wilderness crabs teleport (#9970)\\n\\nTaylor (1):\\n Fix Monk's residence and Rommik cryptic crate locations (#9936)\\n\\nTomas Slusny (2):\\n Properly update plugin toggle button of plugin state change\\n Null-check WorldResult in DefaultWorldPlugin\\n\\nTrey (1):\\n Add revertible Neitiznot Faceguard to ItemMapping (#10038)\\n\\ndekvall (6):\\n Inventorygrid: Draw image for replaced item\\n xptracker: fix goals set from level 1\\n fishing: Set status to NOT fishing when the flying fish is active\\n item identification: show identifier for placeholders and noted items\\n XpTracker: Fix hopping to/from DMM worlds\\n Clarify that blowpipe won't work with Robin clue\\n\\nhuddy987 (1):\\n Add divine potion buy limits\\n\\ntrimbe (1):\\n client: add random event plugin\\n\\nwwchak (1):\\n fishing: Add missing fishing platform highlight (#9989)\\n
\\n\",\"image\":\"/img/blog/1.5.36-Release/random.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-10-17-10-00-1.5.36-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2CAA2C,OAAS,OAAO,KAAO,02KAAm3K,MAAQ","file":"static/js/109.1a88d1c2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.36 Release\",\"description\":\"Website redesign and random event plugin\",\"author\":\"Adam\",\"body\":\"The website has been given an all new dark look, with a redesigned home page.\\nThanks to @psikoi and @gc \\nfor their work on this.
\\nA random event plugin has been added which can notify you when a random event\\nspawns for you, and will also hide Talk-to and Dismiss from random events which\\naren't yours.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe clickbox generation code has been optimized and now causes less lag when\\ndrawing complex clickboxes, such as the the herbiboar trail objects \\nThe object indicators plugin now supports marking many more object types that\\npreviously did not work, such as the MLM sack and ladders \\nSetting the slayer plugin infobox timeout to 0 now makes it never timeout,\\nconsistent with other plugins \\nThe item identification plugin now also identifies placeholders and noted\\nversions of items \\nThe inventory grid plugin now shows the results of swapping items, if applicable \\nAdd Broodoo shield, drift net, spears, and hastae to skill calculator \\nAdd missing fishing spots from the fishing platform to the fishing plugin \\nFix Monk's residence and Rommik cryptic crate locations \\nAdd Rimmington ship transpotation icons and locations to the world map \\nFix location of the northern pipe in Mount Karuulm on the world map \\n \\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\n15987632 (1):\\n timers plugin: remove prayer enhance infobox on expire\\n\\nAdam (18):\\n item controller: add etag to bulk prices\\n feed controller: add etag\\n client: use own okhttp client with cache\\n http-api: add javax.inject dependency\\n feed: use caching okhttp client\\n item manager: use caching okhttp client\\n Use caching okhttp client for worldclient\\n tile indicators: fix storing names for multilocs\\n object indicators: support non-gameobject multilocs\\n api: add getConvexHull to GroundObject\\n object indicator: add support for ground objects\\n screenmarkers: optimize panel rebuilding\\n cache: update object definition\\n item charges: fix explorer's ring infobox caching\\n async buffered image: fix listener leak from subscribing to already loaded images\\n async buffered image: rename changed to loaded\\n async buffered image: move to util\\n Fix slayer infobox disappearing on '0' timeout\\n\\nDaniel Bolink (1):\\n Add Elf Cannon Spot in Priff\\n\\nDavid (2):\\n agility: add plant door obstacle\\n skillcalc: add Broodoo shield\\n\\nElkins, Trey (1):\\n Add no weapon/shield enforcement to aerial fishing clue\\n\\nEric Weaver (2):\\n Update Anglerfish master challenge clue text (#9988)\\n Fix typo in Barrows chest emote clue (#9982)\\n\\nGustavo Rodrigues (1):\\n Add Drift Net to skill calc plugin (#9958)\\n\\nHydrox6 (1):\\n world map: fix location of northern pipe in Mount Karuulm dungeon\\n\\nIgnas Maslinskas (1):\\n xptracker: fix out-of-sync add to canvas menu (#9983)\\n\\nKrysaczek (1):\\n Add Spears and Hastae smithing to Skill calculator\\n\\nMESLewis (1):\\n Add teleport icon for Stony Basalt under 73 Agility\\n\\nMax Weber (12):\\n runelite-api: Use more general Shape for clickboxes and convex hulls\\n runelite-api: Add simple Shape implementations\\n Perspective: Add modelToCanvas\\n Jarvis: use primitive arrays\\n runelite-api: Optimize getClickbox\\n runelite-api: Remove Triangle and Vertex classes\\n StackFormatter: remove quantityToRSStackSize\\n StackFormatter: Fix documentation\\n StackFormatter: synchronize access to NumberFormats\\n runelite-client: Rename StackFormatter to QuantityFormatter\\n prayer: Use ItemStats for prayer bonuses\\n runelite-api: Add some more documentation\\n\\nMorgan Lewis (1):\\n worldmap: Update Rimmington ship transportation icons and locations (#10010)\\n\\nRensB (1):\\n item charges: add charges to guthix rest tea (#10002)\\n\\nRon Young (4):\\n ChatboxTextInput: add ability to filter character inputs\\n banktags: filter out <,>, and / from tag input\\n banktags: clean invalid config items\\n banktags: null check for no tagtabs\\n\\nSebastiaanVanspauwen (1):\\n worldmap: Add Wilderness crabs teleport (#9970)\\n\\nTaylor (1):\\n Fix Monk's residence and Rommik cryptic crate locations (#9936)\\n\\nTomas Slusny (2):\\n Properly update plugin toggle button of plugin state change\\n Null-check WorldResult in DefaultWorldPlugin\\n\\nTrey (1):\\n Add revertible Neitiznot Faceguard to ItemMapping (#10038)\\n\\ndekvall (6):\\n Inventorygrid: Draw image for replaced item\\n xptracker: fix goals set from level 1\\n fishing: Set status to NOT fishing when the flying fish is active\\n item identification: show identifier for placeholders and noted items\\n XpTracker: Fix hopping to/from DMM worlds\\n Clarify that blowpipe won't work with Robin clue\\n\\nhuddy987 (1):\\n Add divine potion buy limits\\n\\ntrimbe (1):\\n client: add random event plugin\\n\\nwwchak (1):\\n fishing: Add missing fishing platform highlight (#9989)\\n
\\n\",\"image\":\"/img/blog/1.5.36-Release/random.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/11.2e3a1f40.chunk.js b/static/js/11.96136622.chunk.js
similarity index 96%
rename from static/js/11.2e3a1f40.chunk.js
rename to static/js/11.96136622.chunk.js
index 2d22263ba..ddde878f4 100644
--- a/static/js/11.2e3a1f40.chunk.js
+++ b/static/js/11.96136622.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[11],{126:function(t,e,s){"use strict";var c=s(0);var a=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:s,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:s?"100%":""},Object(c.g)("div",Object.assign({},i,{id:"layout"}),e,Object(c.g)(a,null))}},127:function(t,e,s){"use strict";var c=s(0);var a=()=>Object(c.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(c.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(c.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(c.g)("div",{class:"fa-4x"},Object(c.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends c.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:s}=this.state;return s?Object(c.g)(a,null):Object(c.g)(e,t)}}},128:function(t,e,s){},130:function(t,e,s){},456:function(t,e,s){"use strict";s.r(e);var c=s(0),a=s(126),i=s(7),n=s.n(i),l=s(46),o=s(11),r=s(24),g=s(27),b=(s(130),s(128),s(127)),d=s(18),j=s(47);e.default=Object(g.b)((t,e)=>{let{csv:s}=e,c=s.split(",");const a=c.shift(),i=c.shift();return c=c.map(t=>Math.abs(parseInt(t,10))).sort((t,e)=>t-e),{name:a,icon:i,itemIds:c,items:t.item||[]}},t=>Object(o.b)({fetchItems:r.b},t))(Object(b.a)(async t=>{let{fetchItems:e}=t;await e()})(t=>{let{name:e,icon:s,itemIds:i,items:o,csv:r}=t;const g=i.map(t=>o.find(e=>e.id===t)).filter(t=>!!t);return 0===g.length?Object(c.g)(j.a,null):Object(c.g)(a.a,null,Object(c.g)(l.a,{title:`${e} tag tab - ${n.a.title}`,description:r}),Object(c.g)("section",{id:"tags"},Object(c.g)("div",{class:"content-section tag-container"},Object(c.g)("h1",{class:"page-header"},Object(c.g)("img",{alt:"",src:Object(d.c)(s)})," ",e),Object(c.g)("pre",{class:"pre-select"},r),Object(c.g)("div",{class:"row pl-2"},g.map(t=>Object(c.g)("div",{class:"card"},Object(c.g)("div",{class:"tooltip-tag"},Object(c.g)("a",{href:Object(d.i)(t)},Object(c.g)("img",{class:"card-img-top",alt:t.name,src:Object(d.c)(t.id)})),Object(c.g)("div",{class:"tooltip-tag-text"},Object(c.g)("b",null,t.name||"Loading...")))))))))}))}}]);
-//# sourceMappingURL=11.2e3a1f40.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[11],{126:function(t,e,s){"use strict";var c=s(0);var a=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:s,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:s?"100%":""},Object(c.g)("div",Object.assign({},i,{id:"layout"}),e,Object(c.g)(a,null))}},127:function(t,e,s){"use strict";var c=s(0);var a=()=>Object(c.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(c.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(c.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(c.g)("div",{class:"fa-4x"},Object(c.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends c.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:s}=this.state;return s?Object(c.g)(a,null):Object(c.g)(e,t)}}},128:function(t,e,s){},130:function(t,e,s){},458:function(t,e,s){"use strict";s.r(e);var c=s(0),a=s(126),i=s(7),n=s.n(i),l=s(46),o=s(11),r=s(24),g=s(27),b=(s(130),s(128),s(127)),d=s(18),j=s(47);e.default=Object(g.b)((t,e)=>{let{csv:s}=e,c=s.split(",");const a=c.shift(),i=c.shift();return c=c.map(t=>Math.abs(parseInt(t,10))).sort((t,e)=>t-e),{name:a,icon:i,itemIds:c,items:t.item||[]}},t=>Object(o.b)({fetchItems:r.b},t))(Object(b.a)(async t=>{let{fetchItems:e}=t;await e()})(t=>{let{name:e,icon:s,itemIds:i,items:o,csv:r}=t;const g=i.map(t=>o.find(e=>e.id===t)).filter(t=>!!t);return 0===g.length?Object(c.g)(j.a,null):Object(c.g)(a.a,null,Object(c.g)(l.a,{title:`${e} tag tab - ${n.a.title}`,description:r}),Object(c.g)("section",{id:"tags"},Object(c.g)("div",{class:"content-section tag-container"},Object(c.g)("h1",{class:"page-header"},Object(c.g)("img",{alt:"",src:Object(d.c)(s)})," ",e),Object(c.g)("pre",{class:"pre-select"},r),Object(c.g)("div",{class:"row pl-2"},g.map(t=>Object(c.g)("div",{class:"card"},Object(c.g)("div",{class:"tooltip-tag"},Object(c.g)("a",{href:Object(d.i)(t)},Object(c.g)("img",{class:"card-img-top",alt:t.name,src:Object(d.c)(t.id)})),Object(c.g)("div",{class:"tooltip-tag-text"},Object(c.g)("b",null,t.name||"Loading...")))))))))}))}}]);
+//# sourceMappingURL=11.96136622.chunk.js.map
\ No newline at end of file
diff --git a/static/js/11.2e3a1f40.chunk.js.map b/static/js/11.96136622.chunk.js.map
similarity index 99%
rename from static/js/11.2e3a1f40.chunk.js.map
rename to static/js/11.96136622.chunk.js.map
index d4d09f4c3..d85b31f74 100644
--- a/static/js/11.2e3a1f40.chunk.js.map
+++ b/static/js/11.96136622.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","routes/tag-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","connect","mapStateToProps","_ref2","csv","parts","split","name","shift","icon","map","Math","abs","parseInt","sort","a","b","itemIds","items","item","dispatch","bindActionCreators","fetchItems","async","_ref3","itemsToShow","find","i","filter","length","NotFound","Meta","title","hero","description","alt","src","formatIcon","wikiURLForItem"],"mappings":"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","file":"static/js/11.2e3a1f40.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { fetchItems } from '../modules/item'\nimport { connect } from 'react-redux'\nimport '../components/tooltip.css'\nimport './tag.css'\nimport prepare from '../components/prepare'\nimport { formatIcon, wikiURLForItem } from '../util'\nimport NotFound from '../components/not-found'\n\nconst TagShow = ({ name, icon, itemIds, items, csv }) => {\n const itemsToShow = itemIds\n .map(id => items.find(i => i.id === id))\n .filter(i => !!i)\n\n if (itemsToShow.length === 0) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nconst mapStateToProps = (state, { csv }) => {\n let parts = csv.split(',')\n const name = parts.shift()\n const icon = parts.shift()\n parts = parts.map(id => Math.abs(parseInt(id, 10))).sort((a, b) => a - b)\n\n return {\n name,\n icon,\n itemIds: parts,\n items: state.item || []\n }\n}\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ fetchItems }, dispatch)\n\nconst prepareComponentData = async ({ fetchItems }) => {\n await fetchItems()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(TagShow))\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","routes/tag-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","connect","mapStateToProps","_ref2","csv","parts","split","name","shift","icon","map","Math","abs","parseInt","sort","a","b","itemIds","items","item","dispatch","bindActionCreators","fetchItems","async","_ref3","itemsToShow","find","i","filter","length","NotFound","Meta","title","hero","description","alt","src","formatIcon","wikiURLForItem"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,4CCoBEc,MA/BCA,IACdb,YAAA,OACES,MAAO,CACLK,QAAS,QACTC,MAAO,OACPC,OAAQ,SAGVhB,YAAA,OACES,MAAO,CACLK,QAAS,aACTG,cAAe,WAGjBjB,YAAA,OACES,MAAO,CACLS,WAAY,OACZC,YAAa,OACbC,UAAW,SACXC,WAAY,IACZC,MAAO,UAGTtB,YAAA,OAAKE,MAAM,SACTF,YAAA,KAAGE,MAAM,+BCQJqB,IA/BCC,GAAwBC,GAC/B,cAAcC,IACnBC,cACEC,QACAC,KAAKC,MAAQ,CACXC,SAAS,GAIbC,oBACE,MAAMC,EAAMT,EAAqBK,KAAKrB,OAClCyB,aAAeC,QACjBD,EAAIE,KAAK,IACPN,KAAKO,SAAS,CACZL,SAAS,KAIbF,KAAKO,SAAS,CACZL,SAAS,IAKfM,OAAO7B,GACL,MAAM,QAAEuB,GAAYF,KAAKC,MACzB,OAAOC,EAAU/B,YAACa,EAAO,MAAMb,YAACyB,EAAqBjB,M,6EC7B3D,oHA8Ee8B,sBArBSC,CAACT,EAAKU,KAAe,IAAb,IAAEC,GAAKD,EACjCE,EAAQD,EAAIE,MAAM,KACtB,MAAMC,EAAOF,EAAMG,QACbC,EAAOJ,EAAMG,QAGnB,OAFAH,EAAQA,EAAMK,IAAI9C,GAAM+C,KAAKC,IAAIC,SAASjD,EAAI,MAAMkD,KAAK,CAACC,EAAGC,IAAMD,EAAIC,GAEhE,CACLT,OACAE,OACAQ,QAASZ,EACTa,MAAOzB,EAAM0B,MAAQ,KAIEC,GACzBC,YAAmB,CAAEC,gBAAcF,GAMtBnB,CAGbf,YAP2BqC,UAA2B,IAApB,WAAED,GAAYE,QAC1CF,KAMNpC,CApEclB,IAA0C,IAAzC,KAAEuC,EAAI,KAAEE,EAAI,QAAEQ,EAAO,MAAEC,EAAK,IAAEd,GAAKpC,EAClD,MAAMyD,EAAcR,EACjBP,IAAI9C,GAAMsD,EAAMQ,KAAKC,GAAKA,EAAE/D,KAAOA,IACnCgE,OAAOD,KAAOA,GAEjB,OAA2B,IAAvBF,EAAYI,OACPlE,YAACmE,IAAQ,MAIhBnE,YAACI,IAAM,KACLJ,YAACoE,IAAI,CAACC,MAAQ,GAAEzB,eAAkB0B,IAAKD,QAASE,YAAa9B,IAC7DzC,YAAA,WAASC,GAAG,QACVD,YAAA,OAAKE,MAAM,iCACTF,YAAA,MAAIE,MAAM,eACRF,YAAA,OAAKwE,IAAI,GAAGC,IAAKC,YAAW5B,KAAS,IAAEF,GAGzC5C,YAAA,OAAKE,MAAM,cAAcuC,GAEzBzC,YAAA,OAAKE,MAAM,YACR4D,EAAYf,IAAIS,GACfxD,YAAA,OAAKE,MAAM,QACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,KAAGG,KAAMwE,YAAenB,IACtBxD,YAAA,OACEE,MAAM,eACNsE,IAAKhB,EAAKZ,KACV6B,IAAKC,YAAWlB,EAAKvD,OAGzBD,YAAA,OAAKE,MAAM,oBACTF,YAAA,SAAIwD,EAAKZ,MAAQ","file":"static/js/11.96136622.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { fetchItems } from '../modules/item'\nimport { connect } from 'react-redux'\nimport '../components/tooltip.css'\nimport './tag.css'\nimport prepare from '../components/prepare'\nimport { formatIcon, wikiURLForItem } from '../util'\nimport NotFound from '../components/not-found'\n\nconst TagShow = ({ name, icon, itemIds, items, csv }) => {\n const itemsToShow = itemIds\n .map(id => items.find(i => i.id === id))\n .filter(i => !!i)\n\n if (itemsToShow.length === 0) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nconst mapStateToProps = (state, { csv }) => {\n let parts = csv.split(',')\n const name = parts.shift()\n const icon = parts.shift()\n parts = parts.map(id => Math.abs(parseInt(id, 10))).sort((a, b) => a - b)\n\n return {\n name,\n icon,\n itemIds: parts,\n items: state.item || []\n }\n}\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ fetchItems }, dispatch)\n\nconst prepareComponentData = async ({ fetchItems }) => {\n await fetchItems()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(TagShow))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/110.3cb0b9d5.chunk.js b/static/js/110.944ef825.chunk.js
similarity index 98%
rename from static/js/110.3cb0b9d5.chunk.js
rename to static/js/110.944ef825.chunk.js
index 9411843e4..108d25b8c 100644
--- a/static/js/110.3cb0b9d5.chunk.js
+++ b/static/js/110.944ef825.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[110],{385:function(e,n){e.exports={title:"1.5.37 Release",description:"Sound volume sliders, area sound mute, and new Jagex statement",author:"Adam",body:'The music plugin now changes the volume sliders on the in-game sound interface\nto slide:
\n
\nThe plugin additionally offers a new setting which will mute area sounds caused\nfrom animations of other players (mostly skilling animations like woodcutting).
\nJagex has released a new third party\nclient \nstatement which builds on their previous\nstatement .\nThe vast majority of the statement seems targeted at features of clients other than\nRuneLite; most features listed are not and have never been features of RuneLite.\nHowever there are some changes required to RuneLite to make it compliant, so the\nfollowing changes have been made:
\n\nRemoval of the Cerberus plugin \nRemoval of the reorder prayers plugin \nRemove "opponent\'s opponent" part of the opponent info overlay \nRemove the pickpocket/talk-to swap from the menu entry swapper \nRemove the minimap overlay from the barrows plugin \nRemove the Walk here/Attack swap on the Corporeal beast dark core \n \nI would also like to thank Mod Bonsai for providing us with draft statements and\nallowing us to provide feedback directly to Jagex. The collaboration between us\nand Jagex over the last few weeks on this has been more than all of the last 2\nyears combined.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the random event plugin hiding menu options for your own randoms \nFix the combat level plugin not showing combat level range in the wilderness \nFix world map tooltip for Prifddinas farming patch \nFix the PvP kill/death counter to once again be moveable \nFix full teleblock timer \nAdd pyramid plunder start-minigame and quick-leave to the menu entry swapper \nAdd Fremennik Exiles to the world map and add tooltips for the new\ntransportation icons \nThe fishing overlay colors are now configurable \nAdd coordinate clue descriptor for Island of Stone clue \nAdd fishing trawler to the loot tracker \nThe loot tracker can now use High Alchemy price for item valuation \nShow price check when examining items on the trade interface \nThe wiki plugin can now have its "cast" feature used on items in the bank and\nall other interfaces with items other than the inventory \nThe loot tracker on the website now shows total value of loot \n \n- Adam
\nNew commits \nWe had 19 contributors this release!
\n15987632 (1):\n widgets: fix wilderness level widget\n\nAbex (1):\n wiki: support wiki-casting on non-inventory items\n\nAdam (16):\n random events: fix menu being hidden for own events\n achievement diary: remove requirements for Karamja hard kill a metal dragon task\n client: update mockito\n client: remove Cerberus plugin\n client: remove reorderprayers plugin\n opponentinfo: remove Opponent\'s opponent\n corp plugin: remove dark core attack deprioritization\n menuentryswapper: remove pickpocket swap\n cache: update npc definition and loader\n api: add source to sound effect events\n devtools: add source to sound effect overlay\n music plugin: add option to mute other players area sounds\n http-service: make mongo database configurable\n menu swapper: add pyramid plunder start-minigame and quick-leave\n barrows plugin: remove minimap\n http-api: centralize json mediatype\n\nAlex (1):\n menu entry swapper: add shift click teleport spell swap\n\nAlexsuperfly (6):\n world map: correct waterbirth ship transportation icon\n world map: correct pirates\' cove ship transportation icon\n world map: correct lunar diplomacy quest start icon\n world map: add island of stone ship transport icon\n quest: add fremennik exiles quest to enum\n world map: add fremennik exiles quest start\n\nDavid (4):\n farming calc: fix white lily level\n fletching calc: add dragon crossbow\n mining calc: add soft clay\n hunter calc: add crystal impling\n\nDesetude (1):\n Make the PvP kill/death counter moveable\n\nElpan (1):\n world map: fix Prifddinas farming patch tooltip\n\nHarry Freeborough (1):\n Correct capitalisations of "RuneScape" (#10142)\n\nHydrox6 (5):\n loot tracker: rename price to gePrice\n clues: fix Shayzien supply armour Sherlock clue\n loot tracker: add HA prices\n loot tracker: add price type display\n clues: fix MultipleOfItemRequirement not working with non-stacking items\n\nJoel (1):\n Add item mapping for Berserker Necklace (or) (#10158)\n\nLotto (2):\n fishing: make overlay colors configurable\n feed: use RuneLiteClient\'s Twitter list\n\nMax Weber (2):\n music: Add ingame granular volume adjustment\n music: check parent and siblings for null\n\nNathaniel Pather (2):\n clues: add Island of Stone location descriptor\n npc health: add lvl 44 zombie health (#10121)\n\nSebastiaanVanspauwen (2):\n timers plugin: update full teleblock text\n Worldmap: Fix incorrect Zeah quest start locations (#10135)\n\nTomas Slusny (1):\n raids plugin: add option to manually broadcast layout\n\ndekvall (7):\n skill calc: clear combined action slot on skill change\n fishing: reset trawler start time when back on land\n loottracker: add fishing trawler\n loottracker: add confirm dialog to reset all\n random events: fix npe on login\n examine plugin: add pricecheck for trade interface\n chat timestamps: add timestamps to split private chat\n\nln (1):\n GPU: Floating point screen coordinates to eliminate vertex snapping\n\ntrimbe (1):\n tabinterface: remember search after clicking deposit-x\n
\n',image:"/img/blog/1.5.37-Release/sliders.gif"}}}]);
-//# sourceMappingURL=110.3cb0b9d5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[110],{386:function(e,n){e.exports={title:"1.5.37 Release",description:"Sound volume sliders, area sound mute, and new Jagex statement",author:"Adam",body:'The music plugin now changes the volume sliders on the in-game sound interface\nto slide:
\n
\nThe plugin additionally offers a new setting which will mute area sounds caused\nfrom animations of other players (mostly skilling animations like woodcutting).
\nJagex has released a new third party\nclient \nstatement which builds on their previous\nstatement .\nThe vast majority of the statement seems targeted at features of clients other than\nRuneLite; most features listed are not and have never been features of RuneLite.\nHowever there are some changes required to RuneLite to make it compliant, so the\nfollowing changes have been made:
\n\nRemoval of the Cerberus plugin \nRemoval of the reorder prayers plugin \nRemove "opponent\'s opponent" part of the opponent info overlay \nRemove the pickpocket/talk-to swap from the menu entry swapper \nRemove the minimap overlay from the barrows plugin \nRemove the Walk here/Attack swap on the Corporeal beast dark core \n \nI would also like to thank Mod Bonsai for providing us with draft statements and\nallowing us to provide feedback directly to Jagex. The collaboration between us\nand Jagex over the last few weeks on this has been more than all of the last 2\nyears combined.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the random event plugin hiding menu options for your own randoms \nFix the combat level plugin not showing combat level range in the wilderness \nFix world map tooltip for Prifddinas farming patch \nFix the PvP kill/death counter to once again be moveable \nFix full teleblock timer \nAdd pyramid plunder start-minigame and quick-leave to the menu entry swapper \nAdd Fremennik Exiles to the world map and add tooltips for the new\ntransportation icons \nThe fishing overlay colors are now configurable \nAdd coordinate clue descriptor for Island of Stone clue \nAdd fishing trawler to the loot tracker \nThe loot tracker can now use High Alchemy price for item valuation \nShow price check when examining items on the trade interface \nThe wiki plugin can now have its "cast" feature used on items in the bank and\nall other interfaces with items other than the inventory \nThe loot tracker on the website now shows total value of loot \n \n- Adam
\nNew commits \nWe had 19 contributors this release!
\n15987632 (1):\n widgets: fix wilderness level widget\n\nAbex (1):\n wiki: support wiki-casting on non-inventory items\n\nAdam (16):\n random events: fix menu being hidden for own events\n achievement diary: remove requirements for Karamja hard kill a metal dragon task\n client: update mockito\n client: remove Cerberus plugin\n client: remove reorderprayers plugin\n opponentinfo: remove Opponent\'s opponent\n corp plugin: remove dark core attack deprioritization\n menuentryswapper: remove pickpocket swap\n cache: update npc definition and loader\n api: add source to sound effect events\n devtools: add source to sound effect overlay\n music plugin: add option to mute other players area sounds\n http-service: make mongo database configurable\n menu swapper: add pyramid plunder start-minigame and quick-leave\n barrows plugin: remove minimap\n http-api: centralize json mediatype\n\nAlex (1):\n menu entry swapper: add shift click teleport spell swap\n\nAlexsuperfly (6):\n world map: correct waterbirth ship transportation icon\n world map: correct pirates\' cove ship transportation icon\n world map: correct lunar diplomacy quest start icon\n world map: add island of stone ship transport icon\n quest: add fremennik exiles quest to enum\n world map: add fremennik exiles quest start\n\nDavid (4):\n farming calc: fix white lily level\n fletching calc: add dragon crossbow\n mining calc: add soft clay\n hunter calc: add crystal impling\n\nDesetude (1):\n Make the PvP kill/death counter moveable\n\nElpan (1):\n world map: fix Prifddinas farming patch tooltip\n\nHarry Freeborough (1):\n Correct capitalisations of "RuneScape" (#10142)\n\nHydrox6 (5):\n loot tracker: rename price to gePrice\n clues: fix Shayzien supply armour Sherlock clue\n loot tracker: add HA prices\n loot tracker: add price type display\n clues: fix MultipleOfItemRequirement not working with non-stacking items\n\nJoel (1):\n Add item mapping for Berserker Necklace (or) (#10158)\n\nLotto (2):\n fishing: make overlay colors configurable\n feed: use RuneLiteClient\'s Twitter list\n\nMax Weber (2):\n music: Add ingame granular volume adjustment\n music: check parent and siblings for null\n\nNathaniel Pather (2):\n clues: add Island of Stone location descriptor\n npc health: add lvl 44 zombie health (#10121)\n\nSebastiaanVanspauwen (2):\n timers plugin: update full teleblock text\n Worldmap: Fix incorrect Zeah quest start locations (#10135)\n\nTomas Slusny (1):\n raids plugin: add option to manually broadcast layout\n\ndekvall (7):\n skill calc: clear combined action slot on skill change\n fishing: reset trawler start time when back on land\n loottracker: add fishing trawler\n loottracker: add confirm dialog to reset all\n random events: fix npe on login\n examine plugin: add pricecheck for trade interface\n chat timestamps: add timestamps to split private chat\n\nln (1):\n GPU: Floating point screen coordinates to eliminate vertex snapping\n\ntrimbe (1):\n tabinterface: remember search after clicking deposit-x\n
\n',image:"/img/blog/1.5.37-Release/sliders.gif"}}}]);
+//# sourceMappingURL=110.944ef825.chunk.js.map
\ No newline at end of file
diff --git a/static/js/110.3cb0b9d5.chunk.js.map b/static/js/110.944ef825.chunk.js.map
similarity index 99%
rename from static/js/110.3cb0b9d5.chunk.js.map
rename to static/js/110.944ef825.chunk.js.map
index cf471ca37..3a645475c 100644
--- a/static/js/110.3cb0b9d5.chunk.js.map
+++ b/static/js/110.944ef825.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-10-30-10-00-1.5.37-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iEAAiE,OAAS,OAAO,KAAO,wpMAA0qM,MAAQ","file":"static/js/110.3cb0b9d5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.37 Release\",\"description\":\"Sound volume sliders, area sound mute, and new Jagex statement\",\"author\":\"Adam\",\"body\":\"The music plugin now changes the volume sliders on the in-game sound interface\\nto slide:
\\n
\\nThe plugin additionally offers a new setting which will mute area sounds caused\\nfrom animations of other players (mostly skilling animations like woodcutting).
\\nJagex has released a new third party\\nclient \\nstatement which builds on their previous\\nstatement .\\nThe vast majority of the statement seems targeted at features of clients other than\\nRuneLite; most features listed are not and have never been features of RuneLite.\\nHowever there are some changes required to RuneLite to make it compliant, so the\\nfollowing changes have been made:
\\n\\nRemoval of the Cerberus plugin \\nRemoval of the reorder prayers plugin \\nRemove "opponent's opponent" part of the opponent info overlay \\nRemove the pickpocket/talk-to swap from the menu entry swapper \\nRemove the minimap overlay from the barrows plugin \\nRemove the Walk here/Attack swap on the Corporeal beast dark core \\n \\nI would also like to thank Mod Bonsai for providing us with draft statements and\\nallowing us to provide feedback directly to Jagex. The collaboration between us\\nand Jagex over the last few weeks on this has been more than all of the last 2\\nyears combined.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the random event plugin hiding menu options for your own randoms \\nFix the combat level plugin not showing combat level range in the wilderness \\nFix world map tooltip for Prifddinas farming patch \\nFix the PvP kill/death counter to once again be moveable \\nFix full teleblock timer \\nAdd pyramid plunder start-minigame and quick-leave to the menu entry swapper \\nAdd Fremennik Exiles to the world map and add tooltips for the new\\ntransportation icons \\nThe fishing overlay colors are now configurable \\nAdd coordinate clue descriptor for Island of Stone clue \\nAdd fishing trawler to the loot tracker \\nThe loot tracker can now use High Alchemy price for item valuation \\nShow price check when examining items on the trade interface \\nThe wiki plugin can now have its "cast" feature used on items in the bank and\\nall other interfaces with items other than the inventory \\nThe loot tracker on the website now shows total value of loot \\n \\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\n15987632 (1):\\n widgets: fix wilderness level widget\\n\\nAbex (1):\\n wiki: support wiki-casting on non-inventory items\\n\\nAdam (16):\\n random events: fix menu being hidden for own events\\n achievement diary: remove requirements for Karamja hard kill a metal dragon task\\n client: update mockito\\n client: remove Cerberus plugin\\n client: remove reorderprayers plugin\\n opponentinfo: remove Opponent's opponent\\n corp plugin: remove dark core attack deprioritization\\n menuentryswapper: remove pickpocket swap\\n cache: update npc definition and loader\\n api: add source to sound effect events\\n devtools: add source to sound effect overlay\\n music plugin: add option to mute other players area sounds\\n http-service: make mongo database configurable\\n menu swapper: add pyramid plunder start-minigame and quick-leave\\n barrows plugin: remove minimap\\n http-api: centralize json mediatype\\n\\nAlex (1):\\n menu entry swapper: add shift click teleport spell swap\\n\\nAlexsuperfly (6):\\n world map: correct waterbirth ship transportation icon\\n world map: correct pirates' cove ship transportation icon\\n world map: correct lunar diplomacy quest start icon\\n world map: add island of stone ship transport icon\\n quest: add fremennik exiles quest to enum\\n world map: add fremennik exiles quest start\\n\\nDavid (4):\\n farming calc: fix white lily level\\n fletching calc: add dragon crossbow\\n mining calc: add soft clay\\n hunter calc: add crystal impling\\n\\nDesetude (1):\\n Make the PvP kill/death counter moveable\\n\\nElpan (1):\\n world map: fix Prifddinas farming patch tooltip\\n\\nHarry Freeborough (1):\\n Correct capitalisations of "RuneScape" (#10142)\\n\\nHydrox6 (5):\\n loot tracker: rename price to gePrice\\n clues: fix Shayzien supply armour Sherlock clue\\n loot tracker: add HA prices\\n loot tracker: add price type display\\n clues: fix MultipleOfItemRequirement not working with non-stacking items\\n\\nJoel (1):\\n Add item mapping for Berserker Necklace (or) (#10158)\\n\\nLotto (2):\\n fishing: make overlay colors configurable\\n feed: use RuneLiteClient's Twitter list\\n\\nMax Weber (2):\\n music: Add ingame granular volume adjustment\\n music: check parent and siblings for null\\n\\nNathaniel Pather (2):\\n clues: add Island of Stone location descriptor\\n npc health: add lvl 44 zombie health (#10121)\\n\\nSebastiaanVanspauwen (2):\\n timers plugin: update full teleblock text\\n Worldmap: Fix incorrect Zeah quest start locations (#10135)\\n\\nTomas Slusny (1):\\n raids plugin: add option to manually broadcast layout\\n\\ndekvall (7):\\n skill calc: clear combined action slot on skill change\\n fishing: reset trawler start time when back on land\\n loottracker: add fishing trawler\\n loottracker: add confirm dialog to reset all\\n random events: fix npe on login\\n examine plugin: add pricecheck for trade interface\\n chat timestamps: add timestamps to split private chat\\n\\nln (1):\\n GPU: Floating point screen coordinates to eliminate vertex snapping\\n\\ntrimbe (1):\\n tabinterface: remember search after clicking deposit-x\\n
\\n\",\"image\":\"/img/blog/1.5.37-Release/sliders.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-10-30-10-00-1.5.37-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iEAAiE,OAAS,OAAO,KAAO,wpMAA0qM,MAAQ","file":"static/js/110.944ef825.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.37 Release\",\"description\":\"Sound volume sliders, area sound mute, and new Jagex statement\",\"author\":\"Adam\",\"body\":\"The music plugin now changes the volume sliders on the in-game sound interface\\nto slide:
\\n
\\nThe plugin additionally offers a new setting which will mute area sounds caused\\nfrom animations of other players (mostly skilling animations like woodcutting).
\\nJagex has released a new third party\\nclient \\nstatement which builds on their previous\\nstatement .\\nThe vast majority of the statement seems targeted at features of clients other than\\nRuneLite; most features listed are not and have never been features of RuneLite.\\nHowever there are some changes required to RuneLite to make it compliant, so the\\nfollowing changes have been made:
\\n\\nRemoval of the Cerberus plugin \\nRemoval of the reorder prayers plugin \\nRemove "opponent's opponent" part of the opponent info overlay \\nRemove the pickpocket/talk-to swap from the menu entry swapper \\nRemove the minimap overlay from the barrows plugin \\nRemove the Walk here/Attack swap on the Corporeal beast dark core \\n \\nI would also like to thank Mod Bonsai for providing us with draft statements and\\nallowing us to provide feedback directly to Jagex. The collaboration between us\\nand Jagex over the last few weeks on this has been more than all of the last 2\\nyears combined.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the random event plugin hiding menu options for your own randoms \\nFix the combat level plugin not showing combat level range in the wilderness \\nFix world map tooltip for Prifddinas farming patch \\nFix the PvP kill/death counter to once again be moveable \\nFix full teleblock timer \\nAdd pyramid plunder start-minigame and quick-leave to the menu entry swapper \\nAdd Fremennik Exiles to the world map and add tooltips for the new\\ntransportation icons \\nThe fishing overlay colors are now configurable \\nAdd coordinate clue descriptor for Island of Stone clue \\nAdd fishing trawler to the loot tracker \\nThe loot tracker can now use High Alchemy price for item valuation \\nShow price check when examining items on the trade interface \\nThe wiki plugin can now have its "cast" feature used on items in the bank and\\nall other interfaces with items other than the inventory \\nThe loot tracker on the website now shows total value of loot \\n \\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\n15987632 (1):\\n widgets: fix wilderness level widget\\n\\nAbex (1):\\n wiki: support wiki-casting on non-inventory items\\n\\nAdam (16):\\n random events: fix menu being hidden for own events\\n achievement diary: remove requirements for Karamja hard kill a metal dragon task\\n client: update mockito\\n client: remove Cerberus plugin\\n client: remove reorderprayers plugin\\n opponentinfo: remove Opponent's opponent\\n corp plugin: remove dark core attack deprioritization\\n menuentryswapper: remove pickpocket swap\\n cache: update npc definition and loader\\n api: add source to sound effect events\\n devtools: add source to sound effect overlay\\n music plugin: add option to mute other players area sounds\\n http-service: make mongo database configurable\\n menu swapper: add pyramid plunder start-minigame and quick-leave\\n barrows plugin: remove minimap\\n http-api: centralize json mediatype\\n\\nAlex (1):\\n menu entry swapper: add shift click teleport spell swap\\n\\nAlexsuperfly (6):\\n world map: correct waterbirth ship transportation icon\\n world map: correct pirates' cove ship transportation icon\\n world map: correct lunar diplomacy quest start icon\\n world map: add island of stone ship transport icon\\n quest: add fremennik exiles quest to enum\\n world map: add fremennik exiles quest start\\n\\nDavid (4):\\n farming calc: fix white lily level\\n fletching calc: add dragon crossbow\\n mining calc: add soft clay\\n hunter calc: add crystal impling\\n\\nDesetude (1):\\n Make the PvP kill/death counter moveable\\n\\nElpan (1):\\n world map: fix Prifddinas farming patch tooltip\\n\\nHarry Freeborough (1):\\n Correct capitalisations of "RuneScape" (#10142)\\n\\nHydrox6 (5):\\n loot tracker: rename price to gePrice\\n clues: fix Shayzien supply armour Sherlock clue\\n loot tracker: add HA prices\\n loot tracker: add price type display\\n clues: fix MultipleOfItemRequirement not working with non-stacking items\\n\\nJoel (1):\\n Add item mapping for Berserker Necklace (or) (#10158)\\n\\nLotto (2):\\n fishing: make overlay colors configurable\\n feed: use RuneLiteClient's Twitter list\\n\\nMax Weber (2):\\n music: Add ingame granular volume adjustment\\n music: check parent and siblings for null\\n\\nNathaniel Pather (2):\\n clues: add Island of Stone location descriptor\\n npc health: add lvl 44 zombie health (#10121)\\n\\nSebastiaanVanspauwen (2):\\n timers plugin: update full teleblock text\\n Worldmap: Fix incorrect Zeah quest start locations (#10135)\\n\\nTomas Slusny (1):\\n raids plugin: add option to manually broadcast layout\\n\\ndekvall (7):\\n skill calc: clear combined action slot on skill change\\n fishing: reset trawler start time when back on land\\n loottracker: add fishing trawler\\n loottracker: add confirm dialog to reset all\\n random events: fix npe on login\\n examine plugin: add pricecheck for trade interface\\n chat timestamps: add timestamps to split private chat\\n\\nln (1):\\n GPU: Floating point screen coordinates to eliminate vertex snapping\\n\\ntrimbe (1):\\n tabinterface: remember search after clicking deposit-x\\n
\\n\",\"image\":\"/img/blog/1.5.37-Release/sliders.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/111.83c55086.chunk.js b/static/js/111.d69a00fa.chunk.js
similarity index 98%
rename from static/js/111.83c55086.chunk.js
rename to static/js/111.d69a00fa.chunk.js
index a11a669f2..7ebd5c926 100644
--- a/static/js/111.83c55086.chunk.js
+++ b/static/js/111.d69a00fa.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[111],{386:function(e,n){e.exports={title:"1.5.40 Release",description:"Barbarian Assault healthbars, source dependent mutes, and ground item examine",author:"dekvall",body:'The Barbarian Assault plugin now allows the healer to show the health of its teammates:
\n
\nThe music plugin now additionally allows for configuring which area sounds should be muted based on source.\nYou can now for example, filter out the sound of everyone else woodcutting while still hearing yours.
\nThe examine plugin now offers functionality to examine ground items so that you can check the value of\nyour loot before even picking it up.
\nA new !layout
command has been added to the Chambers of Xeric plugin to share a scouted raid layout.
\nAlso, we\'d like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd "sound" and "volume" tags to music plugin \nRemove paste to password on login screen as jagex added their own \nAdd Reset option to various session overlays \nAdd option to use last world as default \nAdd cannon spot for trolls at Quidamortem \nAdd arctic pine logs to the woodcutting plugin \nFix ScreenshotPlugin Kingdom of Miscellania double screenshot \nAdd untradeable item values for long/curved bones, tattered pages and shells \nAdd five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant \nAdd more detailed location description for Mausoleum emote clue \nHighlight correct crate for Rommik\'s shop clue \nFix speccounter for players with 200m hitpoints \nAdd Black Demon cannon spot in Chasm of Fire \nFix Island of Stone coordinate hint \nCorrect direction of Miscellania island coordinate clue \nFix yew tree Sherlock challenge \nAdd notify option for impling spawns \nAdd black border to wilderness crab teleport icon \nFix resetting divine potion timers on death \nMake GWD kill count overlay movable \nUse mouse dragged distance to determine if the inventory grid should show \nAdd rc-altar icons to worldmap \n \n- dekvall
\nNew commits \nWe had 25 contributors this release!
\n15987632 (1):\n raids plugin: fix rotation solver\n\nAdam (13):\n npc highlight: use local location for south-west highlight\n osb exchange service: validate price averages\n login screen: remove paste to password\n container calculation: fix overflow computing ge price\n api: combine ExperienceChanged and BoostedLevelChanged events to StatChanged\n client: update for new skill change event\n scripts: update chat builder script\n Move ConfigChanged event to client events\n client: add Reset option to various session overlays\n client session manager: fix task crash from being unable to acquire a session id\n api: change LocalPlayerDeath event to PlayerDeath\n api: add fake xp drop event\n speccounter: support fake xpdrops\n\nBenDol (1):\n defaultworld: add option to use last world as default\n\nChris Hranj (1):\n examineplugin: Add support for ground items (#10157)\n\nDaniel (Danomate) (1):\n cannon: add cannon spot for trolls at Quidamortem (#10242)\n\nDavid (1):\n worldmap: add rc-altar icons to worldmap\n\nDavid Goldstein (1):\n clues: Highlight correct crate for Rommik\'s shop clue (#10194)\n\nDavid Henshaw (1):\n Add item mappings for rune and tzhaar ornament kits (#10161)\n\nFreya Varez (1):\n Add "sound" and "volume" tags to music plugin (#10199)\n\nHudson Shykowski (1):\n Add Fremennik Exiles monsters to the NPC health list\n\nHydrox6 (3):\n clues: fix Island of Stone coordinate hint\n clues: correct direction of Miscellania island coordinate clue\n clues: fix yew tree Sherlock challenge\n\nJZomerlei (1):\n woodcutting plugin: add arctic pine logs\n\nJoel (1):\n Fix ScreenshotPlugin Kingdom of Miscellania double screenshot\n\nMatthew Jacques (1):\n impling plugin: add notify option for impling spawns\n\nMax Weber (2):\n runelite-client/chat: Be more thread safe\n OverlayRenderer: Update bounds before render\n\nPaveldin (1):\n Add Black Demon cannon spot in Chasm of Fire\n\nRansomTime (1):\n Add more detailed location description for Mausoleum emote clue (#10217)\n\nRon Young (1):\n grandexchange: rebuild GE item text on rebuild script event\n\nTomas Slusny (3):\n Add method for attaching clear listener to IconTextField\n Clear skill calculator selection on clear button press\n Clear grand exchange selection on clear button press\n\nZeid Al-Ameedi (1):\n Add untradeable item values for long/curved bones, tattered pages and shells (#10202)\n\ndekvall (4):\n inventorygrid: use mouse dragged distance to determine if overlay should show\n worldmap: add black border to wilderness crab teleport icon\n emojis: reduce file size of emoji icons\n emojis: add five new emojis\n\nemerald000 (1):\n Correct medium Western diary requirement\n\nneeerp (1):\n music plugin: add more area mute options\n\nwhartd (1):\n ba plugin: add health bars for healers\n\nwinterdaze (2):\n timers: Do not reset divine potion timers on death (#10235)\n Make GWD kill count overlay movable (#10238)\n
\n',image:"/img/blog/1.5.40-Release/ba_healthbars.png"}}}]);
-//# sourceMappingURL=111.83c55086.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[111],{387:function(e,n){e.exports={title:"1.5.40 Release",description:"Barbarian Assault healthbars, source dependent mutes, and ground item examine",author:"dekvall",body:'The Barbarian Assault plugin now allows the healer to show the health of its teammates:
\n
\nThe music plugin now additionally allows for configuring which area sounds should be muted based on source.\nYou can now for example, filter out the sound of everyone else woodcutting while still hearing yours.
\nThe examine plugin now offers functionality to examine ground items so that you can check the value of\nyour loot before even picking it up.
\nA new !layout
command has been added to the Chambers of Xeric plugin to share a scouted raid layout.
\nAlso, we\'d like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd "sound" and "volume" tags to music plugin \nRemove paste to password on login screen as jagex added their own \nAdd Reset option to various session overlays \nAdd option to use last world as default \nAdd cannon spot for trolls at Quidamortem \nAdd arctic pine logs to the woodcutting plugin \nFix ScreenshotPlugin Kingdom of Miscellania double screenshot \nAdd untradeable item values for long/curved bones, tattered pages and shells \nAdd five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant \nAdd more detailed location description for Mausoleum emote clue \nHighlight correct crate for Rommik\'s shop clue \nFix speccounter for players with 200m hitpoints \nAdd Black Demon cannon spot in Chasm of Fire \nFix Island of Stone coordinate hint \nCorrect direction of Miscellania island coordinate clue \nFix yew tree Sherlock challenge \nAdd notify option for impling spawns \nAdd black border to wilderness crab teleport icon \nFix resetting divine potion timers on death \nMake GWD kill count overlay movable \nUse mouse dragged distance to determine if the inventory grid should show \nAdd rc-altar icons to worldmap \n \n- dekvall
\nNew commits \nWe had 25 contributors this release!
\n15987632 (1):\n raids plugin: fix rotation solver\n\nAdam (13):\n npc highlight: use local location for south-west highlight\n osb exchange service: validate price averages\n login screen: remove paste to password\n container calculation: fix overflow computing ge price\n api: combine ExperienceChanged and BoostedLevelChanged events to StatChanged\n client: update for new skill change event\n scripts: update chat builder script\n Move ConfigChanged event to client events\n client: add Reset option to various session overlays\n client session manager: fix task crash from being unable to acquire a session id\n api: change LocalPlayerDeath event to PlayerDeath\n api: add fake xp drop event\n speccounter: support fake xpdrops\n\nBenDol (1):\n defaultworld: add option to use last world as default\n\nChris Hranj (1):\n examineplugin: Add support for ground items (#10157)\n\nDaniel (Danomate) (1):\n cannon: add cannon spot for trolls at Quidamortem (#10242)\n\nDavid (1):\n worldmap: add rc-altar icons to worldmap\n\nDavid Goldstein (1):\n clues: Highlight correct crate for Rommik\'s shop clue (#10194)\n\nDavid Henshaw (1):\n Add item mappings for rune and tzhaar ornament kits (#10161)\n\nFreya Varez (1):\n Add "sound" and "volume" tags to music plugin (#10199)\n\nHudson Shykowski (1):\n Add Fremennik Exiles monsters to the NPC health list\n\nHydrox6 (3):\n clues: fix Island of Stone coordinate hint\n clues: correct direction of Miscellania island coordinate clue\n clues: fix yew tree Sherlock challenge\n\nJZomerlei (1):\n woodcutting plugin: add arctic pine logs\n\nJoel (1):\n Fix ScreenshotPlugin Kingdom of Miscellania double screenshot\n\nMatthew Jacques (1):\n impling plugin: add notify option for impling spawns\n\nMax Weber (2):\n runelite-client/chat: Be more thread safe\n OverlayRenderer: Update bounds before render\n\nPaveldin (1):\n Add Black Demon cannon spot in Chasm of Fire\n\nRansomTime (1):\n Add more detailed location description for Mausoleum emote clue (#10217)\n\nRon Young (1):\n grandexchange: rebuild GE item text on rebuild script event\n\nTomas Slusny (3):\n Add method for attaching clear listener to IconTextField\n Clear skill calculator selection on clear button press\n Clear grand exchange selection on clear button press\n\nZeid Al-Ameedi (1):\n Add untradeable item values for long/curved bones, tattered pages and shells (#10202)\n\ndekvall (4):\n inventorygrid: use mouse dragged distance to determine if overlay should show\n worldmap: add black border to wilderness crab teleport icon\n emojis: reduce file size of emoji icons\n emojis: add five new emojis\n\nemerald000 (1):\n Correct medium Western diary requirement\n\nneeerp (1):\n music plugin: add more area mute options\n\nwhartd (1):\n ba plugin: add health bars for healers\n\nwinterdaze (2):\n timers: Do not reset divine potion timers on death (#10235)\n Make GWD kill count overlay movable (#10238)\n
\n',image:"/img/blog/1.5.40-Release/ba_healthbars.png"}}}]);
+//# sourceMappingURL=111.d69a00fa.chunk.js.map
\ No newline at end of file
diff --git a/static/js/111.83c55086.chunk.js.map b/static/js/111.d69a00fa.chunk.js.map
similarity index 98%
rename from static/js/111.83c55086.chunk.js.map
rename to static/js/111.d69a00fa.chunk.js.map
index 0716bb6cd..d97de5744 100644
--- a/static/js/111.83c55086.chunk.js.map
+++ b/static/js/111.d69a00fa.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-11-14-10-00-1.5.40-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,UAAU,KAAO,yhLAAgiL,MAAQ","file":"static/js/111.83c55086.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.40 Release\",\"description\":\"Barbarian Assault healthbars, source dependent mutes, and ground item examine\",\"author\":\"dekvall\",\"body\":\"The Barbarian Assault plugin now allows the healer to show the health of its teammates:
\\n
\\nThe music plugin now additionally allows for configuring which area sounds should be muted based on source.\\nYou can now for example, filter out the sound of everyone else woodcutting while still hearing yours.
\\nThe examine plugin now offers functionality to examine ground items so that you can check the value of\\nyour loot before even picking it up.
\\nA new !layout
command has been added to the Chambers of Xeric plugin to share a scouted raid layout.
\\nAlso, we'd like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd "sound" and "volume" tags to music plugin \\nRemove paste to password on login screen as jagex added their own \\nAdd Reset option to various session overlays \\nAdd option to use last world as default \\nAdd cannon spot for trolls at Quidamortem \\nAdd arctic pine logs to the woodcutting plugin \\nFix ScreenshotPlugin Kingdom of Miscellania double screenshot \\nAdd untradeable item values for long/curved bones, tattered pages and shells \\nAdd five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant \\nAdd more detailed location description for Mausoleum emote clue \\nHighlight correct crate for Rommik's shop clue \\nFix speccounter for players with 200m hitpoints \\nAdd Black Demon cannon spot in Chasm of Fire \\nFix Island of Stone coordinate hint \\nCorrect direction of Miscellania island coordinate clue \\nFix yew tree Sherlock challenge \\nAdd notify option for impling spawns \\nAdd black border to wilderness crab teleport icon \\nFix resetting divine potion timers on death \\nMake GWD kill count overlay movable \\nUse mouse dragged distance to determine if the inventory grid should show \\nAdd rc-altar icons to worldmap \\n \\n- dekvall
\\nNew commits \\nWe had 25 contributors this release!
\\n15987632 (1):\\n raids plugin: fix rotation solver\\n\\nAdam (13):\\n npc highlight: use local location for south-west highlight\\n osb exchange service: validate price averages\\n login screen: remove paste to password\\n container calculation: fix overflow computing ge price\\n api: combine ExperienceChanged and BoostedLevelChanged events to StatChanged\\n client: update for new skill change event\\n scripts: update chat builder script\\n Move ConfigChanged event to client events\\n client: add Reset option to various session overlays\\n client session manager: fix task crash from being unable to acquire a session id\\n api: change LocalPlayerDeath event to PlayerDeath\\n api: add fake xp drop event\\n speccounter: support fake xpdrops\\n\\nBenDol (1):\\n defaultworld: add option to use last world as default\\n\\nChris Hranj (1):\\n examineplugin: Add support for ground items (#10157)\\n\\nDaniel (Danomate) (1):\\n cannon: add cannon spot for trolls at Quidamortem (#10242)\\n\\nDavid (1):\\n worldmap: add rc-altar icons to worldmap\\n\\nDavid Goldstein (1):\\n clues: Highlight correct crate for Rommik's shop clue (#10194)\\n\\nDavid Henshaw (1):\\n Add item mappings for rune and tzhaar ornament kits (#10161)\\n\\nFreya Varez (1):\\n Add "sound" and "volume" tags to music plugin (#10199)\\n\\nHudson Shykowski (1):\\n Add Fremennik Exiles monsters to the NPC health list\\n\\nHydrox6 (3):\\n clues: fix Island of Stone coordinate hint\\n clues: correct direction of Miscellania island coordinate clue\\n clues: fix yew tree Sherlock challenge\\n\\nJZomerlei (1):\\n woodcutting plugin: add arctic pine logs\\n\\nJoel (1):\\n Fix ScreenshotPlugin Kingdom of Miscellania double screenshot\\n\\nMatthew Jacques (1):\\n impling plugin: add notify option for impling spawns\\n\\nMax Weber (2):\\n runelite-client/chat: Be more thread safe\\n OverlayRenderer: Update bounds before render\\n\\nPaveldin (1):\\n Add Black Demon cannon spot in Chasm of Fire\\n\\nRansomTime (1):\\n Add more detailed location description for Mausoleum emote clue (#10217)\\n\\nRon Young (1):\\n grandexchange: rebuild GE item text on rebuild script event\\n\\nTomas Slusny (3):\\n Add method for attaching clear listener to IconTextField\\n Clear skill calculator selection on clear button press\\n Clear grand exchange selection on clear button press\\n\\nZeid Al-Ameedi (1):\\n Add untradeable item values for long/curved bones, tattered pages and shells (#10202)\\n\\ndekvall (4):\\n inventorygrid: use mouse dragged distance to determine if overlay should show\\n worldmap: add black border to wilderness crab teleport icon\\n emojis: reduce file size of emoji icons\\n emojis: add five new emojis\\n\\nemerald000 (1):\\n Correct medium Western diary requirement\\n\\nneeerp (1):\\n music plugin: add more area mute options\\n\\nwhartd (1):\\n ba plugin: add health bars for healers\\n\\nwinterdaze (2):\\n timers: Do not reset divine potion timers on death (#10235)\\n Make GWD kill count overlay movable (#10238)\\n
\\n\",\"image\":\"/img/blog/1.5.40-Release/ba_healthbars.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-11-14-10-00-1.5.40-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,UAAU,KAAO,yhLAAgiL,MAAQ","file":"static/js/111.d69a00fa.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.40 Release\",\"description\":\"Barbarian Assault healthbars, source dependent mutes, and ground item examine\",\"author\":\"dekvall\",\"body\":\"The Barbarian Assault plugin now allows the healer to show the health of its teammates:
\\n
\\nThe music plugin now additionally allows for configuring which area sounds should be muted based on source.\\nYou can now for example, filter out the sound of everyone else woodcutting while still hearing yours.
\\nThe examine plugin now offers functionality to examine ground items so that you can check the value of\\nyour loot before even picking it up.
\\nA new !layout
command has been added to the Chambers of Xeric plugin to share a scouted raid layout.
\\nAlso, we'd like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd "sound" and "volume" tags to music plugin \\nRemove paste to password on login screen as jagex added their own \\nAdd Reset option to various session overlays \\nAdd option to use last world as default \\nAdd cannon spot for trolls at Quidamortem \\nAdd arctic pine logs to the woodcutting plugin \\nFix ScreenshotPlugin Kingdom of Miscellania double screenshot \\nAdd untradeable item values for long/curved bones, tattered pages and shells \\nAdd five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant \\nAdd more detailed location description for Mausoleum emote clue \\nHighlight correct crate for Rommik's shop clue \\nFix speccounter for players with 200m hitpoints \\nAdd Black Demon cannon spot in Chasm of Fire \\nFix Island of Stone coordinate hint \\nCorrect direction of Miscellania island coordinate clue \\nFix yew tree Sherlock challenge \\nAdd notify option for impling spawns \\nAdd black border to wilderness crab teleport icon \\nFix resetting divine potion timers on death \\nMake GWD kill count overlay movable \\nUse mouse dragged distance to determine if the inventory grid should show \\nAdd rc-altar icons to worldmap \\n \\n- dekvall
\\nNew commits \\nWe had 25 contributors this release!
\\n15987632 (1):\\n raids plugin: fix rotation solver\\n\\nAdam (13):\\n npc highlight: use local location for south-west highlight\\n osb exchange service: validate price averages\\n login screen: remove paste to password\\n container calculation: fix overflow computing ge price\\n api: combine ExperienceChanged and BoostedLevelChanged events to StatChanged\\n client: update for new skill change event\\n scripts: update chat builder script\\n Move ConfigChanged event to client events\\n client: add Reset option to various session overlays\\n client session manager: fix task crash from being unable to acquire a session id\\n api: change LocalPlayerDeath event to PlayerDeath\\n api: add fake xp drop event\\n speccounter: support fake xpdrops\\n\\nBenDol (1):\\n defaultworld: add option to use last world as default\\n\\nChris Hranj (1):\\n examineplugin: Add support for ground items (#10157)\\n\\nDaniel (Danomate) (1):\\n cannon: add cannon spot for trolls at Quidamortem (#10242)\\n\\nDavid (1):\\n worldmap: add rc-altar icons to worldmap\\n\\nDavid Goldstein (1):\\n clues: Highlight correct crate for Rommik's shop clue (#10194)\\n\\nDavid Henshaw (1):\\n Add item mappings for rune and tzhaar ornament kits (#10161)\\n\\nFreya Varez (1):\\n Add "sound" and "volume" tags to music plugin (#10199)\\n\\nHudson Shykowski (1):\\n Add Fremennik Exiles monsters to the NPC health list\\n\\nHydrox6 (3):\\n clues: fix Island of Stone coordinate hint\\n clues: correct direction of Miscellania island coordinate clue\\n clues: fix yew tree Sherlock challenge\\n\\nJZomerlei (1):\\n woodcutting plugin: add arctic pine logs\\n\\nJoel (1):\\n Fix ScreenshotPlugin Kingdom of Miscellania double screenshot\\n\\nMatthew Jacques (1):\\n impling plugin: add notify option for impling spawns\\n\\nMax Weber (2):\\n runelite-client/chat: Be more thread safe\\n OverlayRenderer: Update bounds before render\\n\\nPaveldin (1):\\n Add Black Demon cannon spot in Chasm of Fire\\n\\nRansomTime (1):\\n Add more detailed location description for Mausoleum emote clue (#10217)\\n\\nRon Young (1):\\n grandexchange: rebuild GE item text on rebuild script event\\n\\nTomas Slusny (3):\\n Add method for attaching clear listener to IconTextField\\n Clear skill calculator selection on clear button press\\n Clear grand exchange selection on clear button press\\n\\nZeid Al-Ameedi (1):\\n Add untradeable item values for long/curved bones, tattered pages and shells (#10202)\\n\\ndekvall (4):\\n inventorygrid: use mouse dragged distance to determine if overlay should show\\n worldmap: add black border to wilderness crab teleport icon\\n emojis: reduce file size of emoji icons\\n emojis: add five new emojis\\n\\nemerald000 (1):\\n Correct medium Western diary requirement\\n\\nneeerp (1):\\n music plugin: add more area mute options\\n\\nwhartd (1):\\n ba plugin: add health bars for healers\\n\\nwinterdaze (2):\\n timers: Do not reset divine potion timers on death (#10235)\\n Make GWD kill count overlay movable (#10238)\\n
\\n\",\"image\":\"/img/blog/1.5.40-Release/ba_healthbars.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/112.8e8c2477.chunk.js b/static/js/112.dee69485.chunk.js
similarity index 98%
rename from static/js/112.8e8c2477.chunk.js
rename to static/js/112.dee69485.chunk.js
index 695701757..6c697a1b4 100644
--- a/static/js/112.8e8c2477.chunk.js
+++ b/static/js/112.dee69485.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[112],{387:function(e,n){e.exports={title:"1.5.42 Release",description:"Woodcutting respawn timer, pet entity hider, Twisted League support",author:"Jordan",body:'The Woodcutting plugin now supports showing\nrespawn timers for chopped trees. Thanks to Dava96 for this\ncontribution.
\n
\nThe Entity Hider plugin has an added\noption to hide the pets of other players. Thanks to Trevor for this\naddition!
\n
\nWe\'ve added support for Twisted Leagues:
\n\nFinally, a League Chat Icons plugin \nhas been added which can help players distinguish between League players and ironmen in the main\ngame. Thanks to hsamoht for this new plugin.
\n
\nThe Chambers of Xeric plugin has had\nits rotation whitelist format updated. Now, instead of formatting whitelisted rotations as a list\nof bracket-encapsulated rotations (eg. [muttadiles, shamans, mystics][vespula, tekton, vasa]
),\nthey should have the brackets removed and be put on a new line per rotation, like the following:
\nmuttadiles, shamans, mystics\nvespula, tekton, vasa\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nObject markers marking objects which\ncan change into other objects can be properly removed \nThe Rune Pouch overlay now displays your\nstored runes on both the normal Rune pouch and the Rune pouch (l) \nThe Screenshot plugin can now take\nautomatic screenshots when a player on your friends list or in your clan dies near you to help\nensure they can re-experience their death \nTeleport sound effects have been classified as "Others\' area sounds" for the purpose of muting via the\nMusic plugin \nYou can now configure the FPS Control\nplugin to limit your FPS to two different\namounts when the game is focused or unfocused. \nThe \nfacepalm emoji has been added to the Emojis\nplugin as the emoticon M-)
\nThe client now continues to flash\nnotifications until it\nbecomes focused (instead of clearing notifications by only mousing over the window) \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\n15987632 (1):\n entity hider plugin: add support for hiding pets\n\nAdam (34):\n raid plugin: fix layout command room order\n Remove SEASONAL_DEADMAN world type\n Remove DEADMAN_TOURNAMENT world type\n http api: update hiscore for leagues\n api: add league world type\n hiscore plugin: add leagues\n world hopper: assign leagues world color\n screenshot plugin: add League folder\n opponent info: add league hiscore endpoint\n xptracker: add league world type\n chat commands: add support for league hiscores\n rotation solver: fix to use modulus instead of remainder operator\n clue plugin: add support for league hotcold clues\n woodcutting plugin: add respawn timer\n api: add welcome chat message type\n raids plugin: fix matching rotation whitelist\n api: use region size constant in getRegionOffset\n object indicators: use WorldPoint getRegionX/Y\n object markers: fix removing markers from multilocs\n api: refactor to use NameableContainer\n client: refactor for nameable api changes\n clan manager: use clanmember manager find to lookup rank\n client: add backup jav_config support\n world client: always return non null or throw an error\n client: use mock webserver for client config loader test\n hostsupplier: only supply regular f2p or p2p worlds\n chat controller: limit layouts to 16 rooms\n raids plugin: limit layout message to 300 characters\n api: add npc composition isInteractible\n npc highlight: skip noninteractiable npcs\n npc highlight: fix npc interactible check\n keyremapping: only update chatbox input and not player name\n client: add world service to manage world fetching\n add leagues chat icon plugin\n\nAustin Lee (2):\n Add Bird Houses to crafting skill calculator (#10306)\n Add support for rune pouch (l) to rune pouch overlay (#10331)\n\nHSJ-OSRS (1):\n screenshot plugin: add friend/clan member death screenshotting\n\nHydrox6 (1):\n inventory grid: use correct item quantities for drag previews\n\nJay (1):\n music plugin: reclassify teleport sfx as other players\' area effects instead of environmental area effects\n\nMax Weber (3):\n runelite-client: use privateLookupIn for invokespecialing defaults\n runelite-client: Use archive-patcher for the client-patch\n ClientLoader: Don\'t force the bootstrap classloader\n\nSeth (2):\n death indicator: add Kourend respawn region\n regen meter: add support for endless endurance relic\n\nal3x-huang (1):\n fpsplugin: Add multiple FPS targets for multiple modes (#10239)\n\nchestnut1693 (1):\n loottracker plugin: fix typo\n\ndekvall (2):\n emojis: add facepalm emoji\n attack styles: add test for swap between bludgeon and bow\n\nemiljensen2 (1):\n notifier: require client to be focused to cancel notifications\n\nseth (2):\n chathistory: update welcome message matching to include leagues\n Add kourend home teleport to timers plugin\n\nwinterdaze (1):\n Shorten NMZ overlay text to prevent overlapping (#10241)\n
\n',image:"/img/blog/1.5.42-Release/woodcutting-respawn-timer.gif"}}}]);
-//# sourceMappingURL=112.8e8c2477.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[112],{388:function(e,n){e.exports={title:"1.5.42 Release",description:"Woodcutting respawn timer, pet entity hider, Twisted League support",author:"Jordan",body:'The Woodcutting plugin now supports showing\nrespawn timers for chopped trees. Thanks to Dava96 for this\ncontribution.
\n
\nThe Entity Hider plugin has an added\noption to hide the pets of other players. Thanks to Trevor for this\naddition!
\n
\nWe\'ve added support for Twisted Leagues:
\n\nFinally, a League Chat Icons plugin \nhas been added which can help players distinguish between League players and ironmen in the main\ngame. Thanks to hsamoht for this new plugin.
\n
\nThe Chambers of Xeric plugin has had\nits rotation whitelist format updated. Now, instead of formatting whitelisted rotations as a list\nof bracket-encapsulated rotations (eg. [muttadiles, shamans, mystics][vespula, tekton, vasa]
),\nthey should have the brackets removed and be put on a new line per rotation, like the following:
\nmuttadiles, shamans, mystics\nvespula, tekton, vasa\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nObject markers marking objects which\ncan change into other objects can be properly removed \nThe Rune Pouch overlay now displays your\nstored runes on both the normal Rune pouch and the Rune pouch (l) \nThe Screenshot plugin can now take\nautomatic screenshots when a player on your friends list or in your clan dies near you to help\nensure they can re-experience their death \nTeleport sound effects have been classified as "Others\' area sounds" for the purpose of muting via the\nMusic plugin \nYou can now configure the FPS Control\nplugin to limit your FPS to two different\namounts when the game is focused or unfocused. \nThe \nfacepalm emoji has been added to the Emojis\nplugin as the emoticon M-)
\nThe client now continues to flash\nnotifications until it\nbecomes focused (instead of clearing notifications by only mousing over the window) \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\n15987632 (1):\n entity hider plugin: add support for hiding pets\n\nAdam (34):\n raid plugin: fix layout command room order\n Remove SEASONAL_DEADMAN world type\n Remove DEADMAN_TOURNAMENT world type\n http api: update hiscore for leagues\n api: add league world type\n hiscore plugin: add leagues\n world hopper: assign leagues world color\n screenshot plugin: add League folder\n opponent info: add league hiscore endpoint\n xptracker: add league world type\n chat commands: add support for league hiscores\n rotation solver: fix to use modulus instead of remainder operator\n clue plugin: add support for league hotcold clues\n woodcutting plugin: add respawn timer\n api: add welcome chat message type\n raids plugin: fix matching rotation whitelist\n api: use region size constant in getRegionOffset\n object indicators: use WorldPoint getRegionX/Y\n object markers: fix removing markers from multilocs\n api: refactor to use NameableContainer\n client: refactor for nameable api changes\n clan manager: use clanmember manager find to lookup rank\n client: add backup jav_config support\n world client: always return non null or throw an error\n client: use mock webserver for client config loader test\n hostsupplier: only supply regular f2p or p2p worlds\n chat controller: limit layouts to 16 rooms\n raids plugin: limit layout message to 300 characters\n api: add npc composition isInteractible\n npc highlight: skip noninteractiable npcs\n npc highlight: fix npc interactible check\n keyremapping: only update chatbox input and not player name\n client: add world service to manage world fetching\n add leagues chat icon plugin\n\nAustin Lee (2):\n Add Bird Houses to crafting skill calculator (#10306)\n Add support for rune pouch (l) to rune pouch overlay (#10331)\n\nHSJ-OSRS (1):\n screenshot plugin: add friend/clan member death screenshotting\n\nHydrox6 (1):\n inventory grid: use correct item quantities for drag previews\n\nJay (1):\n music plugin: reclassify teleport sfx as other players\' area effects instead of environmental area effects\n\nMax Weber (3):\n runelite-client: use privateLookupIn for invokespecialing defaults\n runelite-client: Use archive-patcher for the client-patch\n ClientLoader: Don\'t force the bootstrap classloader\n\nSeth (2):\n death indicator: add Kourend respawn region\n regen meter: add support for endless endurance relic\n\nal3x-huang (1):\n fpsplugin: Add multiple FPS targets for multiple modes (#10239)\n\nchestnut1693 (1):\n loottracker plugin: fix typo\n\ndekvall (2):\n emojis: add facepalm emoji\n attack styles: add test for swap between bludgeon and bow\n\nemiljensen2 (1):\n notifier: require client to be focused to cancel notifications\n\nseth (2):\n chathistory: update welcome message matching to include leagues\n Add kourend home teleport to timers plugin\n\nwinterdaze (1):\n Shorten NMZ overlay text to prevent overlapping (#10241)\n
\n',image:"/img/blog/1.5.42-Release/woodcutting-respawn-timer.gif"}}}]);
+//# sourceMappingURL=112.dee69485.chunk.js.map
\ No newline at end of file
diff --git a/static/js/112.8e8c2477.chunk.js.map b/static/js/112.dee69485.chunk.js.map
similarity index 99%
rename from static/js/112.8e8c2477.chunk.js.map
rename to static/js/112.dee69485.chunk.js.map
index 79ec6a2e7..d6ed03a76 100644
--- a/static/js/112.8e8c2477.chunk.js.map
+++ b/static/js/112.dee69485.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-11-28-10-00-1.5.42-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,sEAAsE,OAAS,SAAS,KAAO,2gRAA6qR,MAAQ","file":"static/js/112.8e8c2477.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.42 Release\",\"description\":\"Woodcutting respawn timer, pet entity hider, Twisted League support\",\"author\":\"Jordan\",\"body\":\"The Woodcutting plugin now supports showing\\nrespawn timers for chopped trees. Thanks to Dava96 for this\\ncontribution.
\\n
\\nThe Entity Hider plugin has an added\\noption to hide the pets of other players. Thanks to Trevor for this\\naddition!
\\n
\\nWe've added support for Twisted Leagues:
\\n\\nFinally, a League Chat Icons plugin \\nhas been added which can help players distinguish between League players and ironmen in the main\\ngame. Thanks to hsamoht for this new plugin.
\\n
\\nThe Chambers of Xeric plugin has had\\nits rotation whitelist format updated. Now, instead of formatting whitelisted rotations as a list\\nof bracket-encapsulated rotations (eg. [muttadiles, shamans, mystics][vespula, tekton, vasa]
),\\nthey should have the brackets removed and be put on a new line per rotation, like the following:
\\nmuttadiles, shamans, mystics\\nvespula, tekton, vasa\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nObject markers marking objects which\\ncan change into other objects can be properly removed \\nThe Rune Pouch overlay now displays your\\nstored runes on both the normal Rune pouch and the Rune pouch (l) \\nThe Screenshot plugin can now take\\nautomatic screenshots when a player on your friends list or in your clan dies near you to help\\nensure they can re-experience their death \\nTeleport sound effects have been classified as "Others' area sounds" for the purpose of muting via the\\nMusic plugin \\nYou can now configure the FPS Control\\nplugin to limit your FPS to two different\\namounts when the game is focused or unfocused. \\nThe \\nfacepalm emoji has been added to the Emojis\\nplugin as the emoticon M-)
\\nThe client now continues to flash\\nnotifications until it\\nbecomes focused (instead of clearing notifications by only mousing over the window) \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\n15987632 (1):\\n entity hider plugin: add support for hiding pets\\n\\nAdam (34):\\n raid plugin: fix layout command room order\\n Remove SEASONAL_DEADMAN world type\\n Remove DEADMAN_TOURNAMENT world type\\n http api: update hiscore for leagues\\n api: add league world type\\n hiscore plugin: add leagues\\n world hopper: assign leagues world color\\n screenshot plugin: add League folder\\n opponent info: add league hiscore endpoint\\n xptracker: add league world type\\n chat commands: add support for league hiscores\\n rotation solver: fix to use modulus instead of remainder operator\\n clue plugin: add support for league hotcold clues\\n woodcutting plugin: add respawn timer\\n api: add welcome chat message type\\n raids plugin: fix matching rotation whitelist\\n api: use region size constant in getRegionOffset\\n object indicators: use WorldPoint getRegionX/Y\\n object markers: fix removing markers from multilocs\\n api: refactor to use NameableContainer\\n client: refactor for nameable api changes\\n clan manager: use clanmember manager find to lookup rank\\n client: add backup jav_config support\\n world client: always return non null or throw an error\\n client: use mock webserver for client config loader test\\n hostsupplier: only supply regular f2p or p2p worlds\\n chat controller: limit layouts to 16 rooms\\n raids plugin: limit layout message to 300 characters\\n api: add npc composition isInteractible\\n npc highlight: skip noninteractiable npcs\\n npc highlight: fix npc interactible check\\n keyremapping: only update chatbox input and not player name\\n client: add world service to manage world fetching\\n add leagues chat icon plugin\\n\\nAustin Lee (2):\\n Add Bird Houses to crafting skill calculator (#10306)\\n Add support for rune pouch (l) to rune pouch overlay (#10331)\\n\\nHSJ-OSRS (1):\\n screenshot plugin: add friend/clan member death screenshotting\\n\\nHydrox6 (1):\\n inventory grid: use correct item quantities for drag previews\\n\\nJay (1):\\n music plugin: reclassify teleport sfx as other players' area effects instead of environmental area effects\\n\\nMax Weber (3):\\n runelite-client: use privateLookupIn for invokespecialing defaults\\n runelite-client: Use archive-patcher for the client-patch\\n ClientLoader: Don't force the bootstrap classloader\\n\\nSeth (2):\\n death indicator: add Kourend respawn region\\n regen meter: add support for endless endurance relic\\n\\nal3x-huang (1):\\n fpsplugin: Add multiple FPS targets for multiple modes (#10239)\\n\\nchestnut1693 (1):\\n loottracker plugin: fix typo\\n\\ndekvall (2):\\n emojis: add facepalm emoji\\n attack styles: add test for swap between bludgeon and bow\\n\\nemiljensen2 (1):\\n notifier: require client to be focused to cancel notifications\\n\\nseth (2):\\n chathistory: update welcome message matching to include leagues\\n Add kourend home teleport to timers plugin\\n\\nwinterdaze (1):\\n Shorten NMZ overlay text to prevent overlapping (#10241)\\n
\\n\",\"image\":\"/img/blog/1.5.42-Release/woodcutting-respawn-timer.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-11-28-10-00-1.5.42-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,sEAAsE,OAAS,SAAS,KAAO,2gRAA6qR,MAAQ","file":"static/js/112.dee69485.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.42 Release\",\"description\":\"Woodcutting respawn timer, pet entity hider, Twisted League support\",\"author\":\"Jordan\",\"body\":\"The Woodcutting plugin now supports showing\\nrespawn timers for chopped trees. Thanks to Dava96 for this\\ncontribution.
\\n
\\nThe Entity Hider plugin has an added\\noption to hide the pets of other players. Thanks to Trevor for this\\naddition!
\\n
\\nWe've added support for Twisted Leagues:
\\n\\nFinally, a League Chat Icons plugin \\nhas been added which can help players distinguish between League players and ironmen in the main\\ngame. Thanks to hsamoht for this new plugin.
\\n
\\nThe Chambers of Xeric plugin has had\\nits rotation whitelist format updated. Now, instead of formatting whitelisted rotations as a list\\nof bracket-encapsulated rotations (eg. [muttadiles, shamans, mystics][vespula, tekton, vasa]
),\\nthey should have the brackets removed and be put on a new line per rotation, like the following:
\\nmuttadiles, shamans, mystics\\nvespula, tekton, vasa\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nObject markers marking objects which\\ncan change into other objects can be properly removed \\nThe Rune Pouch overlay now displays your\\nstored runes on both the normal Rune pouch and the Rune pouch (l) \\nThe Screenshot plugin can now take\\nautomatic screenshots when a player on your friends list or in your clan dies near you to help\\nensure they can re-experience their death \\nTeleport sound effects have been classified as "Others' area sounds" for the purpose of muting via the\\nMusic plugin \\nYou can now configure the FPS Control\\nplugin to limit your FPS to two different\\namounts when the game is focused or unfocused. \\nThe \\nfacepalm emoji has been added to the Emojis\\nplugin as the emoticon M-)
\\nThe client now continues to flash\\nnotifications until it\\nbecomes focused (instead of clearing notifications by only mousing over the window) \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\n15987632 (1):\\n entity hider plugin: add support for hiding pets\\n\\nAdam (34):\\n raid plugin: fix layout command room order\\n Remove SEASONAL_DEADMAN world type\\n Remove DEADMAN_TOURNAMENT world type\\n http api: update hiscore for leagues\\n api: add league world type\\n hiscore plugin: add leagues\\n world hopper: assign leagues world color\\n screenshot plugin: add League folder\\n opponent info: add league hiscore endpoint\\n xptracker: add league world type\\n chat commands: add support for league hiscores\\n rotation solver: fix to use modulus instead of remainder operator\\n clue plugin: add support for league hotcold clues\\n woodcutting plugin: add respawn timer\\n api: add welcome chat message type\\n raids plugin: fix matching rotation whitelist\\n api: use region size constant in getRegionOffset\\n object indicators: use WorldPoint getRegionX/Y\\n object markers: fix removing markers from multilocs\\n api: refactor to use NameableContainer\\n client: refactor for nameable api changes\\n clan manager: use clanmember manager find to lookup rank\\n client: add backup jav_config support\\n world client: always return non null or throw an error\\n client: use mock webserver for client config loader test\\n hostsupplier: only supply regular f2p or p2p worlds\\n chat controller: limit layouts to 16 rooms\\n raids plugin: limit layout message to 300 characters\\n api: add npc composition isInteractible\\n npc highlight: skip noninteractiable npcs\\n npc highlight: fix npc interactible check\\n keyremapping: only update chatbox input and not player name\\n client: add world service to manage world fetching\\n add leagues chat icon plugin\\n\\nAustin Lee (2):\\n Add Bird Houses to crafting skill calculator (#10306)\\n Add support for rune pouch (l) to rune pouch overlay (#10331)\\n\\nHSJ-OSRS (1):\\n screenshot plugin: add friend/clan member death screenshotting\\n\\nHydrox6 (1):\\n inventory grid: use correct item quantities for drag previews\\n\\nJay (1):\\n music plugin: reclassify teleport sfx as other players' area effects instead of environmental area effects\\n\\nMax Weber (3):\\n runelite-client: use privateLookupIn for invokespecialing defaults\\n runelite-client: Use archive-patcher for the client-patch\\n ClientLoader: Don't force the bootstrap classloader\\n\\nSeth (2):\\n death indicator: add Kourend respawn region\\n regen meter: add support for endless endurance relic\\n\\nal3x-huang (1):\\n fpsplugin: Add multiple FPS targets for multiple modes (#10239)\\n\\nchestnut1693 (1):\\n loottracker plugin: fix typo\\n\\ndekvall (2):\\n emojis: add facepalm emoji\\n attack styles: add test for swap between bludgeon and bow\\n\\nemiljensen2 (1):\\n notifier: require client to be focused to cancel notifications\\n\\nseth (2):\\n chathistory: update welcome message matching to include leagues\\n Add kourend home teleport to timers plugin\\n\\nwinterdaze (1):\\n Shorten NMZ overlay text to prevent overlapping (#10241)\\n
\\n\",\"image\":\"/img/blog/1.5.42-Release/woodcutting-respawn-timer.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/113.4a24257c.chunk.js b/static/js/113.f4c8db8f.chunk.js
similarity index 98%
rename from static/js/113.4a24257c.chunk.js
rename to static/js/113.f4c8db8f.chunk.js
index 5eba83c23..c0a9bb112 100644
--- a/static/js/113.4a24257c.chunk.js
+++ b/static/js/113.f4c8db8f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[113],{388:function(e,n){e.exports={title:"1.5.43 Release",description:"Camera plugin right-click rotate, clan chat confirm kick dialog, and bugfixes",author:"Jordan",body:'The newly-renamed Camera plugin now offers an\noption to rotate the camera using your right mouse button when no menu options are available. It\nalso offers further options to map the middle mouse button to open the right-click menu and to\nignore the "Examine" menu option for right-click camera rotation. Thanks to\n@Wynadorn for this contribution!
\nThe Clan Chat plugin now has an option to\ndisplay a chat prompt to confirm kicking a player to help avoid accidental kicks! Thanks to\n@TheStonedTurtle for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Chat Commands plugin \'s chatbox\nclearing keybinds are now configurable \nThe Kourend Library plugin has an\noption (enabled by default) to display a tutorial overlay to help get started with it \nMessages displayed via the Twitch plugin now\nhave timestamps \nCaptain Khaled and Arceuus library customers now have menu entry\nswaps for their "Task" and "Help"\noptions, respectively \nA menu entry swap for previous\ndestinations of your POH Jewellery box has been added \nThe "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\nplugin \nLeague Chat icons no longer display usernames without their appropriate chat\ncolors applied \nThe Slayer plugin has learned to recognize\nKonar giving a player their first slayer task in the Twisted League \nThe Object Markers plugin now properly\nallows unmarking objects which may have a different name than when they spawned \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (10):\n client: fix world hopper not populating worlds on startup and when refreshed\n woodcutting plugin: disable by default\n client: rename zoom plugin to camera plugin\n camera plugin: add option to rotate camera with right click\n object indicators: fix unmarking objects matched by name\n object indicators: fix checkObjectPoints to check plane\n client loader: fix incorrect applet world when using fallback config\n clientloader: don\'t lazy load client classes\n http-api: update for boss hiscores\n hiscore result builder: fix building hiscore result with no boss hiscores\n\nAlexsuperfly (1):\n woodcutting: show respawn timers after GameState change\n\nHydrox6 (8):\n kourendlibrary: replace `final static` with `static final`\n kourendlibrary: fix prediction not resetting when layout changes\n kourendlibrary: add tutorial overlay\n kourendlibrary: remove unneeded hidden flag from overlay\n kourendlibrary: add option to hide Varlamore Envoy\n kourendlibrary: optimize NPC marking code\n kourendlibrary: remove LibraryCustomer\n twitch: add timestamps to messages\n\nJZomerlei (1):\n chatcommands: Make chat clearing keybinds configurable (#10308)\n\nJustinmcnabb (1):\n woodcutting: Add missing Willow Tree Object IDs (#10391)\n\nKC Sparks (1):\n menu entry swapper: add captain khaled talk-to/task swap\n\nLinda Lapinlampi (1):\n npc highlight: skip noninteractible npcs on minimap\n\nMax Weber (3):\n Update Scripts to 2019-12-05-rev182\n poh: Update jewelery box ids\n fix ChatSplitBuilder crashing when receiving a friend login/out message\n\nShaun Dreclin (1):\n menu entry swapper: Add \'help\' swap to Arceuus library customers\n\nShawn Shadrix (1):\n kourendlibrary: highlight the customer\'s desired book in the overlay\n\nTheStonedTurtle (1):\n clanchat plugin: add option to confirm kicks\n\nThomas (2):\n chat message manager: deprioritize chat message hook\n league chat icons: fix plugin name\n\ndekvall (1):\n prayer-reorder: remove test\n\nh3half (1):\n slayer plugin: fix detecting Konar\'s first assignment\n\nwhartd (1):\n menu swapper: add jewellery box\n
\n',image:"/img/blog/1.5.43-Release/clan-chat-kick-confirm-dialog.gif"}}}]);
-//# sourceMappingURL=113.4a24257c.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[113],{389:function(e,n){e.exports={title:"1.5.43 Release",description:"Camera plugin right-click rotate, clan chat confirm kick dialog, and bugfixes",author:"Jordan",body:'The newly-renamed Camera plugin now offers an\noption to rotate the camera using your right mouse button when no menu options are available. It\nalso offers further options to map the middle mouse button to open the right-click menu and to\nignore the "Examine" menu option for right-click camera rotation. Thanks to\n@Wynadorn for this contribution!
\nThe Clan Chat plugin now has an option to\ndisplay a chat prompt to confirm kicking a player to help avoid accidental kicks! Thanks to\n@TheStonedTurtle for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Chat Commands plugin \'s chatbox\nclearing keybinds are now configurable \nThe Kourend Library plugin has an\noption (enabled by default) to display a tutorial overlay to help get started with it \nMessages displayed via the Twitch plugin now\nhave timestamps \nCaptain Khaled and Arceuus library customers now have menu entry\nswaps for their "Task" and "Help"\noptions, respectively \nA menu entry swap for previous\ndestinations of your POH Jewellery box has been added \nThe "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\nplugin \nLeague Chat icons no longer display usernames without their appropriate chat\ncolors applied \nThe Slayer plugin has learned to recognize\nKonar giving a player their first slayer task in the Twisted League \nThe Object Markers plugin now properly\nallows unmarking objects which may have a different name than when they spawned \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (10):\n client: fix world hopper not populating worlds on startup and when refreshed\n woodcutting plugin: disable by default\n client: rename zoom plugin to camera plugin\n camera plugin: add option to rotate camera with right click\n object indicators: fix unmarking objects matched by name\n object indicators: fix checkObjectPoints to check plane\n client loader: fix incorrect applet world when using fallback config\n clientloader: don\'t lazy load client classes\n http-api: update for boss hiscores\n hiscore result builder: fix building hiscore result with no boss hiscores\n\nAlexsuperfly (1):\n woodcutting: show respawn timers after GameState change\n\nHydrox6 (8):\n kourendlibrary: replace `final static` with `static final`\n kourendlibrary: fix prediction not resetting when layout changes\n kourendlibrary: add tutorial overlay\n kourendlibrary: remove unneeded hidden flag from overlay\n kourendlibrary: add option to hide Varlamore Envoy\n kourendlibrary: optimize NPC marking code\n kourendlibrary: remove LibraryCustomer\n twitch: add timestamps to messages\n\nJZomerlei (1):\n chatcommands: Make chat clearing keybinds configurable (#10308)\n\nJustinmcnabb (1):\n woodcutting: Add missing Willow Tree Object IDs (#10391)\n\nKC Sparks (1):\n menu entry swapper: add captain khaled talk-to/task swap\n\nLinda Lapinlampi (1):\n npc highlight: skip noninteractible npcs on minimap\n\nMax Weber (3):\n Update Scripts to 2019-12-05-rev182\n poh: Update jewelery box ids\n fix ChatSplitBuilder crashing when receiving a friend login/out message\n\nShaun Dreclin (1):\n menu entry swapper: Add \'help\' swap to Arceuus library customers\n\nShawn Shadrix (1):\n kourendlibrary: highlight the customer\'s desired book in the overlay\n\nTheStonedTurtle (1):\n clanchat plugin: add option to confirm kicks\n\nThomas (2):\n chat message manager: deprioritize chat message hook\n league chat icons: fix plugin name\n\ndekvall (1):\n prayer-reorder: remove test\n\nh3half (1):\n slayer plugin: fix detecting Konar\'s first assignment\n\nwhartd (1):\n menu swapper: add jewellery box\n
\n',image:"/img/blog/1.5.43-Release/clan-chat-kick-confirm-dialog.gif"}}}]);
+//# sourceMappingURL=113.f4c8db8f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/113.4a24257c.chunk.js.map b/static/js/113.f4c8db8f.chunk.js.map
similarity index 98%
rename from static/js/113.4a24257c.chunk.js.map
rename to static/js/113.f4c8db8f.chunk.js.map
index f0b9364fe..bfef0e2c4 100644
--- a/static/js/113.4a24257c.chunk.js.map
+++ b/static/js/113.f4c8db8f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-12-16-10-00-1.5.43-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,SAAS,KAAO,+uKAA2zK,MAAQ","file":"static/js/113.4a24257c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.43 Release\",\"description\":\"Camera plugin right-click rotate, clan chat confirm kick dialog, and bugfixes\",\"author\":\"Jordan\",\"body\":\"The newly-renamed Camera plugin now offers an\\noption to rotate the camera using your right mouse button when no menu options are available. It\\nalso offers further options to map the middle mouse button to open the right-click menu and to\\nignore the "Examine" menu option for right-click camera rotation. Thanks to\\n@Wynadorn for this contribution!
\\nThe Clan Chat plugin now has an option to\\ndisplay a chat prompt to confirm kicking a player to help avoid accidental kicks! Thanks to\\n@TheStonedTurtle for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Chat Commands plugin 's chatbox\\nclearing keybinds are now configurable \\nThe Kourend Library plugin has an\\noption (enabled by default) to display a tutorial overlay to help get started with it \\nMessages displayed via the Twitch plugin now\\nhave timestamps \\nCaptain Khaled and Arceuus library customers now have menu entry\\nswaps for their "Task" and "Help"\\noptions, respectively \\nA menu entry swap for previous\\ndestinations of your POH Jewellery box has been added \\nThe "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\\nplugin \\nLeague Chat icons no longer display usernames without their appropriate chat\\ncolors applied \\nThe Slayer plugin has learned to recognize\\nKonar giving a player their first slayer task in the Twisted League \\nThe Object Markers plugin now properly\\nallows unmarking objects which may have a different name than when they spawned \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (10):\\n client: fix world hopper not populating worlds on startup and when refreshed\\n woodcutting plugin: disable by default\\n client: rename zoom plugin to camera plugin\\n camera plugin: add option to rotate camera with right click\\n object indicators: fix unmarking objects matched by name\\n object indicators: fix checkObjectPoints to check plane\\n client loader: fix incorrect applet world when using fallback config\\n clientloader: don't lazy load client classes\\n http-api: update for boss hiscores\\n hiscore result builder: fix building hiscore result with no boss hiscores\\n\\nAlexsuperfly (1):\\n woodcutting: show respawn timers after GameState change\\n\\nHydrox6 (8):\\n kourendlibrary: replace `final static` with `static final`\\n kourendlibrary: fix prediction not resetting when layout changes\\n kourendlibrary: add tutorial overlay\\n kourendlibrary: remove unneeded hidden flag from overlay\\n kourendlibrary: add option to hide Varlamore Envoy\\n kourendlibrary: optimize NPC marking code\\n kourendlibrary: remove LibraryCustomer\\n twitch: add timestamps to messages\\n\\nJZomerlei (1):\\n chatcommands: Make chat clearing keybinds configurable (#10308)\\n\\nJustinmcnabb (1):\\n woodcutting: Add missing Willow Tree Object IDs (#10391)\\n\\nKC Sparks (1):\\n menu entry swapper: add captain khaled talk-to/task swap\\n\\nLinda Lapinlampi (1):\\n npc highlight: skip noninteractible npcs on minimap\\n\\nMax Weber (3):\\n Update Scripts to 2019-12-05-rev182\\n poh: Update jewelery box ids\\n fix ChatSplitBuilder crashing when receiving a friend login/out message\\n\\nShaun Dreclin (1):\\n menu entry swapper: Add 'help' swap to Arceuus library customers\\n\\nShawn Shadrix (1):\\n kourendlibrary: highlight the customer's desired book in the overlay\\n\\nTheStonedTurtle (1):\\n clanchat plugin: add option to confirm kicks\\n\\nThomas (2):\\n chat message manager: deprioritize chat message hook\\n league chat icons: fix plugin name\\n\\ndekvall (1):\\n prayer-reorder: remove test\\n\\nh3half (1):\\n slayer plugin: fix detecting Konar's first assignment\\n\\nwhartd (1):\\n menu swapper: add jewellery box\\n
\\n\",\"image\":\"/img/blog/1.5.43-Release/clan-chat-kick-confirm-dialog.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-12-16-10-00-1.5.43-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,SAAS,KAAO,+uKAA2zK,MAAQ","file":"static/js/113.f4c8db8f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.43 Release\",\"description\":\"Camera plugin right-click rotate, clan chat confirm kick dialog, and bugfixes\",\"author\":\"Jordan\",\"body\":\"The newly-renamed Camera plugin now offers an\\noption to rotate the camera using your right mouse button when no menu options are available. It\\nalso offers further options to map the middle mouse button to open the right-click menu and to\\nignore the "Examine" menu option for right-click camera rotation. Thanks to\\n@Wynadorn for this contribution!
\\nThe Clan Chat plugin now has an option to\\ndisplay a chat prompt to confirm kicking a player to help avoid accidental kicks! Thanks to\\n@TheStonedTurtle for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Chat Commands plugin 's chatbox\\nclearing keybinds are now configurable \\nThe Kourend Library plugin has an\\noption (enabled by default) to display a tutorial overlay to help get started with it \\nMessages displayed via the Twitch plugin now\\nhave timestamps \\nCaptain Khaled and Arceuus library customers now have menu entry\\nswaps for their "Task" and "Help"\\noptions, respectively \\nA menu entry swap for previous\\ndestinations of your POH Jewellery box has been added \\nThe "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\\nplugin \\nLeague Chat icons no longer display usernames without their appropriate chat\\ncolors applied \\nThe Slayer plugin has learned to recognize\\nKonar giving a player their first slayer task in the Twisted League \\nThe Object Markers plugin now properly\\nallows unmarking objects which may have a different name than when they spawned \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (10):\\n client: fix world hopper not populating worlds on startup and when refreshed\\n woodcutting plugin: disable by default\\n client: rename zoom plugin to camera plugin\\n camera plugin: add option to rotate camera with right click\\n object indicators: fix unmarking objects matched by name\\n object indicators: fix checkObjectPoints to check plane\\n client loader: fix incorrect applet world when using fallback config\\n clientloader: don't lazy load client classes\\n http-api: update for boss hiscores\\n hiscore result builder: fix building hiscore result with no boss hiscores\\n\\nAlexsuperfly (1):\\n woodcutting: show respawn timers after GameState change\\n\\nHydrox6 (8):\\n kourendlibrary: replace `final static` with `static final`\\n kourendlibrary: fix prediction not resetting when layout changes\\n kourendlibrary: add tutorial overlay\\n kourendlibrary: remove unneeded hidden flag from overlay\\n kourendlibrary: add option to hide Varlamore Envoy\\n kourendlibrary: optimize NPC marking code\\n kourendlibrary: remove LibraryCustomer\\n twitch: add timestamps to messages\\n\\nJZomerlei (1):\\n chatcommands: Make chat clearing keybinds configurable (#10308)\\n\\nJustinmcnabb (1):\\n woodcutting: Add missing Willow Tree Object IDs (#10391)\\n\\nKC Sparks (1):\\n menu entry swapper: add captain khaled talk-to/task swap\\n\\nLinda Lapinlampi (1):\\n npc highlight: skip noninteractible npcs on minimap\\n\\nMax Weber (3):\\n Update Scripts to 2019-12-05-rev182\\n poh: Update jewelery box ids\\n fix ChatSplitBuilder crashing when receiving a friend login/out message\\n\\nShaun Dreclin (1):\\n menu entry swapper: Add 'help' swap to Arceuus library customers\\n\\nShawn Shadrix (1):\\n kourendlibrary: highlight the customer's desired book in the overlay\\n\\nTheStonedTurtle (1):\\n clanchat plugin: add option to confirm kicks\\n\\nThomas (2):\\n chat message manager: deprioritize chat message hook\\n league chat icons: fix plugin name\\n\\ndekvall (1):\\n prayer-reorder: remove test\\n\\nh3half (1):\\n slayer plugin: fix detecting Konar's first assignment\\n\\nwhartd (1):\\n menu swapper: add jewellery box\\n
\\n\",\"image\":\"/img/blog/1.5.43-Release/clan-chat-kick-confirm-dialog.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/114.cf77b298.chunk.js b/static/js/114.b46dfc42.chunk.js
similarity index 96%
rename from static/js/114.cf77b298.chunk.js
rename to static/js/114.b46dfc42.chunk.js
index d1f888bf2..8d4cb6034 100644
--- a/static/js/114.cf77b298.chunk.js
+++ b/static/js/114.b46dfc42.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[114],{389:function(e,n){e.exports={title:"1.6.0 Release",description:"RuneLite Plugin Hub",author:"Adam",body:'We\'ve added support for external plugins to RuneLite. External plugins are\nplugins which are maintained by community members and other developers that are not\nofficially affiliated with the project.
\nThe external plugins are verified by us for safety, to ensure they are not\nmalicious, and are also not breaking Jagex\'s\nrules ,\nwhich we have agreed to as a project.
\nWe are providing the platform for the external plugins; developers submit their\nplugins to the plugin hub repository \nfor inclusion. External plugins are not tied to specific RuneLite releases;\nplugins can be created, modified, or removed from the plugin hub without\nrequiring us make a new RuneLite release.
\nThe plugin hub can be browsed in the client by scrolling to the bottom of the\nconfiguration panel.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the Kourend Library plugin incorrectly resetting when searching empty bookcases \nAdd support for ignore list notes to the friend notes plugin \nThe fog at the scene corners now curves around it slightly \nFix the tithe farm overlay to be movable again \n \nEnjoy!
\n- Adam
\nNew commits \nAaron Goff (1):\n Change avantoe and avantoe seed item id medium name\n\nAdam (1):\n api: modify RemoveFriend to accept a nameable\n\nHydrox6 (1):\n kourendlibrary: fix layout resetting unintentionally\n\nMax Weber (10):\n devtools: Add Notifier button\n runelite-client: Add custom notification sounds\n config: Refactor config panel into separate panels for each logical view\n runelite-client: Remove IconButton Most of this class is defaults, which can just be a normal method and a listener for hover support, which is part of the base class anyway.\n ImageUtil: Rename methods to luminance, and work with non ARGB images\n DynamicGridLayout: Take the container\'s insets into account\n SplashScreen: Ceiling download total\n SplashScreen: Allow use after our L&F has been installed\n runelite-client: Add External Plugin support\n objectindicators: Correctly match template plane\n\nOwain van Brakel (1):\n FPS: Add range to the fps target config items\n\nRami (1):\n friend notes: support notes on ignore list players\n\ndekvall (1):\n widgetinfo: fix tithe farm score\n\nln (1):\n GPU: smooth out fog corners\n
\n'}}}]);
-//# sourceMappingURL=114.cf77b298.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[114],{390:function(e,n){e.exports={title:"1.6.0 Release",description:"RuneLite Plugin Hub",author:"Adam",body:'We\'ve added support for external plugins to RuneLite. External plugins are\nplugins which are maintained by community members and other developers that are not\nofficially affiliated with the project.
\nThe external plugins are verified by us for safety, to ensure they are not\nmalicious, and are also not breaking Jagex\'s\nrules ,\nwhich we have agreed to as a project.
\nWe are providing the platform for the external plugins; developers submit their\nplugins to the plugin hub repository \nfor inclusion. External plugins are not tied to specific RuneLite releases;\nplugins can be created, modified, or removed from the plugin hub without\nrequiring us make a new RuneLite release.
\nThe plugin hub can be browsed in the client by scrolling to the bottom of the\nconfiguration panel.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the Kourend Library plugin incorrectly resetting when searching empty bookcases \nAdd support for ignore list notes to the friend notes plugin \nThe fog at the scene corners now curves around it slightly \nFix the tithe farm overlay to be movable again \n \nEnjoy!
\n- Adam
\nNew commits \nAaron Goff (1):\n Change avantoe and avantoe seed item id medium name\n\nAdam (1):\n api: modify RemoveFriend to accept a nameable\n\nHydrox6 (1):\n kourendlibrary: fix layout resetting unintentionally\n\nMax Weber (10):\n devtools: Add Notifier button\n runelite-client: Add custom notification sounds\n config: Refactor config panel into separate panels for each logical view\n runelite-client: Remove IconButton Most of this class is defaults, which can just be a normal method and a listener for hover support, which is part of the base class anyway.\n ImageUtil: Rename methods to luminance, and work with non ARGB images\n DynamicGridLayout: Take the container\'s insets into account\n SplashScreen: Ceiling download total\n SplashScreen: Allow use after our L&F has been installed\n runelite-client: Add External Plugin support\n objectindicators: Correctly match template plane\n\nOwain van Brakel (1):\n FPS: Add range to the fps target config items\n\nRami (1):\n friend notes: support notes on ignore list players\n\ndekvall (1):\n widgetinfo: fix tithe farm score\n\nln (1):\n GPU: smooth out fog corners\n
\n'}}}]);
+//# sourceMappingURL=114.b46dfc42.chunk.js.map
\ No newline at end of file
diff --git a/static/js/114.cf77b298.chunk.js.map b/static/js/114.b46dfc42.chunk.js.map
similarity index 97%
rename from static/js/114.cf77b298.chunk.js.map
rename to static/js/114.b46dfc42.chunk.js.map
index 938f83d76..b5177fa73 100644
--- a/static/js/114.cf77b298.chunk.js.map
+++ b/static/js/114.b46dfc42.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-12-19-10-00-1.6.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/114.cf77b298.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.0 Release\",\"description\":\"RuneLite Plugin Hub\",\"author\":\"Adam\",\"body\":\"We've added support for external plugins to RuneLite. External plugins are\\nplugins which are maintained by community members and other developers that are not\\nofficially affiliated with the project.
\\nThe external plugins are verified by us for safety, to ensure they are not\\nmalicious, and are also not breaking Jagex's\\nrules ,\\nwhich we have agreed to as a project.
\\nWe are providing the platform for the external plugins; developers submit their\\nplugins to the plugin hub repository \\nfor inclusion. External plugins are not tied to specific RuneLite releases;\\nplugins can be created, modified, or removed from the plugin hub without\\nrequiring us make a new RuneLite release.
\\nThe plugin hub can be browsed in the client by scrolling to the bottom of the\\nconfiguration panel.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the Kourend Library plugin incorrectly resetting when searching empty bookcases \\nAdd support for ignore list notes to the friend notes plugin \\nThe fog at the scene corners now curves around it slightly \\nFix the tithe farm overlay to be movable again \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAaron Goff (1):\\n Change avantoe and avantoe seed item id medium name\\n\\nAdam (1):\\n api: modify RemoveFriend to accept a nameable\\n\\nHydrox6 (1):\\n kourendlibrary: fix layout resetting unintentionally\\n\\nMax Weber (10):\\n devtools: Add Notifier button\\n runelite-client: Add custom notification sounds\\n config: Refactor config panel into separate panels for each logical view\\n runelite-client: Remove IconButton Most of this class is defaults, which can just be a normal method and a listener for hover support, which is part of the base class anyway.\\n ImageUtil: Rename methods to luminance, and work with non ARGB images\\n DynamicGridLayout: Take the container's insets into account\\n SplashScreen: Ceiling download total\\n SplashScreen: Allow use after our L&F has been installed\\n runelite-client: Add External Plugin support\\n objectindicators: Correctly match template plane\\n\\nOwain van Brakel (1):\\n FPS: Add range to the fps target config items\\n\\nRami (1):\\n friend notes: support notes on ignore list players\\n\\ndekvall (1):\\n widgetinfo: fix tithe farm score\\n\\nln (1):\\n GPU: smooth out fog corners\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-12-19-10-00-1.6.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/114.b46dfc42.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.0 Release\",\"description\":\"RuneLite Plugin Hub\",\"author\":\"Adam\",\"body\":\"We've added support for external plugins to RuneLite. External plugins are\\nplugins which are maintained by community members and other developers that are not\\nofficially affiliated with the project.
\\nThe external plugins are verified by us for safety, to ensure they are not\\nmalicious, and are also not breaking Jagex's\\nrules ,\\nwhich we have agreed to as a project.
\\nWe are providing the platform for the external plugins; developers submit their\\nplugins to the plugin hub repository \\nfor inclusion. External plugins are not tied to specific RuneLite releases;\\nplugins can be created, modified, or removed from the plugin hub without\\nrequiring us make a new RuneLite release.
\\nThe plugin hub can be browsed in the client by scrolling to the bottom of the\\nconfiguration panel.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the Kourend Library plugin incorrectly resetting when searching empty bookcases \\nAdd support for ignore list notes to the friend notes plugin \\nThe fog at the scene corners now curves around it slightly \\nFix the tithe farm overlay to be movable again \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAaron Goff (1):\\n Change avantoe and avantoe seed item id medium name\\n\\nAdam (1):\\n api: modify RemoveFriend to accept a nameable\\n\\nHydrox6 (1):\\n kourendlibrary: fix layout resetting unintentionally\\n\\nMax Weber (10):\\n devtools: Add Notifier button\\n runelite-client: Add custom notification sounds\\n config: Refactor config panel into separate panels for each logical view\\n runelite-client: Remove IconButton Most of this class is defaults, which can just be a normal method and a listener for hover support, which is part of the base class anyway.\\n ImageUtil: Rename methods to luminance, and work with non ARGB images\\n DynamicGridLayout: Take the container's insets into account\\n SplashScreen: Ceiling download total\\n SplashScreen: Allow use after our L&F has been installed\\n runelite-client: Add External Plugin support\\n objectindicators: Correctly match template plane\\n\\nOwain van Brakel (1):\\n FPS: Add range to the fps target config items\\n\\nRami (1):\\n friend notes: support notes on ignore list players\\n\\ndekvall (1):\\n widgetinfo: fix tithe farm score\\n\\nln (1):\\n GPU: smooth out fog corners\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/115.497d49ae.chunk.js b/static/js/115.efcbc8bf.chunk.js
similarity index 97%
rename from static/js/115.497d49ae.chunk.js
rename to static/js/115.efcbc8bf.chunk.js
index 03f4336d8..a0b77b7be 100644
--- a/static/js/115.497d49ae.chunk.js
+++ b/static/js/115.efcbc8bf.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[115],{390:function(n,e){n.exports={title:"1.6.1 Release",description:"Boss hiscores and bug fixes",author:"Adam",body:'The hiscore plugin now supports boss hiscores and shows it in a panel beneath\nthe minigame hiscores.
\n
\nThe !kc
command remains as-is as it updates kill counts in real-time as\nopposed to the boss hiscores which require relogging.
\nThe camera plugin now has an option to add Look South
, Look East
, and Look West
to the compass.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe new tag-tab button has been moved below the tag-tab list to make room\nfor the new equipment button \nThe cannon plugin now has a configurable threshold for when it will warn you\nfor having low ammo \nAdd a shift click abort GE offer option to menu swapper \nAdd a menu swap for GE offer withdraw mode \nAdd an option to show the total value of Chambers of Xeric loot to the raids\nplugin \nFix slayer plugin to recognize tasks assigned to the Forthos Dungeon \nFix clipping of 2005 interface style minimap \nFix several more issues with the Kourend library plugin which cause it to\nreset at the wrong time and incorrectly mark objects when world hopping \nAdd the option to Lookup players on your ignore list \nAdd potions to the item identification plugin \nSupport chat command clear line/word keybinds in pm input dialog \nFix clan chat ranks not showing up if the clan chat name is recolored \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (2):\n client: add VisibleForExternalPlugins annotation\n client: add getVar methods for external plugins\n\nAdam (8):\n cannon plugin: make ammo notification threshold configurable\n menu swapper: add shift click abort ge offer\n clientloader: throw an exception when unable to peek first entry\n cache: add param config\n camera plugin: reposition startUp/shutdown members\n camera plugin: add Look South/East/West option to compass\n hiscore plugin: add boss hiscores\n raids plugin: add option to show loot value\n\nAlexsuperfly (3):\n woodcutting: account for plane change with despawn events\n raids: allow \'unknown\' to evaluate to both unknown types\n woodcutting: create maple timer for miscellania region\n\nBlackberry0Pie (1):\n slayer plugin: add Forthos Dungeon\n\nCaleb Waters (1):\n skill calc: change arrow shaft xp to be per shaft\n\nGamma91 (1):\n hiscore skill: fix spelling of commander zilyana\n\nHydrox6 (7):\n interfacestyles: fix 2005 fixed mode minimap\'s right side\n kourendlibrary: clear tracked NPCs when changing worlds\n chat message manager: make sender recoloring use messageNode\n kourendlibrary: only reset if layout changes when complete\n kourendlibrary: fix panel reloading not being done on the swing thread\n clues: add Lava battlestaff (or) to the Trollheim emote clue\n hiscore api: add Callisto and Cerberus\n\nJason O\'Neill (1):\n item stats: fix White Tree Fruit stats\n\nMax Weber (5):\n config: Fix PluginHub scrollbar\n config: Work around JDK-8079640\n\nMa\xebl Cournoyer-Michel (1):\n Add HP for level 19 and 22 Guards.\n\nRami (1):\n hiscore plugin: add Lookup to ignore list\n\nRami-J (1):\n menu swapper: add support for ge offer withdraw\n\nSam Edelsten (2):\n add foods to skill calculator\n add vscode files to gitignore\n\nTheStonedTurtle (1):\n loottracker plugin: Add Loot Received event\n\nZachary Waller (1):\n item identification: add potions\n\ndekvall (2):\n xp tracker: don\'t unpause on failed login\n chatcommands: support keybinds in pms\n
\n',image:"/img/blog/1.6.1-Release/bosshiscores.png"}}}]);
-//# sourceMappingURL=115.497d49ae.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[115],{391:function(n,e){n.exports={title:"1.6.1 Release",description:"Boss hiscores and bug fixes",author:"Adam",body:'The hiscore plugin now supports boss hiscores and shows it in a panel beneath\nthe minigame hiscores.
\n
\nThe !kc
command remains as-is as it updates kill counts in real-time as\nopposed to the boss hiscores which require relogging.
\nThe camera plugin now has an option to add Look South
, Look East
, and Look West
to the compass.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe new tag-tab button has been moved below the tag-tab list to make room\nfor the new equipment button \nThe cannon plugin now has a configurable threshold for when it will warn you\nfor having low ammo \nAdd a shift click abort GE offer option to menu swapper \nAdd a menu swap for GE offer withdraw mode \nAdd an option to show the total value of Chambers of Xeric loot to the raids\nplugin \nFix slayer plugin to recognize tasks assigned to the Forthos Dungeon \nFix clipping of 2005 interface style minimap \nFix several more issues with the Kourend library plugin which cause it to\nreset at the wrong time and incorrectly mark objects when world hopping \nAdd the option to Lookup players on your ignore list \nAdd potions to the item identification plugin \nSupport chat command clear line/word keybinds in pm input dialog \nFix clan chat ranks not showing up if the clan chat name is recolored \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (2):\n client: add VisibleForExternalPlugins annotation\n client: add getVar methods for external plugins\n\nAdam (8):\n cannon plugin: make ammo notification threshold configurable\n menu swapper: add shift click abort ge offer\n clientloader: throw an exception when unable to peek first entry\n cache: add param config\n camera plugin: reposition startUp/shutdown members\n camera plugin: add Look South/East/West option to compass\n hiscore plugin: add boss hiscores\n raids plugin: add option to show loot value\n\nAlexsuperfly (3):\n woodcutting: account for plane change with despawn events\n raids: allow \'unknown\' to evaluate to both unknown types\n woodcutting: create maple timer for miscellania region\n\nBlackberry0Pie (1):\n slayer plugin: add Forthos Dungeon\n\nCaleb Waters (1):\n skill calc: change arrow shaft xp to be per shaft\n\nGamma91 (1):\n hiscore skill: fix spelling of commander zilyana\n\nHydrox6 (7):\n interfacestyles: fix 2005 fixed mode minimap\'s right side\n kourendlibrary: clear tracked NPCs when changing worlds\n chat message manager: make sender recoloring use messageNode\n kourendlibrary: only reset if layout changes when complete\n kourendlibrary: fix panel reloading not being done on the swing thread\n clues: add Lava battlestaff (or) to the Trollheim emote clue\n hiscore api: add Callisto and Cerberus\n\nJason O\'Neill (1):\n item stats: fix White Tree Fruit stats\n\nMax Weber (5):\n config: Fix PluginHub scrollbar\n config: Work around JDK-8079640\n\nMa\xebl Cournoyer-Michel (1):\n Add HP for level 19 and 22 Guards.\n\nRami (1):\n hiscore plugin: add Lookup to ignore list\n\nRami-J (1):\n menu swapper: add support for ge offer withdraw\n\nSam Edelsten (2):\n add foods to skill calculator\n add vscode files to gitignore\n\nTheStonedTurtle (1):\n loottracker plugin: Add Loot Received event\n\nZachary Waller (1):\n item identification: add potions\n\ndekvall (2):\n xp tracker: don\'t unpause on failed login\n chatcommands: support keybinds in pms\n
\n',image:"/img/blog/1.6.1-Release/bosshiscores.png"}}}]);
+//# sourceMappingURL=115.efcbc8bf.chunk.js.map
\ No newline at end of file
diff --git a/static/js/115.497d49ae.chunk.js.map b/static/js/115.efcbc8bf.chunk.js.map
similarity index 98%
rename from static/js/115.497d49ae.chunk.js.map
rename to static/js/115.efcbc8bf.chunk.js.map
index 6a6eaffca..343565621 100644
--- a/static/js/115.497d49ae.chunk.js.map
+++ b/static/js/115.efcbc8bf.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-01-09-10-00-1.6.1-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8BAA8B,OAAS,OAAO,KAAO,i1HAAi1H,MAAQ","file":"static/js/115.497d49ae.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.1 Release\",\"description\":\"Boss hiscores and bug fixes\",\"author\":\"Adam\",\"body\":\"The hiscore plugin now supports boss hiscores and shows it in a panel beneath\\nthe minigame hiscores.
\\n
\\nThe !kc
command remains as-is as it updates kill counts in real-time as\\nopposed to the boss hiscores which require relogging.
\\nThe camera plugin now has an option to add Look South
, Look East
, and Look West
to the compass.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe new tag-tab button has been moved below the tag-tab list to make room\\nfor the new equipment button \\nThe cannon plugin now has a configurable threshold for when it will warn you\\nfor having low ammo \\nAdd a shift click abort GE offer option to menu swapper \\nAdd a menu swap for GE offer withdraw mode \\nAdd an option to show the total value of Chambers of Xeric loot to the raids\\nplugin \\nFix slayer plugin to recognize tasks assigned to the Forthos Dungeon \\nFix clipping of 2005 interface style minimap \\nFix several more issues with the Kourend library plugin which cause it to\\nreset at the wrong time and incorrectly mark objects when world hopping \\nAdd the option to Lookup players on your ignore list \\nAdd potions to the item identification plugin \\nSupport chat command clear line/word keybinds in pm input dialog \\nFix clan chat ranks not showing up if the clan chat name is recolored \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (2):\\n client: add VisibleForExternalPlugins annotation\\n client: add getVar methods for external plugins\\n\\nAdam (8):\\n cannon plugin: make ammo notification threshold configurable\\n menu swapper: add shift click abort ge offer\\n clientloader: throw an exception when unable to peek first entry\\n cache: add param config\\n camera plugin: reposition startUp/shutdown members\\n camera plugin: add Look South/East/West option to compass\\n hiscore plugin: add boss hiscores\\n raids plugin: add option to show loot value\\n\\nAlexsuperfly (3):\\n woodcutting: account for plane change with despawn events\\n raids: allow 'unknown' to evaluate to both unknown types\\n woodcutting: create maple timer for miscellania region\\n\\nBlackberry0Pie (1):\\n slayer plugin: add Forthos Dungeon\\n\\nCaleb Waters (1):\\n skill calc: change arrow shaft xp to be per shaft\\n\\nGamma91 (1):\\n hiscore skill: fix spelling of commander zilyana\\n\\nHydrox6 (7):\\n interfacestyles: fix 2005 fixed mode minimap's right side\\n kourendlibrary: clear tracked NPCs when changing worlds\\n chat message manager: make sender recoloring use messageNode\\n kourendlibrary: only reset if layout changes when complete\\n kourendlibrary: fix panel reloading not being done on the swing thread\\n clues: add Lava battlestaff (or) to the Trollheim emote clue\\n hiscore api: add Callisto and Cerberus\\n\\nJason O'Neill (1):\\n item stats: fix White Tree Fruit stats\\n\\nMax Weber (5):\\n config: Fix PluginHub scrollbar\\n config: Work around JDK-8079640\\n\\nMaël Cournoyer-Michel (1):\\n Add HP for level 19 and 22 Guards.\\n\\nRami (1):\\n hiscore plugin: add Lookup to ignore list\\n\\nRami-J (1):\\n menu swapper: add support for ge offer withdraw\\n\\nSam Edelsten (2):\\n add foods to skill calculator\\n add vscode files to gitignore\\n\\nTheStonedTurtle (1):\\n loottracker plugin: Add Loot Received event\\n\\nZachary Waller (1):\\n item identification: add potions\\n\\ndekvall (2):\\n xp tracker: don't unpause on failed login\\n chatcommands: support keybinds in pms\\n
\\n\",\"image\":\"/img/blog/1.6.1-Release/bosshiscores.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-01-09-10-00-1.6.1-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8BAA8B,OAAS,OAAO,KAAO,i1HAAi1H,MAAQ","file":"static/js/115.efcbc8bf.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.1 Release\",\"description\":\"Boss hiscores and bug fixes\",\"author\":\"Adam\",\"body\":\"The hiscore plugin now supports boss hiscores and shows it in a panel beneath\\nthe minigame hiscores.
\\n
\\nThe !kc
command remains as-is as it updates kill counts in real-time as\\nopposed to the boss hiscores which require relogging.
\\nThe camera plugin now has an option to add Look South
, Look East
, and Look West
to the compass.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe new tag-tab button has been moved below the tag-tab list to make room\\nfor the new equipment button \\nThe cannon plugin now has a configurable threshold for when it will warn you\\nfor having low ammo \\nAdd a shift click abort GE offer option to menu swapper \\nAdd a menu swap for GE offer withdraw mode \\nAdd an option to show the total value of Chambers of Xeric loot to the raids\\nplugin \\nFix slayer plugin to recognize tasks assigned to the Forthos Dungeon \\nFix clipping of 2005 interface style minimap \\nFix several more issues with the Kourend library plugin which cause it to\\nreset at the wrong time and incorrectly mark objects when world hopping \\nAdd the option to Lookup players on your ignore list \\nAdd potions to the item identification plugin \\nSupport chat command clear line/word keybinds in pm input dialog \\nFix clan chat ranks not showing up if the clan chat name is recolored \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (2):\\n client: add VisibleForExternalPlugins annotation\\n client: add getVar methods for external plugins\\n\\nAdam (8):\\n cannon plugin: make ammo notification threshold configurable\\n menu swapper: add shift click abort ge offer\\n clientloader: throw an exception when unable to peek first entry\\n cache: add param config\\n camera plugin: reposition startUp/shutdown members\\n camera plugin: add Look South/East/West option to compass\\n hiscore plugin: add boss hiscores\\n raids plugin: add option to show loot value\\n\\nAlexsuperfly (3):\\n woodcutting: account for plane change with despawn events\\n raids: allow 'unknown' to evaluate to both unknown types\\n woodcutting: create maple timer for miscellania region\\n\\nBlackberry0Pie (1):\\n slayer plugin: add Forthos Dungeon\\n\\nCaleb Waters (1):\\n skill calc: change arrow shaft xp to be per shaft\\n\\nGamma91 (1):\\n hiscore skill: fix spelling of commander zilyana\\n\\nHydrox6 (7):\\n interfacestyles: fix 2005 fixed mode minimap's right side\\n kourendlibrary: clear tracked NPCs when changing worlds\\n chat message manager: make sender recoloring use messageNode\\n kourendlibrary: only reset if layout changes when complete\\n kourendlibrary: fix panel reloading not being done on the swing thread\\n clues: add Lava battlestaff (or) to the Trollheim emote clue\\n hiscore api: add Callisto and Cerberus\\n\\nJason O'Neill (1):\\n item stats: fix White Tree Fruit stats\\n\\nMax Weber (5):\\n config: Fix PluginHub scrollbar\\n config: Work around JDK-8079640\\n\\nMaël Cournoyer-Michel (1):\\n Add HP for level 19 and 22 Guards.\\n\\nRami (1):\\n hiscore plugin: add Lookup to ignore list\\n\\nRami-J (1):\\n menu swapper: add support for ge offer withdraw\\n\\nSam Edelsten (2):\\n add foods to skill calculator\\n add vscode files to gitignore\\n\\nTheStonedTurtle (1):\\n loottracker plugin: Add Loot Received event\\n\\nZachary Waller (1):\\n item identification: add potions\\n\\ndekvall (2):\\n xp tracker: don't unpause on failed login\\n chatcommands: support keybinds in pms\\n
\\n\",\"image\":\"/img/blog/1.6.1-Release/bosshiscores.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/116.e4252758.chunk.js b/static/js/116.d898bb3a.chunk.js
similarity index 94%
rename from static/js/116.e4252758.chunk.js
rename to static/js/116.d898bb3a.chunk.js
index e975fa614..0b5917059 100644
--- a/static/js/116.e4252758.chunk.js
+++ b/static/js/116.d898bb3a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[116],{391:function(e,n){e.exports={title:"1.6.2 Release",description:"Shift click eat, drink and equip",author:"dekvall",body:'The menu entry swapper plugin now supports eating, drinking and equipping with the bank open by shift clicking. You can enable it with the Swap Bank Op
option.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now see score in the tooltips for activities in the hiscore plugin \nAdd Sq\'irkjuices to the thieving calculator \nUpdate the hint for Duel Arena coordinate clue \nThe skill calculator will now use your set target level if you have one set \nAdd shift click swap for NPC Contact \nAdd configuration to hide agility obstacle clickboxes \n \nEnjoy!
\n- dekvall
\nNew commits \nWe had 10 contributors this release!
\n15987632 (1):\n world hopper plugin: make world pings persist across world fetches\n\nAdam (4):\n feed controller: catch any exception when fetching newes sources\n hiscore panel: add score/points to activity tooltips\n api: rename menuaction cc ops\n menu swapper: add bank extra op swap\n\nDan Schmidt (1):\n skill calc: add sq\'irkjuices to the thieving calculator\n\nHydrox6 (1):\n cluescrolls: update hint for Duel Arena Coordinate Clue\n\nMax Weber (1):\n poh: Add new portal nexus ids\n\nRami (1):\n agility plugin: add toggle for obstacle clickboxes\n\nRami-J (1):\n menu swapper: add shift click swap for npc contact\n\nWLoumakis (1):\n skill calc: use target level if available\n\nZachary Waller (1):\n skill calc: calculate xp on focus lost\n\nmelkypie (1):\n menu swapper: check home portal swap target\n
\n',image:"/img/blog/1.6.2-Release/swap-bank-op.gif"}}}]);
-//# sourceMappingURL=116.e4252758.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[116],{392:function(e,n){e.exports={title:"1.6.2 Release",description:"Shift click eat, drink and equip",author:"dekvall",body:'The menu entry swapper plugin now supports eating, drinking and equipping with the bank open by shift clicking. You can enable it with the Swap Bank Op
option.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now see score in the tooltips for activities in the hiscore plugin \nAdd Sq\'irkjuices to the thieving calculator \nUpdate the hint for Duel Arena coordinate clue \nThe skill calculator will now use your set target level if you have one set \nAdd shift click swap for NPC Contact \nAdd configuration to hide agility obstacle clickboxes \n \nEnjoy!
\n- dekvall
\nNew commits \nWe had 10 contributors this release!
\n15987632 (1):\n world hopper plugin: make world pings persist across world fetches\n\nAdam (4):\n feed controller: catch any exception when fetching newes sources\n hiscore panel: add score/points to activity tooltips\n api: rename menuaction cc ops\n menu swapper: add bank extra op swap\n\nDan Schmidt (1):\n skill calc: add sq\'irkjuices to the thieving calculator\n\nHydrox6 (1):\n cluescrolls: update hint for Duel Arena Coordinate Clue\n\nMax Weber (1):\n poh: Add new portal nexus ids\n\nRami (1):\n agility plugin: add toggle for obstacle clickboxes\n\nRami-J (1):\n menu swapper: add shift click swap for npc contact\n\nWLoumakis (1):\n skill calc: use target level if available\n\nZachary Waller (1):\n skill calc: calculate xp on focus lost\n\nmelkypie (1):\n menu swapper: check home portal swap target\n
\n',image:"/img/blog/1.6.2-Release/swap-bank-op.gif"}}}]);
+//# sourceMappingURL=116.d898bb3a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/116.e4252758.chunk.js.map b/static/js/116.d898bb3a.chunk.js.map
similarity index 97%
rename from static/js/116.e4252758.chunk.js.map
rename to static/js/116.d898bb3a.chunk.js.map
index a5540b211..d1269ba7c 100644
--- a/static/js/116.e4252758.chunk.js.map
+++ b/static/js/116.d898bb3a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-01-16-10-00-1.6.2-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,mCAAmC,OAAS,UAAU,KAAO,4tDAA8tD,MAAQ","file":"static/js/116.e4252758.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.2 Release\",\"description\":\"Shift click eat, drink and equip\",\"author\":\"dekvall\",\"body\":\"The menu entry swapper plugin now supports eating, drinking and equipping with the bank open by shift clicking. You can enable it with the Swap Bank Op
option.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now see score in the tooltips for activities in the hiscore plugin \\nAdd Sq'irkjuices to the thieving calculator \\nUpdate the hint for Duel Arena coordinate clue \\nThe skill calculator will now use your set target level if you have one set \\nAdd shift click swap for NPC Contact \\nAdd configuration to hide agility obstacle clickboxes \\n \\nEnjoy!
\\n- dekvall
\\nNew commits \\nWe had 10 contributors this release!
\\n15987632 (1):\\n world hopper plugin: make world pings persist across world fetches\\n\\nAdam (4):\\n feed controller: catch any exception when fetching newes sources\\n hiscore panel: add score/points to activity tooltips\\n api: rename menuaction cc ops\\n menu swapper: add bank extra op swap\\n\\nDan Schmidt (1):\\n skill calc: add sq'irkjuices to the thieving calculator\\n\\nHydrox6 (1):\\n cluescrolls: update hint for Duel Arena Coordinate Clue\\n\\nMax Weber (1):\\n poh: Add new portal nexus ids\\n\\nRami (1):\\n agility plugin: add toggle for obstacle clickboxes\\n\\nRami-J (1):\\n menu swapper: add shift click swap for npc contact\\n\\nWLoumakis (1):\\n skill calc: use target level if available\\n\\nZachary Waller (1):\\n skill calc: calculate xp on focus lost\\n\\nmelkypie (1):\\n menu swapper: check home portal swap target\\n
\\n\",\"image\":\"/img/blog/1.6.2-Release/swap-bank-op.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-01-16-10-00-1.6.2-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,mCAAmC,OAAS,UAAU,KAAO,4tDAA8tD,MAAQ","file":"static/js/116.d898bb3a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.2 Release\",\"description\":\"Shift click eat, drink and equip\",\"author\":\"dekvall\",\"body\":\"The menu entry swapper plugin now supports eating, drinking and equipping with the bank open by shift clicking. You can enable it with the Swap Bank Op
option.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now see score in the tooltips for activities in the hiscore plugin \\nAdd Sq'irkjuices to the thieving calculator \\nUpdate the hint for Duel Arena coordinate clue \\nThe skill calculator will now use your set target level if you have one set \\nAdd shift click swap for NPC Contact \\nAdd configuration to hide agility obstacle clickboxes \\n \\nEnjoy!
\\n- dekvall
\\nNew commits \\nWe had 10 contributors this release!
\\n15987632 (1):\\n world hopper plugin: make world pings persist across world fetches\\n\\nAdam (4):\\n feed controller: catch any exception when fetching newes sources\\n hiscore panel: add score/points to activity tooltips\\n api: rename menuaction cc ops\\n menu swapper: add bank extra op swap\\n\\nDan Schmidt (1):\\n skill calc: add sq'irkjuices to the thieving calculator\\n\\nHydrox6 (1):\\n cluescrolls: update hint for Duel Arena Coordinate Clue\\n\\nMax Weber (1):\\n poh: Add new portal nexus ids\\n\\nRami (1):\\n agility plugin: add toggle for obstacle clickboxes\\n\\nRami-J (1):\\n menu swapper: add shift click swap for npc contact\\n\\nWLoumakis (1):\\n skill calc: use target level if available\\n\\nZachary Waller (1):\\n skill calc: calculate xp on focus lost\\n\\nmelkypie (1):\\n menu swapper: check home portal swap target\\n
\\n\",\"image\":\"/img/blog/1.6.2-Release/swap-bank-op.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/117.f5c1ed7f.chunk.js b/static/js/117.380defc0.chunk.js
similarity index 95%
rename from static/js/117.f5c1ed7f.chunk.js
rename to static/js/117.380defc0.chunk.js
index 3fa9771a3..798755c90 100644
--- a/static/js/117.f5c1ed7f.chunk.js
+++ b/static/js/117.380defc0.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[117],{392:function(e,n){e.exports={title:"1.6.4 Release",description:"Loot tracker history and Clan member recoloring",author:"dekvall",body:'The Loot Tracker plugin has been reworked to retain your loot for longer and will load a greater amount of loot data when starting the client, starting with loot received last weekend. This will make it easier to track your progression when going for those very rare drops. This requires being logged into RuneLite.
\n
\nThe Clan Chat plugin now has the ability to recolor players that also are on your ignore list.
\n
\nThe "Request focus on Notification" feature on Windows now will forcibly bring the client into focus, similar to how it works on OSX. You may want to disable it if you had it enabled previously and do not want this behavior.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd Brimhaven cart traveling to menu entry swapper \nAdd Chambers of Xeric personal best tracking to !pb
chat command \nThe opponent info plugin now gets its known max NPC hitpoints from the wiki \n \nEnjoy!
\n- dekvall
\nNew commits \nWe had 10 contributors this release!
\nAdam (4):\n loot tracker: store aggregated drops\n loot controller: publish loot to redis\n cache: add field initializers to interface def\n Use wiki scraped npcs for npc healths\n\nAlex Germann (1):\n menu swapper: add Brimhaven cart to Travel option\n\nGamma91 (1):\n Fix typo in \'Swap Bank Op\' description\n\nHexagon (1):\n cache: Add hitsplat definition\n\nMatt Capone (1):\n chatcommands: add CoX pb tracking\n\nMax Weber (2):\n wiki: Remove quest and diary links\n wiki: Use jagex\'s sprite, but hide their wiki banner\n\nTwiglet1022 (1):\n clientui: forcibly bring client to front on Windows on request focus\n\nWessel Radstok (1):\n Add reanimated monsters to npc_health.json\n\ndekvall (1):\n widgetid: change sound slider ids\n\nmelkypie (1):\n clanchat: add ability to recolor ignored players\n\n
\n',image:"/img/blog/1.6.4-Release/loot-tracker-tab.png"}}}]);
-//# sourceMappingURL=117.f5c1ed7f.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[117],{393:function(e,n){e.exports={title:"1.6.4 Release",description:"Loot tracker history and Clan member recoloring",author:"dekvall",body:'The Loot Tracker plugin has been reworked to retain your loot for longer and will load a greater amount of loot data when starting the client, starting with loot received last weekend. This will make it easier to track your progression when going for those very rare drops. This requires being logged into RuneLite.
\n
\nThe Clan Chat plugin now has the ability to recolor players that also are on your ignore list.
\n
\nThe "Request focus on Notification" feature on Windows now will forcibly bring the client into focus, similar to how it works on OSX. You may want to disable it if you had it enabled previously and do not want this behavior.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd Brimhaven cart traveling to menu entry swapper \nAdd Chambers of Xeric personal best tracking to !pb
chat command \nThe opponent info plugin now gets its known max NPC hitpoints from the wiki \n \nEnjoy!
\n- dekvall
\nNew commits \nWe had 10 contributors this release!
\nAdam (4):\n loot tracker: store aggregated drops\n loot controller: publish loot to redis\n cache: add field initializers to interface def\n Use wiki scraped npcs for npc healths\n\nAlex Germann (1):\n menu swapper: add Brimhaven cart to Travel option\n\nGamma91 (1):\n Fix typo in \'Swap Bank Op\' description\n\nHexagon (1):\n cache: Add hitsplat definition\n\nMatt Capone (1):\n chatcommands: add CoX pb tracking\n\nMax Weber (2):\n wiki: Remove quest and diary links\n wiki: Use jagex\'s sprite, but hide their wiki banner\n\nTwiglet1022 (1):\n clientui: forcibly bring client to front on Windows on request focus\n\nWessel Radstok (1):\n Add reanimated monsters to npc_health.json\n\ndekvall (1):\n widgetid: change sound slider ids\n\nmelkypie (1):\n clanchat: add ability to recolor ignored players\n\n
\n',image:"/img/blog/1.6.4-Release/loot-tracker-tab.png"}}}]);
+//# sourceMappingURL=117.380defc0.chunk.js.map
\ No newline at end of file
diff --git a/static/js/117.f5c1ed7f.chunk.js.map b/static/js/117.380defc0.chunk.js.map
similarity index 97%
rename from static/js/117.f5c1ed7f.chunk.js.map
rename to static/js/117.380defc0.chunk.js.map
index cce4e2ac9..37fef0ecf 100644
--- a/static/js/117.f5c1ed7f.chunk.js.map
+++ b/static/js/117.380defc0.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-01-22-10-00-1.6.4-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kDAAkD,OAAS,UAAU,KAAO,ooEAAyoE,MAAQ","file":"static/js/117.f5c1ed7f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.4 Release\",\"description\":\"Loot tracker history and Clan member recoloring\",\"author\":\"dekvall\",\"body\":\"The Loot Tracker plugin has been reworked to retain your loot for longer and will load a greater amount of loot data when starting the client, starting with loot received last weekend. This will make it easier to track your progression when going for those very rare drops. This requires being logged into RuneLite.
\\n
\\nThe Clan Chat plugin now has the ability to recolor players that also are on your ignore list.
\\n
\\nThe "Request focus on Notification" feature on Windows now will forcibly bring the client into focus, similar to how it works on OSX. You may want to disable it if you had it enabled previously and do not want this behavior.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd Brimhaven cart traveling to menu entry swapper \\nAdd Chambers of Xeric personal best tracking to !pb
chat command \\nThe opponent info plugin now gets its known max NPC hitpoints from the wiki \\n \\nEnjoy!
\\n- dekvall
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (4):\\n loot tracker: store aggregated drops\\n loot controller: publish loot to redis\\n cache: add field initializers to interface def\\n Use wiki scraped npcs for npc healths\\n\\nAlex Germann (1):\\n menu swapper: add Brimhaven cart to Travel option\\n\\nGamma91 (1):\\n Fix typo in 'Swap Bank Op' description\\n\\nHexagon (1):\\n cache: Add hitsplat definition\\n\\nMatt Capone (1):\\n chatcommands: add CoX pb tracking\\n\\nMax Weber (2):\\n wiki: Remove quest and diary links\\n wiki: Use jagex's sprite, but hide their wiki banner\\n\\nTwiglet1022 (1):\\n clientui: forcibly bring client to front on Windows on request focus\\n\\nWessel Radstok (1):\\n Add reanimated monsters to npc_health.json\\n\\ndekvall (1):\\n widgetid: change sound slider ids\\n\\nmelkypie (1):\\n clanchat: add ability to recolor ignored players\\n\\n
\\n\",\"image\":\"/img/blog/1.6.4-Release/loot-tracker-tab.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-01-22-10-00-1.6.4-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kDAAkD,OAAS,UAAU,KAAO,ooEAAyoE,MAAQ","file":"static/js/117.380defc0.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.4 Release\",\"description\":\"Loot tracker history and Clan member recoloring\",\"author\":\"dekvall\",\"body\":\"The Loot Tracker plugin has been reworked to retain your loot for longer and will load a greater amount of loot data when starting the client, starting with loot received last weekend. This will make it easier to track your progression when going for those very rare drops. This requires being logged into RuneLite.
\\n
\\nThe Clan Chat plugin now has the ability to recolor players that also are on your ignore list.
\\n
\\nThe "Request focus on Notification" feature on Windows now will forcibly bring the client into focus, similar to how it works on OSX. You may want to disable it if you had it enabled previously and do not want this behavior.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd Brimhaven cart traveling to menu entry swapper \\nAdd Chambers of Xeric personal best tracking to !pb
chat command \\nThe opponent info plugin now gets its known max NPC hitpoints from the wiki \\n \\nEnjoy!
\\n- dekvall
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (4):\\n loot tracker: store aggregated drops\\n loot controller: publish loot to redis\\n cache: add field initializers to interface def\\n Use wiki scraped npcs for npc healths\\n\\nAlex Germann (1):\\n menu swapper: add Brimhaven cart to Travel option\\n\\nGamma91 (1):\\n Fix typo in 'Swap Bank Op' description\\n\\nHexagon (1):\\n cache: Add hitsplat definition\\n\\nMatt Capone (1):\\n chatcommands: add CoX pb tracking\\n\\nMax Weber (2):\\n wiki: Remove quest and diary links\\n wiki: Use jagex's sprite, but hide their wiki banner\\n\\nTwiglet1022 (1):\\n clientui: forcibly bring client to front on Windows on request focus\\n\\nWessel Radstok (1):\\n Add reanimated monsters to npc_health.json\\n\\ndekvall (1):\\n widgetid: change sound slider ids\\n\\nmelkypie (1):\\n clanchat: add ability to recolor ignored players\\n\\n
\\n\",\"image\":\"/img/blog/1.6.4-Release/loot-tracker-tab.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/118.b90d5e35.chunk.js b/static/js/118.514cdcf1.chunk.js
similarity index 95%
rename from static/js/118.b90d5e35.chunk.js
rename to static/js/118.514cdcf1.chunk.js
index 2d6dea9a2..76c6bf64c 100644
--- a/static/js/118.b90d5e35.chunk.js
+++ b/static/js/118.514cdcf1.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[118],{393:function(e,n){e.exports={title:"1.6.5 Release",description:"Bank deposit/withdraw menu entry swap and bugfixes",author:"Jordan",body:'The Menu Entry Swapper plugin has\nhad its "Swap Bank Op" config changed to support different shift-click options to prioritize,\nallowing you to choose the shift-click behavior when withdrawing from or depositing into the bank.\nThanks to @zacharydwaller for this feature!
\nIn last week\'s update, we made an update to how the client would request focus on notification and\nhave reverted this to the previous behavior after hearing user feedback regarding this change.
\nThere are also several smaller improvements and bug fixes, including:
\n\nItem overlays\u2014such as teleport charges, inventory tags, rune pouch display\u2014now follow\ntheir overlaid item when being dragged. \nThe Clan Chat plugin now strips leading\nslashes from your messages when sent through the "Clan" chat tab \nClue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\nCamp" \nThe Last Man Standing info box is now movable \nThe Chat Commands plugin now correctly\ntracks your personal best time to complete the Chambers of Xeric \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 7 contributors this release!
\nAdam (4):\n clientloader: throw classnotfoundexception when trying to load classes from the closed jar\n Revert "clientui: forcibly bring client to front on Windows on request focus"\n api: add dragging flag to widget item\n task: use lambdas for scheduled method invokes\n\nDaniel Bolink (1):\n widgetoverlay: make LMS info box movable\n\nHenry Darnell (1):\n Capitalize "discord" in info panel (#10667)\n\nVuk (1):\n clue plugin: rename Elf Camp to Iorwerth Camp\n\nZach Waller (1):\n menu swapper: add bank deposit/withdraw shift click\n\ndekvall (1):\n clanchat plugin: strip leading / from clan tab chat messages\n\nmelkypie (1):\n chatcommands: fix cox pb tracking\n
\n'}}}]);
-//# sourceMappingURL=118.b90d5e35.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[118],{394:function(e,n){e.exports={title:"1.6.5 Release",description:"Bank deposit/withdraw menu entry swap and bugfixes",author:"Jordan",body:'The Menu Entry Swapper plugin has\nhad its "Swap Bank Op" config changed to support different shift-click options to prioritize,\nallowing you to choose the shift-click behavior when withdrawing from or depositing into the bank.\nThanks to @zacharydwaller for this feature!
\nIn last week\'s update, we made an update to how the client would request focus on notification and\nhave reverted this to the previous behavior after hearing user feedback regarding this change.
\nThere are also several smaller improvements and bug fixes, including:
\n\nItem overlays\u2014such as teleport charges, inventory tags, rune pouch display\u2014now follow\ntheir overlaid item when being dragged. \nThe Clan Chat plugin now strips leading\nslashes from your messages when sent through the "Clan" chat tab \nClue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\nCamp" \nThe Last Man Standing info box is now movable \nThe Chat Commands plugin now correctly\ntracks your personal best time to complete the Chambers of Xeric \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 7 contributors this release!
\nAdam (4):\n clientloader: throw classnotfoundexception when trying to load classes from the closed jar\n Revert "clientui: forcibly bring client to front on Windows on request focus"\n api: add dragging flag to widget item\n task: use lambdas for scheduled method invokes\n\nDaniel Bolink (1):\n widgetoverlay: make LMS info box movable\n\nHenry Darnell (1):\n Capitalize "discord" in info panel (#10667)\n\nVuk (1):\n clue plugin: rename Elf Camp to Iorwerth Camp\n\nZach Waller (1):\n menu swapper: add bank deposit/withdraw shift click\n\ndekvall (1):\n clanchat plugin: strip leading / from clan tab chat messages\n\nmelkypie (1):\n chatcommands: fix cox pb tracking\n
\n'}}}]);
+//# sourceMappingURL=118.514cdcf1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/118.b90d5e35.chunk.js.map b/static/js/118.514cdcf1.chunk.js.map
similarity index 97%
rename from static/js/118.b90d5e35.chunk.js.map
rename to static/js/118.514cdcf1.chunk.js.map
index d0e779701..6ce7c679a 100644
--- a/static/js/118.b90d5e35.chunk.js.map
+++ b/static/js/118.514cdcf1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-01-29-10-00-1.6.5-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,qDAAqD,OAAS,SAAS,KAAO","file":"static/js/118.b90d5e35.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.5 Release\",\"description\":\"Bank deposit/withdraw menu entry swap and bugfixes\",\"author\":\"Jordan\",\"body\":\"The Menu Entry Swapper plugin has\\nhad its "Swap Bank Op" config changed to support different shift-click options to prioritize,\\nallowing you to choose the shift-click behavior when withdrawing from or depositing into the bank.\\nThanks to @zacharydwaller for this feature!
\\nIn last week's update, we made an update to how the client would request focus on notification and\\nhave reverted this to the previous behavior after hearing user feedback regarding this change.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nItem overlays—such as teleport charges, inventory tags, rune pouch display—now follow\\ntheir overlaid item when being dragged. \\nThe Clan Chat plugin now strips leading\\nslashes from your messages when sent through the "Clan" chat tab \\nClue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\\nCamp" \\nThe Last Man Standing info box is now movable \\nThe Chat Commands plugin now correctly\\ntracks your personal best time to complete the Chambers of Xeric \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 7 contributors this release!
\\nAdam (4):\\n clientloader: throw classnotfoundexception when trying to load classes from the closed jar\\n Revert "clientui: forcibly bring client to front on Windows on request focus"\\n api: add dragging flag to widget item\\n task: use lambdas for scheduled method invokes\\n\\nDaniel Bolink (1):\\n widgetoverlay: make LMS info box movable\\n\\nHenry Darnell (1):\\n Capitalize "discord" in info panel (#10667)\\n\\nVuk (1):\\n clue plugin: rename Elf Camp to Iorwerth Camp\\n\\nZach Waller (1):\\n menu swapper: add bank deposit/withdraw shift click\\n\\ndekvall (1):\\n clanchat plugin: strip leading / from clan tab chat messages\\n\\nmelkypie (1):\\n chatcommands: fix cox pb tracking\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-01-29-10-00-1.6.5-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,qDAAqD,OAAS,SAAS,KAAO","file":"static/js/118.514cdcf1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.5 Release\",\"description\":\"Bank deposit/withdraw menu entry swap and bugfixes\",\"author\":\"Jordan\",\"body\":\"The Menu Entry Swapper plugin has\\nhad its "Swap Bank Op" config changed to support different shift-click options to prioritize,\\nallowing you to choose the shift-click behavior when withdrawing from or depositing into the bank.\\nThanks to @zacharydwaller for this feature!
\\nIn last week's update, we made an update to how the client would request focus on notification and\\nhave reverted this to the previous behavior after hearing user feedback regarding this change.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nItem overlays—such as teleport charges, inventory tags, rune pouch display—now follow\\ntheir overlaid item when being dragged. \\nThe Clan Chat plugin now strips leading\\nslashes from your messages when sent through the "Clan" chat tab \\nClue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\\nCamp" \\nThe Last Man Standing info box is now movable \\nThe Chat Commands plugin now correctly\\ntracks your personal best time to complete the Chambers of Xeric \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 7 contributors this release!
\\nAdam (4):\\n clientloader: throw classnotfoundexception when trying to load classes from the closed jar\\n Revert "clientui: forcibly bring client to front on Windows on request focus"\\n api: add dragging flag to widget item\\n task: use lambdas for scheduled method invokes\\n\\nDaniel Bolink (1):\\n widgetoverlay: make LMS info box movable\\n\\nHenry Darnell (1):\\n Capitalize "discord" in info panel (#10667)\\n\\nVuk (1):\\n clue plugin: rename Elf Camp to Iorwerth Camp\\n\\nZach Waller (1):\\n menu swapper: add bank deposit/withdraw shift click\\n\\ndekvall (1):\\n clanchat plugin: strip leading / from clan tab chat messages\\n\\nmelkypie (1):\\n chatcommands: fix cox pb tracking\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/119.24b6b294.chunk.js b/static/js/119.cb37e5c6.chunk.js
similarity index 98%
rename from static/js/119.24b6b294.chunk.js
rename to static/js/119.cb37e5c6.chunk.js
index 12aca7d51..5d87c7998 100644
--- a/static/js/119.24b6b294.chunk.js
+++ b/static/js/119.cb37e5c6.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[119],{394:function(e,n){e.exports={title:"1.6.6 Release",description:"Pickpocket and Nightmare loot tracking, light sources for clues, and more",author:"Adam",body:'The loot tracker will now track loot received from pickpockets.
\n
\nThe old show opponent\'s opponent option has been readded for NPC opponents;\ncloser inspection of the prohibited feature\nlist \nrevealed the original cause for us removing it only applied to PVP: Indicates whom your opponent\'s opponent is in PVP
\n
\nThe Crystal Math Labs plugin has been replaced with an XP Updater
plugin,\nwhich additionally now supports the TempleOSRS tracker. Remember that sending xp\nupdate requests to external services necessarily sends your IP address and \ndisplay name to that service.
\nThe CoX scouter plugin now has an option for screenshotting the overlay into the\nclipboard, making it easy to share.
\n
\nThe clue plugin now tells you when you are missing a light source required for\nyour clue.
\n
\nThe interface styles plugin now has an option to always used the stacked-stones\narrangement, regardless of client resolution.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe loottracker now can track drops from the Nightmare \nFix the Wintertodt plugin erronously sending a notification about being idle\nwhen you are already idle \nDragging with the inventory grid enabled no longer drags grid cells \nThe mouse tooltip position can now be configured to be above the mouse \nFix imp spawn notifications sometimies not working in Puro-Puro \nThe wiki plugin now has an option to make Search
the default left click\noption \nThe shift anti-drag plugin now also works in the bank \nVarious hot-cold clues that were slightly off center have been centered, and\nthe solver can now sometimes eliminate possible solutions even when the orb\ntemperature has not changed \nThe imbued heart timer now more reliably works when in combat \nThe grand exchange plugin will now also record partially bought or sold\noffers, which can be viewed on the\nwebsite . Additionally, the\nretention history has been upped to 90 days from 30. \nThe NPC unaggro plugin can now notify you when the aggression timer expires \nFix the LMS overlay to be movable \nThe custom cusor plugin now allows user-supplied cursors by placing a file\nnamed cursor.png
in your .runelite
directory \nThe dragonfire shield cooldown timer has been updated to use the correct\ntime \nSkilling potions have been added to the item identification plugin \nThe twisted league slayer helm is now a recognized slayer item \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\n15987632 (3):\n rl-api: add invoke and return opcodes\n rl-api: add script fired events\n devtools: add script inspector\n\nAdam (16):\n wintertodt: fix interrupt notification firing when already idle\n cache: update sequence definition\n widget item: clip overlay to parent bounds\n screenmarkers: prevent null marker creation\n client: create combined cml/templeosrs xp updater plugin\n api: add both normal and dragging bounds to widgetitem\n inventory grid: don\'t drag grid square when dragging items\n clue plugin: add clue dev command\n opponentinfo: add opponent\'s opponent for npcs\n clue plugin: add reset overlay option\n loot manager: add support for nightmare\n loot tracker: add pickpocket events\n loot tracker: store and match events by type\n loot tracker: filter by type in details view\n http-service: increase ge history retention to 90 days\n widgetitemoverlay: clip dragged items when outside of parent bounds\n\nAlex Germann (1):\n Update General Bentnoze clue step solution\n\nAlexsuperfly (5):\n idle notifier: add fishing animations\n idle notifier: prevent double notifications for anim and interact\n move capturing of screenshots to ImageCapture utility\n Raids: Add clan chat and world to scouting overlay\n Raids: Enable screenshotting of scouting overlay\n\nCrypthead (1):\n client: add configuration for tooltip position\n\nDavid (1):\n clue plugin: add light requirements to clues\n\nGrahm Larkham (1):\n imp plugin: fix notifications on npc change\n\nHenry Darnell (1):\n Add ability and config to swap Lookup and Search in wiki plugin (#10690)\n\nHydrox6 (2):\n config: add support for integer config items to have units\n plugins: add units to configs\n\nJBerben (1):\n antidrag: support bank interface\n\nJordan Atwood (4):\n HotColdLocation: Center some location spots\n HotColdSolver: Add same-temperature solution narrowing\n ConfigPlugin: Expand RuneLite plugin tags\n timers plugin: Improve imbued heart detection\n\nMax Weber (8):\n loottracker: Optimize panel rebuild\n loottracker: Handle rollover/select icons correctly\n runelite-client: typecheck configs extend Config\n PluginHubPanel: Limit height of description to 2 lines, enable word wrap\n PluginManager: require start/stop to be invoked on the EDT\n gpu: refactor shader compilation\n gpu: run glslangValidator on shaders during tests\n gpu: rename length to size in shaders\n\nNoah Haig (1):\n clues: add description to Prif elite coord clue\n\nOelderoth (1):\n grandexchange plugin: log cancelled buy/sell offers\n\nOwain van Brakel (1):\n xpupdater: Fix config not showing\n\nPaveldin (1):\n skill calc: add Spice Rack\n\nRob Mckennie (1):\n npcunaggroarea: add notification for timer expiration\n\nRon Young (5):\n plugins: add reset configuration method on plugin\n banktags: reset tagtabs and banktags when reset button is clicked\n widgetid: fix LMS INFO\n scripts: add LayoutResizableStones script\n interfacestyles: add ability to always stack resizable stones\n\nRyan H (1):\n customcursor: support providing custom cursor images\n\nleopluerodon (1):\n Add twisted slayer helmet to item mappings and slayer plugin\n\nmkowen1 (2):\n item id: add hunter, agility, fishing, and guthix balance potions\n item id: reformat extraneous spaces\n\nralphmtk (1):\n timers: correct dfs spec cooldown time\n
\n',image:"/img/blog/1.6.6-Release/pploottracker.png"}}}]);
-//# sourceMappingURL=119.24b6b294.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[119],{395:function(e,n){e.exports={title:"1.6.6 Release",description:"Pickpocket and Nightmare loot tracking, light sources for clues, and more",author:"Adam",body:'The loot tracker will now track loot received from pickpockets.
\n
\nThe old show opponent\'s opponent option has been readded for NPC opponents;\ncloser inspection of the prohibited feature\nlist \nrevealed the original cause for us removing it only applied to PVP: Indicates whom your opponent\'s opponent is in PVP
\n
\nThe Crystal Math Labs plugin has been replaced with an XP Updater
plugin,\nwhich additionally now supports the TempleOSRS tracker. Remember that sending xp\nupdate requests to external services necessarily sends your IP address and \ndisplay name to that service.
\nThe CoX scouter plugin now has an option for screenshotting the overlay into the\nclipboard, making it easy to share.
\n
\nThe clue plugin now tells you when you are missing a light source required for\nyour clue.
\n
\nThe interface styles plugin now has an option to always used the stacked-stones\narrangement, regardless of client resolution.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe loottracker now can track drops from the Nightmare \nFix the Wintertodt plugin erronously sending a notification about being idle\nwhen you are already idle \nDragging with the inventory grid enabled no longer drags grid cells \nThe mouse tooltip position can now be configured to be above the mouse \nFix imp spawn notifications sometimies not working in Puro-Puro \nThe wiki plugin now has an option to make Search
the default left click\noption \nThe shift anti-drag plugin now also works in the bank \nVarious hot-cold clues that were slightly off center have been centered, and\nthe solver can now sometimes eliminate possible solutions even when the orb\ntemperature has not changed \nThe imbued heart timer now more reliably works when in combat \nThe grand exchange plugin will now also record partially bought or sold\noffers, which can be viewed on the\nwebsite . Additionally, the\nretention history has been upped to 90 days from 30. \nThe NPC unaggro plugin can now notify you when the aggression timer expires \nFix the LMS overlay to be movable \nThe custom cusor plugin now allows user-supplied cursors by placing a file\nnamed cursor.png
in your .runelite
directory \nThe dragonfire shield cooldown timer has been updated to use the correct\ntime \nSkilling potions have been added to the item identification plugin \nThe twisted league slayer helm is now a recognized slayer item \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\n15987632 (3):\n rl-api: add invoke and return opcodes\n rl-api: add script fired events\n devtools: add script inspector\n\nAdam (16):\n wintertodt: fix interrupt notification firing when already idle\n cache: update sequence definition\n widget item: clip overlay to parent bounds\n screenmarkers: prevent null marker creation\n client: create combined cml/templeosrs xp updater plugin\n api: add both normal and dragging bounds to widgetitem\n inventory grid: don\'t drag grid square when dragging items\n clue plugin: add clue dev command\n opponentinfo: add opponent\'s opponent for npcs\n clue plugin: add reset overlay option\n loot manager: add support for nightmare\n loot tracker: add pickpocket events\n loot tracker: store and match events by type\n loot tracker: filter by type in details view\n http-service: increase ge history retention to 90 days\n widgetitemoverlay: clip dragged items when outside of parent bounds\n\nAlex Germann (1):\n Update General Bentnoze clue step solution\n\nAlexsuperfly (5):\n idle notifier: add fishing animations\n idle notifier: prevent double notifications for anim and interact\n move capturing of screenshots to ImageCapture utility\n Raids: Add clan chat and world to scouting overlay\n Raids: Enable screenshotting of scouting overlay\n\nCrypthead (1):\n client: add configuration for tooltip position\n\nDavid (1):\n clue plugin: add light requirements to clues\n\nGrahm Larkham (1):\n imp plugin: fix notifications on npc change\n\nHenry Darnell (1):\n Add ability and config to swap Lookup and Search in wiki plugin (#10690)\n\nHydrox6 (2):\n config: add support for integer config items to have units\n plugins: add units to configs\n\nJBerben (1):\n antidrag: support bank interface\n\nJordan Atwood (4):\n HotColdLocation: Center some location spots\n HotColdSolver: Add same-temperature solution narrowing\n ConfigPlugin: Expand RuneLite plugin tags\n timers plugin: Improve imbued heart detection\n\nMax Weber (8):\n loottracker: Optimize panel rebuild\n loottracker: Handle rollover/select icons correctly\n runelite-client: typecheck configs extend Config\n PluginHubPanel: Limit height of description to 2 lines, enable word wrap\n PluginManager: require start/stop to be invoked on the EDT\n gpu: refactor shader compilation\n gpu: run glslangValidator on shaders during tests\n gpu: rename length to size in shaders\n\nNoah Haig (1):\n clues: add description to Prif elite coord clue\n\nOelderoth (1):\n grandexchange plugin: log cancelled buy/sell offers\n\nOwain van Brakel (1):\n xpupdater: Fix config not showing\n\nPaveldin (1):\n skill calc: add Spice Rack\n\nRob Mckennie (1):\n npcunaggroarea: add notification for timer expiration\n\nRon Young (5):\n plugins: add reset configuration method on plugin\n banktags: reset tagtabs and banktags when reset button is clicked\n widgetid: fix LMS INFO\n scripts: add LayoutResizableStones script\n interfacestyles: add ability to always stack resizable stones\n\nRyan H (1):\n customcursor: support providing custom cursor images\n\nleopluerodon (1):\n Add twisted slayer helmet to item mappings and slayer plugin\n\nmkowen1 (2):\n item id: add hunter, agility, fishing, and guthix balance potions\n item id: reformat extraneous spaces\n\nralphmtk (1):\n timers: correct dfs spec cooldown time\n
\n',image:"/img/blog/1.6.6-Release/pploottracker.png"}}}]);
+//# sourceMappingURL=119.cb37e5c6.chunk.js.map
\ No newline at end of file
diff --git a/static/js/119.24b6b294.chunk.js.map b/static/js/119.cb37e5c6.chunk.js.map
similarity index 99%
rename from static/js/119.24b6b294.chunk.js.map
rename to static/js/119.cb37e5c6.chunk.js.map
index 9fe8d0bbb..89ea251c4 100644
--- a/static/js/119.24b6b294.chunk.js.map
+++ b/static/js/119.cb37e5c6.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-02-13-10-00-1.6.6-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,q5NAAu7N,MAAQ","file":"static/js/119.24b6b294.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.6 Release\",\"description\":\"Pickpocket and Nightmare loot tracking, light sources for clues, and more\",\"author\":\"Adam\",\"body\":\"The loot tracker will now track loot received from pickpockets.
\\n
\\nThe old show opponent's opponent option has been readded for NPC opponents;\\ncloser inspection of the prohibited feature\\nlist \\nrevealed the original cause for us removing it only applied to PVP: Indicates whom your opponent's opponent is in PVP
\\n
\\nThe Crystal Math Labs plugin has been replaced with an XP Updater
plugin,\\nwhich additionally now supports the TempleOSRS tracker. Remember that sending xp\\nupdate requests to external services necessarily sends your IP address and \\ndisplay name to that service.
\\nThe CoX scouter plugin now has an option for screenshotting the overlay into the\\nclipboard, making it easy to share.
\\n
\\nThe clue plugin now tells you when you are missing a light source required for\\nyour clue.
\\n
\\nThe interface styles plugin now has an option to always used the stacked-stones\\narrangement, regardless of client resolution.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe loottracker now can track drops from the Nightmare \\nFix the Wintertodt plugin erronously sending a notification about being idle\\nwhen you are already idle \\nDragging with the inventory grid enabled no longer drags grid cells \\nThe mouse tooltip position can now be configured to be above the mouse \\nFix imp spawn notifications sometimies not working in Puro-Puro \\nThe wiki plugin now has an option to make Search
the default left click\\noption \\nThe shift anti-drag plugin now also works in the bank \\nVarious hot-cold clues that were slightly off center have been centered, and\\nthe solver can now sometimes eliminate possible solutions even when the orb\\ntemperature has not changed \\nThe imbued heart timer now more reliably works when in combat \\nThe grand exchange plugin will now also record partially bought or sold\\noffers, which can be viewed on the\\nwebsite . Additionally, the\\nretention history has been upped to 90 days from 30. \\nThe NPC unaggro plugin can now notify you when the aggression timer expires \\nFix the LMS overlay to be movable \\nThe custom cusor plugin now allows user-supplied cursors by placing a file\\nnamed cursor.png
in your .runelite
directory \\nThe dragonfire shield cooldown timer has been updated to use the correct\\ntime \\nSkilling potions have been added to the item identification plugin \\nThe twisted league slayer helm is now a recognized slayer item \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\n15987632 (3):\\n rl-api: add invoke and return opcodes\\n rl-api: add script fired events\\n devtools: add script inspector\\n\\nAdam (16):\\n wintertodt: fix interrupt notification firing when already idle\\n cache: update sequence definition\\n widget item: clip overlay to parent bounds\\n screenmarkers: prevent null marker creation\\n client: create combined cml/templeosrs xp updater plugin\\n api: add both normal and dragging bounds to widgetitem\\n inventory grid: don't drag grid square when dragging items\\n clue plugin: add clue dev command\\n opponentinfo: add opponent's opponent for npcs\\n clue plugin: add reset overlay option\\n loot manager: add support for nightmare\\n loot tracker: add pickpocket events\\n loot tracker: store and match events by type\\n loot tracker: filter by type in details view\\n http-service: increase ge history retention to 90 days\\n widgetitemoverlay: clip dragged items when outside of parent bounds\\n\\nAlex Germann (1):\\n Update General Bentnoze clue step solution\\n\\nAlexsuperfly (5):\\n idle notifier: add fishing animations\\n idle notifier: prevent double notifications for anim and interact\\n move capturing of screenshots to ImageCapture utility\\n Raids: Add clan chat and world to scouting overlay\\n Raids: Enable screenshotting of scouting overlay\\n\\nCrypthead (1):\\n client: add configuration for tooltip position\\n\\nDavid (1):\\n clue plugin: add light requirements to clues\\n\\nGrahm Larkham (1):\\n imp plugin: fix notifications on npc change\\n\\nHenry Darnell (1):\\n Add ability and config to swap Lookup and Search in wiki plugin (#10690)\\n\\nHydrox6 (2):\\n config: add support for integer config items to have units\\n plugins: add units to configs\\n\\nJBerben (1):\\n antidrag: support bank interface\\n\\nJordan Atwood (4):\\n HotColdLocation: Center some location spots\\n HotColdSolver: Add same-temperature solution narrowing\\n ConfigPlugin: Expand RuneLite plugin tags\\n timers plugin: Improve imbued heart detection\\n\\nMax Weber (8):\\n loottracker: Optimize panel rebuild\\n loottracker: Handle rollover/select icons correctly\\n runelite-client: typecheck configs extend Config\\n PluginHubPanel: Limit height of description to 2 lines, enable word wrap\\n PluginManager: require start/stop to be invoked on the EDT\\n gpu: refactor shader compilation\\n gpu: run glslangValidator on shaders during tests\\n gpu: rename length to size in shaders\\n\\nNoah Haig (1):\\n clues: add description to Prif elite coord clue\\n\\nOelderoth (1):\\n grandexchange plugin: log cancelled buy/sell offers\\n\\nOwain van Brakel (1):\\n xpupdater: Fix config not showing\\n\\nPaveldin (1):\\n skill calc: add Spice Rack\\n\\nRob Mckennie (1):\\n npcunaggroarea: add notification for timer expiration\\n\\nRon Young (5):\\n plugins: add reset configuration method on plugin\\n banktags: reset tagtabs and banktags when reset button is clicked\\n widgetid: fix LMS INFO\\n scripts: add LayoutResizableStones script\\n interfacestyles: add ability to always stack resizable stones\\n\\nRyan H (1):\\n customcursor: support providing custom cursor images\\n\\nleopluerodon (1):\\n Add twisted slayer helmet to item mappings and slayer plugin\\n\\nmkowen1 (2):\\n item id: add hunter, agility, fishing, and guthix balance potions\\n item id: reformat extraneous spaces\\n\\nralphmtk (1):\\n timers: correct dfs spec cooldown time\\n
\\n\",\"image\":\"/img/blog/1.6.6-Release/pploottracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-02-13-10-00-1.6.6-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,q5NAAu7N,MAAQ","file":"static/js/119.cb37e5c6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.6 Release\",\"description\":\"Pickpocket and Nightmare loot tracking, light sources for clues, and more\",\"author\":\"Adam\",\"body\":\"The loot tracker will now track loot received from pickpockets.
\\n
\\nThe old show opponent's opponent option has been readded for NPC opponents;\\ncloser inspection of the prohibited feature\\nlist \\nrevealed the original cause for us removing it only applied to PVP: Indicates whom your opponent's opponent is in PVP
\\n
\\nThe Crystal Math Labs plugin has been replaced with an XP Updater
plugin,\\nwhich additionally now supports the TempleOSRS tracker. Remember that sending xp\\nupdate requests to external services necessarily sends your IP address and \\ndisplay name to that service.
\\nThe CoX scouter plugin now has an option for screenshotting the overlay into the\\nclipboard, making it easy to share.
\\n
\\nThe clue plugin now tells you when you are missing a light source required for\\nyour clue.
\\n
\\nThe interface styles plugin now has an option to always used the stacked-stones\\narrangement, regardless of client resolution.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe loottracker now can track drops from the Nightmare \\nFix the Wintertodt plugin erronously sending a notification about being idle\\nwhen you are already idle \\nDragging with the inventory grid enabled no longer drags grid cells \\nThe mouse tooltip position can now be configured to be above the mouse \\nFix imp spawn notifications sometimies not working in Puro-Puro \\nThe wiki plugin now has an option to make Search
the default left click\\noption \\nThe shift anti-drag plugin now also works in the bank \\nVarious hot-cold clues that were slightly off center have been centered, and\\nthe solver can now sometimes eliminate possible solutions even when the orb\\ntemperature has not changed \\nThe imbued heart timer now more reliably works when in combat \\nThe grand exchange plugin will now also record partially bought or sold\\noffers, which can be viewed on the\\nwebsite . Additionally, the\\nretention history has been upped to 90 days from 30. \\nThe NPC unaggro plugin can now notify you when the aggression timer expires \\nFix the LMS overlay to be movable \\nThe custom cusor plugin now allows user-supplied cursors by placing a file\\nnamed cursor.png
in your .runelite
directory \\nThe dragonfire shield cooldown timer has been updated to use the correct\\ntime \\nSkilling potions have been added to the item identification plugin \\nThe twisted league slayer helm is now a recognized slayer item \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\n15987632 (3):\\n rl-api: add invoke and return opcodes\\n rl-api: add script fired events\\n devtools: add script inspector\\n\\nAdam (16):\\n wintertodt: fix interrupt notification firing when already idle\\n cache: update sequence definition\\n widget item: clip overlay to parent bounds\\n screenmarkers: prevent null marker creation\\n client: create combined cml/templeosrs xp updater plugin\\n api: add both normal and dragging bounds to widgetitem\\n inventory grid: don't drag grid square when dragging items\\n clue plugin: add clue dev command\\n opponentinfo: add opponent's opponent for npcs\\n clue plugin: add reset overlay option\\n loot manager: add support for nightmare\\n loot tracker: add pickpocket events\\n loot tracker: store and match events by type\\n loot tracker: filter by type in details view\\n http-service: increase ge history retention to 90 days\\n widgetitemoverlay: clip dragged items when outside of parent bounds\\n\\nAlex Germann (1):\\n Update General Bentnoze clue step solution\\n\\nAlexsuperfly (5):\\n idle notifier: add fishing animations\\n idle notifier: prevent double notifications for anim and interact\\n move capturing of screenshots to ImageCapture utility\\n Raids: Add clan chat and world to scouting overlay\\n Raids: Enable screenshotting of scouting overlay\\n\\nCrypthead (1):\\n client: add configuration for tooltip position\\n\\nDavid (1):\\n clue plugin: add light requirements to clues\\n\\nGrahm Larkham (1):\\n imp plugin: fix notifications on npc change\\n\\nHenry Darnell (1):\\n Add ability and config to swap Lookup and Search in wiki plugin (#10690)\\n\\nHydrox6 (2):\\n config: add support for integer config items to have units\\n plugins: add units to configs\\n\\nJBerben (1):\\n antidrag: support bank interface\\n\\nJordan Atwood (4):\\n HotColdLocation: Center some location spots\\n HotColdSolver: Add same-temperature solution narrowing\\n ConfigPlugin: Expand RuneLite plugin tags\\n timers plugin: Improve imbued heart detection\\n\\nMax Weber (8):\\n loottracker: Optimize panel rebuild\\n loottracker: Handle rollover/select icons correctly\\n runelite-client: typecheck configs extend Config\\n PluginHubPanel: Limit height of description to 2 lines, enable word wrap\\n PluginManager: require start/stop to be invoked on the EDT\\n gpu: refactor shader compilation\\n gpu: run glslangValidator on shaders during tests\\n gpu: rename length to size in shaders\\n\\nNoah Haig (1):\\n clues: add description to Prif elite coord clue\\n\\nOelderoth (1):\\n grandexchange plugin: log cancelled buy/sell offers\\n\\nOwain van Brakel (1):\\n xpupdater: Fix config not showing\\n\\nPaveldin (1):\\n skill calc: add Spice Rack\\n\\nRob Mckennie (1):\\n npcunaggroarea: add notification for timer expiration\\n\\nRon Young (5):\\n plugins: add reset configuration method on plugin\\n banktags: reset tagtabs and banktags when reset button is clicked\\n widgetid: fix LMS INFO\\n scripts: add LayoutResizableStones script\\n interfacestyles: add ability to always stack resizable stones\\n\\nRyan H (1):\\n customcursor: support providing custom cursor images\\n\\nleopluerodon (1):\\n Add twisted slayer helmet to item mappings and slayer plugin\\n\\nmkowen1 (2):\\n item id: add hunter, agility, fishing, and guthix balance potions\\n item id: reformat extraneous spaces\\n\\nralphmtk (1):\\n timers: correct dfs spec cooldown time\\n
\\n\",\"image\":\"/img/blog/1.6.6-Release/pploottracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/12.145525e3.chunk.js b/static/js/12.e3e38a02.chunk.js
similarity index 98%
rename from static/js/12.145525e3.chunk.js
rename to static/js/12.e3e38a02.chunk.js
index 2f4ebcbc9..2c112eb3a 100644
--- a/static/js/12.145525e3.chunk.js
+++ b/static/js/12.e3e38a02.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[12],{126:function(e,i,t){"use strict";var n=t(0);var r=()=>Object(n.g)("section",{id:"footer"},Object(n.g)("div",{class:"content-section"},Object(n.g)("footer",null,Object(n.g)("hr",null),"Developed with ",Object(n.g)("i",{class:"fas fa-heart"})," and"," ",Object(n.g)("i",{class:"fas fa-coffee"})," using"," ",Object(n.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(n.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(n.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(n.g)("a",{href:"/atom.xml",class:"float-right"},Object(n.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));i.a=e=>{let{children:i,fullWidth:t,...s}=e;return s.class=s.class?"container "+s.class:"container",s.style={...s.style||{},maxWidth:t?"100%":""},Object(n.g)("div",Object.assign({},s,{id:"layout"}),i,Object(n.g)(r,null))}},131:function(e,i,t){},288:function(e,i,t){"use strict";var n=t(0);t(131);i.a=e=>{let{image:i,title:t,description:r,link:s,linkAlt:a}=e;return Object(n.g)("div",{class:"col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-12 mb-2"},Object(n.g)("div",{class:"card"},Object(n.g)("img",{class:"card-img-top",alt:t,src:i,fetchpriority:"low"}),Object(n.g)("div",{class:"card-body"},Object(n.g)("h5",{class:"card-title"},s?Object(n.g)("a",{href:s,alt:a},t):t),Object(n.g)("p",{class:"card-text"},r))))}},289:function(e,i,t){"use strict";i.a=[{image:"/img/features/mousehighlight.png",title:"Action tooltips",description:"Displays tooltips for actions under your mouse cursor.",link:"https://github.com/runelite/runelite/wiki/Mouse-Tooltips"},{image:"/img/features/agility.png",title:"Agility",description:"Displays clickboxes for agility courses, and counts the number of laps you have done.",link:"https://github.com/runelite/runelite/wiki/Agility"},{image:"/img/features/kourend.png",title:"Arceuus Library",description:"Shows you where books are in the Arceuus Library.",link:"https://github.com/runelite/runelite/wiki/Kourend-Library"},{image:"/img/features/attackstyles.png",title:"Attack style",description:"Indicates your attack style and hides unwanted styles.",link:"https://github.com/runelite/runelite/wiki/Attack-Styles"},{image:"/img/features/bankeval.png",title:"Bank evaluator",description:"Displays your bank's total value based on GE and alch prices.",link:"https://github.com/runelite/runelite/wiki/Bank"},{image:"/img/features/banktags.png",title:"Bank tags",description:"Allows you to set searchable tags on items for your bank.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/tagtabs.png",title:"Bank Tag Tabs",description:"A tab on the left side of the bank to auto search the assigned tag when clicked.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/barbassault.png",title:"Barbarian Assault",description:"Displays a timer for the next change of horn commands.",link:"https://github.com/runelite/runelite/wiki/Barbarian-Assault"},{image:"/img/features/barrows.png",title:"Barrows",description:"Marks the location of brothers and shows puzzle answers",link:"https://github.com/runelite/runelite/wiki/Barrows-Brothers"},{image:"/img/features/blastfurnace.png",title:"Blast Furnace",description:"Shows your current bars/ores and marks the clickbox of the conveyor belt.",link:"https://github.com/runelite/runelite/wiki/Blast-Furnace"},{image:"/img/features/birdhouses.png",title:"Birdhouse Timers",description:"Displays birdhouses and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/cannontiles.png",title:"Cannon double hit spots",description:"Shows you where to position enemies for double cannonball hits.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/chatcolor.png",title:"Chat Color",description:"Configures chat colors for each type of message in transparent and non transparent chat.",link:"https://github.com/runelite/runelite/wiki/Chat-Color"},{image:"/img/features/chatcommands.png",title:"Chat commands",description:"Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.",link:"https://github.com/runelite/runelite/wiki/Chat-Commands"},{image:"/img/features/clanchat.png",title:"Clan chat",description:"Adds the sender's rank to clan chat messages.",link:"https://github.com/runelite/runelite/wiki/Clan-Chat"},{image:"/img/features/cluescroll.png",title:"Clue scroll helper",description:"Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.",link:"https://github.com/runelite/runelite/wiki/Clue-Scroll"},{image:"/img/features/moveableoverlay.png",title:"Custom overlay position",description:"Allows you to move RuneLite overlays to any position on the screen.",link:"https://github.com/runelite/runelite/wiki/General-Features#moving-overlays"},{image:"/img/features/daily.png",title:"Daily task indicators",description:"Notifies you on login what daily tasks you are able to complete.",link:"https://github.com/runelite/runelite/wiki/Daily-Task-Indicator"},{image:"/img/features/discord.png",title:"Discord integration",description:"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties",link:"https://github.com/runelite/runelite/wiki/Discord",home:!0},{image:"/img/features/cannon.png",title:"Dwarf multicannon",description:"Displays the number of cannonballs left in your cannon, along with common cannon spots.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/fairyringsearch.png",title:"Fairy Ring Filter",description:"Allows you to filter the fairy ring destination menu.",link:"https://github.com/runelite/runelite/wiki/Fairy-Rings"},{image:"/img/features/farmingtracker.png",title:"Farming Tracker",description:"Displays current farming patches and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/fishing.png",title:"Fishing",description:"Highlights fishing spots and tracks fishing stats.",link:"https://github.com/runelite/runelite/wiki/Fishing"},{image:"/img/features/gpu.png",title:"GPU",description:"Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.",link:"https://github.com/runelite/runelite/wiki/GPU",home:!0},{image:"/img/features/gesearch.png",title:"Grand Exchange lookup",description:"Quickly price-check any item on the Grand Exchange.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/ge.png",title:"Grand Exchange offers",description:"Lists your current Grand Exchange offers.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/grounditems.png",title:"Ground items",description:"Hides, highlights, and adds filterable price colors to dropped items.",link:"https://github.com/runelite/runelite/wiki/Ground-Items"},{image:"/img/features/herbiboar.png",title:"Herbiboar",description:"Highlights the path and objects to search at the end of the trail.",link:"https://github.com/runelite/runelite/wiki/Herbiboar"},{image:"/img/features/hunter.png",title:"Hunter",description:"Adds timers to hunter traps.",link:"https://github.com/runelite/runelite/wiki/Hunter"},{image:"/img/features/idle.png",title:"Idle notifications",description:"Sends system tray alerts when idle or about to be logged out.",link:"https://github.com/runelite/runelite/wiki/Idle-Notifier"},{image:"/img/features/imp.png",title:"Impling finder",description:"Highlights nearby implings on the minimap and on-screen.",link:"https://github.com/runelite/runelite/wiki/Implings"},{image:"/img/features/inventorytags.png",title:"Inventory Tags",description:"Allows you to assign group tags to inventory items.",link:"https://github.com/runelite/runelite/wiki/Inventory-Tags"},{image:"/img/features/inventoryviewer.png",title:"Inventory Viewer",description:"Displays an overlay of your current inventory.",link:"https://github.com/runelite/runelite/wiki/Inventory-Viewer"},{image:"/img/features/itemstats.png",title:"Item stats",description:"Displays information about food and potion effects.",link:"https://github.com/runelite/runelite/wiki/Item-Stats"},{image:"/img/features/jewellerycount.png",title:"Jewellery charges",description:"Displays the number of charges that your jewellery has.",link:"https://github.com/runelite/runelite/wiki/Item-Charges"},{image:"/img/features/lightboxsolver.png",title:"Light Box Puzzle Solver",description:"Solves light box puzzles during clue scrolls.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/loottracker.png",title:"Loot Tracker",description:"Shows kill count and drops with prices from monsters you kill.",link:"https://github.com/runelite/runelite/wiki/Loot-Tracker",home:!0},{image:"/img/features/lowdetail.png",title:"Low detail mode",description:"Enables low detail mode, removing some of the game's eye candy.",link:"https://github.com/runelite/runelite/wiki/Low-Detail"},{image:"/img/features/mta.png",title:"Mage Training Arena",description:"Overlays to assist in each of the MTA rooms.",link:"https://github.com/runelite/runelite/wiki/Mage-Training-Arena"},{image:"/img/features/menuswap.png",title:"Menu entry swapping",description:"Swaps the left-click actions of certain objects.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper"},{image:"/img/features/minimapdots.png",title:"Minimap dot customizer",description:"Customizes the color of minimap dots.",link:"https://github.com/runelite/runelite/wiki/Minimap"},{image:"/img/features/favor.png",title:"Miscellania favor",description:"Displays your current favor and treasury in the Kingdom of Miscellania.",link:"https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania"},{image:"/img/features/mlm.png",title:"Motherlode Mine",description:"Marks veins and rock obstacles in the Motherlode Mine.",link:"https://github.com/runelite/runelite/wiki/Motherlode-Mine"},{image:"/img/features/newsfeed.png",title:"News feed",description:"Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.",link:"https://github.com/runelite/runelite/wiki/News-Feed"},{image:"/img/features/nmz.png",title:"Nightmare Zone",description:"Displays NMZ points/absorption and notifies you about expiring potions.",link:"https://github.com/runelite/runelite/wiki/Nightmare-Zone"},{image:"/img/features/npctag.png",title:"NPC tagging",description:"Tags and keeps track of an NPC.",link:"https://github.com/runelite/runelite/wiki/NPC-Indicators"},{image:"/img/features/discordparty.png",title:"Party",description:"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location",link:"https://github.com/runelite/runelite/wiki/Party"},{image:"/img/features/playerindicators.png",title:"Player indicators",description:"Draws the names of friends, clan mates and yourself overhead.",link:"https://github.com/runelite/runelite/wiki/Player-Indicators"},{image:"/img/features/poh.png",title:"Player-owned houses",description:"Displays minimap icons and marks unlit/lit burners.",link:"https://github.com/runelite/runelite/wiki/Player-owned-House"},{image:"/img/features/prayerbar.png",title:"Prayer Bar",description:"Displays a prayer bar underneath your hitpoints bar.",link:"https://github.com/runelite/runelite/wiki/Prayer"},{image:"/img/features/puzzlebox.png",title:"Puzzle box solver",description:"Shows you where to click to solve puzzle boxes.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/raids.png",title:"Raid scouter",description:"Displays the current layout of raids and tracks the raid duration.",link:"https://github.com/runelite/runelite/wiki/Chambers-of-Xeric"},{image:"/img/features/regen.png",title:"Regen timers",description:"Tracks and displays the hitpoints & special attack regen timers.",link:"https://github.com/runelite/runelite/wiki/Regeneration-Meter"},{image:"/img/features/roguesden.png",title:"Rogues' Den",description:"Marks tiles and clickboxes to help you traverse the maze.",link:"https://github.com/runelite/runelite/wiki/Rogues%27-Den"},{image:"/img/features/abyss.png",title:"Runecraft",description:"Displays minimap icons and clickboxes for abyssal rifts.",link:"https://github.com/runelite/runelite/wiki/Runecraft"},{image:"/img/features/runepouch.png",title:"Rune pouch",description:"Shows what runes are currently in your rune pouch.",link:"https://github.com/runelite/runelite/wiki/Rune-Pouch"},{image:"/img/features/shiftclick.png",title:"Shift click configuration",description:"Allows you to change/set shift click actions on items.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click"},{image:"/img/features/statusbars.png",title:"Status Bars",description:"Shows health and prayer bars next to the inventory.",link:"https://github.com/runelite/runelite/wiki/Status-Bars"},{image:"/img/features/boosts.png",title:"Status widgets",description:"Shows boost timers, enemy HP, and other useful overlays.",home:!0},{image:"/img/features/stretchedfixed.png",title:"Stretched mode",description:"Stretches the game to the size of your window.",link:"https://github.com/runelite/runelite/wiki/Stretched-Mode"},{image:"/img/features/teamcapes.png",title:"Team cape overlay",description:"Displays team cape wearer counts.",link:"https://github.com/runelite/runelite/wiki/Team-Capes"},{image:"/img/features/tearsofguthix.png",title:"Tears of Guthix",description:"Displays the remaining time for streams of tears.",link:"https://github.com/runelite/runelite/wiki/Tears-Of-Guthix"},{image:"/img/features/tileindicators.png",title:"Tile indicator",description:"Marks the tile you last clicked on.",link:"https://github.com/runelite/runelite/wiki/Tile-Indicators"},{image:"/img/features/tithefarm.png",title:"Tithe Farm",description:"Displays timers for the farming patches within the Tithe farm minigame.",link:"https://github.com/runelite/runelite/wiki/Tithe-Farm"},{image:"/img/features/wcing.png",title:"Woodcutting",description:"Displays information about the logs you are cutting.",link:"https://github.com/runelite/runelite/wiki/Woodcutting"},{image:"/img/features/xpglobes.png",title:"XP globes",description:"Displays skill globes when you gain XP, with more detailed stats on hover.",link:"https://github.com/runelite/runelite/wiki/XP-Globes"},{image:"/img/features/xptracker.png",title:"XP Tracker",description:"Side panel displaying xp data for each skill you have trained.",link:"https://github.com/runelite/runelite/wiki/XP-Tracker"},{image:"/img/features/zoom.png",title:"Zoom unlimiter",description:"Allows you to zoom past the default camera distance limits.",link:"https://github.com/runelite/runelite/wiki/Camera"}]},449:function(e,i,t){"use strict";t.r(i);var n=t(0),r=t(126),s=t(288),a=t(289),o=t(7),l=t.n(o),u=t(46);i.default=()=>Object(n.g)(r.a,null,Object(n.g)(u.a,{title:"Features - "+l.a.title,description:"RuneLite plugins and features"}),Object(n.g)("section",{id:"features"},Object(n.g)("div",{class:"content-section"},Object(n.g)("h1",{class:"page-header"},"Features"),Object(n.g)("div",{class:"row"},a.a.map(e=>Object(n.g)(s.a,Object.assign({key:e.title,linkAlt:"View on Wiki"},e)))))))}}]);
-//# sourceMappingURL=12.145525e3.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[12],{126:function(e,i,t){"use strict";var n=t(0);var r=()=>Object(n.g)("section",{id:"footer"},Object(n.g)("div",{class:"content-section"},Object(n.g)("footer",null,Object(n.g)("hr",null),"Developed with ",Object(n.g)("i",{class:"fas fa-heart"})," and"," ",Object(n.g)("i",{class:"fas fa-coffee"})," using"," ",Object(n.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(n.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(n.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(n.g)("a",{href:"/atom.xml",class:"float-right"},Object(n.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));i.a=e=>{let{children:i,fullWidth:t,...s}=e;return s.class=s.class?"container "+s.class:"container",s.style={...s.style||{},maxWidth:t?"100%":""},Object(n.g)("div",Object.assign({},s,{id:"layout"}),i,Object(n.g)(r,null))}},131:function(e,i,t){},289:function(e,i,t){"use strict";var n=t(0);t(131);i.a=e=>{let{image:i,title:t,description:r,link:s,linkAlt:a}=e;return Object(n.g)("div",{class:"col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-12 mb-2"},Object(n.g)("div",{class:"card"},Object(n.g)("img",{class:"card-img-top",alt:t,src:i,fetchpriority:"low"}),Object(n.g)("div",{class:"card-body"},Object(n.g)("h5",{class:"card-title"},s?Object(n.g)("a",{href:s,alt:a},t):t),Object(n.g)("p",{class:"card-text"},r))))}},290:function(e,i,t){"use strict";i.a=[{image:"/img/features/mousehighlight.png",title:"Action tooltips",description:"Displays tooltips for actions under your mouse cursor.",link:"https://github.com/runelite/runelite/wiki/Mouse-Tooltips"},{image:"/img/features/agility.png",title:"Agility",description:"Displays clickboxes for agility courses, and counts the number of laps you have done.",link:"https://github.com/runelite/runelite/wiki/Agility"},{image:"/img/features/kourend.png",title:"Arceuus Library",description:"Shows you where books are in the Arceuus Library.",link:"https://github.com/runelite/runelite/wiki/Kourend-Library"},{image:"/img/features/attackstyles.png",title:"Attack style",description:"Indicates your attack style and hides unwanted styles.",link:"https://github.com/runelite/runelite/wiki/Attack-Styles"},{image:"/img/features/bankeval.png",title:"Bank evaluator",description:"Displays your bank's total value based on GE and alch prices.",link:"https://github.com/runelite/runelite/wiki/Bank"},{image:"/img/features/banktags.png",title:"Bank tags",description:"Allows you to set searchable tags on items for your bank.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/tagtabs.png",title:"Bank Tag Tabs",description:"A tab on the left side of the bank to auto search the assigned tag when clicked.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/barbassault.png",title:"Barbarian Assault",description:"Displays a timer for the next change of horn commands.",link:"https://github.com/runelite/runelite/wiki/Barbarian-Assault"},{image:"/img/features/barrows.png",title:"Barrows",description:"Marks the location of brothers and shows puzzle answers",link:"https://github.com/runelite/runelite/wiki/Barrows-Brothers"},{image:"/img/features/blastfurnace.png",title:"Blast Furnace",description:"Shows your current bars/ores and marks the clickbox of the conveyor belt.",link:"https://github.com/runelite/runelite/wiki/Blast-Furnace"},{image:"/img/features/birdhouses.png",title:"Birdhouse Timers",description:"Displays birdhouses and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/cannontiles.png",title:"Cannon double hit spots",description:"Shows you where to position enemies for double cannonball hits.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/chatcolor.png",title:"Chat Color",description:"Configures chat colors for each type of message in transparent and non transparent chat.",link:"https://github.com/runelite/runelite/wiki/Chat-Color"},{image:"/img/features/chatcommands.png",title:"Chat commands",description:"Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.",link:"https://github.com/runelite/runelite/wiki/Chat-Commands"},{image:"/img/features/clanchat.png",title:"Clan chat",description:"Adds the sender's rank to clan chat messages.",link:"https://github.com/runelite/runelite/wiki/Clan-Chat"},{image:"/img/features/cluescroll.png",title:"Clue scroll helper",description:"Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.",link:"https://github.com/runelite/runelite/wiki/Clue-Scroll"},{image:"/img/features/moveableoverlay.png",title:"Custom overlay position",description:"Allows you to move RuneLite overlays to any position on the screen.",link:"https://github.com/runelite/runelite/wiki/General-Features#moving-overlays"},{image:"/img/features/daily.png",title:"Daily task indicators",description:"Notifies you on login what daily tasks you are able to complete.",link:"https://github.com/runelite/runelite/wiki/Daily-Task-Indicator"},{image:"/img/features/discord.png",title:"Discord integration",description:"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties",link:"https://github.com/runelite/runelite/wiki/Discord",home:!0},{image:"/img/features/cannon.png",title:"Dwarf multicannon",description:"Displays the number of cannonballs left in your cannon, along with common cannon spots.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/fairyringsearch.png",title:"Fairy Ring Filter",description:"Allows you to filter the fairy ring destination menu.",link:"https://github.com/runelite/runelite/wiki/Fairy-Rings"},{image:"/img/features/farmingtracker.png",title:"Farming Tracker",description:"Displays current farming patches and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/fishing.png",title:"Fishing",description:"Highlights fishing spots and tracks fishing stats.",link:"https://github.com/runelite/runelite/wiki/Fishing"},{image:"/img/features/gpu.png",title:"GPU",description:"Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.",link:"https://github.com/runelite/runelite/wiki/GPU",home:!0},{image:"/img/features/gesearch.png",title:"Grand Exchange lookup",description:"Quickly price-check any item on the Grand Exchange.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/ge.png",title:"Grand Exchange offers",description:"Lists your current Grand Exchange offers.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/grounditems.png",title:"Ground items",description:"Hides, highlights, and adds filterable price colors to dropped items.",link:"https://github.com/runelite/runelite/wiki/Ground-Items"},{image:"/img/features/herbiboar.png",title:"Herbiboar",description:"Highlights the path and objects to search at the end of the trail.",link:"https://github.com/runelite/runelite/wiki/Herbiboar"},{image:"/img/features/hunter.png",title:"Hunter",description:"Adds timers to hunter traps.",link:"https://github.com/runelite/runelite/wiki/Hunter"},{image:"/img/features/idle.png",title:"Idle notifications",description:"Sends system tray alerts when idle or about to be logged out.",link:"https://github.com/runelite/runelite/wiki/Idle-Notifier"},{image:"/img/features/imp.png",title:"Impling finder",description:"Highlights nearby implings on the minimap and on-screen.",link:"https://github.com/runelite/runelite/wiki/Implings"},{image:"/img/features/inventorytags.png",title:"Inventory Tags",description:"Allows you to assign group tags to inventory items.",link:"https://github.com/runelite/runelite/wiki/Inventory-Tags"},{image:"/img/features/inventoryviewer.png",title:"Inventory Viewer",description:"Displays an overlay of your current inventory.",link:"https://github.com/runelite/runelite/wiki/Inventory-Viewer"},{image:"/img/features/itemstats.png",title:"Item stats",description:"Displays information about food and potion effects.",link:"https://github.com/runelite/runelite/wiki/Item-Stats"},{image:"/img/features/jewellerycount.png",title:"Jewellery charges",description:"Displays the number of charges that your jewellery has.",link:"https://github.com/runelite/runelite/wiki/Item-Charges"},{image:"/img/features/lightboxsolver.png",title:"Light Box Puzzle Solver",description:"Solves light box puzzles during clue scrolls.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/loottracker.png",title:"Loot Tracker",description:"Shows kill count and drops with prices from monsters you kill.",link:"https://github.com/runelite/runelite/wiki/Loot-Tracker",home:!0},{image:"/img/features/lowdetail.png",title:"Low detail mode",description:"Enables low detail mode, removing some of the game's eye candy.",link:"https://github.com/runelite/runelite/wiki/Low-Detail"},{image:"/img/features/mta.png",title:"Mage Training Arena",description:"Overlays to assist in each of the MTA rooms.",link:"https://github.com/runelite/runelite/wiki/Mage-Training-Arena"},{image:"/img/features/menuswap.png",title:"Menu entry swapping",description:"Swaps the left-click actions of certain objects.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper"},{image:"/img/features/minimapdots.png",title:"Minimap dot customizer",description:"Customizes the color of minimap dots.",link:"https://github.com/runelite/runelite/wiki/Minimap"},{image:"/img/features/favor.png",title:"Miscellania favor",description:"Displays your current favor and treasury in the Kingdom of Miscellania.",link:"https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania"},{image:"/img/features/mlm.png",title:"Motherlode Mine",description:"Marks veins and rock obstacles in the Motherlode Mine.",link:"https://github.com/runelite/runelite/wiki/Motherlode-Mine"},{image:"/img/features/newsfeed.png",title:"News feed",description:"Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.",link:"https://github.com/runelite/runelite/wiki/News-Feed"},{image:"/img/features/nmz.png",title:"Nightmare Zone",description:"Displays NMZ points/absorption and notifies you about expiring potions.",link:"https://github.com/runelite/runelite/wiki/Nightmare-Zone"},{image:"/img/features/npctag.png",title:"NPC tagging",description:"Tags and keeps track of an NPC.",link:"https://github.com/runelite/runelite/wiki/NPC-Indicators"},{image:"/img/features/discordparty.png",title:"Party",description:"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location",link:"https://github.com/runelite/runelite/wiki/Party"},{image:"/img/features/playerindicators.png",title:"Player indicators",description:"Draws the names of friends, clan mates and yourself overhead.",link:"https://github.com/runelite/runelite/wiki/Player-Indicators"},{image:"/img/features/poh.png",title:"Player-owned houses",description:"Displays minimap icons and marks unlit/lit burners.",link:"https://github.com/runelite/runelite/wiki/Player-owned-House"},{image:"/img/features/prayerbar.png",title:"Prayer Bar",description:"Displays a prayer bar underneath your hitpoints bar.",link:"https://github.com/runelite/runelite/wiki/Prayer"},{image:"/img/features/puzzlebox.png",title:"Puzzle box solver",description:"Shows you where to click to solve puzzle boxes.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/raids.png",title:"Raid scouter",description:"Displays the current layout of raids and tracks the raid duration.",link:"https://github.com/runelite/runelite/wiki/Chambers-of-Xeric"},{image:"/img/features/regen.png",title:"Regen timers",description:"Tracks and displays the hitpoints & special attack regen timers.",link:"https://github.com/runelite/runelite/wiki/Regeneration-Meter"},{image:"/img/features/roguesden.png",title:"Rogues' Den",description:"Marks tiles and clickboxes to help you traverse the maze.",link:"https://github.com/runelite/runelite/wiki/Rogues%27-Den"},{image:"/img/features/abyss.png",title:"Runecraft",description:"Displays minimap icons and clickboxes for abyssal rifts.",link:"https://github.com/runelite/runelite/wiki/Runecraft"},{image:"/img/features/runepouch.png",title:"Rune pouch",description:"Shows what runes are currently in your rune pouch.",link:"https://github.com/runelite/runelite/wiki/Rune-Pouch"},{image:"/img/features/shiftclick.png",title:"Shift click configuration",description:"Allows you to change/set shift click actions on items.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click"},{image:"/img/features/statusbars.png",title:"Status Bars",description:"Shows health and prayer bars next to the inventory.",link:"https://github.com/runelite/runelite/wiki/Status-Bars"},{image:"/img/features/boosts.png",title:"Status widgets",description:"Shows boost timers, enemy HP, and other useful overlays.",home:!0},{image:"/img/features/stretchedfixed.png",title:"Stretched mode",description:"Stretches the game to the size of your window.",link:"https://github.com/runelite/runelite/wiki/Stretched-Mode"},{image:"/img/features/teamcapes.png",title:"Team cape overlay",description:"Displays team cape wearer counts.",link:"https://github.com/runelite/runelite/wiki/Team-Capes"},{image:"/img/features/tearsofguthix.png",title:"Tears of Guthix",description:"Displays the remaining time for streams of tears.",link:"https://github.com/runelite/runelite/wiki/Tears-Of-Guthix"},{image:"/img/features/tileindicators.png",title:"Tile indicator",description:"Marks the tile you last clicked on.",link:"https://github.com/runelite/runelite/wiki/Tile-Indicators"},{image:"/img/features/tithefarm.png",title:"Tithe Farm",description:"Displays timers for the farming patches within the Tithe farm minigame.",link:"https://github.com/runelite/runelite/wiki/Tithe-Farm"},{image:"/img/features/wcing.png",title:"Woodcutting",description:"Displays information about the logs you are cutting.",link:"https://github.com/runelite/runelite/wiki/Woodcutting"},{image:"/img/features/xpglobes.png",title:"XP globes",description:"Displays skill globes when you gain XP, with more detailed stats on hover.",link:"https://github.com/runelite/runelite/wiki/XP-Globes"},{image:"/img/features/xptracker.png",title:"XP Tracker",description:"Side panel displaying xp data for each skill you have trained.",link:"https://github.com/runelite/runelite/wiki/XP-Tracker"},{image:"/img/features/zoom.png",title:"Zoom unlimiter",description:"Allows you to zoom past the default camera distance limits.",link:"https://github.com/runelite/runelite/wiki/Camera"}]},451:function(e,i,t){"use strict";t.r(i);var n=t(0),r=t(126),s=t(289),a=t(290),o=t(7),l=t.n(o),u=t(46);i.default=()=>Object(n.g)(r.a,null,Object(n.g)(u.a,{title:"Features - "+l.a.title,description:"RuneLite plugins and features"}),Object(n.g)("section",{id:"features"},Object(n.g)("div",{class:"content-section"},Object(n.g)("h1",{class:"page-header"},"Features"),Object(n.g)("div",{class:"row"},a.a.map(e=>Object(n.g)(s.a,Object.assign({key:e.title,linkAlt:"View on Wiki"},e)))))))}}]);
+//# sourceMappingURL=12.e3e38a02.chunk.js.map
\ No newline at end of file
diff --git a/static/js/12.145525e3.chunk.js.map b/static/js/12.e3e38a02.chunk.js.map
similarity index 99%
rename from static/js/12.145525e3.chunk.js.map
rename to static/js/12.e3e38a02.chunk.js.map
index ba4a4f225..00ec328f7 100644
--- a/static/js/12.145525e3.chunk.js.map
+++ b/static/js/12.e3e38a02.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/feature.js","_data/features.js","routes/features.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Feature","image","title","description","link","linkAlt","alt","src","fetchpriority","home","Features","Meta","hero","features","map","feature","key"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,kBAuBec,IApBCR,IAAA,IAAC,MAAES,EAAK,MAAEC,EAAK,YAAEC,EAAW,KAAEC,EAAI,QAAEC,GAASb,EAAA,OAC3DL,YAAA,OAAKE,MAAM,sDACTF,YAAA,OAAKE,MAAM,QACTF,YAAA,OAAKE,MAAM,eAAeiB,IAAKJ,EAAOK,IAAKN,EAAOO,cAAc,QAChErB,YAAA,OAAKE,MAAM,aACTF,YAAA,MAAIE,MAAM,cACPe,EACCjB,YAAA,KAAGG,KAAMc,EAAME,IAAKD,GACjBH,GAGHA,GAGJf,YAAA,KAAGE,MAAM,aAAac,Q,iCCjBf,KACb,CACEF,MAAO,mCACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,4DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YACE,wFACFC,KAAM,qDAER,CACEH,MAAO,4BACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,iCACPC,MAAO,eACPC,YAAa,yDACbC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,iBACPC,YACE,gEACFC,KAAM,kDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,4DACbC,KAAM,uDAER,CACEH,MAAO,4BACPC,MAAO,gBACPC,YACE,mFACFC,KAAM,uDAER,CACEH,MAAO,gCACPC,MAAO,oBACPC,YAAa,yDACbC,KAAM,+DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,0DACbC,KAAM,8DAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,4EACFC,KAAM,2DAER,CACEH,MAAO,+BACPC,MAAO,mBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,0BACPC,YACE,kEACFC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,2FACFC,KAAM,wDAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,oFACFC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,gDACbC,KAAM,uDAER,CACEH,MAAO,+BACPC,MAAO,qBACPC,YACE,uEACFC,KAAM,yDAER,CACEH,MAAO,oCACPC,MAAO,0BACPC,YACE,sEACFC,KACE,8EAEJ,CACEH,MAAO,0BACPC,MAAO,wBACPC,YACE,mEACFC,KAAM,kEAER,CACEH,MAAO,4BACPC,MAAO,sBACPC,YACE,sHACFC,KAAM,oDACNK,MAAM,GAER,CACER,MAAO,2BACPC,MAAO,oBACPC,YACE,0FACFC,KAAM,oDAER,CACEH,MAAO,oCACPC,MAAO,oBACPC,YAAa,wDACbC,KAAM,yDAER,CACEH,MAAO,mCACPC,MAAO,kBACPC,YAAa,+DACbC,KAAM,2DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,qDACbC,KAAM,qDAER,CACEH,MAAO,wBACPC,MAAO,MACPC,YACE,uHACFC,KAAM,gDACNK,MAAM,GAER,CACER,MAAO,6BACPC,MAAO,wBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,uBACPC,MAAO,wBACPC,YAAa,4CACbC,KAAM,4DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,wEACFC,KAAM,0DAER,CACEH,MAAO,8BACPC,MAAO,YACPC,YACE,qEACFC,KAAM,uDAER,CACEH,MAAO,2BACPC,MAAO,SACPC,YAAa,+BACbC,KAAM,oDAER,CACEH,MAAO,yBACPC,MAAO,qBACPC,YACE,gEACFC,KAAM,2DAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YAAa,2DACbC,KAAM,sDAER,CACEH,MAAO,kCACPC,MAAO,iBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,oCACPC,MAAO,mBACPC,YAAa,iDACbC,KAAM,8DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,sDACbC,KAAM,wDAER,CACEH,MAAO,mCACPC,MAAO,oBACPC,YAAa,0DACbC,KAAM,0DAER,CACEH,MAAO,mCACPC,MAAO,0BACPC,YAAa,gDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,iEACFC,KAAM,yDACNK,MAAM,GAER,CACER,MAAO,8BACPC,MAAO,kBACPC,YACE,kEACFC,KAAM,wDAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,+CACbC,KAAM,iEAER,CACEH,MAAO,6BACPC,MAAO,sBACPC,YAAa,mDACbC,KAAM,gEAER,CACEH,MAAO,gCACPC,MAAO,yBACPC,YAAa,wCACbC,KAAM,qDAER,CACEH,MAAO,0BACPC,MAAO,oBACPC,YACE,0EACFC,KAAM,oEAER,CACEH,MAAO,wBACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,6DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,kGACFC,KAAM,uDAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YACE,0EACFC,KAAM,4DAER,CACEH,MAAO,2BACPC,MAAO,cACPC,YAAa,kCACbC,KAAM,4DAER,CACEH,MAAO,iCACPC,MAAO,QACPC,YACE,qHACFC,KAAM,mDAER,CACEH,MAAO,qCACPC,MAAO,oBACPC,YACE,gEACFC,KAAM,+DAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,sDACbC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,uDACbC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,qEACFC,KAAM,+DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,mEACFC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,cACPC,YAAa,4DACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,YACPC,YAAa,2DACbC,KAAM,uDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,qDACbC,KAAM,wDAER,CACEH,MAAO,+BACPC,MAAO,4BACPC,YAAa,yDACbC,KACE,yFAEJ,CACEH,MAAO,+BACPC,MAAO,cACPC,YAAa,sDACbC,KAAM,yDAER,CACEH,MAAO,2BACPC,MAAO,iBACPC,YAAa,2DACbM,MAAM,GAER,CACER,MAAO,mCACPC,MAAO,iBACPC,YAAa,iDACbC,KAAM,4DAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,oCACbC,KAAM,wDAER,CACEH,MAAO,kCACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,mCACPC,MAAO,iBACPC,YAAa,sCACbC,KAAM,6DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,0EACFC,KAAM,wDAER,CACEH,MAAO,0BACPC,MAAO,cACPC,YAAa,uDACbC,KAAM,yDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,6EACFC,KAAM,uDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,iEACFC,KAAM,wDAER,CACEH,MAAO,yBACPC,MAAO,iBACPC,YAAa,8DACbC,KAAM,sD,iCCxbV,qEA2BeM,UApBEA,IACfvB,YAACI,IAAM,KACLJ,YAACwB,IAAI,CACHT,MAAQ,cAAaU,IAAKV,MAC1BC,YAAY,kCAGdhB,YAAA,WAASC,GAAG,YACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,YACxBF,YAAA,OAAKE,MAAM,OACRwB,IAASC,IAAIC,GACZ5B,YAACa,IAAOF,OAAAC,OAAA,CAACiB,IAAKD,EAAQb,MAAOG,QAAQ,gBAAmBU","file":"static/js/12.145525e3.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n \n
\n
\n
\n
\n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n
{description}
\n
\n
\n
\n)\n\nexport default Feature\n","export default [\n {\n image: '/img/features/mousehighlight.png',\n title: 'Action tooltips',\n description: 'Displays tooltips for actions under your mouse cursor.',\n link: 'https://github.com/runelite/runelite/wiki/Mouse-Tooltips'\n },\n {\n image: '/img/features/agility.png',\n title: 'Agility',\n description:\n 'Displays clickboxes for agility courses, and counts the number of laps you have done.',\n link: 'https://github.com/runelite/runelite/wiki/Agility'\n },\n {\n image: '/img/features/kourend.png',\n title: 'Arceuus Library',\n description: 'Shows you where books are in the Arceuus Library.',\n link: 'https://github.com/runelite/runelite/wiki/Kourend-Library'\n },\n {\n image: '/img/features/attackstyles.png',\n title: 'Attack style',\n description: 'Indicates your attack style and hides unwanted styles.',\n link: 'https://github.com/runelite/runelite/wiki/Attack-Styles'\n },\n {\n image: '/img/features/bankeval.png',\n title: 'Bank evaluator',\n description:\n \"Displays your bank's total value based on GE and alch prices.\",\n link: 'https://github.com/runelite/runelite/wiki/Bank'\n },\n {\n image: '/img/features/banktags.png',\n title: 'Bank tags',\n description: 'Allows you to set searchable tags on items for your bank.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/tagtabs.png',\n title: 'Bank Tag Tabs',\n description:\n 'A tab on the left side of the bank to auto search the assigned tag when clicked.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/barbassault.png',\n title: 'Barbarian Assault',\n description: 'Displays a timer for the next change of horn commands.',\n link: 'https://github.com/runelite/runelite/wiki/Barbarian-Assault'\n },\n {\n image: '/img/features/barrows.png',\n title: 'Barrows',\n description: 'Marks the location of brothers and shows puzzle answers',\n link: 'https://github.com/runelite/runelite/wiki/Barrows-Brothers'\n },\n {\n image: '/img/features/blastfurnace.png',\n title: 'Blast Furnace',\n description:\n 'Shows your current bars/ores and marks the clickbox of the conveyor belt.',\n link: 'https://github.com/runelite/runelite/wiki/Blast-Furnace'\n },\n {\n image: '/img/features/birdhouses.png',\n title: 'Birdhouse Timers',\n description: 'Displays birdhouses and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/cannontiles.png',\n title: 'Cannon double hit spots',\n description:\n 'Shows you where to position enemies for double cannonball hits.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/chatcolor.png',\n title: 'Chat Color',\n description:\n 'Configures chat colors for each type of message in transparent and non transparent chat.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Color'\n },\n {\n image: '/img/features/chatcommands.png',\n title: 'Chat commands',\n description:\n 'Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Commands'\n },\n {\n image: '/img/features/clanchat.png',\n title: 'Clan chat',\n description: \"Adds the sender's rank to clan chat messages.\",\n link: 'https://github.com/runelite/runelite/wiki/Clan-Chat'\n },\n {\n image: '/img/features/cluescroll.png',\n title: 'Clue scroll helper',\n description:\n 'Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.',\n link: 'https://github.com/runelite/runelite/wiki/Clue-Scroll'\n },\n {\n image: '/img/features/moveableoverlay.png',\n title: 'Custom overlay position',\n description:\n 'Allows you to move RuneLite overlays to any position on the screen.',\n link:\n 'https://github.com/runelite/runelite/wiki/General-Features#moving-overlays'\n },\n {\n image: '/img/features/daily.png',\n title: 'Daily task indicators',\n description:\n 'Notifies you on login what daily tasks you are able to complete.',\n link: 'https://github.com/runelite/runelite/wiki/Daily-Task-Indicator'\n },\n {\n image: '/img/features/discord.png',\n title: 'Discord integration',\n description:\n \"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties\",\n link: 'https://github.com/runelite/runelite/wiki/Discord',\n home: true\n },\n {\n image: '/img/features/cannon.png',\n title: 'Dwarf multicannon',\n description:\n 'Displays the number of cannonballs left in your cannon, along with common cannon spots.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/fairyringsearch.png',\n title: 'Fairy Ring Filter',\n description: 'Allows you to filter the fairy ring destination menu.',\n link: 'https://github.com/runelite/runelite/wiki/Fairy-Rings'\n },\n {\n image: '/img/features/farmingtracker.png',\n title: 'Farming Tracker',\n description: 'Displays current farming patches and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/fishing.png',\n title: 'Fishing',\n description: 'Highlights fishing spots and tracks fishing stats.',\n link: 'https://github.com/runelite/runelite/wiki/Fishing'\n },\n {\n image: '/img/features/gpu.png',\n title: 'GPU',\n description:\n 'Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.',\n link: 'https://github.com/runelite/runelite/wiki/GPU',\n home: true\n },\n {\n image: '/img/features/gesearch.png',\n title: 'Grand Exchange lookup',\n description: 'Quickly price-check any item on the Grand Exchange.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/ge.png',\n title: 'Grand Exchange offers',\n description: 'Lists your current Grand Exchange offers.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/grounditems.png',\n title: 'Ground items',\n description:\n 'Hides, highlights, and adds filterable price colors to dropped items.',\n link: 'https://github.com/runelite/runelite/wiki/Ground-Items'\n },\n {\n image: '/img/features/herbiboar.png',\n title: 'Herbiboar',\n description:\n 'Highlights the path and objects to search at the end of the trail.',\n link: 'https://github.com/runelite/runelite/wiki/Herbiboar'\n },\n {\n image: '/img/features/hunter.png',\n title: 'Hunter',\n description: 'Adds timers to hunter traps.',\n link: 'https://github.com/runelite/runelite/wiki/Hunter'\n },\n {\n image: '/img/features/idle.png',\n title: 'Idle notifications',\n description:\n 'Sends system tray alerts when idle or about to be logged out.',\n link: 'https://github.com/runelite/runelite/wiki/Idle-Notifier'\n },\n {\n image: '/img/features/imp.png',\n title: 'Impling finder',\n description: 'Highlights nearby implings on the minimap and on-screen.',\n link: 'https://github.com/runelite/runelite/wiki/Implings'\n },\n {\n image: '/img/features/inventorytags.png',\n title: 'Inventory Tags',\n description: 'Allows you to assign group tags to inventory items.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Tags'\n },\n {\n image: '/img/features/inventoryviewer.png',\n title: 'Inventory Viewer',\n description: 'Displays an overlay of your current inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Viewer'\n },\n {\n image: '/img/features/itemstats.png',\n title: 'Item stats',\n description: 'Displays information about food and potion effects.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Stats'\n },\n {\n image: '/img/features/jewellerycount.png',\n title: 'Jewellery charges',\n description: 'Displays the number of charges that your jewellery has.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Charges'\n },\n {\n image: '/img/features/lightboxsolver.png',\n title: 'Light Box Puzzle Solver',\n description: 'Solves light box puzzles during clue scrolls.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/loottracker.png',\n title: 'Loot Tracker',\n description:\n 'Shows kill count and drops with prices from monsters you kill.',\n link: 'https://github.com/runelite/runelite/wiki/Loot-Tracker',\n home: true\n },\n {\n image: '/img/features/lowdetail.png',\n title: 'Low detail mode',\n description:\n \"Enables low detail mode, removing some of the game's eye candy.\",\n link: 'https://github.com/runelite/runelite/wiki/Low-Detail'\n },\n {\n image: '/img/features/mta.png',\n title: 'Mage Training Arena',\n description: 'Overlays to assist in each of the MTA rooms.',\n link: 'https://github.com/runelite/runelite/wiki/Mage-Training-Arena'\n },\n {\n image: '/img/features/menuswap.png',\n title: 'Menu entry swapping',\n description: 'Swaps the left-click actions of certain objects.',\n link: 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper'\n },\n {\n image: '/img/features/minimapdots.png',\n title: 'Minimap dot customizer',\n description: 'Customizes the color of minimap dots.',\n link: 'https://github.com/runelite/runelite/wiki/Minimap'\n },\n {\n image: '/img/features/favor.png',\n title: 'Miscellania favor',\n description:\n 'Displays your current favor and treasury in the Kingdom of Miscellania.',\n link: 'https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania'\n },\n {\n image: '/img/features/mlm.png',\n title: 'Motherlode Mine',\n description: 'Marks veins and rock obstacles in the Motherlode Mine.',\n link: 'https://github.com/runelite/runelite/wiki/Motherlode-Mine'\n },\n {\n image: '/img/features/newsfeed.png',\n title: 'News feed',\n description:\n 'Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.',\n link: 'https://github.com/runelite/runelite/wiki/News-Feed'\n },\n {\n image: '/img/features/nmz.png',\n title: 'Nightmare Zone',\n description:\n 'Displays NMZ points/absorption and notifies you about expiring potions.',\n link: 'https://github.com/runelite/runelite/wiki/Nightmare-Zone'\n },\n {\n image: '/img/features/npctag.png',\n title: 'NPC tagging',\n description: 'Tags and keeps track of an NPC.',\n link: 'https://github.com/runelite/runelite/wiki/NPC-Indicators'\n },\n {\n image: '/img/features/discordparty.png',\n title: 'Party',\n description:\n \"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location\",\n link: 'https://github.com/runelite/runelite/wiki/Party'\n },\n {\n image: '/img/features/playerindicators.png',\n title: 'Player indicators',\n description:\n 'Draws the names of friends, clan mates and yourself overhead.',\n link: 'https://github.com/runelite/runelite/wiki/Player-Indicators'\n },\n {\n image: '/img/features/poh.png',\n title: 'Player-owned houses',\n description: 'Displays minimap icons and marks unlit/lit burners.',\n link: 'https://github.com/runelite/runelite/wiki/Player-owned-House'\n },\n {\n image: '/img/features/prayerbar.png',\n title: 'Prayer Bar',\n description: 'Displays a prayer bar underneath your hitpoints bar.',\n link: 'https://github.com/runelite/runelite/wiki/Prayer'\n },\n {\n image: '/img/features/puzzlebox.png',\n title: 'Puzzle box solver',\n description: 'Shows you where to click to solve puzzle boxes.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/raids.png',\n title: 'Raid scouter',\n description:\n 'Displays the current layout of raids and tracks the raid duration.',\n link: 'https://github.com/runelite/runelite/wiki/Chambers-of-Xeric'\n },\n {\n image: '/img/features/regen.png',\n title: 'Regen timers',\n description:\n 'Tracks and displays the hitpoints & special attack regen timers.',\n link: 'https://github.com/runelite/runelite/wiki/Regeneration-Meter'\n },\n {\n image: '/img/features/roguesden.png',\n title: \"Rogues' Den\",\n description: 'Marks tiles and clickboxes to help you traverse the maze.',\n link: 'https://github.com/runelite/runelite/wiki/Rogues%27-Den'\n },\n {\n image: '/img/features/abyss.png',\n title: 'Runecraft',\n description: 'Displays minimap icons and clickboxes for abyssal rifts.',\n link: 'https://github.com/runelite/runelite/wiki/Runecraft'\n },\n {\n image: '/img/features/runepouch.png',\n title: 'Rune pouch',\n description: 'Shows what runes are currently in your rune pouch.',\n link: 'https://github.com/runelite/runelite/wiki/Rune-Pouch'\n },\n {\n image: '/img/features/shiftclick.png',\n title: 'Shift click configuration',\n description: 'Allows you to change/set shift click actions on items.',\n link:\n 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click'\n },\n {\n image: '/img/features/statusbars.png',\n title: 'Status Bars',\n description: 'Shows health and prayer bars next to the inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Status-Bars'\n },\n {\n image: '/img/features/boosts.png',\n title: 'Status widgets',\n description: 'Shows boost timers, enemy HP, and other useful overlays.',\n home: true\n },\n {\n image: '/img/features/stretchedfixed.png',\n title: 'Stretched mode',\n description: 'Stretches the game to the size of your window.',\n link: 'https://github.com/runelite/runelite/wiki/Stretched-Mode'\n },\n {\n image: '/img/features/teamcapes.png',\n title: 'Team cape overlay',\n description: 'Displays team cape wearer counts.',\n link: 'https://github.com/runelite/runelite/wiki/Team-Capes'\n },\n {\n image: '/img/features/tearsofguthix.png',\n title: 'Tears of Guthix',\n description: 'Displays the remaining time for streams of tears.',\n link: 'https://github.com/runelite/runelite/wiki/Tears-Of-Guthix'\n },\n {\n image: '/img/features/tileindicators.png',\n title: 'Tile indicator',\n description: 'Marks the tile you last clicked on.',\n link: 'https://github.com/runelite/runelite/wiki/Tile-Indicators'\n },\n {\n image: '/img/features/tithefarm.png',\n title: 'Tithe Farm',\n description:\n 'Displays timers for the farming patches within the Tithe farm minigame.',\n link: 'https://github.com/runelite/runelite/wiki/Tithe-Farm'\n },\n {\n image: '/img/features/wcing.png',\n title: 'Woodcutting',\n description: 'Displays information about the logs you are cutting.',\n link: 'https://github.com/runelite/runelite/wiki/Woodcutting'\n },\n {\n image: '/img/features/xpglobes.png',\n title: 'XP globes',\n description:\n 'Displays skill globes when you gain XP, with more detailed stats on hover.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Globes'\n },\n {\n image: '/img/features/xptracker.png',\n title: 'XP Tracker',\n description:\n 'Side panel displaying xp data for each skill you have trained.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Tracker'\n },\n {\n image: '/img/features/zoom.png',\n title: 'Zoom unlimiter',\n description: 'Allows you to zoom past the default camera distance limits.',\n link: 'https://github.com/runelite/runelite/wiki/Camera'\n }\n]\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport Feature from '../components/feature'\nimport features from '../_data/features'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst Features = () => (\n \n \n\n \n \n \n
\n {features.map(feature => (\n \n ))}\n
\n
\n \n \n)\n\nexport default Features\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/feature.js","_data/features.js","routes/features.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Feature","image","title","description","link","linkAlt","alt","src","fetchpriority","home","Features","Meta","hero","features","map","feature","key"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,kBAuBec,IApBCR,IAAA,IAAC,MAAES,EAAK,MAAEC,EAAK,YAAEC,EAAW,KAAEC,EAAI,QAAEC,GAASb,EAAA,OAC3DL,YAAA,OAAKE,MAAM,sDACTF,YAAA,OAAKE,MAAM,QACTF,YAAA,OAAKE,MAAM,eAAeiB,IAAKJ,EAAOK,IAAKN,EAAOO,cAAc,QAChErB,YAAA,OAAKE,MAAM,aACTF,YAAA,MAAIE,MAAM,cACPe,EACCjB,YAAA,KAAGG,KAAMc,EAAME,IAAKD,GACjBH,GAGHA,GAGJf,YAAA,KAAGE,MAAM,aAAac,Q,iCCjBf,KACb,CACEF,MAAO,mCACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,4DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YACE,wFACFC,KAAM,qDAER,CACEH,MAAO,4BACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,iCACPC,MAAO,eACPC,YAAa,yDACbC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,iBACPC,YACE,gEACFC,KAAM,kDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,4DACbC,KAAM,uDAER,CACEH,MAAO,4BACPC,MAAO,gBACPC,YACE,mFACFC,KAAM,uDAER,CACEH,MAAO,gCACPC,MAAO,oBACPC,YAAa,yDACbC,KAAM,+DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,0DACbC,KAAM,8DAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,4EACFC,KAAM,2DAER,CACEH,MAAO,+BACPC,MAAO,mBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,0BACPC,YACE,kEACFC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,2FACFC,KAAM,wDAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,oFACFC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,gDACbC,KAAM,uDAER,CACEH,MAAO,+BACPC,MAAO,qBACPC,YACE,uEACFC,KAAM,yDAER,CACEH,MAAO,oCACPC,MAAO,0BACPC,YACE,sEACFC,KACE,8EAEJ,CACEH,MAAO,0BACPC,MAAO,wBACPC,YACE,mEACFC,KAAM,kEAER,CACEH,MAAO,4BACPC,MAAO,sBACPC,YACE,sHACFC,KAAM,oDACNK,MAAM,GAER,CACER,MAAO,2BACPC,MAAO,oBACPC,YACE,0FACFC,KAAM,oDAER,CACEH,MAAO,oCACPC,MAAO,oBACPC,YAAa,wDACbC,KAAM,yDAER,CACEH,MAAO,mCACPC,MAAO,kBACPC,YAAa,+DACbC,KAAM,2DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,qDACbC,KAAM,qDAER,CACEH,MAAO,wBACPC,MAAO,MACPC,YACE,uHACFC,KAAM,gDACNK,MAAM,GAER,CACER,MAAO,6BACPC,MAAO,wBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,uBACPC,MAAO,wBACPC,YAAa,4CACbC,KAAM,4DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,wEACFC,KAAM,0DAER,CACEH,MAAO,8BACPC,MAAO,YACPC,YACE,qEACFC,KAAM,uDAER,CACEH,MAAO,2BACPC,MAAO,SACPC,YAAa,+BACbC,KAAM,oDAER,CACEH,MAAO,yBACPC,MAAO,qBACPC,YACE,gEACFC,KAAM,2DAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YAAa,2DACbC,KAAM,sDAER,CACEH,MAAO,kCACPC,MAAO,iBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,oCACPC,MAAO,mBACPC,YAAa,iDACbC,KAAM,8DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,sDACbC,KAAM,wDAER,CACEH,MAAO,mCACPC,MAAO,oBACPC,YAAa,0DACbC,KAAM,0DAER,CACEH,MAAO,mCACPC,MAAO,0BACPC,YAAa,gDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,iEACFC,KAAM,yDACNK,MAAM,GAER,CACER,MAAO,8BACPC,MAAO,kBACPC,YACE,kEACFC,KAAM,wDAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,+CACbC,KAAM,iEAER,CACEH,MAAO,6BACPC,MAAO,sBACPC,YAAa,mDACbC,KAAM,gEAER,CACEH,MAAO,gCACPC,MAAO,yBACPC,YAAa,wCACbC,KAAM,qDAER,CACEH,MAAO,0BACPC,MAAO,oBACPC,YACE,0EACFC,KAAM,oEAER,CACEH,MAAO,wBACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,6DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,kGACFC,KAAM,uDAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YACE,0EACFC,KAAM,4DAER,CACEH,MAAO,2BACPC,MAAO,cACPC,YAAa,kCACbC,KAAM,4DAER,CACEH,MAAO,iCACPC,MAAO,QACPC,YACE,qHACFC,KAAM,mDAER,CACEH,MAAO,qCACPC,MAAO,oBACPC,YACE,gEACFC,KAAM,+DAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,sDACbC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,uDACbC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,qEACFC,KAAM,+DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,mEACFC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,cACPC,YAAa,4DACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,YACPC,YAAa,2DACbC,KAAM,uDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,qDACbC,KAAM,wDAER,CACEH,MAAO,+BACPC,MAAO,4BACPC,YAAa,yDACbC,KACE,yFAEJ,CACEH,MAAO,+BACPC,MAAO,cACPC,YAAa,sDACbC,KAAM,yDAER,CACEH,MAAO,2BACPC,MAAO,iBACPC,YAAa,2DACbM,MAAM,GAER,CACER,MAAO,mCACPC,MAAO,iBACPC,YAAa,iDACbC,KAAM,4DAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,oCACbC,KAAM,wDAER,CACEH,MAAO,kCACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,mCACPC,MAAO,iBACPC,YAAa,sCACbC,KAAM,6DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,0EACFC,KAAM,wDAER,CACEH,MAAO,0BACPC,MAAO,cACPC,YAAa,uDACbC,KAAM,yDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,6EACFC,KAAM,uDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,iEACFC,KAAM,wDAER,CACEH,MAAO,yBACPC,MAAO,iBACPC,YAAa,8DACbC,KAAM,sD,iCCxbV,qEA2BeM,UApBEA,IACfvB,YAACI,IAAM,KACLJ,YAACwB,IAAI,CACHT,MAAQ,cAAaU,IAAKV,MAC1BC,YAAY,kCAGdhB,YAAA,WAASC,GAAG,YACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,YACxBF,YAAA,OAAKE,MAAM,OACRwB,IAASC,IAAIC,GACZ5B,YAACa,IAAOF,OAAAC,OAAA,CAACiB,IAAKD,EAAQb,MAAOG,QAAQ,gBAAmBU","file":"static/js/12.e3e38a02.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n \n
\n
\n
\n
\n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n
{description}
\n
\n
\n
\n)\n\nexport default Feature\n","export default [\n {\n image: '/img/features/mousehighlight.png',\n title: 'Action tooltips',\n description: 'Displays tooltips for actions under your mouse cursor.',\n link: 'https://github.com/runelite/runelite/wiki/Mouse-Tooltips'\n },\n {\n image: '/img/features/agility.png',\n title: 'Agility',\n description:\n 'Displays clickboxes for agility courses, and counts the number of laps you have done.',\n link: 'https://github.com/runelite/runelite/wiki/Agility'\n },\n {\n image: '/img/features/kourend.png',\n title: 'Arceuus Library',\n description: 'Shows you where books are in the Arceuus Library.',\n link: 'https://github.com/runelite/runelite/wiki/Kourend-Library'\n },\n {\n image: '/img/features/attackstyles.png',\n title: 'Attack style',\n description: 'Indicates your attack style and hides unwanted styles.',\n link: 'https://github.com/runelite/runelite/wiki/Attack-Styles'\n },\n {\n image: '/img/features/bankeval.png',\n title: 'Bank evaluator',\n description:\n \"Displays your bank's total value based on GE and alch prices.\",\n link: 'https://github.com/runelite/runelite/wiki/Bank'\n },\n {\n image: '/img/features/banktags.png',\n title: 'Bank tags',\n description: 'Allows you to set searchable tags on items for your bank.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/tagtabs.png',\n title: 'Bank Tag Tabs',\n description:\n 'A tab on the left side of the bank to auto search the assigned tag when clicked.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/barbassault.png',\n title: 'Barbarian Assault',\n description: 'Displays a timer for the next change of horn commands.',\n link: 'https://github.com/runelite/runelite/wiki/Barbarian-Assault'\n },\n {\n image: '/img/features/barrows.png',\n title: 'Barrows',\n description: 'Marks the location of brothers and shows puzzle answers',\n link: 'https://github.com/runelite/runelite/wiki/Barrows-Brothers'\n },\n {\n image: '/img/features/blastfurnace.png',\n title: 'Blast Furnace',\n description:\n 'Shows your current bars/ores and marks the clickbox of the conveyor belt.',\n link: 'https://github.com/runelite/runelite/wiki/Blast-Furnace'\n },\n {\n image: '/img/features/birdhouses.png',\n title: 'Birdhouse Timers',\n description: 'Displays birdhouses and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/cannontiles.png',\n title: 'Cannon double hit spots',\n description:\n 'Shows you where to position enemies for double cannonball hits.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/chatcolor.png',\n title: 'Chat Color',\n description:\n 'Configures chat colors for each type of message in transparent and non transparent chat.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Color'\n },\n {\n image: '/img/features/chatcommands.png',\n title: 'Chat commands',\n description:\n 'Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Commands'\n },\n {\n image: '/img/features/clanchat.png',\n title: 'Clan chat',\n description: \"Adds the sender's rank to clan chat messages.\",\n link: 'https://github.com/runelite/runelite/wiki/Clan-Chat'\n },\n {\n image: '/img/features/cluescroll.png',\n title: 'Clue scroll helper',\n description:\n 'Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.',\n link: 'https://github.com/runelite/runelite/wiki/Clue-Scroll'\n },\n {\n image: '/img/features/moveableoverlay.png',\n title: 'Custom overlay position',\n description:\n 'Allows you to move RuneLite overlays to any position on the screen.',\n link:\n 'https://github.com/runelite/runelite/wiki/General-Features#moving-overlays'\n },\n {\n image: '/img/features/daily.png',\n title: 'Daily task indicators',\n description:\n 'Notifies you on login what daily tasks you are able to complete.',\n link: 'https://github.com/runelite/runelite/wiki/Daily-Task-Indicator'\n },\n {\n image: '/img/features/discord.png',\n title: 'Discord integration',\n description:\n \"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties\",\n link: 'https://github.com/runelite/runelite/wiki/Discord',\n home: true\n },\n {\n image: '/img/features/cannon.png',\n title: 'Dwarf multicannon',\n description:\n 'Displays the number of cannonballs left in your cannon, along with common cannon spots.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/fairyringsearch.png',\n title: 'Fairy Ring Filter',\n description: 'Allows you to filter the fairy ring destination menu.',\n link: 'https://github.com/runelite/runelite/wiki/Fairy-Rings'\n },\n {\n image: '/img/features/farmingtracker.png',\n title: 'Farming Tracker',\n description: 'Displays current farming patches and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/fishing.png',\n title: 'Fishing',\n description: 'Highlights fishing spots and tracks fishing stats.',\n link: 'https://github.com/runelite/runelite/wiki/Fishing'\n },\n {\n image: '/img/features/gpu.png',\n title: 'GPU',\n description:\n 'Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.',\n link: 'https://github.com/runelite/runelite/wiki/GPU',\n home: true\n },\n {\n image: '/img/features/gesearch.png',\n title: 'Grand Exchange lookup',\n description: 'Quickly price-check any item on the Grand Exchange.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/ge.png',\n title: 'Grand Exchange offers',\n description: 'Lists your current Grand Exchange offers.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/grounditems.png',\n title: 'Ground items',\n description:\n 'Hides, highlights, and adds filterable price colors to dropped items.',\n link: 'https://github.com/runelite/runelite/wiki/Ground-Items'\n },\n {\n image: '/img/features/herbiboar.png',\n title: 'Herbiboar',\n description:\n 'Highlights the path and objects to search at the end of the trail.',\n link: 'https://github.com/runelite/runelite/wiki/Herbiboar'\n },\n {\n image: '/img/features/hunter.png',\n title: 'Hunter',\n description: 'Adds timers to hunter traps.',\n link: 'https://github.com/runelite/runelite/wiki/Hunter'\n },\n {\n image: '/img/features/idle.png',\n title: 'Idle notifications',\n description:\n 'Sends system tray alerts when idle or about to be logged out.',\n link: 'https://github.com/runelite/runelite/wiki/Idle-Notifier'\n },\n {\n image: '/img/features/imp.png',\n title: 'Impling finder',\n description: 'Highlights nearby implings on the minimap and on-screen.',\n link: 'https://github.com/runelite/runelite/wiki/Implings'\n },\n {\n image: '/img/features/inventorytags.png',\n title: 'Inventory Tags',\n description: 'Allows you to assign group tags to inventory items.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Tags'\n },\n {\n image: '/img/features/inventoryviewer.png',\n title: 'Inventory Viewer',\n description: 'Displays an overlay of your current inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Viewer'\n },\n {\n image: '/img/features/itemstats.png',\n title: 'Item stats',\n description: 'Displays information about food and potion effects.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Stats'\n },\n {\n image: '/img/features/jewellerycount.png',\n title: 'Jewellery charges',\n description: 'Displays the number of charges that your jewellery has.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Charges'\n },\n {\n image: '/img/features/lightboxsolver.png',\n title: 'Light Box Puzzle Solver',\n description: 'Solves light box puzzles during clue scrolls.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/loottracker.png',\n title: 'Loot Tracker',\n description:\n 'Shows kill count and drops with prices from monsters you kill.',\n link: 'https://github.com/runelite/runelite/wiki/Loot-Tracker',\n home: true\n },\n {\n image: '/img/features/lowdetail.png',\n title: 'Low detail mode',\n description:\n \"Enables low detail mode, removing some of the game's eye candy.\",\n link: 'https://github.com/runelite/runelite/wiki/Low-Detail'\n },\n {\n image: '/img/features/mta.png',\n title: 'Mage Training Arena',\n description: 'Overlays to assist in each of the MTA rooms.',\n link: 'https://github.com/runelite/runelite/wiki/Mage-Training-Arena'\n },\n {\n image: '/img/features/menuswap.png',\n title: 'Menu entry swapping',\n description: 'Swaps the left-click actions of certain objects.',\n link: 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper'\n },\n {\n image: '/img/features/minimapdots.png',\n title: 'Minimap dot customizer',\n description: 'Customizes the color of minimap dots.',\n link: 'https://github.com/runelite/runelite/wiki/Minimap'\n },\n {\n image: '/img/features/favor.png',\n title: 'Miscellania favor',\n description:\n 'Displays your current favor and treasury in the Kingdom of Miscellania.',\n link: 'https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania'\n },\n {\n image: '/img/features/mlm.png',\n title: 'Motherlode Mine',\n description: 'Marks veins and rock obstacles in the Motherlode Mine.',\n link: 'https://github.com/runelite/runelite/wiki/Motherlode-Mine'\n },\n {\n image: '/img/features/newsfeed.png',\n title: 'News feed',\n description:\n 'Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.',\n link: 'https://github.com/runelite/runelite/wiki/News-Feed'\n },\n {\n image: '/img/features/nmz.png',\n title: 'Nightmare Zone',\n description:\n 'Displays NMZ points/absorption and notifies you about expiring potions.',\n link: 'https://github.com/runelite/runelite/wiki/Nightmare-Zone'\n },\n {\n image: '/img/features/npctag.png',\n title: 'NPC tagging',\n description: 'Tags and keeps track of an NPC.',\n link: 'https://github.com/runelite/runelite/wiki/NPC-Indicators'\n },\n {\n image: '/img/features/discordparty.png',\n title: 'Party',\n description:\n \"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location\",\n link: 'https://github.com/runelite/runelite/wiki/Party'\n },\n {\n image: '/img/features/playerindicators.png',\n title: 'Player indicators',\n description:\n 'Draws the names of friends, clan mates and yourself overhead.',\n link: 'https://github.com/runelite/runelite/wiki/Player-Indicators'\n },\n {\n image: '/img/features/poh.png',\n title: 'Player-owned houses',\n description: 'Displays minimap icons and marks unlit/lit burners.',\n link: 'https://github.com/runelite/runelite/wiki/Player-owned-House'\n },\n {\n image: '/img/features/prayerbar.png',\n title: 'Prayer Bar',\n description: 'Displays a prayer bar underneath your hitpoints bar.',\n link: 'https://github.com/runelite/runelite/wiki/Prayer'\n },\n {\n image: '/img/features/puzzlebox.png',\n title: 'Puzzle box solver',\n description: 'Shows you where to click to solve puzzle boxes.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/raids.png',\n title: 'Raid scouter',\n description:\n 'Displays the current layout of raids and tracks the raid duration.',\n link: 'https://github.com/runelite/runelite/wiki/Chambers-of-Xeric'\n },\n {\n image: '/img/features/regen.png',\n title: 'Regen timers',\n description:\n 'Tracks and displays the hitpoints & special attack regen timers.',\n link: 'https://github.com/runelite/runelite/wiki/Regeneration-Meter'\n },\n {\n image: '/img/features/roguesden.png',\n title: \"Rogues' Den\",\n description: 'Marks tiles and clickboxes to help you traverse the maze.',\n link: 'https://github.com/runelite/runelite/wiki/Rogues%27-Den'\n },\n {\n image: '/img/features/abyss.png',\n title: 'Runecraft',\n description: 'Displays minimap icons and clickboxes for abyssal rifts.',\n link: 'https://github.com/runelite/runelite/wiki/Runecraft'\n },\n {\n image: '/img/features/runepouch.png',\n title: 'Rune pouch',\n description: 'Shows what runes are currently in your rune pouch.',\n link: 'https://github.com/runelite/runelite/wiki/Rune-Pouch'\n },\n {\n image: '/img/features/shiftclick.png',\n title: 'Shift click configuration',\n description: 'Allows you to change/set shift click actions on items.',\n link:\n 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click'\n },\n {\n image: '/img/features/statusbars.png',\n title: 'Status Bars',\n description: 'Shows health and prayer bars next to the inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Status-Bars'\n },\n {\n image: '/img/features/boosts.png',\n title: 'Status widgets',\n description: 'Shows boost timers, enemy HP, and other useful overlays.',\n home: true\n },\n {\n image: '/img/features/stretchedfixed.png',\n title: 'Stretched mode',\n description: 'Stretches the game to the size of your window.',\n link: 'https://github.com/runelite/runelite/wiki/Stretched-Mode'\n },\n {\n image: '/img/features/teamcapes.png',\n title: 'Team cape overlay',\n description: 'Displays team cape wearer counts.',\n link: 'https://github.com/runelite/runelite/wiki/Team-Capes'\n },\n {\n image: '/img/features/tearsofguthix.png',\n title: 'Tears of Guthix',\n description: 'Displays the remaining time for streams of tears.',\n link: 'https://github.com/runelite/runelite/wiki/Tears-Of-Guthix'\n },\n {\n image: '/img/features/tileindicators.png',\n title: 'Tile indicator',\n description: 'Marks the tile you last clicked on.',\n link: 'https://github.com/runelite/runelite/wiki/Tile-Indicators'\n },\n {\n image: '/img/features/tithefarm.png',\n title: 'Tithe Farm',\n description:\n 'Displays timers for the farming patches within the Tithe farm minigame.',\n link: 'https://github.com/runelite/runelite/wiki/Tithe-Farm'\n },\n {\n image: '/img/features/wcing.png',\n title: 'Woodcutting',\n description: 'Displays information about the logs you are cutting.',\n link: 'https://github.com/runelite/runelite/wiki/Woodcutting'\n },\n {\n image: '/img/features/xpglobes.png',\n title: 'XP globes',\n description:\n 'Displays skill globes when you gain XP, with more detailed stats on hover.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Globes'\n },\n {\n image: '/img/features/xptracker.png',\n title: 'XP Tracker',\n description:\n 'Side panel displaying xp data for each skill you have trained.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Tracker'\n },\n {\n image: '/img/features/zoom.png',\n title: 'Zoom unlimiter',\n description: 'Allows you to zoom past the default camera distance limits.',\n link: 'https://github.com/runelite/runelite/wiki/Camera'\n }\n]\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport Feature from '../components/feature'\nimport features from '../_data/features'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst Features = () => (\n \n \n\n \n \n \n
\n {features.map(feature => (\n \n ))}\n
\n
\n \n \n)\n\nexport default Features\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/120.680b5aa4.chunk.js b/static/js/120.93d4ded3.chunk.js
similarity index 97%
rename from static/js/120.680b5aa4.chunk.js
rename to static/js/120.93d4ded3.chunk.js
index b05a4782c..7bfdf0f9c 100644
--- a/static/js/120.680b5aa4.chunk.js
+++ b/static/js/120.93d4ded3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[120],{395:function(n,e){n.exports={title:"1.6.8 Release",description:"GE bank tag search, world map mining tooltips, and new UI scaling options",author:"Adam",body:'Bank tags can now be searched in the GE:
\n
\nThe world map now has tooltips for mining site locations which shows which rocks are there:
\n
\nThe blast furnace overlay now includes the time until the coffer runs out of GP:
\n
\nThe GPU plugin now includes additional UI scaling options which can result in clearer images on higher resolution displays.\nIf you were using the stretched mode plugin with the Increased performance mode
option and the GPU plugin,\nyou may want to change the GPU UI scaling option to Nearest
.
\nThe plugin hub has a new webpage which shows all of the plugins available on it.
\nThere are also several smaller improvements and bug fixes, including:
\n\nGE buy limits are now automatically pulled from the wiki \nThe item stats plugin can now show item stats when hovering items in the bank \nThe pensive emoji has been added to the emoji plugin (V_V
) \nItem price tooltips now work in the seed vault \nInventory tags now has 2 additional tag groups \nFix the loottrackker show/hide ignored loot button \nFix the always stack resizable stones interface styles option \nAdd bounty hunter (rogue) and LMS chat commands \nFix incorrectly hiding salamander attack styles with the attackstyles plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\nAdam (4):\n configmanager: harden against being killed mid-save\n Merge protocol and protocol-api into cache-client\n Use GE limits from item stats\n session: add logged-in tracking\n\nAlfred Ababio (1):\n skill calc: add long and curved bones to construction calc\n\nBen Dol (3):\n itemstats: Round item values for displaying\n itemstats: Add "Show Stats In Bank" option\n itemstats: Add "Always Show Base Stats" option\n\nDaniel (1):\n blast furnace: add coffer time remaining overlay\n\nDeliciousLunch55 (2):\n clue plugin: Improve Shilo Village elite coordinate clue hint\n xpdrop plugin: add \'prayer\' to tags\n\nEvan Walden (1):\n item prices: show tooltips in the seed vault\n\nHenry Darnell (1):\n emoji: add pensive emoji\n\nHydrox6 (1):\n slayer: fix boss task parsing to support Konar\n\nJames Carroll (1):\n Thread Desktop browse and open\n\nJeremy Plsek (1):\n plugin hub panel: add url to help tooltip and add missing space to warning\n\nJordan Atwood (5):\n ClueScrollPlugin: Reset clue on empty dev command\n clues: Don\'t return clue instances for empty text\n cluescroll plugin: Clear stale location clue hint arrows\n util: Create RSTimeUnit enum\n plugins: Use RSTimeUnit util where applicable\n\nKrysa (1):\n inventory tags: add 2 additional color groups\n\nMax Weber (2):\n PluginManager: try/catch Throwable all the plugin startup stuff\n loottracker: fix hide/show ignored items button\n\nRolf Don (1):\n skill calc: strip out non-digits characters\n\nRon Young (5):\n runelite-api: add GE search event and variables\n ItemVariations: add reverse mapping of variations\n banktags: add tag searching for ge search\n banktags: add tests\n LayoutResizableStones: fix bad script merge\n\nSander de Groot (1):\n chat commands: add Bounty Hunter, Bounty Hunter Rogue, and Last Man Standing commands\n\nSeth (1):\n clue plugin: update Trollweiss cryptic clue hint to include a sled\n\nTrevor (1):\n client: add notification fired event\n\ndekvall (4):\n attackstyles: fix salamander magic attacks\n inventorygrid: re-add a delay to showing the overlay\n worldmap: support multiline tooltips\n worldmap: add informative mining site tooltip\n\nkmutchnick (4):\n clue plugin: add new Slepe anagram clue\n skill calc: fix skill requirement for compost potions\n clue plugin: update solution text for deep wilderness dungeon cryptic clue\n clue plugin: add pet rock and rune thrownaxe to DK clue\n\nln (1):\n gpu: add UI bicubic & xBR rescaling\n\nseth (2):\n AgilityShortcut: update Arceuus essence agility shortcut coordinates\n QuestStartLocation: Update The forsaken tower/roving elves quest coordinates\n
\n',image:"/img/blog/1.6.8-Release/getags.png"}}}]);
-//# sourceMappingURL=120.680b5aa4.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[120],{396:function(n,e){n.exports={title:"1.6.8 Release",description:"GE bank tag search, world map mining tooltips, and new UI scaling options",author:"Adam",body:'Bank tags can now be searched in the GE:
\n
\nThe world map now has tooltips for mining site locations which shows which rocks are there:
\n
\nThe blast furnace overlay now includes the time until the coffer runs out of GP:
\n
\nThe GPU plugin now includes additional UI scaling options which can result in clearer images on higher resolution displays.\nIf you were using the stretched mode plugin with the Increased performance mode
option and the GPU plugin,\nyou may want to change the GPU UI scaling option to Nearest
.
\nThe plugin hub has a new webpage which shows all of the plugins available on it.
\nThere are also several smaller improvements and bug fixes, including:
\n\nGE buy limits are now automatically pulled from the wiki \nThe item stats plugin can now show item stats when hovering items in the bank \nThe pensive emoji has been added to the emoji plugin (V_V
) \nItem price tooltips now work in the seed vault \nInventory tags now has 2 additional tag groups \nFix the loottrackker show/hide ignored loot button \nFix the always stack resizable stones interface styles option \nAdd bounty hunter (rogue) and LMS chat commands \nFix incorrectly hiding salamander attack styles with the attackstyles plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\nAdam (4):\n configmanager: harden against being killed mid-save\n Merge protocol and protocol-api into cache-client\n Use GE limits from item stats\n session: add logged-in tracking\n\nAlfred Ababio (1):\n skill calc: add long and curved bones to construction calc\n\nBen Dol (3):\n itemstats: Round item values for displaying\n itemstats: Add "Show Stats In Bank" option\n itemstats: Add "Always Show Base Stats" option\n\nDaniel (1):\n blast furnace: add coffer time remaining overlay\n\nDeliciousLunch55 (2):\n clue plugin: Improve Shilo Village elite coordinate clue hint\n xpdrop plugin: add \'prayer\' to tags\n\nEvan Walden (1):\n item prices: show tooltips in the seed vault\n\nHenry Darnell (1):\n emoji: add pensive emoji\n\nHydrox6 (1):\n slayer: fix boss task parsing to support Konar\n\nJames Carroll (1):\n Thread Desktop browse and open\n\nJeremy Plsek (1):\n plugin hub panel: add url to help tooltip and add missing space to warning\n\nJordan Atwood (5):\n ClueScrollPlugin: Reset clue on empty dev command\n clues: Don\'t return clue instances for empty text\n cluescroll plugin: Clear stale location clue hint arrows\n util: Create RSTimeUnit enum\n plugins: Use RSTimeUnit util where applicable\n\nKrysa (1):\n inventory tags: add 2 additional color groups\n\nMax Weber (2):\n PluginManager: try/catch Throwable all the plugin startup stuff\n loottracker: fix hide/show ignored items button\n\nRolf Don (1):\n skill calc: strip out non-digits characters\n\nRon Young (5):\n runelite-api: add GE search event and variables\n ItemVariations: add reverse mapping of variations\n banktags: add tag searching for ge search\n banktags: add tests\n LayoutResizableStones: fix bad script merge\n\nSander de Groot (1):\n chat commands: add Bounty Hunter, Bounty Hunter Rogue, and Last Man Standing commands\n\nSeth (1):\n clue plugin: update Trollweiss cryptic clue hint to include a sled\n\nTrevor (1):\n client: add notification fired event\n\ndekvall (4):\n attackstyles: fix salamander magic attacks\n inventorygrid: re-add a delay to showing the overlay\n worldmap: support multiline tooltips\n worldmap: add informative mining site tooltip\n\nkmutchnick (4):\n clue plugin: add new Slepe anagram clue\n skill calc: fix skill requirement for compost potions\n clue plugin: update solution text for deep wilderness dungeon cryptic clue\n clue plugin: add pet rock and rune thrownaxe to DK clue\n\nln (1):\n gpu: add UI bicubic & xBR rescaling\n\nseth (2):\n AgilityShortcut: update Arceuus essence agility shortcut coordinates\n QuestStartLocation: Update The forsaken tower/roving elves quest coordinates\n
\n',image:"/img/blog/1.6.8-Release/getags.png"}}}]);
+//# sourceMappingURL=120.93d4ded3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/120.680b5aa4.chunk.js.map b/static/js/120.93d4ded3.chunk.js.map
similarity index 98%
rename from static/js/120.680b5aa4.chunk.js.map
rename to static/js/120.93d4ded3.chunk.js.map
index 27bbe0f9d..5c32da01d 100644
--- a/static/js/120.680b5aa4.chunk.js.map
+++ b/static/js/120.93d4ded3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-02-27-10-00-1.6.8-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,ujJAAskJ,MAAQ","file":"static/js/120.680b5aa4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.8 Release\",\"description\":\"GE bank tag search, world map mining tooltips, and new UI scaling options\",\"author\":\"Adam\",\"body\":\"Bank tags can now be searched in the GE:
\\n
\\nThe world map now has tooltips for mining site locations which shows which rocks are there:
\\n
\\nThe blast furnace overlay now includes the time until the coffer runs out of GP:
\\n
\\nThe GPU plugin now includes additional UI scaling options which can result in clearer images on higher resolution displays.\\nIf you were using the stretched mode plugin with the Increased performance mode
option and the GPU plugin,\\nyou may want to change the GPU UI scaling option to Nearest
.
\\nThe plugin hub has a new webpage which shows all of the plugins available on it.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nGE buy limits are now automatically pulled from the wiki \\nThe item stats plugin can now show item stats when hovering items in the bank \\nThe pensive emoji has been added to the emoji plugin (V_V
) \\nItem price tooltips now work in the seed vault \\nInventory tags now has 2 additional tag groups \\nFix the loottrackker show/hide ignored loot button \\nFix the always stack resizable stones interface styles option \\nAdd bounty hunter (rogue) and LMS chat commands \\nFix incorrectly hiding salamander attack styles with the attackstyles plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\nAdam (4):\\n configmanager: harden against being killed mid-save\\n Merge protocol and protocol-api into cache-client\\n Use GE limits from item stats\\n session: add logged-in tracking\\n\\nAlfred Ababio (1):\\n skill calc: add long and curved bones to construction calc\\n\\nBen Dol (3):\\n itemstats: Round item values for displaying\\n itemstats: Add "Show Stats In Bank" option\\n itemstats: Add "Always Show Base Stats" option\\n\\nDaniel (1):\\n blast furnace: add coffer time remaining overlay\\n\\nDeliciousLunch55 (2):\\n clue plugin: Improve Shilo Village elite coordinate clue hint\\n xpdrop plugin: add 'prayer' to tags\\n\\nEvan Walden (1):\\n item prices: show tooltips in the seed vault\\n\\nHenry Darnell (1):\\n emoji: add pensive emoji\\n\\nHydrox6 (1):\\n slayer: fix boss task parsing to support Konar\\n\\nJames Carroll (1):\\n Thread Desktop browse and open\\n\\nJeremy Plsek (1):\\n plugin hub panel: add url to help tooltip and add missing space to warning\\n\\nJordan Atwood (5):\\n ClueScrollPlugin: Reset clue on empty dev command\\n clues: Don't return clue instances for empty text\\n cluescroll plugin: Clear stale location clue hint arrows\\n util: Create RSTimeUnit enum\\n plugins: Use RSTimeUnit util where applicable\\n\\nKrysa (1):\\n inventory tags: add 2 additional color groups\\n\\nMax Weber (2):\\n PluginManager: try/catch Throwable all the plugin startup stuff\\n loottracker: fix hide/show ignored items button\\n\\nRolf Don (1):\\n skill calc: strip out non-digits characters\\n\\nRon Young (5):\\n runelite-api: add GE search event and variables\\n ItemVariations: add reverse mapping of variations\\n banktags: add tag searching for ge search\\n banktags: add tests\\n LayoutResizableStones: fix bad script merge\\n\\nSander de Groot (1):\\n chat commands: add Bounty Hunter, Bounty Hunter Rogue, and Last Man Standing commands\\n\\nSeth (1):\\n clue plugin: update Trollweiss cryptic clue hint to include a sled\\n\\nTrevor (1):\\n client: add notification fired event\\n\\ndekvall (4):\\n attackstyles: fix salamander magic attacks\\n inventorygrid: re-add a delay to showing the overlay\\n worldmap: support multiline tooltips\\n worldmap: add informative mining site tooltip\\n\\nkmutchnick (4):\\n clue plugin: add new Slepe anagram clue\\n skill calc: fix skill requirement for compost potions\\n clue plugin: update solution text for deep wilderness dungeon cryptic clue\\n clue plugin: add pet rock and rune thrownaxe to DK clue\\n\\nln (1):\\n gpu: add UI bicubic & xBR rescaling\\n\\nseth (2):\\n AgilityShortcut: update Arceuus essence agility shortcut coordinates\\n QuestStartLocation: Update The forsaken tower/roving elves quest coordinates\\n
\\n\",\"image\":\"/img/blog/1.6.8-Release/getags.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-02-27-10-00-1.6.8-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,ujJAAskJ,MAAQ","file":"static/js/120.93d4ded3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.8 Release\",\"description\":\"GE bank tag search, world map mining tooltips, and new UI scaling options\",\"author\":\"Adam\",\"body\":\"Bank tags can now be searched in the GE:
\\n
\\nThe world map now has tooltips for mining site locations which shows which rocks are there:
\\n
\\nThe blast furnace overlay now includes the time until the coffer runs out of GP:
\\n
\\nThe GPU plugin now includes additional UI scaling options which can result in clearer images on higher resolution displays.\\nIf you were using the stretched mode plugin with the Increased performance mode
option and the GPU plugin,\\nyou may want to change the GPU UI scaling option to Nearest
.
\\nThe plugin hub has a new webpage which shows all of the plugins available on it.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nGE buy limits are now automatically pulled from the wiki \\nThe item stats plugin can now show item stats when hovering items in the bank \\nThe pensive emoji has been added to the emoji plugin (V_V
) \\nItem price tooltips now work in the seed vault \\nInventory tags now has 2 additional tag groups \\nFix the loottrackker show/hide ignored loot button \\nFix the always stack resizable stones interface styles option \\nAdd bounty hunter (rogue) and LMS chat commands \\nFix incorrectly hiding salamander attack styles with the attackstyles plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\nAdam (4):\\n configmanager: harden against being killed mid-save\\n Merge protocol and protocol-api into cache-client\\n Use GE limits from item stats\\n session: add logged-in tracking\\n\\nAlfred Ababio (1):\\n skill calc: add long and curved bones to construction calc\\n\\nBen Dol (3):\\n itemstats: Round item values for displaying\\n itemstats: Add "Show Stats In Bank" option\\n itemstats: Add "Always Show Base Stats" option\\n\\nDaniel (1):\\n blast furnace: add coffer time remaining overlay\\n\\nDeliciousLunch55 (2):\\n clue plugin: Improve Shilo Village elite coordinate clue hint\\n xpdrop plugin: add 'prayer' to tags\\n\\nEvan Walden (1):\\n item prices: show tooltips in the seed vault\\n\\nHenry Darnell (1):\\n emoji: add pensive emoji\\n\\nHydrox6 (1):\\n slayer: fix boss task parsing to support Konar\\n\\nJames Carroll (1):\\n Thread Desktop browse and open\\n\\nJeremy Plsek (1):\\n plugin hub panel: add url to help tooltip and add missing space to warning\\n\\nJordan Atwood (5):\\n ClueScrollPlugin: Reset clue on empty dev command\\n clues: Don't return clue instances for empty text\\n cluescroll plugin: Clear stale location clue hint arrows\\n util: Create RSTimeUnit enum\\n plugins: Use RSTimeUnit util where applicable\\n\\nKrysa (1):\\n inventory tags: add 2 additional color groups\\n\\nMax Weber (2):\\n PluginManager: try/catch Throwable all the plugin startup stuff\\n loottracker: fix hide/show ignored items button\\n\\nRolf Don (1):\\n skill calc: strip out non-digits characters\\n\\nRon Young (5):\\n runelite-api: add GE search event and variables\\n ItemVariations: add reverse mapping of variations\\n banktags: add tag searching for ge search\\n banktags: add tests\\n LayoutResizableStones: fix bad script merge\\n\\nSander de Groot (1):\\n chat commands: add Bounty Hunter, Bounty Hunter Rogue, and Last Man Standing commands\\n\\nSeth (1):\\n clue plugin: update Trollweiss cryptic clue hint to include a sled\\n\\nTrevor (1):\\n client: add notification fired event\\n\\ndekvall (4):\\n attackstyles: fix salamander magic attacks\\n inventorygrid: re-add a delay to showing the overlay\\n worldmap: support multiline tooltips\\n worldmap: add informative mining site tooltip\\n\\nkmutchnick (4):\\n clue plugin: add new Slepe anagram clue\\n skill calc: fix skill requirement for compost potions\\n clue plugin: update solution text for deep wilderness dungeon cryptic clue\\n clue plugin: add pet rock and rune thrownaxe to DK clue\\n\\nln (1):\\n gpu: add UI bicubic & xBR rescaling\\n\\nseth (2):\\n AgilityShortcut: update Arceuus essence agility shortcut coordinates\\n QuestStartLocation: Update The forsaken tower/roving elves quest coordinates\\n
\\n\",\"image\":\"/img/blog/1.6.8-Release/getags.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/121.69313040.chunk.js b/static/js/121.39ecdfa3.chunk.js
similarity index 98%
rename from static/js/121.69313040.chunk.js
rename to static/js/121.39ecdfa3.chunk.js
index 56dc241a6..2317cca6b 100644
--- a/static/js/121.69313040.chunk.js
+++ b/static/js/121.39ecdfa3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[121],{396:function(e,n){e.exports={title:"1.6.9 Release",description:"Bank tag tabs tab and screenshot sub-folders",author:"Jordan",body:'The Bank Tags plugin has a new right-click\nmenu option of the "New tag tab" button which will display each of your tag tabs as bank items,\nletting you quickly view and reorganize them. In addition, reordering tag tabs respects your bank\nrearrange mode selection. Thanks to @raiyni for these features!
\n
\nThe Screenshot plugin now stores all\nautomatic screenshots in sub-folders according to the screenshot type, such as Levels, Quests,\nBoss Kills, Valuable Drops, Pets, and more. Thanks to @gregg1494 \nand @Nightfirecat for adding this feature.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe "highlight over value" option now takes priority over the ground item price threshold colors. If you find all of your items are now highlighted, change the hightlight over value to be 0. \nPlugin Hub plugins \nare now sorted by display name and are ordered in a more useful way when searched \nRuneLite now records your boss kill count and personal bests for the Chat Commands\nplugin when reading your POH\nadventurer\'s log \nThe Item Charges plugin now shows\ncharges for your amulets of bounty and amulets of chemistry \nNumerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\nplugin\'s narrowing feature \nFollowing the recent game update, the Clue Scroll\nplugin now understands ornamented items\nfulfill emote clue requirements in the same way their un-ornamented versions do \nMouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\noption \nMounted Mythical capes now display an icon with the Player-owned House\nplugin \nA bug making it difficult to manually type new values into config text boxes with unit suffixes\nhas been fixed \nThe Item Stats equipment bonus tooltips no\nlonger confuse the attack speed difference for the attack stab difference \nDrift net rewards are now tracked in the Loot Tracker\nplugin \nThe Agility plugin now uses your ingame\ngoal to determine laps to level \nYour active slayer task is canceled when you\nleave the Inferno \nGuthix rests now have their xp values displayed in the Skill Calculator\nplugin \nImpling jars can now be labeled by the Item Identification\nplugin \nThe Mining plugin learned the respawn times of\nWeiss salts \nThe Report Button plugin can now show\nyour login time as a measure of game ticks \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (4):\n cache: update kit definition\n point: lombokize\n tooltips overlay: fix multiple above-cursor tooltips\n itemcharges: move matchers after message type check\n\nAlexsuperfly (3):\n chat commands: Refactor repeated test code into setup method\n chat commands: Add KC reading from POH adventurer\'s log\n chat commands: Add PB reading from POH adventurer\'s log\n\nDaniel Bolink (2):\n itemcharges: Track Amulet of Chemistry charges\n itemcharges: Track Amulet of Bounty charges\n\nDavid (1):\n emote clue: Add missing ornament items\n\nDeliciousLunch55 (2):\n clues: Improve Yanille dungeon basement clue hint\n clues: Update "Slay a nechryael" clue text\n\nDeon Zhao (1):\n HotColdLocation: Center South-east Dark Warriors\' Fortress location\n\nHydrox6 (1):\n config: fix entering values directly into options with units not working\n\nJZomerlei (2):\n Add Mythical Cape icon to POH (#10828)\n Change to use github link instead of email (#10934)\n\nJordan Atwood (5):\n util: Add subdirectory option to image captures\n HotColdLocation: Center some location spots\n item stats: Fix tooltip stab bonus comparison\n itemstats: Fix unarmed attack speed\n itemstats: Add tooltip string method tests\n\nRon Young (2):\n tag tabs: respect bank rearrange mode for reordering\n banktags: support viewing all Tag Tabs in the bank screen\n\nSkyler Olds (1):\n Add AM/PM description to Timestamp Plugin Config (#10920)\n\nTomas Slusny (2):\n Use XpTrackerService to determine goals in Agility plugin\n Move matchesSearchTerms util to Text class\n\nZachary Waller (1):\n ground items: change highlight value to take priority over other value thresholds\n\ndekvall (1):\n loot tracker: add drift net reward\n\ngregg1494 (1):\n screenshot plugin: Capture screenshots to subdirectories\n\njsnellings1 (2):\n slayer: cancel task when leaving the Inferno\n herblore skill calc: add guthix rest\n\nloldudester (4):\n GroundItems: Keep item lists in input order\n Plugin Hub: Sort plugins by display name\n Plugin Hub: Rework search to something remotely useful\n wintertodt plugin: separate notifications into separate options\n\nmelkypie (3):\n itemidentification: add impling jars option\n mining: update duration to use GAME_TICKS instead of milliseconds\n mining: add urt, efh, te and basalt respawn timers\n\nmlvzk (1):\n reportbutton: add Game Ticks option\n
\n',image:"/img/blog/1.6.9-Release/bank-tag-tabs-tab.gif"}}}]);
-//# sourceMappingURL=121.69313040.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[121],{397:function(e,n){e.exports={title:"1.6.9 Release",description:"Bank tag tabs tab and screenshot sub-folders",author:"Jordan",body:'The Bank Tags plugin has a new right-click\nmenu option of the "New tag tab" button which will display each of your tag tabs as bank items,\nletting you quickly view and reorganize them. In addition, reordering tag tabs respects your bank\nrearrange mode selection. Thanks to @raiyni for these features!
\n
\nThe Screenshot plugin now stores all\nautomatic screenshots in sub-folders according to the screenshot type, such as Levels, Quests,\nBoss Kills, Valuable Drops, Pets, and more. Thanks to @gregg1494 \nand @Nightfirecat for adding this feature.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe "highlight over value" option now takes priority over the ground item price threshold colors. If you find all of your items are now highlighted, change the hightlight over value to be 0. \nPlugin Hub plugins \nare now sorted by display name and are ordered in a more useful way when searched \nRuneLite now records your boss kill count and personal bests for the Chat Commands\nplugin when reading your POH\nadventurer\'s log \nThe Item Charges plugin now shows\ncharges for your amulets of bounty and amulets of chemistry \nNumerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\nplugin\'s narrowing feature \nFollowing the recent game update, the Clue Scroll\nplugin now understands ornamented items\nfulfill emote clue requirements in the same way their un-ornamented versions do \nMouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\noption \nMounted Mythical capes now display an icon with the Player-owned House\nplugin \nA bug making it difficult to manually type new values into config text boxes with unit suffixes\nhas been fixed \nThe Item Stats equipment bonus tooltips no\nlonger confuse the attack speed difference for the attack stab difference \nDrift net rewards are now tracked in the Loot Tracker\nplugin \nThe Agility plugin now uses your ingame\ngoal to determine laps to level \nYour active slayer task is canceled when you\nleave the Inferno \nGuthix rests now have their xp values displayed in the Skill Calculator\nplugin \nImpling jars can now be labeled by the Item Identification\nplugin \nThe Mining plugin learned the respawn times of\nWeiss salts \nThe Report Button plugin can now show\nyour login time as a measure of game ticks \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (4):\n cache: update kit definition\n point: lombokize\n tooltips overlay: fix multiple above-cursor tooltips\n itemcharges: move matchers after message type check\n\nAlexsuperfly (3):\n chat commands: Refactor repeated test code into setup method\n chat commands: Add KC reading from POH adventurer\'s log\n chat commands: Add PB reading from POH adventurer\'s log\n\nDaniel Bolink (2):\n itemcharges: Track Amulet of Chemistry charges\n itemcharges: Track Amulet of Bounty charges\n\nDavid (1):\n emote clue: Add missing ornament items\n\nDeliciousLunch55 (2):\n clues: Improve Yanille dungeon basement clue hint\n clues: Update "Slay a nechryael" clue text\n\nDeon Zhao (1):\n HotColdLocation: Center South-east Dark Warriors\' Fortress location\n\nHydrox6 (1):\n config: fix entering values directly into options with units not working\n\nJZomerlei (2):\n Add Mythical Cape icon to POH (#10828)\n Change to use github link instead of email (#10934)\n\nJordan Atwood (5):\n util: Add subdirectory option to image captures\n HotColdLocation: Center some location spots\n item stats: Fix tooltip stab bonus comparison\n itemstats: Fix unarmed attack speed\n itemstats: Add tooltip string method tests\n\nRon Young (2):\n tag tabs: respect bank rearrange mode for reordering\n banktags: support viewing all Tag Tabs in the bank screen\n\nSkyler Olds (1):\n Add AM/PM description to Timestamp Plugin Config (#10920)\n\nTomas Slusny (2):\n Use XpTrackerService to determine goals in Agility plugin\n Move matchesSearchTerms util to Text class\n\nZachary Waller (1):\n ground items: change highlight value to take priority over other value thresholds\n\ndekvall (1):\n loot tracker: add drift net reward\n\ngregg1494 (1):\n screenshot plugin: Capture screenshots to subdirectories\n\njsnellings1 (2):\n slayer: cancel task when leaving the Inferno\n herblore skill calc: add guthix rest\n\nloldudester (4):\n GroundItems: Keep item lists in input order\n Plugin Hub: Sort plugins by display name\n Plugin Hub: Rework search to something remotely useful\n wintertodt plugin: separate notifications into separate options\n\nmelkypie (3):\n itemidentification: add impling jars option\n mining: update duration to use GAME_TICKS instead of milliseconds\n mining: add urt, efh, te and basalt respawn timers\n\nmlvzk (1):\n reportbutton: add Game Ticks option\n
\n',image:"/img/blog/1.6.9-Release/bank-tag-tabs-tab.gif"}}}]);
+//# sourceMappingURL=121.39ecdfa3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/121.69313040.chunk.js.map b/static/js/121.39ecdfa3.chunk.js.map
similarity index 99%
rename from static/js/121.69313040.chunk.js.map
rename to static/js/121.39ecdfa3.chunk.js.map
index 3fb020d62..5d99bfc2b 100644
--- a/static/js/121.69313040.chunk.js.map
+++ b/static/js/121.39ecdfa3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-03-05-10-00-1.6.9-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+CAA+C,OAAS,SAAS,KAAO,8gOAAqoO,MAAQ","file":"static/js/121.69313040.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.9 Release\",\"description\":\"Bank tag tabs tab and screenshot sub-folders\",\"author\":\"Jordan\",\"body\":\"The Bank Tags plugin has a new right-click\\nmenu option of the "New tag tab" button which will display each of your tag tabs as bank items,\\nletting you quickly view and reorganize them. In addition, reordering tag tabs respects your bank\\nrearrange mode selection. Thanks to @raiyni for these features!
\\n
\\nThe Screenshot plugin now stores all\\nautomatic screenshots in sub-folders according to the screenshot type, such as Levels, Quests,\\nBoss Kills, Valuable Drops, Pets, and more. Thanks to @gregg1494 \\nand @Nightfirecat for adding this feature.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe "highlight over value" option now takes priority over the ground item price threshold colors. If you find all of your items are now highlighted, change the hightlight over value to be 0. \\nPlugin Hub plugins \\nare now sorted by display name and are ordered in a more useful way when searched \\nRuneLite now records your boss kill count and personal bests for the Chat Commands\\nplugin when reading your POH\\nadventurer's log \\nThe Item Charges plugin now shows\\ncharges for your amulets of bounty and amulets of chemistry \\nNumerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\\nplugin's narrowing feature \\nFollowing the recent game update, the Clue Scroll\\nplugin now understands ornamented items\\nfulfill emote clue requirements in the same way their un-ornamented versions do \\nMouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\\noption \\nMounted Mythical capes now display an icon with the Player-owned House\\nplugin \\nA bug making it difficult to manually type new values into config text boxes with unit suffixes\\nhas been fixed \\nThe Item Stats equipment bonus tooltips no\\nlonger confuse the attack speed difference for the attack stab difference \\nDrift net rewards are now tracked in the Loot Tracker\\nplugin \\nThe Agility plugin now uses your ingame\\ngoal to determine laps to level \\nYour active slayer task is canceled when you\\nleave the Inferno \\nGuthix rests now have their xp values displayed in the Skill Calculator\\nplugin \\nImpling jars can now be labeled by the Item Identification\\nplugin \\nThe Mining plugin learned the respawn times of\\nWeiss salts \\nThe Report Button plugin can now show\\nyour login time as a measure of game ticks \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (4):\\n cache: update kit definition\\n point: lombokize\\n tooltips overlay: fix multiple above-cursor tooltips\\n itemcharges: move matchers after message type check\\n\\nAlexsuperfly (3):\\n chat commands: Refactor repeated test code into setup method\\n chat commands: Add KC reading from POH adventurer's log\\n chat commands: Add PB reading from POH adventurer's log\\n\\nDaniel Bolink (2):\\n itemcharges: Track Amulet of Chemistry charges\\n itemcharges: Track Amulet of Bounty charges\\n\\nDavid (1):\\n emote clue: Add missing ornament items\\n\\nDeliciousLunch55 (2):\\n clues: Improve Yanille dungeon basement clue hint\\n clues: Update "Slay a nechryael" clue text\\n\\nDeon Zhao (1):\\n HotColdLocation: Center South-east Dark Warriors' Fortress location\\n\\nHydrox6 (1):\\n config: fix entering values directly into options with units not working\\n\\nJZomerlei (2):\\n Add Mythical Cape icon to POH (#10828)\\n Change to use github link instead of email (#10934)\\n\\nJordan Atwood (5):\\n util: Add subdirectory option to image captures\\n HotColdLocation: Center some location spots\\n item stats: Fix tooltip stab bonus comparison\\n itemstats: Fix unarmed attack speed\\n itemstats: Add tooltip string method tests\\n\\nRon Young (2):\\n tag tabs: respect bank rearrange mode for reordering\\n banktags: support viewing all Tag Tabs in the bank screen\\n\\nSkyler Olds (1):\\n Add AM/PM description to Timestamp Plugin Config (#10920)\\n\\nTomas Slusny (2):\\n Use XpTrackerService to determine goals in Agility plugin\\n Move matchesSearchTerms util to Text class\\n\\nZachary Waller (1):\\n ground items: change highlight value to take priority over other value thresholds\\n\\ndekvall (1):\\n loot tracker: add drift net reward\\n\\ngregg1494 (1):\\n screenshot plugin: Capture screenshots to subdirectories\\n\\njsnellings1 (2):\\n slayer: cancel task when leaving the Inferno\\n herblore skill calc: add guthix rest\\n\\nloldudester (4):\\n GroundItems: Keep item lists in input order\\n Plugin Hub: Sort plugins by display name\\n Plugin Hub: Rework search to something remotely useful\\n wintertodt plugin: separate notifications into separate options\\n\\nmelkypie (3):\\n itemidentification: add impling jars option\\n mining: update duration to use GAME_TICKS instead of milliseconds\\n mining: add urt, efh, te and basalt respawn timers\\n\\nmlvzk (1):\\n reportbutton: add Game Ticks option\\n
\\n\",\"image\":\"/img/blog/1.6.9-Release/bank-tag-tabs-tab.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-03-05-10-00-1.6.9-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+CAA+C,OAAS,SAAS,KAAO,8gOAAqoO,MAAQ","file":"static/js/121.39ecdfa3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.9 Release\",\"description\":\"Bank tag tabs tab and screenshot sub-folders\",\"author\":\"Jordan\",\"body\":\"The Bank Tags plugin has a new right-click\\nmenu option of the "New tag tab" button which will display each of your tag tabs as bank items,\\nletting you quickly view and reorganize them. In addition, reordering tag tabs respects your bank\\nrearrange mode selection. Thanks to @raiyni for these features!
\\n
\\nThe Screenshot plugin now stores all\\nautomatic screenshots in sub-folders according to the screenshot type, such as Levels, Quests,\\nBoss Kills, Valuable Drops, Pets, and more. Thanks to @gregg1494 \\nand @Nightfirecat for adding this feature.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe "highlight over value" option now takes priority over the ground item price threshold colors. If you find all of your items are now highlighted, change the hightlight over value to be 0. \\nPlugin Hub plugins \\nare now sorted by display name and are ordered in a more useful way when searched \\nRuneLite now records your boss kill count and personal bests for the Chat Commands\\nplugin when reading your POH\\nadventurer's log \\nThe Item Charges plugin now shows\\ncharges for your amulets of bounty and amulets of chemistry \\nNumerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\\nplugin's narrowing feature \\nFollowing the recent game update, the Clue Scroll\\nplugin now understands ornamented items\\nfulfill emote clue requirements in the same way their un-ornamented versions do \\nMouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\\noption \\nMounted Mythical capes now display an icon with the Player-owned House\\nplugin \\nA bug making it difficult to manually type new values into config text boxes with unit suffixes\\nhas been fixed \\nThe Item Stats equipment bonus tooltips no\\nlonger confuse the attack speed difference for the attack stab difference \\nDrift net rewards are now tracked in the Loot Tracker\\nplugin \\nThe Agility plugin now uses your ingame\\ngoal to determine laps to level \\nYour active slayer task is canceled when you\\nleave the Inferno \\nGuthix rests now have their xp values displayed in the Skill Calculator\\nplugin \\nImpling jars can now be labeled by the Item Identification\\nplugin \\nThe Mining plugin learned the respawn times of\\nWeiss salts \\nThe Report Button plugin can now show\\nyour login time as a measure of game ticks \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (4):\\n cache: update kit definition\\n point: lombokize\\n tooltips overlay: fix multiple above-cursor tooltips\\n itemcharges: move matchers after message type check\\n\\nAlexsuperfly (3):\\n chat commands: Refactor repeated test code into setup method\\n chat commands: Add KC reading from POH adventurer's log\\n chat commands: Add PB reading from POH adventurer's log\\n\\nDaniel Bolink (2):\\n itemcharges: Track Amulet of Chemistry charges\\n itemcharges: Track Amulet of Bounty charges\\n\\nDavid (1):\\n emote clue: Add missing ornament items\\n\\nDeliciousLunch55 (2):\\n clues: Improve Yanille dungeon basement clue hint\\n clues: Update "Slay a nechryael" clue text\\n\\nDeon Zhao (1):\\n HotColdLocation: Center South-east Dark Warriors' Fortress location\\n\\nHydrox6 (1):\\n config: fix entering values directly into options with units not working\\n\\nJZomerlei (2):\\n Add Mythical Cape icon to POH (#10828)\\n Change to use github link instead of email (#10934)\\n\\nJordan Atwood (5):\\n util: Add subdirectory option to image captures\\n HotColdLocation: Center some location spots\\n item stats: Fix tooltip stab bonus comparison\\n itemstats: Fix unarmed attack speed\\n itemstats: Add tooltip string method tests\\n\\nRon Young (2):\\n tag tabs: respect bank rearrange mode for reordering\\n banktags: support viewing all Tag Tabs in the bank screen\\n\\nSkyler Olds (1):\\n Add AM/PM description to Timestamp Plugin Config (#10920)\\n\\nTomas Slusny (2):\\n Use XpTrackerService to determine goals in Agility plugin\\n Move matchesSearchTerms util to Text class\\n\\nZachary Waller (1):\\n ground items: change highlight value to take priority over other value thresholds\\n\\ndekvall (1):\\n loot tracker: add drift net reward\\n\\ngregg1494 (1):\\n screenshot plugin: Capture screenshots to subdirectories\\n\\njsnellings1 (2):\\n slayer: cancel task when leaving the Inferno\\n herblore skill calc: add guthix rest\\n\\nloldudester (4):\\n GroundItems: Keep item lists in input order\\n Plugin Hub: Sort plugins by display name\\n Plugin Hub: Rework search to something remotely useful\\n wintertodt plugin: separate notifications into separate options\\n\\nmelkypie (3):\\n itemidentification: add impling jars option\\n mining: update duration to use GAME_TICKS instead of milliseconds\\n mining: add urt, efh, te and basalt respawn timers\\n\\nmlvzk (1):\\n reportbutton: add Game Ticks option\\n
\\n\",\"image\":\"/img/blog/1.6.9-Release/bank-tag-tabs-tab.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/122.efc7d1e4.chunk.js b/static/js/122.82193971.chunk.js
similarity index 98%
rename from static/js/122.efc7d1e4.chunk.js
rename to static/js/122.82193971.chunk.js
index d7112de77..3b8267f5c 100644
--- a/static/js/122.efc7d1e4.chunk.js
+++ b/static/js/122.82193971.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[122],{397:function(e,n){e.exports={title:"1.6.10 Release",description:"Damage counter, drift net plugin, and 2006-style interfaces",author:"Adam",body:'A DPS counter plugin has been added which displays your DPS, or just total\ndamage, to NPCs. If you are in a\nparty , it will show a\nbreakdown of each member\'s damage.
\n
\nA drift net fishing plugin was added which shows the status of your nets and\nhighlights any fish you haven\'t tagged
\n
\nThe interface styles plugin has an additional new 2006 interface style
\n
\nThe friend notes plugin can now display an icon next to friends who have notes
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the music plugin sliders sometimes not working \nThe spec counter plugin now uses hitsplats to determine spec hit instead of\nxpdrops - fixing it to work more reliably in scaled raids and other situations\nwhere the hitpoints xp multiplier is not constant \nExtra mouse buttons (4+) are now prevented from clicking in-game \nThe raids scout overlay now includes the world\'s region (US/GB/AU/DE) \nFix the agility overlay laps remaining to account for agility pyramid bonus xp \nAdd Lovakite rocks to the mining respawn timer \nAdd Nightmare dungeon and boss areas to Discord game events and skybox \nAdd menu swap for essence mine teleport \nAdd cannon spot for Lizard Shamans and Black Knights \nFix the venom hitsplat image in the poison infobox \nAdd deposit boxes to shift-click deposit \nAdd tooltips to the Prifddinas mining sites on the world map \nThe custom cursor plugin now has an option to set your cursor to the weapon\nyou have equipped \nThe chatfilter can now also filter messages by player name \nAdd world map teleport targets to wilderness levers \nGround items now supports quantity thresholds, eg: chaos rune>100
\nThe object indicators plugin now supports per-indicator colors \nThe time tracking plugin\'s timers are now sorted in ascending order, and have\na warning color when they are low \nThe Herbiboar plugin can now indicate the guaranteed tracks \nThe Sarachnis respawn timer has been updated to 10 seconds \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 25 contributors this release!
\nAdam (23):\n speccounter: use hitsplats for determining spec hit\n interface styles: only adjust widget positions when tli is resized\n ui: correct cursor hotspot to 0,0\n opponentinfo: account for panel border in overlay size\n experience: remove unnecessary Math.floor() calls\n linepanelcomponent: remove empty string text component renders\n components: use common Text.removeTags\n panelcomponent: fix removing final gap from total width/height\n client: synchronize some calls to ImageIO.read()\n hiscore panel: autocomplete recent search history\n checkstyle: enforce no whitespace at end of line\n overlay: add mouseover callback\n client: add dps plugin\n keyremapping: add option to block extra mouse buttons\n keyremapping: add test for typing mode change\n chatcommands: fix showing -1 experience/rank in lvl\n client: block extra mouse keys\n http-api: add world region to World\n raids: add world region to scout overlay\n api: make IterableHashTable generic\n clientloader: use fallback config if gamepack fails to load\n clientloader: don\'t fallback to Jagex hostnames when using fallback config\n boss timers: update Sarachnis time to 10 seconds\n\nAlexsuperfly (4):\n agility: set lastObstacleXp to 0 on courses that use worldpoints\n agility: account for bonus exp from agility pyramid\n mining: show respawn timers after GameState change\n mining: add Lovakite rocks\n\nAustin (2):\n Added nightmare dungeon and nightmare boss to discord game events.\n skybox: add nightmare dungeon area\n\nBrandtHill (1):\n clues: update clue text for stealing from ardougne chest\n\nBrennan Williams (1):\n shift anti drag: fix default bank drag delay\n\nCody Brown (1):\n menu swapper: essence mine teleport menu, swap talk-to with teleport on distentor and aubury\n\nDaniel (2):\n Reset Discord status after a while of being in menu (#9116)\n skillcalculator: Don\'t clear fields when re-loading current skill\n\nDeliciousLunch55 (4):\n BeginnerMapClue: Add Fairy Ring code to Wizard\'s Tower clue hint\n cannon plugin: add cannoning spot for Lizard Shamans\n cannon plugin: update Gnome Stronghold dungeon Bloodvelds cannon location. (#11028)\n cannon: Add Black Knights cannoning spot in Taverley Dungeon (#11046)\n\nHydrox6 (1):\n api: fix venom hitsplat sprite id\n\nH\xe5kon Rosseland Paulsen (1):\n menu swapper: add shift-modifier to bank deposit box\n\nJZomerlei (1):\n chatcommands: Don\'t remove spaces before cleared word (#11017)\n\nJordan Atwood (4):\n clues: Create NamedObjectClueScroll interface\n SkillChallengeClue: Highlight broken Dorgesh-kaan lamps\n HotColdLocation: Center some location spots\n widget: Expose widget model getters and setters\n\nJustin Hiltz (2):\n worldmap: Add Prifddinas mining sites (#11018)\n custom cursor: add option to use equipped weapon\n\nMax Weber (3):\n runelite-client: Make gauntlet timer layoutable\n music: correctly recreate volume widgets after relogs\n discord: don\'t throw NPE when checking timeout on training states\n\nMichael (1):\n loottracker: add average per kill to subtitle tooltip\n\nRon Young (2):\n runelite-api: expose item model information\n ChatboxItemSearch: check for duplicate item images\n\nRyan Hermstein (1):\n clues: update Eluned cryptic clue message\n\nThatGamerBlue (4):\n rlapi: MessageNode extends CacheableNode (but Node is close enough)\n chatfilter: add filtering by username\n scripts: add FriendUpdate and IgnoreUpdate\n friendicons: add note icon in friends/ignore list\n\nTheStonedTurtle (1):\n Revert "opponentinfo: add opponent\'s opponent for npcs"\n\nTomas Slusny (2):\n Add support for component tooltips\n Migrate XpGlobesOverlay tooltips to component tooltips\n\nTrevor (3):\n client: add session and config file arguments\n client: fix default sessionfile/config args\n spec counter plugin: fix other NPC hitsplats affecting specs\n\nadwitkow (1):\n worldmap: add targets to Wilderness Levers & clarify their tooltips\n\ndekvall (8):\n widgetid: fix lms ingame info\n inventory grid: fix showing the replaced item in the initial spot\n ground items: add support for quantity thresholds\n menu entry swapper: update essence mine description to include all npcs\n object indicators: add support for multiple colors\n drift net fishing: add plugin\n menu entry swapper: swap nets on annette\n herbiboar: use guaranteed tracks when highlighting path\n\nmelkypie (4):\n scripts: use ScriptPostFired event for scripts that callback at the end of the script\n friendslist: update titles using onScriptPostFired rather than onGameTick\n timetracking: add ability to sort timers\n timetracking: add timer warning colors\n\nraqes (2):\n interface styles: Fix 2005 prayer tab fixed viewport\n interface styles: Add 2006 interface\n
\n',image:"/img/blog/1.6.10-Release/dps.png"}}}]);
-//# sourceMappingURL=122.efc7d1e4.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[122],{398:function(e,n){e.exports={title:"1.6.10 Release",description:"Damage counter, drift net plugin, and 2006-style interfaces",author:"Adam",body:'A DPS counter plugin has been added which displays your DPS, or just total\ndamage, to NPCs. If you are in a\nparty , it will show a\nbreakdown of each member\'s damage.
\n
\nA drift net fishing plugin was added which shows the status of your nets and\nhighlights any fish you haven\'t tagged
\n
\nThe interface styles plugin has an additional new 2006 interface style
\n
\nThe friend notes plugin can now display an icon next to friends who have notes
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix the music plugin sliders sometimes not working \nThe spec counter plugin now uses hitsplats to determine spec hit instead of\nxpdrops - fixing it to work more reliably in scaled raids and other situations\nwhere the hitpoints xp multiplier is not constant \nExtra mouse buttons (4+) are now prevented from clicking in-game \nThe raids scout overlay now includes the world\'s region (US/GB/AU/DE) \nFix the agility overlay laps remaining to account for agility pyramid bonus xp \nAdd Lovakite rocks to the mining respawn timer \nAdd Nightmare dungeon and boss areas to Discord game events and skybox \nAdd menu swap for essence mine teleport \nAdd cannon spot for Lizard Shamans and Black Knights \nFix the venom hitsplat image in the poison infobox \nAdd deposit boxes to shift-click deposit \nAdd tooltips to the Prifddinas mining sites on the world map \nThe custom cursor plugin now has an option to set your cursor to the weapon\nyou have equipped \nThe chatfilter can now also filter messages by player name \nAdd world map teleport targets to wilderness levers \nGround items now supports quantity thresholds, eg: chaos rune>100
\nThe object indicators plugin now supports per-indicator colors \nThe time tracking plugin\'s timers are now sorted in ascending order, and have\na warning color when they are low \nThe Herbiboar plugin can now indicate the guaranteed tracks \nThe Sarachnis respawn timer has been updated to 10 seconds \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 25 contributors this release!
\nAdam (23):\n speccounter: use hitsplats for determining spec hit\n interface styles: only adjust widget positions when tli is resized\n ui: correct cursor hotspot to 0,0\n opponentinfo: account for panel border in overlay size\n experience: remove unnecessary Math.floor() calls\n linepanelcomponent: remove empty string text component renders\n components: use common Text.removeTags\n panelcomponent: fix removing final gap from total width/height\n client: synchronize some calls to ImageIO.read()\n hiscore panel: autocomplete recent search history\n checkstyle: enforce no whitespace at end of line\n overlay: add mouseover callback\n client: add dps plugin\n keyremapping: add option to block extra mouse buttons\n keyremapping: add test for typing mode change\n chatcommands: fix showing -1 experience/rank in lvl\n client: block extra mouse keys\n http-api: add world region to World\n raids: add world region to scout overlay\n api: make IterableHashTable generic\n clientloader: use fallback config if gamepack fails to load\n clientloader: don\'t fallback to Jagex hostnames when using fallback config\n boss timers: update Sarachnis time to 10 seconds\n\nAlexsuperfly (4):\n agility: set lastObstacleXp to 0 on courses that use worldpoints\n agility: account for bonus exp from agility pyramid\n mining: show respawn timers after GameState change\n mining: add Lovakite rocks\n\nAustin (2):\n Added nightmare dungeon and nightmare boss to discord game events.\n skybox: add nightmare dungeon area\n\nBrandtHill (1):\n clues: update clue text for stealing from ardougne chest\n\nBrennan Williams (1):\n shift anti drag: fix default bank drag delay\n\nCody Brown (1):\n menu swapper: essence mine teleport menu, swap talk-to with teleport on distentor and aubury\n\nDaniel (2):\n Reset Discord status after a while of being in menu (#9116)\n skillcalculator: Don\'t clear fields when re-loading current skill\n\nDeliciousLunch55 (4):\n BeginnerMapClue: Add Fairy Ring code to Wizard\'s Tower clue hint\n cannon plugin: add cannoning spot for Lizard Shamans\n cannon plugin: update Gnome Stronghold dungeon Bloodvelds cannon location. (#11028)\n cannon: Add Black Knights cannoning spot in Taverley Dungeon (#11046)\n\nHydrox6 (1):\n api: fix venom hitsplat sprite id\n\nH\xe5kon Rosseland Paulsen (1):\n menu swapper: add shift-modifier to bank deposit box\n\nJZomerlei (1):\n chatcommands: Don\'t remove spaces before cleared word (#11017)\n\nJordan Atwood (4):\n clues: Create NamedObjectClueScroll interface\n SkillChallengeClue: Highlight broken Dorgesh-kaan lamps\n HotColdLocation: Center some location spots\n widget: Expose widget model getters and setters\n\nJustin Hiltz (2):\n worldmap: Add Prifddinas mining sites (#11018)\n custom cursor: add option to use equipped weapon\n\nMax Weber (3):\n runelite-client: Make gauntlet timer layoutable\n music: correctly recreate volume widgets after relogs\n discord: don\'t throw NPE when checking timeout on training states\n\nMichael (1):\n loottracker: add average per kill to subtitle tooltip\n\nRon Young (2):\n runelite-api: expose item model information\n ChatboxItemSearch: check for duplicate item images\n\nRyan Hermstein (1):\n clues: update Eluned cryptic clue message\n\nThatGamerBlue (4):\n rlapi: MessageNode extends CacheableNode (but Node is close enough)\n chatfilter: add filtering by username\n scripts: add FriendUpdate and IgnoreUpdate\n friendicons: add note icon in friends/ignore list\n\nTheStonedTurtle (1):\n Revert "opponentinfo: add opponent\'s opponent for npcs"\n\nTomas Slusny (2):\n Add support for component tooltips\n Migrate XpGlobesOverlay tooltips to component tooltips\n\nTrevor (3):\n client: add session and config file arguments\n client: fix default sessionfile/config args\n spec counter plugin: fix other NPC hitsplats affecting specs\n\nadwitkow (1):\n worldmap: add targets to Wilderness Levers & clarify their tooltips\n\ndekvall (8):\n widgetid: fix lms ingame info\n inventory grid: fix showing the replaced item in the initial spot\n ground items: add support for quantity thresholds\n menu entry swapper: update essence mine description to include all npcs\n object indicators: add support for multiple colors\n drift net fishing: add plugin\n menu entry swapper: swap nets on annette\n herbiboar: use guaranteed tracks when highlighting path\n\nmelkypie (4):\n scripts: use ScriptPostFired event for scripts that callback at the end of the script\n friendslist: update titles using onScriptPostFired rather than onGameTick\n timetracking: add ability to sort timers\n timetracking: add timer warning colors\n\nraqes (2):\n interface styles: Fix 2005 prayer tab fixed viewport\n interface styles: Add 2006 interface\n
\n',image:"/img/blog/1.6.10-Release/dps.png"}}}]);
+//# sourceMappingURL=122.82193971.chunk.js.map
\ No newline at end of file
diff --git a/static/js/122.efc7d1e4.chunk.js.map b/static/js/122.82193971.chunk.js.map
similarity index 99%
rename from static/js/122.efc7d1e4.chunk.js.map
rename to static/js/122.82193971.chunk.js.map
index 70b686eab..f179f8709 100644
--- a/static/js/122.efc7d1e4.chunk.js.map
+++ b/static/js/122.82193971.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-03-26-10-00-1.6.10-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8DAA8D,OAAS,OAAO,KAAO,mvPAAkwP,MAAQ","file":"static/js/122.efc7d1e4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.10 Release\",\"description\":\"Damage counter, drift net plugin, and 2006-style interfaces\",\"author\":\"Adam\",\"body\":\"A DPS counter plugin has been added which displays your DPS, or just total\\ndamage, to NPCs. If you are in a\\nparty , it will show a\\nbreakdown of each member's damage.
\\n
\\nA drift net fishing plugin was added which shows the status of your nets and\\nhighlights any fish you haven't tagged
\\n
\\nThe interface styles plugin has an additional new 2006 interface style
\\n
\\nThe friend notes plugin can now display an icon next to friends who have notes
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the music plugin sliders sometimes not working \\nThe spec counter plugin now uses hitsplats to determine spec hit instead of\\nxpdrops - fixing it to work more reliably in scaled raids and other situations\\nwhere the hitpoints xp multiplier is not constant \\nExtra mouse buttons (4+) are now prevented from clicking in-game \\nThe raids scout overlay now includes the world's region (US/GB/AU/DE) \\nFix the agility overlay laps remaining to account for agility pyramid bonus xp \\nAdd Lovakite rocks to the mining respawn timer \\nAdd Nightmare dungeon and boss areas to Discord game events and skybox \\nAdd menu swap for essence mine teleport \\nAdd cannon spot for Lizard Shamans and Black Knights \\nFix the venom hitsplat image in the poison infobox \\nAdd deposit boxes to shift-click deposit \\nAdd tooltips to the Prifddinas mining sites on the world map \\nThe custom cursor plugin now has an option to set your cursor to the weapon\\nyou have equipped \\nThe chatfilter can now also filter messages by player name \\nAdd world map teleport targets to wilderness levers \\nGround items now supports quantity thresholds, eg: chaos rune>100
\\nThe object indicators plugin now supports per-indicator colors \\nThe time tracking plugin's timers are now sorted in ascending order, and have\\na warning color when they are low \\nThe Herbiboar plugin can now indicate the guaranteed tracks \\nThe Sarachnis respawn timer has been updated to 10 seconds \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 25 contributors this release!
\\nAdam (23):\\n speccounter: use hitsplats for determining spec hit\\n interface styles: only adjust widget positions when tli is resized\\n ui: correct cursor hotspot to 0,0\\n opponentinfo: account for panel border in overlay size\\n experience: remove unnecessary Math.floor() calls\\n linepanelcomponent: remove empty string text component renders\\n components: use common Text.removeTags\\n panelcomponent: fix removing final gap from total width/height\\n client: synchronize some calls to ImageIO.read()\\n hiscore panel: autocomplete recent search history\\n checkstyle: enforce no whitespace at end of line\\n overlay: add mouseover callback\\n client: add dps plugin\\n keyremapping: add option to block extra mouse buttons\\n keyremapping: add test for typing mode change\\n chatcommands: fix showing -1 experience/rank in lvl\\n client: block extra mouse keys\\n http-api: add world region to World\\n raids: add world region to scout overlay\\n api: make IterableHashTable generic\\n clientloader: use fallback config if gamepack fails to load\\n clientloader: don't fallback to Jagex hostnames when using fallback config\\n boss timers: update Sarachnis time to 10 seconds\\n\\nAlexsuperfly (4):\\n agility: set lastObstacleXp to 0 on courses that use worldpoints\\n agility: account for bonus exp from agility pyramid\\n mining: show respawn timers after GameState change\\n mining: add Lovakite rocks\\n\\nAustin (2):\\n Added nightmare dungeon and nightmare boss to discord game events.\\n skybox: add nightmare dungeon area\\n\\nBrandtHill (1):\\n clues: update clue text for stealing from ardougne chest\\n\\nBrennan Williams (1):\\n shift anti drag: fix default bank drag delay\\n\\nCody Brown (1):\\n menu swapper: essence mine teleport menu, swap talk-to with teleport on distentor and aubury\\n\\nDaniel (2):\\n Reset Discord status after a while of being in menu (#9116)\\n skillcalculator: Don't clear fields when re-loading current skill\\n\\nDeliciousLunch55 (4):\\n BeginnerMapClue: Add Fairy Ring code to Wizard's Tower clue hint\\n cannon plugin: add cannoning spot for Lizard Shamans\\n cannon plugin: update Gnome Stronghold dungeon Bloodvelds cannon location. (#11028)\\n cannon: Add Black Knights cannoning spot in Taverley Dungeon (#11046)\\n\\nHydrox6 (1):\\n api: fix venom hitsplat sprite id\\n\\nHåkon Rosseland Paulsen (1):\\n menu swapper: add shift-modifier to bank deposit box\\n\\nJZomerlei (1):\\n chatcommands: Don't remove spaces before cleared word (#11017)\\n\\nJordan Atwood (4):\\n clues: Create NamedObjectClueScroll interface\\n SkillChallengeClue: Highlight broken Dorgesh-kaan lamps\\n HotColdLocation: Center some location spots\\n widget: Expose widget model getters and setters\\n\\nJustin Hiltz (2):\\n worldmap: Add Prifddinas mining sites (#11018)\\n custom cursor: add option to use equipped weapon\\n\\nMax Weber (3):\\n runelite-client: Make gauntlet timer layoutable\\n music: correctly recreate volume widgets after relogs\\n discord: don't throw NPE when checking timeout on training states\\n\\nMichael (1):\\n loottracker: add average per kill to subtitle tooltip\\n\\nRon Young (2):\\n runelite-api: expose item model information\\n ChatboxItemSearch: check for duplicate item images\\n\\nRyan Hermstein (1):\\n clues: update Eluned cryptic clue message\\n\\nThatGamerBlue (4):\\n rlapi: MessageNode extends CacheableNode (but Node is close enough)\\n chatfilter: add filtering by username\\n scripts: add FriendUpdate and IgnoreUpdate\\n friendicons: add note icon in friends/ignore list\\n\\nTheStonedTurtle (1):\\n Revert "opponentinfo: add opponent's opponent for npcs"\\n\\nTomas Slusny (2):\\n Add support for component tooltips\\n Migrate XpGlobesOverlay tooltips to component tooltips\\n\\nTrevor (3):\\n client: add session and config file arguments\\n client: fix default sessionfile/config args\\n spec counter plugin: fix other NPC hitsplats affecting specs\\n\\nadwitkow (1):\\n worldmap: add targets to Wilderness Levers & clarify their tooltips\\n\\ndekvall (8):\\n widgetid: fix lms ingame info\\n inventory grid: fix showing the replaced item in the initial spot\\n ground items: add support for quantity thresholds\\n menu entry swapper: update essence mine description to include all npcs\\n object indicators: add support for multiple colors\\n drift net fishing: add plugin\\n menu entry swapper: swap nets on annette\\n herbiboar: use guaranteed tracks when highlighting path\\n\\nmelkypie (4):\\n scripts: use ScriptPostFired event for scripts that callback at the end of the script\\n friendslist: update titles using onScriptPostFired rather than onGameTick\\n timetracking: add ability to sort timers\\n timetracking: add timer warning colors\\n\\nraqes (2):\\n interface styles: Fix 2005 prayer tab fixed viewport\\n interface styles: Add 2006 interface\\n
\\n\",\"image\":\"/img/blog/1.6.10-Release/dps.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-03-26-10-00-1.6.10-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8DAA8D,OAAS,OAAO,KAAO,mvPAAkwP,MAAQ","file":"static/js/122.82193971.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.10 Release\",\"description\":\"Damage counter, drift net plugin, and 2006-style interfaces\",\"author\":\"Adam\",\"body\":\"A DPS counter plugin has been added which displays your DPS, or just total\\ndamage, to NPCs. If you are in a\\nparty , it will show a\\nbreakdown of each member's damage.
\\n
\\nA drift net fishing plugin was added which shows the status of your nets and\\nhighlights any fish you haven't tagged
\\n
\\nThe interface styles plugin has an additional new 2006 interface style
\\n
\\nThe friend notes plugin can now display an icon next to friends who have notes
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix the music plugin sliders sometimes not working \\nThe spec counter plugin now uses hitsplats to determine spec hit instead of\\nxpdrops - fixing it to work more reliably in scaled raids and other situations\\nwhere the hitpoints xp multiplier is not constant \\nExtra mouse buttons (4+) are now prevented from clicking in-game \\nThe raids scout overlay now includes the world's region (US/GB/AU/DE) \\nFix the agility overlay laps remaining to account for agility pyramid bonus xp \\nAdd Lovakite rocks to the mining respawn timer \\nAdd Nightmare dungeon and boss areas to Discord game events and skybox \\nAdd menu swap for essence mine teleport \\nAdd cannon spot for Lizard Shamans and Black Knights \\nFix the venom hitsplat image in the poison infobox \\nAdd deposit boxes to shift-click deposit \\nAdd tooltips to the Prifddinas mining sites on the world map \\nThe custom cursor plugin now has an option to set your cursor to the weapon\\nyou have equipped \\nThe chatfilter can now also filter messages by player name \\nAdd world map teleport targets to wilderness levers \\nGround items now supports quantity thresholds, eg: chaos rune>100
\\nThe object indicators plugin now supports per-indicator colors \\nThe time tracking plugin's timers are now sorted in ascending order, and have\\na warning color when they are low \\nThe Herbiboar plugin can now indicate the guaranteed tracks \\nThe Sarachnis respawn timer has been updated to 10 seconds \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 25 contributors this release!
\\nAdam (23):\\n speccounter: use hitsplats for determining spec hit\\n interface styles: only adjust widget positions when tli is resized\\n ui: correct cursor hotspot to 0,0\\n opponentinfo: account for panel border in overlay size\\n experience: remove unnecessary Math.floor() calls\\n linepanelcomponent: remove empty string text component renders\\n components: use common Text.removeTags\\n panelcomponent: fix removing final gap from total width/height\\n client: synchronize some calls to ImageIO.read()\\n hiscore panel: autocomplete recent search history\\n checkstyle: enforce no whitespace at end of line\\n overlay: add mouseover callback\\n client: add dps plugin\\n keyremapping: add option to block extra mouse buttons\\n keyremapping: add test for typing mode change\\n chatcommands: fix showing -1 experience/rank in lvl\\n client: block extra mouse keys\\n http-api: add world region to World\\n raids: add world region to scout overlay\\n api: make IterableHashTable generic\\n clientloader: use fallback config if gamepack fails to load\\n clientloader: don't fallback to Jagex hostnames when using fallback config\\n boss timers: update Sarachnis time to 10 seconds\\n\\nAlexsuperfly (4):\\n agility: set lastObstacleXp to 0 on courses that use worldpoints\\n agility: account for bonus exp from agility pyramid\\n mining: show respawn timers after GameState change\\n mining: add Lovakite rocks\\n\\nAustin (2):\\n Added nightmare dungeon and nightmare boss to discord game events.\\n skybox: add nightmare dungeon area\\n\\nBrandtHill (1):\\n clues: update clue text for stealing from ardougne chest\\n\\nBrennan Williams (1):\\n shift anti drag: fix default bank drag delay\\n\\nCody Brown (1):\\n menu swapper: essence mine teleport menu, swap talk-to with teleport on distentor and aubury\\n\\nDaniel (2):\\n Reset Discord status after a while of being in menu (#9116)\\n skillcalculator: Don't clear fields when re-loading current skill\\n\\nDeliciousLunch55 (4):\\n BeginnerMapClue: Add Fairy Ring code to Wizard's Tower clue hint\\n cannon plugin: add cannoning spot for Lizard Shamans\\n cannon plugin: update Gnome Stronghold dungeon Bloodvelds cannon location. (#11028)\\n cannon: Add Black Knights cannoning spot in Taverley Dungeon (#11046)\\n\\nHydrox6 (1):\\n api: fix venom hitsplat sprite id\\n\\nHåkon Rosseland Paulsen (1):\\n menu swapper: add shift-modifier to bank deposit box\\n\\nJZomerlei (1):\\n chatcommands: Don't remove spaces before cleared word (#11017)\\n\\nJordan Atwood (4):\\n clues: Create NamedObjectClueScroll interface\\n SkillChallengeClue: Highlight broken Dorgesh-kaan lamps\\n HotColdLocation: Center some location spots\\n widget: Expose widget model getters and setters\\n\\nJustin Hiltz (2):\\n worldmap: Add Prifddinas mining sites (#11018)\\n custom cursor: add option to use equipped weapon\\n\\nMax Weber (3):\\n runelite-client: Make gauntlet timer layoutable\\n music: correctly recreate volume widgets after relogs\\n discord: don't throw NPE when checking timeout on training states\\n\\nMichael (1):\\n loottracker: add average per kill to subtitle tooltip\\n\\nRon Young (2):\\n runelite-api: expose item model information\\n ChatboxItemSearch: check for duplicate item images\\n\\nRyan Hermstein (1):\\n clues: update Eluned cryptic clue message\\n\\nThatGamerBlue (4):\\n rlapi: MessageNode extends CacheableNode (but Node is close enough)\\n chatfilter: add filtering by username\\n scripts: add FriendUpdate and IgnoreUpdate\\n friendicons: add note icon in friends/ignore list\\n\\nTheStonedTurtle (1):\\n Revert "opponentinfo: add opponent's opponent for npcs"\\n\\nTomas Slusny (2):\\n Add support for component tooltips\\n Migrate XpGlobesOverlay tooltips to component tooltips\\n\\nTrevor (3):\\n client: add session and config file arguments\\n client: fix default sessionfile/config args\\n spec counter plugin: fix other NPC hitsplats affecting specs\\n\\nadwitkow (1):\\n worldmap: add targets to Wilderness Levers & clarify their tooltips\\n\\ndekvall (8):\\n widgetid: fix lms ingame info\\n inventory grid: fix showing the replaced item in the initial spot\\n ground items: add support for quantity thresholds\\n menu entry swapper: update essence mine description to include all npcs\\n object indicators: add support for multiple colors\\n drift net fishing: add plugin\\n menu entry swapper: swap nets on annette\\n herbiboar: use guaranteed tracks when highlighting path\\n\\nmelkypie (4):\\n scripts: use ScriptPostFired event for scripts that callback at the end of the script\\n friendslist: update titles using onScriptPostFired rather than onGameTick\\n timetracking: add ability to sort timers\\n timetracking: add timer warning colors\\n\\nraqes (2):\\n interface styles: Fix 2005 prayer tab fixed viewport\\n interface styles: Add 2006 interface\\n
\\n\",\"image\":\"/img/blog/1.6.10-Release/dps.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/123.26b4cb98.chunk.js b/static/js/123.62fad0a2.chunk.js
similarity index 99%
rename from static/js/123.26b4cb98.chunk.js
rename to static/js/123.62fad0a2.chunk.js
index 7d0230bc2..113962110 100644
--- a/static/js/123.26b4cb98.chunk.js
+++ b/static/js/123.62fad0a2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[123],{398:function(e,n){e.exports={title:"1.6.11 Release",description:"Overlay resizing, grand exchange fuzzy search, and prayer orb remaining time",author:"Jordan",body:'Overlays, such as panels and screen markers can now be resized by holding Alt and\ndragging their edges/corners. Thanks to @deathbeam for adding this\nfeature.
\n
\nThe Infobox wrap count
setting has been removed from RuneLite\'s config. You can resize the\ninfobox container to achieve the same effect, as shown below. If you previously had Infobox wrap count
\nset to a value other than 4, you will have to alt-drag and resize the overlay to cause the infoboxes to\nwrap again at the desired number. Also, as was the case prior to this release, you can reset an overlay\'s\nposition and size using Alt and right-clicking the overlay.
\n
\nThe Grand Exchange plugin now has an\noption to use fuzzy searching, allowing you to search abbreviations or imprecise spellings to find\nitems. Thanks to @dennisdev for this great enhancement!
\n
\nThe Prayer plugin now has an option to replace\nyour prayer points display in your prayer orb with the time remaining until your prayer points\nexpire. Thanks to @dekvall for this feature.
\n
\nThe Anti Drag plugin has been updated to remove the requirement of the Shift key when\noutside of PVP scenarios. An On Shift Only
option has been added to the plugin, which must be\nenabled to work both in and outside of PVP.
\nThere are also several smaller improvements and bug fixes, including:
\n\nBank searches are now more responsive with the\nBank plugin active \nPlayers can no longer accidentally reposition their mouse tooltips, and players whose mouse\ntooltips appear to be displaying far away from their cursor should see it display in the correct\nlocation now \nSupport has been added to various plugins for gilded axe and pickaxe animations \nClue Scrolls referencing Immenizz or\nvambraces are now properly recognized again since their ingame wording had changed last week \nThe World Hopper plugin no longer tries\nto hop into full worlds when hopping up/down \nScreenshots are no longer taken of your\nown death with the Screenshot Friend Deaths
option enabled \nThe Music and\nCamera plugins now display tooltips showing\nthe slider value when using the ingame volume and camera zoom sliders \nThe Camera plugin has gained options to invert\nthe camera pitch and yaw mouse controls \nThe Music plugin now has an option to mute\nprayer sounds \nWhen highlighting players with the Player Indicators\nplugin , the "Walk here" menu entry\nis now also highlighted \nAn option to hide the precise combat level has been added to the Combat Level\nplugin \nThe Agility plugin now highlights the stick\non the Werewolf agility course \nThe Fishing plugin properly updates its\noverlay to show that you are not fishing when you\'re interrupted by certain activities, such as\nlevel-up dialogs \nThe Quest List plugin no longer causes\nerrors when enabling it after already being logged in \nThe Loot Tracker tracks herbiboar loot\nwhen your herb sack is open and has learned that potion drinking, etc., is not loot when hunting\nthe herbiboar \nThe Nightmare Zone and\nDiscord plugins no longer think you are in\nthe Nightmare Zone when fighting the King Black Dragon \nSlayer tasks assigned to be completed within the Jormungand\'s Prison are now properly recognized\nby the Slayer plugin \nThe Run Energy plugin learned the new\ngraceful set energy recovery mechanics from the update in January \nYou are no longer considered to be "not woodcutting" by the Woodcutting\nplugin when there is a long pause between\nlogs being chopped \nThe Boosts Information plugin no\nlonger shows the restore overlay when it does not show any visible boosts \nThe Kourend Library plugin now shows\nbooks which are in your inventory versus not yet found in the library in different colors in its\nside panel, and has an option to show a hint arrow pointing toward your target book \nThe Items Kept on Death plugin \nlearned the updated Eternal teleport crystal value \nMagic trees now animate correctly with the GPU plugin on \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 31 contributors this release!
\nAaronPoon (1):\n agility: highlight \'Stick\' in Werewolf Agility Course\n\nAdam (14):\n world controller: return service unavailable if world list isn\'t loaded\n feed controller: return service unavailable if feed isn\'t loaded\n client session manager: fix detecting logged in state\n speccounter: fix some bugs and edge cases\n stretchedmode: copy mouse event consumed flag when translating mouse events\n client: add config option for blocking extra mouse buttons\n party plugin: play sound effects on client thread\n hooks: use monotonic clock for main loop tasks\n item service: remove old item searching and item lookup methods\n antidrag: add option to disable in pvp\n worldhopper: skip over almost full worlds\n screenshot plugin: fix screenshot friend deaths to not screenshot own death\n emoji plugin: load emojis on client thread\n devtools: add infobox generator\n\nAlexsuperfly (1):\n OverlayRenderer: prevent moving DYNAMIC and TOOLTIP overlays\n\nBrandt Hill (1):\n fishing: Check player animation to update fishing status\n\nCrow (2):\n NPC Agression Timer: fix typo in notification\n Add eternal teleport crystal value offset\n\nDaniel (1):\n questlist: Ensure filter has non-null state on startup\n\nDennis (1):\n ge plugin: add fuzzy search option\n\nDeon Zhao (1):\n loottracker: Track herbiboar loot with an open herb sack\n\nHydrox6 (8):\n clues: update Immenizz\'s master clue to reflect his NPC\'s name change\n api: add gilded axe animation\n woodcutting: add support for gilded axe\n idle notifier: add support for gilded axe\n wintertodt: add support for gilded axe\n api: add gilded pickaxe animations\n idle notifier: add support for gilded pickaxe\n motherlode: add support for gilded pickaxe\n\nJordan Atwood (5):\n boosts: Hide restore timer when no boosts are visible\n woodcutting: Reduce visibilities, mark Nullables\n woodcutting: Add axe animation matching helper method\n woodcutting: Fix overlay hiding during long chop delays\n HotColdLocation: Center some location spots\n\nLewis (1):\n music plugin: add option to mute prayer sounds\n\nLotto (4):\n api: remove Follow and Trade menu actions\n player-indicators: break out decorating code into own methods\n player-indicators: move menu logic to ClientTick\n player-indicators: highlight the \'Walk here\' menu entry too\n\nLucas Snel (1):\n combatlevel plugin: add option for showing precise combat level\n\nMagic fTail (1):\n chatmessagemanager: use default timestamp if none is provided\n\nMax Weber (13):\n grounditems: manually match item thresholds\n grounditems: make priceChecks threadsafe\n grounditems: reset on the executor thread\n Notifier: Reuse Clip instances\n http-api: remove unused fields from NPCInfo\n kourendlibrary: don\'t throw npe when starting on the login screen\n runelite-client: update ItemID references\n runelite-api: add stopNow to cleanly shutdown the client\n eventbus: make higher priority events fire first\n camera: add option to invert camera mouse controls\n runelite-client: add ClientShutdown event\n grounditems: don\'t crash when having a duplicate highlight value\n FlatTextField: forward focus requests to children\n\nMorgan Lewis (1):\n worldmap: Fix slayer ring teleport location\n\nRobert N\xf6nnig (1):\n prayer: Hide prayer flick indicator when minimap is hidden (#11138)\n\nSean Dewar (4):\n runenergy: update graceful recovery rate logic\n music: slider volume percentage tooltips\n camera: zoom slider tooltip & zoom constants\n music: revalidate slider handle on creation\n\nSirGirion (1):\n emoteclue: Replace vamb with vambraces in clue text\n\nTheFlemoid (1):\n WidgetOverlay: Use TOP_RIGHT anchor for LMS widgets\n\nTheStonedTurtle (2):\n nightmarezone: Fix area check to exclude KBD lair\n discord: Fix NMZ area check to exclude KBD lair\n\nThomas (1):\n slayer plugin: add Jormungand\'s Prison task location\n\nTomas Slusny (7):\n Reset repositioned tooltip overlays\n Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager\n Add support for resizable overlays\n Make overlay resizing configure wrapping\n Add OverlayPanel that contains PanelComponent\n Make overlays use OverlayPanel instead of Overlay\n Skip processing of input listeners with consumed events\n\nTrevor (1):\n loot tracker plugin: submit loot on client shutdown (#11243)\n\nTyler Davis (1):\n swingutil: Set button tooltip text in addModalTooltip\n\nUnknown (1):\n Update Plugin Hub risk label\n\ndekvall (1):\n prayer: display prayer time remaining in prayer orb\n\njostn (1):\n HotColdLocation: Center Rimmington mine dig location\n\nrfick (2):\n kourendlibrary: Indicate books not in inventory\n kourendlibrary: Show a hint arrow above target book\n\ntrimbe (1):\n bank plugin: improve responsiveness of bank searches\n\nypperlig (1):\n barrowsplugin: fix null pointer exception in region check\n
\n',image:"/img/blog/1.6.11-Release/overlay-resizing.gif"}}}]);
-//# sourceMappingURL=123.26b4cb98.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[123],{399:function(e,n){e.exports={title:"1.6.11 Release",description:"Overlay resizing, grand exchange fuzzy search, and prayer orb remaining time",author:"Jordan",body:'Overlays, such as panels and screen markers can now be resized by holding Alt and\ndragging their edges/corners. Thanks to @deathbeam for adding this\nfeature.
\n
\nThe Infobox wrap count
setting has been removed from RuneLite\'s config. You can resize the\ninfobox container to achieve the same effect, as shown below. If you previously had Infobox wrap count
\nset to a value other than 4, you will have to alt-drag and resize the overlay to cause the infoboxes to\nwrap again at the desired number. Also, as was the case prior to this release, you can reset an overlay\'s\nposition and size using Alt and right-clicking the overlay.
\n
\nThe Grand Exchange plugin now has an\noption to use fuzzy searching, allowing you to search abbreviations or imprecise spellings to find\nitems. Thanks to @dennisdev for this great enhancement!
\n
\nThe Prayer plugin now has an option to replace\nyour prayer points display in your prayer orb with the time remaining until your prayer points\nexpire. Thanks to @dekvall for this feature.
\n
\nThe Anti Drag plugin has been updated to remove the requirement of the Shift key when\noutside of PVP scenarios. An On Shift Only
option has been added to the plugin, which must be\nenabled to work both in and outside of PVP.
\nThere are also several smaller improvements and bug fixes, including:
\n\nBank searches are now more responsive with the\nBank plugin active \nPlayers can no longer accidentally reposition their mouse tooltips, and players whose mouse\ntooltips appear to be displaying far away from their cursor should see it display in the correct\nlocation now \nSupport has been added to various plugins for gilded axe and pickaxe animations \nClue Scrolls referencing Immenizz or\nvambraces are now properly recognized again since their ingame wording had changed last week \nThe World Hopper plugin no longer tries\nto hop into full worlds when hopping up/down \nScreenshots are no longer taken of your\nown death with the Screenshot Friend Deaths
option enabled \nThe Music and\nCamera plugins now display tooltips showing\nthe slider value when using the ingame volume and camera zoom sliders \nThe Camera plugin has gained options to invert\nthe camera pitch and yaw mouse controls \nThe Music plugin now has an option to mute\nprayer sounds \nWhen highlighting players with the Player Indicators\nplugin , the "Walk here" menu entry\nis now also highlighted \nAn option to hide the precise combat level has been added to the Combat Level\nplugin \nThe Agility plugin now highlights the stick\non the Werewolf agility course \nThe Fishing plugin properly updates its\noverlay to show that you are not fishing when you\'re interrupted by certain activities, such as\nlevel-up dialogs \nThe Quest List plugin no longer causes\nerrors when enabling it after already being logged in \nThe Loot Tracker tracks herbiboar loot\nwhen your herb sack is open and has learned that potion drinking, etc., is not loot when hunting\nthe herbiboar \nThe Nightmare Zone and\nDiscord plugins no longer think you are in\nthe Nightmare Zone when fighting the King Black Dragon \nSlayer tasks assigned to be completed within the Jormungand\'s Prison are now properly recognized\nby the Slayer plugin \nThe Run Energy plugin learned the new\ngraceful set energy recovery mechanics from the update in January \nYou are no longer considered to be "not woodcutting" by the Woodcutting\nplugin when there is a long pause between\nlogs being chopped \nThe Boosts Information plugin no\nlonger shows the restore overlay when it does not show any visible boosts \nThe Kourend Library plugin now shows\nbooks which are in your inventory versus not yet found in the library in different colors in its\nside panel, and has an option to show a hint arrow pointing toward your target book \nThe Items Kept on Death plugin \nlearned the updated Eternal teleport crystal value \nMagic trees now animate correctly with the GPU plugin on \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 31 contributors this release!
\nAaronPoon (1):\n agility: highlight \'Stick\' in Werewolf Agility Course\n\nAdam (14):\n world controller: return service unavailable if world list isn\'t loaded\n feed controller: return service unavailable if feed isn\'t loaded\n client session manager: fix detecting logged in state\n speccounter: fix some bugs and edge cases\n stretchedmode: copy mouse event consumed flag when translating mouse events\n client: add config option for blocking extra mouse buttons\n party plugin: play sound effects on client thread\n hooks: use monotonic clock for main loop tasks\n item service: remove old item searching and item lookup methods\n antidrag: add option to disable in pvp\n worldhopper: skip over almost full worlds\n screenshot plugin: fix screenshot friend deaths to not screenshot own death\n emoji plugin: load emojis on client thread\n devtools: add infobox generator\n\nAlexsuperfly (1):\n OverlayRenderer: prevent moving DYNAMIC and TOOLTIP overlays\n\nBrandt Hill (1):\n fishing: Check player animation to update fishing status\n\nCrow (2):\n NPC Agression Timer: fix typo in notification\n Add eternal teleport crystal value offset\n\nDaniel (1):\n questlist: Ensure filter has non-null state on startup\n\nDennis (1):\n ge plugin: add fuzzy search option\n\nDeon Zhao (1):\n loottracker: Track herbiboar loot with an open herb sack\n\nHydrox6 (8):\n clues: update Immenizz\'s master clue to reflect his NPC\'s name change\n api: add gilded axe animation\n woodcutting: add support for gilded axe\n idle notifier: add support for gilded axe\n wintertodt: add support for gilded axe\n api: add gilded pickaxe animations\n idle notifier: add support for gilded pickaxe\n motherlode: add support for gilded pickaxe\n\nJordan Atwood (5):\n boosts: Hide restore timer when no boosts are visible\n woodcutting: Reduce visibilities, mark Nullables\n woodcutting: Add axe animation matching helper method\n woodcutting: Fix overlay hiding during long chop delays\n HotColdLocation: Center some location spots\n\nLewis (1):\n music plugin: add option to mute prayer sounds\n\nLotto (4):\n api: remove Follow and Trade menu actions\n player-indicators: break out decorating code into own methods\n player-indicators: move menu logic to ClientTick\n player-indicators: highlight the \'Walk here\' menu entry too\n\nLucas Snel (1):\n combatlevel plugin: add option for showing precise combat level\n\nMagic fTail (1):\n chatmessagemanager: use default timestamp if none is provided\n\nMax Weber (13):\n grounditems: manually match item thresholds\n grounditems: make priceChecks threadsafe\n grounditems: reset on the executor thread\n Notifier: Reuse Clip instances\n http-api: remove unused fields from NPCInfo\n kourendlibrary: don\'t throw npe when starting on the login screen\n runelite-client: update ItemID references\n runelite-api: add stopNow to cleanly shutdown the client\n eventbus: make higher priority events fire first\n camera: add option to invert camera mouse controls\n runelite-client: add ClientShutdown event\n grounditems: don\'t crash when having a duplicate highlight value\n FlatTextField: forward focus requests to children\n\nMorgan Lewis (1):\n worldmap: Fix slayer ring teleport location\n\nRobert N\xf6nnig (1):\n prayer: Hide prayer flick indicator when minimap is hidden (#11138)\n\nSean Dewar (4):\n runenergy: update graceful recovery rate logic\n music: slider volume percentage tooltips\n camera: zoom slider tooltip & zoom constants\n music: revalidate slider handle on creation\n\nSirGirion (1):\n emoteclue: Replace vamb with vambraces in clue text\n\nTheFlemoid (1):\n WidgetOverlay: Use TOP_RIGHT anchor for LMS widgets\n\nTheStonedTurtle (2):\n nightmarezone: Fix area check to exclude KBD lair\n discord: Fix NMZ area check to exclude KBD lair\n\nThomas (1):\n slayer plugin: add Jormungand\'s Prison task location\n\nTomas Slusny (7):\n Reset repositioned tooltip overlays\n Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager\n Add support for resizable overlays\n Make overlay resizing configure wrapping\n Add OverlayPanel that contains PanelComponent\n Make overlays use OverlayPanel instead of Overlay\n Skip processing of input listeners with consumed events\n\nTrevor (1):\n loot tracker plugin: submit loot on client shutdown (#11243)\n\nTyler Davis (1):\n swingutil: Set button tooltip text in addModalTooltip\n\nUnknown (1):\n Update Plugin Hub risk label\n\ndekvall (1):\n prayer: display prayer time remaining in prayer orb\n\njostn (1):\n HotColdLocation: Center Rimmington mine dig location\n\nrfick (2):\n kourendlibrary: Indicate books not in inventory\n kourendlibrary: Show a hint arrow above target book\n\ntrimbe (1):\n bank plugin: improve responsiveness of bank searches\n\nypperlig (1):\n barrowsplugin: fix null pointer exception in region check\n
\n',image:"/img/blog/1.6.11-Release/overlay-resizing.gif"}}}]);
+//# sourceMappingURL=123.62fad0a2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/123.26b4cb98.chunk.js.map b/static/js/123.62fad0a2.chunk.js.map
similarity index 99%
rename from static/js/123.26b4cb98.chunk.js.map
rename to static/js/123.62fad0a2.chunk.js.map
index 59139bbaf..c432e8b8a 100644
--- a/static/js/123.26b4cb98.chunk.js.map
+++ b/static/js/123.62fad0a2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-04-16-10-00-1.6.11-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+EAA+E,OAAS,SAAS,KAAO,qtYAAq3Y,MAAQ","file":"static/js/123.26b4cb98.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.11 Release\",\"description\":\"Overlay resizing, grand exchange fuzzy search, and prayer orb remaining time\",\"author\":\"Jordan\",\"body\":\"Overlays, such as panels and screen markers can now be resized by holding Alt and\\ndragging their edges/corners. Thanks to @deathbeam for adding this\\nfeature.
\\n
\\nThe Infobox wrap count
setting has been removed from RuneLite's config. You can resize the\\ninfobox container to achieve the same effect, as shown below. If you previously had Infobox wrap count
\\nset to a value other than 4, you will have to alt-drag and resize the overlay to cause the infoboxes to\\nwrap again at the desired number. Also, as was the case prior to this release, you can reset an overlay's\\nposition and size using Alt and right-clicking the overlay.
\\n
\\nThe Grand Exchange plugin now has an\\noption to use fuzzy searching, allowing you to search abbreviations or imprecise spellings to find\\nitems. Thanks to @dennisdev for this great enhancement!
\\n
\\nThe Prayer plugin now has an option to replace\\nyour prayer points display in your prayer orb with the time remaining until your prayer points\\nexpire. Thanks to @dekvall for this feature.
\\n
\\nThe Anti Drag plugin has been updated to remove the requirement of the Shift key when\\noutside of PVP scenarios. An On Shift Only
option has been added to the plugin, which must be\\nenabled to work both in and outside of PVP.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nBank searches are now more responsive with the\\nBank plugin active \\nPlayers can no longer accidentally reposition their mouse tooltips, and players whose mouse\\ntooltips appear to be displaying far away from their cursor should see it display in the correct\\nlocation now \\nSupport has been added to various plugins for gilded axe and pickaxe animations \\nClue Scrolls referencing Immenizz or\\nvambraces are now properly recognized again since their ingame wording had changed last week \\nThe World Hopper plugin no longer tries\\nto hop into full worlds when hopping up/down \\nScreenshots are no longer taken of your\\nown death with the Screenshot Friend Deaths
option enabled \\nThe Music and\\nCamera plugins now display tooltips showing\\nthe slider value when using the ingame volume and camera zoom sliders \\nThe Camera plugin has gained options to invert\\nthe camera pitch and yaw mouse controls \\nThe Music plugin now has an option to mute\\nprayer sounds \\nWhen highlighting players with the Player Indicators\\nplugin , the "Walk here" menu entry\\nis now also highlighted \\nAn option to hide the precise combat level has been added to the Combat Level\\nplugin \\nThe Agility plugin now highlights the stick\\non the Werewolf agility course \\nThe Fishing plugin properly updates its\\noverlay to show that you are not fishing when you're interrupted by certain activities, such as\\nlevel-up dialogs \\nThe Quest List plugin no longer causes\\nerrors when enabling it after already being logged in \\nThe Loot Tracker tracks herbiboar loot\\nwhen your herb sack is open and has learned that potion drinking, etc., is not loot when hunting\\nthe herbiboar \\nThe Nightmare Zone and\\nDiscord plugins no longer think you are in\\nthe Nightmare Zone when fighting the King Black Dragon \\nSlayer tasks assigned to be completed within the Jormungand's Prison are now properly recognized\\nby the Slayer plugin \\nThe Run Energy plugin learned the new\\ngraceful set energy recovery mechanics from the update in January \\nYou are no longer considered to be "not woodcutting" by the Woodcutting\\nplugin when there is a long pause between\\nlogs being chopped \\nThe Boosts Information plugin no\\nlonger shows the restore overlay when it does not show any visible boosts \\nThe Kourend Library plugin now shows\\nbooks which are in your inventory versus not yet found in the library in different colors in its\\nside panel, and has an option to show a hint arrow pointing toward your target book \\nThe Items Kept on Death plugin \\nlearned the updated Eternal teleport crystal value \\nMagic trees now animate correctly with the GPU plugin on \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 31 contributors this release!
\\nAaronPoon (1):\\n agility: highlight 'Stick' in Werewolf Agility Course\\n\\nAdam (14):\\n world controller: return service unavailable if world list isn't loaded\\n feed controller: return service unavailable if feed isn't loaded\\n client session manager: fix detecting logged in state\\n speccounter: fix some bugs and edge cases\\n stretchedmode: copy mouse event consumed flag when translating mouse events\\n client: add config option for blocking extra mouse buttons\\n party plugin: play sound effects on client thread\\n hooks: use monotonic clock for main loop tasks\\n item service: remove old item searching and item lookup methods\\n antidrag: add option to disable in pvp\\n worldhopper: skip over almost full worlds\\n screenshot plugin: fix screenshot friend deaths to not screenshot own death\\n emoji plugin: load emojis on client thread\\n devtools: add infobox generator\\n\\nAlexsuperfly (1):\\n OverlayRenderer: prevent moving DYNAMIC and TOOLTIP overlays\\n\\nBrandt Hill (1):\\n fishing: Check player animation to update fishing status\\n\\nCrow (2):\\n NPC Agression Timer: fix typo in notification\\n Add eternal teleport crystal value offset\\n\\nDaniel (1):\\n questlist: Ensure filter has non-null state on startup\\n\\nDennis (1):\\n ge plugin: add fuzzy search option\\n\\nDeon Zhao (1):\\n loottracker: Track herbiboar loot with an open herb sack\\n\\nHydrox6 (8):\\n clues: update Immenizz's master clue to reflect his NPC's name change\\n api: add gilded axe animation\\n woodcutting: add support for gilded axe\\n idle notifier: add support for gilded axe\\n wintertodt: add support for gilded axe\\n api: add gilded pickaxe animations\\n idle notifier: add support for gilded pickaxe\\n motherlode: add support for gilded pickaxe\\n\\nJordan Atwood (5):\\n boosts: Hide restore timer when no boosts are visible\\n woodcutting: Reduce visibilities, mark Nullables\\n woodcutting: Add axe animation matching helper method\\n woodcutting: Fix overlay hiding during long chop delays\\n HotColdLocation: Center some location spots\\n\\nLewis (1):\\n music plugin: add option to mute prayer sounds\\n\\nLotto (4):\\n api: remove Follow and Trade menu actions\\n player-indicators: break out decorating code into own methods\\n player-indicators: move menu logic to ClientTick\\n player-indicators: highlight the 'Walk here' menu entry too\\n\\nLucas Snel (1):\\n combatlevel plugin: add option for showing precise combat level\\n\\nMagic fTail (1):\\n chatmessagemanager: use default timestamp if none is provided\\n\\nMax Weber (13):\\n grounditems: manually match item thresholds\\n grounditems: make priceChecks threadsafe\\n grounditems: reset on the executor thread\\n Notifier: Reuse Clip instances\\n http-api: remove unused fields from NPCInfo\\n kourendlibrary: don't throw npe when starting on the login screen\\n runelite-client: update ItemID references\\n runelite-api: add stopNow to cleanly shutdown the client\\n eventbus: make higher priority events fire first\\n camera: add option to invert camera mouse controls\\n runelite-client: add ClientShutdown event\\n grounditems: don't crash when having a duplicate highlight value\\n FlatTextField: forward focus requests to children\\n\\nMorgan Lewis (1):\\n worldmap: Fix slayer ring teleport location\\n\\nRobert Nönnig (1):\\n prayer: Hide prayer flick indicator when minimap is hidden (#11138)\\n\\nSean Dewar (4):\\n runenergy: update graceful recovery rate logic\\n music: slider volume percentage tooltips\\n camera: zoom slider tooltip & zoom constants\\n music: revalidate slider handle on creation\\n\\nSirGirion (1):\\n emoteclue: Replace vamb with vambraces in clue text\\n\\nTheFlemoid (1):\\n WidgetOverlay: Use TOP_RIGHT anchor for LMS widgets\\n\\nTheStonedTurtle (2):\\n nightmarezone: Fix area check to exclude KBD lair\\n discord: Fix NMZ area check to exclude KBD lair\\n\\nThomas (1):\\n slayer plugin: add Jormungand's Prison task location\\n\\nTomas Slusny (7):\\n Reset repositioned tooltip overlays\\n Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager\\n Add support for resizable overlays\\n Make overlay resizing configure wrapping\\n Add OverlayPanel that contains PanelComponent\\n Make overlays use OverlayPanel instead of Overlay\\n Skip processing of input listeners with consumed events\\n\\nTrevor (1):\\n loot tracker plugin: submit loot on client shutdown (#11243)\\n\\nTyler Davis (1):\\n swingutil: Set button tooltip text in addModalTooltip\\n\\nUnknown (1):\\n Update Plugin Hub risk label\\n\\ndekvall (1):\\n prayer: display prayer time remaining in prayer orb\\n\\njostn (1):\\n HotColdLocation: Center Rimmington mine dig location\\n\\nrfick (2):\\n kourendlibrary: Indicate books not in inventory\\n kourendlibrary: Show a hint arrow above target book\\n\\ntrimbe (1):\\n bank plugin: improve responsiveness of bank searches\\n\\nypperlig (1):\\n barrowsplugin: fix null pointer exception in region check\\n
\\n\",\"image\":\"/img/blog/1.6.11-Release/overlay-resizing.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-04-16-10-00-1.6.11-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+EAA+E,OAAS,SAAS,KAAO,qtYAAq3Y,MAAQ","file":"static/js/123.62fad0a2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.11 Release\",\"description\":\"Overlay resizing, grand exchange fuzzy search, and prayer orb remaining time\",\"author\":\"Jordan\",\"body\":\"Overlays, such as panels and screen markers can now be resized by holding Alt and\\ndragging their edges/corners. Thanks to @deathbeam for adding this\\nfeature.
\\n
\\nThe Infobox wrap count
setting has been removed from RuneLite's config. You can resize the\\ninfobox container to achieve the same effect, as shown below. If you previously had Infobox wrap count
\\nset to a value other than 4, you will have to alt-drag and resize the overlay to cause the infoboxes to\\nwrap again at the desired number. Also, as was the case prior to this release, you can reset an overlay's\\nposition and size using Alt and right-clicking the overlay.
\\n
\\nThe Grand Exchange plugin now has an\\noption to use fuzzy searching, allowing you to search abbreviations or imprecise spellings to find\\nitems. Thanks to @dennisdev for this great enhancement!
\\n
\\nThe Prayer plugin now has an option to replace\\nyour prayer points display in your prayer orb with the time remaining until your prayer points\\nexpire. Thanks to @dekvall for this feature.
\\n
\\nThe Anti Drag plugin has been updated to remove the requirement of the Shift key when\\noutside of PVP scenarios. An On Shift Only
option has been added to the plugin, which must be\\nenabled to work both in and outside of PVP.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nBank searches are now more responsive with the\\nBank plugin active \\nPlayers can no longer accidentally reposition their mouse tooltips, and players whose mouse\\ntooltips appear to be displaying far away from their cursor should see it display in the correct\\nlocation now \\nSupport has been added to various plugins for gilded axe and pickaxe animations \\nClue Scrolls referencing Immenizz or\\nvambraces are now properly recognized again since their ingame wording had changed last week \\nThe World Hopper plugin no longer tries\\nto hop into full worlds when hopping up/down \\nScreenshots are no longer taken of your\\nown death with the Screenshot Friend Deaths
option enabled \\nThe Music and\\nCamera plugins now display tooltips showing\\nthe slider value when using the ingame volume and camera zoom sliders \\nThe Camera plugin has gained options to invert\\nthe camera pitch and yaw mouse controls \\nThe Music plugin now has an option to mute\\nprayer sounds \\nWhen highlighting players with the Player Indicators\\nplugin , the "Walk here" menu entry\\nis now also highlighted \\nAn option to hide the precise combat level has been added to the Combat Level\\nplugin \\nThe Agility plugin now highlights the stick\\non the Werewolf agility course \\nThe Fishing plugin properly updates its\\noverlay to show that you are not fishing when you're interrupted by certain activities, such as\\nlevel-up dialogs \\nThe Quest List plugin no longer causes\\nerrors when enabling it after already being logged in \\nThe Loot Tracker tracks herbiboar loot\\nwhen your herb sack is open and has learned that potion drinking, etc., is not loot when hunting\\nthe herbiboar \\nThe Nightmare Zone and\\nDiscord plugins no longer think you are in\\nthe Nightmare Zone when fighting the King Black Dragon \\nSlayer tasks assigned to be completed within the Jormungand's Prison are now properly recognized\\nby the Slayer plugin \\nThe Run Energy plugin learned the new\\ngraceful set energy recovery mechanics from the update in January \\nYou are no longer considered to be "not woodcutting" by the Woodcutting\\nplugin when there is a long pause between\\nlogs being chopped \\nThe Boosts Information plugin no\\nlonger shows the restore overlay when it does not show any visible boosts \\nThe Kourend Library plugin now shows\\nbooks which are in your inventory versus not yet found in the library in different colors in its\\nside panel, and has an option to show a hint arrow pointing toward your target book \\nThe Items Kept on Death plugin \\nlearned the updated Eternal teleport crystal value \\nMagic trees now animate correctly with the GPU plugin on \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 31 contributors this release!
\\nAaronPoon (1):\\n agility: highlight 'Stick' in Werewolf Agility Course\\n\\nAdam (14):\\n world controller: return service unavailable if world list isn't loaded\\n feed controller: return service unavailable if feed isn't loaded\\n client session manager: fix detecting logged in state\\n speccounter: fix some bugs and edge cases\\n stretchedmode: copy mouse event consumed flag when translating mouse events\\n client: add config option for blocking extra mouse buttons\\n party plugin: play sound effects on client thread\\n hooks: use monotonic clock for main loop tasks\\n item service: remove old item searching and item lookup methods\\n antidrag: add option to disable in pvp\\n worldhopper: skip over almost full worlds\\n screenshot plugin: fix screenshot friend deaths to not screenshot own death\\n emoji plugin: load emojis on client thread\\n devtools: add infobox generator\\n\\nAlexsuperfly (1):\\n OverlayRenderer: prevent moving DYNAMIC and TOOLTIP overlays\\n\\nBrandt Hill (1):\\n fishing: Check player animation to update fishing status\\n\\nCrow (2):\\n NPC Agression Timer: fix typo in notification\\n Add eternal teleport crystal value offset\\n\\nDaniel (1):\\n questlist: Ensure filter has non-null state on startup\\n\\nDennis (1):\\n ge plugin: add fuzzy search option\\n\\nDeon Zhao (1):\\n loottracker: Track herbiboar loot with an open herb sack\\n\\nHydrox6 (8):\\n clues: update Immenizz's master clue to reflect his NPC's name change\\n api: add gilded axe animation\\n woodcutting: add support for gilded axe\\n idle notifier: add support for gilded axe\\n wintertodt: add support for gilded axe\\n api: add gilded pickaxe animations\\n idle notifier: add support for gilded pickaxe\\n motherlode: add support for gilded pickaxe\\n\\nJordan Atwood (5):\\n boosts: Hide restore timer when no boosts are visible\\n woodcutting: Reduce visibilities, mark Nullables\\n woodcutting: Add axe animation matching helper method\\n woodcutting: Fix overlay hiding during long chop delays\\n HotColdLocation: Center some location spots\\n\\nLewis (1):\\n music plugin: add option to mute prayer sounds\\n\\nLotto (4):\\n api: remove Follow and Trade menu actions\\n player-indicators: break out decorating code into own methods\\n player-indicators: move menu logic to ClientTick\\n player-indicators: highlight the 'Walk here' menu entry too\\n\\nLucas Snel (1):\\n combatlevel plugin: add option for showing precise combat level\\n\\nMagic fTail (1):\\n chatmessagemanager: use default timestamp if none is provided\\n\\nMax Weber (13):\\n grounditems: manually match item thresholds\\n grounditems: make priceChecks threadsafe\\n grounditems: reset on the executor thread\\n Notifier: Reuse Clip instances\\n http-api: remove unused fields from NPCInfo\\n kourendlibrary: don't throw npe when starting on the login screen\\n runelite-client: update ItemID references\\n runelite-api: add stopNow to cleanly shutdown the client\\n eventbus: make higher priority events fire first\\n camera: add option to invert camera mouse controls\\n runelite-client: add ClientShutdown event\\n grounditems: don't crash when having a duplicate highlight value\\n FlatTextField: forward focus requests to children\\n\\nMorgan Lewis (1):\\n worldmap: Fix slayer ring teleport location\\n\\nRobert Nönnig (1):\\n prayer: Hide prayer flick indicator when minimap is hidden (#11138)\\n\\nSean Dewar (4):\\n runenergy: update graceful recovery rate logic\\n music: slider volume percentage tooltips\\n camera: zoom slider tooltip & zoom constants\\n music: revalidate slider handle on creation\\n\\nSirGirion (1):\\n emoteclue: Replace vamb with vambraces in clue text\\n\\nTheFlemoid (1):\\n WidgetOverlay: Use TOP_RIGHT anchor for LMS widgets\\n\\nTheStonedTurtle (2):\\n nightmarezone: Fix area check to exclude KBD lair\\n discord: Fix NMZ area check to exclude KBD lair\\n\\nThomas (1):\\n slayer plugin: add Jormungand's Prison task location\\n\\nTomas Slusny (7):\\n Reset repositioned tooltip overlays\\n Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager\\n Add support for resizable overlays\\n Make overlay resizing configure wrapping\\n Add OverlayPanel that contains PanelComponent\\n Make overlays use OverlayPanel instead of Overlay\\n Skip processing of input listeners with consumed events\\n\\nTrevor (1):\\n loot tracker plugin: submit loot on client shutdown (#11243)\\n\\nTyler Davis (1):\\n swingutil: Set button tooltip text in addModalTooltip\\n\\nUnknown (1):\\n Update Plugin Hub risk label\\n\\ndekvall (1):\\n prayer: display prayer time remaining in prayer orb\\n\\njostn (1):\\n HotColdLocation: Center Rimmington mine dig location\\n\\nrfick (2):\\n kourendlibrary: Indicate books not in inventory\\n kourendlibrary: Show a hint arrow above target book\\n\\ntrimbe (1):\\n bank plugin: improve responsiveness of bank searches\\n\\nypperlig (1):\\n barrowsplugin: fix null pointer exception in region check\\n
\\n\",\"image\":\"/img/blog/1.6.11-Release/overlay-resizing.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/124.0e3ea873.chunk.js b/static/js/124.fefcf754.chunk.js
similarity index 98%
rename from static/js/124.0e3ea873.chunk.js
rename to static/js/124.fefcf754.chunk.js
index 60a3eb16f..d013292fd 100644
--- a/static/js/124.0e3ea873.chunk.js
+++ b/static/js/124.fefcf754.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[124],{399:function(e,n){e.exports={title:"1.6.12 & 1.6.13 Releases",description:"Deadman and poll 70 improvements",author:"Adam",body:'The 1.6.12 release that went out last week was forced due to the game update,\nbut we did not have a blog post ready. This post covers both releases.
\nThe Leagues hiscore lookup has been replaced now with the newly opened Deadman\ntournament, and the various lookup commands in game now recognize the Deadman\ntournament worlds and will look up the correct hiscores for them.
\n
\nDivine Bastion and Battlemage potions have had timers added, and have been added\nto the items stats and item identification plugins.
\n
\nIf you use Windows or Linux and the GPU plugin does not work correctly for you,\nthere is a new option in the GPU plugin you can disable called Compute Shaders
\nwhich may help. This drops the minimum required OpenGL version to 4.0, and uses\nless GPU memory and compute, at the cost of being unable to extend the draw\ndistance. Despite this limitation it still gives a noticible performance\nimprovement and may be beneifical to users on older systems. Note that the\noption must be toggled off prior to the plugin starting to take effect.
\nUsers using Mac OSX will be happy to know that progress has been made on an OSX\nGPU rasterizer that works as described above, due to the limited support of\nOpenGL on OSX, and that I expect to have it added to a release in the coming\nweeks.
\nThe XP updater plugin can now send xp update requests to\nWise Old Man , a new xp tracker created by\n@psikoi - who you may remember from the\nobsidian theme , and\nhas been a contributor to this project for years. It is open\nsource , which of course I value\ngreatly, and recommend you check it out. Since CML has began running RWT ads,\nwhich I dislike directing traffic to, I have been looking at alternatives;\nanother tracker we added a few months ago is TempleOSRS \nwhich has been gaining populartity, although not open source. Remember, sending xp\nupdate requests to any external services necessarily sends your IP address and your\ndisplay name to that service.
\nA new bank tags section was added to the accounts page which shows your bank tags and the codes used to share them with other players.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe time tracking plugin timers now have an option to automatically loop \nThe idle notifier now works when enchanting bolts \nLaps per hour has been added to the agility session overlay \nItem stats now show on the in-bank equipment interface \nFix the chat notifier Highlight own name
setting to correctly work with\nplayers who have spaces in their names \nThe world hopper quickhop feature now has an option to only hop to worlds in a\nspecific region \nThe bank plugin now has an option to allow entering your bank pin with the keyboard \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\n15987632 (1):\n cache: add spotanim dump test\n\nAaron King (1):\n item stats: add the in-bank equipment interface\n\nAdam (21):\n Revert "Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager"\n Revert "Reset repositioned tooltip overlays"\n api: add key script event fields\n api: add widget getOnOpListener\n bank plugin: add option to input bankpin with keyboard\n gpu: fix one-off in model buffer selection\n gpu: add a couple missing Override annotations\n gpu plugin: remove unnecessary buffer check\n hsl_to_rgb: remove unnecessary check for rgb 0\n gpu: small refactor of compute shaders\n api: add drawFace callback\n gpu: add option to disable compute shaders\n api: add useful utility methods to itemcontainer\n client: update itemcontainer api usage\n runelite: log startup failures as errors\n combat level plugin: use script events for attack level range hook\n timers: add divine bastion and battlemage potions\n itemstats: add divine bastion and battlemage potions\n item identification: add divine bastion and battlemage potions\n chat notifier: fix highlight own name matching player names with spaces\n Add dmmt world type and tournament hiscore endpoint\n\nDaniel (2):\n chatboxtextinput: conditionally close input from ondone callback\n questlist, music, fairyring: don\'t close filter when pressing enter\n\nDennis (1):\n ge plugin: fix fuzzy search highlighting\n\nFlightkick (1):\n Properly address Grand Exchange price as \'GE\' instead of \'EX\' (#11317)\n\nHydrox6 (5):\n fishing & idle notifer: add pearl rod animations\n fishing & idle notifer: add oily pearl rod animations\n antidrag: fix onShiftOnly not being respected when opening the bank\n idle notifier: add support for enchanting bolts\n api: correct pearl fly fishing and barbarian rod animations\n\nH\xe5kon Rosseland Paulsen (1):\n menu entry swapper: fix shift click for deposit box\n\nLotto (1):\n player-indicators: fix right-click menu targets expanding forever\n\nMax Weber (3):\n interfacestyles: update widget bounds before every render\n WidgetOverlay: remove bounty hunter info widget\n rl-api, rl-client: rename getHealth to getHealthScale\n\nMitchell Kovacs (1):\n timers plugin: add option to loop timers\n\nPetter S\xe6ther Moen (1):\n agility plugin: add laps per hour to lap counter overlay\n\nPsikoi (2):\n Refactor xp updater requests to use generic request sender method\n Add Wise Old Man to XP Updater plugin\n\nRansomTime (1):\n cluescrolls: Clarify West Ardougne Church clue location (#11238)\n\nRon Young (3):\n revert banktags: move new tagtab button to the bottom of the list 358703f30719b6785078dc827db42b937dbc7902\n widgets: add bank item count and equipment button ids\n tabinterface: move equipment button into title bar and move title bar widgets\n\nSpedwards (1):\n world hopper: add region filter option to quick-hopping\n\nTim Granata (1):\n clues: add twisted slayer helm to warrior\'s guild steps (#11350)\n\nTomas Slusny (2):\n Prevent screen marker overlays from being reset\n Prevent HotkeyListener from consuming input on login screen\n\nTrevor (1):\n hitsplats: add missing multihitsplat varients\n\nTyler Davis (1):\n account: Fix tooltip and dialog verbiage (#11132)\n\nskyblownet (1):\n skill challenge clue: Fix DRAGONSTONE_BRACELET item requirement\n\n\xc9tienne Boutet (1):\n idlenotifier: Add bolt tip attaching animations\n\n
\n',image:"/img/blog/1.6.13-Release/hiscores.png"}}}]);
-//# sourceMappingURL=124.0e3ea873.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[124],{400:function(e,n){e.exports={title:"1.6.12 & 1.6.13 Releases",description:"Deadman and poll 70 improvements",author:"Adam",body:'The 1.6.12 release that went out last week was forced due to the game update,\nbut we did not have a blog post ready. This post covers both releases.
\nThe Leagues hiscore lookup has been replaced now with the newly opened Deadman\ntournament, and the various lookup commands in game now recognize the Deadman\ntournament worlds and will look up the correct hiscores for them.
\n
\nDivine Bastion and Battlemage potions have had timers added, and have been added\nto the items stats and item identification plugins.
\n
\nIf you use Windows or Linux and the GPU plugin does not work correctly for you,\nthere is a new option in the GPU plugin you can disable called Compute Shaders
\nwhich may help. This drops the minimum required OpenGL version to 4.0, and uses\nless GPU memory and compute, at the cost of being unable to extend the draw\ndistance. Despite this limitation it still gives a noticible performance\nimprovement and may be beneifical to users on older systems. Note that the\noption must be toggled off prior to the plugin starting to take effect.
\nUsers using Mac OSX will be happy to know that progress has been made on an OSX\nGPU rasterizer that works as described above, due to the limited support of\nOpenGL on OSX, and that I expect to have it added to a release in the coming\nweeks.
\nThe XP updater plugin can now send xp update requests to\nWise Old Man , a new xp tracker created by\n@psikoi - who you may remember from the\nobsidian theme , and\nhas been a contributor to this project for years. It is open\nsource , which of course I value\ngreatly, and recommend you check it out. Since CML has began running RWT ads,\nwhich I dislike directing traffic to, I have been looking at alternatives;\nanother tracker we added a few months ago is TempleOSRS \nwhich has been gaining populartity, although not open source. Remember, sending xp\nupdate requests to any external services necessarily sends your IP address and your\ndisplay name to that service.
\nA new bank tags section was added to the accounts page which shows your bank tags and the codes used to share them with other players.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe time tracking plugin timers now have an option to automatically loop \nThe idle notifier now works when enchanting bolts \nLaps per hour has been added to the agility session overlay \nItem stats now show on the in-bank equipment interface \nFix the chat notifier Highlight own name
setting to correctly work with\nplayers who have spaces in their names \nThe world hopper quickhop feature now has an option to only hop to worlds in a\nspecific region \nThe bank plugin now has an option to allow entering your bank pin with the keyboard \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\n15987632 (1):\n cache: add spotanim dump test\n\nAaron King (1):\n item stats: add the in-bank equipment interface\n\nAdam (21):\n Revert "Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager"\n Revert "Reset repositioned tooltip overlays"\n api: add key script event fields\n api: add widget getOnOpListener\n bank plugin: add option to input bankpin with keyboard\n gpu: fix one-off in model buffer selection\n gpu: add a couple missing Override annotations\n gpu plugin: remove unnecessary buffer check\n hsl_to_rgb: remove unnecessary check for rgb 0\n gpu: small refactor of compute shaders\n api: add drawFace callback\n gpu: add option to disable compute shaders\n api: add useful utility methods to itemcontainer\n client: update itemcontainer api usage\n runelite: log startup failures as errors\n combat level plugin: use script events for attack level range hook\n timers: add divine bastion and battlemage potions\n itemstats: add divine bastion and battlemage potions\n item identification: add divine bastion and battlemage potions\n chat notifier: fix highlight own name matching player names with spaces\n Add dmmt world type and tournament hiscore endpoint\n\nDaniel (2):\n chatboxtextinput: conditionally close input from ondone callback\n questlist, music, fairyring: don\'t close filter when pressing enter\n\nDennis (1):\n ge plugin: fix fuzzy search highlighting\n\nFlightkick (1):\n Properly address Grand Exchange price as \'GE\' instead of \'EX\' (#11317)\n\nHydrox6 (5):\n fishing & idle notifer: add pearl rod animations\n fishing & idle notifer: add oily pearl rod animations\n antidrag: fix onShiftOnly not being respected when opening the bank\n idle notifier: add support for enchanting bolts\n api: correct pearl fly fishing and barbarian rod animations\n\nH\xe5kon Rosseland Paulsen (1):\n menu entry swapper: fix shift click for deposit box\n\nLotto (1):\n player-indicators: fix right-click menu targets expanding forever\n\nMax Weber (3):\n interfacestyles: update widget bounds before every render\n WidgetOverlay: remove bounty hunter info widget\n rl-api, rl-client: rename getHealth to getHealthScale\n\nMitchell Kovacs (1):\n timers plugin: add option to loop timers\n\nPetter S\xe6ther Moen (1):\n agility plugin: add laps per hour to lap counter overlay\n\nPsikoi (2):\n Refactor xp updater requests to use generic request sender method\n Add Wise Old Man to XP Updater plugin\n\nRansomTime (1):\n cluescrolls: Clarify West Ardougne Church clue location (#11238)\n\nRon Young (3):\n revert banktags: move new tagtab button to the bottom of the list 358703f30719b6785078dc827db42b937dbc7902\n widgets: add bank item count and equipment button ids\n tabinterface: move equipment button into title bar and move title bar widgets\n\nSpedwards (1):\n world hopper: add region filter option to quick-hopping\n\nTim Granata (1):\n clues: add twisted slayer helm to warrior\'s guild steps (#11350)\n\nTomas Slusny (2):\n Prevent screen marker overlays from being reset\n Prevent HotkeyListener from consuming input on login screen\n\nTrevor (1):\n hitsplats: add missing multihitsplat varients\n\nTyler Davis (1):\n account: Fix tooltip and dialog verbiage (#11132)\n\nskyblownet (1):\n skill challenge clue: Fix DRAGONSTONE_BRACELET item requirement\n\n\xc9tienne Boutet (1):\n idlenotifier: Add bolt tip attaching animations\n\n
\n',image:"/img/blog/1.6.13-Release/hiscores.png"}}}]);
+//# sourceMappingURL=124.fefcf754.chunk.js.map
\ No newline at end of file
diff --git a/static/js/124.0e3ea873.chunk.js.map b/static/js/124.fefcf754.chunk.js.map
similarity index 99%
rename from static/js/124.0e3ea873.chunk.js.map
rename to static/js/124.fefcf754.chunk.js.map
index 5e9c88b46..43f87f476 100644
--- a/static/js/124.0e3ea873.chunk.js.map
+++ b/static/js/124.fefcf754.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-05-01-10-00-1.6.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,mCAAmC,OAAS,OAAO,KAAO,kmOAA+nO,MAAQ","file":"static/js/124.0e3ea873.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.12 & 1.6.13 Releases\",\"description\":\"Deadman and poll 70 improvements\",\"author\":\"Adam\",\"body\":\"The 1.6.12 release that went out last week was forced due to the game update,\\nbut we did not have a blog post ready. This post covers both releases.
\\nThe Leagues hiscore lookup has been replaced now with the newly opened Deadman\\ntournament, and the various lookup commands in game now recognize the Deadman\\ntournament worlds and will look up the correct hiscores for them.
\\n
\\nDivine Bastion and Battlemage potions have had timers added, and have been added\\nto the items stats and item identification plugins.
\\n
\\nIf you use Windows or Linux and the GPU plugin does not work correctly for you,\\nthere is a new option in the GPU plugin you can disable called Compute Shaders
\\nwhich may help. This drops the minimum required OpenGL version to 4.0, and uses\\nless GPU memory and compute, at the cost of being unable to extend the draw\\ndistance. Despite this limitation it still gives a noticible performance\\nimprovement and may be beneifical to users on older systems. Note that the\\noption must be toggled off prior to the plugin starting to take effect.
\\nUsers using Mac OSX will be happy to know that progress has been made on an OSX\\nGPU rasterizer that works as described above, due to the limited support of\\nOpenGL on OSX, and that I expect to have it added to a release in the coming\\nweeks.
\\nThe XP updater plugin can now send xp update requests to\\nWise Old Man , a new xp tracker created by\\n@psikoi - who you may remember from the\\nobsidian theme , and\\nhas been a contributor to this project for years. It is open\\nsource , which of course I value\\ngreatly, and recommend you check it out. Since CML has began running RWT ads,\\nwhich I dislike directing traffic to, I have been looking at alternatives;\\nanother tracker we added a few months ago is TempleOSRS \\nwhich has been gaining populartity, although not open source. Remember, sending xp\\nupdate requests to any external services necessarily sends your IP address and your\\ndisplay name to that service.
\\nA new bank tags section was added to the accounts page which shows your bank tags and the codes used to share them with other players.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe time tracking plugin timers now have an option to automatically loop \\nThe idle notifier now works when enchanting bolts \\nLaps per hour has been added to the agility session overlay \\nItem stats now show on the in-bank equipment interface \\nFix the chat notifier Highlight own name
setting to correctly work with\\nplayers who have spaces in their names \\nThe world hopper quickhop feature now has an option to only hop to worlds in a\\nspecific region \\nThe bank plugin now has an option to allow entering your bank pin with the keyboard \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\n15987632 (1):\\n cache: add spotanim dump test\\n\\nAaron King (1):\\n item stats: add the in-bank equipment interface\\n\\nAdam (21):\\n Revert "Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager"\\n Revert "Reset repositioned tooltip overlays"\\n api: add key script event fields\\n api: add widget getOnOpListener\\n bank plugin: add option to input bankpin with keyboard\\n gpu: fix one-off in model buffer selection\\n gpu: add a couple missing Override annotations\\n gpu plugin: remove unnecessary buffer check\\n hsl_to_rgb: remove unnecessary check for rgb 0\\n gpu: small refactor of compute shaders\\n api: add drawFace callback\\n gpu: add option to disable compute shaders\\n api: add useful utility methods to itemcontainer\\n client: update itemcontainer api usage\\n runelite: log startup failures as errors\\n combat level plugin: use script events for attack level range hook\\n timers: add divine bastion and battlemage potions\\n itemstats: add divine bastion and battlemage potions\\n item identification: add divine bastion and battlemage potions\\n chat notifier: fix highlight own name matching player names with spaces\\n Add dmmt world type and tournament hiscore endpoint\\n\\nDaniel (2):\\n chatboxtextinput: conditionally close input from ondone callback\\n questlist, music, fairyring: don't close filter when pressing enter\\n\\nDennis (1):\\n ge plugin: fix fuzzy search highlighting\\n\\nFlightkick (1):\\n Properly address Grand Exchange price as 'GE' instead of 'EX' (#11317)\\n\\nHydrox6 (5):\\n fishing & idle notifer: add pearl rod animations\\n fishing & idle notifer: add oily pearl rod animations\\n antidrag: fix onShiftOnly not being respected when opening the bank\\n idle notifier: add support for enchanting bolts\\n api: correct pearl fly fishing and barbarian rod animations\\n\\nHåkon Rosseland Paulsen (1):\\n menu entry swapper: fix shift click for deposit box\\n\\nLotto (1):\\n player-indicators: fix right-click menu targets expanding forever\\n\\nMax Weber (3):\\n interfacestyles: update widget bounds before every render\\n WidgetOverlay: remove bounty hunter info widget\\n rl-api, rl-client: rename getHealth to getHealthScale\\n\\nMitchell Kovacs (1):\\n timers plugin: add option to loop timers\\n\\nPetter Sæther Moen (1):\\n agility plugin: add laps per hour to lap counter overlay\\n\\nPsikoi (2):\\n Refactor xp updater requests to use generic request sender method\\n Add Wise Old Man to XP Updater plugin\\n\\nRansomTime (1):\\n cluescrolls: Clarify West Ardougne Church clue location (#11238)\\n\\nRon Young (3):\\n revert banktags: move new tagtab button to the bottom of the list 358703f30719b6785078dc827db42b937dbc7902\\n widgets: add bank item count and equipment button ids\\n tabinterface: move equipment button into title bar and move title bar widgets\\n\\nSpedwards (1):\\n world hopper: add region filter option to quick-hopping\\n\\nTim Granata (1):\\n clues: add twisted slayer helm to warrior's guild steps (#11350)\\n\\nTomas Slusny (2):\\n Prevent screen marker overlays from being reset\\n Prevent HotkeyListener from consuming input on login screen\\n\\nTrevor (1):\\n hitsplats: add missing multihitsplat varients\\n\\nTyler Davis (1):\\n account: Fix tooltip and dialog verbiage (#11132)\\n\\nskyblownet (1):\\n skill challenge clue: Fix DRAGONSTONE_BRACELET item requirement\\n\\nÉtienne Boutet (1):\\n idlenotifier: Add bolt tip attaching animations\\n\\n
\\n\",\"image\":\"/img/blog/1.6.13-Release/hiscores.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-05-01-10-00-1.6.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,mCAAmC,OAAS,OAAO,KAAO,kmOAA+nO,MAAQ","file":"static/js/124.fefcf754.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.12 & 1.6.13 Releases\",\"description\":\"Deadman and poll 70 improvements\",\"author\":\"Adam\",\"body\":\"The 1.6.12 release that went out last week was forced due to the game update,\\nbut we did not have a blog post ready. This post covers both releases.
\\nThe Leagues hiscore lookup has been replaced now with the newly opened Deadman\\ntournament, and the various lookup commands in game now recognize the Deadman\\ntournament worlds and will look up the correct hiscores for them.
\\n
\\nDivine Bastion and Battlemage potions have had timers added, and have been added\\nto the items stats and item identification plugins.
\\n
\\nIf you use Windows or Linux and the GPU plugin does not work correctly for you,\\nthere is a new option in the GPU plugin you can disable called Compute Shaders
\\nwhich may help. This drops the minimum required OpenGL version to 4.0, and uses\\nless GPU memory and compute, at the cost of being unable to extend the draw\\ndistance. Despite this limitation it still gives a noticible performance\\nimprovement and may be beneifical to users on older systems. Note that the\\noption must be toggled off prior to the plugin starting to take effect.
\\nUsers using Mac OSX will be happy to know that progress has been made on an OSX\\nGPU rasterizer that works as described above, due to the limited support of\\nOpenGL on OSX, and that I expect to have it added to a release in the coming\\nweeks.
\\nThe XP updater plugin can now send xp update requests to\\nWise Old Man , a new xp tracker created by\\n@psikoi - who you may remember from the\\nobsidian theme , and\\nhas been a contributor to this project for years. It is open\\nsource , which of course I value\\ngreatly, and recommend you check it out. Since CML has began running RWT ads,\\nwhich I dislike directing traffic to, I have been looking at alternatives;\\nanother tracker we added a few months ago is TempleOSRS \\nwhich has been gaining populartity, although not open source. Remember, sending xp\\nupdate requests to any external services necessarily sends your IP address and your\\ndisplay name to that service.
\\nA new bank tags section was added to the accounts page which shows your bank tags and the codes used to share them with other players.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe time tracking plugin timers now have an option to automatically loop \\nThe idle notifier now works when enchanting bolts \\nLaps per hour has been added to the agility session overlay \\nItem stats now show on the in-bank equipment interface \\nFix the chat notifier Highlight own name
setting to correctly work with\\nplayers who have spaces in their names \\nThe world hopper quickhop feature now has an option to only hop to worlds in a\\nspecific region \\nThe bank plugin now has an option to allow entering your bank pin with the keyboard \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\n15987632 (1):\\n cache: add spotanim dump test\\n\\nAaron King (1):\\n item stats: add the in-bank equipment interface\\n\\nAdam (21):\\n Revert "Mock ConfigManager in ItemStatOverlayTest to inject TooltipManager"\\n Revert "Reset repositioned tooltip overlays"\\n api: add key script event fields\\n api: add widget getOnOpListener\\n bank plugin: add option to input bankpin with keyboard\\n gpu: fix one-off in model buffer selection\\n gpu: add a couple missing Override annotations\\n gpu plugin: remove unnecessary buffer check\\n hsl_to_rgb: remove unnecessary check for rgb 0\\n gpu: small refactor of compute shaders\\n api: add drawFace callback\\n gpu: add option to disable compute shaders\\n api: add useful utility methods to itemcontainer\\n client: update itemcontainer api usage\\n runelite: log startup failures as errors\\n combat level plugin: use script events for attack level range hook\\n timers: add divine bastion and battlemage potions\\n itemstats: add divine bastion and battlemage potions\\n item identification: add divine bastion and battlemage potions\\n chat notifier: fix highlight own name matching player names with spaces\\n Add dmmt world type and tournament hiscore endpoint\\n\\nDaniel (2):\\n chatboxtextinput: conditionally close input from ondone callback\\n questlist, music, fairyring: don't close filter when pressing enter\\n\\nDennis (1):\\n ge plugin: fix fuzzy search highlighting\\n\\nFlightkick (1):\\n Properly address Grand Exchange price as 'GE' instead of 'EX' (#11317)\\n\\nHydrox6 (5):\\n fishing & idle notifer: add pearl rod animations\\n fishing & idle notifer: add oily pearl rod animations\\n antidrag: fix onShiftOnly not being respected when opening the bank\\n idle notifier: add support for enchanting bolts\\n api: correct pearl fly fishing and barbarian rod animations\\n\\nHåkon Rosseland Paulsen (1):\\n menu entry swapper: fix shift click for deposit box\\n\\nLotto (1):\\n player-indicators: fix right-click menu targets expanding forever\\n\\nMax Weber (3):\\n interfacestyles: update widget bounds before every render\\n WidgetOverlay: remove bounty hunter info widget\\n rl-api, rl-client: rename getHealth to getHealthScale\\n\\nMitchell Kovacs (1):\\n timers plugin: add option to loop timers\\n\\nPetter Sæther Moen (1):\\n agility plugin: add laps per hour to lap counter overlay\\n\\nPsikoi (2):\\n Refactor xp updater requests to use generic request sender method\\n Add Wise Old Man to XP Updater plugin\\n\\nRansomTime (1):\\n cluescrolls: Clarify West Ardougne Church clue location (#11238)\\n\\nRon Young (3):\\n revert banktags: move new tagtab button to the bottom of the list 358703f30719b6785078dc827db42b937dbc7902\\n widgets: add bank item count and equipment button ids\\n tabinterface: move equipment button into title bar and move title bar widgets\\n\\nSpedwards (1):\\n world hopper: add region filter option to quick-hopping\\n\\nTim Granata (1):\\n clues: add twisted slayer helm to warrior's guild steps (#11350)\\n\\nTomas Slusny (2):\\n Prevent screen marker overlays from being reset\\n Prevent HotkeyListener from consuming input on login screen\\n\\nTrevor (1):\\n hitsplats: add missing multihitsplat varients\\n\\nTyler Davis (1):\\n account: Fix tooltip and dialog verbiage (#11132)\\n\\nskyblownet (1):\\n skill challenge clue: Fix DRAGONSTONE_BRACELET item requirement\\n\\nÉtienne Boutet (1):\\n idlenotifier: Add bolt tip attaching animations\\n\\n
\\n\",\"image\":\"/img/blog/1.6.13-Release/hiscores.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/125.724f8493.chunk.js b/static/js/125.0497785a.chunk.js
similarity index 98%
rename from static/js/125.724f8493.chunk.js
rename to static/js/125.0497785a.chunk.js
index 9522323bd..23c3e86d1 100644
--- a/static/js/125.724f8493.chunk.js
+++ b/static/js/125.0497785a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[125],{400:function(e,n){e.exports={title:"1.6.14 Release",description:"MacOS GPU rasterizer and configurable XP tracker labels",author:"Jordan",body:'The GPU plugin now supports rasterization on MacOS! Users using Mac OSX\nshould notice significant performance improvements with the GPU plugin on; we have seen 20+ FPS as well as lower CPU\nutilization. Due to limitations of OpenGL on MacOS the plugin does not offer extended draw distance at this time. We\nplan to continue development of the plugin to add extended draw distance support on MacOS in the future.
\n
\nThe XP Tracker plugin now allows customizing the labels on\nthe tracker boxes both in the sidebar panel and on the ingame overlays. Additionally, the progress bar can be configured\nto show percentage to goal, or time to goal. Thanks to @while-loop for adding this\nenhancement!
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nWe have removed the option to hide the NPC Aggression Timer\nplugin \'s overlay hint so it is clearer to users what\nmust be done to get the plugin working \nThe Chambers of Xeric plugin now continues to scout\nunknown rooms when loading new areas \nThe Loot Tracker plugin can now hide unwanted loot events \nYou can now right-click chat messages to copy them to your clipboard using the Chat History\nplugin \nClue scrolls will now always stack when recorded in the Loot Tracker\nplugin \nThe World Map plugin has seen several additions, such as\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses \nBarbarian fish have been added to the agility skill\ncalculator \nThe ending door of the penguin agility course is now highlighted via the Agility\nplugin \nTeleblock timers are now correctly added when playing with the\ntransparent chatbox enabled \nThe Loot Tracker plugin now has options to display chat\nmessages after NPC and/or PVP kills \nSome clue scroll locations and descriptions have been updated \nA bug was fixed causing the ground items menu color to sometimes not match the overlay color \nAn acorn emoji has been added to the Emoji plugin \nThe Item Stats plugin has learned the correct healing amount\nfor castle wars bandages while wearing the castle wars bracelet \nNew POH icons have been added for Weiss and Troll\nstronghold teleport portals \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 23 contributors this release!
\nAdam (5):\n client: update to jogl 2.4.0-rc-20200429\n gpu: add support for osx\n travis: force tls 1.2\n loot tracker: cleanup clue scroll stacking and test\n key remapper: consume key typed events for remapped keys\n\nAnthony Alves (4):\n xp-tracker: add configurable labels to XpInfoBox\n xp-tracker: add more configurable labels to canvas overlay\n xp-tracker: add option to show ttl or percentage til goal\n loot-tracker: make clue scroll drops stackable\n\nArman S (1):\n worldmap: Add dungeon names (#11419)\n\nAtroxide (2):\n game: Center Fossil Island agility shortcut icons\n worldmap: Center Otto\'s Grotto tree icon\n\nBKOSRS (2):\n skill calc: add barbarian fishing to agility skill calculator\n agility: highlight ending door of penguin agility course (#11478)\n\nDock (1):\n client session manager: fix shutdown race deleting a null session\n\nHydrox6 (1):\n Revert "npc aggro timer: Add option to hide hint overlay (#8610)"\n\nJordan Atwood (2):\n timers: Remove color matching for teleblock messages\n loottracker: Show chat message after NPC and PVP kills\n\nMax Weber (3):\n rl-api, rl-client: Remove core logger\n runelite-client: Make RuneScape Bold actually Bold\n runelite-client: support warning field on external plugins\n\nNicholas Kimball (1):\n coordinateclue: Add information to hardwood grove clue (#11489)\n\nOmar Khan (1):\n grandexchange: Improve geSearchMode description (#11474)\n\nRangvaldr (1):\n discord: Add missing Iorwerth Dungeon region (#11451)\n\nRobert N\xf6nnig (1):\n grounditems: update menu highlight logic to match overlay logic\n\nSam Rosenthal (2):\n clues: Add Viggora cryptic clue item requirement description\n ItemMapping: Add Blade of Saeldor (c)\n\nTheStonedTurtle (3):\n loottracker - Reword syncPanel config description\n loot tracker - add ability to ignore loot events\n loot tracker - Fix ignoredItems config value ordering\n\nTomas Slusny (1):\n Add option to copy chat message contents to clipboard\n\nTrevor (1):\n raids plugin: make scouter scout unknown rooms on new area loaded\n\nben (1):\n coordinateclue: Add missing Lithkren clue step (#11490)\n\ndekvall (1):\n emojis: add acorn emoji\n\ngfidder (1):\n worldmap: Fix Hosidius farming patch location\n\nivanfeli (1):\n item stats: Fix Castle Wars bracelet bandage heal amount\n\nmelkypie (6):\n worldmap: add hunter area tooltips\n client: move FishingSpot to net.runelite.client.game\n fishing: add unmapped fishing spots\n worldmap: add fishing spot tooltips\n worldmap: add tooltips to agility courses\n worldmap: add the ability to indicate rooftop courses\n\nraynerrebello (1):\n poh: Add new POH overlay icons for Weiss and Troll Stronghold portals (#11360)\n
\n',image:"/img/blog/1.6.14-Release/mac-gpu-rasterizer-small.png"}}}]);
-//# sourceMappingURL=125.724f8493.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[125],{401:function(e,n){e.exports={title:"1.6.14 Release",description:"MacOS GPU rasterizer and configurable XP tracker labels",author:"Jordan",body:'The GPU plugin now supports rasterization on MacOS! Users using Mac OSX\nshould notice significant performance improvements with the GPU plugin on; we have seen 20+ FPS as well as lower CPU\nutilization. Due to limitations of OpenGL on MacOS the plugin does not offer extended draw distance at this time. We\nplan to continue development of the plugin to add extended draw distance support on MacOS in the future.
\n
\nThe XP Tracker plugin now allows customizing the labels on\nthe tracker boxes both in the sidebar panel and on the ingame overlays. Additionally, the progress bar can be configured\nto show percentage to goal, or time to goal. Thanks to @while-loop for adding this\nenhancement!
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nWe have removed the option to hide the NPC Aggression Timer\nplugin \'s overlay hint so it is clearer to users what\nmust be done to get the plugin working \nThe Chambers of Xeric plugin now continues to scout\nunknown rooms when loading new areas \nThe Loot Tracker plugin can now hide unwanted loot events \nYou can now right-click chat messages to copy them to your clipboard using the Chat History\nplugin \nClue scrolls will now always stack when recorded in the Loot Tracker\nplugin \nThe World Map plugin has seen several additions, such as\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses \nBarbarian fish have been added to the agility skill\ncalculator \nThe ending door of the penguin agility course is now highlighted via the Agility\nplugin \nTeleblock timers are now correctly added when playing with the\ntransparent chatbox enabled \nThe Loot Tracker plugin now has options to display chat\nmessages after NPC and/or PVP kills \nSome clue scroll locations and descriptions have been updated \nA bug was fixed causing the ground items menu color to sometimes not match the overlay color \nAn acorn emoji has been added to the Emoji plugin \nThe Item Stats plugin has learned the correct healing amount\nfor castle wars bandages while wearing the castle wars bracelet \nNew POH icons have been added for Weiss and Troll\nstronghold teleport portals \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 23 contributors this release!
\nAdam (5):\n client: update to jogl 2.4.0-rc-20200429\n gpu: add support for osx\n travis: force tls 1.2\n loot tracker: cleanup clue scroll stacking and test\n key remapper: consume key typed events for remapped keys\n\nAnthony Alves (4):\n xp-tracker: add configurable labels to XpInfoBox\n xp-tracker: add more configurable labels to canvas overlay\n xp-tracker: add option to show ttl or percentage til goal\n loot-tracker: make clue scroll drops stackable\n\nArman S (1):\n worldmap: Add dungeon names (#11419)\n\nAtroxide (2):\n game: Center Fossil Island agility shortcut icons\n worldmap: Center Otto\'s Grotto tree icon\n\nBKOSRS (2):\n skill calc: add barbarian fishing to agility skill calculator\n agility: highlight ending door of penguin agility course (#11478)\n\nDock (1):\n client session manager: fix shutdown race deleting a null session\n\nHydrox6 (1):\n Revert "npc aggro timer: Add option to hide hint overlay (#8610)"\n\nJordan Atwood (2):\n timers: Remove color matching for teleblock messages\n loottracker: Show chat message after NPC and PVP kills\n\nMax Weber (3):\n rl-api, rl-client: Remove core logger\n runelite-client: Make RuneScape Bold actually Bold\n runelite-client: support warning field on external plugins\n\nNicholas Kimball (1):\n coordinateclue: Add information to hardwood grove clue (#11489)\n\nOmar Khan (1):\n grandexchange: Improve geSearchMode description (#11474)\n\nRangvaldr (1):\n discord: Add missing Iorwerth Dungeon region (#11451)\n\nRobert N\xf6nnig (1):\n grounditems: update menu highlight logic to match overlay logic\n\nSam Rosenthal (2):\n clues: Add Viggora cryptic clue item requirement description\n ItemMapping: Add Blade of Saeldor (c)\n\nTheStonedTurtle (3):\n loottracker - Reword syncPanel config description\n loot tracker - add ability to ignore loot events\n loot tracker - Fix ignoredItems config value ordering\n\nTomas Slusny (1):\n Add option to copy chat message contents to clipboard\n\nTrevor (1):\n raids plugin: make scouter scout unknown rooms on new area loaded\n\nben (1):\n coordinateclue: Add missing Lithkren clue step (#11490)\n\ndekvall (1):\n emojis: add acorn emoji\n\ngfidder (1):\n worldmap: Fix Hosidius farming patch location\n\nivanfeli (1):\n item stats: Fix Castle Wars bracelet bandage heal amount\n\nmelkypie (6):\n worldmap: add hunter area tooltips\n client: move FishingSpot to net.runelite.client.game\n fishing: add unmapped fishing spots\n worldmap: add fishing spot tooltips\n worldmap: add tooltips to agility courses\n worldmap: add the ability to indicate rooftop courses\n\nraynerrebello (1):\n poh: Add new POH overlay icons for Weiss and Troll Stronghold portals (#11360)\n
\n',image:"/img/blog/1.6.14-Release/mac-gpu-rasterizer-small.png"}}}]);
+//# sourceMappingURL=125.0497785a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/125.724f8493.chunk.js.map b/static/js/125.0497785a.chunk.js.map
similarity index 99%
rename from static/js/125.724f8493.chunk.js.map
rename to static/js/125.0497785a.chunk.js.map
index 0da8e46b2..447232b50 100644
--- a/static/js/125.724f8493.chunk.js.map
+++ b/static/js/125.0497785a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-05-09-10-00-1.6.14-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0DAA0D,OAAS,SAAS,KAAO,qjOAAoqO,MAAQ","file":"static/js/125.724f8493.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.14 Release\",\"description\":\"MacOS GPU rasterizer and configurable XP tracker labels\",\"author\":\"Jordan\",\"body\":\"The GPU plugin now supports rasterization on MacOS! Users using Mac OSX\\nshould notice significant performance improvements with the GPU plugin on; we have seen 20+ FPS as well as lower CPU\\nutilization. Due to limitations of OpenGL on MacOS the plugin does not offer extended draw distance at this time. We\\nplan to continue development of the plugin to add extended draw distance support on MacOS in the future.
\\n
\\nThe XP Tracker plugin now allows customizing the labels on\\nthe tracker boxes both in the sidebar panel and on the ingame overlays. Additionally, the progress bar can be configured\\nto show percentage to goal, or time to goal. Thanks to @while-loop for adding this\\nenhancement!
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nWe have removed the option to hide the NPC Aggression Timer\\nplugin 's overlay hint so it is clearer to users what\\nmust be done to get the plugin working \\nThe Chambers of Xeric plugin now continues to scout\\nunknown rooms when loading new areas \\nThe Loot Tracker plugin can now hide unwanted loot events \\nYou can now right-click chat messages to copy them to your clipboard using the Chat History\\nplugin \\nClue scrolls will now always stack when recorded in the Loot Tracker\\nplugin \\nThe World Map plugin has seen several additions, such as\\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses \\nBarbarian fish have been added to the agility skill\\ncalculator \\nThe ending door of the penguin agility course is now highlighted via the Agility\\nplugin \\nTeleblock timers are now correctly added when playing with the\\ntransparent chatbox enabled \\nThe Loot Tracker plugin now has options to display chat\\nmessages after NPC and/or PVP kills \\nSome clue scroll locations and descriptions have been updated \\nA bug was fixed causing the ground items menu color to sometimes not match the overlay color \\nAn acorn emoji has been added to the Emoji plugin \\nThe Item Stats plugin has learned the correct healing amount\\nfor castle wars bandages while wearing the castle wars bracelet \\nNew POH icons have been added for Weiss and Troll\\nstronghold teleport portals \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (5):\\n client: update to jogl 2.4.0-rc-20200429\\n gpu: add support for osx\\n travis: force tls 1.2\\n loot tracker: cleanup clue scroll stacking and test\\n key remapper: consume key typed events for remapped keys\\n\\nAnthony Alves (4):\\n xp-tracker: add configurable labels to XpInfoBox\\n xp-tracker: add more configurable labels to canvas overlay\\n xp-tracker: add option to show ttl or percentage til goal\\n loot-tracker: make clue scroll drops stackable\\n\\nArman S (1):\\n worldmap: Add dungeon names (#11419)\\n\\nAtroxide (2):\\n game: Center Fossil Island agility shortcut icons\\n worldmap: Center Otto's Grotto tree icon\\n\\nBKOSRS (2):\\n skill calc: add barbarian fishing to agility skill calculator\\n agility: highlight ending door of penguin agility course (#11478)\\n\\nDock (1):\\n client session manager: fix shutdown race deleting a null session\\n\\nHydrox6 (1):\\n Revert "npc aggro timer: Add option to hide hint overlay (#8610)"\\n\\nJordan Atwood (2):\\n timers: Remove color matching for teleblock messages\\n loottracker: Show chat message after NPC and PVP kills\\n\\nMax Weber (3):\\n rl-api, rl-client: Remove core logger\\n runelite-client: Make RuneScape Bold actually Bold\\n runelite-client: support warning field on external plugins\\n\\nNicholas Kimball (1):\\n coordinateclue: Add information to hardwood grove clue (#11489)\\n\\nOmar Khan (1):\\n grandexchange: Improve geSearchMode description (#11474)\\n\\nRangvaldr (1):\\n discord: Add missing Iorwerth Dungeon region (#11451)\\n\\nRobert Nönnig (1):\\n grounditems: update menu highlight logic to match overlay logic\\n\\nSam Rosenthal (2):\\n clues: Add Viggora cryptic clue item requirement description\\n ItemMapping: Add Blade of Saeldor (c)\\n\\nTheStonedTurtle (3):\\n loottracker - Reword syncPanel config description\\n loot tracker - add ability to ignore loot events\\n loot tracker - Fix ignoredItems config value ordering\\n\\nTomas Slusny (1):\\n Add option to copy chat message contents to clipboard\\n\\nTrevor (1):\\n raids plugin: make scouter scout unknown rooms on new area loaded\\n\\nben (1):\\n coordinateclue: Add missing Lithkren clue step (#11490)\\n\\ndekvall (1):\\n emojis: add acorn emoji\\n\\ngfidder (1):\\n worldmap: Fix Hosidius farming patch location\\n\\nivanfeli (1):\\n item stats: Fix Castle Wars bracelet bandage heal amount\\n\\nmelkypie (6):\\n worldmap: add hunter area tooltips\\n client: move FishingSpot to net.runelite.client.game\\n fishing: add unmapped fishing spots\\n worldmap: add fishing spot tooltips\\n worldmap: add tooltips to agility courses\\n worldmap: add the ability to indicate rooftop courses\\n\\nraynerrebello (1):\\n poh: Add new POH overlay icons for Weiss and Troll Stronghold portals (#11360)\\n
\\n\",\"image\":\"/img/blog/1.6.14-Release/mac-gpu-rasterizer-small.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-05-09-10-00-1.6.14-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0DAA0D,OAAS,SAAS,KAAO,qjOAAoqO,MAAQ","file":"static/js/125.0497785a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.14 Release\",\"description\":\"MacOS GPU rasterizer and configurable XP tracker labels\",\"author\":\"Jordan\",\"body\":\"The GPU plugin now supports rasterization on MacOS! Users using Mac OSX\\nshould notice significant performance improvements with the GPU plugin on; we have seen 20+ FPS as well as lower CPU\\nutilization. Due to limitations of OpenGL on MacOS the plugin does not offer extended draw distance at this time. We\\nplan to continue development of the plugin to add extended draw distance support on MacOS in the future.
\\n
\\nThe XP Tracker plugin now allows customizing the labels on\\nthe tracker boxes both in the sidebar panel and on the ingame overlays. Additionally, the progress bar can be configured\\nto show percentage to goal, or time to goal. Thanks to @while-loop for adding this\\nenhancement!
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nWe have removed the option to hide the NPC Aggression Timer\\nplugin 's overlay hint so it is clearer to users what\\nmust be done to get the plugin working \\nThe Chambers of Xeric plugin now continues to scout\\nunknown rooms when loading new areas \\nThe Loot Tracker plugin can now hide unwanted loot events \\nYou can now right-click chat messages to copy them to your clipboard using the Chat History\\nplugin \\nClue scrolls will now always stack when recorded in the Loot Tracker\\nplugin \\nThe World Map plugin has seen several additions, such as\\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses \\nBarbarian fish have been added to the agility skill\\ncalculator \\nThe ending door of the penguin agility course is now highlighted via the Agility\\nplugin \\nTeleblock timers are now correctly added when playing with the\\ntransparent chatbox enabled \\nThe Loot Tracker plugin now has options to display chat\\nmessages after NPC and/or PVP kills \\nSome clue scroll locations and descriptions have been updated \\nA bug was fixed causing the ground items menu color to sometimes not match the overlay color \\nAn acorn emoji has been added to the Emoji plugin \\nThe Item Stats plugin has learned the correct healing amount\\nfor castle wars bandages while wearing the castle wars bracelet \\nNew POH icons have been added for Weiss and Troll\\nstronghold teleport portals \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (5):\\n client: update to jogl 2.4.0-rc-20200429\\n gpu: add support for osx\\n travis: force tls 1.2\\n loot tracker: cleanup clue scroll stacking and test\\n key remapper: consume key typed events for remapped keys\\n\\nAnthony Alves (4):\\n xp-tracker: add configurable labels to XpInfoBox\\n xp-tracker: add more configurable labels to canvas overlay\\n xp-tracker: add option to show ttl or percentage til goal\\n loot-tracker: make clue scroll drops stackable\\n\\nArman S (1):\\n worldmap: Add dungeon names (#11419)\\n\\nAtroxide (2):\\n game: Center Fossil Island agility shortcut icons\\n worldmap: Center Otto's Grotto tree icon\\n\\nBKOSRS (2):\\n skill calc: add barbarian fishing to agility skill calculator\\n agility: highlight ending door of penguin agility course (#11478)\\n\\nDock (1):\\n client session manager: fix shutdown race deleting a null session\\n\\nHydrox6 (1):\\n Revert "npc aggro timer: Add option to hide hint overlay (#8610)"\\n\\nJordan Atwood (2):\\n timers: Remove color matching for teleblock messages\\n loottracker: Show chat message after NPC and PVP kills\\n\\nMax Weber (3):\\n rl-api, rl-client: Remove core logger\\n runelite-client: Make RuneScape Bold actually Bold\\n runelite-client: support warning field on external plugins\\n\\nNicholas Kimball (1):\\n coordinateclue: Add information to hardwood grove clue (#11489)\\n\\nOmar Khan (1):\\n grandexchange: Improve geSearchMode description (#11474)\\n\\nRangvaldr (1):\\n discord: Add missing Iorwerth Dungeon region (#11451)\\n\\nRobert Nönnig (1):\\n grounditems: update menu highlight logic to match overlay logic\\n\\nSam Rosenthal (2):\\n clues: Add Viggora cryptic clue item requirement description\\n ItemMapping: Add Blade of Saeldor (c)\\n\\nTheStonedTurtle (3):\\n loottracker - Reword syncPanel config description\\n loot tracker - add ability to ignore loot events\\n loot tracker - Fix ignoredItems config value ordering\\n\\nTomas Slusny (1):\\n Add option to copy chat message contents to clipboard\\n\\nTrevor (1):\\n raids plugin: make scouter scout unknown rooms on new area loaded\\n\\nben (1):\\n coordinateclue: Add missing Lithkren clue step (#11490)\\n\\ndekvall (1):\\n emojis: add acorn emoji\\n\\ngfidder (1):\\n worldmap: Fix Hosidius farming patch location\\n\\nivanfeli (1):\\n item stats: Fix Castle Wars bracelet bandage heal amount\\n\\nmelkypie (6):\\n worldmap: add hunter area tooltips\\n client: move FishingSpot to net.runelite.client.game\\n fishing: add unmapped fishing spots\\n worldmap: add fishing spot tooltips\\n worldmap: add tooltips to agility courses\\n worldmap: add the ability to indicate rooftop courses\\n\\nraynerrebello (1):\\n poh: Add new POH overlay icons for Weiss and Troll Stronghold portals (#11360)\\n
\\n\",\"image\":\"/img/blog/1.6.14-Release/mac-gpu-rasterizer-small.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/126.132a30b1.chunk.js b/static/js/126.65ddef72.chunk.js
similarity index 99%
rename from static/js/126.132a30b1.chunk.js
rename to static/js/126.65ddef72.chunk.js
index a1198cfa9..0bdfa9927 100644
--- a/static/js/126.132a30b1.chunk.js
+++ b/static/js/126.65ddef72.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[126],{401:function(e,n){e.exports={title:"1.6.15, 1.6.16, and 1.6.17 Releases",description:"Configurable login screen background, screen markers widget snapping, duplicate chat folding, configurable overlay background color, and more",author:"Jordan",body:'The Login Screen plugin now supports\nchanging the login screen background. Choose from any of Old School RuneScape\'s popular event or\nupdate backgrounds or create your own! (you can even use custom backgrounds which are not\nmirrored ) Thanks to\n@Hydrox6 for adding this feature.
\n
\nWhen placing screen markers, you can now click an on-screen widget to automatically select its\nboundaries! (you can still click and drag to create a custom size marker) Thanks to\n@melkypie for this submission.
\n
\nThe Chat Filter plugin can now collapse\nduplicate chat messages. Thanks @CoreyForsyth for adding this\nenhancement.
\n
\nHighlighted below are some features which we released in 1.6.15 and 1.6.16:
\nThe Interface Styles plugin has gained\na Menu Alpha
option which lets you make your right-click menu background partially (or if you\'re\nfeeling up to a challenge, fully) transparent. Thanks to @dekvall for\nthis addition.
\n
\nWe have changed the highlight and notify behavior of the Ground Items\nplugin . The Highlight > value
option has\nbeen removed. Ground items now use the configured highlight color if they are highlighted, or use\nthe appropriate tier value color otherwise. Additionally, a Notify >= Tier
option has been added\nto help configure how valuable an item drop must be to trigger a notification. Thanks to\n@Hydrox6 for his care in building a flexible solution we hope all\nusers will enjoy.
\n
\nYou can now customize the background color of overlays and infoboxes. Thanks to\n@TheStonedTurtle for this feature addition.
\n
\nThe Clue Scroll plugin overlay now displays\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\naddition.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nEnjoy!
\n- Jordan
\nNew commits \nWe had 42 contributors these past releases!
\nAdam (15):\n loottracker: stack clue scrolls in the ui instead of at loot receive time\n npc indicators: verify compoistion id of tagged npcs\n client: add option to force client to front on notification\n Revert "npc indicators: verify compoistion id of tagged npcs"\n npc indicators: don\'t memorize npcs in instances\n attackstyles: use script event for hiding attack styltes\n minimap: use script event for hiding minimap\n ge plugin: add buy limit reset timer\n wintertodt plugin: add option to disable overlay\n keyremapping: use modified key map for mapping key release\n plugins: add Plugin::getName\n infobox manager: make threadsafe\n chathistory: small cleanups of clear history\n cache: diable some long-running tests\n api: finish some thoughts in callbacks javadoc\n\nAlexsuperfly (2):\n loot tracker: use chest events for gauntlet loot\n screenshot plugin: add gauntlet loot screenshots\n\nAnthony Alves (1):\n chat-history: add option to clear history for all chatbox tabs (#11543)\n\nAustin Lee (1):\n Add gnome bench to construction skill calculator\n\nBenjamin Stepp (1):\n itemmappings: adds nightmare staves\n\nBroooklyn (3):\n cluescrolls: Update Iron Man Tutor cipher clue (#11593)\n loottracker: Improve ignored events config name and description (#11545)\n cluescrolls: Fix "jewellery" clue hint spelling (#11673)\n\nCorey Forsyth (2):\n chatfilter: add collapse duplicate chat option\n chatfilter: add option to block repeated public messages\n\nDamen (1):\n screenshot plugin: block untradeable drops within the Gauntlet\n\nDaniel (1):\n item prices: always show tooltip when alching if option is enabled\n\nHydrox6 (7):\n ground items: move repeated notify code into notifyHighlightedItem\n ground items: remove Highlight > Value\n ground items: add Notify >= Tier\n clues: add brutal green dragon variant to cryptic clue\n gpu: add warning message to compute shaders option\n api: add support for setting login screen and fire rendering\n login screen: add custom login screen support\n\nJan-Willem de Bruyn (1):\n skillcalculator: Add clay crafting items (#11518)\n\nJesse Serrao (1):\n itemstats: Add bounty hunter blighted food/pots (#11550)\n\nJordan Atwood (5):\n HotColdLocation: Center some location spots\n loot tracker: Use "an" prefix for monster names starting with vowels\n examine: Move price lookups off executor\n itemmanager: Canonicalize price lookup item IDs\n client: Simplify ItemContainer usage\n\nKyle Shepherd (2):\n worldhopper: Change `showSidebar` option name to \'Show world switcher sidebar\' (#11537)\n itemidentification: Change Combat Potion short name from \'D\' to \'C\' (#11566)\n\nLotto (1):\n player-indicators: don\'t decorate non-player custom menu options\n\nMalfuryent (1):\n report button: add ability to switch between 24h and 12h clock\n\nMarbleTurtle (1):\n chathistory: Fix copy to clipboard not appearing on friend messages (#11527)\n\nMatthew Kramer (1):\n metronome: add independent volume configuration\n\nMax Weber (3):\n npcunaggroarea: split color config depending on timer status\n ItemManager: only canonicalize notes\n HotkeyButton: allow binding the space key\n\nMelky (2):\n agility plugin: add config for Prifddinas portal color\n screenmarker: add ability to put screen markers around widgets (#11552)\n\nMitchell Kovacs (1):\n menu swapper: add enter-corrupted gauntlet swap\n\nRachel M (1):\n screenshot: Add option to take screenshot on clan chat kick\n\nRangvaldr (1):\n discord: Update activity message while playing PVP or DMM (#11522)\n\nRobertCurll (2):\n skillcalculator: Add comma separators to experience fields\n skillcalculator: Add needed experience tooltip\n\nRon Young (1):\n object indicators: fix NPE thrown on logging in on a marked object\n\nThePharros (2):\n item stats: Add Dragonfruit Pie\n itemcharges: Add Magic Essence and Super Strength potion doses (#11634)\n\nTheStonedTurtle (2):\n loot tracker: Fix "Show each kill separately" view\n Make background color of panel components configurable (#11619)\n\nTim van Rossum (1):\n boosts: Add option to disable boost threshold notifications (#11668)\n\nTinus Flagstad (1):\n keyremapping: add option to remap space in dialog\n\nTomas Slusny (1):\n Use multiplicative color offsets for BackgroundComponent border (#11658)\n\nTrevor (1):\n raid plugin: fix plugin not reseting when prescouting raids\n\nTrevor martz (2):\n clue plugin: add enemy info to overlay\n cluescrolls: remove sara wizard from duel arena step (#11648)\n\nTrey (2):\n cluescrolls: Add jungle traversing info to dragon\'s eye clue\n cluescrolls: Add Dragontooth Island travel info to clue\n\nVidyogamasta (1):\n loot tracker: float group to top of list when obtaining drop\n\nbfmoatbio (2):\n Allow non-degraded barrows equipment for clue step\n menu manager: Remove bounty hunter emblem text from player name (#11541)\n\ncscullen (1):\n loottracker: Add seed pack loot tracking\n\ndekvall (1):\n interfacestyles: add support for menu alpha\n\ngeheur (1):\n menu swapper: add swaps for buy and sell\n\njesse1412 (1):\n tileindicators: Add server side current tile indicator\n\nloldudester (3):\n client: Make toggle sidebar hotkey configurable\n client: Add configurable hotkey to toggle plugin panel\n keyremapping: Don\'t remap f-keys when the bank pin interface is open\n\nmelkypie (4):\n itemcharges: show potion doses\n report button: add clock tag\n chatcommands: fix chambers of xeric pb tracking\n chatcommands: add tob personal best tracking\n\ntrimbe (1):\n bank tags: clear remembered search when the active tag tab is clicked\n
\n',image:"/img/blog/1.6.17-Release/configurable-login-screen.png"}}}]);
-//# sourceMappingURL=126.132a30b1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[126],{402:function(e,n){e.exports={title:"1.6.15, 1.6.16, and 1.6.17 Releases",description:"Configurable login screen background, screen markers widget snapping, duplicate chat folding, configurable overlay background color, and more",author:"Jordan",body:'The Login Screen plugin now supports\nchanging the login screen background. Choose from any of Old School RuneScape\'s popular event or\nupdate backgrounds or create your own! (you can even use custom backgrounds which are not\nmirrored ) Thanks to\n@Hydrox6 for adding this feature.
\n
\nWhen placing screen markers, you can now click an on-screen widget to automatically select its\nboundaries! (you can still click and drag to create a custom size marker) Thanks to\n@melkypie for this submission.
\n
\nThe Chat Filter plugin can now collapse\nduplicate chat messages. Thanks @CoreyForsyth for adding this\nenhancement.
\n
\nHighlighted below are some features which we released in 1.6.15 and 1.6.16:
\nThe Interface Styles plugin has gained\na Menu Alpha
option which lets you make your right-click menu background partially (or if you\'re\nfeeling up to a challenge, fully) transparent. Thanks to @dekvall for\nthis addition.
\n
\nWe have changed the highlight and notify behavior of the Ground Items\nplugin . The Highlight > value
option has\nbeen removed. Ground items now use the configured highlight color if they are highlighted, or use\nthe appropriate tier value color otherwise. Additionally, a Notify >= Tier
option has been added\nto help configure how valuable an item drop must be to trigger a notification. Thanks to\n@Hydrox6 for his care in building a flexible solution we hope all\nusers will enjoy.
\n
\nYou can now customize the background color of overlays and infoboxes. Thanks to\n@TheStonedTurtle for this feature addition.
\n
\nThe Clue Scroll plugin overlay now displays\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\naddition.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nEnjoy!
\n- Jordan
\nNew commits \nWe had 42 contributors these past releases!
\nAdam (15):\n loottracker: stack clue scrolls in the ui instead of at loot receive time\n npc indicators: verify compoistion id of tagged npcs\n client: add option to force client to front on notification\n Revert "npc indicators: verify compoistion id of tagged npcs"\n npc indicators: don\'t memorize npcs in instances\n attackstyles: use script event for hiding attack styltes\n minimap: use script event for hiding minimap\n ge plugin: add buy limit reset timer\n wintertodt plugin: add option to disable overlay\n keyremapping: use modified key map for mapping key release\n plugins: add Plugin::getName\n infobox manager: make threadsafe\n chathistory: small cleanups of clear history\n cache: diable some long-running tests\n api: finish some thoughts in callbacks javadoc\n\nAlexsuperfly (2):\n loot tracker: use chest events for gauntlet loot\n screenshot plugin: add gauntlet loot screenshots\n\nAnthony Alves (1):\n chat-history: add option to clear history for all chatbox tabs (#11543)\n\nAustin Lee (1):\n Add gnome bench to construction skill calculator\n\nBenjamin Stepp (1):\n itemmappings: adds nightmare staves\n\nBroooklyn (3):\n cluescrolls: Update Iron Man Tutor cipher clue (#11593)\n loottracker: Improve ignored events config name and description (#11545)\n cluescrolls: Fix "jewellery" clue hint spelling (#11673)\n\nCorey Forsyth (2):\n chatfilter: add collapse duplicate chat option\n chatfilter: add option to block repeated public messages\n\nDamen (1):\n screenshot plugin: block untradeable drops within the Gauntlet\n\nDaniel (1):\n item prices: always show tooltip when alching if option is enabled\n\nHydrox6 (7):\n ground items: move repeated notify code into notifyHighlightedItem\n ground items: remove Highlight > Value\n ground items: add Notify >= Tier\n clues: add brutal green dragon variant to cryptic clue\n gpu: add warning message to compute shaders option\n api: add support for setting login screen and fire rendering\n login screen: add custom login screen support\n\nJan-Willem de Bruyn (1):\n skillcalculator: Add clay crafting items (#11518)\n\nJesse Serrao (1):\n itemstats: Add bounty hunter blighted food/pots (#11550)\n\nJordan Atwood (5):\n HotColdLocation: Center some location spots\n loot tracker: Use "an" prefix for monster names starting with vowels\n examine: Move price lookups off executor\n itemmanager: Canonicalize price lookup item IDs\n client: Simplify ItemContainer usage\n\nKyle Shepherd (2):\n worldhopper: Change `showSidebar` option name to \'Show world switcher sidebar\' (#11537)\n itemidentification: Change Combat Potion short name from \'D\' to \'C\' (#11566)\n\nLotto (1):\n player-indicators: don\'t decorate non-player custom menu options\n\nMalfuryent (1):\n report button: add ability to switch between 24h and 12h clock\n\nMarbleTurtle (1):\n chathistory: Fix copy to clipboard not appearing on friend messages (#11527)\n\nMatthew Kramer (1):\n metronome: add independent volume configuration\n\nMax Weber (3):\n npcunaggroarea: split color config depending on timer status\n ItemManager: only canonicalize notes\n HotkeyButton: allow binding the space key\n\nMelky (2):\n agility plugin: add config for Prifddinas portal color\n screenmarker: add ability to put screen markers around widgets (#11552)\n\nMitchell Kovacs (1):\n menu swapper: add enter-corrupted gauntlet swap\n\nRachel M (1):\n screenshot: Add option to take screenshot on clan chat kick\n\nRangvaldr (1):\n discord: Update activity message while playing PVP or DMM (#11522)\n\nRobertCurll (2):\n skillcalculator: Add comma separators to experience fields\n skillcalculator: Add needed experience tooltip\n\nRon Young (1):\n object indicators: fix NPE thrown on logging in on a marked object\n\nThePharros (2):\n item stats: Add Dragonfruit Pie\n itemcharges: Add Magic Essence and Super Strength potion doses (#11634)\n\nTheStonedTurtle (2):\n loot tracker: Fix "Show each kill separately" view\n Make background color of panel components configurable (#11619)\n\nTim van Rossum (1):\n boosts: Add option to disable boost threshold notifications (#11668)\n\nTinus Flagstad (1):\n keyremapping: add option to remap space in dialog\n\nTomas Slusny (1):\n Use multiplicative color offsets for BackgroundComponent border (#11658)\n\nTrevor (1):\n raid plugin: fix plugin not reseting when prescouting raids\n\nTrevor martz (2):\n clue plugin: add enemy info to overlay\n cluescrolls: remove sara wizard from duel arena step (#11648)\n\nTrey (2):\n cluescrolls: Add jungle traversing info to dragon\'s eye clue\n cluescrolls: Add Dragontooth Island travel info to clue\n\nVidyogamasta (1):\n loot tracker: float group to top of list when obtaining drop\n\nbfmoatbio (2):\n Allow non-degraded barrows equipment for clue step\n menu manager: Remove bounty hunter emblem text from player name (#11541)\n\ncscullen (1):\n loottracker: Add seed pack loot tracking\n\ndekvall (1):\n interfacestyles: add support for menu alpha\n\ngeheur (1):\n menu swapper: add swaps for buy and sell\n\njesse1412 (1):\n tileindicators: Add server side current tile indicator\n\nloldudester (3):\n client: Make toggle sidebar hotkey configurable\n client: Add configurable hotkey to toggle plugin panel\n keyremapping: Don\'t remap f-keys when the bank pin interface is open\n\nmelkypie (4):\n itemcharges: show potion doses\n report button: add clock tag\n chatcommands: fix chambers of xeric pb tracking\n chatcommands: add tob personal best tracking\n\ntrimbe (1):\n bank tags: clear remembered search when the active tag tab is clicked\n
\n',image:"/img/blog/1.6.17-Release/configurable-login-screen.png"}}}]);
+//# sourceMappingURL=126.65ddef72.chunk.js.map
\ No newline at end of file
diff --git a/static/js/126.132a30b1.chunk.js.map b/static/js/126.65ddef72.chunk.js.map
similarity index 99%
rename from static/js/126.132a30b1.chunk.js.map
rename to static/js/126.65ddef72.chunk.js.map
index 8e216a125..e6e24fb01 100644
--- a/static/js/126.132a30b1.chunk.js.map
+++ b/static/js/126.65ddef72.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-05-28-10-00-1.6.17-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,gJAAgJ,OAAS,SAAS,KAAO,q5dAAqoe,MAAQ","file":"static/js/126.132a30b1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.15, 1.6.16, and 1.6.17 Releases\",\"description\":\"Configurable login screen background, screen markers widget snapping, duplicate chat folding, configurable overlay background color, and more\",\"author\":\"Jordan\",\"body\":\"The Login Screen plugin now supports\\nchanging the login screen background. Choose from any of Old School RuneScape's popular event or\\nupdate backgrounds or create your own! (you can even use custom backgrounds which are not\\nmirrored ) Thanks to\\n@Hydrox6 for adding this feature.
\\n
\\nWhen placing screen markers, you can now click an on-screen widget to automatically select its\\nboundaries! (you can still click and drag to create a custom size marker) Thanks to\\n@melkypie for this submission.
\\n
\\nThe Chat Filter plugin can now collapse\\nduplicate chat messages. Thanks @CoreyForsyth for adding this\\nenhancement.
\\n
\\nHighlighted below are some features which we released in 1.6.15 and 1.6.16:
\\nThe Interface Styles plugin has gained\\na Menu Alpha
option which lets you make your right-click menu background partially (or if you're\\nfeeling up to a challenge, fully) transparent. Thanks to @dekvall for\\nthis addition.
\\n
\\nWe have changed the highlight and notify behavior of the Ground Items\\nplugin . The Highlight > value
option has\\nbeen removed. Ground items now use the configured highlight color if they are highlighted, or use\\nthe appropriate tier value color otherwise. Additionally, a Notify >= Tier
option has been added\\nto help configure how valuable an item drop must be to trigger a notification. Thanks to\\n@Hydrox6 for his care in building a flexible solution we hope all\\nusers will enjoy.
\\n
\\nYou can now customize the background color of overlays and infoboxes. Thanks to\\n@TheStonedTurtle for this feature addition.
\\n
\\nThe Clue Scroll plugin overlay now displays\\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\\naddition.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 42 contributors these past releases!
\\nAdam (15):\\n loottracker: stack clue scrolls in the ui instead of at loot receive time\\n npc indicators: verify compoistion id of tagged npcs\\n client: add option to force client to front on notification\\n Revert "npc indicators: verify compoistion id of tagged npcs"\\n npc indicators: don't memorize npcs in instances\\n attackstyles: use script event for hiding attack styltes\\n minimap: use script event for hiding minimap\\n ge plugin: add buy limit reset timer\\n wintertodt plugin: add option to disable overlay\\n keyremapping: use modified key map for mapping key release\\n plugins: add Plugin::getName\\n infobox manager: make threadsafe\\n chathistory: small cleanups of clear history\\n cache: diable some long-running tests\\n api: finish some thoughts in callbacks javadoc\\n\\nAlexsuperfly (2):\\n loot tracker: use chest events for gauntlet loot\\n screenshot plugin: add gauntlet loot screenshots\\n\\nAnthony Alves (1):\\n chat-history: add option to clear history for all chatbox tabs (#11543)\\n\\nAustin Lee (1):\\n Add gnome bench to construction skill calculator\\n\\nBenjamin Stepp (1):\\n itemmappings: adds nightmare staves\\n\\nBroooklyn (3):\\n cluescrolls: Update Iron Man Tutor cipher clue (#11593)\\n loottracker: Improve ignored events config name and description (#11545)\\n cluescrolls: Fix "jewellery" clue hint spelling (#11673)\\n\\nCorey Forsyth (2):\\n chatfilter: add collapse duplicate chat option\\n chatfilter: add option to block repeated public messages\\n\\nDamen (1):\\n screenshot plugin: block untradeable drops within the Gauntlet\\n\\nDaniel (1):\\n item prices: always show tooltip when alching if option is enabled\\n\\nHydrox6 (7):\\n ground items: move repeated notify code into notifyHighlightedItem\\n ground items: remove Highlight > Value\\n ground items: add Notify >= Tier\\n clues: add brutal green dragon variant to cryptic clue\\n gpu: add warning message to compute shaders option\\n api: add support for setting login screen and fire rendering\\n login screen: add custom login screen support\\n\\nJan-Willem de Bruyn (1):\\n skillcalculator: Add clay crafting items (#11518)\\n\\nJesse Serrao (1):\\n itemstats: Add bounty hunter blighted food/pots (#11550)\\n\\nJordan Atwood (5):\\n HotColdLocation: Center some location spots\\n loot tracker: Use "an" prefix for monster names starting with vowels\\n examine: Move price lookups off executor\\n itemmanager: Canonicalize price lookup item IDs\\n client: Simplify ItemContainer usage\\n\\nKyle Shepherd (2):\\n worldhopper: Change `showSidebar` option name to 'Show world switcher sidebar' (#11537)\\n itemidentification: Change Combat Potion short name from 'D' to 'C' (#11566)\\n\\nLotto (1):\\n player-indicators: don't decorate non-player custom menu options\\n\\nMalfuryent (1):\\n report button: add ability to switch between 24h and 12h clock\\n\\nMarbleTurtle (1):\\n chathistory: Fix copy to clipboard not appearing on friend messages (#11527)\\n\\nMatthew Kramer (1):\\n metronome: add independent volume configuration\\n\\nMax Weber (3):\\n npcunaggroarea: split color config depending on timer status\\n ItemManager: only canonicalize notes\\n HotkeyButton: allow binding the space key\\n\\nMelky (2):\\n agility plugin: add config for Prifddinas portal color\\n screenmarker: add ability to put screen markers around widgets (#11552)\\n\\nMitchell Kovacs (1):\\n menu swapper: add enter-corrupted gauntlet swap\\n\\nRachel M (1):\\n screenshot: Add option to take screenshot on clan chat kick\\n\\nRangvaldr (1):\\n discord: Update activity message while playing PVP or DMM (#11522)\\n\\nRobertCurll (2):\\n skillcalculator: Add comma separators to experience fields\\n skillcalculator: Add needed experience tooltip\\n\\nRon Young (1):\\n object indicators: fix NPE thrown on logging in on a marked object\\n\\nThePharros (2):\\n item stats: Add Dragonfruit Pie\\n itemcharges: Add Magic Essence and Super Strength potion doses (#11634)\\n\\nTheStonedTurtle (2):\\n loot tracker: Fix "Show each kill separately" view\\n Make background color of panel components configurable (#11619)\\n\\nTim van Rossum (1):\\n boosts: Add option to disable boost threshold notifications (#11668)\\n\\nTinus Flagstad (1):\\n keyremapping: add option to remap space in dialog\\n\\nTomas Slusny (1):\\n Use multiplicative color offsets for BackgroundComponent border (#11658)\\n\\nTrevor (1):\\n raid plugin: fix plugin not reseting when prescouting raids\\n\\nTrevor martz (2):\\n clue plugin: add enemy info to overlay\\n cluescrolls: remove sara wizard from duel arena step (#11648)\\n\\nTrey (2):\\n cluescrolls: Add jungle traversing info to dragon's eye clue\\n cluescrolls: Add Dragontooth Island travel info to clue\\n\\nVidyogamasta (1):\\n loot tracker: float group to top of list when obtaining drop\\n\\nbfmoatbio (2):\\n Allow non-degraded barrows equipment for clue step\\n menu manager: Remove bounty hunter emblem text from player name (#11541)\\n\\ncscullen (1):\\n loottracker: Add seed pack loot tracking\\n\\ndekvall (1):\\n interfacestyles: add support for menu alpha\\n\\ngeheur (1):\\n menu swapper: add swaps for buy and sell\\n\\njesse1412 (1):\\n tileindicators: Add server side current tile indicator\\n\\nloldudester (3):\\n client: Make toggle sidebar hotkey configurable\\n client: Add configurable hotkey to toggle plugin panel\\n keyremapping: Don't remap f-keys when the bank pin interface is open\\n\\nmelkypie (4):\\n itemcharges: show potion doses\\n report button: add clock tag\\n chatcommands: fix chambers of xeric pb tracking\\n chatcommands: add tob personal best tracking\\n\\ntrimbe (1):\\n bank tags: clear remembered search when the active tag tab is clicked\\n
\\n\",\"image\":\"/img/blog/1.6.17-Release/configurable-login-screen.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-05-28-10-00-1.6.17-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,gJAAgJ,OAAS,SAAS,KAAO,q5dAAqoe,MAAQ","file":"static/js/126.65ddef72.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.15, 1.6.16, and 1.6.17 Releases\",\"description\":\"Configurable login screen background, screen markers widget snapping, duplicate chat folding, configurable overlay background color, and more\",\"author\":\"Jordan\",\"body\":\"The Login Screen plugin now supports\\nchanging the login screen background. Choose from any of Old School RuneScape's popular event or\\nupdate backgrounds or create your own! (you can even use custom backgrounds which are not\\nmirrored ) Thanks to\\n@Hydrox6 for adding this feature.
\\n
\\nWhen placing screen markers, you can now click an on-screen widget to automatically select its\\nboundaries! (you can still click and drag to create a custom size marker) Thanks to\\n@melkypie for this submission.
\\n
\\nThe Chat Filter plugin can now collapse\\nduplicate chat messages. Thanks @CoreyForsyth for adding this\\nenhancement.
\\n
\\nHighlighted below are some features which we released in 1.6.15 and 1.6.16:
\\nThe Interface Styles plugin has gained\\na Menu Alpha
option which lets you make your right-click menu background partially (or if you're\\nfeeling up to a challenge, fully) transparent. Thanks to @dekvall for\\nthis addition.
\\n
\\nWe have changed the highlight and notify behavior of the Ground Items\\nplugin . The Highlight > value
option has\\nbeen removed. Ground items now use the configured highlight color if they are highlighted, or use\\nthe appropriate tier value color otherwise. Additionally, a Notify >= Tier
option has been added\\nto help configure how valuable an item drop must be to trigger a notification. Thanks to\\n@Hydrox6 for his care in building a flexible solution we hope all\\nusers will enjoy.
\\n
\\nYou can now customize the background color of overlays and infoboxes. Thanks to\\n@TheStonedTurtle for this feature addition.
\\n
\\nThe Clue Scroll plugin overlay now displays\\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\\naddition.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 42 contributors these past releases!
\\nAdam (15):\\n loottracker: stack clue scrolls in the ui instead of at loot receive time\\n npc indicators: verify compoistion id of tagged npcs\\n client: add option to force client to front on notification\\n Revert "npc indicators: verify compoistion id of tagged npcs"\\n npc indicators: don't memorize npcs in instances\\n attackstyles: use script event for hiding attack styltes\\n minimap: use script event for hiding minimap\\n ge plugin: add buy limit reset timer\\n wintertodt plugin: add option to disable overlay\\n keyremapping: use modified key map for mapping key release\\n plugins: add Plugin::getName\\n infobox manager: make threadsafe\\n chathistory: small cleanups of clear history\\n cache: diable some long-running tests\\n api: finish some thoughts in callbacks javadoc\\n\\nAlexsuperfly (2):\\n loot tracker: use chest events for gauntlet loot\\n screenshot plugin: add gauntlet loot screenshots\\n\\nAnthony Alves (1):\\n chat-history: add option to clear history for all chatbox tabs (#11543)\\n\\nAustin Lee (1):\\n Add gnome bench to construction skill calculator\\n\\nBenjamin Stepp (1):\\n itemmappings: adds nightmare staves\\n\\nBroooklyn (3):\\n cluescrolls: Update Iron Man Tutor cipher clue (#11593)\\n loottracker: Improve ignored events config name and description (#11545)\\n cluescrolls: Fix "jewellery" clue hint spelling (#11673)\\n\\nCorey Forsyth (2):\\n chatfilter: add collapse duplicate chat option\\n chatfilter: add option to block repeated public messages\\n\\nDamen (1):\\n screenshot plugin: block untradeable drops within the Gauntlet\\n\\nDaniel (1):\\n item prices: always show tooltip when alching if option is enabled\\n\\nHydrox6 (7):\\n ground items: move repeated notify code into notifyHighlightedItem\\n ground items: remove Highlight > Value\\n ground items: add Notify >= Tier\\n clues: add brutal green dragon variant to cryptic clue\\n gpu: add warning message to compute shaders option\\n api: add support for setting login screen and fire rendering\\n login screen: add custom login screen support\\n\\nJan-Willem de Bruyn (1):\\n skillcalculator: Add clay crafting items (#11518)\\n\\nJesse Serrao (1):\\n itemstats: Add bounty hunter blighted food/pots (#11550)\\n\\nJordan Atwood (5):\\n HotColdLocation: Center some location spots\\n loot tracker: Use "an" prefix for monster names starting with vowels\\n examine: Move price lookups off executor\\n itemmanager: Canonicalize price lookup item IDs\\n client: Simplify ItemContainer usage\\n\\nKyle Shepherd (2):\\n worldhopper: Change `showSidebar` option name to 'Show world switcher sidebar' (#11537)\\n itemidentification: Change Combat Potion short name from 'D' to 'C' (#11566)\\n\\nLotto (1):\\n player-indicators: don't decorate non-player custom menu options\\n\\nMalfuryent (1):\\n report button: add ability to switch between 24h and 12h clock\\n\\nMarbleTurtle (1):\\n chathistory: Fix copy to clipboard not appearing on friend messages (#11527)\\n\\nMatthew Kramer (1):\\n metronome: add independent volume configuration\\n\\nMax Weber (3):\\n npcunaggroarea: split color config depending on timer status\\n ItemManager: only canonicalize notes\\n HotkeyButton: allow binding the space key\\n\\nMelky (2):\\n agility plugin: add config for Prifddinas portal color\\n screenmarker: add ability to put screen markers around widgets (#11552)\\n\\nMitchell Kovacs (1):\\n menu swapper: add enter-corrupted gauntlet swap\\n\\nRachel M (1):\\n screenshot: Add option to take screenshot on clan chat kick\\n\\nRangvaldr (1):\\n discord: Update activity message while playing PVP or DMM (#11522)\\n\\nRobertCurll (2):\\n skillcalculator: Add comma separators to experience fields\\n skillcalculator: Add needed experience tooltip\\n\\nRon Young (1):\\n object indicators: fix NPE thrown on logging in on a marked object\\n\\nThePharros (2):\\n item stats: Add Dragonfruit Pie\\n itemcharges: Add Magic Essence and Super Strength potion doses (#11634)\\n\\nTheStonedTurtle (2):\\n loot tracker: Fix "Show each kill separately" view\\n Make background color of panel components configurable (#11619)\\n\\nTim van Rossum (1):\\n boosts: Add option to disable boost threshold notifications (#11668)\\n\\nTinus Flagstad (1):\\n keyremapping: add option to remap space in dialog\\n\\nTomas Slusny (1):\\n Use multiplicative color offsets for BackgroundComponent border (#11658)\\n\\nTrevor (1):\\n raid plugin: fix plugin not reseting when prescouting raids\\n\\nTrevor martz (2):\\n clue plugin: add enemy info to overlay\\n cluescrolls: remove sara wizard from duel arena step (#11648)\\n\\nTrey (2):\\n cluescrolls: Add jungle traversing info to dragon's eye clue\\n cluescrolls: Add Dragontooth Island travel info to clue\\n\\nVidyogamasta (1):\\n loot tracker: float group to top of list when obtaining drop\\n\\nbfmoatbio (2):\\n Allow non-degraded barrows equipment for clue step\\n menu manager: Remove bounty hunter emblem text from player name (#11541)\\n\\ncscullen (1):\\n loottracker: Add seed pack loot tracking\\n\\ndekvall (1):\\n interfacestyles: add support for menu alpha\\n\\ngeheur (1):\\n menu swapper: add swaps for buy and sell\\n\\njesse1412 (1):\\n tileindicators: Add server side current tile indicator\\n\\nloldudester (3):\\n client: Make toggle sidebar hotkey configurable\\n client: Add configurable hotkey to toggle plugin panel\\n keyremapping: Don't remap f-keys when the bank pin interface is open\\n\\nmelkypie (4):\\n itemcharges: show potion doses\\n report button: add clock tag\\n chatcommands: fix chambers of xeric pb tracking\\n chatcommands: add tob personal best tracking\\n\\ntrimbe (1):\\n bank tags: clear remembered search when the active tag tab is clicked\\n
\\n\",\"image\":\"/img/blog/1.6.17-Release/configurable-login-screen.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/127.46465e75.chunk.js b/static/js/127.fb6864d3.chunk.js
similarity index 98%
rename from static/js/127.46465e75.chunk.js
rename to static/js/127.fb6864d3.chunk.js
index e4a2bc99d..b05e6c4a7 100644
--- a/static/js/127.46465e75.chunk.js
+++ b/static/js/127.fb6864d3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[127],{402:function(n,e){n.exports={title:"1.6.18 & 1.6.19 Releases",description:"Config panel enhancements, XP Tracker drag-and-drop reordering, Farming contract indicators",author:"Jordan",body:'We\'ve added a number of enhancements to our config panel! Busy settings panels populated with many\noptions now have their options split into sections which can be expanded or contracted so you can\nquickly find the options you\'re looking for. Individual settings can also be reset to their default\nvalues by clicking on their labels and selecting the "Reset" menu option.
\n
\nAdditionally, you can click the dropdown button of the config panel search bar to see a list of\ncommon plugin categories to search.
\n
\nThe XP Tracker plugin now supports drag and\ndrop reordering in the panel so you can reorder your skills to your liking. Thanks to\n@Shingyx for this great enhancement.
\n
\nThe Time Tracking plugin now displays a\nfarming contract indicator next whatever crop is currently assigned as your farming contract, and can show an infobox with the crop name and state. Thanks\nto @melkypie for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Darkmeyer login screen has been added to the login screen plugin \nRuneLite
settings has a new option to change the window transparency \nA gorilla emoji has been added to the Emoji plugin \nArceuus teleport portals in the POH now display portal icons using the POH plugin \nThe NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\ndead NPCs\' menu entries \nThe Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\nhighlight swords and arrows \nA number of clues have been given improved hints to better display the target location \nThe slayer plugin no longer forgets your points and streak when you have no current task \nThe Chat Notifications plugin can now send notifications when receiving broadcast messages \nQuests with non-uniform completion dialogs now capture screenshots with proper file names \nRemoving favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds \nThe individual group loot tracker view now shows the correct total loot value \nA bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed \nGround Item notifications no longer display the item quantity twice \nFix the Grand Exchange search panel from breaking when the search dialog is cleared \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 30 contributors this release!
\nAdam (27):\n plugin manager: chain child injectors for plugin dependencies\n plugin manager: don\'t search child injector bindings for configs\n hooks: remove remaining static callbacks\n http-api: use separate class for ge trade history\n ge plugin: submit trades even when not logged in\n ge plugin: submit partially completed trades\n ge controller: publish trade data to redis\n ge plugin: include world type in trades\n ge controller: add total to trade message\n ge plugin: null client session id on session close\n ge: submit spent price instead of computed per-item price\n ge plugin: include if trade is synced on login\n ge: include slot id\n ge: include both delta qty and qty\n ge plugin: ignore offers being cleared on logout\n client: remove unnecessary annotation-providing dependencies from runtime classpath\n Revert "clanchat: Add player name to kick message (#11555)"\n npc indicators: rename highlight dead npcs to ignore dead npcs\n npc indicators: add option to highlight dead npc menu entries\n ge: fix computing bought/sold amount\n pom: set release 8 on jdk9+\n slayer plugin: fix points and streak being forgotten when restarted with no task\n api: add spawn time to tileitem\n agility plugin: highlight Sepulchre arrows and swords\n loottrackerpanel: use setComponentZOrder instead of remove+add\n config panel: add option to reset individual config options\n attack styles: fix npe when config values are unset\n\nAdam Blaida (1):\n Update lumbridge guide\'s position for anagram clue\n\nAleksander Birkeland (1):\n ClientUI: Add support for changing window opacity.\n\nAlfred Ababio (1):\n key remapper: don\'t consume keytype events when dialog is open\n\nBlackberry0Pie (1):\n raids: Add "cox" to plugin tags (#11873)\n\nBrandon Austin (1):\n metronome: Reset plugin state on shutDown (#11667)\n\nBroooklyn (9):\n grounditems: Fix grammar in config descriptions (#11743)\n emoji: Add gorilla emoji (#11562)\n clues: Add missing Agility and Max cape IDs to skill challenge\n poh: Add portal icons for Arceuus teleports\n agility plugin: add reset option to overlay\n util: Add removeFormattingTags text function\n chatnotifications: Add notification for broadcast messages\n agility plugin: highlight platforms and stairs in Sepulchre\n RunecraftConfig: Add config section for `Show Blood Rift`\n\nCrow (1):\n skillcalculator: Add divine potions to herblore calculator (#11676)\n\nDamen (1):\n loot tracker: fix cox loot being double-counted after region load\n\nDominik (1):\n Add item mapping for twisted ancestral robes (#11761)\n\nHydrox (1):\n gpu: fix major visual glitches on linux (#11389)\n\nHydrox6 (7):\n Add all other pearl rod animations\n login screen: reset fire state when disabling the plugin\n login screen: add darkmeyer login screen\n clues: update ranging mix sherlock master challenge\n config: add support for sections\n add sections to various configs\n menu entry swapper: split hardwood grove into 2 options\n\nJacob Lindelof (1):\n antidrag: Add option to use CTRL to disable delay\n\nJesse Serrao (2):\n npc indicators: add option to not highlight dead npcs\n npchighlight: Recolor spell cast and "use item" menu entries (#11595)\n\nJordan Atwood (2):\n infoboxmanager: Test infoboxes with same plugin and priority\n ConfigPanel: Fix checkstyle violation\n\nMarbleTurtle (2):\n clanchat: Add player name to kick message (#11555)\n CrypticClue: Improve various clue hints (#11852)\n\nMax Weber (8):\n hiscore: modify the ui on the edt only\n IconTextField: add combobox-style suggestion dropdown\n config: add tag suggestions\n PluginManager: don\'t duplicate dependency plugins if they already exist\n worldmap: add Sins of the Father start location\n IconTextField: fire clear listener after text has been cleared\n cache: emit null npc ids\n rl-api/Widget: export animation and sprite tiling\n\nNathan Leba (1):\n worldhopper: Fix unfavorite removing all favorited worlds (#11739)\n\nRangvaldr (1):\n AgilityShortcut: Add Witchaven Dungeon agility shortcut (#11690)\n\nSomeZer0 (1):\n boosts: Improve "Boost amount threshold" config description (#11744)\n\nSu-Shing Chen (1):\n xptracker: Add drag and drop reordering for tracker panel bars (#4118)\n\nTheStonedTurtle (4):\n item stats - Fix revitalisation potion prayer bonus\n item stats - Fix sanfew serum restore bonuses\n loot tracker - Fix total values when not grouping loot\n item stats overlay: limit bank widgets to item container\n\nbranisk (2):\n worldmap: Fix Kebos Lowlands mining site tooltip (#11748)\n timers: remove stamina timer upon entering the Gauntlet (#11742)\n\ncyantheum (1):\n motherlode: Fix vein overlay not displaying on upper level (#11796)\n\nemerald000 (1):\n worldmap: Fix Asgarnian Ice Dungeon spelling (#11864)\n\njohannfrias (1):\n screenshot: fix quest screenshot naming method (#11580)\n\nloldudester (1):\n antidrag: Enable shift-antidrag in PvP regardless of onShiftOnly config\n\nmelkypie (7):\n itemmanager: add worn items mapping for black graceful\n clues: account for blisterwood flail and black graceful\n itemskeptondeath: add dark squirrel to always lost items\n runenergy: add black graceful\n itemmappings: map blood fury to amulet of fury\n worldmap: add hallowed sepulchre to minigames\n timetracking: add farming contract functionality\n\noneilljos (1):\n grounditems: Remove duplicate item count in notifications (#10526)\n\nwhile-loop (1):\n chat-history: fix plugin not clearing history\n
\n',image:"/img/blog/1.6.19-Release/config-panel-sections-individual-reset.png"}}}]);
-//# sourceMappingURL=127.46465e75.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[127],{403:function(n,e){n.exports={title:"1.6.18 & 1.6.19 Releases",description:"Config panel enhancements, XP Tracker drag-and-drop reordering, Farming contract indicators",author:"Jordan",body:'We\'ve added a number of enhancements to our config panel! Busy settings panels populated with many\noptions now have their options split into sections which can be expanded or contracted so you can\nquickly find the options you\'re looking for. Individual settings can also be reset to their default\nvalues by clicking on their labels and selecting the "Reset" menu option.
\n
\nAdditionally, you can click the dropdown button of the config panel search bar to see a list of\ncommon plugin categories to search.
\n
\nThe XP Tracker plugin now supports drag and\ndrop reordering in the panel so you can reorder your skills to your liking. Thanks to\n@Shingyx for this great enhancement.
\n
\nThe Time Tracking plugin now displays a\nfarming contract indicator next whatever crop is currently assigned as your farming contract, and can show an infobox with the crop name and state. Thanks\nto @melkypie for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Darkmeyer login screen has been added to the login screen plugin \nRuneLite
settings has a new option to change the window transparency \nA gorilla emoji has been added to the Emoji plugin \nArceuus teleport portals in the POH now display portal icons using the POH plugin \nThe NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\ndead NPCs\' menu entries \nThe Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\nhighlight swords and arrows \nA number of clues have been given improved hints to better display the target location \nThe slayer plugin no longer forgets your points and streak when you have no current task \nThe Chat Notifications plugin can now send notifications when receiving broadcast messages \nQuests with non-uniform completion dialogs now capture screenshots with proper file names \nRemoving favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds \nThe individual group loot tracker view now shows the correct total loot value \nA bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed \nGround Item notifications no longer display the item quantity twice \nFix the Grand Exchange search panel from breaking when the search dialog is cleared \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 30 contributors this release!
\nAdam (27):\n plugin manager: chain child injectors for plugin dependencies\n plugin manager: don\'t search child injector bindings for configs\n hooks: remove remaining static callbacks\n http-api: use separate class for ge trade history\n ge plugin: submit trades even when not logged in\n ge plugin: submit partially completed trades\n ge controller: publish trade data to redis\n ge plugin: include world type in trades\n ge controller: add total to trade message\n ge plugin: null client session id on session close\n ge: submit spent price instead of computed per-item price\n ge plugin: include if trade is synced on login\n ge: include slot id\n ge: include both delta qty and qty\n ge plugin: ignore offers being cleared on logout\n client: remove unnecessary annotation-providing dependencies from runtime classpath\n Revert "clanchat: Add player name to kick message (#11555)"\n npc indicators: rename highlight dead npcs to ignore dead npcs\n npc indicators: add option to highlight dead npc menu entries\n ge: fix computing bought/sold amount\n pom: set release 8 on jdk9+\n slayer plugin: fix points and streak being forgotten when restarted with no task\n api: add spawn time to tileitem\n agility plugin: highlight Sepulchre arrows and swords\n loottrackerpanel: use setComponentZOrder instead of remove+add\n config panel: add option to reset individual config options\n attack styles: fix npe when config values are unset\n\nAdam Blaida (1):\n Update lumbridge guide\'s position for anagram clue\n\nAleksander Birkeland (1):\n ClientUI: Add support for changing window opacity.\n\nAlfred Ababio (1):\n key remapper: don\'t consume keytype events when dialog is open\n\nBlackberry0Pie (1):\n raids: Add "cox" to plugin tags (#11873)\n\nBrandon Austin (1):\n metronome: Reset plugin state on shutDown (#11667)\n\nBroooklyn (9):\n grounditems: Fix grammar in config descriptions (#11743)\n emoji: Add gorilla emoji (#11562)\n clues: Add missing Agility and Max cape IDs to skill challenge\n poh: Add portal icons for Arceuus teleports\n agility plugin: add reset option to overlay\n util: Add removeFormattingTags text function\n chatnotifications: Add notification for broadcast messages\n agility plugin: highlight platforms and stairs in Sepulchre\n RunecraftConfig: Add config section for `Show Blood Rift`\n\nCrow (1):\n skillcalculator: Add divine potions to herblore calculator (#11676)\n\nDamen (1):\n loot tracker: fix cox loot being double-counted after region load\n\nDominik (1):\n Add item mapping for twisted ancestral robes (#11761)\n\nHydrox (1):\n gpu: fix major visual glitches on linux (#11389)\n\nHydrox6 (7):\n Add all other pearl rod animations\n login screen: reset fire state when disabling the plugin\n login screen: add darkmeyer login screen\n clues: update ranging mix sherlock master challenge\n config: add support for sections\n add sections to various configs\n menu entry swapper: split hardwood grove into 2 options\n\nJacob Lindelof (1):\n antidrag: Add option to use CTRL to disable delay\n\nJesse Serrao (2):\n npc indicators: add option to not highlight dead npcs\n npchighlight: Recolor spell cast and "use item" menu entries (#11595)\n\nJordan Atwood (2):\n infoboxmanager: Test infoboxes with same plugin and priority\n ConfigPanel: Fix checkstyle violation\n\nMarbleTurtle (2):\n clanchat: Add player name to kick message (#11555)\n CrypticClue: Improve various clue hints (#11852)\n\nMax Weber (8):\n hiscore: modify the ui on the edt only\n IconTextField: add combobox-style suggestion dropdown\n config: add tag suggestions\n PluginManager: don\'t duplicate dependency plugins if they already exist\n worldmap: add Sins of the Father start location\n IconTextField: fire clear listener after text has been cleared\n cache: emit null npc ids\n rl-api/Widget: export animation and sprite tiling\n\nNathan Leba (1):\n worldhopper: Fix unfavorite removing all favorited worlds (#11739)\n\nRangvaldr (1):\n AgilityShortcut: Add Witchaven Dungeon agility shortcut (#11690)\n\nSomeZer0 (1):\n boosts: Improve "Boost amount threshold" config description (#11744)\n\nSu-Shing Chen (1):\n xptracker: Add drag and drop reordering for tracker panel bars (#4118)\n\nTheStonedTurtle (4):\n item stats - Fix revitalisation potion prayer bonus\n item stats - Fix sanfew serum restore bonuses\n loot tracker - Fix total values when not grouping loot\n item stats overlay: limit bank widgets to item container\n\nbranisk (2):\n worldmap: Fix Kebos Lowlands mining site tooltip (#11748)\n timers: remove stamina timer upon entering the Gauntlet (#11742)\n\ncyantheum (1):\n motherlode: Fix vein overlay not displaying on upper level (#11796)\n\nemerald000 (1):\n worldmap: Fix Asgarnian Ice Dungeon spelling (#11864)\n\njohannfrias (1):\n screenshot: fix quest screenshot naming method (#11580)\n\nloldudester (1):\n antidrag: Enable shift-antidrag in PvP regardless of onShiftOnly config\n\nmelkypie (7):\n itemmanager: add worn items mapping for black graceful\n clues: account for blisterwood flail and black graceful\n itemskeptondeath: add dark squirrel to always lost items\n runenergy: add black graceful\n itemmappings: map blood fury to amulet of fury\n worldmap: add hallowed sepulchre to minigames\n timetracking: add farming contract functionality\n\noneilljos (1):\n grounditems: Remove duplicate item count in notifications (#10526)\n\nwhile-loop (1):\n chat-history: fix plugin not clearing history\n
\n',image:"/img/blog/1.6.19-Release/config-panel-sections-individual-reset.png"}}}]);
+//# sourceMappingURL=127.fb6864d3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/127.46465e75.chunk.js.map b/static/js/127.fb6864d3.chunk.js.map
similarity index 99%
rename from static/js/127.46465e75.chunk.js.map
rename to static/js/127.fb6864d3.chunk.js.map
index bcd5b4729..ee073ab9f 100644
--- a/static/js/127.46465e75.chunk.js.map
+++ b/static/js/127.fb6864d3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-06-12-10-00-1.6.19-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,8FAA8F,OAAS,SAAS,KAAO,0rSAA2tS,MAAQ","file":"static/js/127.46465e75.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.18 & 1.6.19 Releases\",\"description\":\"Config panel enhancements, XP Tracker drag-and-drop reordering, Farming contract indicators\",\"author\":\"Jordan\",\"body\":\"We've added a number of enhancements to our config panel! Busy settings panels populated with many\\noptions now have their options split into sections which can be expanded or contracted so you can\\nquickly find the options you're looking for. Individual settings can also be reset to their default\\nvalues by clicking on their labels and selecting the "Reset" menu option.
\\n
\\nAdditionally, you can click the dropdown button of the config panel search bar to see a list of\\ncommon plugin categories to search.
\\n
\\nThe XP Tracker plugin now supports drag and\\ndrop reordering in the panel so you can reorder your skills to your liking. Thanks to\\n@Shingyx for this great enhancement.
\\n
\\nThe Time Tracking plugin now displays a\\nfarming contract indicator next whatever crop is currently assigned as your farming contract, and can show an infobox with the crop name and state. Thanks\\nto @melkypie for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Darkmeyer login screen has been added to the login screen plugin \\nRuneLite
settings has a new option to change the window transparency \\nA gorilla emoji has been added to the Emoji plugin \\nArceuus teleport portals in the POH now display portal icons using the POH plugin \\nThe NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\\ndead NPCs' menu entries \\nThe Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\\nhighlight swords and arrows \\nA number of clues have been given improved hints to better display the target location \\nThe slayer plugin no longer forgets your points and streak when you have no current task \\nThe Chat Notifications plugin can now send notifications when receiving broadcast messages \\nQuests with non-uniform completion dialogs now capture screenshots with proper file names \\nRemoving favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds \\nThe individual group loot tracker view now shows the correct total loot value \\nA bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed \\nGround Item notifications no longer display the item quantity twice \\nFix the Grand Exchange search panel from breaking when the search dialog is cleared \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 30 contributors this release!
\\nAdam (27):\\n plugin manager: chain child injectors for plugin dependencies\\n plugin manager: don't search child injector bindings for configs\\n hooks: remove remaining static callbacks\\n http-api: use separate class for ge trade history\\n ge plugin: submit trades even when not logged in\\n ge plugin: submit partially completed trades\\n ge controller: publish trade data to redis\\n ge plugin: include world type in trades\\n ge controller: add total to trade message\\n ge plugin: null client session id on session close\\n ge: submit spent price instead of computed per-item price\\n ge plugin: include if trade is synced on login\\n ge: include slot id\\n ge: include both delta qty and qty\\n ge plugin: ignore offers being cleared on logout\\n client: remove unnecessary annotation-providing dependencies from runtime classpath\\n Revert "clanchat: Add player name to kick message (#11555)"\\n npc indicators: rename highlight dead npcs to ignore dead npcs\\n npc indicators: add option to highlight dead npc menu entries\\n ge: fix computing bought/sold amount\\n pom: set release 8 on jdk9+\\n slayer plugin: fix points and streak being forgotten when restarted with no task\\n api: add spawn time to tileitem\\n agility plugin: highlight Sepulchre arrows and swords\\n loottrackerpanel: use setComponentZOrder instead of remove+add\\n config panel: add option to reset individual config options\\n attack styles: fix npe when config values are unset\\n\\nAdam Blaida (1):\\n Update lumbridge guide's position for anagram clue\\n\\nAleksander Birkeland (1):\\n ClientUI: Add support for changing window opacity.\\n\\nAlfred Ababio (1):\\n key remapper: don't consume keytype events when dialog is open\\n\\nBlackberry0Pie (1):\\n raids: Add "cox" to plugin tags (#11873)\\n\\nBrandon Austin (1):\\n metronome: Reset plugin state on shutDown (#11667)\\n\\nBroooklyn (9):\\n grounditems: Fix grammar in config descriptions (#11743)\\n emoji: Add gorilla emoji (#11562)\\n clues: Add missing Agility and Max cape IDs to skill challenge\\n poh: Add portal icons for Arceuus teleports\\n agility plugin: add reset option to overlay\\n util: Add removeFormattingTags text function\\n chatnotifications: Add notification for broadcast messages\\n agility plugin: highlight platforms and stairs in Sepulchre\\n RunecraftConfig: Add config section for `Show Blood Rift`\\n\\nCrow (1):\\n skillcalculator: Add divine potions to herblore calculator (#11676)\\n\\nDamen (1):\\n loot tracker: fix cox loot being double-counted after region load\\n\\nDominik (1):\\n Add item mapping for twisted ancestral robes (#11761)\\n\\nHydrox (1):\\n gpu: fix major visual glitches on linux (#11389)\\n\\nHydrox6 (7):\\n Add all other pearl rod animations\\n login screen: reset fire state when disabling the plugin\\n login screen: add darkmeyer login screen\\n clues: update ranging mix sherlock master challenge\\n config: add support for sections\\n add sections to various configs\\n menu entry swapper: split hardwood grove into 2 options\\n\\nJacob Lindelof (1):\\n antidrag: Add option to use CTRL to disable delay\\n\\nJesse Serrao (2):\\n npc indicators: add option to not highlight dead npcs\\n npchighlight: Recolor spell cast and "use item" menu entries (#11595)\\n\\nJordan Atwood (2):\\n infoboxmanager: Test infoboxes with same plugin and priority\\n ConfigPanel: Fix checkstyle violation\\n\\nMarbleTurtle (2):\\n clanchat: Add player name to kick message (#11555)\\n CrypticClue: Improve various clue hints (#11852)\\n\\nMax Weber (8):\\n hiscore: modify the ui on the edt only\\n IconTextField: add combobox-style suggestion dropdown\\n config: add tag suggestions\\n PluginManager: don't duplicate dependency plugins if they already exist\\n worldmap: add Sins of the Father start location\\n IconTextField: fire clear listener after text has been cleared\\n cache: emit null npc ids\\n rl-api/Widget: export animation and sprite tiling\\n\\nNathan Leba (1):\\n worldhopper: Fix unfavorite removing all favorited worlds (#11739)\\n\\nRangvaldr (1):\\n AgilityShortcut: Add Witchaven Dungeon agility shortcut (#11690)\\n\\nSomeZer0 (1):\\n boosts: Improve "Boost amount threshold" config description (#11744)\\n\\nSu-Shing Chen (1):\\n xptracker: Add drag and drop reordering for tracker panel bars (#4118)\\n\\nTheStonedTurtle (4):\\n item stats - Fix revitalisation potion prayer bonus\\n item stats - Fix sanfew serum restore bonuses\\n loot tracker - Fix total values when not grouping loot\\n item stats overlay: limit bank widgets to item container\\n\\nbranisk (2):\\n worldmap: Fix Kebos Lowlands mining site tooltip (#11748)\\n timers: remove stamina timer upon entering the Gauntlet (#11742)\\n\\ncyantheum (1):\\n motherlode: Fix vein overlay not displaying on upper level (#11796)\\n\\nemerald000 (1):\\n worldmap: Fix Asgarnian Ice Dungeon spelling (#11864)\\n\\njohannfrias (1):\\n screenshot: fix quest screenshot naming method (#11580)\\n\\nloldudester (1):\\n antidrag: Enable shift-antidrag in PvP regardless of onShiftOnly config\\n\\nmelkypie (7):\\n itemmanager: add worn items mapping for black graceful\\n clues: account for blisterwood flail and black graceful\\n itemskeptondeath: add dark squirrel to always lost items\\n runenergy: add black graceful\\n itemmappings: map blood fury to amulet of fury\\n worldmap: add hallowed sepulchre to minigames\\n timetracking: add farming contract functionality\\n\\noneilljos (1):\\n grounditems: Remove duplicate item count in notifications (#10526)\\n\\nwhile-loop (1):\\n chat-history: fix plugin not clearing history\\n
\\n\",\"image\":\"/img/blog/1.6.19-Release/config-panel-sections-individual-reset.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-06-12-10-00-1.6.19-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,8FAA8F,OAAS,SAAS,KAAO,0rSAA2tS,MAAQ","file":"static/js/127.fb6864d3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.18 & 1.6.19 Releases\",\"description\":\"Config panel enhancements, XP Tracker drag-and-drop reordering, Farming contract indicators\",\"author\":\"Jordan\",\"body\":\"We've added a number of enhancements to our config panel! Busy settings panels populated with many\\noptions now have their options split into sections which can be expanded or contracted so you can\\nquickly find the options you're looking for. Individual settings can also be reset to their default\\nvalues by clicking on their labels and selecting the "Reset" menu option.
\\n
\\nAdditionally, you can click the dropdown button of the config panel search bar to see a list of\\ncommon plugin categories to search.
\\n
\\nThe XP Tracker plugin now supports drag and\\ndrop reordering in the panel so you can reorder your skills to your liking. Thanks to\\n@Shingyx for this great enhancement.
\\n
\\nThe Time Tracking plugin now displays a\\nfarming contract indicator next whatever crop is currently assigned as your farming contract, and can show an infobox with the crop name and state. Thanks\\nto @melkypie for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Darkmeyer login screen has been added to the login screen plugin \\nRuneLite
settings has a new option to change the window transparency \\nA gorilla emoji has been added to the Emoji plugin \\nArceuus teleport portals in the POH now display portal icons using the POH plugin \\nThe NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\\ndead NPCs' menu entries \\nThe Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\\nhighlight swords and arrows \\nA number of clues have been given improved hints to better display the target location \\nThe slayer plugin no longer forgets your points and streak when you have no current task \\nThe Chat Notifications plugin can now send notifications when receiving broadcast messages \\nQuests with non-uniform completion dialogs now capture screenshots with proper file names \\nRemoving favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds \\nThe individual group loot tracker view now shows the correct total loot value \\nA bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed \\nGround Item notifications no longer display the item quantity twice \\nFix the Grand Exchange search panel from breaking when the search dialog is cleared \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 30 contributors this release!
\\nAdam (27):\\n plugin manager: chain child injectors for plugin dependencies\\n plugin manager: don't search child injector bindings for configs\\n hooks: remove remaining static callbacks\\n http-api: use separate class for ge trade history\\n ge plugin: submit trades even when not logged in\\n ge plugin: submit partially completed trades\\n ge controller: publish trade data to redis\\n ge plugin: include world type in trades\\n ge controller: add total to trade message\\n ge plugin: null client session id on session close\\n ge: submit spent price instead of computed per-item price\\n ge plugin: include if trade is synced on login\\n ge: include slot id\\n ge: include both delta qty and qty\\n ge plugin: ignore offers being cleared on logout\\n client: remove unnecessary annotation-providing dependencies from runtime classpath\\n Revert "clanchat: Add player name to kick message (#11555)"\\n npc indicators: rename highlight dead npcs to ignore dead npcs\\n npc indicators: add option to highlight dead npc menu entries\\n ge: fix computing bought/sold amount\\n pom: set release 8 on jdk9+\\n slayer plugin: fix points and streak being forgotten when restarted with no task\\n api: add spawn time to tileitem\\n agility plugin: highlight Sepulchre arrows and swords\\n loottrackerpanel: use setComponentZOrder instead of remove+add\\n config panel: add option to reset individual config options\\n attack styles: fix npe when config values are unset\\n\\nAdam Blaida (1):\\n Update lumbridge guide's position for anagram clue\\n\\nAleksander Birkeland (1):\\n ClientUI: Add support for changing window opacity.\\n\\nAlfred Ababio (1):\\n key remapper: don't consume keytype events when dialog is open\\n\\nBlackberry0Pie (1):\\n raids: Add "cox" to plugin tags (#11873)\\n\\nBrandon Austin (1):\\n metronome: Reset plugin state on shutDown (#11667)\\n\\nBroooklyn (9):\\n grounditems: Fix grammar in config descriptions (#11743)\\n emoji: Add gorilla emoji (#11562)\\n clues: Add missing Agility and Max cape IDs to skill challenge\\n poh: Add portal icons for Arceuus teleports\\n agility plugin: add reset option to overlay\\n util: Add removeFormattingTags text function\\n chatnotifications: Add notification for broadcast messages\\n agility plugin: highlight platforms and stairs in Sepulchre\\n RunecraftConfig: Add config section for `Show Blood Rift`\\n\\nCrow (1):\\n skillcalculator: Add divine potions to herblore calculator (#11676)\\n\\nDamen (1):\\n loot tracker: fix cox loot being double-counted after region load\\n\\nDominik (1):\\n Add item mapping for twisted ancestral robes (#11761)\\n\\nHydrox (1):\\n gpu: fix major visual glitches on linux (#11389)\\n\\nHydrox6 (7):\\n Add all other pearl rod animations\\n login screen: reset fire state when disabling the plugin\\n login screen: add darkmeyer login screen\\n clues: update ranging mix sherlock master challenge\\n config: add support for sections\\n add sections to various configs\\n menu entry swapper: split hardwood grove into 2 options\\n\\nJacob Lindelof (1):\\n antidrag: Add option to use CTRL to disable delay\\n\\nJesse Serrao (2):\\n npc indicators: add option to not highlight dead npcs\\n npchighlight: Recolor spell cast and "use item" menu entries (#11595)\\n\\nJordan Atwood (2):\\n infoboxmanager: Test infoboxes with same plugin and priority\\n ConfigPanel: Fix checkstyle violation\\n\\nMarbleTurtle (2):\\n clanchat: Add player name to kick message (#11555)\\n CrypticClue: Improve various clue hints (#11852)\\n\\nMax Weber (8):\\n hiscore: modify the ui on the edt only\\n IconTextField: add combobox-style suggestion dropdown\\n config: add tag suggestions\\n PluginManager: don't duplicate dependency plugins if they already exist\\n worldmap: add Sins of the Father start location\\n IconTextField: fire clear listener after text has been cleared\\n cache: emit null npc ids\\n rl-api/Widget: export animation and sprite tiling\\n\\nNathan Leba (1):\\n worldhopper: Fix unfavorite removing all favorited worlds (#11739)\\n\\nRangvaldr (1):\\n AgilityShortcut: Add Witchaven Dungeon agility shortcut (#11690)\\n\\nSomeZer0 (1):\\n boosts: Improve "Boost amount threshold" config description (#11744)\\n\\nSu-Shing Chen (1):\\n xptracker: Add drag and drop reordering for tracker panel bars (#4118)\\n\\nTheStonedTurtle (4):\\n item stats - Fix revitalisation potion prayer bonus\\n item stats - Fix sanfew serum restore bonuses\\n loot tracker - Fix total values when not grouping loot\\n item stats overlay: limit bank widgets to item container\\n\\nbranisk (2):\\n worldmap: Fix Kebos Lowlands mining site tooltip (#11748)\\n timers: remove stamina timer upon entering the Gauntlet (#11742)\\n\\ncyantheum (1):\\n motherlode: Fix vein overlay not displaying on upper level (#11796)\\n\\nemerald000 (1):\\n worldmap: Fix Asgarnian Ice Dungeon spelling (#11864)\\n\\njohannfrias (1):\\n screenshot: fix quest screenshot naming method (#11580)\\n\\nloldudester (1):\\n antidrag: Enable shift-antidrag in PvP regardless of onShiftOnly config\\n\\nmelkypie (7):\\n itemmanager: add worn items mapping for black graceful\\n clues: account for blisterwood flail and black graceful\\n itemskeptondeath: add dark squirrel to always lost items\\n runenergy: add black graceful\\n itemmappings: map blood fury to amulet of fury\\n worldmap: add hallowed sepulchre to minigames\\n timetracking: add farming contract functionality\\n\\noneilljos (1):\\n grounditems: Remove duplicate item count in notifications (#10526)\\n\\nwhile-loop (1):\\n chat-history: fix plugin not clearing history\\n
\\n\",\"image\":\"/img/blog/1.6.19-Release/config-panel-sections-individual-reset.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/128.c5600740.chunk.js b/static/js/128.4ae35895.chunk.js
similarity index 98%
rename from static/js/128.c5600740.chunk.js
rename to static/js/128.4ae35895.chunk.js
index 73860a5b6..459704850 100644
--- a/static/js/128.c5600740.chunk.js
+++ b/static/js/128.4ae35895.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[128],{403:function(e,n){e.exports={title:"1.6.20 Release",description:"Hallowed Sepulchre loot tracking and chat commands and infobox menu options",author:"Jordan",body:'We\'ve added support for tracking collected\nloot as well as completion counts and\npersonal bests in the Hallowed Sepulchre.\nUse the !kc hs
and !pb hs
chat commands to see this information. You can even get information\nfor specific floors by adding the floor number, like !pb hs 5
.
\n \n
\nWe\'ve added support for adding menu options to infoboxes! Now if you have the "Death Infobox" option\nenabled in the Death Indicator plugin ,\nyou can right-click the infobox (may require Shift depending on your RuneLite\nsettings ) to\nclear it if you do not wish to revisit it.
\n
\nIn advance of Old School RuneScape\'s clan system feature we have renamed the Clan Chat plugin to the\nFriends Chat plugin and similarly renamed\nall other option names in the same way. This renaming will not affect your settings.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe client now remembers its screen position when moved across multiple monitors \nThe Agility plugin correctly applies your\nselected sepulchre overlay color to the arrows and swords found there \nThe Timers plugin \'s stamina timers learned how\nthe timer is affected when using the Ring of endurance \nYou may now hide the farming contract infobox in the Time Tracking\nplugin \nThe Drift Net plugin has better detection\nfor fish shaols becoming untagged next to inactive nets and can highlight Annette when you run out\nof drift nets in your inventory \nThe Player-owned House plugin now\ncorrectly draws a minimap icon over Occult Altars \nThe Clue Scroll plugin has learned the\nlocation of an added hot-cold clue step found in Darkmeyer \nThe Slayer plugin can now update your task\ninformation when speaking to your slayer master via the slayer gem dialog \nSome tooltip spelling mistakes have been corrected in the World Map\nplugin \nBaby dragons are now highlighted by the Slayer\nplugin when on a dragon task \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 13 contributors this release!
\nAdam (15):\n pom: update discord to 1.2\n ge plugin: fix adding limit reset timer multiple times\n agility overlay: correctly use sepulchre overlay color\n Rename clan chat to friends chat\n chat commands: add hallowed sepulchre pb\n chat commands: add hallowed sepulchre kc\n timers plugin: add support for ring of endurance to stam timer\n config: increase config cache to 256\n cannon plugin: move spot scene check to game state change event\n timetracking: add option to hide farm contract infobox\n runelite: add startup log with versions and arguments\n client: add safemode flag to disable gpu plugin and externals\n overlay: optimize some menu handling code\n client: add support for menu options on infoboxes\n death indicator: add clear option to infobox\n\nBart Peeters (2):\n driftnet: Hightlight Annette when no nets in inventory\n driftnet: Improve fish shoal highlighting\n\nBroooklyn (1):\n poh: Fix Altar of the Occult ID\n\nJordan Atwood (2):\n HotColdLocation: Add new Darkmeyer master step\n HotColdLocation: Center some location spots\n\nJorgeVidal29 (1):\n CoordinateClue: Note 76 Agility requirement for BJS fairy ring (#11899)\n\nMax Weber (2):\n rl-api: import (idle)?PoseAnimation\n devtools: Show actor pose animation\n\nPresNL (1):\n slayer: Parse task information from gem activate chat (#11866)\n\nSpedwards (1):\n clientui: respect multiple displays when saving/loading client position\n\nSteven Goodman (1):\n chatfilter: fix formatted messages not being collapsed\n\nleejt (2):\n LootTracker: track ground items in addition to inventory\n LootTracker: track shade chest loot\n\nmelkypie (2):\n client: fix infernal eel, karambwan and karambwanji fishing spot enum world map tooltips\n worldmap: fix spelling mistake in mor ul rek\n\nplondrein (3):\n slayer: Highlight baby dragons on task\n skillcalculator: Add sq\'irk fruits to farming calculator\n skillcalculator: Add POH garden plants to farming calculator\n\nwhaevr (1):\n loot tracker: add coffins from Hallowed Sepulchre\n
\n',image:"/img/blog/1.6.20-Release/sepulchre-loot-tracking.png"}}}]);
-//# sourceMappingURL=128.c5600740.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[128],{404:function(e,n){e.exports={title:"1.6.20 Release",description:"Hallowed Sepulchre loot tracking and chat commands and infobox menu options",author:"Jordan",body:'We\'ve added support for tracking collected\nloot as well as completion counts and\npersonal bests in the Hallowed Sepulchre.\nUse the !kc hs
and !pb hs
chat commands to see this information. You can even get information\nfor specific floors by adding the floor number, like !pb hs 5
.
\n \n
\nWe\'ve added support for adding menu options to infoboxes! Now if you have the "Death Infobox" option\nenabled in the Death Indicator plugin ,\nyou can right-click the infobox (may require Shift depending on your RuneLite\nsettings ) to\nclear it if you do not wish to revisit it.
\n
\nIn advance of Old School RuneScape\'s clan system feature we have renamed the Clan Chat plugin to the\nFriends Chat plugin and similarly renamed\nall other option names in the same way. This renaming will not affect your settings.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe client now remembers its screen position when moved across multiple monitors \nThe Agility plugin correctly applies your\nselected sepulchre overlay color to the arrows and swords found there \nThe Timers plugin \'s stamina timers learned how\nthe timer is affected when using the Ring of endurance \nYou may now hide the farming contract infobox in the Time Tracking\nplugin \nThe Drift Net plugin has better detection\nfor fish shaols becoming untagged next to inactive nets and can highlight Annette when you run out\nof drift nets in your inventory \nThe Player-owned House plugin now\ncorrectly draws a minimap icon over Occult Altars \nThe Clue Scroll plugin has learned the\nlocation of an added hot-cold clue step found in Darkmeyer \nThe Slayer plugin can now update your task\ninformation when speaking to your slayer master via the slayer gem dialog \nSome tooltip spelling mistakes have been corrected in the World Map\nplugin \nBaby dragons are now highlighted by the Slayer\nplugin when on a dragon task \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 13 contributors this release!
\nAdam (15):\n pom: update discord to 1.2\n ge plugin: fix adding limit reset timer multiple times\n agility overlay: correctly use sepulchre overlay color\n Rename clan chat to friends chat\n chat commands: add hallowed sepulchre pb\n chat commands: add hallowed sepulchre kc\n timers plugin: add support for ring of endurance to stam timer\n config: increase config cache to 256\n cannon plugin: move spot scene check to game state change event\n timetracking: add option to hide farm contract infobox\n runelite: add startup log with versions and arguments\n client: add safemode flag to disable gpu plugin and externals\n overlay: optimize some menu handling code\n client: add support for menu options on infoboxes\n death indicator: add clear option to infobox\n\nBart Peeters (2):\n driftnet: Hightlight Annette when no nets in inventory\n driftnet: Improve fish shoal highlighting\n\nBroooklyn (1):\n poh: Fix Altar of the Occult ID\n\nJordan Atwood (2):\n HotColdLocation: Add new Darkmeyer master step\n HotColdLocation: Center some location spots\n\nJorgeVidal29 (1):\n CoordinateClue: Note 76 Agility requirement for BJS fairy ring (#11899)\n\nMax Weber (2):\n rl-api: import (idle)?PoseAnimation\n devtools: Show actor pose animation\n\nPresNL (1):\n slayer: Parse task information from gem activate chat (#11866)\n\nSpedwards (1):\n clientui: respect multiple displays when saving/loading client position\n\nSteven Goodman (1):\n chatfilter: fix formatted messages not being collapsed\n\nleejt (2):\n LootTracker: track ground items in addition to inventory\n LootTracker: track shade chest loot\n\nmelkypie (2):\n client: fix infernal eel, karambwan and karambwanji fishing spot enum world map tooltips\n worldmap: fix spelling mistake in mor ul rek\n\nplondrein (3):\n slayer: Highlight baby dragons on task\n skillcalculator: Add sq\'irk fruits to farming calculator\n skillcalculator: Add POH garden plants to farming calculator\n\nwhaevr (1):\n loot tracker: add coffins from Hallowed Sepulchre\n
\n',image:"/img/blog/1.6.20-Release/sepulchre-loot-tracking.png"}}}]);
+//# sourceMappingURL=128.4ae35895.chunk.js.map
\ No newline at end of file
diff --git a/static/js/128.c5600740.chunk.js.map b/static/js/128.4ae35895.chunk.js.map
similarity index 99%
rename from static/js/128.c5600740.chunk.js.map
rename to static/js/128.4ae35895.chunk.js.map
index edeaee99a..53fc84240 100644
--- a/static/js/128.c5600740.chunk.js.map
+++ b/static/js/128.4ae35895.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-06-18-10-00-1.6.20-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8EAA8E,OAAS,SAAS,KAAO,04LAAq+L,MAAQ","file":"static/js/128.c5600740.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.20 Release\",\"description\":\"Hallowed Sepulchre loot tracking and chat commands and infobox menu options\",\"author\":\"Jordan\",\"body\":\"We've added support for tracking collected\\nloot as well as completion counts and\\npersonal bests in the Hallowed Sepulchre.\\nUse the !kc hs
and !pb hs
chat commands to see this information. You can even get information\\nfor specific floors by adding the floor number, like !pb hs 5
.
\\n \\n
\\nWe've added support for adding menu options to infoboxes! Now if you have the "Death Infobox" option\\nenabled in the Death Indicator plugin ,\\nyou can right-click the infobox (may require Shift depending on your RuneLite\\nsettings ) to\\nclear it if you do not wish to revisit it.
\\n
\\nIn advance of Old School RuneScape's clan system feature we have renamed the Clan Chat plugin to the\\nFriends Chat plugin and similarly renamed\\nall other option names in the same way. This renaming will not affect your settings.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe client now remembers its screen position when moved across multiple monitors \\nThe Agility plugin correctly applies your\\nselected sepulchre overlay color to the arrows and swords found there \\nThe Timers plugin 's stamina timers learned how\\nthe timer is affected when using the Ring of endurance \\nYou may now hide the farming contract infobox in the Time Tracking\\nplugin \\nThe Drift Net plugin has better detection\\nfor fish shaols becoming untagged next to inactive nets and can highlight Annette when you run out\\nof drift nets in your inventory \\nThe Player-owned House plugin now\\ncorrectly draws a minimap icon over Occult Altars \\nThe Clue Scroll plugin has learned the\\nlocation of an added hot-cold clue step found in Darkmeyer \\nThe Slayer plugin can now update your task\\ninformation when speaking to your slayer master via the slayer gem dialog \\nSome tooltip spelling mistakes have been corrected in the World Map\\nplugin \\nBaby dragons are now highlighted by the Slayer\\nplugin when on a dragon task \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (15):\\n pom: update discord to 1.2\\n ge plugin: fix adding limit reset timer multiple times\\n agility overlay: correctly use sepulchre overlay color\\n Rename clan chat to friends chat\\n chat commands: add hallowed sepulchre pb\\n chat commands: add hallowed sepulchre kc\\n timers plugin: add support for ring of endurance to stam timer\\n config: increase config cache to 256\\n cannon plugin: move spot scene check to game state change event\\n timetracking: add option to hide farm contract infobox\\n runelite: add startup log with versions and arguments\\n client: add safemode flag to disable gpu plugin and externals\\n overlay: optimize some menu handling code\\n client: add support for menu options on infoboxes\\n death indicator: add clear option to infobox\\n\\nBart Peeters (2):\\n driftnet: Hightlight Annette when no nets in inventory\\n driftnet: Improve fish shoal highlighting\\n\\nBroooklyn (1):\\n poh: Fix Altar of the Occult ID\\n\\nJordan Atwood (2):\\n HotColdLocation: Add new Darkmeyer master step\\n HotColdLocation: Center some location spots\\n\\nJorgeVidal29 (1):\\n CoordinateClue: Note 76 Agility requirement for BJS fairy ring (#11899)\\n\\nMax Weber (2):\\n rl-api: import (idle)?PoseAnimation\\n devtools: Show actor pose animation\\n\\nPresNL (1):\\n slayer: Parse task information from gem activate chat (#11866)\\n\\nSpedwards (1):\\n clientui: respect multiple displays when saving/loading client position\\n\\nSteven Goodman (1):\\n chatfilter: fix formatted messages not being collapsed\\n\\nleejt (2):\\n LootTracker: track ground items in addition to inventory\\n LootTracker: track shade chest loot\\n\\nmelkypie (2):\\n client: fix infernal eel, karambwan and karambwanji fishing spot enum world map tooltips\\n worldmap: fix spelling mistake in mor ul rek\\n\\nplondrein (3):\\n slayer: Highlight baby dragons on task\\n skillcalculator: Add sq'irk fruits to farming calculator\\n skillcalculator: Add POH garden plants to farming calculator\\n\\nwhaevr (1):\\n loot tracker: add coffins from Hallowed Sepulchre\\n
\\n\",\"image\":\"/img/blog/1.6.20-Release/sepulchre-loot-tracking.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-06-18-10-00-1.6.20-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8EAA8E,OAAS,SAAS,KAAO,04LAAq+L,MAAQ","file":"static/js/128.4ae35895.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.20 Release\",\"description\":\"Hallowed Sepulchre loot tracking and chat commands and infobox menu options\",\"author\":\"Jordan\",\"body\":\"We've added support for tracking collected\\nloot as well as completion counts and\\npersonal bests in the Hallowed Sepulchre.\\nUse the !kc hs
and !pb hs
chat commands to see this information. You can even get information\\nfor specific floors by adding the floor number, like !pb hs 5
.
\\n \\n
\\nWe've added support for adding menu options to infoboxes! Now if you have the "Death Infobox" option\\nenabled in the Death Indicator plugin ,\\nyou can right-click the infobox (may require Shift depending on your RuneLite\\nsettings ) to\\nclear it if you do not wish to revisit it.
\\n
\\nIn advance of Old School RuneScape's clan system feature we have renamed the Clan Chat plugin to the\\nFriends Chat plugin and similarly renamed\\nall other option names in the same way. This renaming will not affect your settings.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe client now remembers its screen position when moved across multiple monitors \\nThe Agility plugin correctly applies your\\nselected sepulchre overlay color to the arrows and swords found there \\nThe Timers plugin 's stamina timers learned how\\nthe timer is affected when using the Ring of endurance \\nYou may now hide the farming contract infobox in the Time Tracking\\nplugin \\nThe Drift Net plugin has better detection\\nfor fish shaols becoming untagged next to inactive nets and can highlight Annette when you run out\\nof drift nets in your inventory \\nThe Player-owned House plugin now\\ncorrectly draws a minimap icon over Occult Altars \\nThe Clue Scroll plugin has learned the\\nlocation of an added hot-cold clue step found in Darkmeyer \\nThe Slayer plugin can now update your task\\ninformation when speaking to your slayer master via the slayer gem dialog \\nSome tooltip spelling mistakes have been corrected in the World Map\\nplugin \\nBaby dragons are now highlighted by the Slayer\\nplugin when on a dragon task \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (15):\\n pom: update discord to 1.2\\n ge plugin: fix adding limit reset timer multiple times\\n agility overlay: correctly use sepulchre overlay color\\n Rename clan chat to friends chat\\n chat commands: add hallowed sepulchre pb\\n chat commands: add hallowed sepulchre kc\\n timers plugin: add support for ring of endurance to stam timer\\n config: increase config cache to 256\\n cannon plugin: move spot scene check to game state change event\\n timetracking: add option to hide farm contract infobox\\n runelite: add startup log with versions and arguments\\n client: add safemode flag to disable gpu plugin and externals\\n overlay: optimize some menu handling code\\n client: add support for menu options on infoboxes\\n death indicator: add clear option to infobox\\n\\nBart Peeters (2):\\n driftnet: Hightlight Annette when no nets in inventory\\n driftnet: Improve fish shoal highlighting\\n\\nBroooklyn (1):\\n poh: Fix Altar of the Occult ID\\n\\nJordan Atwood (2):\\n HotColdLocation: Add new Darkmeyer master step\\n HotColdLocation: Center some location spots\\n\\nJorgeVidal29 (1):\\n CoordinateClue: Note 76 Agility requirement for BJS fairy ring (#11899)\\n\\nMax Weber (2):\\n rl-api: import (idle)?PoseAnimation\\n devtools: Show actor pose animation\\n\\nPresNL (1):\\n slayer: Parse task information from gem activate chat (#11866)\\n\\nSpedwards (1):\\n clientui: respect multiple displays when saving/loading client position\\n\\nSteven Goodman (1):\\n chatfilter: fix formatted messages not being collapsed\\n\\nleejt (2):\\n LootTracker: track ground items in addition to inventory\\n LootTracker: track shade chest loot\\n\\nmelkypie (2):\\n client: fix infernal eel, karambwan and karambwanji fishing spot enum world map tooltips\\n worldmap: fix spelling mistake in mor ul rek\\n\\nplondrein (3):\\n slayer: Highlight baby dragons on task\\n skillcalculator: Add sq'irk fruits to farming calculator\\n skillcalculator: Add POH garden plants to farming calculator\\n\\nwhaevr (1):\\n loot tracker: add coffins from Hallowed Sepulchre\\n
\\n\",\"image\":\"/img/blog/1.6.20-Release/sepulchre-loot-tracking.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/129.6f1fcc5f.chunk.js b/static/js/129.053c26c1.chunk.js
similarity index 98%
rename from static/js/129.6f1fcc5f.chunk.js
rename to static/js/129.053c26c1.chunk.js
index 1f005e25e..7ed3dba3b 100644
--- a/static/js/129.6f1fcc5f.chunk.js
+++ b/static/js/129.053c26c1.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[129],{404:function(e,n){e.exports={title:"1.6.21 Release",description:"Pyramid Plunder plugin, Ground Items text outlines, NPC Indicator highlight style toggles",author:"Jordan",body:'We\'ve added a Pyramid Plunder plugin \nwhich can hide the vanilla timer display and substitute it with an accurate timer infobox.\nAdditionally, it can highlight the spear traps, unopened doors, unopened urns, chests, and\nsarcophagi. Thanks to @Mitchell-Kovacs for this addition!
\n
\nThe Ground Items plugin plugin can now\ndraw an outline around ground item text instead of a simple shadow.
\n
\nYou can now toggle multiple overlay styles for the NPC Indicators\nplugin to show any combination of NPC\nlocation, southwest tile, and hull. Thanks to @haakonrp for this\nfeature.
\n
\nWith the update to the game\'s death\nmechanics , the Items Kept on Death\nand Death Indicator plugins are no longer needed and have been removed from the client.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe XP Tracker plugin has an option to\nmove skills with most recent XP gains to the top of the list \nThe client now remembers when your sidebar is hidden across client restarts \nYour selected bank tag tab is now saved and\nremembered when opening the bank equipment interface \nThe Anti Drag plugin now prevents dragging\nin your inventory when the bank interface is open \nThe Friends Chat plugin has an option to\nconfigure the duration that join and leave messages remain in chat \nA Tan-all swap has been added to the Menu Entry Swapper\nplugin \nDrakan\'s medallion teleport locations have been added to the World Map\nplugin \nThe Discord plugin now shows when you are\nin the Hallowed Sepulchre \nA toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\nplugin \nYou can toggle the Daeyalt essence experience bonus in the runecrafting Skill\nCalculator \nTimers have been added to the Mining plugin \nfor Daeyalt essence rocks \nThe Chat Commands plugin can now track\npersonal best times for Chambers of Xeric teams of 24+ players and updates its values for personal\nbest times from previous PB times \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 18 contributors this release!
\nAdam (10):\n client: correct spelling of taverley\n client: fetch jav_config over https\n screenmarkers: cleanup widget marker overlay bounds logic\n textcomponent: add option to outline text\n grounditems: add option to outline text\n menu swapper: clean up swap logic\n menu swapper: add tan all swap\n client: remove itemskeptondeath plugin\n chat commands: name pb matcher groups\n client: remove death indicator plugin\n\nBroooklyn (2):\n FriendsChatConfig: Fix config grammar\n agility: Fix config order\n\nHydrox6 (1):\n clues: add mention that nechryael has to be in the slayer tower\n\nH\xe5kon Paulsen (1):\n npc indicators: allow combination of higlight styles\n\nJacob Scanlon (1):\n friends chat plugin: add configuration for join/leave timeout\n\nJordan Atwood (5):\n worldmap: Add Drakan\'s medallion teleport locations\n worldmap: Add Daeyalt essence mine tooltip\n SkillChallengeClue: Fix "Mine a mithril ore" step\n discord: Add Darkmeyer and Hallowed Sepulchre minigame\n menuentryswapper: Fix birdhouse swap\n\nJoseph Zeffiro (1):\n mousehighlight: Add toggle to hide spellbook tooltips (#11924)\n\nMMagicala (3):\n antidrag: add antidrag to inventory when bank interface is open\n xp tracker: add option to sort skills by most recently gained xp\n item charges: Fix Amulet of Chemistry charges for low-dose potions (#11825)\n\nMax Weber (1):\n chatcommands: don\'t throw every tick if the player has opened a scroll\n\nMitchell Kovacs (1):\n Add Pyramid Plunder plugin\n\nOliver Payne (1):\n CoordinateClue: Improve Ice Mountain clue location description (#11907)\n\nTheStonedTurtle (1):\n skillcalc: Add Daeyalt essence bonus (#11839)\n\nTim Hinz (1):\n mining: Add Daeyalt essence timers\n\nTrevor (1):\n cache: add healthbar dumper\n\nXortrox (1):\n clientui: remember sidebar state across restarts\n\njohannfrias (1):\n banktags: Save last opened tab when opening worn items (#11660)\n\nleejt (1):\n loottracker: add standard Casket\n\nmelkypie (2):\n chatcommands: fix cox pb tracking for 24+ players team size\n chatcommands: allow cox pb to look at previous pb times from jagex\n
\n',image:"/img/blog/1.6.21-Release/pyramid-plunder-plugin.png"}}}]);
-//# sourceMappingURL=129.6f1fcc5f.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[129],{405:function(e,n){e.exports={title:"1.6.21 Release",description:"Pyramid Plunder plugin, Ground Items text outlines, NPC Indicator highlight style toggles",author:"Jordan",body:'We\'ve added a Pyramid Plunder plugin \nwhich can hide the vanilla timer display and substitute it with an accurate timer infobox.\nAdditionally, it can highlight the spear traps, unopened doors, unopened urns, chests, and\nsarcophagi. Thanks to @Mitchell-Kovacs for this addition!
\n
\nThe Ground Items plugin plugin can now\ndraw an outline around ground item text instead of a simple shadow.
\n
\nYou can now toggle multiple overlay styles for the NPC Indicators\nplugin to show any combination of NPC\nlocation, southwest tile, and hull. Thanks to @haakonrp for this\nfeature.
\n
\nWith the update to the game\'s death\nmechanics , the Items Kept on Death\nand Death Indicator plugins are no longer needed and have been removed from the client.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe XP Tracker plugin has an option to\nmove skills with most recent XP gains to the top of the list \nThe client now remembers when your sidebar is hidden across client restarts \nYour selected bank tag tab is now saved and\nremembered when opening the bank equipment interface \nThe Anti Drag plugin now prevents dragging\nin your inventory when the bank interface is open \nThe Friends Chat plugin has an option to\nconfigure the duration that join and leave messages remain in chat \nA Tan-all swap has been added to the Menu Entry Swapper\nplugin \nDrakan\'s medallion teleport locations have been added to the World Map\nplugin \nThe Discord plugin now shows when you are\nin the Hallowed Sepulchre \nA toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\nplugin \nYou can toggle the Daeyalt essence experience bonus in the runecrafting Skill\nCalculator \nTimers have been added to the Mining plugin \nfor Daeyalt essence rocks \nThe Chat Commands plugin can now track\npersonal best times for Chambers of Xeric teams of 24+ players and updates its values for personal\nbest times from previous PB times \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 18 contributors this release!
\nAdam (10):\n client: correct spelling of taverley\n client: fetch jav_config over https\n screenmarkers: cleanup widget marker overlay bounds logic\n textcomponent: add option to outline text\n grounditems: add option to outline text\n menu swapper: clean up swap logic\n menu swapper: add tan all swap\n client: remove itemskeptondeath plugin\n chat commands: name pb matcher groups\n client: remove death indicator plugin\n\nBroooklyn (2):\n FriendsChatConfig: Fix config grammar\n agility: Fix config order\n\nHydrox6 (1):\n clues: add mention that nechryael has to be in the slayer tower\n\nH\xe5kon Paulsen (1):\n npc indicators: allow combination of higlight styles\n\nJacob Scanlon (1):\n friends chat plugin: add configuration for join/leave timeout\n\nJordan Atwood (5):\n worldmap: Add Drakan\'s medallion teleport locations\n worldmap: Add Daeyalt essence mine tooltip\n SkillChallengeClue: Fix "Mine a mithril ore" step\n discord: Add Darkmeyer and Hallowed Sepulchre minigame\n menuentryswapper: Fix birdhouse swap\n\nJoseph Zeffiro (1):\n mousehighlight: Add toggle to hide spellbook tooltips (#11924)\n\nMMagicala (3):\n antidrag: add antidrag to inventory when bank interface is open\n xp tracker: add option to sort skills by most recently gained xp\n item charges: Fix Amulet of Chemistry charges for low-dose potions (#11825)\n\nMax Weber (1):\n chatcommands: don\'t throw every tick if the player has opened a scroll\n\nMitchell Kovacs (1):\n Add Pyramid Plunder plugin\n\nOliver Payne (1):\n CoordinateClue: Improve Ice Mountain clue location description (#11907)\n\nTheStonedTurtle (1):\n skillcalc: Add Daeyalt essence bonus (#11839)\n\nTim Hinz (1):\n mining: Add Daeyalt essence timers\n\nTrevor (1):\n cache: add healthbar dumper\n\nXortrox (1):\n clientui: remember sidebar state across restarts\n\njohannfrias (1):\n banktags: Save last opened tab when opening worn items (#11660)\n\nleejt (1):\n loottracker: add standard Casket\n\nmelkypie (2):\n chatcommands: fix cox pb tracking for 24+ players team size\n chatcommands: allow cox pb to look at previous pb times from jagex\n
\n',image:"/img/blog/1.6.21-Release/pyramid-plunder-plugin.png"}}}]);
+//# sourceMappingURL=129.053c26c1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/129.6f1fcc5f.chunk.js.map b/static/js/129.053c26c1.chunk.js.map
similarity index 99%
rename from static/js/129.6f1fcc5f.chunk.js.map
rename to static/js/129.053c26c1.chunk.js.map
index 8ccaff022..3a2e7ef1c 100644
--- a/static/js/129.6f1fcc5f.chunk.js.map
+++ b/static/js/129.053c26c1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-06-25-10-00-1.6.21-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4FAA4F,OAAS,SAAS,KAAO,iwMAA22M,MAAQ","file":"static/js/129.6f1fcc5f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.21 Release\",\"description\":\"Pyramid Plunder plugin, Ground Items text outlines, NPC Indicator highlight style toggles\",\"author\":\"Jordan\",\"body\":\"We've added a Pyramid Plunder plugin \\nwhich can hide the vanilla timer display and substitute it with an accurate timer infobox.\\nAdditionally, it can highlight the spear traps, unopened doors, unopened urns, chests, and\\nsarcophagi. Thanks to @Mitchell-Kovacs for this addition!
\\n
\\nThe Ground Items plugin plugin can now\\ndraw an outline around ground item text instead of a simple shadow.
\\n
\\nYou can now toggle multiple overlay styles for the NPC Indicators\\nplugin to show any combination of NPC\\nlocation, southwest tile, and hull. Thanks to @haakonrp for this\\nfeature.
\\n
\\nWith the update to the game's death\\nmechanics , the Items Kept on Death\\nand Death Indicator plugins are no longer needed and have been removed from the client.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe XP Tracker plugin has an option to\\nmove skills with most recent XP gains to the top of the list \\nThe client now remembers when your sidebar is hidden across client restarts \\nYour selected bank tag tab is now saved and\\nremembered when opening the bank equipment interface \\nThe Anti Drag plugin now prevents dragging\\nin your inventory when the bank interface is open \\nThe Friends Chat plugin has an option to\\nconfigure the duration that join and leave messages remain in chat \\nA Tan-all swap has been added to the Menu Entry Swapper\\nplugin \\nDrakan's medallion teleport locations have been added to the World Map\\nplugin \\nThe Discord plugin now shows when you are\\nin the Hallowed Sepulchre \\nA toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\\nplugin \\nYou can toggle the Daeyalt essence experience bonus in the runecrafting Skill\\nCalculator \\nTimers have been added to the Mining plugin \\nfor Daeyalt essence rocks \\nThe Chat Commands plugin can now track\\npersonal best times for Chambers of Xeric teams of 24+ players and updates its values for personal\\nbest times from previous PB times \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (10):\\n client: correct spelling of taverley\\n client: fetch jav_config over https\\n screenmarkers: cleanup widget marker overlay bounds logic\\n textcomponent: add option to outline text\\n grounditems: add option to outline text\\n menu swapper: clean up swap logic\\n menu swapper: add tan all swap\\n client: remove itemskeptondeath plugin\\n chat commands: name pb matcher groups\\n client: remove death indicator plugin\\n\\nBroooklyn (2):\\n FriendsChatConfig: Fix config grammar\\n agility: Fix config order\\n\\nHydrox6 (1):\\n clues: add mention that nechryael has to be in the slayer tower\\n\\nHåkon Paulsen (1):\\n npc indicators: allow combination of higlight styles\\n\\nJacob Scanlon (1):\\n friends chat plugin: add configuration for join/leave timeout\\n\\nJordan Atwood (5):\\n worldmap: Add Drakan's medallion teleport locations\\n worldmap: Add Daeyalt essence mine tooltip\\n SkillChallengeClue: Fix "Mine a mithril ore" step\\n discord: Add Darkmeyer and Hallowed Sepulchre minigame\\n menuentryswapper: Fix birdhouse swap\\n\\nJoseph Zeffiro (1):\\n mousehighlight: Add toggle to hide spellbook tooltips (#11924)\\n\\nMMagicala (3):\\n antidrag: add antidrag to inventory when bank interface is open\\n xp tracker: add option to sort skills by most recently gained xp\\n item charges: Fix Amulet of Chemistry charges for low-dose potions (#11825)\\n\\nMax Weber (1):\\n chatcommands: don't throw every tick if the player has opened a scroll\\n\\nMitchell Kovacs (1):\\n Add Pyramid Plunder plugin\\n\\nOliver Payne (1):\\n CoordinateClue: Improve Ice Mountain clue location description (#11907)\\n\\nTheStonedTurtle (1):\\n skillcalc: Add Daeyalt essence bonus (#11839)\\n\\nTim Hinz (1):\\n mining: Add Daeyalt essence timers\\n\\nTrevor (1):\\n cache: add healthbar dumper\\n\\nXortrox (1):\\n clientui: remember sidebar state across restarts\\n\\njohannfrias (1):\\n banktags: Save last opened tab when opening worn items (#11660)\\n\\nleejt (1):\\n loottracker: add standard Casket\\n\\nmelkypie (2):\\n chatcommands: fix cox pb tracking for 24+ players team size\\n chatcommands: allow cox pb to look at previous pb times from jagex\\n
\\n\",\"image\":\"/img/blog/1.6.21-Release/pyramid-plunder-plugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-06-25-10-00-1.6.21-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4FAA4F,OAAS,SAAS,KAAO,iwMAA22M,MAAQ","file":"static/js/129.053c26c1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.21 Release\",\"description\":\"Pyramid Plunder plugin, Ground Items text outlines, NPC Indicator highlight style toggles\",\"author\":\"Jordan\",\"body\":\"We've added a Pyramid Plunder plugin \\nwhich can hide the vanilla timer display and substitute it with an accurate timer infobox.\\nAdditionally, it can highlight the spear traps, unopened doors, unopened urns, chests, and\\nsarcophagi. Thanks to @Mitchell-Kovacs for this addition!
\\n
\\nThe Ground Items plugin plugin can now\\ndraw an outline around ground item text instead of a simple shadow.
\\n
\\nYou can now toggle multiple overlay styles for the NPC Indicators\\nplugin to show any combination of NPC\\nlocation, southwest tile, and hull. Thanks to @haakonrp for this\\nfeature.
\\n
\\nWith the update to the game's death\\nmechanics , the Items Kept on Death\\nand Death Indicator plugins are no longer needed and have been removed from the client.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe XP Tracker plugin has an option to\\nmove skills with most recent XP gains to the top of the list \\nThe client now remembers when your sidebar is hidden across client restarts \\nYour selected bank tag tab is now saved and\\nremembered when opening the bank equipment interface \\nThe Anti Drag plugin now prevents dragging\\nin your inventory when the bank interface is open \\nThe Friends Chat plugin has an option to\\nconfigure the duration that join and leave messages remain in chat \\nA Tan-all swap has been added to the Menu Entry Swapper\\nplugin \\nDrakan's medallion teleport locations have been added to the World Map\\nplugin \\nThe Discord plugin now shows when you are\\nin the Hallowed Sepulchre \\nA toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\\nplugin \\nYou can toggle the Daeyalt essence experience bonus in the runecrafting Skill\\nCalculator \\nTimers have been added to the Mining plugin \\nfor Daeyalt essence rocks \\nThe Chat Commands plugin can now track\\npersonal best times for Chambers of Xeric teams of 24+ players and updates its values for personal\\nbest times from previous PB times \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (10):\\n client: correct spelling of taverley\\n client: fetch jav_config over https\\n screenmarkers: cleanup widget marker overlay bounds logic\\n textcomponent: add option to outline text\\n grounditems: add option to outline text\\n menu swapper: clean up swap logic\\n menu swapper: add tan all swap\\n client: remove itemskeptondeath plugin\\n chat commands: name pb matcher groups\\n client: remove death indicator plugin\\n\\nBroooklyn (2):\\n FriendsChatConfig: Fix config grammar\\n agility: Fix config order\\n\\nHydrox6 (1):\\n clues: add mention that nechryael has to be in the slayer tower\\n\\nHåkon Paulsen (1):\\n npc indicators: allow combination of higlight styles\\n\\nJacob Scanlon (1):\\n friends chat plugin: add configuration for join/leave timeout\\n\\nJordan Atwood (5):\\n worldmap: Add Drakan's medallion teleport locations\\n worldmap: Add Daeyalt essence mine tooltip\\n SkillChallengeClue: Fix "Mine a mithril ore" step\\n discord: Add Darkmeyer and Hallowed Sepulchre minigame\\n menuentryswapper: Fix birdhouse swap\\n\\nJoseph Zeffiro (1):\\n mousehighlight: Add toggle to hide spellbook tooltips (#11924)\\n\\nMMagicala (3):\\n antidrag: add antidrag to inventory when bank interface is open\\n xp tracker: add option to sort skills by most recently gained xp\\n item charges: Fix Amulet of Chemistry charges for low-dose potions (#11825)\\n\\nMax Weber (1):\\n chatcommands: don't throw every tick if the player has opened a scroll\\n\\nMitchell Kovacs (1):\\n Add Pyramid Plunder plugin\\n\\nOliver Payne (1):\\n CoordinateClue: Improve Ice Mountain clue location description (#11907)\\n\\nTheStonedTurtle (1):\\n skillcalc: Add Daeyalt essence bonus (#11839)\\n\\nTim Hinz (1):\\n mining: Add Daeyalt essence timers\\n\\nTrevor (1):\\n cache: add healthbar dumper\\n\\nXortrox (1):\\n clientui: remember sidebar state across restarts\\n\\njohannfrias (1):\\n banktags: Save last opened tab when opening worn items (#11660)\\n\\nleejt (1):\\n loottracker: add standard Casket\\n\\nmelkypie (2):\\n chatcommands: fix cox pb tracking for 24+ players team size\\n chatcommands: allow cox pb to look at previous pb times from jagex\\n
\\n\",\"image\":\"/img/blog/1.6.21-Release/pyramid-plunder-plugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/13.9979f94e.chunk.js b/static/js/13.304dc9a2.chunk.js
similarity index 93%
rename from static/js/13.9979f94e.chunk.js
rename to static/js/13.304dc9a2.chunk.js
index bc3ab923a..bd2d22a52 100644
--- a/static/js/13.9979f94e.chunk.js
+++ b/static/js/13.304dc9a2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[13],{126:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),e,Object(s.g)(c,null))}},127:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(s.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(s.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(s.g)("div",{class:"fa-4x"},Object(s.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends s.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:a}=this.state;return a?Object(s.g)(c,null):Object(s.g)(e,t)}}},131:function(t,e,a){},290:function(t,e,a){"use strict";var s=a(0);e.a=t=>{let{tagName:e,html:a}=t;return Object(s.g)(e,{dangerouslySetInnerHTML:{__html:a}})}},451:function(t,e,a){"use strict";a.r(e);var s=a(0),c=a(27),i=a(11),n=a(127),l=a(126),r=a(7),g=a.n(r),b=a(46),o=a(4),d=a(50),u=a(28),h=a(18),f=a(290),j=a(47);a(131);e.default=Object(c.b)((t,e)=>({...e,externalPlugin:Object(d.e)(t).find(t=>t.internalName===e.internalName)}),t=>Object(i.b)({fetchBootstrap:o.b,fetchConfig:u.c,fetchExternalPlugins:d.c,fetchExternalPluginInfo:d.b,fetchPluginHubStats:d.d},t))(Object(n.a)(async t=>{let{fetchBootstrap:e,fetchConfig:a,fetchExternalPlugins:s,fetchExternalPluginInfo:c,fetchPluginHubStats:i,internalName:n}=t;await e(),await a(),await s(),await i(),await c(n)})(t=>{let{externalPlugin:e}=t;return e?Object(s.g)(l.a,null,Object(s.g)(b.a,{title:`${e.displayName} - Plugin Hub - ${g.a.title}`,description:e.description}),Object(s.g)("section",{id:"externalPlugins"},Object(s.g)("div",{class:"content-section dark-card pb-0"},Object(s.g)("div",{class:"card"},Object(s.g)("div",{class:"card-header card-body d-flex align-self-stretch"},Object(s.g)("div",{class:"mr-4 d-flex align-items-center"},Object(s.g)("img",{width:"36",alt:"",src:e.imageUrl?e.imageUrl:"/img/plugin-hub/missingicon.png"})),Object(s.g)("div",null,Object(s.g)("h5",{class:"card-title"},e.displayName),Object(s.g)("h6",{class:"card-subtitle mb-2 text-muted"},Object(s.g)("a",{href:"/plugin-hub/"+e.author},e.author)),e.count>0&&Object(s.g)("p",{class:"card-text"},Object(s.g)("span",{class:"badge badge-primary"},Object(h.f)(e.count)," ",e.count>1?"active installs":"active install")," ",e.installed&&Object(s.g)("span",{class:"badge badge-success"},"installed"))),Object(s.g)("div",{className:"ml-4 text-muted"},e.description),Object(s.g)("div",{className:"ml-auto"},Object(s.g)("a",{href:`https://github.com/${e.github.user}/${e.github.repo}/issues`},Object(s.g)("i",{class:"fab fa-github"}),Object(s.g)("span",null," Report an issue")))),e.github&&Object(s.g)("div",{class:"card-body markdown-body"},Object(s.g)(f.a,{tagName:"div",html:e.github.readme})))))):Object(s.g)(j.a,null)}))}}]);
-//# sourceMappingURL=13.9979f94e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[13],{126:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),e,Object(s.g)(c,null))}},127:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(s.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(s.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(s.g)("div",{class:"fa-4x"},Object(s.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends s.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:a}=this.state;return a?Object(s.g)(c,null):Object(s.g)(e,t)}}},131:function(t,e,a){},291:function(t,e,a){"use strict";var s=a(0);e.a=t=>{let{tagName:e,html:a}=t;return Object(s.g)(e,{dangerouslySetInnerHTML:{__html:a}})}},453:function(t,e,a){"use strict";a.r(e);var s=a(0),c=a(27),i=a(11),n=a(127),l=a(126),r=a(7),g=a.n(r),b=a(46),o=a(4),d=a(50),u=a(28),h=a(18),f=a(291),j=a(47);a(131);e.default=Object(c.b)((t,e)=>({...e,externalPlugin:Object(d.e)(t).find(t=>t.internalName===e.internalName)}),t=>Object(i.b)({fetchBootstrap:o.b,fetchConfig:u.c,fetchExternalPlugins:d.c,fetchExternalPluginInfo:d.b,fetchPluginHubStats:d.d},t))(Object(n.a)(async t=>{let{fetchBootstrap:e,fetchConfig:a,fetchExternalPlugins:s,fetchExternalPluginInfo:c,fetchPluginHubStats:i,internalName:n}=t;await e(),await a(),await s(),await i(),await c(n)})(t=>{let{externalPlugin:e}=t;return e?Object(s.g)(l.a,null,Object(s.g)(b.a,{title:`${e.displayName} - Plugin Hub - ${g.a.title}`,description:e.description}),Object(s.g)("section",{id:"externalPlugins"},Object(s.g)("div",{class:"content-section dark-card pb-0"},Object(s.g)("div",{class:"card"},Object(s.g)("div",{class:"card-header card-body d-flex align-self-stretch"},Object(s.g)("div",{class:"mr-4 d-flex align-items-center"},Object(s.g)("img",{width:"36",alt:"",src:e.imageUrl?e.imageUrl:"/img/plugin-hub/missingicon.png"})),Object(s.g)("div",null,Object(s.g)("h5",{class:"card-title"},e.displayName),Object(s.g)("h6",{class:"card-subtitle mb-2 text-muted"},Object(s.g)("a",{href:"/plugin-hub/"+e.author},e.author)),e.count>0&&Object(s.g)("p",{class:"card-text"},Object(s.g)("span",{class:"badge badge-primary"},Object(h.f)(e.count)," ",e.count>1?"active installs":"active install")," ",e.installed&&Object(s.g)("span",{class:"badge badge-success"},"installed"))),Object(s.g)("div",{className:"ml-4 text-muted"},e.description),Object(s.g)("div",{className:"ml-auto"},Object(s.g)("a",{href:`https://github.com/${e.github.user}/${e.github.repo}/issues`},Object(s.g)("i",{class:"fab fa-github"}),Object(s.g)("span",null," Report an issue")))),e.github&&Object(s.g)("div",{class:"card-body markdown-body"},Object(s.g)(f.a,{tagName:"div",html:e.github.readme})))))):Object(s.g)(j.a,null)}))}}]);
+//# sourceMappingURL=13.304dc9a2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/13.9979f94e.chunk.js.map b/static/js/13.304dc9a2.chunk.js.map
similarity index 99%
rename from static/js/13.9979f94e.chunk.js.map
rename to static/js/13.304dc9a2.chunk.js.map
index 6f5798ad7..1b51d06e6 100644
--- a/static/js/13.9979f94e.chunk.js.map
+++ b/static/js/13.304dc9a2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","components/inner-html-helper.js","routes/plugin-hub-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","InnerHTMLHelper","tagName","html","dangerouslySetInnerHTML","__html","connect","mapStateToProps","externalPlugin","getExternalPluginsWithState","find","p","internalName","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","fetchExternalPlugins","fetchExternalPluginInfo","fetchPluginHubStats","async","_ref2","Meta","title","displayName","hero","description","alt","src","imageUrl","author","count","numberWithCommas","installed","className","github","user","repo","readme","NotFound"],"mappings":"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","file":"static/js/13.9979f94e.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\n\nconst InnerHTMLHelper = ({ tagName, html }) =>\n h(tagName, { dangerouslySetInnerHTML: { __html: html } })\n\nexport default InnerHTMLHelper\n","import { h } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { fetchBootstrap } from '../modules/bootstrap'\nimport {\n fetchExternalPluginInfo,\n fetchExternalPlugins,\n fetchPluginHubStats,\n getExternalPluginsWithState\n} from '../modules/plugin-hub'\nimport { fetchConfig } from '../modules/config'\nimport { numberWithCommas } from '../util'\nimport InnerHTMLHelper from '../components/inner-html-helper'\nimport NotFound from '../components/not-found'\nimport '../components/feature.scss'\n\nconst PluginHubShow = ({ externalPlugin }) => {\n if (!externalPlugin) {\n return \n }\n\n return (\n \n \n\n \n \n
\n \n {externalPlugin.github && (\n
\n \n
\n )}\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n externalPlugin: getExternalPluginsWithState(state).find(\n p => p.internalName === props.internalName\n )\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchExternalPluginInfo,\n fetchPluginHubStats\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchExternalPluginInfo,\n fetchPluginHubStats,\n internalName\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchExternalPlugins()\n await fetchPluginHubStats()\n await fetchExternalPluginInfo(internalName)\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(PluginHubShow))\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","components/inner-html-helper.js","routes/plugin-hub-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","InnerHTMLHelper","tagName","html","dangerouslySetInnerHTML","__html","connect","mapStateToProps","externalPlugin","getExternalPluginsWithState","find","p","internalName","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","fetchExternalPlugins","fetchExternalPluginInfo","fetchPluginHubStats","async","_ref2","Meta","title","displayName","hero","description","alt","src","imageUrl","author","count","numberWithCommas","installed","className","github","user","repo","readme","NotFound"],"mappings":"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","file":"static/js/13.304dc9a2.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\n\nconst InnerHTMLHelper = ({ tagName, html }) =>\n h(tagName, { dangerouslySetInnerHTML: { __html: html } })\n\nexport default InnerHTMLHelper\n","import { h } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { fetchBootstrap } from '../modules/bootstrap'\nimport {\n fetchExternalPluginInfo,\n fetchExternalPlugins,\n fetchPluginHubStats,\n getExternalPluginsWithState\n} from '../modules/plugin-hub'\nimport { fetchConfig } from '../modules/config'\nimport { numberWithCommas } from '../util'\nimport InnerHTMLHelper from '../components/inner-html-helper'\nimport NotFound from '../components/not-found'\nimport '../components/feature.scss'\n\nconst PluginHubShow = ({ externalPlugin }) => {\n if (!externalPlugin) {\n return \n }\n\n return (\n \n \n\n \n \n
\n \n {externalPlugin.github && (\n
\n \n
\n )}\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n externalPlugin: getExternalPluginsWithState(state).find(\n p => p.internalName === props.internalName\n )\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchExternalPluginInfo,\n fetchPluginHubStats\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchExternalPluginInfo,\n fetchPluginHubStats,\n internalName\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchExternalPlugins()\n await fetchPluginHubStats()\n await fetchExternalPluginInfo(internalName)\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(PluginHubShow))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/130.7f766e78.chunk.js b/static/js/130.8e721d57.chunk.js
similarity index 98%
rename from static/js/130.7f766e78.chunk.js
rename to static/js/130.8e721d57.chunk.js
index 63f5d2475..14ea1b75c 100644
--- a/static/js/130.7f766e78.chunk.js
+++ b/static/js/130.8e721d57.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[130],{405:function(e,n){e.exports={title:"1.6.22 Release",description:"NPC Indicators tag-all, slayer multikill tracking support",author:"Jordan",body:'A Tag-All menu option has been added to the NPC Indicators\nplugin , letting you easily tag all\nmonsters of a given name. Thanks to @zeffirojoe for this addition
\n \n
\nWhen killing monsters using a multi-hit attack, such as an Ancient burst or barrage or chinchompas,\nthe Slayer plugin will now accurately track your\ntask progress even when multiple monsters are killed in a single attack.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now use partially transparent colors for your NPC\nIndicators \nThe ingame boss HP bar added for Chambers of Xeric bosses is now\nmoveable \nChat Notifications now only send\nnotifications when your name is mentioned in a player message. No more notification spam from\nboss kill messages! \nSome Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\nplugin \nPlugins with key remaps no longer interfere with input on the login authenticator screen \nThe Grand Exchange plugin\'s offer\npanels now open the item\'s Grand Exchange page \nwhen clicked \nYou can use the !kc aa
and !kc ape atoll
abbreviated chat\ncommands to check\nyour Ape Atoll Agility course lap count \nYou can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\nplugin \nYou can now toggle the plugin\npanel when on the\nlogin screen \nThe Random Events plugin can now notify\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events \nYour configured overlay background\ncolor now draws tooltips with\nthe same color background \nThe Loot Tracker plugin can now send a\nchat message with your Theatre of Blood chest loot value. Additionally, the Chambers of Xeric\nchest loot value message functionality has moved to the Loot Tracker plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (26):\n overlay renderer: avoid unnecessary cursor reset on key release or focus lost\n menu swapper: fix toggling customizable shift-click option\n menu swapper: don\'t apply item menu swaps when shift is held\n api: add isKeyPressed\n client: update to use isKeyPressed\n api: add high alch price to item composition\n client: use item composition high alch price\n examine plugin: fix overflow in computing alch price\n client: use guice provided http client everywhere\n client: add --insecure-skip-tls-verification option\n api: add VarbitComposition, config index, and index fileids\n var inspector: optimize var checking\n npc indicators: fix tag/untag option name selection logic\n api: add ActorDeath event, remove PlayerDeath\n plugins: update to use ActorDeath\n slayer plugin: better support multikills\n infobox manager: keep infoboxes in order of insertion\n plugin manager: remove extra injectMembers() call\n player composition: add isFemale\n config: minor plugin panel cleanup\n xpdrop plugin: use script events instead of widget hidden\n xpdrops: reset xpdrop color on wrong prayer\n xpdrops: fix recoloring xpdrops when prayer is flicked on the previous tick\n xpdrops: fix hide skill icons\n clues: correct spelling of Burthorpe\n inventoryid: add trade inventories\n\nBroooklyn (11):\n menuentryswapper: Fix claim slime swap\n chatnotifications: Only notify on name in player messages (#11874)\n SkillChallengeClue: Add Varrock armour 4 to prospector outfit (#12024)\n discord: Fix Hosidius/Tithe Farm regionIDs\n agility: add missing Meiyerditch obstacle highlights\n discord: Fix Prifddinas area region IDs (#12059)\n ItemChargeConfig: Improve grammar and wording (#11881)\n chat commands: add ape atoll agility to longBossName\n chatfilter: Add config section for filter lists (#11900)\n agility: Add config for Sepulchre obstacles and skill obstacles\n agility: Add Hallowed Sepulchre config section\n\nCopyPastaOSRS (1):\n WidgetOverlay: Make encounter health bar moveable (#11938)\n\nCyborger1 (1):\n notifier: make flash cancelling more responsive\n\nHenry Darnell (1):\n ThinProgressBar: Further darken background color (#11916)\n\nJoe Zeffiro (2):\n npc indicators: add (un)tag-all option\n KeyManager: Block remaps on authenticator game state\n\nJordan Atwood (8):\n slayer: Update initial amount if current amount is higher\n ClientUI: Fix panel toggle after closing with click\n bank plugin: Remove ContainerCalculation class\n widgets: Fix resizable minimap container ID\n AnagramClue: Fix Cam the Camel elite step text\n keyremapping: Remove vestigial LOGIN_SCREEN guard clause\n KeyListener: Add isEnabledOnLoginScreen() method\n xpdrops: Fix white xp drop text recolors\n\nMMagicala (1):\n skillcalculator: Fix Maple longbow (u) xp (#12064)\n\nMax Weber (8):\n ClientUI: Allow hotkey plugin panel toggles on login screen\n runelite-client: remove removed scripts\n npchighlight: Allow transparency on npc colors\n runelite-client: avoid Widget::getDynamicChildren where trivial\n npchighlight: factor out npc name tag checking\n npchighlight: don\'t unhighlight name tagged npcs if unindex-tagging them\n npchighlight: Don\'t iterate npcs off the client thread\n rl-client: Prevent chat inputs from taking keys from the worldmap search\n\nPaulo Cabral Sanz (1):\n Add Nullable decorator to widget getter api\n\nSam Rosenthal (1):\n EmoteClue: Support infernal and crystal axes for enchanted valley clue step (#11934)\n\nShawn Shadrix (2):\n randomevents: Cleanup and alphabetize code\n randomevents: Add missing events\n\nSu-Shing Chen (1):\n ge plugin: add GE links to the offers panel\n\nTrevor (2):\n cache: add default values to HealthBarDefinition\n raid plugin: add raid scouted/reset events\n\nmelkypie (3):\n tooltips: make overlay color background option affect tooltips\n loot tracker: move cox loot value message from raids to loot tracker\n loot tracker: add ability to have end of raid tob chest loot value in a chatmessage\n
\n',image:"/img/blog/1.6.22-Release/npc-indicators-tag-all.png"}}}]);
-//# sourceMappingURL=130.7f766e78.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[130],{406:function(e,n){e.exports={title:"1.6.22 Release",description:"NPC Indicators tag-all, slayer multikill tracking support",author:"Jordan",body:'A Tag-All menu option has been added to the NPC Indicators\nplugin , letting you easily tag all\nmonsters of a given name. Thanks to @zeffirojoe for this addition
\n \n
\nWhen killing monsters using a multi-hit attack, such as an Ancient burst or barrage or chinchompas,\nthe Slayer plugin will now accurately track your\ntask progress even when multiple monsters are killed in a single attack.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now use partially transparent colors for your NPC\nIndicators \nThe ingame boss HP bar added for Chambers of Xeric bosses is now\nmoveable \nChat Notifications now only send\nnotifications when your name is mentioned in a player message. No more notification spam from\nboss kill messages! \nSome Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\nplugin \nPlugins with key remaps no longer interfere with input on the login authenticator screen \nThe Grand Exchange plugin\'s offer\npanels now open the item\'s Grand Exchange page \nwhen clicked \nYou can use the !kc aa
and !kc ape atoll
abbreviated chat\ncommands to check\nyour Ape Atoll Agility course lap count \nYou can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\nplugin \nYou can now toggle the plugin\npanel when on the\nlogin screen \nThe Random Events plugin can now notify\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events \nYour configured overlay background\ncolor now draws tooltips with\nthe same color background \nThe Loot Tracker plugin can now send a\nchat message with your Theatre of Blood chest loot value. Additionally, the Chambers of Xeric\nchest loot value message functionality has moved to the Loot Tracker plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (26):\n overlay renderer: avoid unnecessary cursor reset on key release or focus lost\n menu swapper: fix toggling customizable shift-click option\n menu swapper: don\'t apply item menu swaps when shift is held\n api: add isKeyPressed\n client: update to use isKeyPressed\n api: add high alch price to item composition\n client: use item composition high alch price\n examine plugin: fix overflow in computing alch price\n client: use guice provided http client everywhere\n client: add --insecure-skip-tls-verification option\n api: add VarbitComposition, config index, and index fileids\n var inspector: optimize var checking\n npc indicators: fix tag/untag option name selection logic\n api: add ActorDeath event, remove PlayerDeath\n plugins: update to use ActorDeath\n slayer plugin: better support multikills\n infobox manager: keep infoboxes in order of insertion\n plugin manager: remove extra injectMembers() call\n player composition: add isFemale\n config: minor plugin panel cleanup\n xpdrop plugin: use script events instead of widget hidden\n xpdrops: reset xpdrop color on wrong prayer\n xpdrops: fix recoloring xpdrops when prayer is flicked on the previous tick\n xpdrops: fix hide skill icons\n clues: correct spelling of Burthorpe\n inventoryid: add trade inventories\n\nBroooklyn (11):\n menuentryswapper: Fix claim slime swap\n chatnotifications: Only notify on name in player messages (#11874)\n SkillChallengeClue: Add Varrock armour 4 to prospector outfit (#12024)\n discord: Fix Hosidius/Tithe Farm regionIDs\n agility: add missing Meiyerditch obstacle highlights\n discord: Fix Prifddinas area region IDs (#12059)\n ItemChargeConfig: Improve grammar and wording (#11881)\n chat commands: add ape atoll agility to longBossName\n chatfilter: Add config section for filter lists (#11900)\n agility: Add config for Sepulchre obstacles and skill obstacles\n agility: Add Hallowed Sepulchre config section\n\nCopyPastaOSRS (1):\n WidgetOverlay: Make encounter health bar moveable (#11938)\n\nCyborger1 (1):\n notifier: make flash cancelling more responsive\n\nHenry Darnell (1):\n ThinProgressBar: Further darken background color (#11916)\n\nJoe Zeffiro (2):\n npc indicators: add (un)tag-all option\n KeyManager: Block remaps on authenticator game state\n\nJordan Atwood (8):\n slayer: Update initial amount if current amount is higher\n ClientUI: Fix panel toggle after closing with click\n bank plugin: Remove ContainerCalculation class\n widgets: Fix resizable minimap container ID\n AnagramClue: Fix Cam the Camel elite step text\n keyremapping: Remove vestigial LOGIN_SCREEN guard clause\n KeyListener: Add isEnabledOnLoginScreen() method\n xpdrops: Fix white xp drop text recolors\n\nMMagicala (1):\n skillcalculator: Fix Maple longbow (u) xp (#12064)\n\nMax Weber (8):\n ClientUI: Allow hotkey plugin panel toggles on login screen\n runelite-client: remove removed scripts\n npchighlight: Allow transparency on npc colors\n runelite-client: avoid Widget::getDynamicChildren where trivial\n npchighlight: factor out npc name tag checking\n npchighlight: don\'t unhighlight name tagged npcs if unindex-tagging them\n npchighlight: Don\'t iterate npcs off the client thread\n rl-client: Prevent chat inputs from taking keys from the worldmap search\n\nPaulo Cabral Sanz (1):\n Add Nullable decorator to widget getter api\n\nSam Rosenthal (1):\n EmoteClue: Support infernal and crystal axes for enchanted valley clue step (#11934)\n\nShawn Shadrix (2):\n randomevents: Cleanup and alphabetize code\n randomevents: Add missing events\n\nSu-Shing Chen (1):\n ge plugin: add GE links to the offers panel\n\nTrevor (2):\n cache: add default values to HealthBarDefinition\n raid plugin: add raid scouted/reset events\n\nmelkypie (3):\n tooltips: make overlay color background option affect tooltips\n loot tracker: move cox loot value message from raids to loot tracker\n loot tracker: add ability to have end of raid tob chest loot value in a chatmessage\n
\n',image:"/img/blog/1.6.22-Release/npc-indicators-tag-all.png"}}}]);
+//# sourceMappingURL=130.8e721d57.chunk.js.map
\ No newline at end of file
diff --git a/static/js/130.7f766e78.chunk.js.map b/static/js/130.8e721d57.chunk.js.map
similarity index 99%
rename from static/js/130.7f766e78.chunk.js.map
rename to static/js/130.8e721d57.chunk.js.map
index 3bf94c7e3..f20c31cb2 100644
--- a/static/js/130.7f766e78.chunk.js.map
+++ b/static/js/130.8e721d57.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-07-16-10-00-1.6.22-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4DAA4D,OAAS,SAAS,KAAO,+/PAAgmQ,MAAQ","file":"static/js/130.7f766e78.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.22 Release\",\"description\":\"NPC Indicators tag-all, slayer multikill tracking support\",\"author\":\"Jordan\",\"body\":\"A Tag-All menu option has been added to the NPC Indicators\\nplugin , letting you easily tag all\\nmonsters of a given name. Thanks to @zeffirojoe for this addition
\\n \\n
\\nWhen killing monsters using a multi-hit attack, such as an Ancient burst or barrage or chinchompas,\\nthe Slayer plugin will now accurately track your\\ntask progress even when multiple monsters are killed in a single attack.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now use partially transparent colors for your NPC\\nIndicators \\nThe ingame boss HP bar added for Chambers of Xeric bosses is now\\nmoveable \\nChat Notifications now only send\\nnotifications when your name is mentioned in a player message. No more notification spam from\\nboss kill messages! \\nSome Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\\nplugin \\nPlugins with key remaps no longer interfere with input on the login authenticator screen \\nThe Grand Exchange plugin's offer\\npanels now open the item's Grand Exchange page \\nwhen clicked \\nYou can use the !kc aa
and !kc ape atoll
abbreviated chat\\ncommands to check\\nyour Ape Atoll Agility course lap count \\nYou can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\\nplugin \\nYou can now toggle the plugin\\npanel when on the\\nlogin screen \\nThe Random Events plugin can now notify\\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events \\nYour configured overlay background\\ncolor now draws tooltips with\\nthe same color background \\nThe Loot Tracker plugin can now send a\\nchat message with your Theatre of Blood chest loot value. Additionally, the Chambers of Xeric\\nchest loot value message functionality has moved to the Loot Tracker plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (26):\\n overlay renderer: avoid unnecessary cursor reset on key release or focus lost\\n menu swapper: fix toggling customizable shift-click option\\n menu swapper: don't apply item menu swaps when shift is held\\n api: add isKeyPressed\\n client: update to use isKeyPressed\\n api: add high alch price to item composition\\n client: use item composition high alch price\\n examine plugin: fix overflow in computing alch price\\n client: use guice provided http client everywhere\\n client: add --insecure-skip-tls-verification option\\n api: add VarbitComposition, config index, and index fileids\\n var inspector: optimize var checking\\n npc indicators: fix tag/untag option name selection logic\\n api: add ActorDeath event, remove PlayerDeath\\n plugins: update to use ActorDeath\\n slayer plugin: better support multikills\\n infobox manager: keep infoboxes in order of insertion\\n plugin manager: remove extra injectMembers() call\\n player composition: add isFemale\\n config: minor plugin panel cleanup\\n xpdrop plugin: use script events instead of widget hidden\\n xpdrops: reset xpdrop color on wrong prayer\\n xpdrops: fix recoloring xpdrops when prayer is flicked on the previous tick\\n xpdrops: fix hide skill icons\\n clues: correct spelling of Burthorpe\\n inventoryid: add trade inventories\\n\\nBroooklyn (11):\\n menuentryswapper: Fix claim slime swap\\n chatnotifications: Only notify on name in player messages (#11874)\\n SkillChallengeClue: Add Varrock armour 4 to prospector outfit (#12024)\\n discord: Fix Hosidius/Tithe Farm regionIDs\\n agility: add missing Meiyerditch obstacle highlights\\n discord: Fix Prifddinas area region IDs (#12059)\\n ItemChargeConfig: Improve grammar and wording (#11881)\\n chat commands: add ape atoll agility to longBossName\\n chatfilter: Add config section for filter lists (#11900)\\n agility: Add config for Sepulchre obstacles and skill obstacles\\n agility: Add Hallowed Sepulchre config section\\n\\nCopyPastaOSRS (1):\\n WidgetOverlay: Make encounter health bar moveable (#11938)\\n\\nCyborger1 (1):\\n notifier: make flash cancelling more responsive\\n\\nHenry Darnell (1):\\n ThinProgressBar: Further darken background color (#11916)\\n\\nJoe Zeffiro (2):\\n npc indicators: add (un)tag-all option\\n KeyManager: Block remaps on authenticator game state\\n\\nJordan Atwood (8):\\n slayer: Update initial amount if current amount is higher\\n ClientUI: Fix panel toggle after closing with click\\n bank plugin: Remove ContainerCalculation class\\n widgets: Fix resizable minimap container ID\\n AnagramClue: Fix Cam the Camel elite step text\\n keyremapping: Remove vestigial LOGIN_SCREEN guard clause\\n KeyListener: Add isEnabledOnLoginScreen() method\\n xpdrops: Fix white xp drop text recolors\\n\\nMMagicala (1):\\n skillcalculator: Fix Maple longbow (u) xp (#12064)\\n\\nMax Weber (8):\\n ClientUI: Allow hotkey plugin panel toggles on login screen\\n runelite-client: remove removed scripts\\n npchighlight: Allow transparency on npc colors\\n runelite-client: avoid Widget::getDynamicChildren where trivial\\n npchighlight: factor out npc name tag checking\\n npchighlight: don't unhighlight name tagged npcs if unindex-tagging them\\n npchighlight: Don't iterate npcs off the client thread\\n rl-client: Prevent chat inputs from taking keys from the worldmap search\\n\\nPaulo Cabral Sanz (1):\\n Add Nullable decorator to widget getter api\\n\\nSam Rosenthal (1):\\n EmoteClue: Support infernal and crystal axes for enchanted valley clue step (#11934)\\n\\nShawn Shadrix (2):\\n randomevents: Cleanup and alphabetize code\\n randomevents: Add missing events\\n\\nSu-Shing Chen (1):\\n ge plugin: add GE links to the offers panel\\n\\nTrevor (2):\\n cache: add default values to HealthBarDefinition\\n raid plugin: add raid scouted/reset events\\n\\nmelkypie (3):\\n tooltips: make overlay color background option affect tooltips\\n loot tracker: move cox loot value message from raids to loot tracker\\n loot tracker: add ability to have end of raid tob chest loot value in a chatmessage\\n
\\n\",\"image\":\"/img/blog/1.6.22-Release/npc-indicators-tag-all.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-07-16-10-00-1.6.22-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4DAA4D,OAAS,SAAS,KAAO,+/PAAgmQ,MAAQ","file":"static/js/130.8e721d57.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.22 Release\",\"description\":\"NPC Indicators tag-all, slayer multikill tracking support\",\"author\":\"Jordan\",\"body\":\"A Tag-All menu option has been added to the NPC Indicators\\nplugin , letting you easily tag all\\nmonsters of a given name. Thanks to @zeffirojoe for this addition
\\n \\n
\\nWhen killing monsters using a multi-hit attack, such as an Ancient burst or barrage or chinchompas,\\nthe Slayer plugin will now accurately track your\\ntask progress even when multiple monsters are killed in a single attack.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now use partially transparent colors for your NPC\\nIndicators \\nThe ingame boss HP bar added for Chambers of Xeric bosses is now\\nmoveable \\nChat Notifications now only send\\nnotifications when your name is mentioned in a player message. No more notification spam from\\nboss kill messages! \\nSome Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\\nplugin \\nPlugins with key remaps no longer interfere with input on the login authenticator screen \\nThe Grand Exchange plugin's offer\\npanels now open the item's Grand Exchange page \\nwhen clicked \\nYou can use the !kc aa
and !kc ape atoll
abbreviated chat\\ncommands to check\\nyour Ape Atoll Agility course lap count \\nYou can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\\nplugin \\nYou can now toggle the plugin\\npanel when on the\\nlogin screen \\nThe Random Events plugin can now notify\\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events \\nYour configured overlay background\\ncolor now draws tooltips with\\nthe same color background \\nThe Loot Tracker plugin can now send a\\nchat message with your Theatre of Blood chest loot value. Additionally, the Chambers of Xeric\\nchest loot value message functionality has moved to the Loot Tracker plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (26):\\n overlay renderer: avoid unnecessary cursor reset on key release or focus lost\\n menu swapper: fix toggling customizable shift-click option\\n menu swapper: don't apply item menu swaps when shift is held\\n api: add isKeyPressed\\n client: update to use isKeyPressed\\n api: add high alch price to item composition\\n client: use item composition high alch price\\n examine plugin: fix overflow in computing alch price\\n client: use guice provided http client everywhere\\n client: add --insecure-skip-tls-verification option\\n api: add VarbitComposition, config index, and index fileids\\n var inspector: optimize var checking\\n npc indicators: fix tag/untag option name selection logic\\n api: add ActorDeath event, remove PlayerDeath\\n plugins: update to use ActorDeath\\n slayer plugin: better support multikills\\n infobox manager: keep infoboxes in order of insertion\\n plugin manager: remove extra injectMembers() call\\n player composition: add isFemale\\n config: minor plugin panel cleanup\\n xpdrop plugin: use script events instead of widget hidden\\n xpdrops: reset xpdrop color on wrong prayer\\n xpdrops: fix recoloring xpdrops when prayer is flicked on the previous tick\\n xpdrops: fix hide skill icons\\n clues: correct spelling of Burthorpe\\n inventoryid: add trade inventories\\n\\nBroooklyn (11):\\n menuentryswapper: Fix claim slime swap\\n chatnotifications: Only notify on name in player messages (#11874)\\n SkillChallengeClue: Add Varrock armour 4 to prospector outfit (#12024)\\n discord: Fix Hosidius/Tithe Farm regionIDs\\n agility: add missing Meiyerditch obstacle highlights\\n discord: Fix Prifddinas area region IDs (#12059)\\n ItemChargeConfig: Improve grammar and wording (#11881)\\n chat commands: add ape atoll agility to longBossName\\n chatfilter: Add config section for filter lists (#11900)\\n agility: Add config for Sepulchre obstacles and skill obstacles\\n agility: Add Hallowed Sepulchre config section\\n\\nCopyPastaOSRS (1):\\n WidgetOverlay: Make encounter health bar moveable (#11938)\\n\\nCyborger1 (1):\\n notifier: make flash cancelling more responsive\\n\\nHenry Darnell (1):\\n ThinProgressBar: Further darken background color (#11916)\\n\\nJoe Zeffiro (2):\\n npc indicators: add (un)tag-all option\\n KeyManager: Block remaps on authenticator game state\\n\\nJordan Atwood (8):\\n slayer: Update initial amount if current amount is higher\\n ClientUI: Fix panel toggle after closing with click\\n bank plugin: Remove ContainerCalculation class\\n widgets: Fix resizable minimap container ID\\n AnagramClue: Fix Cam the Camel elite step text\\n keyremapping: Remove vestigial LOGIN_SCREEN guard clause\\n KeyListener: Add isEnabledOnLoginScreen() method\\n xpdrops: Fix white xp drop text recolors\\n\\nMMagicala (1):\\n skillcalculator: Fix Maple longbow (u) xp (#12064)\\n\\nMax Weber (8):\\n ClientUI: Allow hotkey plugin panel toggles on login screen\\n runelite-client: remove removed scripts\\n npchighlight: Allow transparency on npc colors\\n runelite-client: avoid Widget::getDynamicChildren where trivial\\n npchighlight: factor out npc name tag checking\\n npchighlight: don't unhighlight name tagged npcs if unindex-tagging them\\n npchighlight: Don't iterate npcs off the client thread\\n rl-client: Prevent chat inputs from taking keys from the worldmap search\\n\\nPaulo Cabral Sanz (1):\\n Add Nullable decorator to widget getter api\\n\\nSam Rosenthal (1):\\n EmoteClue: Support infernal and crystal axes for enchanted valley clue step (#11934)\\n\\nShawn Shadrix (2):\\n randomevents: Cleanup and alphabetize code\\n randomevents: Add missing events\\n\\nSu-Shing Chen (1):\\n ge plugin: add GE links to the offers panel\\n\\nTrevor (2):\\n cache: add default values to HealthBarDefinition\\n raid plugin: add raid scouted/reset events\\n\\nmelkypie (3):\\n tooltips: make overlay color background option affect tooltips\\n loot tracker: move cox loot value message from raids to loot tracker\\n loot tracker: add ability to have end of raid tob chest loot value in a chatmessage\\n
\\n\",\"image\":\"/img/blog/1.6.22-Release/npc-indicators-tag-all.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/131.6c8f19b2.chunk.js b/static/js/131.32649a91.chunk.js
similarity index 97%
rename from static/js/131.6c8f19b2.chunk.js
rename to static/js/131.32649a91.chunk.js
index b02d892eb..e7cf17984 100644
--- a/static/js/131.6c8f19b2.chunk.js
+++ b/static/js/131.32649a91.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[131],{406:function(e,n){e.exports={title:"1.6.23 Release",description:"Remove bank tag tab separators, show bank search value",author:"Jordan",body:'The bank tab separators shown when opening a bank tag\ntab can now be hidden to\ndisplay that tag\'s items similarly to a normal bank tab. Thanks to\n@trimbe for this feature.
\nAdditionally, when viewing a tag tab or searching in the bank, the bank\nplugin will display the price of the displayed\nitems.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nEnjoy!
\n- Jordan
\nNew commits \nWe had 11 contributors this release!
\nAdam (6):\n xpdrops: fix recoloring xpdrops with hide skill icons on\n Revert "xpdrops: fix recoloring xpdrops with hide skill icons on"\n dps counter: update boss list\n api: add size() to itemcontainer\n bank plugin: show bank value during searches\n banktags: fix resetting active tab when editing tags\n\nAlowan (1):\n SpriteID: Fix UNKNOWN_STANCE_ICON_2 ID (#12202)\n\nArman Rafian (1):\n cannon: Add common wilderness cannon spots (#12132)\n\nBroooklyn (2):\n slayer: Add missing task locations (#12099)\n clues: Fix Champions\' guild beginner clue description (#12140)\n\nCyborger1 (1):\n itemstats: check for two handed interactions (#12168)\n\nJordan Atwood (1):\n EmoteClue: Specify uncharged glory amulet when needed\n\nMarbleTurtle (1):\n FaloTheBardClue: Add Avernic to defender step (#12172)\n\nSean Dewar (1):\n WidgetOverlay: Make hallowed sepulchre timer moveable (#12200)\n\nSnowflak3 (1):\n notifier: make flash color configurable\n\nThatGamerBlue (1):\n xpdrop: fix recoloring xp drops with hide skill icons enabled\n\ntrimbe (2):\n banktags: Remove tab separators from tag tabs\n banktags: Add tag tab drag blocking\n
\n',image:"/img/blog/1.6.23-Release/bank-tag-no-separators-value-header.png"}}}]);
-//# sourceMappingURL=131.6c8f19b2.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[131],{407:function(e,n){e.exports={title:"1.6.23 Release",description:"Remove bank tag tab separators, show bank search value",author:"Jordan",body:'The bank tab separators shown when opening a bank tag\ntab can now be hidden to\ndisplay that tag\'s items similarly to a normal bank tab. Thanks to\n@trimbe for this feature.
\nAdditionally, when viewing a tag tab or searching in the bank, the bank\nplugin will display the price of the displayed\nitems.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nEnjoy!
\n- Jordan
\nNew commits \nWe had 11 contributors this release!
\nAdam (6):\n xpdrops: fix recoloring xpdrops with hide skill icons on\n Revert "xpdrops: fix recoloring xpdrops with hide skill icons on"\n dps counter: update boss list\n api: add size() to itemcontainer\n bank plugin: show bank value during searches\n banktags: fix resetting active tab when editing tags\n\nAlowan (1):\n SpriteID: Fix UNKNOWN_STANCE_ICON_2 ID (#12202)\n\nArman Rafian (1):\n cannon: Add common wilderness cannon spots (#12132)\n\nBroooklyn (2):\n slayer: Add missing task locations (#12099)\n clues: Fix Champions\' guild beginner clue description (#12140)\n\nCyborger1 (1):\n itemstats: check for two handed interactions (#12168)\n\nJordan Atwood (1):\n EmoteClue: Specify uncharged glory amulet when needed\n\nMarbleTurtle (1):\n FaloTheBardClue: Add Avernic to defender step (#12172)\n\nSean Dewar (1):\n WidgetOverlay: Make hallowed sepulchre timer moveable (#12200)\n\nSnowflak3 (1):\n notifier: make flash color configurable\n\nThatGamerBlue (1):\n xpdrop: fix recoloring xp drops with hide skill icons enabled\n\ntrimbe (2):\n banktags: Remove tab separators from tag tabs\n banktags: Add tag tab drag blocking\n
\n',image:"/img/blog/1.6.23-Release/bank-tag-no-separators-value-header.png"}}}]);
+//# sourceMappingURL=131.32649a91.chunk.js.map
\ No newline at end of file
diff --git a/static/js/131.6c8f19b2.chunk.js.map b/static/js/131.32649a91.chunk.js.map
similarity index 98%
rename from static/js/131.6c8f19b2.chunk.js.map
rename to static/js/131.32649a91.chunk.js.map
index 1a7aef7d7..a6ad29641 100644
--- a/static/js/131.6c8f19b2.chunk.js.map
+++ b/static/js/131.32649a91.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-07-23-10-00-1.6.23-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yDAAyD,OAAS,SAAS,KAAO,44GAAm8G,MAAQ","file":"static/js/131.6c8f19b2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.23 Release\",\"description\":\"Remove bank tag tab separators, show bank search value\",\"author\":\"Jordan\",\"body\":\"The bank tab separators shown when opening a bank tag\\ntab can now be hidden to\\ndisplay that tag's items similarly to a normal bank tab. Thanks to\\n@trimbe for this feature.
\\nAdditionally, when viewing a tag tab or searching in the bank, the bank\\nplugin will display the price of the displayed\\nitems.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (6):\\n xpdrops: fix recoloring xpdrops with hide skill icons on\\n Revert "xpdrops: fix recoloring xpdrops with hide skill icons on"\\n dps counter: update boss list\\n api: add size() to itemcontainer\\n bank plugin: show bank value during searches\\n banktags: fix resetting active tab when editing tags\\n\\nAlowan (1):\\n SpriteID: Fix UNKNOWN_STANCE_ICON_2 ID (#12202)\\n\\nArman Rafian (1):\\n cannon: Add common wilderness cannon spots (#12132)\\n\\nBroooklyn (2):\\n slayer: Add missing task locations (#12099)\\n clues: Fix Champions' guild beginner clue description (#12140)\\n\\nCyborger1 (1):\\n itemstats: check for two handed interactions (#12168)\\n\\nJordan Atwood (1):\\n EmoteClue: Specify uncharged glory amulet when needed\\n\\nMarbleTurtle (1):\\n FaloTheBardClue: Add Avernic to defender step (#12172)\\n\\nSean Dewar (1):\\n WidgetOverlay: Make hallowed sepulchre timer moveable (#12200)\\n\\nSnowflak3 (1):\\n notifier: make flash color configurable\\n\\nThatGamerBlue (1):\\n xpdrop: fix recoloring xp drops with hide skill icons enabled\\n\\ntrimbe (2):\\n banktags: Remove tab separators from tag tabs\\n banktags: Add tag tab drag blocking\\n
\\n\",\"image\":\"/img/blog/1.6.23-Release/bank-tag-no-separators-value-header.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-07-23-10-00-1.6.23-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yDAAyD,OAAS,SAAS,KAAO,44GAAm8G,MAAQ","file":"static/js/131.32649a91.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.23 Release\",\"description\":\"Remove bank tag tab separators, show bank search value\",\"author\":\"Jordan\",\"body\":\"The bank tab separators shown when opening a bank tag\\ntab can now be hidden to\\ndisplay that tag's items similarly to a normal bank tab. Thanks to\\n@trimbe for this feature.
\\nAdditionally, when viewing a tag tab or searching in the bank, the bank\\nplugin will display the price of the displayed\\nitems.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (6):\\n xpdrops: fix recoloring xpdrops with hide skill icons on\\n Revert "xpdrops: fix recoloring xpdrops with hide skill icons on"\\n dps counter: update boss list\\n api: add size() to itemcontainer\\n bank plugin: show bank value during searches\\n banktags: fix resetting active tab when editing tags\\n\\nAlowan (1):\\n SpriteID: Fix UNKNOWN_STANCE_ICON_2 ID (#12202)\\n\\nArman Rafian (1):\\n cannon: Add common wilderness cannon spots (#12132)\\n\\nBroooklyn (2):\\n slayer: Add missing task locations (#12099)\\n clues: Fix Champions' guild beginner clue description (#12140)\\n\\nCyborger1 (1):\\n itemstats: check for two handed interactions (#12168)\\n\\nJordan Atwood (1):\\n EmoteClue: Specify uncharged glory amulet when needed\\n\\nMarbleTurtle (1):\\n FaloTheBardClue: Add Avernic to defender step (#12172)\\n\\nSean Dewar (1):\\n WidgetOverlay: Make hallowed sepulchre timer moveable (#12200)\\n\\nSnowflak3 (1):\\n notifier: make flash color configurable\\n\\nThatGamerBlue (1):\\n xpdrop: fix recoloring xp drops with hide skill icons enabled\\n\\ntrimbe (2):\\n banktags: Remove tab separators from tag tabs\\n banktags: Add tag tab drag blocking\\n
\\n\",\"image\":\"/img/blog/1.6.23-Release/bank-tag-no-separators-value-header.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/132.f287b8fc.chunk.js b/static/js/132.19758b03.chunk.js
similarity index 99%
rename from static/js/132.f287b8fc.chunk.js
rename to static/js/132.19758b03.chunk.js
index 41c3314fd..ca506673a 100644
--- a/static/js/132.f287b8fc.chunk.js
+++ b/static/js/132.19758b03.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[132],{407:function(e,n){e.exports={title:"1.6.24 & 1.6.25 Release",description:"Zalcano plugin, inventory tag underlines, GPU anisotropic filtering, potion duration tooltips, and mining session overlay",author:"Jordan",body:'We have added a Zalcano plugin which offers\nseveral useful arrow highlights and overlays. Thanks to @Hexagon for\nthis contribution!
\n
\nThe Inventory Tags plugin can now\ndraw an underline as a more subtle option for your tagged items. Thanks to\n@jualkaup for this feature.
\n
\nWe have added an anisotropic filtering setting to the GPU\nplugin that makes textures appear smoother and have\nfewer "jagged" and sharp pixels, especially when zoomed out, as shown in the comparison table below.\nThanks to @pacf531 and @Toocanzs for\nmaking this feature happen.
\n\n\n\nGPU anisotropic filtering enabled \nGPU anisotropic filtering disabled \n \n \n\n\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: GPU plugin with anisotropic filtering enabled\n \n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: GPU plugin with anisotropic filtering disabled\n \n \n \n
\nThe Item Stats plugin now displays a tooltip\nfor duration effects granted by antipoison potions, anti-fire potions, and the like. Thanks to\n@MMagicala for this enhancement.
\n
\nThe Mining plugin now displays a session overlay\nthat counts ores mined per hour and throughout the session, along with an indicator of whether you\nare currently mining. Thanks to @JZomerlei for this addition.
\n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Timers plugin now shows an infobox with\nyour elapsed Fight Cave or Inferno time \nInteracting with Bank Tag\ntabs no longer clears your\nactive bank search \nThe Inventory Grid plugin now operates\nwhile viewing your bank \nAn issue causing Discord party invites to fail has been fixed \nTooltip labels have been added to clue scroll and minigame entries in the HiScore\nplugin \nThe Agility plugin now estimates your laps\nper hour more accurately \nSome Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\nAgility plugin \nThe Clue Scroll plugin now shows a\nlocation description for map clues \nThe Cannon plugin now suggests a spot for\nBloodvelds in the Meiyerditch Laboratories \nYou can now look up your Nightmare kill count with the Chat Commands\nplugin using the nm
, tnm
, and\nnmare
abbreviations \nTeleport tablets are now labeled by the Item Identification\nplugin \nThe Nightmare Zone plugin can now send\nnotifications prior to your overload boosts expiring \nA bug which could cause flash notifications to become stuck has been fixed \nThe Menu Entry Swapper plugin now\nswaps the "Collect" option on Advisor Ghrim, the various quick-travel menu entries on Rellekka\nNPCs, and prefers the "Last-destination" option when using the Zanaris fairy ring \nThe Cooking plugin now updates its session\ncounter when drying sinew \nThe Prayer plugin now shows a sensible\nduration text for durations greater than 1 hour \nIorwerth Warriors are now understood to be elves by the Slayer\nplugin \nXD and pleading emojis have been added to the Emojis\nplugin with the Xd
and (n_n)
triggers,\nrespectively \nVyres have been added to the Thieving skill\ncalculator \nA bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\nbeen fixed \nThe World Map plugin no longer shows a\nmisplaced quest icon for the Misthalin Mystery quest \nBird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\nthe Loot Tracker plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 32 contributors this release!
\nAdam (26):\n tagtabs: split tag search from bank search\n tagtabs: close tab when clicking on main bank tab\n tagtabs: show tab separators in tag tabs\n tagtabs: fix clearing bank search when opening tags\n clientui: reset frame position in safe mode\n clientui: use contains instead of intersects for screen bounds checking\n inventory-grid: show grid when viewing bank\n mouse highlight: fix interface tooltips option\n menu swapper: update jewellery box clan wars swap to ferox enclave\n item stats: add duration tooltips to potions\n api: add GraphicsObject finished()\n slayer plugin: support new Turael task completion message\n mining plugin: rename MiningOverlay to MiningRocksOverlay\n mining plugin: add session stats\n loot tracker service: use bigint for kill id\n gpu plugin: initialize aa fbo handles\n xp globes: fix timing out xp globes after no xp is gained\n timers plugin: add fight cave and inferno timers\n xp globes: remove double globeCache index\n http-service: increase loot tracker retention to 90 days\n discord: remove DiscordReplyType\n discord: add logging to Discord rpc callbacks\n party service: prioritize user join handler over plugins\n hiscore panel: fix lookup to run on edt\n hiscore panel: add names to skill label tooltips\n Add Leagues hiscores and update icons for Trailblazer League\n\nArman Rafian (1):\n agility: Improve laps per hour calculation accuracy (#12246)\n\nBlackberry0Pie (1):\n fairyring: Add Falo the bard tag to Sinclair Mansion fairy ring (#12030)\n\nBroooklyn (11):\n agility: fix Sara GWD obstacle highlights\n agility: add GWD crack obstacle highlight\n clues: fix apostrophe positioning for Seers\' Village\n clues: add descriptions for MapClues\n clues: update BeginnerMapClue to use MapClue description constants\n cannon: Add Meiyerditch Laboratory Bloodveld cannon spot (#12078)\n discord: Add castle wars underground region ID (#12075)\n agility: Fix prif portal highlighting\n clue: Fix K\'ril\'s chamber master clue step plane\n chat commands: add Nightmare abbreviations\n Item identification: add tablets\n\nChris Janusiewicz (1):\n nmz plugin: add option to send overload notification prior to expire\n\nCyborger1 (1):\n farming: Improve names of Poison ivy and Dwarf weed patches (#12134)\n\nDerek Lopes (1):\n Notifier: Disable flash notification when off is selected to prevent stuck flash state\n\nErik Humphrey (1):\n clues: Fix \'Headbang at the exam centre\' clue text (#12297)\n\nHenry Darnell (1):\n Update deprecated/default Travis configs (#10880)\n\nHexagon (1):\n client: add zalcano plugin\n\nHydrox (1):\n loottrackerclient: log when submitting loot isn\'t successful\n\nHydrox6 (1):\n mousehighlight: make "drop" not show when interface tooltips are off\n\nJZomerlei (1):\n achivement dairy plugin: Add satisfiesRequirement to Requirement (#12265)\n\nJonathan Charles (1):\n menu swapper: add Advisor Ghrim collect swap\n\nJordan Atwood (6):\n OverlayRenderer: Fix overlay resizing logic\n HotColdLocation: Center some location spots\n slayer: Fix slaughter bracelet proc text\n HotColdLocation: Fix Mos Le\'Harmless southern bar spot\n menuentryswapper: Prefer last-destination on Zanaris fairy ring\n ItemIdentification: Fix target teleport definition\n\nJussi Kauppinen (2):\n cooking: Add support for drying sinew (#12184)\n inventory-tags: add underline as display option\n\nLA (1):\n screenshot: Capture Barbarian Assault high gamble screenshots (#12071)\n\nLandy Chan (1):\n prayer plugin: fix time remaining text when greater than 1 hour\n\nLazyScaper (2):\n worldmap: Fix Misthalin mystery quest icon position (#12273)\n skill calc: add Vyres to thieving calc\n\nMarbleTurtle (2):\n EmoteClue: Change location from Digsite to Exam Centre\n SkillChallengeClue: Update dragonhide clue text (#12217)\n\nMeeran (2):\n ItemMapping: Add Bryophyta\'s staff (#12286)\n ItemMapping: Add Ring of endurance\n\nOneProGoober (1):\n emoji: Add XD and pleading emojis (#12203)\n\nRansomTime (1):\n task: add Iorweth Warriors to list of targets for elves\n\nSirGirion (1):\n loottracker: Add bird nest loot tracking (#12237)\n\nTheStonedTurtle (1):\n Dev Tools - Add Inventory Inspector\n\nToocanzs (1):\n gpu: add anisotropic filtering\n\nXrioBtw (1):\n PrayerType: Fix BURST_OF_STRENGTH description typo (#12138)\n\nhoneyhoney (3):\n menuentryswapper: Add Rellekka quick travel NPCs (#12333)\n bank: Fix NPE in PostScriptFired subscriber (#12342)\n WorldMapOverlay: Adjust tooltip text position to match vanilla tooltips (#12380)\n\nkjartantr (1):\n SlayerUnlock: Update varbits enum (#12214)\n\nleejt (2):\n loot tracker: track grubby, stone, Dorgesh-Kaan and HAM chests\n loot tracker: add metadata field to loot record\n\nmelkypie (1):\n chatcommands: make cox pb account for 11-15 and 16-23 team sizes\n\ntrimbe (2):\n bank tags: update detection of active tab for separator removal\n bank tags: invoke only the scrollbar update after removing separators\n
\n',image:"/img/blog/1.6.25-Release/zalcano-hint-arrow.png"}}}]);
-//# sourceMappingURL=132.f287b8fc.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[132],{408:function(e,n){e.exports={title:"1.6.24 & 1.6.25 Release",description:"Zalcano plugin, inventory tag underlines, GPU anisotropic filtering, potion duration tooltips, and mining session overlay",author:"Jordan",body:'We have added a Zalcano plugin which offers\nseveral useful arrow highlights and overlays. Thanks to @Hexagon for\nthis contribution!
\n
\nThe Inventory Tags plugin can now\ndraw an underline as a more subtle option for your tagged items. Thanks to\n@jualkaup for this feature.
\n
\nWe have added an anisotropic filtering setting to the GPU\nplugin that makes textures appear smoother and have\nfewer "jagged" and sharp pixels, especially when zoomed out, as shown in the comparison table below.\nThanks to @pacf531 and @Toocanzs for\nmaking this feature happen.
\n\n\n\nGPU anisotropic filtering enabled \nGPU anisotropic filtering disabled \n \n \n\n\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: GPU plugin with anisotropic filtering enabled\n \n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: GPU plugin with anisotropic filtering disabled\n \n \n \n
\nThe Item Stats plugin now displays a tooltip\nfor duration effects granted by antipoison potions, anti-fire potions, and the like. Thanks to\n@MMagicala for this enhancement.
\n
\nThe Mining plugin now displays a session overlay\nthat counts ores mined per hour and throughout the session, along with an indicator of whether you\nare currently mining. Thanks to @JZomerlei for this addition.
\n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Timers plugin now shows an infobox with\nyour elapsed Fight Cave or Inferno time \nInteracting with Bank Tag\ntabs no longer clears your\nactive bank search \nThe Inventory Grid plugin now operates\nwhile viewing your bank \nAn issue causing Discord party invites to fail has been fixed \nTooltip labels have been added to clue scroll and minigame entries in the HiScore\nplugin \nThe Agility plugin now estimates your laps\nper hour more accurately \nSome Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\nAgility plugin \nThe Clue Scroll plugin now shows a\nlocation description for map clues \nThe Cannon plugin now suggests a spot for\nBloodvelds in the Meiyerditch Laboratories \nYou can now look up your Nightmare kill count with the Chat Commands\nplugin using the nm
, tnm
, and\nnmare
abbreviations \nTeleport tablets are now labeled by the Item Identification\nplugin \nThe Nightmare Zone plugin can now send\nnotifications prior to your overload boosts expiring \nA bug which could cause flash notifications to become stuck has been fixed \nThe Menu Entry Swapper plugin now\nswaps the "Collect" option on Advisor Ghrim, the various quick-travel menu entries on Rellekka\nNPCs, and prefers the "Last-destination" option when using the Zanaris fairy ring \nThe Cooking plugin now updates its session\ncounter when drying sinew \nThe Prayer plugin now shows a sensible\nduration text for durations greater than 1 hour \nIorwerth Warriors are now understood to be elves by the Slayer\nplugin \nXD and pleading emojis have been added to the Emojis\nplugin with the Xd
and (n_n)
triggers,\nrespectively \nVyres have been added to the Thieving skill\ncalculator \nA bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\nbeen fixed \nThe World Map plugin no longer shows a\nmisplaced quest icon for the Misthalin Mystery quest \nBird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\nthe Loot Tracker plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 32 contributors this release!
\nAdam (26):\n tagtabs: split tag search from bank search\n tagtabs: close tab when clicking on main bank tab\n tagtabs: show tab separators in tag tabs\n tagtabs: fix clearing bank search when opening tags\n clientui: reset frame position in safe mode\n clientui: use contains instead of intersects for screen bounds checking\n inventory-grid: show grid when viewing bank\n mouse highlight: fix interface tooltips option\n menu swapper: update jewellery box clan wars swap to ferox enclave\n item stats: add duration tooltips to potions\n api: add GraphicsObject finished()\n slayer plugin: support new Turael task completion message\n mining plugin: rename MiningOverlay to MiningRocksOverlay\n mining plugin: add session stats\n loot tracker service: use bigint for kill id\n gpu plugin: initialize aa fbo handles\n xp globes: fix timing out xp globes after no xp is gained\n timers plugin: add fight cave and inferno timers\n xp globes: remove double globeCache index\n http-service: increase loot tracker retention to 90 days\n discord: remove DiscordReplyType\n discord: add logging to Discord rpc callbacks\n party service: prioritize user join handler over plugins\n hiscore panel: fix lookup to run on edt\n hiscore panel: add names to skill label tooltips\n Add Leagues hiscores and update icons for Trailblazer League\n\nArman Rafian (1):\n agility: Improve laps per hour calculation accuracy (#12246)\n\nBlackberry0Pie (1):\n fairyring: Add Falo the bard tag to Sinclair Mansion fairy ring (#12030)\n\nBroooklyn (11):\n agility: fix Sara GWD obstacle highlights\n agility: add GWD crack obstacle highlight\n clues: fix apostrophe positioning for Seers\' Village\n clues: add descriptions for MapClues\n clues: update BeginnerMapClue to use MapClue description constants\n cannon: Add Meiyerditch Laboratory Bloodveld cannon spot (#12078)\n discord: Add castle wars underground region ID (#12075)\n agility: Fix prif portal highlighting\n clue: Fix K\'ril\'s chamber master clue step plane\n chat commands: add Nightmare abbreviations\n Item identification: add tablets\n\nChris Janusiewicz (1):\n nmz plugin: add option to send overload notification prior to expire\n\nCyborger1 (1):\n farming: Improve names of Poison ivy and Dwarf weed patches (#12134)\n\nDerek Lopes (1):\n Notifier: Disable flash notification when off is selected to prevent stuck flash state\n\nErik Humphrey (1):\n clues: Fix \'Headbang at the exam centre\' clue text (#12297)\n\nHenry Darnell (1):\n Update deprecated/default Travis configs (#10880)\n\nHexagon (1):\n client: add zalcano plugin\n\nHydrox (1):\n loottrackerclient: log when submitting loot isn\'t successful\n\nHydrox6 (1):\n mousehighlight: make "drop" not show when interface tooltips are off\n\nJZomerlei (1):\n achivement dairy plugin: Add satisfiesRequirement to Requirement (#12265)\n\nJonathan Charles (1):\n menu swapper: add Advisor Ghrim collect swap\n\nJordan Atwood (6):\n OverlayRenderer: Fix overlay resizing logic\n HotColdLocation: Center some location spots\n slayer: Fix slaughter bracelet proc text\n HotColdLocation: Fix Mos Le\'Harmless southern bar spot\n menuentryswapper: Prefer last-destination on Zanaris fairy ring\n ItemIdentification: Fix target teleport definition\n\nJussi Kauppinen (2):\n cooking: Add support for drying sinew (#12184)\n inventory-tags: add underline as display option\n\nLA (1):\n screenshot: Capture Barbarian Assault high gamble screenshots (#12071)\n\nLandy Chan (1):\n prayer plugin: fix time remaining text when greater than 1 hour\n\nLazyScaper (2):\n worldmap: Fix Misthalin mystery quest icon position (#12273)\n skill calc: add Vyres to thieving calc\n\nMarbleTurtle (2):\n EmoteClue: Change location from Digsite to Exam Centre\n SkillChallengeClue: Update dragonhide clue text (#12217)\n\nMeeran (2):\n ItemMapping: Add Bryophyta\'s staff (#12286)\n ItemMapping: Add Ring of endurance\n\nOneProGoober (1):\n emoji: Add XD and pleading emojis (#12203)\n\nRansomTime (1):\n task: add Iorweth Warriors to list of targets for elves\n\nSirGirion (1):\n loottracker: Add bird nest loot tracking (#12237)\n\nTheStonedTurtle (1):\n Dev Tools - Add Inventory Inspector\n\nToocanzs (1):\n gpu: add anisotropic filtering\n\nXrioBtw (1):\n PrayerType: Fix BURST_OF_STRENGTH description typo (#12138)\n\nhoneyhoney (3):\n menuentryswapper: Add Rellekka quick travel NPCs (#12333)\n bank: Fix NPE in PostScriptFired subscriber (#12342)\n WorldMapOverlay: Adjust tooltip text position to match vanilla tooltips (#12380)\n\nkjartantr (1):\n SlayerUnlock: Update varbits enum (#12214)\n\nleejt (2):\n loot tracker: track grubby, stone, Dorgesh-Kaan and HAM chests\n loot tracker: add metadata field to loot record\n\nmelkypie (1):\n chatcommands: make cox pb account for 11-15 and 16-23 team sizes\n\ntrimbe (2):\n bank tags: update detection of active tab for separator removal\n bank tags: invoke only the scrollbar update after removing separators\n
\n',image:"/img/blog/1.6.25-Release/zalcano-hint-arrow.png"}}}]);
+//# sourceMappingURL=132.19758b03.chunk.js.map
\ No newline at end of file
diff --git a/static/js/132.f287b8fc.chunk.js.map b/static/js/132.19758b03.chunk.js.map
similarity index 99%
rename from static/js/132.f287b8fc.chunk.js.map
rename to static/js/132.19758b03.chunk.js.map
index ab632ae96..54ffbbddf 100644
--- a/static/js/132.f287b8fc.chunk.js.map
+++ b/static/js/132.19758b03.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-08-26-10-00-1.6.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,4HAA4H,OAAS,SAAS,KAAO,60ZAAiia,MAAQ","file":"static/js/132.f287b8fc.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.24 & 1.6.25 Release\",\"description\":\"Zalcano plugin, inventory tag underlines, GPU anisotropic filtering, potion duration tooltips, and mining session overlay\",\"author\":\"Jordan\",\"body\":\"We have added a Zalcano plugin which offers\\nseveral useful arrow highlights and overlays. Thanks to @Hexagon for\\nthis contribution!
\\n
\\nThe Inventory Tags plugin can now\\ndraw an underline as a more subtle option for your tagged items. Thanks to\\n@jualkaup for this feature.
\\n
\\nWe have added an anisotropic filtering setting to the GPU\\nplugin that makes textures appear smoother and have\\nfewer "jagged" and sharp pixels, especially when zoomed out, as shown in the comparison table below.\\nThanks to @pacf531 and @Toocanzs for\\nmaking this feature happen.
\\n\\n\\n\\nGPU anisotropic filtering enabled \\nGPU anisotropic filtering disabled \\n \\n \\n\\n\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: GPU plugin with anisotropic filtering enabled\\n \\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: GPU plugin with anisotropic filtering disabled\\n \\n \\n \\n
\\nThe Item Stats plugin now displays a tooltip\\nfor duration effects granted by antipoison potions, anti-fire potions, and the like. Thanks to\\n@MMagicala for this enhancement.
\\n
\\nThe Mining plugin now displays a session overlay\\nthat counts ores mined per hour and throughout the session, along with an indicator of whether you\\nare currently mining. Thanks to @JZomerlei for this addition.
\\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Timers plugin now shows an infobox with\\nyour elapsed Fight Cave or Inferno time \\nInteracting with Bank Tag\\ntabs no longer clears your\\nactive bank search \\nThe Inventory Grid plugin now operates\\nwhile viewing your bank \\nAn issue causing Discord party invites to fail has been fixed \\nTooltip labels have been added to clue scroll and minigame entries in the HiScore\\nplugin \\nThe Agility plugin now estimates your laps\\nper hour more accurately \\nSome Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\\nAgility plugin \\nThe Clue Scroll plugin now shows a\\nlocation description for map clues \\nThe Cannon plugin now suggests a spot for\\nBloodvelds in the Meiyerditch Laboratories \\nYou can now look up your Nightmare kill count with the Chat Commands\\nplugin using the nm
, tnm
, and\\nnmare
abbreviations \\nTeleport tablets are now labeled by the Item Identification\\nplugin \\nThe Nightmare Zone plugin can now send\\nnotifications prior to your overload boosts expiring \\nA bug which could cause flash notifications to become stuck has been fixed \\nThe Menu Entry Swapper plugin now\\nswaps the "Collect" option on Advisor Ghrim, the various quick-travel menu entries on Rellekka\\nNPCs, and prefers the "Last-destination" option when using the Zanaris fairy ring \\nThe Cooking plugin now updates its session\\ncounter when drying sinew \\nThe Prayer plugin now shows a sensible\\nduration text for durations greater than 1 hour \\nIorwerth Warriors are now understood to be elves by the Slayer\\nplugin \\nXD and pleading emojis have been added to the Emojis\\nplugin with the Xd
and (n_n)
triggers,\\nrespectively \\nVyres have been added to the Thieving skill\\ncalculator \\nA bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\\nbeen fixed \\nThe World Map plugin no longer shows a\\nmisplaced quest icon for the Misthalin Mystery quest \\nBird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\\nthe Loot Tracker plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 32 contributors this release!
\\nAdam (26):\\n tagtabs: split tag search from bank search\\n tagtabs: close tab when clicking on main bank tab\\n tagtabs: show tab separators in tag tabs\\n tagtabs: fix clearing bank search when opening tags\\n clientui: reset frame position in safe mode\\n clientui: use contains instead of intersects for screen bounds checking\\n inventory-grid: show grid when viewing bank\\n mouse highlight: fix interface tooltips option\\n menu swapper: update jewellery box clan wars swap to ferox enclave\\n item stats: add duration tooltips to potions\\n api: add GraphicsObject finished()\\n slayer plugin: support new Turael task completion message\\n mining plugin: rename MiningOverlay to MiningRocksOverlay\\n mining plugin: add session stats\\n loot tracker service: use bigint for kill id\\n gpu plugin: initialize aa fbo handles\\n xp globes: fix timing out xp globes after no xp is gained\\n timers plugin: add fight cave and inferno timers\\n xp globes: remove double globeCache index\\n http-service: increase loot tracker retention to 90 days\\n discord: remove DiscordReplyType\\n discord: add logging to Discord rpc callbacks\\n party service: prioritize user join handler over plugins\\n hiscore panel: fix lookup to run on edt\\n hiscore panel: add names to skill label tooltips\\n Add Leagues hiscores and update icons for Trailblazer League\\n\\nArman Rafian (1):\\n agility: Improve laps per hour calculation accuracy (#12246)\\n\\nBlackberry0Pie (1):\\n fairyring: Add Falo the bard tag to Sinclair Mansion fairy ring (#12030)\\n\\nBroooklyn (11):\\n agility: fix Sara GWD obstacle highlights\\n agility: add GWD crack obstacle highlight\\n clues: fix apostrophe positioning for Seers' Village\\n clues: add descriptions for MapClues\\n clues: update BeginnerMapClue to use MapClue description constants\\n cannon: Add Meiyerditch Laboratory Bloodveld cannon spot (#12078)\\n discord: Add castle wars underground region ID (#12075)\\n agility: Fix prif portal highlighting\\n clue: Fix K'ril's chamber master clue step plane\\n chat commands: add Nightmare abbreviations\\n Item identification: add tablets\\n\\nChris Janusiewicz (1):\\n nmz plugin: add option to send overload notification prior to expire\\n\\nCyborger1 (1):\\n farming: Improve names of Poison ivy and Dwarf weed patches (#12134)\\n\\nDerek Lopes (1):\\n Notifier: Disable flash notification when off is selected to prevent stuck flash state\\n\\nErik Humphrey (1):\\n clues: Fix 'Headbang at the exam centre' clue text (#12297)\\n\\nHenry Darnell (1):\\n Update deprecated/default Travis configs (#10880)\\n\\nHexagon (1):\\n client: add zalcano plugin\\n\\nHydrox (1):\\n loottrackerclient: log when submitting loot isn't successful\\n\\nHydrox6 (1):\\n mousehighlight: make "drop" not show when interface tooltips are off\\n\\nJZomerlei (1):\\n achivement dairy plugin: Add satisfiesRequirement to Requirement (#12265)\\n\\nJonathan Charles (1):\\n menu swapper: add Advisor Ghrim collect swap\\n\\nJordan Atwood (6):\\n OverlayRenderer: Fix overlay resizing logic\\n HotColdLocation: Center some location spots\\n slayer: Fix slaughter bracelet proc text\\n HotColdLocation: Fix Mos Le'Harmless southern bar spot\\n menuentryswapper: Prefer last-destination on Zanaris fairy ring\\n ItemIdentification: Fix target teleport definition\\n\\nJussi Kauppinen (2):\\n cooking: Add support for drying sinew (#12184)\\n inventory-tags: add underline as display option\\n\\nLA (1):\\n screenshot: Capture Barbarian Assault high gamble screenshots (#12071)\\n\\nLandy Chan (1):\\n prayer plugin: fix time remaining text when greater than 1 hour\\n\\nLazyScaper (2):\\n worldmap: Fix Misthalin mystery quest icon position (#12273)\\n skill calc: add Vyres to thieving calc\\n\\nMarbleTurtle (2):\\n EmoteClue: Change location from Digsite to Exam Centre\\n SkillChallengeClue: Update dragonhide clue text (#12217)\\n\\nMeeran (2):\\n ItemMapping: Add Bryophyta's staff (#12286)\\n ItemMapping: Add Ring of endurance\\n\\nOneProGoober (1):\\n emoji: Add XD and pleading emojis (#12203)\\n\\nRansomTime (1):\\n task: add Iorweth Warriors to list of targets for elves\\n\\nSirGirion (1):\\n loottracker: Add bird nest loot tracking (#12237)\\n\\nTheStonedTurtle (1):\\n Dev Tools - Add Inventory Inspector\\n\\nToocanzs (1):\\n gpu: add anisotropic filtering\\n\\nXrioBtw (1):\\n PrayerType: Fix BURST_OF_STRENGTH description typo (#12138)\\n\\nhoneyhoney (3):\\n menuentryswapper: Add Rellekka quick travel NPCs (#12333)\\n bank: Fix NPE in PostScriptFired subscriber (#12342)\\n WorldMapOverlay: Adjust tooltip text position to match vanilla tooltips (#12380)\\n\\nkjartantr (1):\\n SlayerUnlock: Update varbits enum (#12214)\\n\\nleejt (2):\\n loot tracker: track grubby, stone, Dorgesh-Kaan and HAM chests\\n loot tracker: add metadata field to loot record\\n\\nmelkypie (1):\\n chatcommands: make cox pb account for 11-15 and 16-23 team sizes\\n\\ntrimbe (2):\\n bank tags: update detection of active tab for separator removal\\n bank tags: invoke only the scrollbar update after removing separators\\n
\\n\",\"image\":\"/img/blog/1.6.25-Release/zalcano-hint-arrow.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-08-26-10-00-1.6.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,4HAA4H,OAAS,SAAS,KAAO,60ZAAiia,MAAQ","file":"static/js/132.19758b03.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.24 & 1.6.25 Release\",\"description\":\"Zalcano plugin, inventory tag underlines, GPU anisotropic filtering, potion duration tooltips, and mining session overlay\",\"author\":\"Jordan\",\"body\":\"We have added a Zalcano plugin which offers\\nseveral useful arrow highlights and overlays. Thanks to @Hexagon for\\nthis contribution!
\\n
\\nThe Inventory Tags plugin can now\\ndraw an underline as a more subtle option for your tagged items. Thanks to\\n@jualkaup for this feature.
\\n
\\nWe have added an anisotropic filtering setting to the GPU\\nplugin that makes textures appear smoother and have\\nfewer "jagged" and sharp pixels, especially when zoomed out, as shown in the comparison table below.\\nThanks to @pacf531 and @Toocanzs for\\nmaking this feature happen.
\\n\\n\\n\\nGPU anisotropic filtering enabled \\nGPU anisotropic filtering disabled \\n \\n \\n\\n\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: GPU plugin with anisotropic filtering enabled\\n \\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: GPU plugin with anisotropic filtering disabled\\n \\n \\n \\n
\\nThe Item Stats plugin now displays a tooltip\\nfor duration effects granted by antipoison potions, anti-fire potions, and the like. Thanks to\\n@MMagicala for this enhancement.
\\n
\\nThe Mining plugin now displays a session overlay\\nthat counts ores mined per hour and throughout the session, along with an indicator of whether you\\nare currently mining. Thanks to @JZomerlei for this addition.
\\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Timers plugin now shows an infobox with\\nyour elapsed Fight Cave or Inferno time \\nInteracting with Bank Tag\\ntabs no longer clears your\\nactive bank search \\nThe Inventory Grid plugin now operates\\nwhile viewing your bank \\nAn issue causing Discord party invites to fail has been fixed \\nTooltip labels have been added to clue scroll and minigame entries in the HiScore\\nplugin \\nThe Agility plugin now estimates your laps\\nper hour more accurately \\nSome Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\\nAgility plugin \\nThe Clue Scroll plugin now shows a\\nlocation description for map clues \\nThe Cannon plugin now suggests a spot for\\nBloodvelds in the Meiyerditch Laboratories \\nYou can now look up your Nightmare kill count with the Chat Commands\\nplugin using the nm
, tnm
, and\\nnmare
abbreviations \\nTeleport tablets are now labeled by the Item Identification\\nplugin \\nThe Nightmare Zone plugin can now send\\nnotifications prior to your overload boosts expiring \\nA bug which could cause flash notifications to become stuck has been fixed \\nThe Menu Entry Swapper plugin now\\nswaps the "Collect" option on Advisor Ghrim, the various quick-travel menu entries on Rellekka\\nNPCs, and prefers the "Last-destination" option when using the Zanaris fairy ring \\nThe Cooking plugin now updates its session\\ncounter when drying sinew \\nThe Prayer plugin now shows a sensible\\nduration text for durations greater than 1 hour \\nIorwerth Warriors are now understood to be elves by the Slayer\\nplugin \\nXD and pleading emojis have been added to the Emojis\\nplugin with the Xd
and (n_n)
triggers,\\nrespectively \\nVyres have been added to the Thieving skill\\ncalculator \\nA bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\\nbeen fixed \\nThe World Map plugin no longer shows a\\nmisplaced quest icon for the Misthalin Mystery quest \\nBird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\\nthe Loot Tracker plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 32 contributors this release!
\\nAdam (26):\\n tagtabs: split tag search from bank search\\n tagtabs: close tab when clicking on main bank tab\\n tagtabs: show tab separators in tag tabs\\n tagtabs: fix clearing bank search when opening tags\\n clientui: reset frame position in safe mode\\n clientui: use contains instead of intersects for screen bounds checking\\n inventory-grid: show grid when viewing bank\\n mouse highlight: fix interface tooltips option\\n menu swapper: update jewellery box clan wars swap to ferox enclave\\n item stats: add duration tooltips to potions\\n api: add GraphicsObject finished()\\n slayer plugin: support new Turael task completion message\\n mining plugin: rename MiningOverlay to MiningRocksOverlay\\n mining plugin: add session stats\\n loot tracker service: use bigint for kill id\\n gpu plugin: initialize aa fbo handles\\n xp globes: fix timing out xp globes after no xp is gained\\n timers plugin: add fight cave and inferno timers\\n xp globes: remove double globeCache index\\n http-service: increase loot tracker retention to 90 days\\n discord: remove DiscordReplyType\\n discord: add logging to Discord rpc callbacks\\n party service: prioritize user join handler over plugins\\n hiscore panel: fix lookup to run on edt\\n hiscore panel: add names to skill label tooltips\\n Add Leagues hiscores and update icons for Trailblazer League\\n\\nArman Rafian (1):\\n agility: Improve laps per hour calculation accuracy (#12246)\\n\\nBlackberry0Pie (1):\\n fairyring: Add Falo the bard tag to Sinclair Mansion fairy ring (#12030)\\n\\nBroooklyn (11):\\n agility: fix Sara GWD obstacle highlights\\n agility: add GWD crack obstacle highlight\\n clues: fix apostrophe positioning for Seers' Village\\n clues: add descriptions for MapClues\\n clues: update BeginnerMapClue to use MapClue description constants\\n cannon: Add Meiyerditch Laboratory Bloodveld cannon spot (#12078)\\n discord: Add castle wars underground region ID (#12075)\\n agility: Fix prif portal highlighting\\n clue: Fix K'ril's chamber master clue step plane\\n chat commands: add Nightmare abbreviations\\n Item identification: add tablets\\n\\nChris Janusiewicz (1):\\n nmz plugin: add option to send overload notification prior to expire\\n\\nCyborger1 (1):\\n farming: Improve names of Poison ivy and Dwarf weed patches (#12134)\\n\\nDerek Lopes (1):\\n Notifier: Disable flash notification when off is selected to prevent stuck flash state\\n\\nErik Humphrey (1):\\n clues: Fix 'Headbang at the exam centre' clue text (#12297)\\n\\nHenry Darnell (1):\\n Update deprecated/default Travis configs (#10880)\\n\\nHexagon (1):\\n client: add zalcano plugin\\n\\nHydrox (1):\\n loottrackerclient: log when submitting loot isn't successful\\n\\nHydrox6 (1):\\n mousehighlight: make "drop" not show when interface tooltips are off\\n\\nJZomerlei (1):\\n achivement dairy plugin: Add satisfiesRequirement to Requirement (#12265)\\n\\nJonathan Charles (1):\\n menu swapper: add Advisor Ghrim collect swap\\n\\nJordan Atwood (6):\\n OverlayRenderer: Fix overlay resizing logic\\n HotColdLocation: Center some location spots\\n slayer: Fix slaughter bracelet proc text\\n HotColdLocation: Fix Mos Le'Harmless southern bar spot\\n menuentryswapper: Prefer last-destination on Zanaris fairy ring\\n ItemIdentification: Fix target teleport definition\\n\\nJussi Kauppinen (2):\\n cooking: Add support for drying sinew (#12184)\\n inventory-tags: add underline as display option\\n\\nLA (1):\\n screenshot: Capture Barbarian Assault high gamble screenshots (#12071)\\n\\nLandy Chan (1):\\n prayer plugin: fix time remaining text when greater than 1 hour\\n\\nLazyScaper (2):\\n worldmap: Fix Misthalin mystery quest icon position (#12273)\\n skill calc: add Vyres to thieving calc\\n\\nMarbleTurtle (2):\\n EmoteClue: Change location from Digsite to Exam Centre\\n SkillChallengeClue: Update dragonhide clue text (#12217)\\n\\nMeeran (2):\\n ItemMapping: Add Bryophyta's staff (#12286)\\n ItemMapping: Add Ring of endurance\\n\\nOneProGoober (1):\\n emoji: Add XD and pleading emojis (#12203)\\n\\nRansomTime (1):\\n task: add Iorweth Warriors to list of targets for elves\\n\\nSirGirion (1):\\n loottracker: Add bird nest loot tracking (#12237)\\n\\nTheStonedTurtle (1):\\n Dev Tools - Add Inventory Inspector\\n\\nToocanzs (1):\\n gpu: add anisotropic filtering\\n\\nXrioBtw (1):\\n PrayerType: Fix BURST_OF_STRENGTH description typo (#12138)\\n\\nhoneyhoney (3):\\n menuentryswapper: Add Rellekka quick travel NPCs (#12333)\\n bank: Fix NPE in PostScriptFired subscriber (#12342)\\n WorldMapOverlay: Adjust tooltip text position to match vanilla tooltips (#12380)\\n\\nkjartantr (1):\\n SlayerUnlock: Update varbits enum (#12214)\\n\\nleejt (2):\\n loot tracker: track grubby, stone, Dorgesh-Kaan and HAM chests\\n loot tracker: add metadata field to loot record\\n\\nmelkypie (1):\\n chatcommands: make cox pb account for 11-15 and 16-23 team sizes\\n\\ntrimbe (2):\\n bank tags: update detection of active tab for separator removal\\n bank tags: invoke only the scrollbar update after removing separators\\n
\\n\",\"image\":\"/img/blog/1.6.25-Release/zalcano-hint-arrow.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/133.73d81224.chunk.js b/static/js/133.9f399ecc.chunk.js
similarity index 98%
rename from static/js/133.73d81224.chunk.js
rename to static/js/133.9f399ecc.chunk.js
index 1d01f0363..42d4ef6e7 100644
--- a/static/js/133.73d81224.chunk.js
+++ b/static/js/133.9f399ecc.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[133],{408:function(e,n){e.exports={title:"1.6.26 & 1.6.27 Release",description:"Website time tracking and improved item outlines",author:"Jordan",body:'You can now view your Time Tracker\nplugin progress on the\nwebsite when you are logged in to your RuneLite\naccount for easy checking on the go!
\n\n\n\n \n \n \n \n\n\n \n \n \n \n
\nItem outlines like those seen when using the Inventory Tags\nplugin have been updated to draw more\naccurate borders around the outlined items.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nSeveral bugs preventing RuneLite from maximizing correctly on hidpi or scaled displays have been\nfixed, and there will be an upcoming launcher release to fix the remaining known issues, which are\nrelated to multiple displays with mixed hidpi/scaling settings.
\nThere are also several smaller improvements and bug fixes, including:
\n\nLoad times with the GPU plugin enabled have been\nslightly improved \nA "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\nadded via the hub \nThe Mining plugin now tracks dense essence\nmining and shows the proper mining status while mining at Motherlode mine and while mining\namethyst \nThe Motherlode Mine plugin shows the\nproper mining status while mining with a 3rd Age pickaxe \nThe Discord plugin now recognizes many more\nareas such as the Farming Guild, runecrafting altars, Morytania, and more \nThe Clue Scroll plugin correctly\nindicates that items protected with a Trouver parchment are eligible for emote clues \nBlisterwood logs, Hallowed Sepulchre floors, and the Carpenter\'s outfit set bonus have been added\nto the Skill Calculator plugin \nYou can now toggle the Dark energy core highlight in the Corporeal Beast\nplugin \nThe new Gu\'Tanoth agility shortcut is now highlighted with the Agility\nplugin \nHouses decorated with the Twisted League or Hosidius themes now have their own skybox\ncolors \nThe Abyssal Sire stun timer shows up correctly\nagain \nThe Inferno\'s time tracker is now adjusted by 6\nseconds to be in line with the ingame timer \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (13):\n scripts: fix privateMessage message skipping\n core overlay: cleanup\n timers: consolidate teleblock timers\n ge: include username in machine hash\n mining plugin: track dense essence mining\n item manager: fix item outlines to more accurately fit model\n ui: fix frame maximized bounds with dpi scaling\n disassembler: escape string operands\n containableframe: fix parsing Oracle Java 8 version string\n scene uploder: remove unnecessary reset\n gpu: optimize ensureCapacity()\n scene uploader: inline pushFace() into uploadModel()\n scene uploader: add stopwatch\n\nBroooklyn (8):\n clues: Fix Watchtower master emote step coordinates (#12429)\n quest: add A Porcine of Interest and Daddy\'s Home to quest enum\n worldmap: add A Porcine of Interest quest start location\n worldmap: add Sourhog Cave dungeon location\n discord: update config names and descriptions\n discord: add Region AreaType\n discord: add additional mapped regions\n discord: fix Barbarian Assault regions\n\nDavid (1):\n menuentryswapper: Add Island of Stone quick travel (#12422)\n\nDoron Galambos (3):\n clues: Update Ardougne cryptic clue (#12520)\n clues: Update Falador cryptic clue (#12519)\n game: Add Gu\'Tanoth crumbling wall agility shortcut (#12506)\n\nHydrox6 (2):\n Pickaxe: add overhead mining animations (#12509)\n motherlode: add 3a pickaxe\n\nIllya Myshakov (1):\n skillcalc: Add Blisterwood Logs firemaking and woodcutting calc (#12456)\n\nJordan Atwood (2):\n HotColdLocation: Center some location spots\n EmoteClue: Fix Infernal max cape item ID\n\nMarbleTurtle (1):\n clues: Support items locked with Trouver parchment\n\nMatt Davenport (1):\n cluescrolls: add fairy ring codes to emote clues\n\nMatthew C (4):\n timers: Add Mage Arena 2 teleblock timers\n corp: Add toggle for dark energy core highlighting (#12462)\n slayer: Sort Task enum alphabetically\n slayer: Add black knights and pirates\n\nMax Weber (3):\n runelite-client: remove removed items\n config: implicitly tag all hub plugins as pluginhub\n skybox: include twisted league and hosidius POH themes\n\nMichael Archer (1):\n timers: Update stunned Abyssal Sire ID (#12410)\n\nSean Patiag (1):\n achievementdiary: Fix Western Provinces quest requirement\n\nTomas Slusny (1):\n Merge UntradeableItemMapping and ItemMapping\n\narthur798 (2):\n skillcalculator: Add Carpenter\'s outfit set bonus (#12412)\n skillcalculator: Add Hallowed sepulchre floors to agility calculator (#12414)\n\ndata-dependent (1):\n mining: Fix gem rock respawn time (#12481)\n\njcwhisman (2):\n ElapsedTimer: Display time in mm:ss format\n timers: Fix inferno timer starting time\n
\n',image:"/img/blog/1.6.27-Release/website-tracker-fruit-trees.png"}}}]);
-//# sourceMappingURL=133.73d81224.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[133],{409:function(e,n){e.exports={title:"1.6.26 & 1.6.27 Release",description:"Website time tracking and improved item outlines",author:"Jordan",body:'You can now view your Time Tracker\nplugin progress on the\nwebsite when you are logged in to your RuneLite\naccount for easy checking on the go!
\n\n\n\n \n \n \n \n\n\n \n \n \n \n
\nItem outlines like those seen when using the Inventory Tags\nplugin have been updated to draw more\naccurate borders around the outlined items.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nSeveral bugs preventing RuneLite from maximizing correctly on hidpi or scaled displays have been\nfixed, and there will be an upcoming launcher release to fix the remaining known issues, which are\nrelated to multiple displays with mixed hidpi/scaling settings.
\nThere are also several smaller improvements and bug fixes, including:
\n\nLoad times with the GPU plugin enabled have been\nslightly improved \nA "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\nadded via the hub \nThe Mining plugin now tracks dense essence\nmining and shows the proper mining status while mining at Motherlode mine and while mining\namethyst \nThe Motherlode Mine plugin shows the\nproper mining status while mining with a 3rd Age pickaxe \nThe Discord plugin now recognizes many more\nareas such as the Farming Guild, runecrafting altars, Morytania, and more \nThe Clue Scroll plugin correctly\nindicates that items protected with a Trouver parchment are eligible for emote clues \nBlisterwood logs, Hallowed Sepulchre floors, and the Carpenter\'s outfit set bonus have been added\nto the Skill Calculator plugin \nYou can now toggle the Dark energy core highlight in the Corporeal Beast\nplugin \nThe new Gu\'Tanoth agility shortcut is now highlighted with the Agility\nplugin \nHouses decorated with the Twisted League or Hosidius themes now have their own skybox\ncolors \nThe Abyssal Sire stun timer shows up correctly\nagain \nThe Inferno\'s time tracker is now adjusted by 6\nseconds to be in line with the ingame timer \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (13):\n scripts: fix privateMessage message skipping\n core overlay: cleanup\n timers: consolidate teleblock timers\n ge: include username in machine hash\n mining plugin: track dense essence mining\n item manager: fix item outlines to more accurately fit model\n ui: fix frame maximized bounds with dpi scaling\n disassembler: escape string operands\n containableframe: fix parsing Oracle Java 8 version string\n scene uploder: remove unnecessary reset\n gpu: optimize ensureCapacity()\n scene uploader: inline pushFace() into uploadModel()\n scene uploader: add stopwatch\n\nBroooklyn (8):\n clues: Fix Watchtower master emote step coordinates (#12429)\n quest: add A Porcine of Interest and Daddy\'s Home to quest enum\n worldmap: add A Porcine of Interest quest start location\n worldmap: add Sourhog Cave dungeon location\n discord: update config names and descriptions\n discord: add Region AreaType\n discord: add additional mapped regions\n discord: fix Barbarian Assault regions\n\nDavid (1):\n menuentryswapper: Add Island of Stone quick travel (#12422)\n\nDoron Galambos (3):\n clues: Update Ardougne cryptic clue (#12520)\n clues: Update Falador cryptic clue (#12519)\n game: Add Gu\'Tanoth crumbling wall agility shortcut (#12506)\n\nHydrox6 (2):\n Pickaxe: add overhead mining animations (#12509)\n motherlode: add 3a pickaxe\n\nIllya Myshakov (1):\n skillcalc: Add Blisterwood Logs firemaking and woodcutting calc (#12456)\n\nJordan Atwood (2):\n HotColdLocation: Center some location spots\n EmoteClue: Fix Infernal max cape item ID\n\nMarbleTurtle (1):\n clues: Support items locked with Trouver parchment\n\nMatt Davenport (1):\n cluescrolls: add fairy ring codes to emote clues\n\nMatthew C (4):\n timers: Add Mage Arena 2 teleblock timers\n corp: Add toggle for dark energy core highlighting (#12462)\n slayer: Sort Task enum alphabetically\n slayer: Add black knights and pirates\n\nMax Weber (3):\n runelite-client: remove removed items\n config: implicitly tag all hub plugins as pluginhub\n skybox: include twisted league and hosidius POH themes\n\nMichael Archer (1):\n timers: Update stunned Abyssal Sire ID (#12410)\n\nSean Patiag (1):\n achievementdiary: Fix Western Provinces quest requirement\n\nTomas Slusny (1):\n Merge UntradeableItemMapping and ItemMapping\n\narthur798 (2):\n skillcalculator: Add Carpenter\'s outfit set bonus (#12412)\n skillcalculator: Add Hallowed sepulchre floors to agility calculator (#12414)\n\ndata-dependent (1):\n mining: Fix gem rock respawn time (#12481)\n\njcwhisman (2):\n ElapsedTimer: Display time in mm:ss format\n timers: Fix inferno timer starting time\n
\n',image:"/img/blog/1.6.27-Release/website-tracker-fruit-trees.png"}}}]);
+//# sourceMappingURL=133.9f399ecc.chunk.js.map
\ No newline at end of file
diff --git a/static/js/133.73d81224.chunk.js.map b/static/js/133.9f399ecc.chunk.js.map
similarity index 99%
rename from static/js/133.73d81224.chunk.js.map
rename to static/js/133.9f399ecc.chunk.js.map
index 7c333247f..ccb64b13b 100644
--- a/static/js/133.73d81224.chunk.js.map
+++ b/static/js/133.9f399ecc.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-09-23-10-00-1.6.27-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,mDAAmD,OAAS,SAAS,KAAO,23NAA+9N,MAAQ","file":"static/js/133.73d81224.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.26 & 1.6.27 Release\",\"description\":\"Website time tracking and improved item outlines\",\"author\":\"Jordan\",\"body\":\"You can now view your Time Tracker\\nplugin progress on the\\nwebsite when you are logged in to your RuneLite\\naccount for easy checking on the go!
\\n\\n\\n\\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nItem outlines like those seen when using the Inventory Tags\\nplugin have been updated to draw more\\naccurate borders around the outlined items.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nSeveral bugs preventing RuneLite from maximizing correctly on hidpi or scaled displays have been\\nfixed, and there will be an upcoming launcher release to fix the remaining known issues, which are\\nrelated to multiple displays with mixed hidpi/scaling settings.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nLoad times with the GPU plugin enabled have been\\nslightly improved \\nA "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\\nadded via the hub \\nThe Mining plugin now tracks dense essence\\nmining and shows the proper mining status while mining at Motherlode mine and while mining\\namethyst \\nThe Motherlode Mine plugin shows the\\nproper mining status while mining with a 3rd Age pickaxe \\nThe Discord plugin now recognizes many more\\nareas such as the Farming Guild, runecrafting altars, Morytania, and more \\nThe Clue Scroll plugin correctly\\nindicates that items protected with a Trouver parchment are eligible for emote clues \\nBlisterwood logs, Hallowed Sepulchre floors, and the Carpenter's outfit set bonus have been added\\nto the Skill Calculator plugin \\nYou can now toggle the Dark energy core highlight in the Corporeal Beast\\nplugin \\nThe new Gu'Tanoth agility shortcut is now highlighted with the Agility\\nplugin \\nHouses decorated with the Twisted League or Hosidius themes now have their own skybox\\ncolors \\nThe Abyssal Sire stun timer shows up correctly\\nagain \\nThe Inferno's time tracker is now adjusted by 6\\nseconds to be in line with the ingame timer \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (13):\\n scripts: fix privateMessage message skipping\\n core overlay: cleanup\\n timers: consolidate teleblock timers\\n ge: include username in machine hash\\n mining plugin: track dense essence mining\\n item manager: fix item outlines to more accurately fit model\\n ui: fix frame maximized bounds with dpi scaling\\n disassembler: escape string operands\\n containableframe: fix parsing Oracle Java 8 version string\\n scene uploder: remove unnecessary reset\\n gpu: optimize ensureCapacity()\\n scene uploader: inline pushFace() into uploadModel()\\n scene uploader: add stopwatch\\n\\nBroooklyn (8):\\n clues: Fix Watchtower master emote step coordinates (#12429)\\n quest: add A Porcine of Interest and Daddy's Home to quest enum\\n worldmap: add A Porcine of Interest quest start location\\n worldmap: add Sourhog Cave dungeon location\\n discord: update config names and descriptions\\n discord: add Region AreaType\\n discord: add additional mapped regions\\n discord: fix Barbarian Assault regions\\n\\nDavid (1):\\n menuentryswapper: Add Island of Stone quick travel (#12422)\\n\\nDoron Galambos (3):\\n clues: Update Ardougne cryptic clue (#12520)\\n clues: Update Falador cryptic clue (#12519)\\n game: Add Gu'Tanoth crumbling wall agility shortcut (#12506)\\n\\nHydrox6 (2):\\n Pickaxe: add overhead mining animations (#12509)\\n motherlode: add 3a pickaxe\\n\\nIllya Myshakov (1):\\n skillcalc: Add Blisterwood Logs firemaking and woodcutting calc (#12456)\\n\\nJordan Atwood (2):\\n HotColdLocation: Center some location spots\\n EmoteClue: Fix Infernal max cape item ID\\n\\nMarbleTurtle (1):\\n clues: Support items locked with Trouver parchment\\n\\nMatt Davenport (1):\\n cluescrolls: add fairy ring codes to emote clues\\n\\nMatthew C (4):\\n timers: Add Mage Arena 2 teleblock timers\\n corp: Add toggle for dark energy core highlighting (#12462)\\n slayer: Sort Task enum alphabetically\\n slayer: Add black knights and pirates\\n\\nMax Weber (3):\\n runelite-client: remove removed items\\n config: implicitly tag all hub plugins as pluginhub\\n skybox: include twisted league and hosidius POH themes\\n\\nMichael Archer (1):\\n timers: Update stunned Abyssal Sire ID (#12410)\\n\\nSean Patiag (1):\\n achievementdiary: Fix Western Provinces quest requirement\\n\\nTomas Slusny (1):\\n Merge UntradeableItemMapping and ItemMapping\\n\\narthur798 (2):\\n skillcalculator: Add Carpenter's outfit set bonus (#12412)\\n skillcalculator: Add Hallowed sepulchre floors to agility calculator (#12414)\\n\\ndata-dependent (1):\\n mining: Fix gem rock respawn time (#12481)\\n\\njcwhisman (2):\\n ElapsedTimer: Display time in mm:ss format\\n timers: Fix inferno timer starting time\\n
\\n\",\"image\":\"/img/blog/1.6.27-Release/website-tracker-fruit-trees.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-09-23-10-00-1.6.27-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,mDAAmD,OAAS,SAAS,KAAO,23NAA+9N,MAAQ","file":"static/js/133.9f399ecc.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.26 & 1.6.27 Release\",\"description\":\"Website time tracking and improved item outlines\",\"author\":\"Jordan\",\"body\":\"You can now view your Time Tracker\\nplugin progress on the\\nwebsite when you are logged in to your RuneLite\\naccount for easy checking on the go!
\\n\\n\\n\\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nItem outlines like those seen when using the Inventory Tags\\nplugin have been updated to draw more\\naccurate borders around the outlined items.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nSeveral bugs preventing RuneLite from maximizing correctly on hidpi or scaled displays have been\\nfixed, and there will be an upcoming launcher release to fix the remaining known issues, which are\\nrelated to multiple displays with mixed hidpi/scaling settings.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nLoad times with the GPU plugin enabled have been\\nslightly improved \\nA "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\\nadded via the hub \\nThe Mining plugin now tracks dense essence\\nmining and shows the proper mining status while mining at Motherlode mine and while mining\\namethyst \\nThe Motherlode Mine plugin shows the\\nproper mining status while mining with a 3rd Age pickaxe \\nThe Discord plugin now recognizes many more\\nareas such as the Farming Guild, runecrafting altars, Morytania, and more \\nThe Clue Scroll plugin correctly\\nindicates that items protected with a Trouver parchment are eligible for emote clues \\nBlisterwood logs, Hallowed Sepulchre floors, and the Carpenter's outfit set bonus have been added\\nto the Skill Calculator plugin \\nYou can now toggle the Dark energy core highlight in the Corporeal Beast\\nplugin \\nThe new Gu'Tanoth agility shortcut is now highlighted with the Agility\\nplugin \\nHouses decorated with the Twisted League or Hosidius themes now have their own skybox\\ncolors \\nThe Abyssal Sire stun timer shows up correctly\\nagain \\nThe Inferno's time tracker is now adjusted by 6\\nseconds to be in line with the ingame timer \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (13):\\n scripts: fix privateMessage message skipping\\n core overlay: cleanup\\n timers: consolidate teleblock timers\\n ge: include username in machine hash\\n mining plugin: track dense essence mining\\n item manager: fix item outlines to more accurately fit model\\n ui: fix frame maximized bounds with dpi scaling\\n disassembler: escape string operands\\n containableframe: fix parsing Oracle Java 8 version string\\n scene uploder: remove unnecessary reset\\n gpu: optimize ensureCapacity()\\n scene uploader: inline pushFace() into uploadModel()\\n scene uploader: add stopwatch\\n\\nBroooklyn (8):\\n clues: Fix Watchtower master emote step coordinates (#12429)\\n quest: add A Porcine of Interest and Daddy's Home to quest enum\\n worldmap: add A Porcine of Interest quest start location\\n worldmap: add Sourhog Cave dungeon location\\n discord: update config names and descriptions\\n discord: add Region AreaType\\n discord: add additional mapped regions\\n discord: fix Barbarian Assault regions\\n\\nDavid (1):\\n menuentryswapper: Add Island of Stone quick travel (#12422)\\n\\nDoron Galambos (3):\\n clues: Update Ardougne cryptic clue (#12520)\\n clues: Update Falador cryptic clue (#12519)\\n game: Add Gu'Tanoth crumbling wall agility shortcut (#12506)\\n\\nHydrox6 (2):\\n Pickaxe: add overhead mining animations (#12509)\\n motherlode: add 3a pickaxe\\n\\nIllya Myshakov (1):\\n skillcalc: Add Blisterwood Logs firemaking and woodcutting calc (#12456)\\n\\nJordan Atwood (2):\\n HotColdLocation: Center some location spots\\n EmoteClue: Fix Infernal max cape item ID\\n\\nMarbleTurtle (1):\\n clues: Support items locked with Trouver parchment\\n\\nMatt Davenport (1):\\n cluescrolls: add fairy ring codes to emote clues\\n\\nMatthew C (4):\\n timers: Add Mage Arena 2 teleblock timers\\n corp: Add toggle for dark energy core highlighting (#12462)\\n slayer: Sort Task enum alphabetically\\n slayer: Add black knights and pirates\\n\\nMax Weber (3):\\n runelite-client: remove removed items\\n config: implicitly tag all hub plugins as pluginhub\\n skybox: include twisted league and hosidius POH themes\\n\\nMichael Archer (1):\\n timers: Update stunned Abyssal Sire ID (#12410)\\n\\nSean Patiag (1):\\n achievementdiary: Fix Western Provinces quest requirement\\n\\nTomas Slusny (1):\\n Merge UntradeableItemMapping and ItemMapping\\n\\narthur798 (2):\\n skillcalculator: Add Carpenter's outfit set bonus (#12412)\\n skillcalculator: Add Hallowed sepulchre floors to agility calculator (#12414)\\n\\ndata-dependent (1):\\n mining: Fix gem rock respawn time (#12481)\\n\\njcwhisman (2):\\n ElapsedTimer: Display time in mm:ss format\\n timers: Fix inferno timer starting time\\n
\\n\",\"image\":\"/img/blog/1.6.27-Release/website-tracker-fruit-trees.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/134.2ee33ecd.chunk.js b/static/js/134.b109264c.chunk.js
similarity index 97%
rename from static/js/134.2ee33ecd.chunk.js
rename to static/js/134.b109264c.chunk.js
index 659cd0996..3b5e1b9e3 100644
--- a/static/js/134.2ee33ecd.chunk.js
+++ b/static/js/134.b109264c.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[134],{409:function(e,n){e.exports={title:"1.6.28 Release",description:"Multiple infobox groups, birdhouse loot tracking, and tile labels",author:"Adam",body:'Infoboxes can now be split into multiple groups, and independently positioned\nand rotated. Shift right click an infobox and select Detach
to move an infobox\nto its own group, and Flip
to change the group orientation between vertical\nand horizontal. The groups can be dragged as normal overlays via the usual\nmethod of holding alt. To remove a group, and move all infoboxes in it back to\nthe default group, select the Delete
option.
\n
\nThe loot tracker now tracks loot from birdhouses
\n
\nThe tile marker plugin now optionally allows assocating labels to marked tiles
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe cannon plugin now shows the world your cannon was placed on in the\ninfobox tooltip. \nSome graphical anomalies related to drawing models which are very close to\nor partially behind the camera with GPU on has been fixed. This has also\nreduced the complexity of the GL pipeline, particularly with the\nCompute shaders
option off, so you may find this works for you now if you\nhave buggy drivers. \nThe OSRS Wiki Crowdsourcing plugin \nis now included and enabled by default. This collects anonymous skilling data\nto help improve the OSRS Wiki . \nThe loot tracker now correctly tracks the Grubby chest. \nAn option has been added to outline infobox text, which can improve readability. \nThe item charges plugin now correctly tracks destroying dodgy necklaces, rings of\nforging, and amulets of chemistry. \nA bug causing the farming tracker to incorrectly track the Catherby patches\nhas been fixed. \nExamining large stacks of items now shows digit group separators. \nThe inventory viewer now has a configurable hotkey to toggle the overlay. \nA Use
swap has been added for grimy herbs. \nThe chat filter plugin can now additionally filter game and spam messages. \n \nEnjoy!
\n- Adam
\nWe had 12 contributors this release!
\nAdam (16):\n containable frame: assume jdk 12/13/14 do not have fix for JDK-8231564\n overlay renderer: use isKeyPressed instead of tracking shift key state\n raid plugin: simplify timer infobox logic by overriding render\n gpu: don\'t interpolate texture ids\n overlay renderer: don\'t allow moving dynamic or tooltip overlays\n infobox: add support for multiple infobox groups\n loot tracker: fix tracking grubby chest\n slayer plugin: simplify a few regex patterns\n gpu: use noperspective for hsl interpolation\n loottracker: submit loot when not logged in\n config: Add infobox component outline option\n key manager: move key event logging to trace level\n item charges: fix resetting dodgy necklace, ring of forging, and amulet of chemistry\n examine plugin: format quantity of large item stacks\n gpu: dispose of graphics objects\n ground markers: add tile labels\n\nEric Pratt (1):\n devtools: add movement flags\n\nJack Hodkinson (1):\n Sort plugin search results with closer test matches higher (#12432)\n\nJacob Mischka (1):\n Fix screenshot with hidpi scaling with GPU plugin\n\nJordan Atwood (4):\n banktags: Don\'t lose scroll position when hiding separators\n Move Experience tests to proper test class\n KeyManager: Add debug logging\n util: Remove unused and unneeded methods\n\nMatthew C (5):\n cannon: sort spots alphabetically\n cannon: update mammoth cannon spot\n timers: add world placed to cannon timer tooltip\n inventoryviewer: Add a keybind toggle to hide the overlay.\n runecraft: cleanup, refactor AbyssRifts, updateRifts()\n\nMax Weber (1):\n timetracking: correctly bound Catherby patches\n\nMichal Zielinski (1):\n menu entry swapper: add clean swap\n\nRunemoro (1):\n gpu: replace toScreen function with a projection matrix\n\nSean Patiag (1):\n chatfilter: Add option to filter game chat\n\nSirGirion (1):\n loot tracker: add bird houses\n\nleejt (1):\n Add crowdsourcing plugin\n
\n',image:"/img/blog/1.6.28-Release/infobox.gif"}}}]);
-//# sourceMappingURL=134.2ee33ecd.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[134],{410:function(e,n){e.exports={title:"1.6.28 Release",description:"Multiple infobox groups, birdhouse loot tracking, and tile labels",author:"Adam",body:'Infoboxes can now be split into multiple groups, and independently positioned\nand rotated. Shift right click an infobox and select Detach
to move an infobox\nto its own group, and Flip
to change the group orientation between vertical\nand horizontal. The groups can be dragged as normal overlays via the usual\nmethod of holding alt. To remove a group, and move all infoboxes in it back to\nthe default group, select the Delete
option.
\n
\nThe loot tracker now tracks loot from birdhouses
\n
\nThe tile marker plugin now optionally allows assocating labels to marked tiles
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe cannon plugin now shows the world your cannon was placed on in the\ninfobox tooltip. \nSome graphical anomalies related to drawing models which are very close to\nor partially behind the camera with GPU on has been fixed. This has also\nreduced the complexity of the GL pipeline, particularly with the\nCompute shaders
option off, so you may find this works for you now if you\nhave buggy drivers. \nThe OSRS Wiki Crowdsourcing plugin \nis now included and enabled by default. This collects anonymous skilling data\nto help improve the OSRS Wiki . \nThe loot tracker now correctly tracks the Grubby chest. \nAn option has been added to outline infobox text, which can improve readability. \nThe item charges plugin now correctly tracks destroying dodgy necklaces, rings of\nforging, and amulets of chemistry. \nA bug causing the farming tracker to incorrectly track the Catherby patches\nhas been fixed. \nExamining large stacks of items now shows digit group separators. \nThe inventory viewer now has a configurable hotkey to toggle the overlay. \nA Use
swap has been added for grimy herbs. \nThe chat filter plugin can now additionally filter game and spam messages. \n \nEnjoy!
\n- Adam
\nWe had 12 contributors this release!
\nAdam (16):\n containable frame: assume jdk 12/13/14 do not have fix for JDK-8231564\n overlay renderer: use isKeyPressed instead of tracking shift key state\n raid plugin: simplify timer infobox logic by overriding render\n gpu: don\'t interpolate texture ids\n overlay renderer: don\'t allow moving dynamic or tooltip overlays\n infobox: add support for multiple infobox groups\n loot tracker: fix tracking grubby chest\n slayer plugin: simplify a few regex patterns\n gpu: use noperspective for hsl interpolation\n loottracker: submit loot when not logged in\n config: Add infobox component outline option\n key manager: move key event logging to trace level\n item charges: fix resetting dodgy necklace, ring of forging, and amulet of chemistry\n examine plugin: format quantity of large item stacks\n gpu: dispose of graphics objects\n ground markers: add tile labels\n\nEric Pratt (1):\n devtools: add movement flags\n\nJack Hodkinson (1):\n Sort plugin search results with closer test matches higher (#12432)\n\nJacob Mischka (1):\n Fix screenshot with hidpi scaling with GPU plugin\n\nJordan Atwood (4):\n banktags: Don\'t lose scroll position when hiding separators\n Move Experience tests to proper test class\n KeyManager: Add debug logging\n util: Remove unused and unneeded methods\n\nMatthew C (5):\n cannon: sort spots alphabetically\n cannon: update mammoth cannon spot\n timers: add world placed to cannon timer tooltip\n inventoryviewer: Add a keybind toggle to hide the overlay.\n runecraft: cleanup, refactor AbyssRifts, updateRifts()\n\nMax Weber (1):\n timetracking: correctly bound Catherby patches\n\nMichal Zielinski (1):\n menu entry swapper: add clean swap\n\nRunemoro (1):\n gpu: replace toScreen function with a projection matrix\n\nSean Patiag (1):\n chatfilter: Add option to filter game chat\n\nSirGirion (1):\n loot tracker: add bird houses\n\nleejt (1):\n Add crowdsourcing plugin\n
\n',image:"/img/blog/1.6.28-Release/infobox.gif"}}}]);
+//# sourceMappingURL=134.b109264c.chunk.js.map
\ No newline at end of file
diff --git a/static/js/134.2ee33ecd.chunk.js.map b/static/js/134.b109264c.chunk.js.map
similarity index 98%
rename from static/js/134.2ee33ecd.chunk.js.map
rename to static/js/134.b109264c.chunk.js.map
index bf0532f23..b89c8469f 100644
--- a/static/js/134.2ee33ecd.chunk.js.map
+++ b/static/js/134.b109264c.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-10-07-10-00-1.6.28-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,OAAO,KAAO,8+IAAmgJ,MAAQ","file":"static/js/134.2ee33ecd.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.28 Release\",\"description\":\"Multiple infobox groups, birdhouse loot tracking, and tile labels\",\"author\":\"Adam\",\"body\":\"Infoboxes can now be split into multiple groups, and independently positioned\\nand rotated. Shift right click an infobox and select Detach
to move an infobox\\nto its own group, and Flip
to change the group orientation between vertical\\nand horizontal. The groups can be dragged as normal overlays via the usual\\nmethod of holding alt. To remove a group, and move all infoboxes in it back to\\nthe default group, select the Delete
option.
\\n
\\nThe loot tracker now tracks loot from birdhouses
\\n
\\nThe tile marker plugin now optionally allows assocating labels to marked tiles
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe cannon plugin now shows the world your cannon was placed on in the\\ninfobox tooltip. \\nSome graphical anomalies related to drawing models which are very close to\\nor partially behind the camera with GPU on has been fixed. This has also\\nreduced the complexity of the GL pipeline, particularly with the\\nCompute shaders
option off, so you may find this works for you now if you\\nhave buggy drivers. \\nThe OSRS Wiki Crowdsourcing plugin \\nis now included and enabled by default. This collects anonymous skilling data\\nto help improve the OSRS Wiki . \\nThe loot tracker now correctly tracks the Grubby chest. \\nAn option has been added to outline infobox text, which can improve readability. \\nThe item charges plugin now correctly tracks destroying dodgy necklaces, rings of\\nforging, and amulets of chemistry. \\nA bug causing the farming tracker to incorrectly track the Catherby patches\\nhas been fixed. \\nExamining large stacks of items now shows digit group separators. \\nThe inventory viewer now has a configurable hotkey to toggle the overlay. \\nA Use
swap has been added for grimy herbs. \\nThe chat filter plugin can now additionally filter game and spam messages. \\n \\nEnjoy!
\\n- Adam
\\nWe had 12 contributors this release!
\\nAdam (16):\\n containable frame: assume jdk 12/13/14 do not have fix for JDK-8231564\\n overlay renderer: use isKeyPressed instead of tracking shift key state\\n raid plugin: simplify timer infobox logic by overriding render\\n gpu: don't interpolate texture ids\\n overlay renderer: don't allow moving dynamic or tooltip overlays\\n infobox: add support for multiple infobox groups\\n loot tracker: fix tracking grubby chest\\n slayer plugin: simplify a few regex patterns\\n gpu: use noperspective for hsl interpolation\\n loottracker: submit loot when not logged in\\n config: Add infobox component outline option\\n key manager: move key event logging to trace level\\n item charges: fix resetting dodgy necklace, ring of forging, and amulet of chemistry\\n examine plugin: format quantity of large item stacks\\n gpu: dispose of graphics objects\\n ground markers: add tile labels\\n\\nEric Pratt (1):\\n devtools: add movement flags\\n\\nJack Hodkinson (1):\\n Sort plugin search results with closer test matches higher (#12432)\\n\\nJacob Mischka (1):\\n Fix screenshot with hidpi scaling with GPU plugin\\n\\nJordan Atwood (4):\\n banktags: Don't lose scroll position when hiding separators\\n Move Experience tests to proper test class\\n KeyManager: Add debug logging\\n util: Remove unused and unneeded methods\\n\\nMatthew C (5):\\n cannon: sort spots alphabetically\\n cannon: update mammoth cannon spot\\n timers: add world placed to cannon timer tooltip\\n inventoryviewer: Add a keybind toggle to hide the overlay.\\n runecraft: cleanup, refactor AbyssRifts, updateRifts()\\n\\nMax Weber (1):\\n timetracking: correctly bound Catherby patches\\n\\nMichal Zielinski (1):\\n menu entry swapper: add clean swap\\n\\nRunemoro (1):\\n gpu: replace toScreen function with a projection matrix\\n\\nSean Patiag (1):\\n chatfilter: Add option to filter game chat\\n\\nSirGirion (1):\\n loot tracker: add bird houses\\n\\nleejt (1):\\n Add crowdsourcing plugin\\n
\\n\",\"image\":\"/img/blog/1.6.28-Release/infobox.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-10-07-10-00-1.6.28-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,OAAO,KAAO,8+IAAmgJ,MAAQ","file":"static/js/134.b109264c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.28 Release\",\"description\":\"Multiple infobox groups, birdhouse loot tracking, and tile labels\",\"author\":\"Adam\",\"body\":\"Infoboxes can now be split into multiple groups, and independently positioned\\nand rotated. Shift right click an infobox and select Detach
to move an infobox\\nto its own group, and Flip
to change the group orientation between vertical\\nand horizontal. The groups can be dragged as normal overlays via the usual\\nmethod of holding alt. To remove a group, and move all infoboxes in it back to\\nthe default group, select the Delete
option.
\\n
\\nThe loot tracker now tracks loot from birdhouses
\\n
\\nThe tile marker plugin now optionally allows assocating labels to marked tiles
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe cannon plugin now shows the world your cannon was placed on in the\\ninfobox tooltip. \\nSome graphical anomalies related to drawing models which are very close to\\nor partially behind the camera with GPU on has been fixed. This has also\\nreduced the complexity of the GL pipeline, particularly with the\\nCompute shaders
option off, so you may find this works for you now if you\\nhave buggy drivers. \\nThe OSRS Wiki Crowdsourcing plugin \\nis now included and enabled by default. This collects anonymous skilling data\\nto help improve the OSRS Wiki . \\nThe loot tracker now correctly tracks the Grubby chest. \\nAn option has been added to outline infobox text, which can improve readability. \\nThe item charges plugin now correctly tracks destroying dodgy necklaces, rings of\\nforging, and amulets of chemistry. \\nA bug causing the farming tracker to incorrectly track the Catherby patches\\nhas been fixed. \\nExamining large stacks of items now shows digit group separators. \\nThe inventory viewer now has a configurable hotkey to toggle the overlay. \\nA Use
swap has been added for grimy herbs. \\nThe chat filter plugin can now additionally filter game and spam messages. \\n \\nEnjoy!
\\n- Adam
\\nWe had 12 contributors this release!
\\nAdam (16):\\n containable frame: assume jdk 12/13/14 do not have fix for JDK-8231564\\n overlay renderer: use isKeyPressed instead of tracking shift key state\\n raid plugin: simplify timer infobox logic by overriding render\\n gpu: don't interpolate texture ids\\n overlay renderer: don't allow moving dynamic or tooltip overlays\\n infobox: add support for multiple infobox groups\\n loot tracker: fix tracking grubby chest\\n slayer plugin: simplify a few regex patterns\\n gpu: use noperspective for hsl interpolation\\n loottracker: submit loot when not logged in\\n config: Add infobox component outline option\\n key manager: move key event logging to trace level\\n item charges: fix resetting dodgy necklace, ring of forging, and amulet of chemistry\\n examine plugin: format quantity of large item stacks\\n gpu: dispose of graphics objects\\n ground markers: add tile labels\\n\\nEric Pratt (1):\\n devtools: add movement flags\\n\\nJack Hodkinson (1):\\n Sort plugin search results with closer test matches higher (#12432)\\n\\nJacob Mischka (1):\\n Fix screenshot with hidpi scaling with GPU plugin\\n\\nJordan Atwood (4):\\n banktags: Don't lose scroll position when hiding separators\\n Move Experience tests to proper test class\\n KeyManager: Add debug logging\\n util: Remove unused and unneeded methods\\n\\nMatthew C (5):\\n cannon: sort spots alphabetically\\n cannon: update mammoth cannon spot\\n timers: add world placed to cannon timer tooltip\\n inventoryviewer: Add a keybind toggle to hide the overlay.\\n runecraft: cleanup, refactor AbyssRifts, updateRifts()\\n\\nMax Weber (1):\\n timetracking: correctly bound Catherby patches\\n\\nMichal Zielinski (1):\\n menu entry swapper: add clean swap\\n\\nRunemoro (1):\\n gpu: replace toScreen function with a projection matrix\\n\\nSean Patiag (1):\\n chatfilter: Add option to filter game chat\\n\\nSirGirion (1):\\n loot tracker: add bird houses\\n\\nleejt (1):\\n Add crowdsourcing plugin\\n
\\n\",\"image\":\"/img/blog/1.6.28-Release/infobox.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/135.a4f578ef.chunk.js b/static/js/135.a5fedc11.chunk.js
similarity index 99%
rename from static/js/135.a4f578ef.chunk.js
rename to static/js/135.a5fedc11.chunk.js
index 12355e566..4abb9658a 100644
--- a/static/js/135.a4f578ef.chunk.js
+++ b/static/js/135.a5fedc11.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[135],{410:function(e,n){e.exports={title:"1.6.29, 1.6.30, and 1.6.31 Releases",description:"New status bars, colorblind GPU filters, and merch store",author:"Jordan",body:'The Status Bars plugin has seen a touch-up\nas you can now choose between hit points, prayer points, special attack energy, or run energy for\nyour left and right bars. Additionally, the heart icon for the hit points bar changes colors based\non your poison status, just like is done in the Poison\nplugin . Thanks to\n@Malfuryent for further enhancing this plugin!
\n
\nColorblind options have been added to the GPU\nplugin to assist users who have common types of color blindness.\nThanks to @benpoulson for porting\n@ofidaner\'s colorblindness correction filters for use in RuneLite!
\n\n\n\nProtanope \nDeuteranope \nTritanope \n \n \n\n\n \n \n \n \n \n
\nWe have opened a merch store where you can purchase shirts,\nsweatshirts, and mugs bearing the RuneLite logo to show your support.
\n
\nAn updated launcher was released yesterday to fix an issue preventing RuneLite\nfrom maximizing correctly on hidpi displays on Windows, where it would not take\nup the full screen. If you have thie issue, download the newer launcher (version 2.1.5)\nfrom runelite.net .
\nThe website\'s Plugin Hub listing can now sort plugins by their\nupdate time or the time they were added in addition to by name and number of active installs.
\nWe are aware the raids scouter is broken with the new large map pools from today, and will work on fixing it for a later update.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe League Chat Icons plugin has been removed, as it now exists in the vanilla client. \nXP Globes can now be stacked vertically,\nusing the same method to flip their orientation as infoboxes (shift and right-click). \nWe have removed our website\'s XP tracker in favor of pointing to Wise Old Man , a tracker created\nand maintained by Psikoi, a RuneLite contributor . The XP Tracker\nplugin has been updated accordingly. \nThe Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\noverlay system \nLeague relics modifying your XP rates and health regeneration rates are now accounted for in the\nXP Tracker and Regeneration\nMeter plugins respectively \nYou can check your league points using the newly-added !lp
command. Other chat commands have been\nupdated to reference the leagues hiscores when used on league worlds \nThe new league home/minigames teleport animation will now trigger the appropriate teleport\ntimer \nSkilling plugins such as Fishing ,\nMining , and\nWoodcutting will show the proper activity\nstatus when using the new League infernal tools \nGround items now have their overlays\nat the proper height for items placed on surfaces that are not ground-height, such as on tables \nChat Timestamps are now shown for all\ntypes of chat \nThe Ctrl key can now be remapped with the Key Remapping\nplugin \nSourhogs are now recognized as a task by the Slayer\nplugin . Additionally, Cyclops are now\nrecognized as an alternative monster for Hill giant tasks \nThe Menu Entry Swapper plugin now\noffers swaps for the Prayer book\'s "Recite-prayer" option and withdraw/deposit swaps for Chambers\nof Xeric storage chests \nThe progress of your compost bins is now shown in the Time Tracking\nplugin \nYour cannon ground overlay is no longer shown\nif you are on a different world than the one where your cannon was placed \nKourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\nthe World Map plugin \nYour anisotropic filtering setting is no longer reset to 0 when toggling the GPU\nplugin \nItem overlays are now shown for items in trade and duel inventory screens \nThe Time Tracking plugin better handles\nyour contract state for crops with health checks, and for diseased or dead crops \nYour XP Tracker goal time now has several\nformat options \nYou can now hide dark manuscripts in the Kourend Library\nplugin . Additionally, the Varlamore\nEnvoy book is no longer shown when not completing the Depths of Despair quest (as it cannot be\nobtained otherwise), and searching a bookcase where it would be no longer resets your library\nrotation information \nYou can now configure the Discord plugin\'s \ntime to display total time ingame, time elapsed for your current activity, or hidden entirely \nThe Motherlode Mine plugin now shows\nan overlay on broken water wheel struts, and can display collected ores and gems as icons rather\nthan as text \nThe Nightmare Zone\'s overload potion timer and notification are now properly cleared when leaving\nthe minigame \nChronicle charges are now tracked via the Item Charges\nplugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 37 contributors in these releases!
\nAdam (18):\n chat commands: unregister bh and lms commands\n Add pluginhub user count tracking\n xptracker: change online tracker link to wiseoldman\n progress bar: optimize bar drawing\n pluginhub controller: fix scheduled task delay\n xp tracker: default pause on logout to on\n api: move isDead from NPC to Actor\n gpu: remove unused lastViewportWidth/Height fields\n client: remove league chat icons plugin\n key remapping: don\'t remap space in options dialog\n spriteid: remove duplicated run icon\n client: add PMD source code analyzer\n item charges test: remove unnecessary eq matchers\n antidrag: set bank drag delay when bankside inv is opened too\n ci: update glslang to 8.13.3743\n Fix offline worlds showing population of 65535\n chat commands: format lp score\n wildcard matcher: quote replacement to prevent the matcher from replacing group references\n\nBen Poulson (1):\n gpu: add colorblind mode\n\nBram91 (2):\n XPGlobes: allow stacking vertically.\n Make Volcanic mine widgets layoutable\n\nBroooklyn (5):\n chatcommands: add shorthand names for all agility courses\n discord: add random events regions\n worldmap: add Kourend task and unlock tooltip descriptions\n worldmap: fix typos in "transportation"\n worldmap: add Wilderness Slayer Cave entrances\n\nCaleb Allen (1):\n gpu: fix anisotropic filtering resetting to 0 after plugin is toggled\n\nCryslacks (1):\n Add trade and duel inventory to widget item inventory overlay\n\nCyborger1 (2):\n farming: Fix harvestable health-check crops contract status\n farming: Fix contract status for plots with diseased/dead crops\n\nDasgust (1):\n xp tracker: add goal time formatting option\n\nGamma91 (1):\n HotColdLocation: Center a location spot (#12657)\n\nHexagon (1):\n cannonplugin: Check world when drawing overlay\n\nHydrox6 (2):\n chat timestamps: add timestamps for all message types\n add support for trailblazer tools\n\nJacob Mischka (1):\n overlayrenderer: Make minimum overlay size configurable per-overlay (#12611)\n\nJoey Wilson (1):\n Add item mapping for unidentified minerals (#12552)\n\nJoona (1):\n grounditems: Render ground items tile overlay at correct height (#12586)\n\nJordan Atwood (4):\n kourendlibrary: Don\'t reset state when not finding Varlamore Envoy\n Move heart sprite recolors to public package\n nightmarezone: Set absorption notification var on startup\n devtools: Render world map location above region overlay\n\nKonrad Kozera (1):\n ImageUtil: add error log with path (#12631)\n\nMalfuryent (3):\n statusbars: Display while in fixed viewport bank\n statubars: Add left/right customization options\n statusbars: Add special & run energy bar types\n\nMatthew C (1):\n discord: Fix action timeout, add in game time elapsed option (#12471)\n\nMatthew Zegar (1):\n key remapping: add control remap\n\nMax Weber (6):\n experiencedrop: dont npe when trying to prayer highlight noncombat drops\n kourendlibrary: add config to hide dark manuscripts\n rl-client: update changed item names\n wiki: remove remainder of quest/diary lookup code\n wiki: don\'t throw when trying to optarget skills\n wiki: Always include item names in widget optarget lookups\n\nMinhs2 (1):\n slayer: Add Sourhog task (#12622)\n\nPlondrein (1):\n motherlode: Add overlay for broken water wheel struts\n\nRansomTime (1):\n slayer plugin: add Cyclops to hill giants task list\n\nRon Young (1):\n banktags: don\'t allow colon in tagtab names\n\nSean Patiag (2):\n timers: Fix NMZ Overload timer not disappearing\n nightmarezone: Clear pending overload notifications outside NMZ\n\nSirGirion (3):\n motherlode: Add option to show collected ore/gem icons\n timetracking: add compost bin time trackers (#12619)\n chatcommands: handle league accounts properly\n\nThePharros (1):\n menu entry swapper: add recite-prayer swap\n\nTomas Slusny (2):\n Switch to GitHub actions\n Link to CI workflow from CI badge\n\nTrey (1):\n kourendlibrary: hide Varlamore Envoy outside of the Depths of Despair\n\nUnmoon (1):\n item charges: add Chronicle\n\nUsman Akhtar (1):\n opponent info: fix npcindicator color not working with show opponents in menu\n\ndekvall (6):\n chat-commands: add league points command\n xp-tracker: support league & dmm modifiers for kills remaining\n xp: add support for wise-old-man trailblazer\n timers: add league home tele\n regenmeter: add support for fluid strikes\n xptracker: add league relic modifiers\n\nmelkypie (1):\n motherlode: allow sack overlay to be resizable\n\npaymon123 (1):\n ConfigManager: Fix NPE when resetting configs with null default\n\npilino1234 (1):\n Worldhopper: Update league world color for Trailblazer\n\nsam (1):\n menu entry swapper: add withdraw/deposit swap for chambers of xeric storage\n\nwinterdaze (1):\n WidgetOverlay: make nightmare pillar health widget moveable\n
\n',image:"/img/blog/1.6.31-Release/new-status-bars.png"}}}]);
-//# sourceMappingURL=135.a4f578ef.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[135],{411:function(e,n){e.exports={title:"1.6.29, 1.6.30, and 1.6.31 Releases",description:"New status bars, colorblind GPU filters, and merch store",author:"Jordan",body:'The Status Bars plugin has seen a touch-up\nas you can now choose between hit points, prayer points, special attack energy, or run energy for\nyour left and right bars. Additionally, the heart icon for the hit points bar changes colors based\non your poison status, just like is done in the Poison\nplugin . Thanks to\n@Malfuryent for further enhancing this plugin!
\n
\nColorblind options have been added to the GPU\nplugin to assist users who have common types of color blindness.\nThanks to @benpoulson for porting\n@ofidaner\'s colorblindness correction filters for use in RuneLite!
\n\n\n\nProtanope \nDeuteranope \nTritanope \n \n \n\n\n \n \n \n \n \n
\nWe have opened a merch store where you can purchase shirts,\nsweatshirts, and mugs bearing the RuneLite logo to show your support.
\n
\nAn updated launcher was released yesterday to fix an issue preventing RuneLite\nfrom maximizing correctly on hidpi displays on Windows, where it would not take\nup the full screen. If you have thie issue, download the newer launcher (version 2.1.5)\nfrom runelite.net .
\nThe website\'s Plugin Hub listing can now sort plugins by their\nupdate time or the time they were added in addition to by name and number of active installs.
\nWe are aware the raids scouter is broken with the new large map pools from today, and will work on fixing it for a later update.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe League Chat Icons plugin has been removed, as it now exists in the vanilla client. \nXP Globes can now be stacked vertically,\nusing the same method to flip their orientation as infoboxes (shift and right-click). \nWe have removed our website\'s XP tracker in favor of pointing to Wise Old Man , a tracker created\nand maintained by Psikoi, a RuneLite contributor . The XP Tracker\nplugin has been updated accordingly. \nThe Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\noverlay system \nLeague relics modifying your XP rates and health regeneration rates are now accounted for in the\nXP Tracker and Regeneration\nMeter plugins respectively \nYou can check your league points using the newly-added !lp
command. Other chat commands have been\nupdated to reference the leagues hiscores when used on league worlds \nThe new league home/minigames teleport animation will now trigger the appropriate teleport\ntimer \nSkilling plugins such as Fishing ,\nMining , and\nWoodcutting will show the proper activity\nstatus when using the new League infernal tools \nGround items now have their overlays\nat the proper height for items placed on surfaces that are not ground-height, such as on tables \nChat Timestamps are now shown for all\ntypes of chat \nThe Ctrl key can now be remapped with the Key Remapping\nplugin \nSourhogs are now recognized as a task by the Slayer\nplugin . Additionally, Cyclops are now\nrecognized as an alternative monster for Hill giant tasks \nThe Menu Entry Swapper plugin now\noffers swaps for the Prayer book\'s "Recite-prayer" option and withdraw/deposit swaps for Chambers\nof Xeric storage chests \nThe progress of your compost bins is now shown in the Time Tracking\nplugin \nYour cannon ground overlay is no longer shown\nif you are on a different world than the one where your cannon was placed \nKourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\nthe World Map plugin \nYour anisotropic filtering setting is no longer reset to 0 when toggling the GPU\nplugin \nItem overlays are now shown for items in trade and duel inventory screens \nThe Time Tracking plugin better handles\nyour contract state for crops with health checks, and for diseased or dead crops \nYour XP Tracker goal time now has several\nformat options \nYou can now hide dark manuscripts in the Kourend Library\nplugin . Additionally, the Varlamore\nEnvoy book is no longer shown when not completing the Depths of Despair quest (as it cannot be\nobtained otherwise), and searching a bookcase where it would be no longer resets your library\nrotation information \nYou can now configure the Discord plugin\'s \ntime to display total time ingame, time elapsed for your current activity, or hidden entirely \nThe Motherlode Mine plugin now shows\nan overlay on broken water wheel struts, and can display collected ores and gems as icons rather\nthan as text \nThe Nightmare Zone\'s overload potion timer and notification are now properly cleared when leaving\nthe minigame \nChronicle charges are now tracked via the Item Charges\nplugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 37 contributors in these releases!
\nAdam (18):\n chat commands: unregister bh and lms commands\n Add pluginhub user count tracking\n xptracker: change online tracker link to wiseoldman\n progress bar: optimize bar drawing\n pluginhub controller: fix scheduled task delay\n xp tracker: default pause on logout to on\n api: move isDead from NPC to Actor\n gpu: remove unused lastViewportWidth/Height fields\n client: remove league chat icons plugin\n key remapping: don\'t remap space in options dialog\n spriteid: remove duplicated run icon\n client: add PMD source code analyzer\n item charges test: remove unnecessary eq matchers\n antidrag: set bank drag delay when bankside inv is opened too\n ci: update glslang to 8.13.3743\n Fix offline worlds showing population of 65535\n chat commands: format lp score\n wildcard matcher: quote replacement to prevent the matcher from replacing group references\n\nBen Poulson (1):\n gpu: add colorblind mode\n\nBram91 (2):\n XPGlobes: allow stacking vertically.\n Make Volcanic mine widgets layoutable\n\nBroooklyn (5):\n chatcommands: add shorthand names for all agility courses\n discord: add random events regions\n worldmap: add Kourend task and unlock tooltip descriptions\n worldmap: fix typos in "transportation"\n worldmap: add Wilderness Slayer Cave entrances\n\nCaleb Allen (1):\n gpu: fix anisotropic filtering resetting to 0 after plugin is toggled\n\nCryslacks (1):\n Add trade and duel inventory to widget item inventory overlay\n\nCyborger1 (2):\n farming: Fix harvestable health-check crops contract status\n farming: Fix contract status for plots with diseased/dead crops\n\nDasgust (1):\n xp tracker: add goal time formatting option\n\nGamma91 (1):\n HotColdLocation: Center a location spot (#12657)\n\nHexagon (1):\n cannonplugin: Check world when drawing overlay\n\nHydrox6 (2):\n chat timestamps: add timestamps for all message types\n add support for trailblazer tools\n\nJacob Mischka (1):\n overlayrenderer: Make minimum overlay size configurable per-overlay (#12611)\n\nJoey Wilson (1):\n Add item mapping for unidentified minerals (#12552)\n\nJoona (1):\n grounditems: Render ground items tile overlay at correct height (#12586)\n\nJordan Atwood (4):\n kourendlibrary: Don\'t reset state when not finding Varlamore Envoy\n Move heart sprite recolors to public package\n nightmarezone: Set absorption notification var on startup\n devtools: Render world map location above region overlay\n\nKonrad Kozera (1):\n ImageUtil: add error log with path (#12631)\n\nMalfuryent (3):\n statusbars: Display while in fixed viewport bank\n statubars: Add left/right customization options\n statusbars: Add special & run energy bar types\n\nMatthew C (1):\n discord: Fix action timeout, add in game time elapsed option (#12471)\n\nMatthew Zegar (1):\n key remapping: add control remap\n\nMax Weber (6):\n experiencedrop: dont npe when trying to prayer highlight noncombat drops\n kourendlibrary: add config to hide dark manuscripts\n rl-client: update changed item names\n wiki: remove remainder of quest/diary lookup code\n wiki: don\'t throw when trying to optarget skills\n wiki: Always include item names in widget optarget lookups\n\nMinhs2 (1):\n slayer: Add Sourhog task (#12622)\n\nPlondrein (1):\n motherlode: Add overlay for broken water wheel struts\n\nRansomTime (1):\n slayer plugin: add Cyclops to hill giants task list\n\nRon Young (1):\n banktags: don\'t allow colon in tagtab names\n\nSean Patiag (2):\n timers: Fix NMZ Overload timer not disappearing\n nightmarezone: Clear pending overload notifications outside NMZ\n\nSirGirion (3):\n motherlode: Add option to show collected ore/gem icons\n timetracking: add compost bin time trackers (#12619)\n chatcommands: handle league accounts properly\n\nThePharros (1):\n menu entry swapper: add recite-prayer swap\n\nTomas Slusny (2):\n Switch to GitHub actions\n Link to CI workflow from CI badge\n\nTrey (1):\n kourendlibrary: hide Varlamore Envoy outside of the Depths of Despair\n\nUnmoon (1):\n item charges: add Chronicle\n\nUsman Akhtar (1):\n opponent info: fix npcindicator color not working with show opponents in menu\n\ndekvall (6):\n chat-commands: add league points command\n xp-tracker: support league & dmm modifiers for kills remaining\n xp: add support for wise-old-man trailblazer\n timers: add league home tele\n regenmeter: add support for fluid strikes\n xptracker: add league relic modifiers\n\nmelkypie (1):\n motherlode: allow sack overlay to be resizable\n\npaymon123 (1):\n ConfigManager: Fix NPE when resetting configs with null default\n\npilino1234 (1):\n Worldhopper: Update league world color for Trailblazer\n\nsam (1):\n menu entry swapper: add withdraw/deposit swap for chambers of xeric storage\n\nwinterdaze (1):\n WidgetOverlay: make nightmare pillar health widget moveable\n
\n',image:"/img/blog/1.6.31-Release/new-status-bars.png"}}}]);
+//# sourceMappingURL=135.a5fedc11.chunk.js.map
\ No newline at end of file
diff --git a/static/js/135.a4f578ef.chunk.js.map b/static/js/135.a5fedc11.chunk.js.map
similarity index 99%
rename from static/js/135.a4f578ef.chunk.js.map
rename to static/js/135.a5fedc11.chunk.js.map
index d858c42da..2d3e1399c 100644
--- a/static/js/135.a4f578ef.chunk.js.map
+++ b/static/js/135.a5fedc11.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-11-11-10-00-1.6.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,2DAA2D,OAAS,SAAS,KAAO,8ubAAs9b,MAAQ","file":"static/js/135.a4f578ef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.29, 1.6.30, and 1.6.31 Releases\",\"description\":\"New status bars, colorblind GPU filters, and merch store\",\"author\":\"Jordan\",\"body\":\"The Status Bars plugin has seen a touch-up\\nas you can now choose between hit points, prayer points, special attack energy, or run energy for\\nyour left and right bars. Additionally, the heart icon for the hit points bar changes colors based\\non your poison status, just like is done in the Poison\\nplugin . Thanks to\\n@Malfuryent for further enhancing this plugin!
\\n
\\nColorblind options have been added to the GPU\\nplugin to assist users who have common types of color blindness.\\nThanks to @benpoulson for porting\\n@ofidaner's colorblindness correction filters for use in RuneLite!
\\n\\n\\n\\nProtanope \\nDeuteranope \\nTritanope \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nWe have opened a merch store where you can purchase shirts,\\nsweatshirts, and mugs bearing the RuneLite logo to show your support.
\\n
\\nAn updated launcher was released yesterday to fix an issue preventing RuneLite\\nfrom maximizing correctly on hidpi displays on Windows, where it would not take\\nup the full screen. If you have thie issue, download the newer launcher (version 2.1.5)\\nfrom runelite.net .
\\nThe website's Plugin Hub listing can now sort plugins by their\\nupdate time or the time they were added in addition to by name and number of active installs.
\\nWe are aware the raids scouter is broken with the new large map pools from today, and will work on fixing it for a later update.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe League Chat Icons plugin has been removed, as it now exists in the vanilla client. \\nXP Globes can now be stacked vertically,\\nusing the same method to flip their orientation as infoboxes (shift and right-click). \\nWe have removed our website's XP tracker in favor of pointing to Wise Old Man , a tracker created\\nand maintained by Psikoi, a RuneLite contributor . The XP Tracker\\nplugin has been updated accordingly. \\nThe Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\\noverlay system \\nLeague relics modifying your XP rates and health regeneration rates are now accounted for in the\\nXP Tracker and Regeneration\\nMeter plugins respectively \\nYou can check your league points using the newly-added !lp
command. Other chat commands have been\\nupdated to reference the leagues hiscores when used on league worlds \\nThe new league home/minigames teleport animation will now trigger the appropriate teleport\\ntimer \\nSkilling plugins such as Fishing ,\\nMining , and\\nWoodcutting will show the proper activity\\nstatus when using the new League infernal tools \\nGround items now have their overlays\\nat the proper height for items placed on surfaces that are not ground-height, such as on tables \\nChat Timestamps are now shown for all\\ntypes of chat \\nThe Ctrl key can now be remapped with the Key Remapping\\nplugin \\nSourhogs are now recognized as a task by the Slayer\\nplugin . Additionally, Cyclops are now\\nrecognized as an alternative monster for Hill giant tasks \\nThe Menu Entry Swapper plugin now\\noffers swaps for the Prayer book's "Recite-prayer" option and withdraw/deposit swaps for Chambers\\nof Xeric storage chests \\nThe progress of your compost bins is now shown in the Time Tracking\\nplugin \\nYour cannon ground overlay is no longer shown\\nif you are on a different world than the one where your cannon was placed \\nKourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\\nthe World Map plugin \\nYour anisotropic filtering setting is no longer reset to 0 when toggling the GPU\\nplugin \\nItem overlays are now shown for items in trade and duel inventory screens \\nThe Time Tracking plugin better handles\\nyour contract state for crops with health checks, and for diseased or dead crops \\nYour XP Tracker goal time now has several\\nformat options \\nYou can now hide dark manuscripts in the Kourend Library\\nplugin . Additionally, the Varlamore\\nEnvoy book is no longer shown when not completing the Depths of Despair quest (as it cannot be\\nobtained otherwise), and searching a bookcase where it would be no longer resets your library\\nrotation information \\nYou can now configure the Discord plugin's \\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely \\nThe Motherlode Mine plugin now shows\\nan overlay on broken water wheel struts, and can display collected ores and gems as icons rather\\nthan as text \\nThe Nightmare Zone's overload potion timer and notification are now properly cleared when leaving\\nthe minigame \\nChronicle charges are now tracked via the Item Charges\\nplugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 37 contributors in these releases!
\\nAdam (18):\\n chat commands: unregister bh and lms commands\\n Add pluginhub user count tracking\\n xptracker: change online tracker link to wiseoldman\\n progress bar: optimize bar drawing\\n pluginhub controller: fix scheduled task delay\\n xp tracker: default pause on logout to on\\n api: move isDead from NPC to Actor\\n gpu: remove unused lastViewportWidth/Height fields\\n client: remove league chat icons plugin\\n key remapping: don't remap space in options dialog\\n spriteid: remove duplicated run icon\\n client: add PMD source code analyzer\\n item charges test: remove unnecessary eq matchers\\n antidrag: set bank drag delay when bankside inv is opened too\\n ci: update glslang to 8.13.3743\\n Fix offline worlds showing population of 65535\\n chat commands: format lp score\\n wildcard matcher: quote replacement to prevent the matcher from replacing group references\\n\\nBen Poulson (1):\\n gpu: add colorblind mode\\n\\nBram91 (2):\\n XPGlobes: allow stacking vertically.\\n Make Volcanic mine widgets layoutable\\n\\nBroooklyn (5):\\n chatcommands: add shorthand names for all agility courses\\n discord: add random events regions\\n worldmap: add Kourend task and unlock tooltip descriptions\\n worldmap: fix typos in "transportation"\\n worldmap: add Wilderness Slayer Cave entrances\\n\\nCaleb Allen (1):\\n gpu: fix anisotropic filtering resetting to 0 after plugin is toggled\\n\\nCryslacks (1):\\n Add trade and duel inventory to widget item inventory overlay\\n\\nCyborger1 (2):\\n farming: Fix harvestable health-check crops contract status\\n farming: Fix contract status for plots with diseased/dead crops\\n\\nDasgust (1):\\n xp tracker: add goal time formatting option\\n\\nGamma91 (1):\\n HotColdLocation: Center a location spot (#12657)\\n\\nHexagon (1):\\n cannonplugin: Check world when drawing overlay\\n\\nHydrox6 (2):\\n chat timestamps: add timestamps for all message types\\n add support for trailblazer tools\\n\\nJacob Mischka (1):\\n overlayrenderer: Make minimum overlay size configurable per-overlay (#12611)\\n\\nJoey Wilson (1):\\n Add item mapping for unidentified minerals (#12552)\\n\\nJoona (1):\\n grounditems: Render ground items tile overlay at correct height (#12586)\\n\\nJordan Atwood (4):\\n kourendlibrary: Don't reset state when not finding Varlamore Envoy\\n Move heart sprite recolors to public package\\n nightmarezone: Set absorption notification var on startup\\n devtools: Render world map location above region overlay\\n\\nKonrad Kozera (1):\\n ImageUtil: add error log with path (#12631)\\n\\nMalfuryent (3):\\n statusbars: Display while in fixed viewport bank\\n statubars: Add left/right customization options\\n statusbars: Add special & run energy bar types\\n\\nMatthew C (1):\\n discord: Fix action timeout, add in game time elapsed option (#12471)\\n\\nMatthew Zegar (1):\\n key remapping: add control remap\\n\\nMax Weber (6):\\n experiencedrop: dont npe when trying to prayer highlight noncombat drops\\n kourendlibrary: add config to hide dark manuscripts\\n rl-client: update changed item names\\n wiki: remove remainder of quest/diary lookup code\\n wiki: don't throw when trying to optarget skills\\n wiki: Always include item names in widget optarget lookups\\n\\nMinhs2 (1):\\n slayer: Add Sourhog task (#12622)\\n\\nPlondrein (1):\\n motherlode: Add overlay for broken water wheel struts\\n\\nRansomTime (1):\\n slayer plugin: add Cyclops to hill giants task list\\n\\nRon Young (1):\\n banktags: don't allow colon in tagtab names\\n\\nSean Patiag (2):\\n timers: Fix NMZ Overload timer not disappearing\\n nightmarezone: Clear pending overload notifications outside NMZ\\n\\nSirGirion (3):\\n motherlode: Add option to show collected ore/gem icons\\n timetracking: add compost bin time trackers (#12619)\\n chatcommands: handle league accounts properly\\n\\nThePharros (1):\\n menu entry swapper: add recite-prayer swap\\n\\nTomas Slusny (2):\\n Switch to GitHub actions\\n Link to CI workflow from CI badge\\n\\nTrey (1):\\n kourendlibrary: hide Varlamore Envoy outside of the Depths of Despair\\n\\nUnmoon (1):\\n item charges: add Chronicle\\n\\nUsman Akhtar (1):\\n opponent info: fix npcindicator color not working with show opponents in menu\\n\\ndekvall (6):\\n chat-commands: add league points command\\n xp-tracker: support league & dmm modifiers for kills remaining\\n xp: add support for wise-old-man trailblazer\\n timers: add league home tele\\n regenmeter: add support for fluid strikes\\n xptracker: add league relic modifiers\\n\\nmelkypie (1):\\n motherlode: allow sack overlay to be resizable\\n\\npaymon123 (1):\\n ConfigManager: Fix NPE when resetting configs with null default\\n\\npilino1234 (1):\\n Worldhopper: Update league world color for Trailblazer\\n\\nsam (1):\\n menu entry swapper: add withdraw/deposit swap for chambers of xeric storage\\n\\nwinterdaze (1):\\n WidgetOverlay: make nightmare pillar health widget moveable\\n
\\n\",\"image\":\"/img/blog/1.6.31-Release/new-status-bars.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-11-11-10-00-1.6.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,2DAA2D,OAAS,SAAS,KAAO,8ubAAs9b,MAAQ","file":"static/js/135.a5fedc11.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.29, 1.6.30, and 1.6.31 Releases\",\"description\":\"New status bars, colorblind GPU filters, and merch store\",\"author\":\"Jordan\",\"body\":\"The Status Bars plugin has seen a touch-up\\nas you can now choose between hit points, prayer points, special attack energy, or run energy for\\nyour left and right bars. Additionally, the heart icon for the hit points bar changes colors based\\non your poison status, just like is done in the Poison\\nplugin . Thanks to\\n@Malfuryent for further enhancing this plugin!
\\n
\\nColorblind options have been added to the GPU\\nplugin to assist users who have common types of color blindness.\\nThanks to @benpoulson for porting\\n@ofidaner's colorblindness correction filters for use in RuneLite!
\\n\\n\\n\\nProtanope \\nDeuteranope \\nTritanope \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nWe have opened a merch store where you can purchase shirts,\\nsweatshirts, and mugs bearing the RuneLite logo to show your support.
\\n
\\nAn updated launcher was released yesterday to fix an issue preventing RuneLite\\nfrom maximizing correctly on hidpi displays on Windows, where it would not take\\nup the full screen. If you have thie issue, download the newer launcher (version 2.1.5)\\nfrom runelite.net .
\\nThe website's Plugin Hub listing can now sort plugins by their\\nupdate time or the time they were added in addition to by name and number of active installs.
\\nWe are aware the raids scouter is broken with the new large map pools from today, and will work on fixing it for a later update.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe League Chat Icons plugin has been removed, as it now exists in the vanilla client. \\nXP Globes can now be stacked vertically,\\nusing the same method to flip their orientation as infoboxes (shift and right-click). \\nWe have removed our website's XP tracker in favor of pointing to Wise Old Man , a tracker created\\nand maintained by Psikoi, a RuneLite contributor . The XP Tracker\\nplugin has been updated accordingly. \\nThe Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\\noverlay system \\nLeague relics modifying your XP rates and health regeneration rates are now accounted for in the\\nXP Tracker and Regeneration\\nMeter plugins respectively \\nYou can check your league points using the newly-added !lp
command. Other chat commands have been\\nupdated to reference the leagues hiscores when used on league worlds \\nThe new league home/minigames teleport animation will now trigger the appropriate teleport\\ntimer \\nSkilling plugins such as Fishing ,\\nMining , and\\nWoodcutting will show the proper activity\\nstatus when using the new League infernal tools \\nGround items now have their overlays\\nat the proper height for items placed on surfaces that are not ground-height, such as on tables \\nChat Timestamps are now shown for all\\ntypes of chat \\nThe Ctrl key can now be remapped with the Key Remapping\\nplugin \\nSourhogs are now recognized as a task by the Slayer\\nplugin . Additionally, Cyclops are now\\nrecognized as an alternative monster for Hill giant tasks \\nThe Menu Entry Swapper plugin now\\noffers swaps for the Prayer book's "Recite-prayer" option and withdraw/deposit swaps for Chambers\\nof Xeric storage chests \\nThe progress of your compost bins is now shown in the Time Tracking\\nplugin \\nYour cannon ground overlay is no longer shown\\nif you are on a different world than the one where your cannon was placed \\nKourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\\nthe World Map plugin \\nYour anisotropic filtering setting is no longer reset to 0 when toggling the GPU\\nplugin \\nItem overlays are now shown for items in trade and duel inventory screens \\nThe Time Tracking plugin better handles\\nyour contract state for crops with health checks, and for diseased or dead crops \\nYour XP Tracker goal time now has several\\nformat options \\nYou can now hide dark manuscripts in the Kourend Library\\nplugin . Additionally, the Varlamore\\nEnvoy book is no longer shown when not completing the Depths of Despair quest (as it cannot be\\nobtained otherwise), and searching a bookcase where it would be no longer resets your library\\nrotation information \\nYou can now configure the Discord plugin's \\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely \\nThe Motherlode Mine plugin now shows\\nan overlay on broken water wheel struts, and can display collected ores and gems as icons rather\\nthan as text \\nThe Nightmare Zone's overload potion timer and notification are now properly cleared when leaving\\nthe minigame \\nChronicle charges are now tracked via the Item Charges\\nplugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 37 contributors in these releases!
\\nAdam (18):\\n chat commands: unregister bh and lms commands\\n Add pluginhub user count tracking\\n xptracker: change online tracker link to wiseoldman\\n progress bar: optimize bar drawing\\n pluginhub controller: fix scheduled task delay\\n xp tracker: default pause on logout to on\\n api: move isDead from NPC to Actor\\n gpu: remove unused lastViewportWidth/Height fields\\n client: remove league chat icons plugin\\n key remapping: don't remap space in options dialog\\n spriteid: remove duplicated run icon\\n client: add PMD source code analyzer\\n item charges test: remove unnecessary eq matchers\\n antidrag: set bank drag delay when bankside inv is opened too\\n ci: update glslang to 8.13.3743\\n Fix offline worlds showing population of 65535\\n chat commands: format lp score\\n wildcard matcher: quote replacement to prevent the matcher from replacing group references\\n\\nBen Poulson (1):\\n gpu: add colorblind mode\\n\\nBram91 (2):\\n XPGlobes: allow stacking vertically.\\n Make Volcanic mine widgets layoutable\\n\\nBroooklyn (5):\\n chatcommands: add shorthand names for all agility courses\\n discord: add random events regions\\n worldmap: add Kourend task and unlock tooltip descriptions\\n worldmap: fix typos in "transportation"\\n worldmap: add Wilderness Slayer Cave entrances\\n\\nCaleb Allen (1):\\n gpu: fix anisotropic filtering resetting to 0 after plugin is toggled\\n\\nCryslacks (1):\\n Add trade and duel inventory to widget item inventory overlay\\n\\nCyborger1 (2):\\n farming: Fix harvestable health-check crops contract status\\n farming: Fix contract status for plots with diseased/dead crops\\n\\nDasgust (1):\\n xp tracker: add goal time formatting option\\n\\nGamma91 (1):\\n HotColdLocation: Center a location spot (#12657)\\n\\nHexagon (1):\\n cannonplugin: Check world when drawing overlay\\n\\nHydrox6 (2):\\n chat timestamps: add timestamps for all message types\\n add support for trailblazer tools\\n\\nJacob Mischka (1):\\n overlayrenderer: Make minimum overlay size configurable per-overlay (#12611)\\n\\nJoey Wilson (1):\\n Add item mapping for unidentified minerals (#12552)\\n\\nJoona (1):\\n grounditems: Render ground items tile overlay at correct height (#12586)\\n\\nJordan Atwood (4):\\n kourendlibrary: Don't reset state when not finding Varlamore Envoy\\n Move heart sprite recolors to public package\\n nightmarezone: Set absorption notification var on startup\\n devtools: Render world map location above region overlay\\n\\nKonrad Kozera (1):\\n ImageUtil: add error log with path (#12631)\\n\\nMalfuryent (3):\\n statusbars: Display while in fixed viewport bank\\n statubars: Add left/right customization options\\n statusbars: Add special & run energy bar types\\n\\nMatthew C (1):\\n discord: Fix action timeout, add in game time elapsed option (#12471)\\n\\nMatthew Zegar (1):\\n key remapping: add control remap\\n\\nMax Weber (6):\\n experiencedrop: dont npe when trying to prayer highlight noncombat drops\\n kourendlibrary: add config to hide dark manuscripts\\n rl-client: update changed item names\\n wiki: remove remainder of quest/diary lookup code\\n wiki: don't throw when trying to optarget skills\\n wiki: Always include item names in widget optarget lookups\\n\\nMinhs2 (1):\\n slayer: Add Sourhog task (#12622)\\n\\nPlondrein (1):\\n motherlode: Add overlay for broken water wheel struts\\n\\nRansomTime (1):\\n slayer plugin: add Cyclops to hill giants task list\\n\\nRon Young (1):\\n banktags: don't allow colon in tagtab names\\n\\nSean Patiag (2):\\n timers: Fix NMZ Overload timer not disappearing\\n nightmarezone: Clear pending overload notifications outside NMZ\\n\\nSirGirion (3):\\n motherlode: Add option to show collected ore/gem icons\\n timetracking: add compost bin time trackers (#12619)\\n chatcommands: handle league accounts properly\\n\\nThePharros (1):\\n menu entry swapper: add recite-prayer swap\\n\\nTomas Slusny (2):\\n Switch to GitHub actions\\n Link to CI workflow from CI badge\\n\\nTrey (1):\\n kourendlibrary: hide Varlamore Envoy outside of the Depths of Despair\\n\\nUnmoon (1):\\n item charges: add Chronicle\\n\\nUsman Akhtar (1):\\n opponent info: fix npcindicator color not working with show opponents in menu\\n\\ndekvall (6):\\n chat-commands: add league points command\\n xp-tracker: support league & dmm modifiers for kills remaining\\n xp: add support for wise-old-man trailblazer\\n timers: add league home tele\\n regenmeter: add support for fluid strikes\\n xptracker: add league relic modifiers\\n\\nmelkypie (1):\\n motherlode: allow sack overlay to be resizable\\n\\npaymon123 (1):\\n ConfigManager: Fix NPE when resetting configs with null default\\n\\npilino1234 (1):\\n Worldhopper: Update league world color for Trailblazer\\n\\nsam (1):\\n menu entry swapper: add withdraw/deposit swap for chambers of xeric storage\\n\\nwinterdaze (1):\\n WidgetOverlay: make nightmare pillar health widget moveable\\n
\\n\",\"image\":\"/img/blog/1.6.31-Release/new-status-bars.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/136.203ee877.chunk.js b/static/js/136.c2715022.chunk.js
similarity index 98%
rename from static/js/136.203ee877.chunk.js
rename to static/js/136.c2715022.chunk.js
index c3f002ef3..806d2bc8d 100644
--- a/static/js/136.203ee877.chunk.js
+++ b/static/js/136.c2715022.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[136],{411:function(e,n){e.exports={title:"1.6.32 & 1.6.33 Release",description:"Numerical ground item despawn timers, custom skybox colors, and leagues time tracking profiles",author:"Jordan",body:'Ground item despawn times can now be\ndisplayed numerically in game ticks or in seconds. Thanks to @Hydrox \nfor this feature.
\n
\nThe time tracking plugin , chat commands\nplugin , and grand exchange\nplugin now understand main game vs league\nand deadman mode profiles, and will track crops, kill counts, and offers of these profiles\nseparately. All existing crops and other values are automatically applied to your main profile, you\nwill have to visit each farming patch in-game on each profile for it to be correctly synced up.
\nThe Skybox plugin now allows you to set a custom\ncolor for overworld and underground areas to use instead of the default area-specific colors.
\nThere are also several smaller improvements and bug fixes, including:
\n\nUsing the bank plugin , you can now trigger a\nbank search using the hotkey Ctrl + F \nThe combat level plugin now shows levels\nneeded for a new combat level beyond 99. \nThe DPS counter plugin has gained new\noptions to only count boss damage, and to reset when a boss dies \nAn NPC Deposit-Items swap has been added to the menu entry swapper\nplugin \nThe plugin hub button has been sticky\'d to the bottom of the plugin list. No more scrolling to the\nbottom to find it! \nThe slayer plugin now recognizes Battlefront\nas a task location \nChambers of Xeric potions now have their doses shown via the item charges\nplugin \nThe west Al Kharid palace window is no longer highlighted via the agility\nplugin as you cannot go through it \nSome objects marked with the object markers\nplugin correctly maintain their marker\nwhen leaving and revisiting the area \nThe chat filter plugin no longer filters\nsome messages for players with icons next to their names \nThe timers plugin\'s tzhaar timer no longer\nkeeps counting when disabled mid-run \nThe abyssal sire\'s stun timer has been fixed \nThe chat notifications plugin now\ncorrectly sends notifications for some messages matching a highlighted word ending in a period \nUsing a leagues area teleport will no longer trigger a home or minigame teleport\ntimer \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (20):\n gpu: fix intel miscompiles of fragui shader\n api: add method to remove game objects from scene\n combat level: show next levels needed even past 99\n Move BankSearch to bank plugin\n banktags: use script event for detecting bank search\n Fix incorrectly marking Al Kharid west shortcut window\n objectindicators: fix not marking objects when loaded on other planes\n cache: fix objexporter hsl to rgb calculation\n chat controller: return 404 if task is not found\n chatfilter: fix filtering self and clan messages with chat icons\n dps counter: add option to reset when boss dies\n dps counter: add option to only count boss damage\n notifier: move osx terminal-notifier test to executor\n worldmap: add Getting Ahead quest start location\n api: add queueChangedVarp\n devtools: queue changed varps in setvarb and setvarp\n Use raw varp array for get/set value in devtools\n timers: ignore config changed events for other config groups\n timers: fix tzhaar timer tracking when disabled mid inferno\n timers: fix abyssal sire stun timer\n\nHydrox6 (2):\n timetracking: add support for botanist relic\n grounditems: add numerical despawn timers\n\nJacob Buckheit (1):\n chat notifier: fix matching messages with included punctuation\n\nJordan Atwood (1):\n timers: Fix leagues area teleport bug\n\nMax Weber (10):\n rl-api: update friends chat rank sprite ids\n rl-api,rl-client: update friends chat kick cs2 id\n runelite-api: add WorldChanged event\n runelite-api: add PlayerChanged event\n runelite-client: add rsprofile support\n ConfigManager: immediately send config after importing local\n http-api, http-service, rl-client: bulk upload configuration changes\n runelite-client: build on java 8 again\n cache: allow concurrent disk storage reads\n cache: allow partial caches to load\n\nMinhs2 (1):\n slayer: add various monsters as alternatives to tasks\n\nPlondrein (1):\n menu swapper: Add NPC Deposit-Items swap\n\nRon Young (1):\n runelite-api: import SpritePixels methods\n\nSirGirion (1):\n itemcharges: add cox potions to show item doses\n\nTrevor (1):\n raids plugin: fix array out of bounds error when scouting for a raid\n\ndekvall (3):\n widgetid: correct quest completed group\n widgetid: correct quest completed text\n plugin-panel: stick plugin hub button to bottom of plugin list\n\nlogarithm (1):\n skybox: add custom sky color options\n\nskyblownet (1):\n slayer plugin: add Battlefront to task locations\n\ntrimbe (1):\n bank plugin: add ctrl+f hotkey to initiate bank search\n
\n',image:"/img/blog/1.6.33-Release/ground-item-despawn-timers.gif"}}}]);
-//# sourceMappingURL=136.203ee877.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[136],{412:function(e,n){e.exports={title:"1.6.32 & 1.6.33 Release",description:"Numerical ground item despawn timers, custom skybox colors, and leagues time tracking profiles",author:"Jordan",body:'Ground item despawn times can now be\ndisplayed numerically in game ticks or in seconds. Thanks to @Hydrox \nfor this feature.
\n
\nThe time tracking plugin , chat commands\nplugin , and grand exchange\nplugin now understand main game vs league\nand deadman mode profiles, and will track crops, kill counts, and offers of these profiles\nseparately. All existing crops and other values are automatically applied to your main profile, you\nwill have to visit each farming patch in-game on each profile for it to be correctly synced up.
\nThe Skybox plugin now allows you to set a custom\ncolor for overworld and underground areas to use instead of the default area-specific colors.
\nThere are also several smaller improvements and bug fixes, including:
\n\nUsing the bank plugin , you can now trigger a\nbank search using the hotkey Ctrl + F \nThe combat level plugin now shows levels\nneeded for a new combat level beyond 99. \nThe DPS counter plugin has gained new\noptions to only count boss damage, and to reset when a boss dies \nAn NPC Deposit-Items swap has been added to the menu entry swapper\nplugin \nThe plugin hub button has been sticky\'d to the bottom of the plugin list. No more scrolling to the\nbottom to find it! \nThe slayer plugin now recognizes Battlefront\nas a task location \nChambers of Xeric potions now have their doses shown via the item charges\nplugin \nThe west Al Kharid palace window is no longer highlighted via the agility\nplugin as you cannot go through it \nSome objects marked with the object markers\nplugin correctly maintain their marker\nwhen leaving and revisiting the area \nThe chat filter plugin no longer filters\nsome messages for players with icons next to their names \nThe timers plugin\'s tzhaar timer no longer\nkeeps counting when disabled mid-run \nThe abyssal sire\'s stun timer has been fixed \nThe chat notifications plugin now\ncorrectly sends notifications for some messages matching a highlighted word ending in a period \nUsing a leagues area teleport will no longer trigger a home or minigame teleport\ntimer \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (20):\n gpu: fix intel miscompiles of fragui shader\n api: add method to remove game objects from scene\n combat level: show next levels needed even past 99\n Move BankSearch to bank plugin\n banktags: use script event for detecting bank search\n Fix incorrectly marking Al Kharid west shortcut window\n objectindicators: fix not marking objects when loaded on other planes\n cache: fix objexporter hsl to rgb calculation\n chat controller: return 404 if task is not found\n chatfilter: fix filtering self and clan messages with chat icons\n dps counter: add option to reset when boss dies\n dps counter: add option to only count boss damage\n notifier: move osx terminal-notifier test to executor\n worldmap: add Getting Ahead quest start location\n api: add queueChangedVarp\n devtools: queue changed varps in setvarb and setvarp\n Use raw varp array for get/set value in devtools\n timers: ignore config changed events for other config groups\n timers: fix tzhaar timer tracking when disabled mid inferno\n timers: fix abyssal sire stun timer\n\nHydrox6 (2):\n timetracking: add support for botanist relic\n grounditems: add numerical despawn timers\n\nJacob Buckheit (1):\n chat notifier: fix matching messages with included punctuation\n\nJordan Atwood (1):\n timers: Fix leagues area teleport bug\n\nMax Weber (10):\n rl-api: update friends chat rank sprite ids\n rl-api,rl-client: update friends chat kick cs2 id\n runelite-api: add WorldChanged event\n runelite-api: add PlayerChanged event\n runelite-client: add rsprofile support\n ConfigManager: immediately send config after importing local\n http-api, http-service, rl-client: bulk upload configuration changes\n runelite-client: build on java 8 again\n cache: allow concurrent disk storage reads\n cache: allow partial caches to load\n\nMinhs2 (1):\n slayer: add various monsters as alternatives to tasks\n\nPlondrein (1):\n menu swapper: Add NPC Deposit-Items swap\n\nRon Young (1):\n runelite-api: import SpritePixels methods\n\nSirGirion (1):\n itemcharges: add cox potions to show item doses\n\nTrevor (1):\n raids plugin: fix array out of bounds error when scouting for a raid\n\ndekvall (3):\n widgetid: correct quest completed group\n widgetid: correct quest completed text\n plugin-panel: stick plugin hub button to bottom of plugin list\n\nlogarithm (1):\n skybox: add custom sky color options\n\nskyblownet (1):\n slayer plugin: add Battlefront to task locations\n\ntrimbe (1):\n bank plugin: add ctrl+f hotkey to initiate bank search\n
\n',image:"/img/blog/1.6.33-Release/ground-item-despawn-timers.gif"}}}]);
+//# sourceMappingURL=136.c2715022.chunk.js.map
\ No newline at end of file
diff --git a/static/js/136.203ee877.chunk.js.map b/static/js/136.c2715022.chunk.js.map
similarity index 99%
rename from static/js/136.203ee877.chunk.js.map
rename to static/js/136.c2715022.chunk.js.map
index 45aa99fa0..4af07a0c4 100644
--- a/static/js/136.203ee877.chunk.js.map
+++ b/static/js/136.c2715022.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2020-12-02-10-00-1.6.33-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,iGAAiG,OAAS,SAAS,KAAO,+yNAAk6N,MAAQ","file":"static/js/136.203ee877.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.32 & 1.6.33 Release\",\"description\":\"Numerical ground item despawn timers, custom skybox colors, and leagues time tracking profiles\",\"author\":\"Jordan\",\"body\":\"Ground item despawn times can now be\\ndisplayed numerically in game ticks or in seconds. Thanks to @Hydrox \\nfor this feature.
\\n
\\nThe time tracking plugin , chat commands\\nplugin , and grand exchange\\nplugin now understand main game vs league\\nand deadman mode profiles, and will track crops, kill counts, and offers of these profiles\\nseparately. All existing crops and other values are automatically applied to your main profile, you\\nwill have to visit each farming patch in-game on each profile for it to be correctly synced up.
\\nThe Skybox plugin now allows you to set a custom\\ncolor for overworld and underground areas to use instead of the default area-specific colors.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUsing the bank plugin , you can now trigger a\\nbank search using the hotkey Ctrl + F \\nThe combat level plugin now shows levels\\nneeded for a new combat level beyond 99. \\nThe DPS counter plugin has gained new\\noptions to only count boss damage, and to reset when a boss dies \\nAn NPC Deposit-Items swap has been added to the menu entry swapper\\nplugin \\nThe plugin hub button has been sticky'd to the bottom of the plugin list. No more scrolling to the\\nbottom to find it! \\nThe slayer plugin now recognizes Battlefront\\nas a task location \\nChambers of Xeric potions now have their doses shown via the item charges\\nplugin \\nThe west Al Kharid palace window is no longer highlighted via the agility\\nplugin as you cannot go through it \\nSome objects marked with the object markers\\nplugin correctly maintain their marker\\nwhen leaving and revisiting the area \\nThe chat filter plugin no longer filters\\nsome messages for players with icons next to their names \\nThe timers plugin's tzhaar timer no longer\\nkeeps counting when disabled mid-run \\nThe abyssal sire's stun timer has been fixed \\nThe chat notifications plugin now\\ncorrectly sends notifications for some messages matching a highlighted word ending in a period \\nUsing a leagues area teleport will no longer trigger a home or minigame teleport\\ntimer \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (20):\\n gpu: fix intel miscompiles of fragui shader\\n api: add method to remove game objects from scene\\n combat level: show next levels needed even past 99\\n Move BankSearch to bank plugin\\n banktags: use script event for detecting bank search\\n Fix incorrectly marking Al Kharid west shortcut window\\n objectindicators: fix not marking objects when loaded on other planes\\n cache: fix objexporter hsl to rgb calculation\\n chat controller: return 404 if task is not found\\n chatfilter: fix filtering self and clan messages with chat icons\\n dps counter: add option to reset when boss dies\\n dps counter: add option to only count boss damage\\n notifier: move osx terminal-notifier test to executor\\n worldmap: add Getting Ahead quest start location\\n api: add queueChangedVarp\\n devtools: queue changed varps in setvarb and setvarp\\n Use raw varp array for get/set value in devtools\\n timers: ignore config changed events for other config groups\\n timers: fix tzhaar timer tracking when disabled mid inferno\\n timers: fix abyssal sire stun timer\\n\\nHydrox6 (2):\\n timetracking: add support for botanist relic\\n grounditems: add numerical despawn timers\\n\\nJacob Buckheit (1):\\n chat notifier: fix matching messages with included punctuation\\n\\nJordan Atwood (1):\\n timers: Fix leagues area teleport bug\\n\\nMax Weber (10):\\n rl-api: update friends chat rank sprite ids\\n rl-api,rl-client: update friends chat kick cs2 id\\n runelite-api: add WorldChanged event\\n runelite-api: add PlayerChanged event\\n runelite-client: add rsprofile support\\n ConfigManager: immediately send config after importing local\\n http-api, http-service, rl-client: bulk upload configuration changes\\n runelite-client: build on java 8 again\\n cache: allow concurrent disk storage reads\\n cache: allow partial caches to load\\n\\nMinhs2 (1):\\n slayer: add various monsters as alternatives to tasks\\n\\nPlondrein (1):\\n menu swapper: Add NPC Deposit-Items swap\\n\\nRon Young (1):\\n runelite-api: import SpritePixels methods\\n\\nSirGirion (1):\\n itemcharges: add cox potions to show item doses\\n\\nTrevor (1):\\n raids plugin: fix array out of bounds error when scouting for a raid\\n\\ndekvall (3):\\n widgetid: correct quest completed group\\n widgetid: correct quest completed text\\n plugin-panel: stick plugin hub button to bottom of plugin list\\n\\nlogarithm (1):\\n skybox: add custom sky color options\\n\\nskyblownet (1):\\n slayer plugin: add Battlefront to task locations\\n\\ntrimbe (1):\\n bank plugin: add ctrl+f hotkey to initiate bank search\\n
\\n\",\"image\":\"/img/blog/1.6.33-Release/ground-item-despawn-timers.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2020-12-02-10-00-1.6.33-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,iGAAiG,OAAS,SAAS,KAAO,+yNAAk6N,MAAQ","file":"static/js/136.c2715022.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.32 & 1.6.33 Release\",\"description\":\"Numerical ground item despawn timers, custom skybox colors, and leagues time tracking profiles\",\"author\":\"Jordan\",\"body\":\"Ground item despawn times can now be\\ndisplayed numerically in game ticks or in seconds. Thanks to @Hydrox \\nfor this feature.
\\n
\\nThe time tracking plugin , chat commands\\nplugin , and grand exchange\\nplugin now understand main game vs league\\nand deadman mode profiles, and will track crops, kill counts, and offers of these profiles\\nseparately. All existing crops and other values are automatically applied to your main profile, you\\nwill have to visit each farming patch in-game on each profile for it to be correctly synced up.
\\nThe Skybox plugin now allows you to set a custom\\ncolor for overworld and underground areas to use instead of the default area-specific colors.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUsing the bank plugin , you can now trigger a\\nbank search using the hotkey Ctrl + F \\nThe combat level plugin now shows levels\\nneeded for a new combat level beyond 99. \\nThe DPS counter plugin has gained new\\noptions to only count boss damage, and to reset when a boss dies \\nAn NPC Deposit-Items swap has been added to the menu entry swapper\\nplugin \\nThe plugin hub button has been sticky'd to the bottom of the plugin list. No more scrolling to the\\nbottom to find it! \\nThe slayer plugin now recognizes Battlefront\\nas a task location \\nChambers of Xeric potions now have their doses shown via the item charges\\nplugin \\nThe west Al Kharid palace window is no longer highlighted via the agility\\nplugin as you cannot go through it \\nSome objects marked with the object markers\\nplugin correctly maintain their marker\\nwhen leaving and revisiting the area \\nThe chat filter plugin no longer filters\\nsome messages for players with icons next to their names \\nThe timers plugin's tzhaar timer no longer\\nkeeps counting when disabled mid-run \\nThe abyssal sire's stun timer has been fixed \\nThe chat notifications plugin now\\ncorrectly sends notifications for some messages matching a highlighted word ending in a period \\nUsing a leagues area teleport will no longer trigger a home or minigame teleport\\ntimer \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (20):\\n gpu: fix intel miscompiles of fragui shader\\n api: add method to remove game objects from scene\\n combat level: show next levels needed even past 99\\n Move BankSearch to bank plugin\\n banktags: use script event for detecting bank search\\n Fix incorrectly marking Al Kharid west shortcut window\\n objectindicators: fix not marking objects when loaded on other planes\\n cache: fix objexporter hsl to rgb calculation\\n chat controller: return 404 if task is not found\\n chatfilter: fix filtering self and clan messages with chat icons\\n dps counter: add option to reset when boss dies\\n dps counter: add option to only count boss damage\\n notifier: move osx terminal-notifier test to executor\\n worldmap: add Getting Ahead quest start location\\n api: add queueChangedVarp\\n devtools: queue changed varps in setvarb and setvarp\\n Use raw varp array for get/set value in devtools\\n timers: ignore config changed events for other config groups\\n timers: fix tzhaar timer tracking when disabled mid inferno\\n timers: fix abyssal sire stun timer\\n\\nHydrox6 (2):\\n timetracking: add support for botanist relic\\n grounditems: add numerical despawn timers\\n\\nJacob Buckheit (1):\\n chat notifier: fix matching messages with included punctuation\\n\\nJordan Atwood (1):\\n timers: Fix leagues area teleport bug\\n\\nMax Weber (10):\\n rl-api: update friends chat rank sprite ids\\n rl-api,rl-client: update friends chat kick cs2 id\\n runelite-api: add WorldChanged event\\n runelite-api: add PlayerChanged event\\n runelite-client: add rsprofile support\\n ConfigManager: immediately send config after importing local\\n http-api, http-service, rl-client: bulk upload configuration changes\\n runelite-client: build on java 8 again\\n cache: allow concurrent disk storage reads\\n cache: allow partial caches to load\\n\\nMinhs2 (1):\\n slayer: add various monsters as alternatives to tasks\\n\\nPlondrein (1):\\n menu swapper: Add NPC Deposit-Items swap\\n\\nRon Young (1):\\n runelite-api: import SpritePixels methods\\n\\nSirGirion (1):\\n itemcharges: add cox potions to show item doses\\n\\nTrevor (1):\\n raids plugin: fix array out of bounds error when scouting for a raid\\n\\ndekvall (3):\\n widgetid: correct quest completed group\\n widgetid: correct quest completed text\\n plugin-panel: stick plugin hub button to bottom of plugin list\\n\\nlogarithm (1):\\n skybox: add custom sky color options\\n\\nskyblownet (1):\\n slayer plugin: add Battlefront to task locations\\n\\ntrimbe (1):\\n bank plugin: add ctrl+f hotkey to initiate bank search\\n
\\n\",\"image\":\"/img/blog/1.6.33-Release/ground-item-despawn-timers.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/137.ba3ca06e.chunk.js b/static/js/137.34135c15.chunk.js
similarity index 98%
rename from static/js/137.ba3ca06e.chunk.js
rename to static/js/137.34135c15.chunk.js
index 35f578a30..2c3ba9d08 100644
--- a/static/js/137.ba3ca06e.chunk.js
+++ b/static/js/137.34135c15.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[137],{412:function(e,n){e.exports={title:"1.6.36 Release",description:"Improved farming timer estimations and Zalcano damage counter",author:"Adam",body:'The time tracking plugin now keeps track of when each account\'s farming tick\nhappens and can use it to give much more precise estimations of when crops are\ndone growing. To do this it must first observe a tree growing.
\n
\nThe Zalcano plugin now includes a damage counter to track how much damage you\nhave done to the health and shield, to let you easily track if you\'ve done\nenough damage to be eligible for drops, uniques, or the pet.
\n
\nMany of the existing color configuration options for overlays now support\nadjusting their transparency too.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTexture brightness with the GPU plugin has been adjusted to more closely\nreflect the software rasterizer \nFPS with GPU on in areas with full-screen transparent overlays, such as\nGodwars, under water, and Ver Sinhaza has been improved \nThe xp tracker now respects the in-game xp tracker position setting \nFix some dead clicks when trying to alt+drag or alt+reset overlays \nFix item overlays, such as the rune pouch or item identification overlays,\nfrom drawing over top the world map \nThe barrows reward potential overlay colors are now exact and no longer an estimation \nFix the Ape Atoll skull climb obstacle click box overlay \nMouse tooltips now work on the welcome screen and the full screen world map \nThe multicombat icon is now movable when holding alt \nThe status bars health bar is now recolored when infected by a parasite \nTimers have been added to the green Tears of Guthix streams \nThe Sire stun timer now more accurately tracks when the Sire is stunned while\nalready stunned \nFix the essence teleport menu swap for Sedridor \nFix the Charge spell timer time to be 7 minutes \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this release!
\nAdam (31):\n barrows: fix reward potential color overlay\n twitch: fix npe closing client if no socket has been created\n widget overlay: use the in-game configured position for the xptracker widget\n devtools: assign unique names to debug infoboxes\n overlay renderer: set currentManagedOverlay also when clicking\n Allow overlay renderer to restrict overlay parent bounds\n ci: use mvn verify phase instead of install\n api: remove getViewportWidget()\n overlay renderer: use viewport bounds for snap corner offsets\n Rename various itemWidget to widgetItem to match class name\n Add interface and layer draw hooks for overlays\n wiki: use script post fired event for hiding wiki banner\n timers: use pvp varbit to clear teleblock timer\n Remove ITEM_DROP menu action\n menu entry swapper: replace some client.getItemDefinition calls with itemManager.getItemComposition\n menu entry swapper: refactor configure shift click menu code to use menu types and ids\n ping: place IcmpCloseHandle in finally\n api: remove WidgetHiddenChanged\n ge plugin: better handle trades updating on login\n ge: add user agent to trade message\n ge: add trade seq number\n ge: submit buy limit reset time\n Allow mouse tooltips on the welcome screen and full screen world map\n comp_unordered.glsl: don\'t orient vertices\n gpu: move calculateExtreme() after visibility check\n gpu: correctly set model height on non-model renderables\n gpu: draw full screen widgets on gpu\n client: bind runelite.properties to guice\n gpu: dispatch compute after scene draw\n perspective: ignore invisible tris in clickbox calculation\n gpu: fix lighting textures\n\nBroooklyn (2):\n discord: add a few missing regions\n item identification: add Jungle Potion herbs\n\nCGOSURLDEV (1):\n ge plugin: update config descriptions to be more descriptive\n\nChristian Gati (1):\n Add Green Tears of Guthix Timer (#12862)\n\nFjara - Choppe (1):\n agilityshortcut: fix Neitiznot Bridge agility level requirements\n\nHydrox6 (1):\n WidgetOverlay: Make Multicombat Indicator moveable\n\nJordan Atwood (1):\n itemstats: Add Darkmeyer foods\n\nKoanga (1):\n item prices: fix evalulating large platinum token stack prices\n\nMalfuryent (1):\n statusbarplugin: Recolor health bar when infected by a parasite (#12874)\n\nMax Weber (4):\n config/PluginHubPanel: show uninstall ui feedback when in safe mode\n music: fix channel mute op name\n runelite-api: add WidgetClosed event\n runelite-api: add WidgetNode::modalMode\n\nMinhs2 (1):\n skill calc: add 4 dose potions\n\nMorgan Lewis (3):\n Add additional areas to FarmingRegions\n Add Health Check data to PatchImplementation.java\n Add farming tick offset to time tracking plugin\n\nMrnice98 (1):\n timers: use chat message for sire stun timer\n\nPaul Norton (2):\n Add "scorched" Lletya regionID recognition to TimeTracking\'s FarmingWorld\n Add scorched Lletya region ID to discord presence determination\n\nPaveldin (1):\n fishing: Add crystal and trailblazer harpoon to fishing tool list (#12829)\n\nUsman Akhtar (1):\n menu entry swapper: fix swap for sedridor\n\ndekvall (2):\n zalcano: add damage counter\n sponsors: add patreon link\n\nemerald000 (1):\n timers: change Charge time to 7 minutes\n\npilino1234 (1):\n Add alpha channel to color config options where applicable\n
\n',image:"/img/blog/1.6.36-Release/farm-timer.png"}}}]);
-//# sourceMappingURL=137.ba3ca06e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[137],{413:function(e,n){e.exports={title:"1.6.36 Release",description:"Improved farming timer estimations and Zalcano damage counter",author:"Adam",body:'The time tracking plugin now keeps track of when each account\'s farming tick\nhappens and can use it to give much more precise estimations of when crops are\ndone growing. To do this it must first observe a tree growing.
\n
\nThe Zalcano plugin now includes a damage counter to track how much damage you\nhave done to the health and shield, to let you easily track if you\'ve done\nenough damage to be eligible for drops, uniques, or the pet.
\n
\nMany of the existing color configuration options for overlays now support\nadjusting their transparency too.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTexture brightness with the GPU plugin has been adjusted to more closely\nreflect the software rasterizer \nFPS with GPU on in areas with full-screen transparent overlays, such as\nGodwars, under water, and Ver Sinhaza has been improved \nThe xp tracker now respects the in-game xp tracker position setting \nFix some dead clicks when trying to alt+drag or alt+reset overlays \nFix item overlays, such as the rune pouch or item identification overlays,\nfrom drawing over top the world map \nThe barrows reward potential overlay colors are now exact and no longer an estimation \nFix the Ape Atoll skull climb obstacle click box overlay \nMouse tooltips now work on the welcome screen and the full screen world map \nThe multicombat icon is now movable when holding alt \nThe status bars health bar is now recolored when infected by a parasite \nTimers have been added to the green Tears of Guthix streams \nThe Sire stun timer now more accurately tracks when the Sire is stunned while\nalready stunned \nFix the essence teleport menu swap for Sedridor \nFix the Charge spell timer time to be 7 minutes \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this release!
\nAdam (31):\n barrows: fix reward potential color overlay\n twitch: fix npe closing client if no socket has been created\n widget overlay: use the in-game configured position for the xptracker widget\n devtools: assign unique names to debug infoboxes\n overlay renderer: set currentManagedOverlay also when clicking\n Allow overlay renderer to restrict overlay parent bounds\n ci: use mvn verify phase instead of install\n api: remove getViewportWidget()\n overlay renderer: use viewport bounds for snap corner offsets\n Rename various itemWidget to widgetItem to match class name\n Add interface and layer draw hooks for overlays\n wiki: use script post fired event for hiding wiki banner\n timers: use pvp varbit to clear teleblock timer\n Remove ITEM_DROP menu action\n menu entry swapper: replace some client.getItemDefinition calls with itemManager.getItemComposition\n menu entry swapper: refactor configure shift click menu code to use menu types and ids\n ping: place IcmpCloseHandle in finally\n api: remove WidgetHiddenChanged\n ge plugin: better handle trades updating on login\n ge: add user agent to trade message\n ge: add trade seq number\n ge: submit buy limit reset time\n Allow mouse tooltips on the welcome screen and full screen world map\n comp_unordered.glsl: don\'t orient vertices\n gpu: move calculateExtreme() after visibility check\n gpu: correctly set model height on non-model renderables\n gpu: draw full screen widgets on gpu\n client: bind runelite.properties to guice\n gpu: dispatch compute after scene draw\n perspective: ignore invisible tris in clickbox calculation\n gpu: fix lighting textures\n\nBroooklyn (2):\n discord: add a few missing regions\n item identification: add Jungle Potion herbs\n\nCGOSURLDEV (1):\n ge plugin: update config descriptions to be more descriptive\n\nChristian Gati (1):\n Add Green Tears of Guthix Timer (#12862)\n\nFjara - Choppe (1):\n agilityshortcut: fix Neitiznot Bridge agility level requirements\n\nHydrox6 (1):\n WidgetOverlay: Make Multicombat Indicator moveable\n\nJordan Atwood (1):\n itemstats: Add Darkmeyer foods\n\nKoanga (1):\n item prices: fix evalulating large platinum token stack prices\n\nMalfuryent (1):\n statusbarplugin: Recolor health bar when infected by a parasite (#12874)\n\nMax Weber (4):\n config/PluginHubPanel: show uninstall ui feedback when in safe mode\n music: fix channel mute op name\n runelite-api: add WidgetClosed event\n runelite-api: add WidgetNode::modalMode\n\nMinhs2 (1):\n skill calc: add 4 dose potions\n\nMorgan Lewis (3):\n Add additional areas to FarmingRegions\n Add Health Check data to PatchImplementation.java\n Add farming tick offset to time tracking plugin\n\nMrnice98 (1):\n timers: use chat message for sire stun timer\n\nPaul Norton (2):\n Add "scorched" Lletya regionID recognition to TimeTracking\'s FarmingWorld\n Add scorched Lletya region ID to discord presence determination\n\nPaveldin (1):\n fishing: Add crystal and trailblazer harpoon to fishing tool list (#12829)\n\nUsman Akhtar (1):\n menu entry swapper: fix swap for sedridor\n\ndekvall (2):\n zalcano: add damage counter\n sponsors: add patreon link\n\nemerald000 (1):\n timers: change Charge time to 7 minutes\n\npilino1234 (1):\n Add alpha channel to color config options where applicable\n
\n',image:"/img/blog/1.6.36-Release/farm-timer.png"}}}]);
+//# sourceMappingURL=137.34135c15.chunk.js.map
\ No newline at end of file
diff --git a/static/js/137.ba3ca06e.chunk.js.map b/static/js/137.34135c15.chunk.js.map
similarity index 99%
rename from static/js/137.ba3ca06e.chunk.js.map
rename to static/js/137.34135c15.chunk.js.map
index cb49bba58..ee82e06cf 100644
--- a/static/js/137.ba3ca06e.chunk.js.map
+++ b/static/js/137.34135c15.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-01-06-10-00-1.6.36-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gEAAgE,OAAS,OAAO,KAAO,ktLAA0tL,MAAQ","file":"static/js/137.ba3ca06e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.36 Release\",\"description\":\"Improved farming timer estimations and Zalcano damage counter\",\"author\":\"Adam\",\"body\":\"The time tracking plugin now keeps track of when each account's farming tick\\nhappens and can use it to give much more precise estimations of when crops are\\ndone growing. To do this it must first observe a tree growing.
\\n
\\nThe Zalcano plugin now includes a damage counter to track how much damage you\\nhave done to the health and shield, to let you easily track if you've done\\nenough damage to be eligible for drops, uniques, or the pet.
\\n
\\nMany of the existing color configuration options for overlays now support\\nadjusting their transparency too.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTexture brightness with the GPU plugin has been adjusted to more closely\\nreflect the software rasterizer \\nFPS with GPU on in areas with full-screen transparent overlays, such as\\nGodwars, under water, and Ver Sinhaza has been improved \\nThe xp tracker now respects the in-game xp tracker position setting \\nFix some dead clicks when trying to alt+drag or alt+reset overlays \\nFix item overlays, such as the rune pouch or item identification overlays,\\nfrom drawing over top the world map \\nThe barrows reward potential overlay colors are now exact and no longer an estimation \\nFix the Ape Atoll skull climb obstacle click box overlay \\nMouse tooltips now work on the welcome screen and the full screen world map \\nThe multicombat icon is now movable when holding alt \\nThe status bars health bar is now recolored when infected by a parasite \\nTimers have been added to the green Tears of Guthix streams \\nThe Sire stun timer now more accurately tracks when the Sire is stunned while\\nalready stunned \\nFix the essence teleport menu swap for Sedridor \\nFix the Charge spell timer time to be 7 minutes \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (31):\\n barrows: fix reward potential color overlay\\n twitch: fix npe closing client if no socket has been created\\n widget overlay: use the in-game configured position for the xptracker widget\\n devtools: assign unique names to debug infoboxes\\n overlay renderer: set currentManagedOverlay also when clicking\\n Allow overlay renderer to restrict overlay parent bounds\\n ci: use mvn verify phase instead of install\\n api: remove getViewportWidget()\\n overlay renderer: use viewport bounds for snap corner offsets\\n Rename various itemWidget to widgetItem to match class name\\n Add interface and layer draw hooks for overlays\\n wiki: use script post fired event for hiding wiki banner\\n timers: use pvp varbit to clear teleblock timer\\n Remove ITEM_DROP menu action\\n menu entry swapper: replace some client.getItemDefinition calls with itemManager.getItemComposition\\n menu entry swapper: refactor configure shift click menu code to use menu types and ids\\n ping: place IcmpCloseHandle in finally\\n api: remove WidgetHiddenChanged\\n ge plugin: better handle trades updating on login\\n ge: add user agent to trade message\\n ge: add trade seq number\\n ge: submit buy limit reset time\\n Allow mouse tooltips on the welcome screen and full screen world map\\n comp_unordered.glsl: don't orient vertices\\n gpu: move calculateExtreme() after visibility check\\n gpu: correctly set model height on non-model renderables\\n gpu: draw full screen widgets on gpu\\n client: bind runelite.properties to guice\\n gpu: dispatch compute after scene draw\\n perspective: ignore invisible tris in clickbox calculation\\n gpu: fix lighting textures\\n\\nBroooklyn (2):\\n discord: add a few missing regions\\n item identification: add Jungle Potion herbs\\n\\nCGOSURLDEV (1):\\n ge plugin: update config descriptions to be more descriptive\\n\\nChristian Gati (1):\\n Add Green Tears of Guthix Timer (#12862)\\n\\nFjara - Choppe (1):\\n agilityshortcut: fix Neitiznot Bridge agility level requirements\\n\\nHydrox6 (1):\\n WidgetOverlay: Make Multicombat Indicator moveable\\n\\nJordan Atwood (1):\\n itemstats: Add Darkmeyer foods\\n\\nKoanga (1):\\n item prices: fix evalulating large platinum token stack prices\\n\\nMalfuryent (1):\\n statusbarplugin: Recolor health bar when infected by a parasite (#12874)\\n\\nMax Weber (4):\\n config/PluginHubPanel: show uninstall ui feedback when in safe mode\\n music: fix channel mute op name\\n runelite-api: add WidgetClosed event\\n runelite-api: add WidgetNode::modalMode\\n\\nMinhs2 (1):\\n skill calc: add 4 dose potions\\n\\nMorgan Lewis (3):\\n Add additional areas to FarmingRegions\\n Add Health Check data to PatchImplementation.java\\n Add farming tick offset to time tracking plugin\\n\\nMrnice98 (1):\\n timers: use chat message for sire stun timer\\n\\nPaul Norton (2):\\n Add "scorched" Lletya regionID recognition to TimeTracking's FarmingWorld\\n Add scorched Lletya region ID to discord presence determination\\n\\nPaveldin (1):\\n fishing: Add crystal and trailblazer harpoon to fishing tool list (#12829)\\n\\nUsman Akhtar (1):\\n menu entry swapper: fix swap for sedridor\\n\\ndekvall (2):\\n zalcano: add damage counter\\n sponsors: add patreon link\\n\\nemerald000 (1):\\n timers: change Charge time to 7 minutes\\n\\npilino1234 (1):\\n Add alpha channel to color config options where applicable\\n
\\n\",\"image\":\"/img/blog/1.6.36-Release/farm-timer.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-01-06-10-00-1.6.36-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gEAAgE,OAAS,OAAO,KAAO,ktLAA0tL,MAAQ","file":"static/js/137.34135c15.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.36 Release\",\"description\":\"Improved farming timer estimations and Zalcano damage counter\",\"author\":\"Adam\",\"body\":\"The time tracking plugin now keeps track of when each account's farming tick\\nhappens and can use it to give much more precise estimations of when crops are\\ndone growing. To do this it must first observe a tree growing.
\\n
\\nThe Zalcano plugin now includes a damage counter to track how much damage you\\nhave done to the health and shield, to let you easily track if you've done\\nenough damage to be eligible for drops, uniques, or the pet.
\\n
\\nMany of the existing color configuration options for overlays now support\\nadjusting their transparency too.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTexture brightness with the GPU plugin has been adjusted to more closely\\nreflect the software rasterizer \\nFPS with GPU on in areas with full-screen transparent overlays, such as\\nGodwars, under water, and Ver Sinhaza has been improved \\nThe xp tracker now respects the in-game xp tracker position setting \\nFix some dead clicks when trying to alt+drag or alt+reset overlays \\nFix item overlays, such as the rune pouch or item identification overlays,\\nfrom drawing over top the world map \\nThe barrows reward potential overlay colors are now exact and no longer an estimation \\nFix the Ape Atoll skull climb obstacle click box overlay \\nMouse tooltips now work on the welcome screen and the full screen world map \\nThe multicombat icon is now movable when holding alt \\nThe status bars health bar is now recolored when infected by a parasite \\nTimers have been added to the green Tears of Guthix streams \\nThe Sire stun timer now more accurately tracks when the Sire is stunned while\\nalready stunned \\nFix the essence teleport menu swap for Sedridor \\nFix the Charge spell timer time to be 7 minutes \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (31):\\n barrows: fix reward potential color overlay\\n twitch: fix npe closing client if no socket has been created\\n widget overlay: use the in-game configured position for the xptracker widget\\n devtools: assign unique names to debug infoboxes\\n overlay renderer: set currentManagedOverlay also when clicking\\n Allow overlay renderer to restrict overlay parent bounds\\n ci: use mvn verify phase instead of install\\n api: remove getViewportWidget()\\n overlay renderer: use viewport bounds for snap corner offsets\\n Rename various itemWidget to widgetItem to match class name\\n Add interface and layer draw hooks for overlays\\n wiki: use script post fired event for hiding wiki banner\\n timers: use pvp varbit to clear teleblock timer\\n Remove ITEM_DROP menu action\\n menu entry swapper: replace some client.getItemDefinition calls with itemManager.getItemComposition\\n menu entry swapper: refactor configure shift click menu code to use menu types and ids\\n ping: place IcmpCloseHandle in finally\\n api: remove WidgetHiddenChanged\\n ge plugin: better handle trades updating on login\\n ge: add user agent to trade message\\n ge: add trade seq number\\n ge: submit buy limit reset time\\n Allow mouse tooltips on the welcome screen and full screen world map\\n comp_unordered.glsl: don't orient vertices\\n gpu: move calculateExtreme() after visibility check\\n gpu: correctly set model height on non-model renderables\\n gpu: draw full screen widgets on gpu\\n client: bind runelite.properties to guice\\n gpu: dispatch compute after scene draw\\n perspective: ignore invisible tris in clickbox calculation\\n gpu: fix lighting textures\\n\\nBroooklyn (2):\\n discord: add a few missing regions\\n item identification: add Jungle Potion herbs\\n\\nCGOSURLDEV (1):\\n ge plugin: update config descriptions to be more descriptive\\n\\nChristian Gati (1):\\n Add Green Tears of Guthix Timer (#12862)\\n\\nFjara - Choppe (1):\\n agilityshortcut: fix Neitiznot Bridge agility level requirements\\n\\nHydrox6 (1):\\n WidgetOverlay: Make Multicombat Indicator moveable\\n\\nJordan Atwood (1):\\n itemstats: Add Darkmeyer foods\\n\\nKoanga (1):\\n item prices: fix evalulating large platinum token stack prices\\n\\nMalfuryent (1):\\n statusbarplugin: Recolor health bar when infected by a parasite (#12874)\\n\\nMax Weber (4):\\n config/PluginHubPanel: show uninstall ui feedback when in safe mode\\n music: fix channel mute op name\\n runelite-api: add WidgetClosed event\\n runelite-api: add WidgetNode::modalMode\\n\\nMinhs2 (1):\\n skill calc: add 4 dose potions\\n\\nMorgan Lewis (3):\\n Add additional areas to FarmingRegions\\n Add Health Check data to PatchImplementation.java\\n Add farming tick offset to time tracking plugin\\n\\nMrnice98 (1):\\n timers: use chat message for sire stun timer\\n\\nPaul Norton (2):\\n Add "scorched" Lletya regionID recognition to TimeTracking's FarmingWorld\\n Add scorched Lletya region ID to discord presence determination\\n\\nPaveldin (1):\\n fishing: Add crystal and trailblazer harpoon to fishing tool list (#12829)\\n\\nUsman Akhtar (1):\\n menu entry swapper: fix swap for sedridor\\n\\ndekvall (2):\\n zalcano: add damage counter\\n sponsors: add patreon link\\n\\nemerald000 (1):\\n timers: change Charge time to 7 minutes\\n\\npilino1234 (1):\\n Add alpha channel to color config options where applicable\\n
\\n\",\"image\":\"/img/blog/1.6.36-Release/farm-timer.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/138.4aef2bff.chunk.js b/static/js/138.04d02586.chunk.js
similarity index 98%
rename from static/js/138.4aef2bff.chunk.js
rename to static/js/138.04d02586.chunk.js
index 72f5400f1..4be1b942d 100644
--- a/static/js/138.4aef2bff.chunk.js
+++ b/static/js/138.04d02586.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[138],{413:function(e,n){e.exports={title:"1.6.37 & 1.6.38 Release",description:"Ground marker sharing, refreshed hiscore boss icons, and filled inventory tag display",author:"Jordan",body:'We\'ve added the ability to share ground markers. Click the "Export Ground Markers" option on the\nworld map orb to copy nearby ground markers to your clipboard, or click the "Import Ground Markers"\noption to load them into your game! Thanks to @LlemonDuck for\nadding this feature.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Importing a set of ground markers in the shape of the RuneLite logo\n
\nThe hiscore panel\'s boss icons have been refreshed and tidied up, courtesy of\n@Psikoi\'s excellent updated icons.
\n
\nA "Fill" display has been added for your inventory tags, which can be toggled alongside the existing\noutline and underline options. Thanks to @1jz for this addition.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nSupport for soul wars has been added across our plugins, such as the rank in the hiscore panel and\nchat commands, tooltips on world map icons, food and potion boost information, and loot tracking\nfor spoils of war. \nA toggle has been added to the GPU plugin to render brighter textures so you can enjoy the\nbrighter look of your fire and infernal capes \nThe plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins \nThe Time Tracking plugin can now show the soonest completion of a crop for your farming tracker\ncategories (eg. Show time until your first tree grows, instead of when they would all be grown) \nThe Special Attack Counter plugin no longer resets your damage when attacking the Corporeal\nbeast\'s Dark core, Vorkath\'s Zombified spawn, or combat dummies. It also tracks damage from the\nbone dagger, bone crossbow, and barrelchest anchor, and can send special attack energy threshold\nnotifications \nWorld map icons and tooltips have been added for Watson teleport scrolls, Mahogany Homes\nlocations, ancient cavern mining rocks, and the Crabclaw caves agility shortcuts and quest\nchamber \nThe menu entry swapper now supports swaps for Spria\'s NPC Contact, the Dwarven rock cake, and the\nSkull sceptre \nYou can now configure the color of the Tears of Guthix vein overlays \nDragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\nrespective skilling plugins \nThe Idle Notifier plugin now supports low & high run energy notifications \nThe Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons \nThe XP Globes plugin can now show your virtual level in the tooltip \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 24 contributors this release!
\nAdam (30):\n http-api: add soul wars hiscores\n hiscore panel: add soul wars zeal\n overlay: fix layouted overlays not respecting parent bounds\n spec counter: prevent dark core, zombified spawn, and combat dummies from reseting counter\n gpu: add option to use old texture brightness code\n spec counter: add spec threshold notifications\n npc highlight: revert fill color behavior\n config service: handle fromJson() returning null\n gpu: fix camera position\n runelite config: enable custom chrome only on Windows\n Shorten many config names to fit into side panel\n config panel: fix combobox displayed size\n custom cursor: use cursor name for combobox labels\n world map: consolidate world map points into one\n client: update gluegen and jogl osx natives\n client: update discord dependency version\n chat notifier: restore original color when highlighting own name\n kittype: use ordinal for index\n Use delomboked sources for javadoc generation\n client: update discord dependency version\n client: rename jogl/gluegen osx natives artifacts\n plugin hub panel: sort plugins by usercount\n plugin list panel: remove unused executor\n ground items: add despawn time for gwd instances\n spec counter: add bone dagger, crossbow, and anchor\n teamcapes: rewrite to use events\n image util: simplify fillImage alpha check\n inventory tags: add fill tag option\n ground markers: add option to export and import\n api: remove PlayerMenuOptionClicked\n\nBroooklyn (10):\n worldmap: add Watson teleport scroll location\n menu entry swapper: add dwarven rock cake swap\n discord: add Soul Wars regions\n loot tracker: Add Spoils of war (Soul Wars)\n worldmap: add Mahogany Homes minigame locations\n worldmap: add Soul Wars minigame and teleport locations\n itemstats: Add Soul Wars Potion of Power and Bandages\n agility: Add Crabclaw Caves obstacles\n worldmap: fix Crabclaw Caves Tunnel (quest) WorldPoint\n chatcommands: Add Soul Wars Zeal command\n\nChad J. Lewis (1):\n WidgetInfo: Remove unused SHOP_ITEMS_CONTAINER definition (#13011)\n\nChristian Gati (1):\n tears of guthix: add config for tears color\n\nCyborger1 (2):\n clues: Update Yanille anvil map clue description (#12825)\n idle notifier: Add low & high energy notifications (#12995)\n\nDavid (1):\n menu entry swapper: Add Spria to NPC Contact swap (#13070)\n\nHydrox6 (3):\n barrows: fix reward potential formatting showing too many 0s\n WidgetOverlay: Make Classic Resizeable Multicombat Indicator moveable\n timetracking: Add option to show the soonest completion time of a tab\n\nJZomerlei (1):\n Update Quest Enum to latest cache (#12999)\n\nJordan Atwood (5):\n AnimationID: Remove incorrect trailblazer harpoon entry\n Add support for trailblazer kit rewards\n ChatboxTextInput: Select full message on ctrl+a\n ChatboxTextInput: Improve open selection left/right handling\n HotColdLocation: Fix Pirates\' Cove spot\n\nJoshua Kahn (1):\n bank: Fix item container NPE (#13082)\n\nKevin (1):\n loottracker: Add opened bird nest ID to loot metadata (#12936)\n\nMax Weber (4):\n ImageUtil: rename getResourceStreamFromClass to loadImageResource\n worldhopper: use ImageUtil for loading images\n runelite-api: add Preferences::getHideUsername()\n Update widget ids to 2021-1-20\n\nMorgan Lewis (1):\n Fix growth stages of sweetcorn and watermelon\n\nMrnice98 (1):\n world map: add mining rock info for Ancient Cavern\n\nNick (1):\n CrypticClue: Include Varrock armour in Head chef clue solution (#13029)\n\nNick Wolff (1):\n clues: Allow Dragon scimitar (or) for Falo the bard step (#13032)\n\nPatrick Pollock (1):\n loottracker: Track boosted hunter level for birdhouse loot (#13068)\n\nPsikoi (1):\n hiscore panel: update boss icons\n\nUsman Akhtar (2):\n worldmap: Fix copper ore amount at battlefield mine (#12802)\n plugins: Fix copied variable names\n\nZach (1):\n itemstats: Fix Zamorak brew defence drain amount (#12921)\n\nequirs (1):\n kittype: add arms kit type\n\njamesahhh (1):\n menu swapper: Add Skull sceptre invoke swap (#12944)\n\nloldudester (1):\n Fix javadoc cutting off descriptions\n\nwrightmalone (1):\n xp globes: add option to show virtual level in tooltip\n
\n',image:"/img/blog/1.6.38-Release/boss-hiscore-icons.png"}}}]);
-//# sourceMappingURL=138.4aef2bff.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[138],{414:function(e,n){e.exports={title:"1.6.37 & 1.6.38 Release",description:"Ground marker sharing, refreshed hiscore boss icons, and filled inventory tag display",author:"Jordan",body:'We\'ve added the ability to share ground markers. Click the "Export Ground Markers" option on the\nworld map orb to copy nearby ground markers to your clipboard, or click the "Import Ground Markers"\noption to load them into your game! Thanks to @LlemonDuck for\nadding this feature.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Importing a set of ground markers in the shape of the RuneLite logo\n
\nThe hiscore panel\'s boss icons have been refreshed and tidied up, courtesy of\n@Psikoi\'s excellent updated icons.
\n
\nA "Fill" display has been added for your inventory tags, which can be toggled alongside the existing\noutline and underline options. Thanks to @1jz for this addition.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nSupport for soul wars has been added across our plugins, such as the rank in the hiscore panel and\nchat commands, tooltips on world map icons, food and potion boost information, and loot tracking\nfor spoils of war. \nA toggle has been added to the GPU plugin to render brighter textures so you can enjoy the\nbrighter look of your fire and infernal capes \nThe plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins \nThe Time Tracking plugin can now show the soonest completion of a crop for your farming tracker\ncategories (eg. Show time until your first tree grows, instead of when they would all be grown) \nThe Special Attack Counter plugin no longer resets your damage when attacking the Corporeal\nbeast\'s Dark core, Vorkath\'s Zombified spawn, or combat dummies. It also tracks damage from the\nbone dagger, bone crossbow, and barrelchest anchor, and can send special attack energy threshold\nnotifications \nWorld map icons and tooltips have been added for Watson teleport scrolls, Mahogany Homes\nlocations, ancient cavern mining rocks, and the Crabclaw caves agility shortcuts and quest\nchamber \nThe menu entry swapper now supports swaps for Spria\'s NPC Contact, the Dwarven rock cake, and the\nSkull sceptre \nYou can now configure the color of the Tears of Guthix vein overlays \nDragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\nrespective skilling plugins \nThe Idle Notifier plugin now supports low & high run energy notifications \nThe Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons \nThe XP Globes plugin can now show your virtual level in the tooltip \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 24 contributors this release!
\nAdam (30):\n http-api: add soul wars hiscores\n hiscore panel: add soul wars zeal\n overlay: fix layouted overlays not respecting parent bounds\n spec counter: prevent dark core, zombified spawn, and combat dummies from reseting counter\n gpu: add option to use old texture brightness code\n spec counter: add spec threshold notifications\n npc highlight: revert fill color behavior\n config service: handle fromJson() returning null\n gpu: fix camera position\n runelite config: enable custom chrome only on Windows\n Shorten many config names to fit into side panel\n config panel: fix combobox displayed size\n custom cursor: use cursor name for combobox labels\n world map: consolidate world map points into one\n client: update gluegen and jogl osx natives\n client: update discord dependency version\n chat notifier: restore original color when highlighting own name\n kittype: use ordinal for index\n Use delomboked sources for javadoc generation\n client: update discord dependency version\n client: rename jogl/gluegen osx natives artifacts\n plugin hub panel: sort plugins by usercount\n plugin list panel: remove unused executor\n ground items: add despawn time for gwd instances\n spec counter: add bone dagger, crossbow, and anchor\n teamcapes: rewrite to use events\n image util: simplify fillImage alpha check\n inventory tags: add fill tag option\n ground markers: add option to export and import\n api: remove PlayerMenuOptionClicked\n\nBroooklyn (10):\n worldmap: add Watson teleport scroll location\n menu entry swapper: add dwarven rock cake swap\n discord: add Soul Wars regions\n loot tracker: Add Spoils of war (Soul Wars)\n worldmap: add Mahogany Homes minigame locations\n worldmap: add Soul Wars minigame and teleport locations\n itemstats: Add Soul Wars Potion of Power and Bandages\n agility: Add Crabclaw Caves obstacles\n worldmap: fix Crabclaw Caves Tunnel (quest) WorldPoint\n chatcommands: Add Soul Wars Zeal command\n\nChad J. Lewis (1):\n WidgetInfo: Remove unused SHOP_ITEMS_CONTAINER definition (#13011)\n\nChristian Gati (1):\n tears of guthix: add config for tears color\n\nCyborger1 (2):\n clues: Update Yanille anvil map clue description (#12825)\n idle notifier: Add low & high energy notifications (#12995)\n\nDavid (1):\n menu entry swapper: Add Spria to NPC Contact swap (#13070)\n\nHydrox6 (3):\n barrows: fix reward potential formatting showing too many 0s\n WidgetOverlay: Make Classic Resizeable Multicombat Indicator moveable\n timetracking: Add option to show the soonest completion time of a tab\n\nJZomerlei (1):\n Update Quest Enum to latest cache (#12999)\n\nJordan Atwood (5):\n AnimationID: Remove incorrect trailblazer harpoon entry\n Add support for trailblazer kit rewards\n ChatboxTextInput: Select full message on ctrl+a\n ChatboxTextInput: Improve open selection left/right handling\n HotColdLocation: Fix Pirates\' Cove spot\n\nJoshua Kahn (1):\n bank: Fix item container NPE (#13082)\n\nKevin (1):\n loottracker: Add opened bird nest ID to loot metadata (#12936)\n\nMax Weber (4):\n ImageUtil: rename getResourceStreamFromClass to loadImageResource\n worldhopper: use ImageUtil for loading images\n runelite-api: add Preferences::getHideUsername()\n Update widget ids to 2021-1-20\n\nMorgan Lewis (1):\n Fix growth stages of sweetcorn and watermelon\n\nMrnice98 (1):\n world map: add mining rock info for Ancient Cavern\n\nNick (1):\n CrypticClue: Include Varrock armour in Head chef clue solution (#13029)\n\nNick Wolff (1):\n clues: Allow Dragon scimitar (or) for Falo the bard step (#13032)\n\nPatrick Pollock (1):\n loottracker: Track boosted hunter level for birdhouse loot (#13068)\n\nPsikoi (1):\n hiscore panel: update boss icons\n\nUsman Akhtar (2):\n worldmap: Fix copper ore amount at battlefield mine (#12802)\n plugins: Fix copied variable names\n\nZach (1):\n itemstats: Fix Zamorak brew defence drain amount (#12921)\n\nequirs (1):\n kittype: add arms kit type\n\njamesahhh (1):\n menu swapper: Add Skull sceptre invoke swap (#12944)\n\nloldudester (1):\n Fix javadoc cutting off descriptions\n\nwrightmalone (1):\n xp globes: add option to show virtual level in tooltip\n
\n',image:"/img/blog/1.6.38-Release/boss-hiscore-icons.png"}}}]);
+//# sourceMappingURL=138.04d02586.chunk.js.map
\ No newline at end of file
diff --git a/static/js/138.4aef2bff.chunk.js.map b/static/js/138.04d02586.chunk.js.map
similarity index 99%
rename from static/js/138.4aef2bff.chunk.js.map
rename to static/js/138.04d02586.chunk.js.map
index eda7ac321..9826d1c5e 100644
--- a/static/js/138.4aef2bff.chunk.js.map
+++ b/static/js/138.04d02586.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-01-27-10-00-1.6.38-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,wFAAwF,OAAS,SAAS,KAAO,i1PAA02P,MAAQ","file":"static/js/138.4aef2bff.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.37 & 1.6.38 Release\",\"description\":\"Ground marker sharing, refreshed hiscore boss icons, and filled inventory tag display\",\"author\":\"Jordan\",\"body\":\"We've added the ability to share ground markers. Click the "Export Ground Markers" option on the\\nworld map orb to copy nearby ground markers to your clipboard, or click the "Import Ground Markers"\\noption to load them into your game! Thanks to @LlemonDuck for\\nadding this feature.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Importing a set of ground markers in the shape of the RuneLite logo\\n
\\nThe hiscore panel's boss icons have been refreshed and tidied up, courtesy of\\n@Psikoi's excellent updated icons.
\\n
\\nA "Fill" display has been added for your inventory tags, which can be toggled alongside the existing\\noutline and underline options. Thanks to @1jz for this addition.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSupport for soul wars has been added across our plugins, such as the rank in the hiscore panel and\\nchat commands, tooltips on world map icons, food and potion boost information, and loot tracking\\nfor spoils of war. \\nA toggle has been added to the GPU plugin to render brighter textures so you can enjoy the\\nbrighter look of your fire and infernal capes \\nThe plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins \\nThe Time Tracking plugin can now show the soonest completion of a crop for your farming tracker\\ncategories (eg. Show time until your first tree grows, instead of when they would all be grown) \\nThe Special Attack Counter plugin no longer resets your damage when attacking the Corporeal\\nbeast's Dark core, Vorkath's Zombified spawn, or combat dummies. It also tracks damage from the\\nbone dagger, bone crossbow, and barrelchest anchor, and can send special attack energy threshold\\nnotifications \\nWorld map icons and tooltips have been added for Watson teleport scrolls, Mahogany Homes\\nlocations, ancient cavern mining rocks, and the Crabclaw caves agility shortcuts and quest\\nchamber \\nThe menu entry swapper now supports swaps for Spria's NPC Contact, the Dwarven rock cake, and the\\nSkull sceptre \\nYou can now configure the color of the Tears of Guthix vein overlays \\nDragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\\nrespective skilling plugins \\nThe Idle Notifier plugin now supports low & high run energy notifications \\nThe Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons \\nThe XP Globes plugin can now show your virtual level in the tooltip \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 24 contributors this release!
\\nAdam (30):\\n http-api: add soul wars hiscores\\n hiscore panel: add soul wars zeal\\n overlay: fix layouted overlays not respecting parent bounds\\n spec counter: prevent dark core, zombified spawn, and combat dummies from reseting counter\\n gpu: add option to use old texture brightness code\\n spec counter: add spec threshold notifications\\n npc highlight: revert fill color behavior\\n config service: handle fromJson() returning null\\n gpu: fix camera position\\n runelite config: enable custom chrome only on Windows\\n Shorten many config names to fit into side panel\\n config panel: fix combobox displayed size\\n custom cursor: use cursor name for combobox labels\\n world map: consolidate world map points into one\\n client: update gluegen and jogl osx natives\\n client: update discord dependency version\\n chat notifier: restore original color when highlighting own name\\n kittype: use ordinal for index\\n Use delomboked sources for javadoc generation\\n client: update discord dependency version\\n client: rename jogl/gluegen osx natives artifacts\\n plugin hub panel: sort plugins by usercount\\n plugin list panel: remove unused executor\\n ground items: add despawn time for gwd instances\\n spec counter: add bone dagger, crossbow, and anchor\\n teamcapes: rewrite to use events\\n image util: simplify fillImage alpha check\\n inventory tags: add fill tag option\\n ground markers: add option to export and import\\n api: remove PlayerMenuOptionClicked\\n\\nBroooklyn (10):\\n worldmap: add Watson teleport scroll location\\n menu entry swapper: add dwarven rock cake swap\\n discord: add Soul Wars regions\\n loot tracker: Add Spoils of war (Soul Wars)\\n worldmap: add Mahogany Homes minigame locations\\n worldmap: add Soul Wars minigame and teleport locations\\n itemstats: Add Soul Wars Potion of Power and Bandages\\n agility: Add Crabclaw Caves obstacles\\n worldmap: fix Crabclaw Caves Tunnel (quest) WorldPoint\\n chatcommands: Add Soul Wars Zeal command\\n\\nChad J. Lewis (1):\\n WidgetInfo: Remove unused SHOP_ITEMS_CONTAINER definition (#13011)\\n\\nChristian Gati (1):\\n tears of guthix: add config for tears color\\n\\nCyborger1 (2):\\n clues: Update Yanille anvil map clue description (#12825)\\n idle notifier: Add low & high energy notifications (#12995)\\n\\nDavid (1):\\n menu entry swapper: Add Spria to NPC Contact swap (#13070)\\n\\nHydrox6 (3):\\n barrows: fix reward potential formatting showing too many 0s\\n WidgetOverlay: Make Classic Resizeable Multicombat Indicator moveable\\n timetracking: Add option to show the soonest completion time of a tab\\n\\nJZomerlei (1):\\n Update Quest Enum to latest cache (#12999)\\n\\nJordan Atwood (5):\\n AnimationID: Remove incorrect trailblazer harpoon entry\\n Add support for trailblazer kit rewards\\n ChatboxTextInput: Select full message on ctrl+a\\n ChatboxTextInput: Improve open selection left/right handling\\n HotColdLocation: Fix Pirates' Cove spot\\n\\nJoshua Kahn (1):\\n bank: Fix item container NPE (#13082)\\n\\nKevin (1):\\n loottracker: Add opened bird nest ID to loot metadata (#12936)\\n\\nMax Weber (4):\\n ImageUtil: rename getResourceStreamFromClass to loadImageResource\\n worldhopper: use ImageUtil for loading images\\n runelite-api: add Preferences::getHideUsername()\\n Update widget ids to 2021-1-20\\n\\nMorgan Lewis (1):\\n Fix growth stages of sweetcorn and watermelon\\n\\nMrnice98 (1):\\n world map: add mining rock info for Ancient Cavern\\n\\nNick (1):\\n CrypticClue: Include Varrock armour in Head chef clue solution (#13029)\\n\\nNick Wolff (1):\\n clues: Allow Dragon scimitar (or) for Falo the bard step (#13032)\\n\\nPatrick Pollock (1):\\n loottracker: Track boosted hunter level for birdhouse loot (#13068)\\n\\nPsikoi (1):\\n hiscore panel: update boss icons\\n\\nUsman Akhtar (2):\\n worldmap: Fix copper ore amount at battlefield mine (#12802)\\n plugins: Fix copied variable names\\n\\nZach (1):\\n itemstats: Fix Zamorak brew defence drain amount (#12921)\\n\\nequirs (1):\\n kittype: add arms kit type\\n\\njamesahhh (1):\\n menu swapper: Add Skull sceptre invoke swap (#12944)\\n\\nloldudester (1):\\n Fix javadoc cutting off descriptions\\n\\nwrightmalone (1):\\n xp globes: add option to show virtual level in tooltip\\n
\\n\",\"image\":\"/img/blog/1.6.38-Release/boss-hiscore-icons.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-01-27-10-00-1.6.38-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,wFAAwF,OAAS,SAAS,KAAO,i1PAA02P,MAAQ","file":"static/js/138.04d02586.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.6.37 & 1.6.38 Release\",\"description\":\"Ground marker sharing, refreshed hiscore boss icons, and filled inventory tag display\",\"author\":\"Jordan\",\"body\":\"We've added the ability to share ground markers. Click the "Export Ground Markers" option on the\\nworld map orb to copy nearby ground markers to your clipboard, or click the "Import Ground Markers"\\noption to load them into your game! Thanks to @LlemonDuck for\\nadding this feature.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Importing a set of ground markers in the shape of the RuneLite logo\\n
\\nThe hiscore panel's boss icons have been refreshed and tidied up, courtesy of\\n@Psikoi's excellent updated icons.
\\n
\\nA "Fill" display has been added for your inventory tags, which can be toggled alongside the existing\\noutline and underline options. Thanks to @1jz for this addition.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSupport for soul wars has been added across our plugins, such as the rank in the hiscore panel and\\nchat commands, tooltips on world map icons, food and potion boost information, and loot tracking\\nfor spoils of war. \\nA toggle has been added to the GPU plugin to render brighter textures so you can enjoy the\\nbrighter look of your fire and infernal capes \\nThe plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins \\nThe Time Tracking plugin can now show the soonest completion of a crop for your farming tracker\\ncategories (eg. Show time until your first tree grows, instead of when they would all be grown) \\nThe Special Attack Counter plugin no longer resets your damage when attacking the Corporeal\\nbeast's Dark core, Vorkath's Zombified spawn, or combat dummies. It also tracks damage from the\\nbone dagger, bone crossbow, and barrelchest anchor, and can send special attack energy threshold\\nnotifications \\nWorld map icons and tooltips have been added for Watson teleport scrolls, Mahogany Homes\\nlocations, ancient cavern mining rocks, and the Crabclaw caves agility shortcuts and quest\\nchamber \\nThe menu entry swapper now supports swaps for Spria's NPC Contact, the Dwarven rock cake, and the\\nSkull sceptre \\nYou can now configure the color of the Tears of Guthix vein overlays \\nDragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\\nrespective skilling plugins \\nThe Idle Notifier plugin now supports low & high run energy notifications \\nThe Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons \\nThe XP Globes plugin can now show your virtual level in the tooltip \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 24 contributors this release!
\\nAdam (30):\\n http-api: add soul wars hiscores\\n hiscore panel: add soul wars zeal\\n overlay: fix layouted overlays not respecting parent bounds\\n spec counter: prevent dark core, zombified spawn, and combat dummies from reseting counter\\n gpu: add option to use old texture brightness code\\n spec counter: add spec threshold notifications\\n npc highlight: revert fill color behavior\\n config service: handle fromJson() returning null\\n gpu: fix camera position\\n runelite config: enable custom chrome only on Windows\\n Shorten many config names to fit into side panel\\n config panel: fix combobox displayed size\\n custom cursor: use cursor name for combobox labels\\n world map: consolidate world map points into one\\n client: update gluegen and jogl osx natives\\n client: update discord dependency version\\n chat notifier: restore original color when highlighting own name\\n kittype: use ordinal for index\\n Use delomboked sources for javadoc generation\\n client: update discord dependency version\\n client: rename jogl/gluegen osx natives artifacts\\n plugin hub panel: sort plugins by usercount\\n plugin list panel: remove unused executor\\n ground items: add despawn time for gwd instances\\n spec counter: add bone dagger, crossbow, and anchor\\n teamcapes: rewrite to use events\\n image util: simplify fillImage alpha check\\n inventory tags: add fill tag option\\n ground markers: add option to export and import\\n api: remove PlayerMenuOptionClicked\\n\\nBroooklyn (10):\\n worldmap: add Watson teleport scroll location\\n menu entry swapper: add dwarven rock cake swap\\n discord: add Soul Wars regions\\n loot tracker: Add Spoils of war (Soul Wars)\\n worldmap: add Mahogany Homes minigame locations\\n worldmap: add Soul Wars minigame and teleport locations\\n itemstats: Add Soul Wars Potion of Power and Bandages\\n agility: Add Crabclaw Caves obstacles\\n worldmap: fix Crabclaw Caves Tunnel (quest) WorldPoint\\n chatcommands: Add Soul Wars Zeal command\\n\\nChad J. Lewis (1):\\n WidgetInfo: Remove unused SHOP_ITEMS_CONTAINER definition (#13011)\\n\\nChristian Gati (1):\\n tears of guthix: add config for tears color\\n\\nCyborger1 (2):\\n clues: Update Yanille anvil map clue description (#12825)\\n idle notifier: Add low & high energy notifications (#12995)\\n\\nDavid (1):\\n menu entry swapper: Add Spria to NPC Contact swap (#13070)\\n\\nHydrox6 (3):\\n barrows: fix reward potential formatting showing too many 0s\\n WidgetOverlay: Make Classic Resizeable Multicombat Indicator moveable\\n timetracking: Add option to show the soonest completion time of a tab\\n\\nJZomerlei (1):\\n Update Quest Enum to latest cache (#12999)\\n\\nJordan Atwood (5):\\n AnimationID: Remove incorrect trailblazer harpoon entry\\n Add support for trailblazer kit rewards\\n ChatboxTextInput: Select full message on ctrl+a\\n ChatboxTextInput: Improve open selection left/right handling\\n HotColdLocation: Fix Pirates' Cove spot\\n\\nJoshua Kahn (1):\\n bank: Fix item container NPE (#13082)\\n\\nKevin (1):\\n loottracker: Add opened bird nest ID to loot metadata (#12936)\\n\\nMax Weber (4):\\n ImageUtil: rename getResourceStreamFromClass to loadImageResource\\n worldhopper: use ImageUtil for loading images\\n runelite-api: add Preferences::getHideUsername()\\n Update widget ids to 2021-1-20\\n\\nMorgan Lewis (1):\\n Fix growth stages of sweetcorn and watermelon\\n\\nMrnice98 (1):\\n world map: add mining rock info for Ancient Cavern\\n\\nNick (1):\\n CrypticClue: Include Varrock armour in Head chef clue solution (#13029)\\n\\nNick Wolff (1):\\n clues: Allow Dragon scimitar (or) for Falo the bard step (#13032)\\n\\nPatrick Pollock (1):\\n loottracker: Track boosted hunter level for birdhouse loot (#13068)\\n\\nPsikoi (1):\\n hiscore panel: update boss icons\\n\\nUsman Akhtar (2):\\n worldmap: Fix copper ore amount at battlefield mine (#12802)\\n plugins: Fix copied variable names\\n\\nZach (1):\\n itemstats: Fix Zamorak brew defence drain amount (#12921)\\n\\nequirs (1):\\n kittype: add arms kit type\\n\\njamesahhh (1):\\n menu swapper: Add Skull sceptre invoke swap (#12944)\\n\\nloldudester (1):\\n Fix javadoc cutting off descriptions\\n\\nwrightmalone (1):\\n xp globes: add option to show virtual level in tooltip\\n
\\n\",\"image\":\"/img/blog/1.6.38-Release/boss-hiscore-icons.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/139.fae5fb04.chunk.js b/static/js/139.1c46a6c4.chunk.js
similarity index 98%
rename from static/js/139.fae5fb04.chunk.js
rename to static/js/139.1c46a6c4.chunk.js
index bb048c658..276cdc6b9 100644
--- a/static/js/139.fae5fb04.chunk.js
+++ b/static/js/139.1c46a6c4.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[139],{414:function(e,n){e.exports={title:"1.7.0 Release",description:"Extended draw distance on MacOS & farming tracker notifications",author:"Adam",body:'MacOS extended draw distance \nOn MacOS, the GPU plugin now supports extending the draw distance further. To do so, enable the\nCompute Shaders
option in the GPU
plugin and then restart the plugin. Big thanks to\n@LlemonDuck for doing a lot of work on this.
\nWe\'ve also fixed some symbols on the clue scroll and barrows overlay showing incorrectly on MacOS,\nas well as the dropdown menu on the plugin search bar.
\nWhile we still do not have an MacOS launcher that runs native on the Apple M1, the core client has been\nupdated so it can run natively if you run the launcher RuneLite.jar
directly with a native JVM .\nIf you are technically apt enough to do this, it may be worth it if you have one of these new machines.\nWe still plan on providing a native launcher for the M1 in the future.
\nFarming tracker notifications \nThe time tracking plugin now has an option to send notifications when crops are done growing.\nIt can be enabled per-crop by clicking the bell icon.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe tag tab named clue
now works once again \nThe entity hider now allows hiding ignored players \nChat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\nThey also no longer lose their coloring. \nThe fishing plugin can now send notifications for flying fish when fishing minnows \nThe idle notifier now works at the Ectofuntus and at looms \nSpoon and weary face emojis have been added (--o
and Dx
respectively) \nThe loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls \nThe chat notifications plugin has a new option to send you notifications for receiving private messages \nThe despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables \nA Use
swap has been added for battlestaves \nThe chat color username recolor option now works correctly on ironmen and player moderators \nThe player name of the client which sends tray notifications is now included in notification title \nThe screenshot plugin now has an configurable threshold for which Valuable drops to screenshot. This allows\nsetting a very low valuable drop notification in order to see the drops in the chat box, but still\nscreenshot certain valuable ones \nThe music volume percentage is now shown when hovering the draggable handle, instead of just the track \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors in this release & 1.6.39!
\nAdam (26):\n menu manager: preserve managed menu option ordering\n api: remove npc action changed event\n world hopper: move hop() to client thread\n tile: add setter for ground object\n Apply default font to text with unicode characters\n Revert "runelite-client: Don\'t use system specific modifier key names"\n image component: support setPreferredSize\n Revert "image component: support setPreferredSize"\n config manager: use createTempFile for config temp file\n bank tags: allow plugins to register their own tag names\n clue scroll plugin: fix test\n config manager: require config group and key when setting configuration\n api: add an addChatMessage method overload to allow skipping events\n chat command manager: remove unnecessary null tests\n chat message manager: format runelite messages prior to adding\n chat history: fix replaying runelite-formatted messages\n friends chat: use return value of addChatMessage\n icon text field: use only awt key listener\n bank tags: fix tag named clue coexisting with the special "clue" tab\n perspective: support rectangular tile areas\n devtools: fix drawing game object overlays multiple times\n farming tracker: don\'t send notifications for empty crop state\n chat commands: comma separate values in several commands\n gpu: add opencl support for macos\n entity hider: add option to hide ignored players\n Bump to 1.7.0-SNAPSHOT\n\nAlexsuperfly (2):\n timers: Remove cannon timer when cannon is destroyed\n cannon: Remove cannon when it is destroyed\n\nAnjaneya Bhardwaj (1):\n fishing: Add minnows flying fish notification (#13126)\n\nAuenc (1):\n idle notifier: Add Ectofuntus animations (#13177)\n\nBroooklyn (14):\n emoji: Add spoon emoji with trigger `--o`\n itemstats: Update Soul Wars Bandages healing\n npc indicators: remove tags from minimap npc name\n hotkey button: use default font\n loottracker: add Gold Chest tracking (Shades of Mort\'ton)\n worldmap: add Shades of Mort\'ton minigame location\n chatnotifications: add private message notification\n discord: Isle of Souls region additions\n fishing: add Isle of Souls NPC IDs to enum\n worldmap: add Isle of Souls locations\n slayer: add Isle of Souls task location\n discord: Use regions instead of varbits for raiding activity\n discord: Remove code for handling of varbits\n ground items: add Nightmare instance to normal despawn timers\n\nCyborger1 (3):\n clues: Improve Lovakengj Sulphur Mine area descriptions (#13180)\n emoji: Replace spoon and fork-and-knife emojis\n emoji plugin: set message node message instead of rl format message\n\nDavid (1):\n menu entry swapper: Add battlestaff use swap (#13140)\n\nHydrox6 (4):\n clues: add Isle of Souls Hot/Cold location\n ground markers: show existing label when labeling a marker\n chat color: fix usernames not being recoloured if they have an icon\n chat color: fix nonsensical test\n\nJonathan Lee (1):\n loot tracker: add support for isle of souls chests\n\nJonatino (1):\n Fix incorrect named value when storing FlatStorage caches\n\nJordan Atwood (5):\n MenuOptionClicked: Add selectedItemIndex field\n clues: Add Isle of Souls coordinate clues\n cluescrolls: Fix beginner/master clue step reset\n notifier: Add username to tray notification title\n cluescrolls: Re-check named object highlights after hopping\n\nLiam Schmidt (1):\n screenshot: Add valuable drop threshold config\n\nMax Weber (3):\n don\'t use gson\'s reflection serialization on non RuneLite classes\n ReflectUtil: allow privateLookupIn cross-classloader with JDK-8173978\n http-api: allow gsoning classes outside of net.runelite\n\nNick Wolff (1):\n emoji: Add weary face emoji\n\nObsoleteXero (1):\n idle notifier: Add Loom crafting animation (#13154)\n\nPsikoi (1):\n Resize and tweak hiscores boss icons\n\nTaylor Abraham (1):\n music: Make volume percent visible when hovering handle\n\nUsman Akhtar (2):\n worldmap: use boosted level for map icon tooltips\n grounditems: Add despawn timer for items placed on tables\n\nbuttonpoker (1):\n cannon: Remove Mourner Headquarters elf cannon spot (#13196)\n\nloldudester (3):\n TimeTracking: Move birdhouse schedule to ScheduledExecutorService\n TimeTracking: Add farming notifications\n TimeTracking: Return shortened weekdays in doneEstimates\n
\n',image:"/img/blog/1.7.0-Release/farming_notif.png"}}}]);
-//# sourceMappingURL=139.fae5fb04.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[139],{415:function(e,n){e.exports={title:"1.7.0 Release",description:"Extended draw distance on MacOS & farming tracker notifications",author:"Adam",body:'MacOS extended draw distance \nOn MacOS, the GPU plugin now supports extending the draw distance further. To do so, enable the\nCompute Shaders
option in the GPU
plugin and then restart the plugin. Big thanks to\n@LlemonDuck for doing a lot of work on this.
\nWe\'ve also fixed some symbols on the clue scroll and barrows overlay showing incorrectly on MacOS,\nas well as the dropdown menu on the plugin search bar.
\nWhile we still do not have an MacOS launcher that runs native on the Apple M1, the core client has been\nupdated so it can run natively if you run the launcher RuneLite.jar
directly with a native JVM .\nIf you are technically apt enough to do this, it may be worth it if you have one of these new machines.\nWe still plan on providing a native launcher for the M1 in the future.
\nFarming tracker notifications \nThe time tracking plugin now has an option to send notifications when crops are done growing.\nIt can be enabled per-crop by clicking the bell icon.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe tag tab named clue
now works once again \nThe entity hider now allows hiding ignored players \nChat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\nThey also no longer lose their coloring. \nThe fishing plugin can now send notifications for flying fish when fishing minnows \nThe idle notifier now works at the Ectofuntus and at looms \nSpoon and weary face emojis have been added (--o
and Dx
respectively) \nThe loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls \nThe chat notifications plugin has a new option to send you notifications for receiving private messages \nThe despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables \nA Use
swap has been added for battlestaves \nThe chat color username recolor option now works correctly on ironmen and player moderators \nThe player name of the client which sends tray notifications is now included in notification title \nThe screenshot plugin now has an configurable threshold for which Valuable drops to screenshot. This allows\nsetting a very low valuable drop notification in order to see the drops in the chat box, but still\nscreenshot certain valuable ones \nThe music volume percentage is now shown when hovering the draggable handle, instead of just the track \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors in this release & 1.6.39!
\nAdam (26):\n menu manager: preserve managed menu option ordering\n api: remove npc action changed event\n world hopper: move hop() to client thread\n tile: add setter for ground object\n Apply default font to text with unicode characters\n Revert "runelite-client: Don\'t use system specific modifier key names"\n image component: support setPreferredSize\n Revert "image component: support setPreferredSize"\n config manager: use createTempFile for config temp file\n bank tags: allow plugins to register their own tag names\n clue scroll plugin: fix test\n config manager: require config group and key when setting configuration\n api: add an addChatMessage method overload to allow skipping events\n chat command manager: remove unnecessary null tests\n chat message manager: format runelite messages prior to adding\n chat history: fix replaying runelite-formatted messages\n friends chat: use return value of addChatMessage\n icon text field: use only awt key listener\n bank tags: fix tag named clue coexisting with the special "clue" tab\n perspective: support rectangular tile areas\n devtools: fix drawing game object overlays multiple times\n farming tracker: don\'t send notifications for empty crop state\n chat commands: comma separate values in several commands\n gpu: add opencl support for macos\n entity hider: add option to hide ignored players\n Bump to 1.7.0-SNAPSHOT\n\nAlexsuperfly (2):\n timers: Remove cannon timer when cannon is destroyed\n cannon: Remove cannon when it is destroyed\n\nAnjaneya Bhardwaj (1):\n fishing: Add minnows flying fish notification (#13126)\n\nAuenc (1):\n idle notifier: Add Ectofuntus animations (#13177)\n\nBroooklyn (14):\n emoji: Add spoon emoji with trigger `--o`\n itemstats: Update Soul Wars Bandages healing\n npc indicators: remove tags from minimap npc name\n hotkey button: use default font\n loottracker: add Gold Chest tracking (Shades of Mort\'ton)\n worldmap: add Shades of Mort\'ton minigame location\n chatnotifications: add private message notification\n discord: Isle of Souls region additions\n fishing: add Isle of Souls NPC IDs to enum\n worldmap: add Isle of Souls locations\n slayer: add Isle of Souls task location\n discord: Use regions instead of varbits for raiding activity\n discord: Remove code for handling of varbits\n ground items: add Nightmare instance to normal despawn timers\n\nCyborger1 (3):\n clues: Improve Lovakengj Sulphur Mine area descriptions (#13180)\n emoji: Replace spoon and fork-and-knife emojis\n emoji plugin: set message node message instead of rl format message\n\nDavid (1):\n menu entry swapper: Add battlestaff use swap (#13140)\n\nHydrox6 (4):\n clues: add Isle of Souls Hot/Cold location\n ground markers: show existing label when labeling a marker\n chat color: fix usernames not being recoloured if they have an icon\n chat color: fix nonsensical test\n\nJonathan Lee (1):\n loot tracker: add support for isle of souls chests\n\nJonatino (1):\n Fix incorrect named value when storing FlatStorage caches\n\nJordan Atwood (5):\n MenuOptionClicked: Add selectedItemIndex field\n clues: Add Isle of Souls coordinate clues\n cluescrolls: Fix beginner/master clue step reset\n notifier: Add username to tray notification title\n cluescrolls: Re-check named object highlights after hopping\n\nLiam Schmidt (1):\n screenshot: Add valuable drop threshold config\n\nMax Weber (3):\n don\'t use gson\'s reflection serialization on non RuneLite classes\n ReflectUtil: allow privateLookupIn cross-classloader with JDK-8173978\n http-api: allow gsoning classes outside of net.runelite\n\nNick Wolff (1):\n emoji: Add weary face emoji\n\nObsoleteXero (1):\n idle notifier: Add Loom crafting animation (#13154)\n\nPsikoi (1):\n Resize and tweak hiscores boss icons\n\nTaylor Abraham (1):\n music: Make volume percent visible when hovering handle\n\nUsman Akhtar (2):\n worldmap: use boosted level for map icon tooltips\n grounditems: Add despawn timer for items placed on tables\n\nbuttonpoker (1):\n cannon: Remove Mourner Headquarters elf cannon spot (#13196)\n\nloldudester (3):\n TimeTracking: Move birdhouse schedule to ScheduledExecutorService\n TimeTracking: Add farming notifications\n TimeTracking: Return shortened weekdays in doneEstimates\n
\n',image:"/img/blog/1.7.0-Release/farming_notif.png"}}}]);
+//# sourceMappingURL=139.1c46a6c4.chunk.js.map
\ No newline at end of file
diff --git a/static/js/139.fae5fb04.chunk.js.map b/static/js/139.1c46a6c4.chunk.js.map
similarity index 99%
rename from static/js/139.fae5fb04.chunk.js.map
rename to static/js/139.1c46a6c4.chunk.js.map
index 669446ad0..2d7feb93e 100644
--- a/static/js/139.fae5fb04.chunk.js.map
+++ b/static/js/139.1c46a6c4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-02-13-00-00-1.7.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kEAAkE,OAAS,OAAO,KAAO,qlPAA8lP,MAAQ","file":"static/js/139.fae5fb04.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.0 Release\",\"description\":\"Extended draw distance on MacOS & farming tracker notifications\",\"author\":\"Adam\",\"body\":\"MacOS extended draw distance \\nOn MacOS, the GPU plugin now supports extending the draw distance further. To do so, enable the\\nCompute Shaders
option in the GPU
plugin and then restart the plugin. Big thanks to\\n@LlemonDuck for doing a lot of work on this.
\\nWe've also fixed some symbols on the clue scroll and barrows overlay showing incorrectly on MacOS,\\nas well as the dropdown menu on the plugin search bar.
\\nWhile we still do not have an MacOS launcher that runs native on the Apple M1, the core client has been\\nupdated so it can run natively if you run the launcher RuneLite.jar
directly with a native JVM .\\nIf you are technically apt enough to do this, it may be worth it if you have one of these new machines.\\nWe still plan on providing a native launcher for the M1 in the future.
\\nFarming tracker notifications \\nThe time tracking plugin now has an option to send notifications when crops are done growing.\\nIt can be enabled per-crop by clicking the bell icon.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe tag tab named clue
now works once again \\nThe entity hider now allows hiding ignored players \\nChat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\\nThey also no longer lose their coloring. \\nThe fishing plugin can now send notifications for flying fish when fishing minnows \\nThe idle notifier now works at the Ectofuntus and at looms \\nSpoon and weary face emojis have been added (--o
and Dx
respectively) \\nThe loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls \\nThe chat notifications plugin has a new option to send you notifications for receiving private messages \\nThe despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables \\nA Use
swap has been added for battlestaves \\nThe chat color username recolor option now works correctly on ironmen and player moderators \\nThe player name of the client which sends tray notifications is now included in notification title \\nThe screenshot plugin now has an configurable threshold for which Valuable drops to screenshot. This allows\\nsetting a very low valuable drop notification in order to see the drops in the chat box, but still\\nscreenshot certain valuable ones \\nThe music volume percentage is now shown when hovering the draggable handle, instead of just the track \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors in this release & 1.6.39!
\\nAdam (26):\\n menu manager: preserve managed menu option ordering\\n api: remove npc action changed event\\n world hopper: move hop() to client thread\\n tile: add setter for ground object\\n Apply default font to text with unicode characters\\n Revert "runelite-client: Don't use system specific modifier key names"\\n image component: support setPreferredSize\\n Revert "image component: support setPreferredSize"\\n config manager: use createTempFile for config temp file\\n bank tags: allow plugins to register their own tag names\\n clue scroll plugin: fix test\\n config manager: require config group and key when setting configuration\\n api: add an addChatMessage method overload to allow skipping events\\n chat command manager: remove unnecessary null tests\\n chat message manager: format runelite messages prior to adding\\n chat history: fix replaying runelite-formatted messages\\n friends chat: use return value of addChatMessage\\n icon text field: use only awt key listener\\n bank tags: fix tag named clue coexisting with the special "clue" tab\\n perspective: support rectangular tile areas\\n devtools: fix drawing game object overlays multiple times\\n farming tracker: don't send notifications for empty crop state\\n chat commands: comma separate values in several commands\\n gpu: add opencl support for macos\\n entity hider: add option to hide ignored players\\n Bump to 1.7.0-SNAPSHOT\\n\\nAlexsuperfly (2):\\n timers: Remove cannon timer when cannon is destroyed\\n cannon: Remove cannon when it is destroyed\\n\\nAnjaneya Bhardwaj (1):\\n fishing: Add minnows flying fish notification (#13126)\\n\\nAuenc (1):\\n idle notifier: Add Ectofuntus animations (#13177)\\n\\nBroooklyn (14):\\n emoji: Add spoon emoji with trigger `--o`\\n itemstats: Update Soul Wars Bandages healing\\n npc indicators: remove tags from minimap npc name\\n hotkey button: use default font\\n loottracker: add Gold Chest tracking (Shades of Mort'ton)\\n worldmap: add Shades of Mort'ton minigame location\\n chatnotifications: add private message notification\\n discord: Isle of Souls region additions\\n fishing: add Isle of Souls NPC IDs to enum\\n worldmap: add Isle of Souls locations\\n slayer: add Isle of Souls task location\\n discord: Use regions instead of varbits for raiding activity\\n discord: Remove code for handling of varbits\\n ground items: add Nightmare instance to normal despawn timers\\n\\nCyborger1 (3):\\n clues: Improve Lovakengj Sulphur Mine area descriptions (#13180)\\n emoji: Replace spoon and fork-and-knife emojis\\n emoji plugin: set message node message instead of rl format message\\n\\nDavid (1):\\n menu entry swapper: Add battlestaff use swap (#13140)\\n\\nHydrox6 (4):\\n clues: add Isle of Souls Hot/Cold location\\n ground markers: show existing label when labeling a marker\\n chat color: fix usernames not being recoloured if they have an icon\\n chat color: fix nonsensical test\\n\\nJonathan Lee (1):\\n loot tracker: add support for isle of souls chests\\n\\nJonatino (1):\\n Fix incorrect named value when storing FlatStorage caches\\n\\nJordan Atwood (5):\\n MenuOptionClicked: Add selectedItemIndex field\\n clues: Add Isle of Souls coordinate clues\\n cluescrolls: Fix beginner/master clue step reset\\n notifier: Add username to tray notification title\\n cluescrolls: Re-check named object highlights after hopping\\n\\nLiam Schmidt (1):\\n screenshot: Add valuable drop threshold config\\n\\nMax Weber (3):\\n don't use gson's reflection serialization on non RuneLite classes\\n ReflectUtil: allow privateLookupIn cross-classloader with JDK-8173978\\n http-api: allow gsoning classes outside of net.runelite\\n\\nNick Wolff (1):\\n emoji: Add weary face emoji\\n\\nObsoleteXero (1):\\n idle notifier: Add Loom crafting animation (#13154)\\n\\nPsikoi (1):\\n Resize and tweak hiscores boss icons\\n\\nTaylor Abraham (1):\\n music: Make volume percent visible when hovering handle\\n\\nUsman Akhtar (2):\\n worldmap: use boosted level for map icon tooltips\\n grounditems: Add despawn timer for items placed on tables\\n\\nbuttonpoker (1):\\n cannon: Remove Mourner Headquarters elf cannon spot (#13196)\\n\\nloldudester (3):\\n TimeTracking: Move birdhouse schedule to ScheduledExecutorService\\n TimeTracking: Add farming notifications\\n TimeTracking: Return shortened weekdays in doneEstimates\\n
\\n\",\"image\":\"/img/blog/1.7.0-Release/farming_notif.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-02-13-00-00-1.7.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kEAAkE,OAAS,OAAO,KAAO,qlPAA8lP,MAAQ","file":"static/js/139.1c46a6c4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.0 Release\",\"description\":\"Extended draw distance on MacOS & farming tracker notifications\",\"author\":\"Adam\",\"body\":\"MacOS extended draw distance \\nOn MacOS, the GPU plugin now supports extending the draw distance further. To do so, enable the\\nCompute Shaders
option in the GPU
plugin and then restart the plugin. Big thanks to\\n@LlemonDuck for doing a lot of work on this.
\\nWe've also fixed some symbols on the clue scroll and barrows overlay showing incorrectly on MacOS,\\nas well as the dropdown menu on the plugin search bar.
\\nWhile we still do not have an MacOS launcher that runs native on the Apple M1, the core client has been\\nupdated so it can run natively if you run the launcher RuneLite.jar
directly with a native JVM .\\nIf you are technically apt enough to do this, it may be worth it if you have one of these new machines.\\nWe still plan on providing a native launcher for the M1 in the future.
\\nFarming tracker notifications \\nThe time tracking plugin now has an option to send notifications when crops are done growing.\\nIt can be enabled per-crop by clicking the bell icon.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe tag tab named clue
now works once again \\nThe entity hider now allows hiding ignored players \\nChat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\\nThey also no longer lose their coloring. \\nThe fishing plugin can now send notifications for flying fish when fishing minnows \\nThe idle notifier now works at the Ectofuntus and at looms \\nSpoon and weary face emojis have been added (--o
and Dx
respectively) \\nThe loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls \\nThe chat notifications plugin has a new option to send you notifications for receiving private messages \\nThe despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables \\nA Use
swap has been added for battlestaves \\nThe chat color username recolor option now works correctly on ironmen and player moderators \\nThe player name of the client which sends tray notifications is now included in notification title \\nThe screenshot plugin now has an configurable threshold for which Valuable drops to screenshot. This allows\\nsetting a very low valuable drop notification in order to see the drops in the chat box, but still\\nscreenshot certain valuable ones \\nThe music volume percentage is now shown when hovering the draggable handle, instead of just the track \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors in this release & 1.6.39!
\\nAdam (26):\\n menu manager: preserve managed menu option ordering\\n api: remove npc action changed event\\n world hopper: move hop() to client thread\\n tile: add setter for ground object\\n Apply default font to text with unicode characters\\n Revert "runelite-client: Don't use system specific modifier key names"\\n image component: support setPreferredSize\\n Revert "image component: support setPreferredSize"\\n config manager: use createTempFile for config temp file\\n bank tags: allow plugins to register their own tag names\\n clue scroll plugin: fix test\\n config manager: require config group and key when setting configuration\\n api: add an addChatMessage method overload to allow skipping events\\n chat command manager: remove unnecessary null tests\\n chat message manager: format runelite messages prior to adding\\n chat history: fix replaying runelite-formatted messages\\n friends chat: use return value of addChatMessage\\n icon text field: use only awt key listener\\n bank tags: fix tag named clue coexisting with the special "clue" tab\\n perspective: support rectangular tile areas\\n devtools: fix drawing game object overlays multiple times\\n farming tracker: don't send notifications for empty crop state\\n chat commands: comma separate values in several commands\\n gpu: add opencl support for macos\\n entity hider: add option to hide ignored players\\n Bump to 1.7.0-SNAPSHOT\\n\\nAlexsuperfly (2):\\n timers: Remove cannon timer when cannon is destroyed\\n cannon: Remove cannon when it is destroyed\\n\\nAnjaneya Bhardwaj (1):\\n fishing: Add minnows flying fish notification (#13126)\\n\\nAuenc (1):\\n idle notifier: Add Ectofuntus animations (#13177)\\n\\nBroooklyn (14):\\n emoji: Add spoon emoji with trigger `--o`\\n itemstats: Update Soul Wars Bandages healing\\n npc indicators: remove tags from minimap npc name\\n hotkey button: use default font\\n loottracker: add Gold Chest tracking (Shades of Mort'ton)\\n worldmap: add Shades of Mort'ton minigame location\\n chatnotifications: add private message notification\\n discord: Isle of Souls region additions\\n fishing: add Isle of Souls NPC IDs to enum\\n worldmap: add Isle of Souls locations\\n slayer: add Isle of Souls task location\\n discord: Use regions instead of varbits for raiding activity\\n discord: Remove code for handling of varbits\\n ground items: add Nightmare instance to normal despawn timers\\n\\nCyborger1 (3):\\n clues: Improve Lovakengj Sulphur Mine area descriptions (#13180)\\n emoji: Replace spoon and fork-and-knife emojis\\n emoji plugin: set message node message instead of rl format message\\n\\nDavid (1):\\n menu entry swapper: Add battlestaff use swap (#13140)\\n\\nHydrox6 (4):\\n clues: add Isle of Souls Hot/Cold location\\n ground markers: show existing label when labeling a marker\\n chat color: fix usernames not being recoloured if they have an icon\\n chat color: fix nonsensical test\\n\\nJonathan Lee (1):\\n loot tracker: add support for isle of souls chests\\n\\nJonatino (1):\\n Fix incorrect named value when storing FlatStorage caches\\n\\nJordan Atwood (5):\\n MenuOptionClicked: Add selectedItemIndex field\\n clues: Add Isle of Souls coordinate clues\\n cluescrolls: Fix beginner/master clue step reset\\n notifier: Add username to tray notification title\\n cluescrolls: Re-check named object highlights after hopping\\n\\nLiam Schmidt (1):\\n screenshot: Add valuable drop threshold config\\n\\nMax Weber (3):\\n don't use gson's reflection serialization on non RuneLite classes\\n ReflectUtil: allow privateLookupIn cross-classloader with JDK-8173978\\n http-api: allow gsoning classes outside of net.runelite\\n\\nNick Wolff (1):\\n emoji: Add weary face emoji\\n\\nObsoleteXero (1):\\n idle notifier: Add Loom crafting animation (#13154)\\n\\nPsikoi (1):\\n Resize and tweak hiscores boss icons\\n\\nTaylor Abraham (1):\\n music: Make volume percent visible when hovering handle\\n\\nUsman Akhtar (2):\\n worldmap: use boosted level for map icon tooltips\\n grounditems: Add despawn timer for items placed on tables\\n\\nbuttonpoker (1):\\n cannon: Remove Mourner Headquarters elf cannon spot (#13196)\\n\\nloldudester (3):\\n TimeTracking: Move birdhouse schedule to ScheduledExecutorService\\n TimeTracking: Add farming notifications\\n TimeTracking: Return shortened weekdays in doneEstimates\\n
\\n\",\"image\":\"/img/blog/1.7.0-Release/farming_notif.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/14.f71ff71c.chunk.js b/static/js/14.11a9d4dd.chunk.js
similarity index 98%
rename from static/js/14.f71ff71c.chunk.js
rename to static/js/14.11a9d4dd.chunk.js
index a07612637..9e5dfba01 100644
--- a/static/js/14.f71ff71c.chunk.js
+++ b/static/js/14.11a9d4dd.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[14],{126:function(e,a,t){"use strict";var c=t(0);var d=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));a.a=e=>{let{children:a,fullWidth:t,...s}=e;return s.class=s.class?"container "+s.class:"container",s.style={...s.style||{},maxWidth:t?"100%":""},Object(c.g)("div",Object.assign({},s,{id:"layout"}),a,Object(c.g)(d,null))}},127:function(e,a,t){"use strict";var c=t(0);var d=()=>Object(c.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(c.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(c.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(c.g)("div",{class:"fa-4x"},Object(c.g)("i",{class:"fas fa-spinner fa-spin"})))));a.a=e=>a=>class extends c.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const a=e(this.props);a instanceof Promise?a.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:t}=this.state;return t?Object(c.g)(d,null):Object(c.g)(a,e)}}},446:function(e,a,t){},467:function(e,a,t){"use strict";t.r(a);t(446);var c=t(126),d=t(7),s=t.n(d),b=["020004743a7e0bf6d257ef0833b9ed229204a0112e80a05adfed36d73d7c3d5e","07c658c06b48637409a27fa299dbb447ea2a047db46fa726ea208fda5b8e4cef","2cea36b447a507c793367111a6d891de6fa028440daba22aa24a504034816fbd","36da47090fa642a4ae9bdc28f7ba00fda16dbf363064c96a5132a3f00fe4685d","3e4d8ba370c6369962279d88de7371f9a285a5c1eeced2f3f0507acd8265850a","49ab6cb2e916b1dd62db1f52f1223bc47226a226abd7f1e3d0c9a34351eb23d0","7b6a27fcae09b79db920a402be8d8f69249257b2cc491fb1372b2852aaf67341","8715ddf633d4e4fe9f928cec84b20df1eedb630ef6e3b5d826039f3cbd9268a2","8865dd1b9c902e89a1906159ed097242a49786652dc5a0407d8316e4ef56369b","8edf21633c91a2a360cb3433f9322d3e3cd1fc2f198dc95f64d2e7ea8ff147e9","9041dcc4ebeb326e02744e10391e90fe96d7fb56c9824fa283ec55321cf22455","96bd4957980d4cebee1c5978ce301e5950a50a6dfb40f191d91bc61a6777cd20","a202dea75936f16e11507ec6a666fc86c8d4ac9dec971be5930c470cd090bf23","b590edee17e2a4236b5a179d35f5934ddf9c9075fb09e93a7408f63242394a5f","bf7d1894f90d849619aab940c8d639340c2e745c1411e55d7735ac31398bc384","d89a7d68467b30e0f1375250b7eb8e5e42b37994843f9b2ee6dcc1a53c829ca9","70ea6088a2d7caf1d7f56c4aedc3952b675299611fe09e86c8c1a084bef69554","77b0a566fda117fbb1a03b57dad7811cda575a1bf62e6de7cabb75767fa9453c","f5fd4882635bbe82bd11a83d75bc5ed89685a9fb640936a1ef012fe580b9bf4b","c424cb30ded96ae34ed817053accbd1757391f55c8ebd6000ad811cc0a74a428","833daa64c2e12a1e1e4b168b4f66cbeb0d77afe660ddef13dae0da8ab4d19629","68340acbbd876108bc93212714f869446acc73fe31508832dadd47f90bce8d1f","8e1be37fbdeb5c8ba3dee9e328fbc05d6fa4088e95473500f338ab622d170bb4","1e16248904a8b874a68adb6fae58bd1fa2f88355aca03cae258d710e26230ac1","971bbff3243ca4e49315d1ad7584da82aa1c5201f18bbc98d47b6ee3c745cc2a","532a634d4b08fcea87c7b95080da44690209145bda05c8f9471a568799ab69a6","5203a1dba0e980e7a48c5de41ec0182efd238de80e730a39675df4db511b6c5c","5db531079e2eab4621dfa37bacf65604dd418530a598306186e5ab0418047701","c74b0162e98d764dccca1ecc85fa731d8df2799907d07db6ded866b9ac9d2daf","43c93ee07307ead4e38e1f5245784162a6b2d1d917e80869b0ca1f5f5e36f7d6","b1b5913dbeff9711a891769a9fda8996030a451e6ddded213508803f6dee7a6d","537ebd020fc2ddfd600f5c7385a755439d9c06307a66077e8bcd718ce8031188","619baa366436904f7c5dd168c93aa05b56f5572f99719178c00e192bf6059ed1","2bbc5085062c821fdfbce8f6597283a292be05f8809ed6de5829999426af6b33","2a74c7a094fb59a8afa345c876660aa186825097f09cb471f59f5428432e453c","00554ec8d5abf1af6ef07ddca288fd6354489629b7c22ea3bc1972e306b3d98b","62003d77782cf694bc38a35fe2b94f3acda93712b8f1ce6634d4583611682311","550408fa1a377c0caede1a8325c44861028542d46bcecb4959b2799fa9af5a9f","4060ab9367e254ab18b47d3b08be0b1d660d18943169ca75956a4eacb5c3d02b","0a871255adf02a9323fd2f8c402560eda8e160edf81a467917d647a459ee6520"],i=t(0),l=t(27),n=t(11),f=t(48),r=t(127),o=t(18),g=t(46);const u=Object.freeze({NONE:Symbol("NONE"),LAUNCHER:Symbol("LAUNCHER"),SHORTCUT:Symbol("SHORTCUT"),INVALID:Symbol("INVALID"),VALID:Symbol("VALID")}),h=e=>{e.preventDefault(),e.stopPropagation()};class O extends i.a{constructor(e){super(e),this.state={dragging:!1,fileName:null,fileState:u.NONE},this.reset=this.reset.bind(this),this.inputHandler=this.inputHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),this.dragOver=this.dragOver.bind(this),this.dragLeave=this.dragLeave.bind(this),this.checkFile=this.checkFile.bind(this),this.fileHandler=this.fileHandler.bind(this)}checkFile(e){const a=this.state.fileName;let t=u.INVALID;null==a?t=u.NONE:a.match(/.*runelite.*\.lnk/i)?t=u.SHORTCUT:b.includes(e)?t=u.LAUNCHER:this.props.hashes[e]&&(t=u.VALID),this.setState({fileState:t})}reset(){this.setState({dragging:!1,fileName:null,fileState:u.NONE})}fileHandler(e){if(!e||0===e.length)return void this.reset();const a=e[0];this.setState({fileName:a.name});const t=new FileReader;t.onload=e=>Object(o.a)(e.target.result,this.checkFile),t.readAsArrayBuffer(a),window.scrollTo(0,0)}inputHandler(e){h(e),this.fileHandler(e.target.files)}dropHandler(e){this.dragLeave(e),this.fileHandler(e.dataTransfer.files)}dragOver(e){h(e),this.setState({dragging:!0})}dragLeave(e){h(e),this.setState({dragging:!1})}createInput(){return Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-body"},Object(i.g)("div",{class:"drag-drop-zone "+(this.state.dragging?"dragging":""),onDrop:this.dropHandler,onDragOver:this.dragOver,onDragEnter:this.dragOver,onDragLeave:this.dragLeave,onDragEnd:this.dragLeave},Object(i.g)("p",null,"Drag and drop your RuneLite setup file here or manually select file below"))),Object(i.g)("div",{class:"card-footer"},Object(i.g)("div",{class:"input-group mb-1"},Object(i.g)("div",{class:"custom-file"},Object(i.g)("input",{type:"file",class:"custom-file-input",id:"inputGroupFile",onChange:this.inputHandler,onClick:e=>e.target.value="",accept:".dmg,.jar,.exe,.AppImage"}),Object(i.g)("label",{class:"custom-file-label",for:"inputGroupFile"},"Choose file")))))}createMsg(e,a){return a===u.NONE?null:a===u.VALID?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-primary"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body"},Object(i.g)("p",{class:"text-center mt-5 mb-5"},Object(i.g)("h3",null,Object(i.g)("i",{class:"fa fa-fw fa-check-circle text-success"})," ",Object(i.g)("b",null,e)," is from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"))))):a===u.SHORTCUT?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-warning"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body text-center"},Object(i.g)("p",null,Object(i.g)("b",null,e)," is the desktop shortcut for RuneLite."),Object(i.g)("p",null,"Please drag and drop the setup file that you downloaded."))):a===u.LAUNCHER?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-warning"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body text-center"},Object(i.g)("p",null,Object(i.g)("b",null,e)," is the launcher for RuneLite."),Object(i.g)("p",null,"Please drag and drop the setup file that you downloaded."))):Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-danger"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body"},Object(i.g)("p",{class:"text-center mt-5 mb-5"},Object(i.g)("h3",null,Object(i.g)("i",{class:"fa fa-fw fa-times-circle text-danger"})," ",Object(i.g)("b",null,e)," ","is not from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"))),e.match(/.*runelite.*(dmg|jar|exe|appimage)/i)&&Object(i.g)(i.b,null,Object(i.g)("h5",null,"You've downloaded a fake client, and your account has been compromised. Remove the fake as soon as possible to minimise further damage."),Object(i.g)("p",null,"The following actions should be performed from a secure computer or secure mobile device:"),Object(i.g)("ul",null,Object(i.g)("li",null,"Change your RuneScape password"),Object(i.g)("li",null,"Remove and re-add Authenticator to RuneScape"),Object(i.g)("li",null,"Change your RuneScape bank PIN"),Object(i.g)("li",null,"Change your email's password"),Object(i.g)("li",null,"Add 2FA to your email if you haven't got it enabled"),Object(i.g)("li",null,"Check for any linked accounts by accessing the"," ",Object(i.g)("a",{href:"https://www.runescape.com/account_settings"},"account settings page"))),Object(i.g)("p",null,"Some fake clients also install malware, only a fresh install of your operating system can guarantee the total removal of any unwanted software."),Object(i.g)("p",null,"You might also want to change any email password if you reused the same as your RuneScape account password."),Object(i.g)("p",null,"Once your computer is secure, you should download RuneLite from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"),"."))))}render(){return Object(i.g)(c.a,null,Object(i.g)(g.a,{title:"Verify RuneLite setup - "+s.a.title,description:"Verify your RuneLite setup files here"}),Object(i.g)("section",{id:"verify",class:"dark-card"},Object(i.g)("div",{class:"content-section"},Object(i.g)("div",{class:"card mb-3"},this.createMsg(this.state.fileName,this.state.fileState)),Object(i.g)("div",{class:"card"},this.createInput()))))}}a.default=Object(l.b)(e=>({hashes:Object(f.k)(e),fileNames:Object(f.j)(e)}),e=>Object(n.b)({fetchHashes:f.c},e))(Object(r.a)(async e=>{let{fetchHashes:a}=e;await a()})(O))}}]);
-//# sourceMappingURL=14.f71ff71c.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[14],{126:function(e,a,t){"use strict";var c=t(0);var d=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));a.a=e=>{let{children:a,fullWidth:t,...s}=e;return s.class=s.class?"container "+s.class:"container",s.style={...s.style||{},maxWidth:t?"100%":""},Object(c.g)("div",Object.assign({},s,{id:"layout"}),a,Object(c.g)(d,null))}},127:function(e,a,t){"use strict";var c=t(0);var d=()=>Object(c.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(c.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(c.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(c.g)("div",{class:"fa-4x"},Object(c.g)("i",{class:"fas fa-spinner fa-spin"})))));a.a=e=>a=>class extends c.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const a=e(this.props);a instanceof Promise?a.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:t}=this.state;return t?Object(c.g)(d,null):Object(c.g)(a,e)}}},448:function(e,a,t){},469:function(e,a,t){"use strict";t.r(a);t(448);var c=t(126),d=t(7),s=t.n(d),b=["020004743a7e0bf6d257ef0833b9ed229204a0112e80a05adfed36d73d7c3d5e","07c658c06b48637409a27fa299dbb447ea2a047db46fa726ea208fda5b8e4cef","2cea36b447a507c793367111a6d891de6fa028440daba22aa24a504034816fbd","36da47090fa642a4ae9bdc28f7ba00fda16dbf363064c96a5132a3f00fe4685d","3e4d8ba370c6369962279d88de7371f9a285a5c1eeced2f3f0507acd8265850a","49ab6cb2e916b1dd62db1f52f1223bc47226a226abd7f1e3d0c9a34351eb23d0","7b6a27fcae09b79db920a402be8d8f69249257b2cc491fb1372b2852aaf67341","8715ddf633d4e4fe9f928cec84b20df1eedb630ef6e3b5d826039f3cbd9268a2","8865dd1b9c902e89a1906159ed097242a49786652dc5a0407d8316e4ef56369b","8edf21633c91a2a360cb3433f9322d3e3cd1fc2f198dc95f64d2e7ea8ff147e9","9041dcc4ebeb326e02744e10391e90fe96d7fb56c9824fa283ec55321cf22455","96bd4957980d4cebee1c5978ce301e5950a50a6dfb40f191d91bc61a6777cd20","a202dea75936f16e11507ec6a666fc86c8d4ac9dec971be5930c470cd090bf23","b590edee17e2a4236b5a179d35f5934ddf9c9075fb09e93a7408f63242394a5f","bf7d1894f90d849619aab940c8d639340c2e745c1411e55d7735ac31398bc384","d89a7d68467b30e0f1375250b7eb8e5e42b37994843f9b2ee6dcc1a53c829ca9","70ea6088a2d7caf1d7f56c4aedc3952b675299611fe09e86c8c1a084bef69554","77b0a566fda117fbb1a03b57dad7811cda575a1bf62e6de7cabb75767fa9453c","f5fd4882635bbe82bd11a83d75bc5ed89685a9fb640936a1ef012fe580b9bf4b","c424cb30ded96ae34ed817053accbd1757391f55c8ebd6000ad811cc0a74a428","833daa64c2e12a1e1e4b168b4f66cbeb0d77afe660ddef13dae0da8ab4d19629","68340acbbd876108bc93212714f869446acc73fe31508832dadd47f90bce8d1f","8e1be37fbdeb5c8ba3dee9e328fbc05d6fa4088e95473500f338ab622d170bb4","1e16248904a8b874a68adb6fae58bd1fa2f88355aca03cae258d710e26230ac1","971bbff3243ca4e49315d1ad7584da82aa1c5201f18bbc98d47b6ee3c745cc2a","532a634d4b08fcea87c7b95080da44690209145bda05c8f9471a568799ab69a6","5203a1dba0e980e7a48c5de41ec0182efd238de80e730a39675df4db511b6c5c","5db531079e2eab4621dfa37bacf65604dd418530a598306186e5ab0418047701","c74b0162e98d764dccca1ecc85fa731d8df2799907d07db6ded866b9ac9d2daf","43c93ee07307ead4e38e1f5245784162a6b2d1d917e80869b0ca1f5f5e36f7d6","b1b5913dbeff9711a891769a9fda8996030a451e6ddded213508803f6dee7a6d","537ebd020fc2ddfd600f5c7385a755439d9c06307a66077e8bcd718ce8031188","619baa366436904f7c5dd168c93aa05b56f5572f99719178c00e192bf6059ed1","2bbc5085062c821fdfbce8f6597283a292be05f8809ed6de5829999426af6b33","2a74c7a094fb59a8afa345c876660aa186825097f09cb471f59f5428432e453c","00554ec8d5abf1af6ef07ddca288fd6354489629b7c22ea3bc1972e306b3d98b","62003d77782cf694bc38a35fe2b94f3acda93712b8f1ce6634d4583611682311","550408fa1a377c0caede1a8325c44861028542d46bcecb4959b2799fa9af5a9f","4060ab9367e254ab18b47d3b08be0b1d660d18943169ca75956a4eacb5c3d02b","0a871255adf02a9323fd2f8c402560eda8e160edf81a467917d647a459ee6520"],i=t(0),l=t(27),n=t(11),f=t(48),r=t(127),o=t(18),g=t(46);const u=Object.freeze({NONE:Symbol("NONE"),LAUNCHER:Symbol("LAUNCHER"),SHORTCUT:Symbol("SHORTCUT"),INVALID:Symbol("INVALID"),VALID:Symbol("VALID")}),h=e=>{e.preventDefault(),e.stopPropagation()};class O extends i.a{constructor(e){super(e),this.state={dragging:!1,fileName:null,fileState:u.NONE},this.reset=this.reset.bind(this),this.inputHandler=this.inputHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),this.dragOver=this.dragOver.bind(this),this.dragLeave=this.dragLeave.bind(this),this.checkFile=this.checkFile.bind(this),this.fileHandler=this.fileHandler.bind(this)}checkFile(e){const a=this.state.fileName;let t=u.INVALID;null==a?t=u.NONE:a.match(/.*runelite.*\.lnk/i)?t=u.SHORTCUT:b.includes(e)?t=u.LAUNCHER:this.props.hashes[e]&&(t=u.VALID),this.setState({fileState:t})}reset(){this.setState({dragging:!1,fileName:null,fileState:u.NONE})}fileHandler(e){if(!e||0===e.length)return void this.reset();const a=e[0];this.setState({fileName:a.name});const t=new FileReader;t.onload=e=>Object(o.a)(e.target.result,this.checkFile),t.readAsArrayBuffer(a),window.scrollTo(0,0)}inputHandler(e){h(e),this.fileHandler(e.target.files)}dropHandler(e){this.dragLeave(e),this.fileHandler(e.dataTransfer.files)}dragOver(e){h(e),this.setState({dragging:!0})}dragLeave(e){h(e),this.setState({dragging:!1})}createInput(){return Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-body"},Object(i.g)("div",{class:"drag-drop-zone "+(this.state.dragging?"dragging":""),onDrop:this.dropHandler,onDragOver:this.dragOver,onDragEnter:this.dragOver,onDragLeave:this.dragLeave,onDragEnd:this.dragLeave},Object(i.g)("p",null,"Drag and drop your RuneLite setup file here or manually select file below"))),Object(i.g)("div",{class:"card-footer"},Object(i.g)("div",{class:"input-group mb-1"},Object(i.g)("div",{class:"custom-file"},Object(i.g)("input",{type:"file",class:"custom-file-input",id:"inputGroupFile",onChange:this.inputHandler,onClick:e=>e.target.value="",accept:".dmg,.jar,.exe,.AppImage"}),Object(i.g)("label",{class:"custom-file-label",for:"inputGroupFile"},"Choose file")))))}createMsg(e,a){return a===u.NONE?null:a===u.VALID?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-primary"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body"},Object(i.g)("p",{class:"text-center mt-5 mb-5"},Object(i.g)("h3",null,Object(i.g)("i",{class:"fa fa-fw fa-check-circle text-success"})," ",Object(i.g)("b",null,e)," is from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"))))):a===u.SHORTCUT?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-warning"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body text-center"},Object(i.g)("p",null,Object(i.g)("b",null,e)," is the desktop shortcut for RuneLite."),Object(i.g)("p",null,"Please drag and drop the setup file that you downloaded."))):a===u.LAUNCHER?Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-warning"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body text-center"},Object(i.g)("p",null,Object(i.g)("b",null,e)," is the launcher for RuneLite."),Object(i.g)("p",null,"Please drag and drop the setup file that you downloaded."))):Object(i.g)(i.b,null,Object(i.g)("div",{class:"card-header bg-danger"},Object(i.g)("button",{class:"btn btn-dark float-right",onClick:this.reset},Object(i.g)("i",{class:"fa fa-fw fa-times"}))),Object(i.g)("div",{class:"card-body"},Object(i.g)("p",{class:"text-center mt-5 mb-5"},Object(i.g)("h3",null,Object(i.g)("i",{class:"fa fa-fw fa-times-circle text-danger"})," ",Object(i.g)("b",null,e)," ","is not from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"))),e.match(/.*runelite.*(dmg|jar|exe|appimage)/i)&&Object(i.g)(i.b,null,Object(i.g)("h5",null,"You've downloaded a fake client, and your account has been compromised. Remove the fake as soon as possible to minimise further damage."),Object(i.g)("p",null,"The following actions should be performed from a secure computer or secure mobile device:"),Object(i.g)("ul",null,Object(i.g)("li",null,"Change your RuneScape password"),Object(i.g)("li",null,"Remove and re-add Authenticator to RuneScape"),Object(i.g)("li",null,"Change your RuneScape bank PIN"),Object(i.g)("li",null,"Change your email's password"),Object(i.g)("li",null,"Add 2FA to your email if you haven't got it enabled"),Object(i.g)("li",null,"Check for any linked accounts by accessing the"," ",Object(i.g)("a",{href:"https://www.runescape.com/account_settings"},"account settings page"))),Object(i.g)("p",null,"Some fake clients also install malware, only a fresh install of your operating system can guarantee the total removal of any unwanted software."),Object(i.g)("p",null,"You might also want to change any email password if you reused the same as your RuneScape account password."),Object(i.g)("p",null,"Once your computer is secure, you should download RuneLite from"," ",Object(i.g)("a",{href:"https://runelite.net"},"https://runelite.net"),"."))))}render(){return Object(i.g)(c.a,null,Object(i.g)(g.a,{title:"Verify RuneLite setup - "+s.a.title,description:"Verify your RuneLite setup files here"}),Object(i.g)("section",{id:"verify",class:"dark-card"},Object(i.g)("div",{class:"content-section"},Object(i.g)("div",{class:"card mb-3"},this.createMsg(this.state.fileName,this.state.fileState)),Object(i.g)("div",{class:"card"},this.createInput()))))}}a.default=Object(l.b)(e=>({hashes:Object(f.k)(e),fileNames:Object(f.j)(e)}),e=>Object(n.b)({fetchHashes:f.c},e))(Object(r.a)(async e=>{let{fetchHashes:a}=e;await a()})(O))}}]);
+//# sourceMappingURL=14.11a9d4dd.chunk.js.map
\ No newline at end of file
diff --git a/static/js/14.f71ff71c.chunk.js.map b/static/js/14.11a9d4dd.chunk.js.map
similarity index 99%
rename from static/js/14.f71ff71c.chunk.js.map
rename to static/js/14.11a9d4dd.chunk.js.map
index d69535550..6f549e290 100644
--- a/static/js/14.f71ff71c.chunk.js.map
+++ b/static/js/14.11a9d4dd.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","_data/sha256sums.js","routes/verify.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","FILE_STATE","freeze","NONE","Symbol","LAUNCHER","SHORTCUT","INVALID","VALID","noop","e","preventDefault","stopPropagation","Verify","dragging","fileName","fileState","reset","bind","inputHandler","dropHandler","dragOver","dragLeave","checkFile","fileHandler","sha256","name","match","sha256sums","includes","hashes","files","length","file","reader","FileReader","onload","digest","target","result","readAsArrayBuffer","window","scrollTo","evt","dataTransfer","createInput","Fragment","onDrop","onDragOver","onDragEnter","onDragLeave","onDragEnd","type","onChange","onClick","value","accept","for","createMsg","Meta","title","hero","description","connect","getHashes","fileNames","getFileNames","dispatch","bindActionCreators","fetchHashes","async"],"mappings":"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","file":"static/js/14.f71ff71c.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","// Hardcoded sha256sums of launcher executables and pre-installer launchers\nexport default [\n '020004743a7e0bf6d257ef0833b9ed229204a0112e80a05adfed36d73d7c3d5e',\n '07c658c06b48637409a27fa299dbb447ea2a047db46fa726ea208fda5b8e4cef',\n '2cea36b447a507c793367111a6d891de6fa028440daba22aa24a504034816fbd',\n '36da47090fa642a4ae9bdc28f7ba00fda16dbf363064c96a5132a3f00fe4685d',\n '3e4d8ba370c6369962279d88de7371f9a285a5c1eeced2f3f0507acd8265850a',\n '49ab6cb2e916b1dd62db1f52f1223bc47226a226abd7f1e3d0c9a34351eb23d0',\n '7b6a27fcae09b79db920a402be8d8f69249257b2cc491fb1372b2852aaf67341',\n '8715ddf633d4e4fe9f928cec84b20df1eedb630ef6e3b5d826039f3cbd9268a2',\n '8865dd1b9c902e89a1906159ed097242a49786652dc5a0407d8316e4ef56369b',\n '8edf21633c91a2a360cb3433f9322d3e3cd1fc2f198dc95f64d2e7ea8ff147e9',\n '9041dcc4ebeb326e02744e10391e90fe96d7fb56c9824fa283ec55321cf22455',\n '96bd4957980d4cebee1c5978ce301e5950a50a6dfb40f191d91bc61a6777cd20',\n 'a202dea75936f16e11507ec6a666fc86c8d4ac9dec971be5930c470cd090bf23',\n 'b590edee17e2a4236b5a179d35f5934ddf9c9075fb09e93a7408f63242394a5f',\n 'bf7d1894f90d849619aab940c8d639340c2e745c1411e55d7735ac31398bc384',\n 'd89a7d68467b30e0f1375250b7eb8e5e42b37994843f9b2ee6dcc1a53c829ca9',\n '70ea6088a2d7caf1d7f56c4aedc3952b675299611fe09e86c8c1a084bef69554',\n '77b0a566fda117fbb1a03b57dad7811cda575a1bf62e6de7cabb75767fa9453c',\n 'f5fd4882635bbe82bd11a83d75bc5ed89685a9fb640936a1ef012fe580b9bf4b',\n 'c424cb30ded96ae34ed817053accbd1757391f55c8ebd6000ad811cc0a74a428',\n '833daa64c2e12a1e1e4b168b4f66cbeb0d77afe660ddef13dae0da8ab4d19629',\n '68340acbbd876108bc93212714f869446acc73fe31508832dadd47f90bce8d1f',\n '8e1be37fbdeb5c8ba3dee9e328fbc05d6fa4088e95473500f338ab622d170bb4',\n '1e16248904a8b874a68adb6fae58bd1fa2f88355aca03cae258d710e26230ac1',\n '971bbff3243ca4e49315d1ad7584da82aa1c5201f18bbc98d47b6ee3c745cc2a',\n '532a634d4b08fcea87c7b95080da44690209145bda05c8f9471a568799ab69a6', // packr 1.7 win x64\n '5203a1dba0e980e7a48c5de41ec0182efd238de80e730a39675df4db511b6c5c', // packr 1.7 win x86\n '5db531079e2eab4621dfa37bacf65604dd418530a598306186e5ab0418047701', // packr 1.8 win aarch64\n 'c74b0162e98d764dccca1ecc85fa731d8df2799907d07db6ded866b9ac9d2daf', // packr 1.9 win x64\n '43c93ee07307ead4e38e1f5245784162a6b2d1d917e80869b0ca1f5f5e36f7d6', // packr 1.9 win x86\n 'b1b5913dbeff9711a891769a9fda8996030a451e6ddded213508803f6dee7a6d', // packr 1.9 win aarch64\n '537ebd020fc2ddfd600f5c7385a755439d9c06307a66077e8bcd718ce8031188', // 2.6.8 x64\n '619baa366436904f7c5dd168c93aa05b56f5572f99719178c00e192bf6059ed1', // 2.6.8 x86\n '2bbc5085062c821fdfbce8f6597283a292be05f8809ed6de5829999426af6b33', // 2.6.8 aarch64\n '2a74c7a094fb59a8afa345c876660aa186825097f09cb471f59f5428432e453c', // 2.6.9 x64\n '00554ec8d5abf1af6ef07ddca288fd6354489629b7c22ea3bc1972e306b3d98b', // 2.6.9 x86\n '62003d77782cf694bc38a35fe2b94f3acda93712b8f1ce6634d4583611682311', // 2.6.9 aarch64\n '550408fa1a377c0caede1a8325c44861028542d46bcecb4959b2799fa9af5a9f', // 2.6.10 x64\n '4060ab9367e254ab18b47d3b08be0b1d660d18943169ca75956a4eacb5c3d02b', // 2.6.10 x86\n '0a871255adf02a9323fd2f8c402560eda8e160edf81a467917d647a459ee6520' // 2.6.10 aarch64\n]\n","import './verify.css'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport sha256sums from '../_data/sha256sums'\nimport { h, Component, Fragment } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { fetchHashes, getFileNames, getHashes } from '../modules/git'\nimport prepare from '../components/prepare'\nimport { digest } from '../util'\nimport Meta from '../components/meta'\n\nconst FILE_STATE = Object.freeze({\n NONE: Symbol('NONE'),\n LAUNCHER: Symbol('LAUNCHER'),\n SHORTCUT: Symbol('SHORTCUT'),\n INVALID: Symbol('INVALID'),\n VALID: Symbol('VALID')\n})\n\nconst noop = e => {\n e.preventDefault()\n e.stopPropagation()\n}\n\nclass Verify extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n dragging: false,\n fileName: null,\n fileState: FILE_STATE.NONE\n }\n\n this.reset = this.reset.bind(this)\n this.inputHandler = this.inputHandler.bind(this)\n this.dropHandler = this.dropHandler.bind(this)\n this.dragOver = this.dragOver.bind(this)\n this.dragLeave = this.dragLeave.bind(this)\n this.checkFile = this.checkFile.bind(this)\n this.fileHandler = this.fileHandler.bind(this)\n }\n\n checkFile(sha256) {\n const name = this.state.fileName\n\n let fileState = FILE_STATE.INVALID\n if (name == null) {\n fileState = FILE_STATE.NONE\n } else if (name.match(/.*runelite.*\\.lnk/i)) {\n fileState = FILE_STATE.SHORTCUT\n } else if (sha256sums.includes(sha256)) {\n fileState = FILE_STATE.LAUNCHER\n } else if (!!this.props.hashes[sha256]) {\n fileState = FILE_STATE.VALID\n }\n\n this.setState({\n fileState\n })\n }\n\n reset() {\n this.setState({\n dragging: false,\n fileName: null,\n fileState: FILE_STATE.NONE\n })\n }\n\n fileHandler(files) {\n if (!files || files.length === 0) {\n this.reset()\n return\n }\n\n const file = files[0]\n\n this.setState({\n fileName: file.name\n })\n\n const reader = new FileReader()\n reader.onload = e => digest(e.target.result, this.checkFile)\n reader.readAsArrayBuffer(file)\n window.scrollTo(0, 0)\n }\n\n inputHandler(evt) {\n noop(evt)\n this.fileHandler(evt.target.files)\n }\n\n dropHandler(evt) {\n this.dragLeave(evt)\n this.fileHandler(evt.dataTransfer.files)\n }\n\n dragOver(evt) {\n noop(evt)\n this.setState({ dragging: true })\n }\n\n dragLeave(evt) {\n noop(evt)\n this.setState({ dragging: false })\n }\n\n createInput() {\n return (\n \n \n
\n
\n Drag and drop your RuneLite setup file here or manually select\n file below\n
\n
\n
\n \n \n )\n }\n\n createMsg(name, fileState) {\n if (fileState === FILE_STATE.NONE) {\n return null\n }\n\n if (fileState === FILE_STATE.VALID) {\n return (\n \n \n \n \n )\n }\n\n if (fileState === FILE_STATE.SHORTCUT) {\n return (\n \n \n \n
\n {name} is the desktop shortcut for RuneLite.\n
\n
Please drag and drop the setup file that you downloaded.
\n
\n \n )\n }\n\n if (fileState === FILE_STATE.LAUNCHER) {\n return (\n \n \n \n
\n {name} is the launcher for RuneLite.\n
\n
Please drag and drop the setup file that you downloaded.
\n
\n \n )\n }\n\n return (\n \n \n \n
\n
\n \n\n {name.match(/.*runelite.*(dmg|jar|exe|appimage)/i) && (\n <>\n
\n You've downloaded a fake client, and your account has been\n compromised. Remove the fake as soon as possible to minimise\n further damage.\n \n
\n The following actions should be performed from a secure computer\n or secure mobile device:\n
\n
\n Change your RuneScape password \n Remove and re-add Authenticator to RuneScape \n Change your RuneScape bank PIN \n Change your email's password \n Add 2FA to your email if you haven't got it enabled \n \n Check for any linked accounts by accessing the{' '}\n \n account settings page\n \n \n \n\n
\n Some fake clients also install malware, only a fresh install of\n your operating system can guarantee the total removal of any\n unwanted software.\n
\n
\n You might also want to change any email password if you reused\n the same as your RuneScape account password.\n
\n\n
\n Once your computer is secure, you should download RuneLite from{' '}\n https://runelite.net .\n
\n >\n )}\n
\n \n )\n }\n\n render() {\n return (\n \n \n \n \n
\n {this.createMsg(this.state.fileName, this.state.fileState)}\n
\n
{this.createInput()}
\n
\n \n \n )\n }\n}\n\nconst mapStateToProps = state => ({\n hashes: getHashes(state),\n fileNames: getFileNames(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchHashes\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchHashes }) => {\n await fetchHashes()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Verify))\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","_data/sha256sums.js","routes/verify.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","FILE_STATE","freeze","NONE","Symbol","LAUNCHER","SHORTCUT","INVALID","VALID","noop","e","preventDefault","stopPropagation","Verify","dragging","fileName","fileState","reset","bind","inputHandler","dropHandler","dragOver","dragLeave","checkFile","fileHandler","sha256","name","match","sha256sums","includes","hashes","files","length","file","reader","FileReader","onload","digest","target","result","readAsArrayBuffer","window","scrollTo","evt","dataTransfer","createInput","Fragment","onDrop","onDragOver","onDragEnter","onDragLeave","onDragEnd","type","onChange","onClick","value","accept","for","createMsg","Meta","title","hero","description","connect","getHashes","fileNames","getFileNames","dispatch","bindActionCreators","fetchHashes","async"],"mappings":"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","file":"static/js/14.11a9d4dd.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","// Hardcoded sha256sums of launcher executables and pre-installer launchers\nexport default [\n '020004743a7e0bf6d257ef0833b9ed229204a0112e80a05adfed36d73d7c3d5e',\n '07c658c06b48637409a27fa299dbb447ea2a047db46fa726ea208fda5b8e4cef',\n '2cea36b447a507c793367111a6d891de6fa028440daba22aa24a504034816fbd',\n '36da47090fa642a4ae9bdc28f7ba00fda16dbf363064c96a5132a3f00fe4685d',\n '3e4d8ba370c6369962279d88de7371f9a285a5c1eeced2f3f0507acd8265850a',\n '49ab6cb2e916b1dd62db1f52f1223bc47226a226abd7f1e3d0c9a34351eb23d0',\n '7b6a27fcae09b79db920a402be8d8f69249257b2cc491fb1372b2852aaf67341',\n '8715ddf633d4e4fe9f928cec84b20df1eedb630ef6e3b5d826039f3cbd9268a2',\n '8865dd1b9c902e89a1906159ed097242a49786652dc5a0407d8316e4ef56369b',\n '8edf21633c91a2a360cb3433f9322d3e3cd1fc2f198dc95f64d2e7ea8ff147e9',\n '9041dcc4ebeb326e02744e10391e90fe96d7fb56c9824fa283ec55321cf22455',\n '96bd4957980d4cebee1c5978ce301e5950a50a6dfb40f191d91bc61a6777cd20',\n 'a202dea75936f16e11507ec6a666fc86c8d4ac9dec971be5930c470cd090bf23',\n 'b590edee17e2a4236b5a179d35f5934ddf9c9075fb09e93a7408f63242394a5f',\n 'bf7d1894f90d849619aab940c8d639340c2e745c1411e55d7735ac31398bc384',\n 'd89a7d68467b30e0f1375250b7eb8e5e42b37994843f9b2ee6dcc1a53c829ca9',\n '70ea6088a2d7caf1d7f56c4aedc3952b675299611fe09e86c8c1a084bef69554',\n '77b0a566fda117fbb1a03b57dad7811cda575a1bf62e6de7cabb75767fa9453c',\n 'f5fd4882635bbe82bd11a83d75bc5ed89685a9fb640936a1ef012fe580b9bf4b',\n 'c424cb30ded96ae34ed817053accbd1757391f55c8ebd6000ad811cc0a74a428',\n '833daa64c2e12a1e1e4b168b4f66cbeb0d77afe660ddef13dae0da8ab4d19629',\n '68340acbbd876108bc93212714f869446acc73fe31508832dadd47f90bce8d1f',\n '8e1be37fbdeb5c8ba3dee9e328fbc05d6fa4088e95473500f338ab622d170bb4',\n '1e16248904a8b874a68adb6fae58bd1fa2f88355aca03cae258d710e26230ac1',\n '971bbff3243ca4e49315d1ad7584da82aa1c5201f18bbc98d47b6ee3c745cc2a',\n '532a634d4b08fcea87c7b95080da44690209145bda05c8f9471a568799ab69a6', // packr 1.7 win x64\n '5203a1dba0e980e7a48c5de41ec0182efd238de80e730a39675df4db511b6c5c', // packr 1.7 win x86\n '5db531079e2eab4621dfa37bacf65604dd418530a598306186e5ab0418047701', // packr 1.8 win aarch64\n 'c74b0162e98d764dccca1ecc85fa731d8df2799907d07db6ded866b9ac9d2daf', // packr 1.9 win x64\n '43c93ee07307ead4e38e1f5245784162a6b2d1d917e80869b0ca1f5f5e36f7d6', // packr 1.9 win x86\n 'b1b5913dbeff9711a891769a9fda8996030a451e6ddded213508803f6dee7a6d', // packr 1.9 win aarch64\n '537ebd020fc2ddfd600f5c7385a755439d9c06307a66077e8bcd718ce8031188', // 2.6.8 x64\n '619baa366436904f7c5dd168c93aa05b56f5572f99719178c00e192bf6059ed1', // 2.6.8 x86\n '2bbc5085062c821fdfbce8f6597283a292be05f8809ed6de5829999426af6b33', // 2.6.8 aarch64\n '2a74c7a094fb59a8afa345c876660aa186825097f09cb471f59f5428432e453c', // 2.6.9 x64\n '00554ec8d5abf1af6ef07ddca288fd6354489629b7c22ea3bc1972e306b3d98b', // 2.6.9 x86\n '62003d77782cf694bc38a35fe2b94f3acda93712b8f1ce6634d4583611682311', // 2.6.9 aarch64\n '550408fa1a377c0caede1a8325c44861028542d46bcecb4959b2799fa9af5a9f', // 2.6.10 x64\n '4060ab9367e254ab18b47d3b08be0b1d660d18943169ca75956a4eacb5c3d02b', // 2.6.10 x86\n '0a871255adf02a9323fd2f8c402560eda8e160edf81a467917d647a459ee6520' // 2.6.10 aarch64\n]\n","import './verify.css'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport sha256sums from '../_data/sha256sums'\nimport { h, Component, Fragment } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { fetchHashes, getFileNames, getHashes } from '../modules/git'\nimport prepare from '../components/prepare'\nimport { digest } from '../util'\nimport Meta from '../components/meta'\n\nconst FILE_STATE = Object.freeze({\n NONE: Symbol('NONE'),\n LAUNCHER: Symbol('LAUNCHER'),\n SHORTCUT: Symbol('SHORTCUT'),\n INVALID: Symbol('INVALID'),\n VALID: Symbol('VALID')\n})\n\nconst noop = e => {\n e.preventDefault()\n e.stopPropagation()\n}\n\nclass Verify extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n dragging: false,\n fileName: null,\n fileState: FILE_STATE.NONE\n }\n\n this.reset = this.reset.bind(this)\n this.inputHandler = this.inputHandler.bind(this)\n this.dropHandler = this.dropHandler.bind(this)\n this.dragOver = this.dragOver.bind(this)\n this.dragLeave = this.dragLeave.bind(this)\n this.checkFile = this.checkFile.bind(this)\n this.fileHandler = this.fileHandler.bind(this)\n }\n\n checkFile(sha256) {\n const name = this.state.fileName\n\n let fileState = FILE_STATE.INVALID\n if (name == null) {\n fileState = FILE_STATE.NONE\n } else if (name.match(/.*runelite.*\\.lnk/i)) {\n fileState = FILE_STATE.SHORTCUT\n } else if (sha256sums.includes(sha256)) {\n fileState = FILE_STATE.LAUNCHER\n } else if (!!this.props.hashes[sha256]) {\n fileState = FILE_STATE.VALID\n }\n\n this.setState({\n fileState\n })\n }\n\n reset() {\n this.setState({\n dragging: false,\n fileName: null,\n fileState: FILE_STATE.NONE\n })\n }\n\n fileHandler(files) {\n if (!files || files.length === 0) {\n this.reset()\n return\n }\n\n const file = files[0]\n\n this.setState({\n fileName: file.name\n })\n\n const reader = new FileReader()\n reader.onload = e => digest(e.target.result, this.checkFile)\n reader.readAsArrayBuffer(file)\n window.scrollTo(0, 0)\n }\n\n inputHandler(evt) {\n noop(evt)\n this.fileHandler(evt.target.files)\n }\n\n dropHandler(evt) {\n this.dragLeave(evt)\n this.fileHandler(evt.dataTransfer.files)\n }\n\n dragOver(evt) {\n noop(evt)\n this.setState({ dragging: true })\n }\n\n dragLeave(evt) {\n noop(evt)\n this.setState({ dragging: false })\n }\n\n createInput() {\n return (\n \n \n
\n
\n Drag and drop your RuneLite setup file here or manually select\n file below\n
\n
\n
\n \n \n )\n }\n\n createMsg(name, fileState) {\n if (fileState === FILE_STATE.NONE) {\n return null\n }\n\n if (fileState === FILE_STATE.VALID) {\n return (\n \n \n \n \n )\n }\n\n if (fileState === FILE_STATE.SHORTCUT) {\n return (\n \n \n \n
\n {name} is the desktop shortcut for RuneLite.\n
\n
Please drag and drop the setup file that you downloaded.
\n
\n \n )\n }\n\n if (fileState === FILE_STATE.LAUNCHER) {\n return (\n \n \n \n
\n {name} is the launcher for RuneLite.\n
\n
Please drag and drop the setup file that you downloaded.
\n
\n \n )\n }\n\n return (\n \n \n \n
\n
\n \n\n {name.match(/.*runelite.*(dmg|jar|exe|appimage)/i) && (\n <>\n
\n You've downloaded a fake client, and your account has been\n compromised. Remove the fake as soon as possible to minimise\n further damage.\n \n
\n The following actions should be performed from a secure computer\n or secure mobile device:\n
\n
\n Change your RuneScape password \n Remove and re-add Authenticator to RuneScape \n Change your RuneScape bank PIN \n Change your email's password \n Add 2FA to your email if you haven't got it enabled \n \n Check for any linked accounts by accessing the{' '}\n \n account settings page\n \n \n \n\n
\n Some fake clients also install malware, only a fresh install of\n your operating system can guarantee the total removal of any\n unwanted software.\n
\n
\n You might also want to change any email password if you reused\n the same as your RuneScape account password.\n
\n\n
\n Once your computer is secure, you should download RuneLite from{' '}\n https://runelite.net .\n
\n >\n )}\n
\n \n )\n }\n\n render() {\n return (\n \n \n \n \n
\n {this.createMsg(this.state.fileName, this.state.fileState)}\n
\n
{this.createInput()}
\n
\n \n \n )\n }\n}\n\nconst mapStateToProps = state => ({\n hashes: getHashes(state),\n fileNames: getFileNames(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchHashes\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchHashes }) => {\n await fetchHashes()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Verify))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/140.08d5fe4b.chunk.js b/static/js/140.4e2e02d7.chunk.js
similarity index 92%
rename from static/js/140.08d5fe4b.chunk.js
rename to static/js/140.4e2e02d7.chunk.js
index d5c155e99..67658240c 100644
--- a/static/js/140.08d5fe4b.chunk.js
+++ b/static/js/140.4e2e02d7.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[140],{415:function(e,i){e.exports={title:"RuneLite & OSRS Wiki Partnership for GE prices",description:"RuneLite & OSRS Wiki Partnership for Grand Exchange prices",author:"Adam",body:'We are happy to announce that we have partnered with the RuneScape Wiki to bring more accurate Grand Exchange pricing to the OSRS Wiki. When looking up an item on the wiki, you will now see a View Real-time Prices
button, which, using trades made through RuneLite, will provide a much more accurate representation of the item\'s current price.
\n
\nThese new prices are updated every few minutes, which is much more frequent than the current Grand Exchange price data, which can be a day or two out of date.
\nIn conjunction with this, the Wiki is providing an API for the real-time price data for developers for free. If you are a developer and have a project or website that uses Grand Exchange price data, check out their API docs here .
\nWe will be updating RuneLite soon to use this data as a source for item pricing, so features such as examining items and bank value will also be more accurate.
\n- Adam
\n',image:"/img/blog/wiki-ge-partnership/prices.png"}}}]);
-//# sourceMappingURL=140.08d5fe4b.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[140],{416:function(e,i){e.exports={title:"RuneLite & OSRS Wiki Partnership for GE prices",description:"RuneLite & OSRS Wiki Partnership for Grand Exchange prices",author:"Adam",body:'We are happy to announce that we have partnered with the RuneScape Wiki to bring more accurate Grand Exchange pricing to the OSRS Wiki. When looking up an item on the wiki, you will now see a View Real-time Prices
button, which, using trades made through RuneLite, will provide a much more accurate representation of the item\'s current price.
\n
\nThese new prices are updated every few minutes, which is much more frequent than the current Grand Exchange price data, which can be a day or two out of date.
\nIn conjunction with this, the Wiki is providing an API for the real-time price data for developers for free. If you are a developer and have a project or website that uses Grand Exchange price data, check out their API docs here .
\nWe will be updating RuneLite soon to use this data as a source for item pricing, so features such as examining items and bank value will also be more accurate.
\n- Adam
\n',image:"/img/blog/wiki-ge-partnership/prices.png"}}}]);
+//# sourceMappingURL=140.4e2e02d7.chunk.js.map
\ No newline at end of file
diff --git a/static/js/140.08d5fe4b.chunk.js.map b/static/js/140.4e2e02d7.chunk.js.map
similarity index 96%
rename from static/js/140.08d5fe4b.chunk.js.map
rename to static/js/140.4e2e02d7.chunk.js.map
index 5d0f0d6eb..a351e5ab2 100644
--- a/static/js/140.08d5fe4b.chunk.js.map
+++ b/static/js/140.4e2e02d7.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-03-08-20-00-Wiki-Ge-Partnership.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iDAAiD,YAAc,6DAA6D,OAAS,OAAO,KAAO,orCAAmsC,MAAQ","file":"static/js/140.08d5fe4b.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite & OSRS Wiki Partnership for GE prices\",\"description\":\"RuneLite & OSRS Wiki Partnership for Grand Exchange prices\",\"author\":\"Adam\",\"body\":\"We are happy to announce that we have partnered with the RuneScape Wiki to bring more accurate Grand Exchange pricing to the OSRS Wiki. When looking up an item on the wiki, you will now see a View Real-time Prices
button, which, using trades made through RuneLite, will provide a much more accurate representation of the item's current price.
\\n
\\nThese new prices are updated every few minutes, which is much more frequent than the current Grand Exchange price data, which can be a day or two out of date.
\\nIn conjunction with this, the Wiki is providing an API for the real-time price data for developers for free. If you are a developer and have a project or website that uses Grand Exchange price data, check out their API docs here .
\\nWe will be updating RuneLite soon to use this data as a source for item pricing, so features such as examining items and bank value will also be more accurate.
\\n- Adam
\\n\",\"image\":\"/img/blog/wiki-ge-partnership/prices.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-03-08-20-00-Wiki-Ge-Partnership.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iDAAiD,YAAc,6DAA6D,OAAS,OAAO,KAAO,orCAAmsC,MAAQ","file":"static/js/140.4e2e02d7.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite & OSRS Wiki Partnership for GE prices\",\"description\":\"RuneLite & OSRS Wiki Partnership for Grand Exchange prices\",\"author\":\"Adam\",\"body\":\"We are happy to announce that we have partnered with the RuneScape Wiki to bring more accurate Grand Exchange pricing to the OSRS Wiki. When looking up an item on the wiki, you will now see a View Real-time Prices
button, which, using trades made through RuneLite, will provide a much more accurate representation of the item's current price.
\\n
\\nThese new prices are updated every few minutes, which is much more frequent than the current Grand Exchange price data, which can be a day or two out of date.
\\nIn conjunction with this, the Wiki is providing an API for the real-time price data for developers for free. If you are a developer and have a project or website that uses Grand Exchange price data, check out their API docs here .
\\nWe will be updating RuneLite soon to use this data as a source for item pricing, so features such as examining items and bank value will also be more accurate.
\\n- Adam
\\n\",\"image\":\"/img/blog/wiki-ge-partnership/prices.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/141.d63b2888.chunk.js b/static/js/141.8cf2e5d9.chunk.js
similarity index 98%
rename from static/js/141.d63b2888.chunk.js
rename to static/js/141.8cf2e5d9.chunk.js
index df134de94..00e6fa029 100644
--- a/static/js/141.d63b2888.chunk.js
+++ b/static/js/141.8cf2e5d9.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[141],{416:function(e,n){e.exports={title:"1.7.1, 1.7.2, and 1.7.3 Releases",description:"RuneScape Wiki prices, Kingdom of Miscellania notifications, and account-specific slayer task tracking",author:"Jordan",body:'We have integrated the RuneScape Wiki\'s real-time\nprices , into the\nclient, where it is used for bank valuation, ground item highlights, grand\nexchange lookups, and more.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Kingdom of Miscellania\nplugin can now send\nnotifications upon login when your coffer or approval are below configured values \nYou can check your kill count and personal best times of TzHaar-Ket-Rak\'s multi-Jad challenges\nusing the chat commands !kc jad 3
\nand !pb jad 6
\nThe import and export menu options are now toggleable in the Ground Markers\nplugin . Additionally, a "Clear" option\nhas been added which, when used, will clear any visible markers near your location \nYour slayer task and streak information are\nnow profile-specific, and will be tracked correctly between accounts \nThe Chat Notifications plugin now\nsupports highlighting messages which match provided regular expressions, similar to the Chat\nFilter plugin \nThe Discord plugin now offers a toggle to\nshow RuneLite as the active game while on the login screen \nXP Globe icons now resize with the globes \nIngame personal best times with the recently-added "precise timing" ingame option are now saved\nto the Chat Commands plugin \nThe Timers plugin has learned to identify an\nimbued heart magic boost even in situations where the animation does not play \nNPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\nthe NPC Indicators plugin \nThe Mining plugin now highlights the active\ndaeyalt essence with an arrow \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 27 contributors this release!
\nAdam (39):\n key remapping: set press enter to chat text regardless of chatbox focus\n clues: make isle of souls hotcold location a master step\n object indicators: fix marking multilocs after var changes\n client: move core singleton eventbus registration to singleton constructors\n barrows plugin: use widget closed event for clearing puzzle\n devtools: add disconnect button\n discord plugin: only check for area update on logged in gamestate\n corp plugin: use varbit changed event to track damage\n ping: use icmp ping on linux if available\n api: add actor animations\n perspective: add plane parameter to getCanvasTileAreaPoly\n chat commands: add jad challenge kc and pbs\n Fix slayer plugin setting config values to null\n config manager: include profile in unset configchanged event\n barrows: simplify timer creation logic\n http service: remove unused sprite endpoint\n http service: remove unused cache item image endpoint\n http service: remove unused price endpoints\n item service: correct scheduled delay for reloading tradable items\n cache updater: fix race with saving archives and computing archive hashes\n http service: add wiki price service\n item controller: add config for price cache time\n item service: include wiki prices in price data\n client: add option to use wiki traded prices\n chat commands: support wiki prices in price command\n ge plugin: support wiki prices in search panel\n ge plugin: use wiki prices for actively traded price\n wiki price service: use v1 api\n ge plugin: use int for ha value\n ge plugin: cleanup\n ge plugin: use prices.runescape.wiki for ge link when using wiki prices\n agility shortcut: fix al kharid window map location\n game object: add size x/y methods\n api: add javadoc to tile object location api\n hunter plugin: update location translation for lizard traps\n woodcutting plugin: use tree location for determining the tree region\n xp globes: add dynamic skill icon sizing\n menus: add widgetmenuoption constructor for widgetid\n gpu: fix clEnqueueReleaseGLObjects call with no wait list\n\nBossHuso (2):\n chatcommands: Fix adventure log widget NPE\n music: Fix some NPEs\n\nBrandt Hill (2):\n Make Integer.class work when deserializing config\n kingdom: add notification message for favor and coffer value\n\nBroooklyn (15):\n ItemMapping: Add Trailblazer Graceful Ornament Kits\n discord: Add missing Misthalin region\n discord: Add Wild Varrock Last Man Standing regions\n loot tracker: Add Wild Varrock Last Man Standing regions\n worldmap: Improve cart and minecart systems tooltips (#13226)\n slayer: Add Soul Wars imbued Slayer Helmets to slayer item set\n clues: Add Soul Wars imbued Slayer Helmets to Emote and Skill sets\n ItemMapping: Add Soul Wars imbues\n chat notifications: Prevent localPlayer highlights and notifications (#13244)\n ItemMapping: Add Trouver Parchment items and refunds\n worldmap: Fix Grand Tree Tunnels dungeon location\n worldmap: Add western Revenant Caves dungeon entrance\n worldmap: Add Blisterwood tree location and requirement\n agility: Add Darkmeyer wall shortcut\n discord: Add Rogues\' Den bank, Salt Mine, and Waterbirth regions\n\nCyborger1 (3):\n ground markers: Add import/export menu option toggle\n ground markers: Add clear markers menu option\n slayer plugin: store task in rs profile configuration\n\nDavid Uhler Brand (1):\n chat notifications: add regex highlights\n\nDillon (1):\n discord: add main menu status option\n\nHexagon (1):\n Dedupe GameObjectSpawned events when simulating events\n\nHydrox6 (4):\n friendschat: remove user count after leaving chat channel\n config: add support for doubles\n http-service: change pbs from int to double\n chat commands: change pbs from int to double and support parsing them\n\nJames N (1):\n FaloTheBardClue: Accept trimmed Dragon defender and Tzhaar-ket-om (#13317)\n\nJonathan Lee (2):\n crowdsourcing: Add newly-found cooking messages\n cooking: Add more chatbox messages\n\nJonathan Pritchard (1):\n chat commands: fix hs kc patterns to match values greater than 999\n\nJordan Atwood (9):\n timers plugin: Improve imbued heart detection\n menu entry swapper config: Fix formatting from previous commit\n item identification: Fix duplicate tree seed entries\n HotColdLocation: Center some location spots\n client: Remove shaded jar minimizing\n npchighlight: Apply correct highlights to changed NPCs\n Widget: Mark getChildren() as nullable\n opponent info: Add simple interaction tests\n Revert "opponentinfo: Show health bar of actors attacking the player"\n\nKyle Shepherd (1):\n menu entry swapper: Add portal nexus teleport menu swap (#13181)\n\nMax Weber (7):\n ConfigManager: don\'t allow access to partially loaded configs\n Require Java 9 or higher for building\n devtools: factor frame handling out\n devtools: add shell window\n rl-api: update quest scripts to 2021-3-3\n http-api: encode json Colors as ARGB hex codes\n http-api: encode json Instants as millis since epoch\n\nNJohnsonJ (1):\n AgilityShortcut: Remove Catherby grapple world map tooltip (#13215)\n\nNathaniel Johnson (1):\n mining: Add hint arrow to active daeyalt essence\n\nNicholas Anzalone (2):\n clues: Remove duplicated coordinate clue from MapClue (#13342)\n cannon: move wilderness skeleton cannon spot off shooting star\n\nPatrick Watts (2):\n crowdsourcing: Improve woodcutting and cooking tracking (#13099)\n menu entry swapper: Add fishing spot bait swap (#13203)\n\nSilverfeelin (1):\n item identification: Add sacks (#9372)\n\nasdftemp (1):\n item identification: Add logs and planks (#13171)\n\nchaticon (1):\n opponentinfo: Show health bar of actors attacking the player\n\njoelewis43 (2):\n menu entry swapper: Add Fossil Island Rowboat Dive swap (#13237)\n SkillChallengeClue: Add Twisted Slayer Helmet to Dust devil step (#13245)\n\nmkowen1 (4):\n item identification: Add more seeds\n item identification: Add lunar teleport tablets\n item identification: Add composts\n item identification: Add bars\n\npilino1234 (2):\n itemidentification: Add more plugin search tags\n bankplugin: Add "pin" as plugin search tag\n\nsam (1):\n SkillChallengeClue: Specify number of bars for shayzien armor set\n\nsuperiorser9 (4):\n music: fix settings_slider_choose_onop stack mapping (#13268)\n BankPlugin: avoid keyboard input going to input text\n cooking: Fix POH altar burners false positive burn message (#13284)\n object indicators: don\'t clear markers on connection lost\n
\n'}}}]);
-//# sourceMappingURL=141.d63b2888.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[141],{417:function(e,n){e.exports={title:"1.7.1, 1.7.2, and 1.7.3 Releases",description:"RuneScape Wiki prices, Kingdom of Miscellania notifications, and account-specific slayer task tracking",author:"Jordan",body:'We have integrated the RuneScape Wiki\'s real-time\nprices , into the\nclient, where it is used for bank valuation, ground item highlights, grand\nexchange lookups, and more.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Kingdom of Miscellania\nplugin can now send\nnotifications upon login when your coffer or approval are below configured values \nYou can check your kill count and personal best times of TzHaar-Ket-Rak\'s multi-Jad challenges\nusing the chat commands !kc jad 3
\nand !pb jad 6
\nThe import and export menu options are now toggleable in the Ground Markers\nplugin . Additionally, a "Clear" option\nhas been added which, when used, will clear any visible markers near your location \nYour slayer task and streak information are\nnow profile-specific, and will be tracked correctly between accounts \nThe Chat Notifications plugin now\nsupports highlighting messages which match provided regular expressions, similar to the Chat\nFilter plugin \nThe Discord plugin now offers a toggle to\nshow RuneLite as the active game while on the login screen \nXP Globe icons now resize with the globes \nIngame personal best times with the recently-added "precise timing" ingame option are now saved\nto the Chat Commands plugin \nThe Timers plugin has learned to identify an\nimbued heart magic boost even in situations where the animation does not play \nNPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\nthe NPC Indicators plugin \nThe Mining plugin now highlights the active\ndaeyalt essence with an arrow \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 27 contributors this release!
\nAdam (39):\n key remapping: set press enter to chat text regardless of chatbox focus\n clues: make isle of souls hotcold location a master step\n object indicators: fix marking multilocs after var changes\n client: move core singleton eventbus registration to singleton constructors\n barrows plugin: use widget closed event for clearing puzzle\n devtools: add disconnect button\n discord plugin: only check for area update on logged in gamestate\n corp plugin: use varbit changed event to track damage\n ping: use icmp ping on linux if available\n api: add actor animations\n perspective: add plane parameter to getCanvasTileAreaPoly\n chat commands: add jad challenge kc and pbs\n Fix slayer plugin setting config values to null\n config manager: include profile in unset configchanged event\n barrows: simplify timer creation logic\n http service: remove unused sprite endpoint\n http service: remove unused cache item image endpoint\n http service: remove unused price endpoints\n item service: correct scheduled delay for reloading tradable items\n cache updater: fix race with saving archives and computing archive hashes\n http service: add wiki price service\n item controller: add config for price cache time\n item service: include wiki prices in price data\n client: add option to use wiki traded prices\n chat commands: support wiki prices in price command\n ge plugin: support wiki prices in search panel\n ge plugin: use wiki prices for actively traded price\n wiki price service: use v1 api\n ge plugin: use int for ha value\n ge plugin: cleanup\n ge plugin: use prices.runescape.wiki for ge link when using wiki prices\n agility shortcut: fix al kharid window map location\n game object: add size x/y methods\n api: add javadoc to tile object location api\n hunter plugin: update location translation for lizard traps\n woodcutting plugin: use tree location for determining the tree region\n xp globes: add dynamic skill icon sizing\n menus: add widgetmenuoption constructor for widgetid\n gpu: fix clEnqueueReleaseGLObjects call with no wait list\n\nBossHuso (2):\n chatcommands: Fix adventure log widget NPE\n music: Fix some NPEs\n\nBrandt Hill (2):\n Make Integer.class work when deserializing config\n kingdom: add notification message for favor and coffer value\n\nBroooklyn (15):\n ItemMapping: Add Trailblazer Graceful Ornament Kits\n discord: Add missing Misthalin region\n discord: Add Wild Varrock Last Man Standing regions\n loot tracker: Add Wild Varrock Last Man Standing regions\n worldmap: Improve cart and minecart systems tooltips (#13226)\n slayer: Add Soul Wars imbued Slayer Helmets to slayer item set\n clues: Add Soul Wars imbued Slayer Helmets to Emote and Skill sets\n ItemMapping: Add Soul Wars imbues\n chat notifications: Prevent localPlayer highlights and notifications (#13244)\n ItemMapping: Add Trouver Parchment items and refunds\n worldmap: Fix Grand Tree Tunnels dungeon location\n worldmap: Add western Revenant Caves dungeon entrance\n worldmap: Add Blisterwood tree location and requirement\n agility: Add Darkmeyer wall shortcut\n discord: Add Rogues\' Den bank, Salt Mine, and Waterbirth regions\n\nCyborger1 (3):\n ground markers: Add import/export menu option toggle\n ground markers: Add clear markers menu option\n slayer plugin: store task in rs profile configuration\n\nDavid Uhler Brand (1):\n chat notifications: add regex highlights\n\nDillon (1):\n discord: add main menu status option\n\nHexagon (1):\n Dedupe GameObjectSpawned events when simulating events\n\nHydrox6 (4):\n friendschat: remove user count after leaving chat channel\n config: add support for doubles\n http-service: change pbs from int to double\n chat commands: change pbs from int to double and support parsing them\n\nJames N (1):\n FaloTheBardClue: Accept trimmed Dragon defender and Tzhaar-ket-om (#13317)\n\nJonathan Lee (2):\n crowdsourcing: Add newly-found cooking messages\n cooking: Add more chatbox messages\n\nJonathan Pritchard (1):\n chat commands: fix hs kc patterns to match values greater than 999\n\nJordan Atwood (9):\n timers plugin: Improve imbued heart detection\n menu entry swapper config: Fix formatting from previous commit\n item identification: Fix duplicate tree seed entries\n HotColdLocation: Center some location spots\n client: Remove shaded jar minimizing\n npchighlight: Apply correct highlights to changed NPCs\n Widget: Mark getChildren() as nullable\n opponent info: Add simple interaction tests\n Revert "opponentinfo: Show health bar of actors attacking the player"\n\nKyle Shepherd (1):\n menu entry swapper: Add portal nexus teleport menu swap (#13181)\n\nMax Weber (7):\n ConfigManager: don\'t allow access to partially loaded configs\n Require Java 9 or higher for building\n devtools: factor frame handling out\n devtools: add shell window\n rl-api: update quest scripts to 2021-3-3\n http-api: encode json Colors as ARGB hex codes\n http-api: encode json Instants as millis since epoch\n\nNJohnsonJ (1):\n AgilityShortcut: Remove Catherby grapple world map tooltip (#13215)\n\nNathaniel Johnson (1):\n mining: Add hint arrow to active daeyalt essence\n\nNicholas Anzalone (2):\n clues: Remove duplicated coordinate clue from MapClue (#13342)\n cannon: move wilderness skeleton cannon spot off shooting star\n\nPatrick Watts (2):\n crowdsourcing: Improve woodcutting and cooking tracking (#13099)\n menu entry swapper: Add fishing spot bait swap (#13203)\n\nSilverfeelin (1):\n item identification: Add sacks (#9372)\n\nasdftemp (1):\n item identification: Add logs and planks (#13171)\n\nchaticon (1):\n opponentinfo: Show health bar of actors attacking the player\n\njoelewis43 (2):\n menu entry swapper: Add Fossil Island Rowboat Dive swap (#13237)\n SkillChallengeClue: Add Twisted Slayer Helmet to Dust devil step (#13245)\n\nmkowen1 (4):\n item identification: Add more seeds\n item identification: Add lunar teleport tablets\n item identification: Add composts\n item identification: Add bars\n\npilino1234 (2):\n itemidentification: Add more plugin search tags\n bankplugin: Add "pin" as plugin search tag\n\nsam (1):\n SkillChallengeClue: Specify number of bars for shayzien armor set\n\nsuperiorser9 (4):\n music: fix settings_slider_choose_onop stack mapping (#13268)\n BankPlugin: avoid keyboard input going to input text\n cooking: Fix POH altar burners false positive burn message (#13284)\n object indicators: don\'t clear markers on connection lost\n
\n'}}}]);
+//# sourceMappingURL=141.8cf2e5d9.chunk.js.map
\ No newline at end of file
diff --git a/static/js/141.d63b2888.chunk.js.map b/static/js/141.8cf2e5d9.chunk.js.map
similarity index 99%
rename from static/js/141.d63b2888.chunk.js.map
rename to static/js/141.8cf2e5d9.chunk.js.map
index 342361660..4af1a1d17 100644
--- a/static/js/141.d63b2888.chunk.js.map
+++ b/static/js/141.8cf2e5d9.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-03-24-10-00-1.7.3-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,mCAAmC,YAAc,yGAAyG,OAAS,SAAS,KAAO","file":"static/js/141.d63b2888.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.1, 1.7.2, and 1.7.3 Releases\",\"description\":\"RuneScape Wiki prices, Kingdom of Miscellania notifications, and account-specific slayer task tracking\",\"author\":\"Jordan\",\"body\":\"We have integrated the RuneScape Wiki's real-time\\nprices , into the\\nclient, where it is used for bank valuation, ground item highlights, grand\\nexchange lookups, and more.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Kingdom of Miscellania\\nplugin can now send\\nnotifications upon login when your coffer or approval are below configured values \\nYou can check your kill count and personal best times of TzHaar-Ket-Rak's multi-Jad challenges\\nusing the chat commands !kc jad 3
\\nand !pb jad 6
\\nThe import and export menu options are now toggleable in the Ground Markers\\nplugin . Additionally, a "Clear" option\\nhas been added which, when used, will clear any visible markers near your location \\nYour slayer task and streak information are\\nnow profile-specific, and will be tracked correctly between accounts \\nThe Chat Notifications plugin now\\nsupports highlighting messages which match provided regular expressions, similar to the Chat\\nFilter plugin \\nThe Discord plugin now offers a toggle to\\nshow RuneLite as the active game while on the login screen \\nXP Globe icons now resize with the globes \\nIngame personal best times with the recently-added "precise timing" ingame option are now saved\\nto the Chat Commands plugin \\nThe Timers plugin has learned to identify an\\nimbued heart magic boost even in situations where the animation does not play \\nNPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\\nthe NPC Indicators plugin \\nThe Mining plugin now highlights the active\\ndaeyalt essence with an arrow \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 27 contributors this release!
\\nAdam (39):\\n key remapping: set press enter to chat text regardless of chatbox focus\\n clues: make isle of souls hotcold location a master step\\n object indicators: fix marking multilocs after var changes\\n client: move core singleton eventbus registration to singleton constructors\\n barrows plugin: use widget closed event for clearing puzzle\\n devtools: add disconnect button\\n discord plugin: only check for area update on logged in gamestate\\n corp plugin: use varbit changed event to track damage\\n ping: use icmp ping on linux if available\\n api: add actor animations\\n perspective: add plane parameter to getCanvasTileAreaPoly\\n chat commands: add jad challenge kc and pbs\\n Fix slayer plugin setting config values to null\\n config manager: include profile in unset configchanged event\\n barrows: simplify timer creation logic\\n http service: remove unused sprite endpoint\\n http service: remove unused cache item image endpoint\\n http service: remove unused price endpoints\\n item service: correct scheduled delay for reloading tradable items\\n cache updater: fix race with saving archives and computing archive hashes\\n http service: add wiki price service\\n item controller: add config for price cache time\\n item service: include wiki prices in price data\\n client: add option to use wiki traded prices\\n chat commands: support wiki prices in price command\\n ge plugin: support wiki prices in search panel\\n ge plugin: use wiki prices for actively traded price\\n wiki price service: use v1 api\\n ge plugin: use int for ha value\\n ge plugin: cleanup\\n ge plugin: use prices.runescape.wiki for ge link when using wiki prices\\n agility shortcut: fix al kharid window map location\\n game object: add size x/y methods\\n api: add javadoc to tile object location api\\n hunter plugin: update location translation for lizard traps\\n woodcutting plugin: use tree location for determining the tree region\\n xp globes: add dynamic skill icon sizing\\n menus: add widgetmenuoption constructor for widgetid\\n gpu: fix clEnqueueReleaseGLObjects call with no wait list\\n\\nBossHuso (2):\\n chatcommands: Fix adventure log widget NPE\\n music: Fix some NPEs\\n\\nBrandt Hill (2):\\n Make Integer.class work when deserializing config\\n kingdom: add notification message for favor and coffer value\\n\\nBroooklyn (15):\\n ItemMapping: Add Trailblazer Graceful Ornament Kits\\n discord: Add missing Misthalin region\\n discord: Add Wild Varrock Last Man Standing regions\\n loot tracker: Add Wild Varrock Last Man Standing regions\\n worldmap: Improve cart and minecart systems tooltips (#13226)\\n slayer: Add Soul Wars imbued Slayer Helmets to slayer item set\\n clues: Add Soul Wars imbued Slayer Helmets to Emote and Skill sets\\n ItemMapping: Add Soul Wars imbues\\n chat notifications: Prevent localPlayer highlights and notifications (#13244)\\n ItemMapping: Add Trouver Parchment items and refunds\\n worldmap: Fix Grand Tree Tunnels dungeon location\\n worldmap: Add western Revenant Caves dungeon entrance\\n worldmap: Add Blisterwood tree location and requirement\\n agility: Add Darkmeyer wall shortcut\\n discord: Add Rogues' Den bank, Salt Mine, and Waterbirth regions\\n\\nCyborger1 (3):\\n ground markers: Add import/export menu option toggle\\n ground markers: Add clear markers menu option\\n slayer plugin: store task in rs profile configuration\\n\\nDavid Uhler Brand (1):\\n chat notifications: add regex highlights\\n\\nDillon (1):\\n discord: add main menu status option\\n\\nHexagon (1):\\n Dedupe GameObjectSpawned events when simulating events\\n\\nHydrox6 (4):\\n friendschat: remove user count after leaving chat channel\\n config: add support for doubles\\n http-service: change pbs from int to double\\n chat commands: change pbs from int to double and support parsing them\\n\\nJames N (1):\\n FaloTheBardClue: Accept trimmed Dragon defender and Tzhaar-ket-om (#13317)\\n\\nJonathan Lee (2):\\n crowdsourcing: Add newly-found cooking messages\\n cooking: Add more chatbox messages\\n\\nJonathan Pritchard (1):\\n chat commands: fix hs kc patterns to match values greater than 999\\n\\nJordan Atwood (9):\\n timers plugin: Improve imbued heart detection\\n menu entry swapper config: Fix formatting from previous commit\\n item identification: Fix duplicate tree seed entries\\n HotColdLocation: Center some location spots\\n client: Remove shaded jar minimizing\\n npchighlight: Apply correct highlights to changed NPCs\\n Widget: Mark getChildren() as nullable\\n opponent info: Add simple interaction tests\\n Revert "opponentinfo: Show health bar of actors attacking the player"\\n\\nKyle Shepherd (1):\\n menu entry swapper: Add portal nexus teleport menu swap (#13181)\\n\\nMax Weber (7):\\n ConfigManager: don't allow access to partially loaded configs\\n Require Java 9 or higher for building\\n devtools: factor frame handling out\\n devtools: add shell window\\n rl-api: update quest scripts to 2021-3-3\\n http-api: encode json Colors as ARGB hex codes\\n http-api: encode json Instants as millis since epoch\\n\\nNJohnsonJ (1):\\n AgilityShortcut: Remove Catherby grapple world map tooltip (#13215)\\n\\nNathaniel Johnson (1):\\n mining: Add hint arrow to active daeyalt essence\\n\\nNicholas Anzalone (2):\\n clues: Remove duplicated coordinate clue from MapClue (#13342)\\n cannon: move wilderness skeleton cannon spot off shooting star\\n\\nPatrick Watts (2):\\n crowdsourcing: Improve woodcutting and cooking tracking (#13099)\\n menu entry swapper: Add fishing spot bait swap (#13203)\\n\\nSilverfeelin (1):\\n item identification: Add sacks (#9372)\\n\\nasdftemp (1):\\n item identification: Add logs and planks (#13171)\\n\\nchaticon (1):\\n opponentinfo: Show health bar of actors attacking the player\\n\\njoelewis43 (2):\\n menu entry swapper: Add Fossil Island Rowboat Dive swap (#13237)\\n SkillChallengeClue: Add Twisted Slayer Helmet to Dust devil step (#13245)\\n\\nmkowen1 (4):\\n item identification: Add more seeds\\n item identification: Add lunar teleport tablets\\n item identification: Add composts\\n item identification: Add bars\\n\\npilino1234 (2):\\n itemidentification: Add more plugin search tags\\n bankplugin: Add "pin" as plugin search tag\\n\\nsam (1):\\n SkillChallengeClue: Specify number of bars for shayzien armor set\\n\\nsuperiorser9 (4):\\n music: fix settings_slider_choose_onop stack mapping (#13268)\\n BankPlugin: avoid keyboard input going to input text\\n cooking: Fix POH altar burners false positive burn message (#13284)\\n object indicators: don't clear markers on connection lost\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-03-24-10-00-1.7.3-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,mCAAmC,YAAc,yGAAyG,OAAS,SAAS,KAAO","file":"static/js/141.8cf2e5d9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.1, 1.7.2, and 1.7.3 Releases\",\"description\":\"RuneScape Wiki prices, Kingdom of Miscellania notifications, and account-specific slayer task tracking\",\"author\":\"Jordan\",\"body\":\"We have integrated the RuneScape Wiki's real-time\\nprices , into the\\nclient, where it is used for bank valuation, ground item highlights, grand\\nexchange lookups, and more.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Kingdom of Miscellania\\nplugin can now send\\nnotifications upon login when your coffer or approval are below configured values \\nYou can check your kill count and personal best times of TzHaar-Ket-Rak's multi-Jad challenges\\nusing the chat commands !kc jad 3
\\nand !pb jad 6
\\nThe import and export menu options are now toggleable in the Ground Markers\\nplugin . Additionally, a "Clear" option\\nhas been added which, when used, will clear any visible markers near your location \\nYour slayer task and streak information are\\nnow profile-specific, and will be tracked correctly between accounts \\nThe Chat Notifications plugin now\\nsupports highlighting messages which match provided regular expressions, similar to the Chat\\nFilter plugin \\nThe Discord plugin now offers a toggle to\\nshow RuneLite as the active game while on the login screen \\nXP Globe icons now resize with the globes \\nIngame personal best times with the recently-added "precise timing" ingame option are now saved\\nto the Chat Commands plugin \\nThe Timers plugin has learned to identify an\\nimbued heart magic boost even in situations where the animation does not play \\nNPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\\nthe NPC Indicators plugin \\nThe Mining plugin now highlights the active\\ndaeyalt essence with an arrow \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 27 contributors this release!
\\nAdam (39):\\n key remapping: set press enter to chat text regardless of chatbox focus\\n clues: make isle of souls hotcold location a master step\\n object indicators: fix marking multilocs after var changes\\n client: move core singleton eventbus registration to singleton constructors\\n barrows plugin: use widget closed event for clearing puzzle\\n devtools: add disconnect button\\n discord plugin: only check for area update on logged in gamestate\\n corp plugin: use varbit changed event to track damage\\n ping: use icmp ping on linux if available\\n api: add actor animations\\n perspective: add plane parameter to getCanvasTileAreaPoly\\n chat commands: add jad challenge kc and pbs\\n Fix slayer plugin setting config values to null\\n config manager: include profile in unset configchanged event\\n barrows: simplify timer creation logic\\n http service: remove unused sprite endpoint\\n http service: remove unused cache item image endpoint\\n http service: remove unused price endpoints\\n item service: correct scheduled delay for reloading tradable items\\n cache updater: fix race with saving archives and computing archive hashes\\n http service: add wiki price service\\n item controller: add config for price cache time\\n item service: include wiki prices in price data\\n client: add option to use wiki traded prices\\n chat commands: support wiki prices in price command\\n ge plugin: support wiki prices in search panel\\n ge plugin: use wiki prices for actively traded price\\n wiki price service: use v1 api\\n ge plugin: use int for ha value\\n ge plugin: cleanup\\n ge plugin: use prices.runescape.wiki for ge link when using wiki prices\\n agility shortcut: fix al kharid window map location\\n game object: add size x/y methods\\n api: add javadoc to tile object location api\\n hunter plugin: update location translation for lizard traps\\n woodcutting plugin: use tree location for determining the tree region\\n xp globes: add dynamic skill icon sizing\\n menus: add widgetmenuoption constructor for widgetid\\n gpu: fix clEnqueueReleaseGLObjects call with no wait list\\n\\nBossHuso (2):\\n chatcommands: Fix adventure log widget NPE\\n music: Fix some NPEs\\n\\nBrandt Hill (2):\\n Make Integer.class work when deserializing config\\n kingdom: add notification message for favor and coffer value\\n\\nBroooklyn (15):\\n ItemMapping: Add Trailblazer Graceful Ornament Kits\\n discord: Add missing Misthalin region\\n discord: Add Wild Varrock Last Man Standing regions\\n loot tracker: Add Wild Varrock Last Man Standing regions\\n worldmap: Improve cart and minecart systems tooltips (#13226)\\n slayer: Add Soul Wars imbued Slayer Helmets to slayer item set\\n clues: Add Soul Wars imbued Slayer Helmets to Emote and Skill sets\\n ItemMapping: Add Soul Wars imbues\\n chat notifications: Prevent localPlayer highlights and notifications (#13244)\\n ItemMapping: Add Trouver Parchment items and refunds\\n worldmap: Fix Grand Tree Tunnels dungeon location\\n worldmap: Add western Revenant Caves dungeon entrance\\n worldmap: Add Blisterwood tree location and requirement\\n agility: Add Darkmeyer wall shortcut\\n discord: Add Rogues' Den bank, Salt Mine, and Waterbirth regions\\n\\nCyborger1 (3):\\n ground markers: Add import/export menu option toggle\\n ground markers: Add clear markers menu option\\n slayer plugin: store task in rs profile configuration\\n\\nDavid Uhler Brand (1):\\n chat notifications: add regex highlights\\n\\nDillon (1):\\n discord: add main menu status option\\n\\nHexagon (1):\\n Dedupe GameObjectSpawned events when simulating events\\n\\nHydrox6 (4):\\n friendschat: remove user count after leaving chat channel\\n config: add support for doubles\\n http-service: change pbs from int to double\\n chat commands: change pbs from int to double and support parsing them\\n\\nJames N (1):\\n FaloTheBardClue: Accept trimmed Dragon defender and Tzhaar-ket-om (#13317)\\n\\nJonathan Lee (2):\\n crowdsourcing: Add newly-found cooking messages\\n cooking: Add more chatbox messages\\n\\nJonathan Pritchard (1):\\n chat commands: fix hs kc patterns to match values greater than 999\\n\\nJordan Atwood (9):\\n timers plugin: Improve imbued heart detection\\n menu entry swapper config: Fix formatting from previous commit\\n item identification: Fix duplicate tree seed entries\\n HotColdLocation: Center some location spots\\n client: Remove shaded jar minimizing\\n npchighlight: Apply correct highlights to changed NPCs\\n Widget: Mark getChildren() as nullable\\n opponent info: Add simple interaction tests\\n Revert "opponentinfo: Show health bar of actors attacking the player"\\n\\nKyle Shepherd (1):\\n menu entry swapper: Add portal nexus teleport menu swap (#13181)\\n\\nMax Weber (7):\\n ConfigManager: don't allow access to partially loaded configs\\n Require Java 9 or higher for building\\n devtools: factor frame handling out\\n devtools: add shell window\\n rl-api: update quest scripts to 2021-3-3\\n http-api: encode json Colors as ARGB hex codes\\n http-api: encode json Instants as millis since epoch\\n\\nNJohnsonJ (1):\\n AgilityShortcut: Remove Catherby grapple world map tooltip (#13215)\\n\\nNathaniel Johnson (1):\\n mining: Add hint arrow to active daeyalt essence\\n\\nNicholas Anzalone (2):\\n clues: Remove duplicated coordinate clue from MapClue (#13342)\\n cannon: move wilderness skeleton cannon spot off shooting star\\n\\nPatrick Watts (2):\\n crowdsourcing: Improve woodcutting and cooking tracking (#13099)\\n menu entry swapper: Add fishing spot bait swap (#13203)\\n\\nSilverfeelin (1):\\n item identification: Add sacks (#9372)\\n\\nasdftemp (1):\\n item identification: Add logs and planks (#13171)\\n\\nchaticon (1):\\n opponentinfo: Show health bar of actors attacking the player\\n\\njoelewis43 (2):\\n menu entry swapper: Add Fossil Island Rowboat Dive swap (#13237)\\n SkillChallengeClue: Add Twisted Slayer Helmet to Dust devil step (#13245)\\n\\nmkowen1 (4):\\n item identification: Add more seeds\\n item identification: Add lunar teleport tablets\\n item identification: Add composts\\n item identification: Add bars\\n\\npilino1234 (2):\\n itemidentification: Add more plugin search tags\\n bankplugin: Add "pin" as plugin search tag\\n\\nsam (1):\\n SkillChallengeClue: Specify number of bars for shayzien armor set\\n\\nsuperiorser9 (4):\\n music: fix settings_slider_choose_onop stack mapping (#13268)\\n BankPlugin: avoid keyboard input going to input text\\n cooking: Fix POH altar burners false positive burn message (#13284)\\n object indicators: don't clear markers on connection lost\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/142.413c6bfe.chunk.js b/static/js/142.bad7c213.chunk.js
similarity index 98%
rename from static/js/142.413c6bfe.chunk.js
rename to static/js/142.bad7c213.chunk.js
index c2a532aaf..643d7c831 100644
--- a/static/js/142.413c6bfe.chunk.js
+++ b/static/js/142.bad7c213.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[142],{417:function(e,n){e.exports={title:"1.7.7 Release",description:"Minor fixes and improvements",author:"Adam",body:'We\'ve had a few updates since the last blog post, mostly minor, and so this post includes those changes as well as the changes today.
\nThe low detail plugin now has an option to hide lower floors, which is particularly useful on lower end computers in\nbusy areas, like the hallowed sepulchre.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nThe friend list plugin now has an option to show the world a player logged into on the log in message.
\n
\nThe item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.
\n
\nA world region filter was added to the world switcher plugin, which causes the world hopper panel to only list worlds in a specific region.
\n
\nThe chat colors config has gained an additional option to allow recoloring your own username in chat.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nSTASH units that you\'ve removed items from now stay highlighted after the clue step has been completed, to remind you to deposit the items back \nWhen using Lookup
from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player \nItems required for skill challenge clues are now found when using the clue
bank tag \nThe fishing trawler time remaining display has been updated to reflect the recent changes to the game duration \nThe status bars alignment in modern resizable mode has been fixed back to its original position \nThe obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted \nTempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker \nThe Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing \nA !pb tempoross
command has been added (requires getting 1 additional kill post-update) \nThe spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately \nBattlestaffs have been added to the fletching calculator \nA Leave
swap has been added to the menu entry swapper for leaving Tempoross after a game \nA bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed \nThe camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 21 contributors this release!
\nAdam (23):\n wsclient: set ua on ws request\n pom: rename maven-central repositories to central\n api: add get/set min level to Scene\n low detail: add option to hide lower planes\n api: add getters for actor anim and spotanim frame\n devtools: use setAnimationFrame\n comp.cl: remove unused to_screen.cl import\n Update build for jdk 16\n containable frame: fix parsing version strings with only a major number\n hiscore: use correct endpoint when looking up self with shortcut\n hiscore: use correct endpoint when looking up chat messages\n api: add player composition colors\n api: add cross world message fields\n clues: add skill challenge clue requirements to clue tag test\n fishing plugin: update for fishing trawler changes\n widgets: fix modern resizable interface container component id\n chat message manager: add default color for friendschatnotification chat type\n friends chat: use friendschatinfo color for join/part messages\n agility plugin: add rellekka lighthouse obstacles\n info: simplify language surrounding config import\n client: accept custom javconfig url\n item charges: simplify infobox creation logic\n clientloader: don\'t use fallback config or client when jav_config is manually specified\n\nAlexsuperfly (2):\n cannon: check invent cballs to initialize count when placing\n cannon: set count when loading wrong type of cannonballs\n\nAmit G (1):\n SkillChallengeClue: Support inactive crystal tools (#13517)\n\nBroooklyn (8):\n loottracker: Separate events that do not produce ground items\n loottracker: Add support for Tempoross Reward pool and new Casket\n fishing: Add Tempoross IDs and config to highlight bubbling spots\n Widget: Make Tempoross status indicator moveable\n worldmap: Add fishing spots from Tempoross update\n worldmap: Add Al Kharid and Ruins of Unkah Ferry locations\n worldmap: Add Ruins of Unkah mining location\n discord: finish naming over-world regions\n\nCyborger1 (1):\n SkillChallengeClue: Add Gold shade keys to Fiyr shade step (#13260)\n\nHydrox (14):\n Update discord invite links to start users in #welcome (#13549)\n image util: add function to scale images while preserving aspect ratio\n xp globes: scale icon while respecting aspect ratio\n item charges: use RSProfiles for items with stored charges\n time tracking: fix birdhouse notification buttons not doing anything\n idle notifier: add support for the imcando hammer\n wintertodt: add support for imcando hammer\n clues: update reanimated abyssal demon task for new reanimation spells\n skill calc: update arceuus spells\n clues: highlight the last clue\'s STASH until items are deposited back\n chat commands: add support for tempoross pb messages\n item charges: add bracelet of slaughter and expeditious bracelet\n slayer: remove bracelet charge tracking\n camera: add option to preserve pitch on compass look menu entries\n\nJordan Atwood (2):\n HotColdLocation: Fix Seers\' Village bank spot\n menu manager: add menu entries in insert order\n\nLlemonDuck (2):\n clues: Fix location of Captain Bleemadge (#13531)\n Add Below Ice Mountain quest\n\nMaciej Lewicki (1):\n friendlist: add option to show world in login notifications\n\nMartin H (1):\n achievementdiary: Update Runecraft task texts (#13485)\n\nMatt Dennis (2):\n spec counter: combine item variations into one weapon\n examine: Improve plugin description and tags (#13399)\n\nMax Weber (4):\n eventbus: preserve priority ordering during unregister\n cache/ObjectLoader: add randomizeAnimStart opcode from rev 193\n cache/NpcLoader: add category opcode from rev 195\n Update IDs for 2021-4-28\n\nNicholas Anzalone (2):\n achievement diary: remove requirment from easy fishing trawler task\n skill calc: Add battlesaff to fletching calculator (#13525)\n\nOwen (1):\n clues: Support golden prospector kit (#13457)\n\nRobert (1):\n chat colors: add color option for player\'s own name\n\nRuneLogApp (1):\n music plugin: add null check to SettingsSideSlider icon on shutdown\n\naHooder (1):\n gpu: workaround for forced anti-aliasing\n\nemiljensen2 (1):\n loot tracker: support tob lobby reward chest\n\nisaacph (1):\n world hopper: add region filter config\n\nmolo-pl (2):\n clues: Support spirit angler\'s outfit (#13421)\n menu entry swapper: add Tempoross leave swap\n\nsuperiorser9 (1):\n wiki: only show vanilla wiki banner when enabled (#13380)\n
\n',image:"/img/blog/1.7.7-Release/hallowed-sepulchre-normal.png"}}}]);
-//# sourceMappingURL=142.413c6bfe.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[142],{418:function(e,n){e.exports={title:"1.7.7 Release",description:"Minor fixes and improvements",author:"Adam",body:'We\'ve had a few updates since the last blog post, mostly minor, and so this post includes those changes as well as the changes today.
\nThe low detail plugin now has an option to hide lower floors, which is particularly useful on lower end computers in\nbusy areas, like the hallowed sepulchre.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nThe friend list plugin now has an option to show the world a player logged into on the log in message.
\n
\nThe item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.
\n
\nA world region filter was added to the world switcher plugin, which causes the world hopper panel to only list worlds in a specific region.
\n
\nThe chat colors config has gained an additional option to allow recoloring your own username in chat.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nSTASH units that you\'ve removed items from now stay highlighted after the clue step has been completed, to remind you to deposit the items back \nWhen using Lookup
from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player \nItems required for skill challenge clues are now found when using the clue
bank tag \nThe fishing trawler time remaining display has been updated to reflect the recent changes to the game duration \nThe status bars alignment in modern resizable mode has been fixed back to its original position \nThe obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted \nTempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker \nThe Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing \nA !pb tempoross
command has been added (requires getting 1 additional kill post-update) \nThe spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately \nBattlestaffs have been added to the fletching calculator \nA Leave
swap has been added to the menu entry swapper for leaving Tempoross after a game \nA bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed \nThe camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 21 contributors this release!
\nAdam (23):\n wsclient: set ua on ws request\n pom: rename maven-central repositories to central\n api: add get/set min level to Scene\n low detail: add option to hide lower planes\n api: add getters for actor anim and spotanim frame\n devtools: use setAnimationFrame\n comp.cl: remove unused to_screen.cl import\n Update build for jdk 16\n containable frame: fix parsing version strings with only a major number\n hiscore: use correct endpoint when looking up self with shortcut\n hiscore: use correct endpoint when looking up chat messages\n api: add player composition colors\n api: add cross world message fields\n clues: add skill challenge clue requirements to clue tag test\n fishing plugin: update for fishing trawler changes\n widgets: fix modern resizable interface container component id\n chat message manager: add default color for friendschatnotification chat type\n friends chat: use friendschatinfo color for join/part messages\n agility plugin: add rellekka lighthouse obstacles\n info: simplify language surrounding config import\n client: accept custom javconfig url\n item charges: simplify infobox creation logic\n clientloader: don\'t use fallback config or client when jav_config is manually specified\n\nAlexsuperfly (2):\n cannon: check invent cballs to initialize count when placing\n cannon: set count when loading wrong type of cannonballs\n\nAmit G (1):\n SkillChallengeClue: Support inactive crystal tools (#13517)\n\nBroooklyn (8):\n loottracker: Separate events that do not produce ground items\n loottracker: Add support for Tempoross Reward pool and new Casket\n fishing: Add Tempoross IDs and config to highlight bubbling spots\n Widget: Make Tempoross status indicator moveable\n worldmap: Add fishing spots from Tempoross update\n worldmap: Add Al Kharid and Ruins of Unkah Ferry locations\n worldmap: Add Ruins of Unkah mining location\n discord: finish naming over-world regions\n\nCyborger1 (1):\n SkillChallengeClue: Add Gold shade keys to Fiyr shade step (#13260)\n\nHydrox (14):\n Update discord invite links to start users in #welcome (#13549)\n image util: add function to scale images while preserving aspect ratio\n xp globes: scale icon while respecting aspect ratio\n item charges: use RSProfiles for items with stored charges\n time tracking: fix birdhouse notification buttons not doing anything\n idle notifier: add support for the imcando hammer\n wintertodt: add support for imcando hammer\n clues: update reanimated abyssal demon task for new reanimation spells\n skill calc: update arceuus spells\n clues: highlight the last clue\'s STASH until items are deposited back\n chat commands: add support for tempoross pb messages\n item charges: add bracelet of slaughter and expeditious bracelet\n slayer: remove bracelet charge tracking\n camera: add option to preserve pitch on compass look menu entries\n\nJordan Atwood (2):\n HotColdLocation: Fix Seers\' Village bank spot\n menu manager: add menu entries in insert order\n\nLlemonDuck (2):\n clues: Fix location of Captain Bleemadge (#13531)\n Add Below Ice Mountain quest\n\nMaciej Lewicki (1):\n friendlist: add option to show world in login notifications\n\nMartin H (1):\n achievementdiary: Update Runecraft task texts (#13485)\n\nMatt Dennis (2):\n spec counter: combine item variations into one weapon\n examine: Improve plugin description and tags (#13399)\n\nMax Weber (4):\n eventbus: preserve priority ordering during unregister\n cache/ObjectLoader: add randomizeAnimStart opcode from rev 193\n cache/NpcLoader: add category opcode from rev 195\n Update IDs for 2021-4-28\n\nNicholas Anzalone (2):\n achievement diary: remove requirment from easy fishing trawler task\n skill calc: Add battlesaff to fletching calculator (#13525)\n\nOwen (1):\n clues: Support golden prospector kit (#13457)\n\nRobert (1):\n chat colors: add color option for player\'s own name\n\nRuneLogApp (1):\n music plugin: add null check to SettingsSideSlider icon on shutdown\n\naHooder (1):\n gpu: workaround for forced anti-aliasing\n\nemiljensen2 (1):\n loot tracker: support tob lobby reward chest\n\nisaacph (1):\n world hopper: add region filter config\n\nmolo-pl (2):\n clues: Support spirit angler\'s outfit (#13421)\n menu entry swapper: add Tempoross leave swap\n\nsuperiorser9 (1):\n wiki: only show vanilla wiki banner when enabled (#13380)\n
\n',image:"/img/blog/1.7.7-Release/hallowed-sepulchre-normal.png"}}}]);
+//# sourceMappingURL=142.bad7c213.chunk.js.map
\ No newline at end of file
diff --git a/static/js/142.413c6bfe.chunk.js.map b/static/js/142.bad7c213.chunk.js.map
similarity index 99%
rename from static/js/142.413c6bfe.chunk.js.map
rename to static/js/142.bad7c213.chunk.js.map
index 509239f57..aa4916717 100644
--- a/static/js/142.413c6bfe.chunk.js.map
+++ b/static/js/142.bad7c213.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-05-12-10-00-1.7.7-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+BAA+B,OAAS,OAAO,KAAO,6+PAAsgQ,MAAQ","file":"static/js/142.413c6bfe.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.7 Release\",\"description\":\"Minor fixes and improvements\",\"author\":\"Adam\",\"body\":\"We've had a few updates since the last blog post, mostly minor, and so this post includes those changes as well as the changes today.
\\nThe low detail plugin now has an option to hide lower floors, which is particularly useful on lower end computers in\\nbusy areas, like the hallowed sepulchre.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThe friend list plugin now has an option to show the world a player logged into on the log in message.
\\n
\\nThe item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.
\\n
\\nA world region filter was added to the world switcher plugin, which causes the world hopper panel to only list worlds in a specific region.
\\n
\\nThe chat colors config has gained an additional option to allow recoloring your own username in chat.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSTASH units that you've removed items from now stay highlighted after the clue step has been completed, to remind you to deposit the items back \\nWhen using Lookup
from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player \\nItems required for skill challenge clues are now found when using the clue
bank tag \\nThe fishing trawler time remaining display has been updated to reflect the recent changes to the game duration \\nThe status bars alignment in modern resizable mode has been fixed back to its original position \\nThe obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted \\nTempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker \\nThe Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing \\nA !pb tempoross
command has been added (requires getting 1 additional kill post-update) \\nThe spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately \\nBattlestaffs have been added to the fletching calculator \\nA Leave
swap has been added to the menu entry swapper for leaving Tempoross after a game \\nA bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed \\nThe camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 21 contributors this release!
\\nAdam (23):\\n wsclient: set ua on ws request\\n pom: rename maven-central repositories to central\\n api: add get/set min level to Scene\\n low detail: add option to hide lower planes\\n api: add getters for actor anim and spotanim frame\\n devtools: use setAnimationFrame\\n comp.cl: remove unused to_screen.cl import\\n Update build for jdk 16\\n containable frame: fix parsing version strings with only a major number\\n hiscore: use correct endpoint when looking up self with shortcut\\n hiscore: use correct endpoint when looking up chat messages\\n api: add player composition colors\\n api: add cross world message fields\\n clues: add skill challenge clue requirements to clue tag test\\n fishing plugin: update for fishing trawler changes\\n widgets: fix modern resizable interface container component id\\n chat message manager: add default color for friendschatnotification chat type\\n friends chat: use friendschatinfo color for join/part messages\\n agility plugin: add rellekka lighthouse obstacles\\n info: simplify language surrounding config import\\n client: accept custom javconfig url\\n item charges: simplify infobox creation logic\\n clientloader: don't use fallback config or client when jav_config is manually specified\\n\\nAlexsuperfly (2):\\n cannon: check invent cballs to initialize count when placing\\n cannon: set count when loading wrong type of cannonballs\\n\\nAmit G (1):\\n SkillChallengeClue: Support inactive crystal tools (#13517)\\n\\nBroooklyn (8):\\n loottracker: Separate events that do not produce ground items\\n loottracker: Add support for Tempoross Reward pool and new Casket\\n fishing: Add Tempoross IDs and config to highlight bubbling spots\\n Widget: Make Tempoross status indicator moveable\\n worldmap: Add fishing spots from Tempoross update\\n worldmap: Add Al Kharid and Ruins of Unkah Ferry locations\\n worldmap: Add Ruins of Unkah mining location\\n discord: finish naming over-world regions\\n\\nCyborger1 (1):\\n SkillChallengeClue: Add Gold shade keys to Fiyr shade step (#13260)\\n\\nHydrox (14):\\n Update discord invite links to start users in #welcome (#13549)\\n image util: add function to scale images while preserving aspect ratio\\n xp globes: scale icon while respecting aspect ratio\\n item charges: use RSProfiles for items with stored charges\\n time tracking: fix birdhouse notification buttons not doing anything\\n idle notifier: add support for the imcando hammer\\n wintertodt: add support for imcando hammer\\n clues: update reanimated abyssal demon task for new reanimation spells\\n skill calc: update arceuus spells\\n clues: highlight the last clue's STASH until items are deposited back\\n chat commands: add support for tempoross pb messages\\n item charges: add bracelet of slaughter and expeditious bracelet\\n slayer: remove bracelet charge tracking\\n camera: add option to preserve pitch on compass look menu entries\\n\\nJordan Atwood (2):\\n HotColdLocation: Fix Seers' Village bank spot\\n menu manager: add menu entries in insert order\\n\\nLlemonDuck (2):\\n clues: Fix location of Captain Bleemadge (#13531)\\n Add Below Ice Mountain quest\\n\\nMaciej Lewicki (1):\\n friendlist: add option to show world in login notifications\\n\\nMartin H (1):\\n achievementdiary: Update Runecraft task texts (#13485)\\n\\nMatt Dennis (2):\\n spec counter: combine item variations into one weapon\\n examine: Improve plugin description and tags (#13399)\\n\\nMax Weber (4):\\n eventbus: preserve priority ordering during unregister\\n cache/ObjectLoader: add randomizeAnimStart opcode from rev 193\\n cache/NpcLoader: add category opcode from rev 195\\n Update IDs for 2021-4-28\\n\\nNicholas Anzalone (2):\\n achievement diary: remove requirment from easy fishing trawler task\\n skill calc: Add battlesaff to fletching calculator (#13525)\\n\\nOwen (1):\\n clues: Support golden prospector kit (#13457)\\n\\nRobert (1):\\n chat colors: add color option for player's own name\\n\\nRuneLogApp (1):\\n music plugin: add null check to SettingsSideSlider icon on shutdown\\n\\naHooder (1):\\n gpu: workaround for forced anti-aliasing\\n\\nemiljensen2 (1):\\n loot tracker: support tob lobby reward chest\\n\\nisaacph (1):\\n world hopper: add region filter config\\n\\nmolo-pl (2):\\n clues: Support spirit angler's outfit (#13421)\\n menu entry swapper: add Tempoross leave swap\\n\\nsuperiorser9 (1):\\n wiki: only show vanilla wiki banner when enabled (#13380)\\n
\\n\",\"image\":\"/img/blog/1.7.7-Release/hallowed-sepulchre-normal.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-05-12-10-00-1.7.7-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+BAA+B,OAAS,OAAO,KAAO,6+PAAsgQ,MAAQ","file":"static/js/142.bad7c213.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.7 Release\",\"description\":\"Minor fixes and improvements\",\"author\":\"Adam\",\"body\":\"We've had a few updates since the last blog post, mostly minor, and so this post includes those changes as well as the changes today.
\\nThe low detail plugin now has an option to hide lower floors, which is particularly useful on lower end computers in\\nbusy areas, like the hallowed sepulchre.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThe friend list plugin now has an option to show the world a player logged into on the log in message.
\\n
\\nThe item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.
\\n
\\nA world region filter was added to the world switcher plugin, which causes the world hopper panel to only list worlds in a specific region.
\\n
\\nThe chat colors config has gained an additional option to allow recoloring your own username in chat.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSTASH units that you've removed items from now stay highlighted after the clue step has been completed, to remind you to deposit the items back \\nWhen using Lookup
from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player \\nItems required for skill challenge clues are now found when using the clue
bank tag \\nThe fishing trawler time remaining display has been updated to reflect the recent changes to the game duration \\nThe status bars alignment in modern resizable mode has been fixed back to its original position \\nThe obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted \\nTempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker \\nThe Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing \\nA !pb tempoross
command has been added (requires getting 1 additional kill post-update) \\nThe spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately \\nBattlestaffs have been added to the fletching calculator \\nA Leave
swap has been added to the menu entry swapper for leaving Tempoross after a game \\nA bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed \\nThe camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 21 contributors this release!
\\nAdam (23):\\n wsclient: set ua on ws request\\n pom: rename maven-central repositories to central\\n api: add get/set min level to Scene\\n low detail: add option to hide lower planes\\n api: add getters for actor anim and spotanim frame\\n devtools: use setAnimationFrame\\n comp.cl: remove unused to_screen.cl import\\n Update build for jdk 16\\n containable frame: fix parsing version strings with only a major number\\n hiscore: use correct endpoint when looking up self with shortcut\\n hiscore: use correct endpoint when looking up chat messages\\n api: add player composition colors\\n api: add cross world message fields\\n clues: add skill challenge clue requirements to clue tag test\\n fishing plugin: update for fishing trawler changes\\n widgets: fix modern resizable interface container component id\\n chat message manager: add default color for friendschatnotification chat type\\n friends chat: use friendschatinfo color for join/part messages\\n agility plugin: add rellekka lighthouse obstacles\\n info: simplify language surrounding config import\\n client: accept custom javconfig url\\n item charges: simplify infobox creation logic\\n clientloader: don't use fallback config or client when jav_config is manually specified\\n\\nAlexsuperfly (2):\\n cannon: check invent cballs to initialize count when placing\\n cannon: set count when loading wrong type of cannonballs\\n\\nAmit G (1):\\n SkillChallengeClue: Support inactive crystal tools (#13517)\\n\\nBroooklyn (8):\\n loottracker: Separate events that do not produce ground items\\n loottracker: Add support for Tempoross Reward pool and new Casket\\n fishing: Add Tempoross IDs and config to highlight bubbling spots\\n Widget: Make Tempoross status indicator moveable\\n worldmap: Add fishing spots from Tempoross update\\n worldmap: Add Al Kharid and Ruins of Unkah Ferry locations\\n worldmap: Add Ruins of Unkah mining location\\n discord: finish naming over-world regions\\n\\nCyborger1 (1):\\n SkillChallengeClue: Add Gold shade keys to Fiyr shade step (#13260)\\n\\nHydrox (14):\\n Update discord invite links to start users in #welcome (#13549)\\n image util: add function to scale images while preserving aspect ratio\\n xp globes: scale icon while respecting aspect ratio\\n item charges: use RSProfiles for items with stored charges\\n time tracking: fix birdhouse notification buttons not doing anything\\n idle notifier: add support for the imcando hammer\\n wintertodt: add support for imcando hammer\\n clues: update reanimated abyssal demon task for new reanimation spells\\n skill calc: update arceuus spells\\n clues: highlight the last clue's STASH until items are deposited back\\n chat commands: add support for tempoross pb messages\\n item charges: add bracelet of slaughter and expeditious bracelet\\n slayer: remove bracelet charge tracking\\n camera: add option to preserve pitch on compass look menu entries\\n\\nJordan Atwood (2):\\n HotColdLocation: Fix Seers' Village bank spot\\n menu manager: add menu entries in insert order\\n\\nLlemonDuck (2):\\n clues: Fix location of Captain Bleemadge (#13531)\\n Add Below Ice Mountain quest\\n\\nMaciej Lewicki (1):\\n friendlist: add option to show world in login notifications\\n\\nMartin H (1):\\n achievementdiary: Update Runecraft task texts (#13485)\\n\\nMatt Dennis (2):\\n spec counter: combine item variations into one weapon\\n examine: Improve plugin description and tags (#13399)\\n\\nMax Weber (4):\\n eventbus: preserve priority ordering during unregister\\n cache/ObjectLoader: add randomizeAnimStart opcode from rev 193\\n cache/NpcLoader: add category opcode from rev 195\\n Update IDs for 2021-4-28\\n\\nNicholas Anzalone (2):\\n achievement diary: remove requirment from easy fishing trawler task\\n skill calc: Add battlesaff to fletching calculator (#13525)\\n\\nOwen (1):\\n clues: Support golden prospector kit (#13457)\\n\\nRobert (1):\\n chat colors: add color option for player's own name\\n\\nRuneLogApp (1):\\n music plugin: add null check to SettingsSideSlider icon on shutdown\\n\\naHooder (1):\\n gpu: workaround for forced anti-aliasing\\n\\nemiljensen2 (1):\\n loot tracker: support tob lobby reward chest\\n\\nisaacph (1):\\n world hopper: add region filter config\\n\\nmolo-pl (2):\\n clues: Support spirit angler's outfit (#13421)\\n menu entry swapper: add Tempoross leave swap\\n\\nsuperiorser9 (1):\\n wiki: only show vanilla wiki banner when enabled (#13380)\\n
\\n\",\"image\":\"/img/blog/1.7.7-Release/hallowed-sepulchre-normal.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/143.458c8c4d.chunk.js b/static/js/143.462eb1c9.chunk.js
similarity index 98%
rename from static/js/143.458c8c4d.chunk.js
rename to static/js/143.462eb1c9.chunk.js
index 88b84c766..ab2c7de53 100644
--- a/static/js/143.458c8c4d.chunk.js
+++ b/static/js/143.462eb1c9.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[143],{418:function(e,a){e.exports={title:"1.7.8, 1.7.9, and 1.7.10 Releases",description:"Clans support, Party panel, and XP Tracker Per-Hour Rate Resetting",author:"Jordan",body:'Clans \n
\nWe\'ve added support for clans across various plugins, including:
\n\nSupport for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\nchat colors, and chat notifications plugins \nThe Minimap plugin can recolor clan member player dots \nYou can hop-to clan members\' worlds using the World Hopper plugin \nThe Player Indicator plugin has highlighting for clan members \nThe Twitch plugin now uses /t
as its chat trigger \n \nAdditionally, the friends chat plugin was renamed to Chat Channels
and allows adding join/leave\nmessages to clan and guest clan channels, as well as changing your target chat channel by simply\ntyping /f
, /c
, /g
, and /p
, as shown below:
\n
\nParty Panel \nWe have added a plugin panel for the Party plugin which shows your active party members and has UI\nfor adding new members to your party and toggling specific players\' health and prayer displaying in\nthe overlay. Because of the added panel button, the Party plugin has been disabled by default and\nmust be re-enabled for those wishing to use it. It also simplifies the invite flow (still via Discord)\nso it is possible to create a party and send invites immediately, and also allows accepting join requests\nvia the client in the panel.
\n
\nXP Tracker Per-Hour Rate Resetting \nYou can now manually reset the XP/hr rates of the XP Tracker plugin without resetting the gained XP,\nand configure it to automatically reset these rates after a set timeout duration.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Item Charges plugin now has a separate toggle for Guthix rests \nChat message recoloring is fixed for players with spaces in their ingame name \nSkill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 6 contributors this release!
\nAdam (34):\n item charges: add toggle for guthix rest\n item charges: split up test into separate methods\n chat message manager: fix recoloring own name with spaces\n xptracker: use enum map for actions and other cleanup\n chat timestamps: add timestamps for all message types\n minimap: add clan chat dot color configuration\n ui: queue repaint when progressbar is edited\n discord plugin: sanity check user id and avatar id before building url\n party service: sanitize user names\n info panel: adjust nav button priority\n party: only send location update when the location changes\n twitch: change chat trigger to /t\n chat history: support clan chat\n chat history: rebuild pmbox when all is cleared\n api: add getOnVarTransmitListener to Widget\n friendschat: readd user count\n api: add enum size\n api: correct clans chattypes\n devtools: add modicons command\n friendchatmanager: rename to chaticonmanager\n Change config name of party plugin to disable by default\n api: add clan api\n chat icon manager: add clan chat icons\n chat colors: add clan recolors\n world hopper: add hop-to clan member\n player indicators: add clans\n chat filter: add clan chat\n emoji plugin: add clan chat\n chat notifications: add clan chat\n chat commands: add clan chat\n Allow rs.version to be a double\n runelite-api: add clan member join and leave events\n friends chat: rename to chatchannel\n chat channel: add typing modes\n\nHydrox6 (2):\n clues: support imcando hammer in skill challenges\n skybox: add clan hall\n\nJoRouss (2):\n party: add party panel\n party: readd overlay leave party menu entry\n\nJames Shelton (2):\n xptracker: add option to reset per hour rates\n xptracker: add auto reset per hour rates after set time\n\nMax Weber (15):\n friendschat: remove Tab Chat option\n friendschat: remove user count\n gpu: increase texture limit\n friendschat: remove unused title strings\n SpriteID: update to 2021-5-19\n screenshot: use new report button offset\n interfacestyles: update chatbox sprite ids\n rl-api: import getTopLevelInterfaceId\n screenshot: don\'t attempt to draw a date when there is no report button\n scripts/SkillTabBuilder: fix unbalanced stack\n cache: update cs2 opcodes\n rl-client: update cs2 overlay opcodes\n rl-client: cleanup cs2 overlays\n ChatboxPanelManager: use ScriptPreFired\n timestamp: use less callbacks in script overlays\n\nemerald000 (1):\n Rename Armadylian Guards to Armadylean Guards\n
\n',image:"/img/blog/1.7.10-Release/clan-icons.png"}}}]);
-//# sourceMappingURL=143.458c8c4d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[143],{419:function(e,a){e.exports={title:"1.7.8, 1.7.9, and 1.7.10 Releases",description:"Clans support, Party panel, and XP Tracker Per-Hour Rate Resetting",author:"Jordan",body:'Clans \n
\nWe\'ve added support for clans across various plugins, including:
\n\nSupport for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\nchat colors, and chat notifications plugins \nThe Minimap plugin can recolor clan member player dots \nYou can hop-to clan members\' worlds using the World Hopper plugin \nThe Player Indicator plugin has highlighting for clan members \nThe Twitch plugin now uses /t
as its chat trigger \n \nAdditionally, the friends chat plugin was renamed to Chat Channels
and allows adding join/leave\nmessages to clan and guest clan channels, as well as changing your target chat channel by simply\ntyping /f
, /c
, /g
, and /p
, as shown below:
\n
\nParty Panel \nWe have added a plugin panel for the Party plugin which shows your active party members and has UI\nfor adding new members to your party and toggling specific players\' health and prayer displaying in\nthe overlay. Because of the added panel button, the Party plugin has been disabled by default and\nmust be re-enabled for those wishing to use it. It also simplifies the invite flow (still via Discord)\nso it is possible to create a party and send invites immediately, and also allows accepting join requests\nvia the client in the panel.
\n
\nXP Tracker Per-Hour Rate Resetting \nYou can now manually reset the XP/hr rates of the XP Tracker plugin without resetting the gained XP,\nand configure it to automatically reset these rates after a set timeout duration.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Item Charges plugin now has a separate toggle for Guthix rests \nChat message recoloring is fixed for players with spaces in their ingame name \nSkill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 6 contributors this release!
\nAdam (34):\n item charges: add toggle for guthix rest\n item charges: split up test into separate methods\n chat message manager: fix recoloring own name with spaces\n xptracker: use enum map for actions and other cleanup\n chat timestamps: add timestamps for all message types\n minimap: add clan chat dot color configuration\n ui: queue repaint when progressbar is edited\n discord plugin: sanity check user id and avatar id before building url\n party service: sanitize user names\n info panel: adjust nav button priority\n party: only send location update when the location changes\n twitch: change chat trigger to /t\n chat history: support clan chat\n chat history: rebuild pmbox when all is cleared\n api: add getOnVarTransmitListener to Widget\n friendschat: readd user count\n api: add enum size\n api: correct clans chattypes\n devtools: add modicons command\n friendchatmanager: rename to chaticonmanager\n Change config name of party plugin to disable by default\n api: add clan api\n chat icon manager: add clan chat icons\n chat colors: add clan recolors\n world hopper: add hop-to clan member\n player indicators: add clans\n chat filter: add clan chat\n emoji plugin: add clan chat\n chat notifications: add clan chat\n chat commands: add clan chat\n Allow rs.version to be a double\n runelite-api: add clan member join and leave events\n friends chat: rename to chatchannel\n chat channel: add typing modes\n\nHydrox6 (2):\n clues: support imcando hammer in skill challenges\n skybox: add clan hall\n\nJoRouss (2):\n party: add party panel\n party: readd overlay leave party menu entry\n\nJames Shelton (2):\n xptracker: add option to reset per hour rates\n xptracker: add auto reset per hour rates after set time\n\nMax Weber (15):\n friendschat: remove Tab Chat option\n friendschat: remove user count\n gpu: increase texture limit\n friendschat: remove unused title strings\n SpriteID: update to 2021-5-19\n screenshot: use new report button offset\n interfacestyles: update chatbox sprite ids\n rl-api: import getTopLevelInterfaceId\n screenshot: don\'t attempt to draw a date when there is no report button\n scripts/SkillTabBuilder: fix unbalanced stack\n cache: update cs2 opcodes\n rl-client: update cs2 overlay opcodes\n rl-client: cleanup cs2 overlays\n ChatboxPanelManager: use ScriptPreFired\n timestamp: use less callbacks in script overlays\n\nemerald000 (1):\n Rename Armadylian Guards to Armadylean Guards\n
\n',image:"/img/blog/1.7.10-Release/clan-icons.png"}}}]);
+//# sourceMappingURL=143.462eb1c9.chunk.js.map
\ No newline at end of file
diff --git a/static/js/143.458c8c4d.chunk.js.map b/static/js/143.462eb1c9.chunk.js.map
similarity index 98%
rename from static/js/143.458c8c4d.chunk.js.map
rename to static/js/143.462eb1c9.chunk.js.map
index 214883b82..08e0a8287 100644
--- a/static/js/143.458c8c4d.chunk.js.map
+++ b/static/js/143.462eb1c9.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-05-28-10-00-1.7.10-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,oCAAoC,YAAc,qEAAqE,OAAS,SAAS,KAAO,kiKAA0iK,MAAQ","file":"static/js/143.458c8c4d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.8, 1.7.9, and 1.7.10 Releases\",\"description\":\"Clans support, Party panel, and XP Tracker Per-Hour Rate Resetting\",\"author\":\"Jordan\",\"body\":\"Clans \\n
\\nWe've added support for clans across various plugins, including:
\\n\\nSupport for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\\nchat colors, and chat notifications plugins \\nThe Minimap plugin can recolor clan member player dots \\nYou can hop-to clan members' worlds using the World Hopper plugin \\nThe Player Indicator plugin has highlighting for clan members \\nThe Twitch plugin now uses /t
as its chat trigger \\n \\nAdditionally, the friends chat plugin was renamed to Chat Channels
and allows adding join/leave\\nmessages to clan and guest clan channels, as well as changing your target chat channel by simply\\ntyping /f
, /c
, /g
, and /p
, as shown below:
\\n
\\nParty Panel \\nWe have added a plugin panel for the Party plugin which shows your active party members and has UI\\nfor adding new members to your party and toggling specific players' health and prayer displaying in\\nthe overlay. Because of the added panel button, the Party plugin has been disabled by default and\\nmust be re-enabled for those wishing to use it. It also simplifies the invite flow (still via Discord)\\nso it is possible to create a party and send invites immediately, and also allows accepting join requests\\nvia the client in the panel.
\\n
\\nXP Tracker Per-Hour Rate Resetting \\nYou can now manually reset the XP/hr rates of the XP Tracker plugin without resetting the gained XP,\\nand configure it to automatically reset these rates after a set timeout duration.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Item Charges plugin now has a separate toggle for Guthix rests \\nChat message recoloring is fixed for players with spaces in their ingame name \\nSkill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 6 contributors this release!
\\nAdam (34):\\n item charges: add toggle for guthix rest\\n item charges: split up test into separate methods\\n chat message manager: fix recoloring own name with spaces\\n xptracker: use enum map for actions and other cleanup\\n chat timestamps: add timestamps for all message types\\n minimap: add clan chat dot color configuration\\n ui: queue repaint when progressbar is edited\\n discord plugin: sanity check user id and avatar id before building url\\n party service: sanitize user names\\n info panel: adjust nav button priority\\n party: only send location update when the location changes\\n twitch: change chat trigger to /t\\n chat history: support clan chat\\n chat history: rebuild pmbox when all is cleared\\n api: add getOnVarTransmitListener to Widget\\n friendschat: readd user count\\n api: add enum size\\n api: correct clans chattypes\\n devtools: add modicons command\\n friendchatmanager: rename to chaticonmanager\\n Change config name of party plugin to disable by default\\n api: add clan api\\n chat icon manager: add clan chat icons\\n chat colors: add clan recolors\\n world hopper: add hop-to clan member\\n player indicators: add clans\\n chat filter: add clan chat\\n emoji plugin: add clan chat\\n chat notifications: add clan chat\\n chat commands: add clan chat\\n Allow rs.version to be a double\\n runelite-api: add clan member join and leave events\\n friends chat: rename to chatchannel\\n chat channel: add typing modes\\n\\nHydrox6 (2):\\n clues: support imcando hammer in skill challenges\\n skybox: add clan hall\\n\\nJoRouss (2):\\n party: add party panel\\n party: readd overlay leave party menu entry\\n\\nJames Shelton (2):\\n xptracker: add option to reset per hour rates\\n xptracker: add auto reset per hour rates after set time\\n\\nMax Weber (15):\\n friendschat: remove Tab Chat option\\n friendschat: remove user count\\n gpu: increase texture limit\\n friendschat: remove unused title strings\\n SpriteID: update to 2021-5-19\\n screenshot: use new report button offset\\n interfacestyles: update chatbox sprite ids\\n rl-api: import getTopLevelInterfaceId\\n screenshot: don't attempt to draw a date when there is no report button\\n scripts/SkillTabBuilder: fix unbalanced stack\\n cache: update cs2 opcodes\\n rl-client: update cs2 overlay opcodes\\n rl-client: cleanup cs2 overlays\\n ChatboxPanelManager: use ScriptPreFired\\n timestamp: use less callbacks in script overlays\\n\\nemerald000 (1):\\n Rename Armadylian Guards to Armadylean Guards\\n
\\n\",\"image\":\"/img/blog/1.7.10-Release/clan-icons.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-05-28-10-00-1.7.10-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,oCAAoC,YAAc,qEAAqE,OAAS,SAAS,KAAO,kiKAA0iK,MAAQ","file":"static/js/143.462eb1c9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.8, 1.7.9, and 1.7.10 Releases\",\"description\":\"Clans support, Party panel, and XP Tracker Per-Hour Rate Resetting\",\"author\":\"Jordan\",\"body\":\"Clans \\n
\\nWe've added support for clans across various plugins, including:
\\n\\nSupport for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\\nchat colors, and chat notifications plugins \\nThe Minimap plugin can recolor clan member player dots \\nYou can hop-to clan members' worlds using the World Hopper plugin \\nThe Player Indicator plugin has highlighting for clan members \\nThe Twitch plugin now uses /t
as its chat trigger \\n \\nAdditionally, the friends chat plugin was renamed to Chat Channels
and allows adding join/leave\\nmessages to clan and guest clan channels, as well as changing your target chat channel by simply\\ntyping /f
, /c
, /g
, and /p
, as shown below:
\\n
\\nParty Panel \\nWe have added a plugin panel for the Party plugin which shows your active party members and has UI\\nfor adding new members to your party and toggling specific players' health and prayer displaying in\\nthe overlay. Because of the added panel button, the Party plugin has been disabled by default and\\nmust be re-enabled for those wishing to use it. It also simplifies the invite flow (still via Discord)\\nso it is possible to create a party and send invites immediately, and also allows accepting join requests\\nvia the client in the panel.
\\n
\\nXP Tracker Per-Hour Rate Resetting \\nYou can now manually reset the XP/hr rates of the XP Tracker plugin without resetting the gained XP,\\nand configure it to automatically reset these rates after a set timeout duration.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Item Charges plugin now has a separate toggle for Guthix rests \\nChat message recoloring is fixed for players with spaces in their ingame name \\nSkill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 6 contributors this release!
\\nAdam (34):\\n item charges: add toggle for guthix rest\\n item charges: split up test into separate methods\\n chat message manager: fix recoloring own name with spaces\\n xptracker: use enum map for actions and other cleanup\\n chat timestamps: add timestamps for all message types\\n minimap: add clan chat dot color configuration\\n ui: queue repaint when progressbar is edited\\n discord plugin: sanity check user id and avatar id before building url\\n party service: sanitize user names\\n info panel: adjust nav button priority\\n party: only send location update when the location changes\\n twitch: change chat trigger to /t\\n chat history: support clan chat\\n chat history: rebuild pmbox when all is cleared\\n api: add getOnVarTransmitListener to Widget\\n friendschat: readd user count\\n api: add enum size\\n api: correct clans chattypes\\n devtools: add modicons command\\n friendchatmanager: rename to chaticonmanager\\n Change config name of party plugin to disable by default\\n api: add clan api\\n chat icon manager: add clan chat icons\\n chat colors: add clan recolors\\n world hopper: add hop-to clan member\\n player indicators: add clans\\n chat filter: add clan chat\\n emoji plugin: add clan chat\\n chat notifications: add clan chat\\n chat commands: add clan chat\\n Allow rs.version to be a double\\n runelite-api: add clan member join and leave events\\n friends chat: rename to chatchannel\\n chat channel: add typing modes\\n\\nHydrox6 (2):\\n clues: support imcando hammer in skill challenges\\n skybox: add clan hall\\n\\nJoRouss (2):\\n party: add party panel\\n party: readd overlay leave party menu entry\\n\\nJames Shelton (2):\\n xptracker: add option to reset per hour rates\\n xptracker: add auto reset per hour rates after set time\\n\\nMax Weber (15):\\n friendschat: remove Tab Chat option\\n friendschat: remove user count\\n gpu: increase texture limit\\n friendschat: remove unused title strings\\n SpriteID: update to 2021-5-19\\n screenshot: use new report button offset\\n interfacestyles: update chatbox sprite ids\\n rl-api: import getTopLevelInterfaceId\\n screenshot: don't attempt to draw a date when there is no report button\\n scripts/SkillTabBuilder: fix unbalanced stack\\n cache: update cs2 opcodes\\n rl-client: update cs2 overlay opcodes\\n rl-client: cleanup cs2 overlays\\n ChatboxPanelManager: use ScriptPreFired\\n timestamp: use less callbacks in script overlays\\n\\nemerald000 (1):\\n Rename Armadylian Guards to Armadylean Guards\\n
\\n\",\"image\":\"/img/blog/1.7.10-Release/clan-icons.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/144.f2825d28.chunk.js b/static/js/144.b9a8d1f0.chunk.js
similarity index 98%
rename from static/js/144.f2825d28.chunk.js
rename to static/js/144.b9a8d1f0.chunk.js
index ec4e841ba..06a122e6b 100644
--- a/static/js/144.f2825d28.chunk.js
+++ b/static/js/144.b9a8d1f0.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[144],{419:function(e,n){e.exports={title:"1.7.11, 1.7.12, and 1.7.13 Releases",description:"Theatre of Blood: Hard and Story Mode, Shayzien and A Kingdom Divided, and other improvements",author:"Jordan",body:'RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players\' Hard Mode\nkill counts are saved and can be shared using the !kc
chat\ncommand or looked up on the hiscore\nplugin .
\nThe various content updates centered around Shayzien and the A Kingdom Divided quest have been\nupdated in the client, including:
\n\nMany existing clue scrolls in the Shayzien region have had their solutions or directions changed,\nand a number of new clues have been added \nThe new Arceuus spells now display timers of their duration and cooldown \nThe Shayzien agility course has a lap counter and shows the number of laps needed to reach your\nlevel or xp goal \nWorld map icons and tooltips have been added for the A Kingdom Divided quest location and many\nskilling and resource icons in the Shayzien area \nSkill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\nArceuus spells \n \nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now look up clan members\' hiscore information via the clan member listing \nThe team capes plugin has been renamed to the team plugin, and now supports listing of the number\nof nearby players sharing your team cape, friend chat, or clan \nThe camera plugin no longer causes your camera pitch to increase when using the compass options\nwhile "preserve pitch" is enabled. Additionally, an option to preserve yaw while changing worlds\nhas been added. \nMenu entry swapper options have been added for achievement diary item teleports and the\nconstruction cape \nGround markers, NPC indicators, and object markers now support a configurable width for their\noverlays \nXP drops now support an option to override the standard client xp drop color allowing you to use\nany color, not just the select few client choices, for your xp drops \nPOH icons for house objects decorated with the goblin decorations now display correctly \nGround item despawn timers have been corrected for items appearing while fighting Tempoross \nThe new A Kingdom Divided login screen has been added to the Login Screen plugin \nThe colors of the inventory grid overlay are now customizable \nThe spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\nresets its counter when leaving instanced areas. \nWintertodt supply crate loots are now tracked in the Loot Tracker plugin \nAn option has been added to capture screenshots when achieving new collection log entries \nScreenshots captured while on tournament/beta worlds are now stored to a separate folder for\nbetter organization \nItem stats shown for stamina potions while wearing the ring of endurance now correctly show it\nrestoring 40 run energy rather than the usual 20 \nA bug which could cause clients to launch without correctly downloading Plugin Hub listings has\nbeen fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (36):\n Strip tags when doing friends chat lookups\n api: add clan channel changed event\n team capes: rename to team\n team: add clan member counter\n chatchannel: fix clan join/leave timeouts with fc join/leave off\n sprite manager: use constructor injection\n chat filter: fix collapsing replayed public chat\n Use junit rule for mock webserver\n camera: add zoom slider tooltip when dragging\n chat channel: add target mode config\n http-api: add tob hm hiscores\n hiscore panel: add tob hard mode\n chat filter: remove filter login\n mta: clear hint arrow when leaving enchantment and alchemist room\n config manager: disallow : in key names\n chat commands: fix tob hm/sm kc/pb tracking\n chat colors: fix clan chat message highlight keys\n api: add setCameraYawTarget\n camera: add option to preserve yaw when world hopping\n chat commands: update tob new pb pattern\n gpu: use renderbuffer for aa fbo\n menu swapper: add con cape tele to poh\n chat commands: update tob duration pattern\n ground markers: add configurable border width\n api: add widget line height accessors\n menu swapper: add achievement diary items with non-standard teleport options\n Remove examine api\n screenshot plugin: consolidate kill count fields\n screenshot plugin: make subdir strings constants\n screenshot plugin: add tob story and hard mode screenshots\n screenshot plugin: name tob hm/sm files differently\n xp drops: add option to override standard client xp drop colors\n loot tracker: add reset warning to event reset option\n discord: fix npe from menu event timing out with elapsed total time\n menu swapper: add enter-crypt to quick swap\n api: add actor overhead cycle accessors\n\nBird-Hands (1):\n npc indicators: add configurable border width\n\nBroooklyn (2):\n poh: Add icons for objects changed with Goblin Decorations\n worldmap: Add TzHaar-Ket-Rak\'s Challenges minigame location\n\nCyborger1 (4):\n ItemIdentification: Add Ghorrock tablet\n ChatHistory: Fix "Copy to Clipboard" after clan update\n hiscore: add lookup clan member (#13706)\n clues: Update description for coordinate south-west of Ferox\n\nFlashBasedGod (1):\n ground items: Add Tempoross instance to normal despawn timers\n\nHydrox6 (11):\n clues: count bird glove as being correct for the weapon requirement\n world map overlay: make icons display fully on the map when edge snapped\n world map mouse listener: consume click if icon is clicked on\n loginscreen: add a kingdom divided login screen\n loot tracker: check for correct menu option type when deciding event\n api: correct imcando hammer construction animation\n skill calc: add demonic ashes\n timers: add duration and cooldown timers for arceuus spells\n skill calc: add shayzien courses\n skill calc: add new arceuus spells\n api: fix hitsplat sprite ids\n\nJeremy Plsek (1):\n inventory grid: add color config\n\nJordan Atwood (12):\n XpInfoBox: Give stats panel equal column widths\n ProgressBar: Fix center label centering\n item identification plugin: Add item mapping test\n clues: Fix three step cryptic clue getLocations NPE\n status bars: Add counter text drop shadow\n HotColdLocation: Add clue type field\n object indicators: add configurable border width\n clues: Update and add clues for 6/16 Shayzien rework\n clues: Add new A Kingdom Divided update clues\n clues: Fix clues changed with A Kingdom Divided update\n agility: Fix Shayzien basic course total xp\n EmoteClue: Fix Shayzien war tent clue text\n\nLlemonDuck (3):\n idle notifier: reset six hour notif on startup\n camera: prevent pitch increment with "preserve pitch" enabled\n Reset spec counter when leaving instanced fights\n\nMax Weber (8):\n rl-client: never cache 4/5xx requests\n client: correctly use Runnables::doNothing\n cache: add 197 opcodes\n rl-api: update Quest enum to 2021-6-16\n worldmap: add shayzien rework locations\n agility: add shayzien course\n barbarianassault: remove dead overlay menuops\n runelite-client: use menu entries for focusing world map points\n\nSirWrain (1):\n achievementdiary: Fix hard Lumbridge diary entry text (#13689)\n\nSkylerPIlot (1):\n spec counter: add Alchemical Hydra\n\nSteven Brice (1):\n loot tracker: add Wintertodt supply crate\n\nThePharros (1):\n screenshot: Add option to screenshot collection log entries (#13625)\n\nandmcadams (1):\n crowdsourcing/dialog: track start & end of conversations (#13763)\n\ndanshea00 (1):\n screenshot: Use separate directory for tournament/beta worlds (#13631)\n\nemiljensen2 (1):\n ItemMapping: add new tob kits\n\npetter (1):\n clues: Add Giant\'s Den clue\n\ntanlines (1):\n itemstats: Fix stamina restore with Ring of Endurance (#13692)\n
\n'}}}]);
-//# sourceMappingURL=144.f2825d28.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[144],{420:function(e,n){e.exports={title:"1.7.11, 1.7.12, and 1.7.13 Releases",description:"Theatre of Blood: Hard and Story Mode, Shayzien and A Kingdom Divided, and other improvements",author:"Jordan",body:'RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players\' Hard Mode\nkill counts are saved and can be shared using the !kc
chat\ncommand or looked up on the hiscore\nplugin .
\nThe various content updates centered around Shayzien and the A Kingdom Divided quest have been\nupdated in the client, including:
\n\nMany existing clue scrolls in the Shayzien region have had their solutions or directions changed,\nand a number of new clues have been added \nThe new Arceuus spells now display timers of their duration and cooldown \nThe Shayzien agility course has a lap counter and shows the number of laps needed to reach your\nlevel or xp goal \nWorld map icons and tooltips have been added for the A Kingdom Divided quest location and many\nskilling and resource icons in the Shayzien area \nSkill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\nArceuus spells \n \nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now look up clan members\' hiscore information via the clan member listing \nThe team capes plugin has been renamed to the team plugin, and now supports listing of the number\nof nearby players sharing your team cape, friend chat, or clan \nThe camera plugin no longer causes your camera pitch to increase when using the compass options\nwhile "preserve pitch" is enabled. Additionally, an option to preserve yaw while changing worlds\nhas been added. \nMenu entry swapper options have been added for achievement diary item teleports and the\nconstruction cape \nGround markers, NPC indicators, and object markers now support a configurable width for their\noverlays \nXP drops now support an option to override the standard client xp drop color allowing you to use\nany color, not just the select few client choices, for your xp drops \nPOH icons for house objects decorated with the goblin decorations now display correctly \nGround item despawn timers have been corrected for items appearing while fighting Tempoross \nThe new A Kingdom Divided login screen has been added to the Login Screen plugin \nThe colors of the inventory grid overlay are now customizable \nThe spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\nresets its counter when leaving instanced areas. \nWintertodt supply crate loots are now tracked in the Loot Tracker plugin \nAn option has been added to capture screenshots when achieving new collection log entries \nScreenshots captured while on tournament/beta worlds are now stored to a separate folder for\nbetter organization \nItem stats shown for stamina potions while wearing the ring of endurance now correctly show it\nrestoring 40 run energy rather than the usual 20 \nA bug which could cause clients to launch without correctly downloading Plugin Hub listings has\nbeen fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (36):\n Strip tags when doing friends chat lookups\n api: add clan channel changed event\n team capes: rename to team\n team: add clan member counter\n chatchannel: fix clan join/leave timeouts with fc join/leave off\n sprite manager: use constructor injection\n chat filter: fix collapsing replayed public chat\n Use junit rule for mock webserver\n camera: add zoom slider tooltip when dragging\n chat channel: add target mode config\n http-api: add tob hm hiscores\n hiscore panel: add tob hard mode\n chat filter: remove filter login\n mta: clear hint arrow when leaving enchantment and alchemist room\n config manager: disallow : in key names\n chat commands: fix tob hm/sm kc/pb tracking\n chat colors: fix clan chat message highlight keys\n api: add setCameraYawTarget\n camera: add option to preserve yaw when world hopping\n chat commands: update tob new pb pattern\n gpu: use renderbuffer for aa fbo\n menu swapper: add con cape tele to poh\n chat commands: update tob duration pattern\n ground markers: add configurable border width\n api: add widget line height accessors\n menu swapper: add achievement diary items with non-standard teleport options\n Remove examine api\n screenshot plugin: consolidate kill count fields\n screenshot plugin: make subdir strings constants\n screenshot plugin: add tob story and hard mode screenshots\n screenshot plugin: name tob hm/sm files differently\n xp drops: add option to override standard client xp drop colors\n loot tracker: add reset warning to event reset option\n discord: fix npe from menu event timing out with elapsed total time\n menu swapper: add enter-crypt to quick swap\n api: add actor overhead cycle accessors\n\nBird-Hands (1):\n npc indicators: add configurable border width\n\nBroooklyn (2):\n poh: Add icons for objects changed with Goblin Decorations\n worldmap: Add TzHaar-Ket-Rak\'s Challenges minigame location\n\nCyborger1 (4):\n ItemIdentification: Add Ghorrock tablet\n ChatHistory: Fix "Copy to Clipboard" after clan update\n hiscore: add lookup clan member (#13706)\n clues: Update description for coordinate south-west of Ferox\n\nFlashBasedGod (1):\n ground items: Add Tempoross instance to normal despawn timers\n\nHydrox6 (11):\n clues: count bird glove as being correct for the weapon requirement\n world map overlay: make icons display fully on the map when edge snapped\n world map mouse listener: consume click if icon is clicked on\n loginscreen: add a kingdom divided login screen\n loot tracker: check for correct menu option type when deciding event\n api: correct imcando hammer construction animation\n skill calc: add demonic ashes\n timers: add duration and cooldown timers for arceuus spells\n skill calc: add shayzien courses\n skill calc: add new arceuus spells\n api: fix hitsplat sprite ids\n\nJeremy Plsek (1):\n inventory grid: add color config\n\nJordan Atwood (12):\n XpInfoBox: Give stats panel equal column widths\n ProgressBar: Fix center label centering\n item identification plugin: Add item mapping test\n clues: Fix three step cryptic clue getLocations NPE\n status bars: Add counter text drop shadow\n HotColdLocation: Add clue type field\n object indicators: add configurable border width\n clues: Update and add clues for 6/16 Shayzien rework\n clues: Add new A Kingdom Divided update clues\n clues: Fix clues changed with A Kingdom Divided update\n agility: Fix Shayzien basic course total xp\n EmoteClue: Fix Shayzien war tent clue text\n\nLlemonDuck (3):\n idle notifier: reset six hour notif on startup\n camera: prevent pitch increment with "preserve pitch" enabled\n Reset spec counter when leaving instanced fights\n\nMax Weber (8):\n rl-client: never cache 4/5xx requests\n client: correctly use Runnables::doNothing\n cache: add 197 opcodes\n rl-api: update Quest enum to 2021-6-16\n worldmap: add shayzien rework locations\n agility: add shayzien course\n barbarianassault: remove dead overlay menuops\n runelite-client: use menu entries for focusing world map points\n\nSirWrain (1):\n achievementdiary: Fix hard Lumbridge diary entry text (#13689)\n\nSkylerPIlot (1):\n spec counter: add Alchemical Hydra\n\nSteven Brice (1):\n loot tracker: add Wintertodt supply crate\n\nThePharros (1):\n screenshot: Add option to screenshot collection log entries (#13625)\n\nandmcadams (1):\n crowdsourcing/dialog: track start & end of conversations (#13763)\n\ndanshea00 (1):\n screenshot: Use separate directory for tournament/beta worlds (#13631)\n\nemiljensen2 (1):\n ItemMapping: add new tob kits\n\npetter (1):\n clues: Add Giant\'s Den clue\n\ntanlines (1):\n itemstats: Fix stamina restore with Ring of Endurance (#13692)\n
\n'}}}]);
+//# sourceMappingURL=144.b9a8d1f0.chunk.js.map
\ No newline at end of file
diff --git a/static/js/144.f2825d28.chunk.js.map b/static/js/144.b9a8d1f0.chunk.js.map
similarity index 99%
rename from static/js/144.f2825d28.chunk.js.map
rename to static/js/144.b9a8d1f0.chunk.js.map
index 8ab4e07bd..36a2aed92 100644
--- a/static/js/144.f2825d28.chunk.js.map
+++ b/static/js/144.b9a8d1f0.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-06-23-10-00-1.7.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,gGAAgG,OAAS,SAAS,KAAO","file":"static/js/144.f2825d28.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.11, 1.7.12, and 1.7.13 Releases\",\"description\":\"Theatre of Blood: Hard and Story Mode, Shayzien and A Kingdom Divided, and other improvements\",\"author\":\"Jordan\",\"body\":\"RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players' Hard Mode\\nkill counts are saved and can be shared using the !kc
chat\\ncommand or looked up on the hiscore\\nplugin .
\\nThe various content updates centered around Shayzien and the A Kingdom Divided quest have been\\nupdated in the client, including:
\\n\\nMany existing clue scrolls in the Shayzien region have had their solutions or directions changed,\\nand a number of new clues have been added \\nThe new Arceuus spells now display timers of their duration and cooldown \\nThe Shayzien agility course has a lap counter and shows the number of laps needed to reach your\\nlevel or xp goal \\nWorld map icons and tooltips have been added for the A Kingdom Divided quest location and many\\nskilling and resource icons in the Shayzien area \\nSkill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\\nArceuus spells \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now look up clan members' hiscore information via the clan member listing \\nThe team capes plugin has been renamed to the team plugin, and now supports listing of the number\\nof nearby players sharing your team cape, friend chat, or clan \\nThe camera plugin no longer causes your camera pitch to increase when using the compass options\\nwhile "preserve pitch" is enabled. Additionally, an option to preserve yaw while changing worlds\\nhas been added. \\nMenu entry swapper options have been added for achievement diary item teleports and the\\nconstruction cape \\nGround markers, NPC indicators, and object markers now support a configurable width for their\\noverlays \\nXP drops now support an option to override the standard client xp drop color allowing you to use\\nany color, not just the select few client choices, for your xp drops \\nPOH icons for house objects decorated with the goblin decorations now display correctly \\nGround item despawn timers have been corrected for items appearing while fighting Tempoross \\nThe new A Kingdom Divided login screen has been added to the Login Screen plugin \\nThe colors of the inventory grid overlay are now customizable \\nThe spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\\nresets its counter when leaving instanced areas. \\nWintertodt supply crate loots are now tracked in the Loot Tracker plugin \\nAn option has been added to capture screenshots when achieving new collection log entries \\nScreenshots captured while on tournament/beta worlds are now stored to a separate folder for\\nbetter organization \\nItem stats shown for stamina potions while wearing the ring of endurance now correctly show it\\nrestoring 40 run energy rather than the usual 20 \\nA bug which could cause clients to launch without correctly downloading Plugin Hub listings has\\nbeen fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (36):\\n Strip tags when doing friends chat lookups\\n api: add clan channel changed event\\n team capes: rename to team\\n team: add clan member counter\\n chatchannel: fix clan join/leave timeouts with fc join/leave off\\n sprite manager: use constructor injection\\n chat filter: fix collapsing replayed public chat\\n Use junit rule for mock webserver\\n camera: add zoom slider tooltip when dragging\\n chat channel: add target mode config\\n http-api: add tob hm hiscores\\n hiscore panel: add tob hard mode\\n chat filter: remove filter login\\n mta: clear hint arrow when leaving enchantment and alchemist room\\n config manager: disallow : in key names\\n chat commands: fix tob hm/sm kc/pb tracking\\n chat colors: fix clan chat message highlight keys\\n api: add setCameraYawTarget\\n camera: add option to preserve yaw when world hopping\\n chat commands: update tob new pb pattern\\n gpu: use renderbuffer for aa fbo\\n menu swapper: add con cape tele to poh\\n chat commands: update tob duration pattern\\n ground markers: add configurable border width\\n api: add widget line height accessors\\n menu swapper: add achievement diary items with non-standard teleport options\\n Remove examine api\\n screenshot plugin: consolidate kill count fields\\n screenshot plugin: make subdir strings constants\\n screenshot plugin: add tob story and hard mode screenshots\\n screenshot plugin: name tob hm/sm files differently\\n xp drops: add option to override standard client xp drop colors\\n loot tracker: add reset warning to event reset option\\n discord: fix npe from menu event timing out with elapsed total time\\n menu swapper: add enter-crypt to quick swap\\n api: add actor overhead cycle accessors\\n\\nBird-Hands (1):\\n npc indicators: add configurable border width\\n\\nBroooklyn (2):\\n poh: Add icons for objects changed with Goblin Decorations\\n worldmap: Add TzHaar-Ket-Rak's Challenges minigame location\\n\\nCyborger1 (4):\\n ItemIdentification: Add Ghorrock tablet\\n ChatHistory: Fix "Copy to Clipboard" after clan update\\n hiscore: add lookup clan member (#13706)\\n clues: Update description for coordinate south-west of Ferox\\n\\nFlashBasedGod (1):\\n ground items: Add Tempoross instance to normal despawn timers\\n\\nHydrox6 (11):\\n clues: count bird glove as being correct for the weapon requirement\\n world map overlay: make icons display fully on the map when edge snapped\\n world map mouse listener: consume click if icon is clicked on\\n loginscreen: add a kingdom divided login screen\\n loot tracker: check for correct menu option type when deciding event\\n api: correct imcando hammer construction animation\\n skill calc: add demonic ashes\\n timers: add duration and cooldown timers for arceuus spells\\n skill calc: add shayzien courses\\n skill calc: add new arceuus spells\\n api: fix hitsplat sprite ids\\n\\nJeremy Plsek (1):\\n inventory grid: add color config\\n\\nJordan Atwood (12):\\n XpInfoBox: Give stats panel equal column widths\\n ProgressBar: Fix center label centering\\n item identification plugin: Add item mapping test\\n clues: Fix three step cryptic clue getLocations NPE\\n status bars: Add counter text drop shadow\\n HotColdLocation: Add clue type field\\n object indicators: add configurable border width\\n clues: Update and add clues for 6/16 Shayzien rework\\n clues: Add new A Kingdom Divided update clues\\n clues: Fix clues changed with A Kingdom Divided update\\n agility: Fix Shayzien basic course total xp\\n EmoteClue: Fix Shayzien war tent clue text\\n\\nLlemonDuck (3):\\n idle notifier: reset six hour notif on startup\\n camera: prevent pitch increment with "preserve pitch" enabled\\n Reset spec counter when leaving instanced fights\\n\\nMax Weber (8):\\n rl-client: never cache 4/5xx requests\\n client: correctly use Runnables::doNothing\\n cache: add 197 opcodes\\n rl-api: update Quest enum to 2021-6-16\\n worldmap: add shayzien rework locations\\n agility: add shayzien course\\n barbarianassault: remove dead overlay menuops\\n runelite-client: use menu entries for focusing world map points\\n\\nSirWrain (1):\\n achievementdiary: Fix hard Lumbridge diary entry text (#13689)\\n\\nSkylerPIlot (1):\\n spec counter: add Alchemical Hydra\\n\\nSteven Brice (1):\\n loot tracker: add Wintertodt supply crate\\n\\nThePharros (1):\\n screenshot: Add option to screenshot collection log entries (#13625)\\n\\nandmcadams (1):\\n crowdsourcing/dialog: track start & end of conversations (#13763)\\n\\ndanshea00 (1):\\n screenshot: Use separate directory for tournament/beta worlds (#13631)\\n\\nemiljensen2 (1):\\n ItemMapping: add new tob kits\\n\\npetter (1):\\n clues: Add Giant's Den clue\\n\\ntanlines (1):\\n itemstats: Fix stamina restore with Ring of Endurance (#13692)\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-06-23-10-00-1.7.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,gGAAgG,OAAS,SAAS,KAAO","file":"static/js/144.b9a8d1f0.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.11, 1.7.12, and 1.7.13 Releases\",\"description\":\"Theatre of Blood: Hard and Story Mode, Shayzien and A Kingdom Divided, and other improvements\",\"author\":\"Jordan\",\"body\":\"RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players' Hard Mode\\nkill counts are saved and can be shared using the !kc
chat\\ncommand or looked up on the hiscore\\nplugin .
\\nThe various content updates centered around Shayzien and the A Kingdom Divided quest have been\\nupdated in the client, including:
\\n\\nMany existing clue scrolls in the Shayzien region have had their solutions or directions changed,\\nand a number of new clues have been added \\nThe new Arceuus spells now display timers of their duration and cooldown \\nThe Shayzien agility course has a lap counter and shows the number of laps needed to reach your\\nlevel or xp goal \\nWorld map icons and tooltips have been added for the A Kingdom Divided quest location and many\\nskilling and resource icons in the Shayzien area \\nSkill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\\nArceuus spells \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now look up clan members' hiscore information via the clan member listing \\nThe team capes plugin has been renamed to the team plugin, and now supports listing of the number\\nof nearby players sharing your team cape, friend chat, or clan \\nThe camera plugin no longer causes your camera pitch to increase when using the compass options\\nwhile "preserve pitch" is enabled. Additionally, an option to preserve yaw while changing worlds\\nhas been added. \\nMenu entry swapper options have been added for achievement diary item teleports and the\\nconstruction cape \\nGround markers, NPC indicators, and object markers now support a configurable width for their\\noverlays \\nXP drops now support an option to override the standard client xp drop color allowing you to use\\nany color, not just the select few client choices, for your xp drops \\nPOH icons for house objects decorated with the goblin decorations now display correctly \\nGround item despawn timers have been corrected for items appearing while fighting Tempoross \\nThe new A Kingdom Divided login screen has been added to the Login Screen plugin \\nThe colors of the inventory grid overlay are now customizable \\nThe spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\\nresets its counter when leaving instanced areas. \\nWintertodt supply crate loots are now tracked in the Loot Tracker plugin \\nAn option has been added to capture screenshots when achieving new collection log entries \\nScreenshots captured while on tournament/beta worlds are now stored to a separate folder for\\nbetter organization \\nItem stats shown for stamina potions while wearing the ring of endurance now correctly show it\\nrestoring 40 run energy rather than the usual 20 \\nA bug which could cause clients to launch without correctly downloading Plugin Hub listings has\\nbeen fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (36):\\n Strip tags when doing friends chat lookups\\n api: add clan channel changed event\\n team capes: rename to team\\n team: add clan member counter\\n chatchannel: fix clan join/leave timeouts with fc join/leave off\\n sprite manager: use constructor injection\\n chat filter: fix collapsing replayed public chat\\n Use junit rule for mock webserver\\n camera: add zoom slider tooltip when dragging\\n chat channel: add target mode config\\n http-api: add tob hm hiscores\\n hiscore panel: add tob hard mode\\n chat filter: remove filter login\\n mta: clear hint arrow when leaving enchantment and alchemist room\\n config manager: disallow : in key names\\n chat commands: fix tob hm/sm kc/pb tracking\\n chat colors: fix clan chat message highlight keys\\n api: add setCameraYawTarget\\n camera: add option to preserve yaw when world hopping\\n chat commands: update tob new pb pattern\\n gpu: use renderbuffer for aa fbo\\n menu swapper: add con cape tele to poh\\n chat commands: update tob duration pattern\\n ground markers: add configurable border width\\n api: add widget line height accessors\\n menu swapper: add achievement diary items with non-standard teleport options\\n Remove examine api\\n screenshot plugin: consolidate kill count fields\\n screenshot plugin: make subdir strings constants\\n screenshot plugin: add tob story and hard mode screenshots\\n screenshot plugin: name tob hm/sm files differently\\n xp drops: add option to override standard client xp drop colors\\n loot tracker: add reset warning to event reset option\\n discord: fix npe from menu event timing out with elapsed total time\\n menu swapper: add enter-crypt to quick swap\\n api: add actor overhead cycle accessors\\n\\nBird-Hands (1):\\n npc indicators: add configurable border width\\n\\nBroooklyn (2):\\n poh: Add icons for objects changed with Goblin Decorations\\n worldmap: Add TzHaar-Ket-Rak's Challenges minigame location\\n\\nCyborger1 (4):\\n ItemIdentification: Add Ghorrock tablet\\n ChatHistory: Fix "Copy to Clipboard" after clan update\\n hiscore: add lookup clan member (#13706)\\n clues: Update description for coordinate south-west of Ferox\\n\\nFlashBasedGod (1):\\n ground items: Add Tempoross instance to normal despawn timers\\n\\nHydrox6 (11):\\n clues: count bird glove as being correct for the weapon requirement\\n world map overlay: make icons display fully on the map when edge snapped\\n world map mouse listener: consume click if icon is clicked on\\n loginscreen: add a kingdom divided login screen\\n loot tracker: check for correct menu option type when deciding event\\n api: correct imcando hammer construction animation\\n skill calc: add demonic ashes\\n timers: add duration and cooldown timers for arceuus spells\\n skill calc: add shayzien courses\\n skill calc: add new arceuus spells\\n api: fix hitsplat sprite ids\\n\\nJeremy Plsek (1):\\n inventory grid: add color config\\n\\nJordan Atwood (12):\\n XpInfoBox: Give stats panel equal column widths\\n ProgressBar: Fix center label centering\\n item identification plugin: Add item mapping test\\n clues: Fix three step cryptic clue getLocations NPE\\n status bars: Add counter text drop shadow\\n HotColdLocation: Add clue type field\\n object indicators: add configurable border width\\n clues: Update and add clues for 6/16 Shayzien rework\\n clues: Add new A Kingdom Divided update clues\\n clues: Fix clues changed with A Kingdom Divided update\\n agility: Fix Shayzien basic course total xp\\n EmoteClue: Fix Shayzien war tent clue text\\n\\nLlemonDuck (3):\\n idle notifier: reset six hour notif on startup\\n camera: prevent pitch increment with "preserve pitch" enabled\\n Reset spec counter when leaving instanced fights\\n\\nMax Weber (8):\\n rl-client: never cache 4/5xx requests\\n client: correctly use Runnables::doNothing\\n cache: add 197 opcodes\\n rl-api: update Quest enum to 2021-6-16\\n worldmap: add shayzien rework locations\\n agility: add shayzien course\\n barbarianassault: remove dead overlay menuops\\n runelite-client: use menu entries for focusing world map points\\n\\nSirWrain (1):\\n achievementdiary: Fix hard Lumbridge diary entry text (#13689)\\n\\nSkylerPIlot (1):\\n spec counter: add Alchemical Hydra\\n\\nSteven Brice (1):\\n loot tracker: add Wintertodt supply crate\\n\\nThePharros (1):\\n screenshot: Add option to screenshot collection log entries (#13625)\\n\\nandmcadams (1):\\n crowdsourcing/dialog: track start & end of conversations (#13763)\\n\\ndanshea00 (1):\\n screenshot: Use separate directory for tournament/beta worlds (#13631)\\n\\nemiljensen2 (1):\\n ItemMapping: add new tob kits\\n\\npetter (1):\\n clues: Add Giant's Den clue\\n\\ntanlines (1):\\n itemstats: Fix stamina restore with Ring of Endurance (#13692)\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/145.89a0d663.chunk.js b/static/js/145.1a181369.chunk.js
similarity index 99%
rename from static/js/145.89a0d663.chunk.js
rename to static/js/145.1a181369.chunk.js
index febcbba76..6b26fdb3f 100644
--- a/static/js/145.89a0d663.chunk.js
+++ b/static/js/145.1a181369.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[145],{420:function(i,e){i.exports={title:"1.7.14, 1.7.15, and 1.7.16 Releases",description:"Model outline rendering, roof removal plugin, and website tile marker viewing and improved hub plugin pages",author:"Jordan",body:'We\'ve added a new model outline renderer which can draw precise outlines of NPCs and objects via\ntheir respective indicator plugins.
\n\n\n\n1px outline \n2px outline \n10px feathered outline \n \n \n\n\n \n \n \n \n \n
\nWe\'ve added a roof removal plugin which can selectively hide roofs when standing or walking under\nthem, hovering over them, or when they block the camera\'s view to your player. Experience the game\'s\nbeautiful roofs without sacrificing visibility!
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Roof removal plugin demo\n
\nWebsite feature additions \nWe\'ve added a tile marker display page to the website. Just visit https://runelite.net/tile/ and\npaste your exported ground\nmarkers to see them\nvisualized on the game map, like these Olm boss fight markers. If you are logged in to website you can also\nview your saved tile markers on tile markers account page
\n
\nAdditionally, our Plugin Hub page has become even more\ninformative, as you can now click on a listed plugin and its project introduction will be presented.
\nThere are also several smaller improvements and bug fixes, including:
\n\nA border width option has been added to the Ground Markers plugin \nThe Inventory Viewer has an option to become hidden when your inventory tab is open \nThe Barbarian Assault lobby and healer widgets are now moveable using our overlay system \nThe cannon degrade timer is now shown for each stage of cannon setup, and a repair timer is added\nif your cannon degrades after being set up \nRecolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\nbank value \nThe Wintertodt plugin is now better at detecting when you have started fletching \nThe thrall timer counts the extra time given from having a boosted magic level \nThe XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\ntoward a configured XP goal \nA number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (7):\n tile indicators: add border width config\n Revert "http-service: fix hiscore test"\n http-service: fix hiscore test\n inventory viewer: add option to hide when inventory is open\n Close various resource inputstreams\n object indicators: don\'t mark unnamed objects\n api: fix computing scene coord for negative local points\n\nBegOsrs (1):\n WidgetOverlay: Make Barbarian Assault widgets moveable (#13852)\n\nCyborger1 (1):\n clues: Fix capitalization for "New Recruit Tony" master anagram\n\nF.W. Dekker (1):\n chat notifications: clarify how to enter multiple words\n\nGamma91 (1):\n roof removal: Add missing overrides for the lighthouse and falador castle (#13862)\n\nHydrox6 (16):\n loot manager: add phosani\'s nightmare\n widgetoverlay: add back removed WidgetOverlays\n combatlevel: fix attack range indicator\n clues: fix hot/cold enemies for updated kourend locations\n timers: make thrall timer use boosted magic level\n overlay renderer: account for parent\'s position when clamping location\n clues: fix the other kourend hot/cold enemies\n chat commands: add shorthand names for phosani\'s nightmare\n xp tracker: fix intermediate markers not showing for xp based goal ends\n api: add roof removal api\n plugins: add roof removal plugin\n devtools: add tile region location and regionid to tile location tool\n devtools: add roofs tool\n roof removal: overrides to fix Pyramid Plunder and Yanille Bank\n timers: add cannon repair timer\n roof removal: change override.json file extension to .jsonc\n\nJordan Atwood (4):\n CoordinateClue: Add South of Shayziens\' Wall clue\n discord: Identify corrupted gauntlet separately\n Remove unused Slf4j annotations and imports\n CoordinateClue: Fix Crabclaw isle location\n\nLlemonDuck (1):\n raids: screenshot overlay from client thread\n\nLoze-Put (1):\n timers: Add cannon timer for each parts\' setup (#13856)\n\nMax Weber (6):\n Update script arguments to 2021-6-30\n http-api, rl-client: add phosani\'s nightmare to hiscores\n http-service: fix hiscore test\n music: don\'t restart when rendrawing tli\n worldmap: fix tooltip widget id\n runelite-api: update Quest\n\nMeeran (1):\n ItemMapping: Add Blade of Saeldor and Bow of Faerdhinen recolor mappings (#13859)\n\nMichael (1):\n wintertodt: improve fletching activity status detection\n\nSirWrain (1):\n achievement diary: Fix reworded hard desert diary entry (#13770)\n\nWoox (5):\n Add model outline renderer\n modeloutlinerenderer: fix clip boundaries in fixed mode\n api: add actor current orientation\n api: add decorative object offsets\n api: add game object model orientation\n\ngeheur (1):\n mta: update alchemy room widgets ids\n
\n',image:"/img/blog/1.7.16-Release/npc-outline-1px.png"}}}]);
-//# sourceMappingURL=145.89a0d663.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[145],{421:function(i,e){i.exports={title:"1.7.14, 1.7.15, and 1.7.16 Releases",description:"Model outline rendering, roof removal plugin, and website tile marker viewing and improved hub plugin pages",author:"Jordan",body:'We\'ve added a new model outline renderer which can draw precise outlines of NPCs and objects via\ntheir respective indicator plugins.
\n\n\n\n1px outline \n2px outline \n10px feathered outline \n \n \n\n\n \n \n \n \n \n
\nWe\'ve added a roof removal plugin which can selectively hide roofs when standing or walking under\nthem, hovering over them, or when they block the camera\'s view to your player. Experience the game\'s\nbeautiful roofs without sacrificing visibility!
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Roof removal plugin demo\n
\nWebsite feature additions \nWe\'ve added a tile marker display page to the website. Just visit https://runelite.net/tile/ and\npaste your exported ground\nmarkers to see them\nvisualized on the game map, like these Olm boss fight markers. If you are logged in to website you can also\nview your saved tile markers on tile markers account page
\n
\nAdditionally, our Plugin Hub page has become even more\ninformative, as you can now click on a listed plugin and its project introduction will be presented.
\nThere are also several smaller improvements and bug fixes, including:
\n\nA border width option has been added to the Ground Markers plugin \nThe Inventory Viewer has an option to become hidden when your inventory tab is open \nThe Barbarian Assault lobby and healer widgets are now moveable using our overlay system \nThe cannon degrade timer is now shown for each stage of cannon setup, and a repair timer is added\nif your cannon degrades after being set up \nRecolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\nbank value \nThe Wintertodt plugin is now better at detecting when you have started fletching \nThe thrall timer counts the extra time given from having a boosted magic level \nThe XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\ntoward a configured XP goal \nA number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (7):\n tile indicators: add border width config\n Revert "http-service: fix hiscore test"\n http-service: fix hiscore test\n inventory viewer: add option to hide when inventory is open\n Close various resource inputstreams\n object indicators: don\'t mark unnamed objects\n api: fix computing scene coord for negative local points\n\nBegOsrs (1):\n WidgetOverlay: Make Barbarian Assault widgets moveable (#13852)\n\nCyborger1 (1):\n clues: Fix capitalization for "New Recruit Tony" master anagram\n\nF.W. Dekker (1):\n chat notifications: clarify how to enter multiple words\n\nGamma91 (1):\n roof removal: Add missing overrides for the lighthouse and falador castle (#13862)\n\nHydrox6 (16):\n loot manager: add phosani\'s nightmare\n widgetoverlay: add back removed WidgetOverlays\n combatlevel: fix attack range indicator\n clues: fix hot/cold enemies for updated kourend locations\n timers: make thrall timer use boosted magic level\n overlay renderer: account for parent\'s position when clamping location\n clues: fix the other kourend hot/cold enemies\n chat commands: add shorthand names for phosani\'s nightmare\n xp tracker: fix intermediate markers not showing for xp based goal ends\n api: add roof removal api\n plugins: add roof removal plugin\n devtools: add tile region location and regionid to tile location tool\n devtools: add roofs tool\n roof removal: overrides to fix Pyramid Plunder and Yanille Bank\n timers: add cannon repair timer\n roof removal: change override.json file extension to .jsonc\n\nJordan Atwood (4):\n CoordinateClue: Add South of Shayziens\' Wall clue\n discord: Identify corrupted gauntlet separately\n Remove unused Slf4j annotations and imports\n CoordinateClue: Fix Crabclaw isle location\n\nLlemonDuck (1):\n raids: screenshot overlay from client thread\n\nLoze-Put (1):\n timers: Add cannon timer for each parts\' setup (#13856)\n\nMax Weber (6):\n Update script arguments to 2021-6-30\n http-api, rl-client: add phosani\'s nightmare to hiscores\n http-service: fix hiscore test\n music: don\'t restart when rendrawing tli\n worldmap: fix tooltip widget id\n runelite-api: update Quest\n\nMeeran (1):\n ItemMapping: Add Blade of Saeldor and Bow of Faerdhinen recolor mappings (#13859)\n\nMichael (1):\n wintertodt: improve fletching activity status detection\n\nSirWrain (1):\n achievement diary: Fix reworded hard desert diary entry (#13770)\n\nWoox (5):\n Add model outline renderer\n modeloutlinerenderer: fix clip boundaries in fixed mode\n api: add actor current orientation\n api: add decorative object offsets\n api: add game object model orientation\n\ngeheur (1):\n mta: update alchemy room widgets ids\n
\n',image:"/img/blog/1.7.16-Release/npc-outline-1px.png"}}}]);
+//# sourceMappingURL=145.1a181369.chunk.js.map
\ No newline at end of file
diff --git a/static/js/145.89a0d663.chunk.js.map b/static/js/145.1a181369.chunk.js.map
similarity index 99%
rename from static/js/145.89a0d663.chunk.js.map
rename to static/js/145.1a181369.chunk.js.map
index 90713a3d5..0c6a5561d 100644
--- a/static/js/145.89a0d663.chunk.js.map
+++ b/static/js/145.1a181369.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-07-14-10-00-1.7.16-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,8GAA8G,OAAS,SAAS,KAAO,++UAAkiV,MAAQ","file":"static/js/145.89a0d663.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.14, 1.7.15, and 1.7.16 Releases\",\"description\":\"Model outline rendering, roof removal plugin, and website tile marker viewing and improved hub plugin pages\",\"author\":\"Jordan\",\"body\":\"We've added a new model outline renderer which can draw precise outlines of NPCs and objects via\\ntheir respective indicator plugins.
\\n\\n\\n\\n1px outline \\n2px outline \\n10px feathered outline \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nWe've added a roof removal plugin which can selectively hide roofs when standing or walking under\\nthem, hovering over them, or when they block the camera's view to your player. Experience the game's\\nbeautiful roofs without sacrificing visibility!
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Roof removal plugin demo\\n
\\nWebsite feature additions \\nWe've added a tile marker display page to the website. Just visit https://runelite.net/tile/ and\\npaste your exported ground\\nmarkers to see them\\nvisualized on the game map, like these Olm boss fight markers. If you are logged in to website you can also\\nview your saved tile markers on tile markers account page
\\n
\\nAdditionally, our Plugin Hub page has become even more\\ninformative, as you can now click on a listed plugin and its project introduction will be presented.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA border width option has been added to the Ground Markers plugin \\nThe Inventory Viewer has an option to become hidden when your inventory tab is open \\nThe Barbarian Assault lobby and healer widgets are now moveable using our overlay system \\nThe cannon degrade timer is now shown for each stage of cannon setup, and a repair timer is added\\nif your cannon degrades after being set up \\nRecolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\\nbank value \\nThe Wintertodt plugin is now better at detecting when you have started fletching \\nThe thrall timer counts the extra time given from having a boosted magic level \\nThe XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\\ntoward a configured XP goal \\nA number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (7):\\n tile indicators: add border width config\\n Revert "http-service: fix hiscore test"\\n http-service: fix hiscore test\\n inventory viewer: add option to hide when inventory is open\\n Close various resource inputstreams\\n object indicators: don't mark unnamed objects\\n api: fix computing scene coord for negative local points\\n\\nBegOsrs (1):\\n WidgetOverlay: Make Barbarian Assault widgets moveable (#13852)\\n\\nCyborger1 (1):\\n clues: Fix capitalization for "New Recruit Tony" master anagram\\n\\nF.W. Dekker (1):\\n chat notifications: clarify how to enter multiple words\\n\\nGamma91 (1):\\n roof removal: Add missing overrides for the lighthouse and falador castle (#13862)\\n\\nHydrox6 (16):\\n loot manager: add phosani's nightmare\\n widgetoverlay: add back removed WidgetOverlays\\n combatlevel: fix attack range indicator\\n clues: fix hot/cold enemies for updated kourend locations\\n timers: make thrall timer use boosted magic level\\n overlay renderer: account for parent's position when clamping location\\n clues: fix the other kourend hot/cold enemies\\n chat commands: add shorthand names for phosani's nightmare\\n xp tracker: fix intermediate markers not showing for xp based goal ends\\n api: add roof removal api\\n plugins: add roof removal plugin\\n devtools: add tile region location and regionid to tile location tool\\n devtools: add roofs tool\\n roof removal: overrides to fix Pyramid Plunder and Yanille Bank\\n timers: add cannon repair timer\\n roof removal: change override.json file extension to .jsonc\\n\\nJordan Atwood (4):\\n CoordinateClue: Add South of Shayziens' Wall clue\\n discord: Identify corrupted gauntlet separately\\n Remove unused Slf4j annotations and imports\\n CoordinateClue: Fix Crabclaw isle location\\n\\nLlemonDuck (1):\\n raids: screenshot overlay from client thread\\n\\nLoze-Put (1):\\n timers: Add cannon timer for each parts' setup (#13856)\\n\\nMax Weber (6):\\n Update script arguments to 2021-6-30\\n http-api, rl-client: add phosani's nightmare to hiscores\\n http-service: fix hiscore test\\n music: don't restart when rendrawing tli\\n worldmap: fix tooltip widget id\\n runelite-api: update Quest\\n\\nMeeran (1):\\n ItemMapping: Add Blade of Saeldor and Bow of Faerdhinen recolor mappings (#13859)\\n\\nMichael (1):\\n wintertodt: improve fletching activity status detection\\n\\nSirWrain (1):\\n achievement diary: Fix reworded hard desert diary entry (#13770)\\n\\nWoox (5):\\n Add model outline renderer\\n modeloutlinerenderer: fix clip boundaries in fixed mode\\n api: add actor current orientation\\n api: add decorative object offsets\\n api: add game object model orientation\\n\\ngeheur (1):\\n mta: update alchemy room widgets ids\\n
\\n\",\"image\":\"/img/blog/1.7.16-Release/npc-outline-1px.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-07-14-10-00-1.7.16-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sCAAsC,YAAc,8GAA8G,OAAS,SAAS,KAAO,++UAAkiV,MAAQ","file":"static/js/145.1a181369.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.14, 1.7.15, and 1.7.16 Releases\",\"description\":\"Model outline rendering, roof removal plugin, and website tile marker viewing and improved hub plugin pages\",\"author\":\"Jordan\",\"body\":\"We've added a new model outline renderer which can draw precise outlines of NPCs and objects via\\ntheir respective indicator plugins.
\\n\\n\\n\\n1px outline \\n2px outline \\n10px feathered outline \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nWe've added a roof removal plugin which can selectively hide roofs when standing or walking under\\nthem, hovering over them, or when they block the camera's view to your player. Experience the game's\\nbeautiful roofs without sacrificing visibility!
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Roof removal plugin demo\\n
\\nWebsite feature additions \\nWe've added a tile marker display page to the website. Just visit https://runelite.net/tile/ and\\npaste your exported ground\\nmarkers to see them\\nvisualized on the game map, like these Olm boss fight markers. If you are logged in to website you can also\\nview your saved tile markers on tile markers account page
\\n
\\nAdditionally, our Plugin Hub page has become even more\\ninformative, as you can now click on a listed plugin and its project introduction will be presented.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA border width option has been added to the Ground Markers plugin \\nThe Inventory Viewer has an option to become hidden when your inventory tab is open \\nThe Barbarian Assault lobby and healer widgets are now moveable using our overlay system \\nThe cannon degrade timer is now shown for each stage of cannon setup, and a repair timer is added\\nif your cannon degrades after being set up \\nRecolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\\nbank value \\nThe Wintertodt plugin is now better at detecting when you have started fletching \\nThe thrall timer counts the extra time given from having a boosted magic level \\nThe XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\\ntoward a configured XP goal \\nA number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (7):\\n tile indicators: add border width config\\n Revert "http-service: fix hiscore test"\\n http-service: fix hiscore test\\n inventory viewer: add option to hide when inventory is open\\n Close various resource inputstreams\\n object indicators: don't mark unnamed objects\\n api: fix computing scene coord for negative local points\\n\\nBegOsrs (1):\\n WidgetOverlay: Make Barbarian Assault widgets moveable (#13852)\\n\\nCyborger1 (1):\\n clues: Fix capitalization for "New Recruit Tony" master anagram\\n\\nF.W. Dekker (1):\\n chat notifications: clarify how to enter multiple words\\n\\nGamma91 (1):\\n roof removal: Add missing overrides for the lighthouse and falador castle (#13862)\\n\\nHydrox6 (16):\\n loot manager: add phosani's nightmare\\n widgetoverlay: add back removed WidgetOverlays\\n combatlevel: fix attack range indicator\\n clues: fix hot/cold enemies for updated kourend locations\\n timers: make thrall timer use boosted magic level\\n overlay renderer: account for parent's position when clamping location\\n clues: fix the other kourend hot/cold enemies\\n chat commands: add shorthand names for phosani's nightmare\\n xp tracker: fix intermediate markers not showing for xp based goal ends\\n api: add roof removal api\\n plugins: add roof removal plugin\\n devtools: add tile region location and regionid to tile location tool\\n devtools: add roofs tool\\n roof removal: overrides to fix Pyramid Plunder and Yanille Bank\\n timers: add cannon repair timer\\n roof removal: change override.json file extension to .jsonc\\n\\nJordan Atwood (4):\\n CoordinateClue: Add South of Shayziens' Wall clue\\n discord: Identify corrupted gauntlet separately\\n Remove unused Slf4j annotations and imports\\n CoordinateClue: Fix Crabclaw isle location\\n\\nLlemonDuck (1):\\n raids: screenshot overlay from client thread\\n\\nLoze-Put (1):\\n timers: Add cannon timer for each parts' setup (#13856)\\n\\nMax Weber (6):\\n Update script arguments to 2021-6-30\\n http-api, rl-client: add phosani's nightmare to hiscores\\n http-service: fix hiscore test\\n music: don't restart when rendrawing tli\\n worldmap: fix tooltip widget id\\n runelite-api: update Quest\\n\\nMeeran (1):\\n ItemMapping: Add Blade of Saeldor and Bow of Faerdhinen recolor mappings (#13859)\\n\\nMichael (1):\\n wintertodt: improve fletching activity status detection\\n\\nSirWrain (1):\\n achievement diary: Fix reworded hard desert diary entry (#13770)\\n\\nWoox (5):\\n Add model outline renderer\\n modeloutlinerenderer: fix clip boundaries in fixed mode\\n api: add actor current orientation\\n api: add decorative object offsets\\n api: add game object model orientation\\n\\ngeheur (1):\\n mta: update alchemy room widgets ids\\n
\\n\",\"image\":\"/img/blog/1.7.16-Release/npc-outline-1px.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/146.479f8fba.chunk.js b/static/js/146.0244480a.chunk.js
similarity index 97%
rename from static/js/146.479f8fba.chunk.js
rename to static/js/146.0244480a.chunk.js
index 2f2177b64..7a78abc49 100644
--- a/static/js/146.479f8fba.chunk.js
+++ b/static/js/146.0244480a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[146],{421:function(e,n){e.exports={title:"1.7.17 Release",description:"Loot beams and pets chat command",author:"Jordan",body:"Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for\nitems at or above a given price tier.
\n
\nA new command, !pets
, has been added to the Chat Commands plugin, which will display the number of\npets owned along with an icon of each pet owned. You must first check the All pets
section of your collection\nlog for RuneLite to learn which pets you have. Additional pets are automatically added if the collection log unlock\nnotifications are enabled in the game settings.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAn option has been added to the Status Bars plugin to hide them while outside of combat \nThe Report Button plugin can now display idle time on the report button \nThe Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\nboat's Quick-board option \nTeleport scrolls are now given labels via the Item Identification plugin \nThe Timers plugin now shows a timer for being stunned while pickpocketing \nA number of locations have had their roof removal mapping improved. No more random roof pieces\nfloating in the air! \nClue scrolls requiring you travel through the Mos Le'Harmless Cave no longer prompt you to bring\na light source when you've already built and lit the Fire of Eternal Light there \nThe Time Tracking overview panel is no longer blocked from opening when your farming contract crop\nis dead \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (4):\n item identification: clean up config enabled checks\n report button: add idle time\n menu entry swapper: add sacrificial boat quick board swap\n chat commands: add pets command\n\nHydrox6 (5):\n roof removal: add overrides for Shilo Village\n roof removal: fix entrance to Draynor Manor\n roof removal: fix bridge at entrance to Lletya\n roof removal: add overrides for Harmony Island\n roof removal: fix Arceuus church upper floors\n\nJordan Atwood (2):\n CoordinateClue: Fix Isle of Souls enemies\n roof removal: Add overrides for Keldagrim\n\nMax Weber (8):\n rl-api: add JagexColor util\n timetracking: don't fail rendering overview with dead contracts\n worldmap: use correct bounds for tooltip hit checking\n music: use vanilla's volume percentage conversion\n jshell: run cleanups on the client thread\n rl-client: render horizontal scroll bars\n jshell: allow copy of shell console\n jshell: better unresolved symbol handling\n\nNeil Rush (1):\n roof removal: Fix magic guild first floor (#13879)\n\nPeter Mauldin (1):\n item identification: add teleport scrolls\n\nRiddleTime (1):\n skill calc: add wall safe to thieving\n\nRobert (1):\n timers: add pickpocket stun timer\n\nTrevor (2):\n rl-api: add RuneLiteObject\n ground items plugin: add lootbeams\n\nVetricci (1):\n clues: Fix Shayzien cryptic clue crate location\n\nemerald000 (1):\n api: Fix Mos Le'Harmless firepit varbit (#13906)\n\nermalsh (1):\n statusbars: Add option to hide outside of combat\n
\n",image:"/img/blog/1.7.17-Release/loot-beams.gif"}}}]);
-//# sourceMappingURL=146.479f8fba.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[146],{422:function(e,n){e.exports={title:"1.7.17 Release",description:"Loot beams and pets chat command",author:"Jordan",body:"Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for\nitems at or above a given price tier.
\n
\nA new command, !pets
, has been added to the Chat Commands plugin, which will display the number of\npets owned along with an icon of each pet owned. You must first check the All pets
section of your collection\nlog for RuneLite to learn which pets you have. Additional pets are automatically added if the collection log unlock\nnotifications are enabled in the game settings.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAn option has been added to the Status Bars plugin to hide them while outside of combat \nThe Report Button plugin can now display idle time on the report button \nThe Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\nboat's Quick-board option \nTeleport scrolls are now given labels via the Item Identification plugin \nThe Timers plugin now shows a timer for being stunned while pickpocketing \nA number of locations have had their roof removal mapping improved. No more random roof pieces\nfloating in the air! \nClue scrolls requiring you travel through the Mos Le'Harmless Cave no longer prompt you to bring\na light source when you've already built and lit the Fire of Eternal Light there \nThe Time Tracking overview panel is no longer blocked from opening when your farming contract crop\nis dead \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (4):\n item identification: clean up config enabled checks\n report button: add idle time\n menu entry swapper: add sacrificial boat quick board swap\n chat commands: add pets command\n\nHydrox6 (5):\n roof removal: add overrides for Shilo Village\n roof removal: fix entrance to Draynor Manor\n roof removal: fix bridge at entrance to Lletya\n roof removal: add overrides for Harmony Island\n roof removal: fix Arceuus church upper floors\n\nJordan Atwood (2):\n CoordinateClue: Fix Isle of Souls enemies\n roof removal: Add overrides for Keldagrim\n\nMax Weber (8):\n rl-api: add JagexColor util\n timetracking: don't fail rendering overview with dead contracts\n worldmap: use correct bounds for tooltip hit checking\n music: use vanilla's volume percentage conversion\n jshell: run cleanups on the client thread\n rl-client: render horizontal scroll bars\n jshell: allow copy of shell console\n jshell: better unresolved symbol handling\n\nNeil Rush (1):\n roof removal: Fix magic guild first floor (#13879)\n\nPeter Mauldin (1):\n item identification: add teleport scrolls\n\nRiddleTime (1):\n skill calc: add wall safe to thieving\n\nRobert (1):\n timers: add pickpocket stun timer\n\nTrevor (2):\n rl-api: add RuneLiteObject\n ground items plugin: add lootbeams\n\nVetricci (1):\n clues: Fix Shayzien cryptic clue crate location\n\nemerald000 (1):\n api: Fix Mos Le'Harmless firepit varbit (#13906)\n\nermalsh (1):\n statusbars: Add option to hide outside of combat\n
\n",image:"/img/blog/1.7.17-Release/loot-beams.gif"}}}]);
+//# sourceMappingURL=146.0244480a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/146.479f8fba.chunk.js.map b/static/js/146.0244480a.chunk.js.map
similarity index 98%
rename from static/js/146.479f8fba.chunk.js.map
rename to static/js/146.0244480a.chunk.js.map
index 2b0927945..12749ed24 100644
--- a/static/js/146.479f8fba.chunk.js.map
+++ b/static/js/146.0244480a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-07-21-10-00-1.7.17-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mCAAmC,OAAS,SAAS,KAAO,u7GAAu7G,MAAQ","file":"static/js/146.479f8fba.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.17 Release\",\"description\":\"Loot beams and pets chat command\",\"author\":\"Jordan\",\"body\":\"Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for\\nitems at or above a given price tier.
\\n
\\nA new command, !pets
, has been added to the Chat Commands plugin, which will display the number of\\npets owned along with an icon of each pet owned. You must first check the All pets
section of your collection\\nlog for RuneLite to learn which pets you have. Additional pets are automatically added if the collection log unlock\\nnotifications are enabled in the game settings.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAn option has been added to the Status Bars plugin to hide them while outside of combat \\nThe Report Button plugin can now display idle time on the report button \\nThe Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\\nboat's Quick-board option \\nTeleport scrolls are now given labels via the Item Identification plugin \\nThe Timers plugin now shows a timer for being stunned while pickpocketing \\nA number of locations have had their roof removal mapping improved. No more random roof pieces\\nfloating in the air! \\nClue scrolls requiring you travel through the Mos Le'Harmless Cave no longer prompt you to bring\\na light source when you've already built and lit the Fire of Eternal Light there \\nThe Time Tracking overview panel is no longer blocked from opening when your farming contract crop\\nis dead \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (4):\\n item identification: clean up config enabled checks\\n report button: add idle time\\n menu entry swapper: add sacrificial boat quick board swap\\n chat commands: add pets command\\n\\nHydrox6 (5):\\n roof removal: add overrides for Shilo Village\\n roof removal: fix entrance to Draynor Manor\\n roof removal: fix bridge at entrance to Lletya\\n roof removal: add overrides for Harmony Island\\n roof removal: fix Arceuus church upper floors\\n\\nJordan Atwood (2):\\n CoordinateClue: Fix Isle of Souls enemies\\n roof removal: Add overrides for Keldagrim\\n\\nMax Weber (8):\\n rl-api: add JagexColor util\\n timetracking: don't fail rendering overview with dead contracts\\n worldmap: use correct bounds for tooltip hit checking\\n music: use vanilla's volume percentage conversion\\n jshell: run cleanups on the client thread\\n rl-client: render horizontal scroll bars\\n jshell: allow copy of shell console\\n jshell: better unresolved symbol handling\\n\\nNeil Rush (1):\\n roof removal: Fix magic guild first floor (#13879)\\n\\nPeter Mauldin (1):\\n item identification: add teleport scrolls\\n\\nRiddleTime (1):\\n skill calc: add wall safe to thieving\\n\\nRobert (1):\\n timers: add pickpocket stun timer\\n\\nTrevor (2):\\n rl-api: add RuneLiteObject\\n ground items plugin: add lootbeams\\n\\nVetricci (1):\\n clues: Fix Shayzien cryptic clue crate location\\n\\nemerald000 (1):\\n api: Fix Mos Le'Harmless firepit varbit (#13906)\\n\\nermalsh (1):\\n statusbars: Add option to hide outside of combat\\n
\\n\",\"image\":\"/img/blog/1.7.17-Release/loot-beams.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-07-21-10-00-1.7.17-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mCAAmC,OAAS,SAAS,KAAO,u7GAAu7G,MAAQ","file":"static/js/146.0244480a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.17 Release\",\"description\":\"Loot beams and pets chat command\",\"author\":\"Jordan\",\"body\":\"Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for\\nitems at or above a given price tier.
\\n
\\nA new command, !pets
, has been added to the Chat Commands plugin, which will display the number of\\npets owned along with an icon of each pet owned. You must first check the All pets
section of your collection\\nlog for RuneLite to learn which pets you have. Additional pets are automatically added if the collection log unlock\\nnotifications are enabled in the game settings.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAn option has been added to the Status Bars plugin to hide them while outside of combat \\nThe Report Button plugin can now display idle time on the report button \\nThe Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\\nboat's Quick-board option \\nTeleport scrolls are now given labels via the Item Identification plugin \\nThe Timers plugin now shows a timer for being stunned while pickpocketing \\nA number of locations have had their roof removal mapping improved. No more random roof pieces\\nfloating in the air! \\nClue scrolls requiring you travel through the Mos Le'Harmless Cave no longer prompt you to bring\\na light source when you've already built and lit the Fire of Eternal Light there \\nThe Time Tracking overview panel is no longer blocked from opening when your farming contract crop\\nis dead \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (4):\\n item identification: clean up config enabled checks\\n report button: add idle time\\n menu entry swapper: add sacrificial boat quick board swap\\n chat commands: add pets command\\n\\nHydrox6 (5):\\n roof removal: add overrides for Shilo Village\\n roof removal: fix entrance to Draynor Manor\\n roof removal: fix bridge at entrance to Lletya\\n roof removal: add overrides for Harmony Island\\n roof removal: fix Arceuus church upper floors\\n\\nJordan Atwood (2):\\n CoordinateClue: Fix Isle of Souls enemies\\n roof removal: Add overrides for Keldagrim\\n\\nMax Weber (8):\\n rl-api: add JagexColor util\\n timetracking: don't fail rendering overview with dead contracts\\n worldmap: use correct bounds for tooltip hit checking\\n music: use vanilla's volume percentage conversion\\n jshell: run cleanups on the client thread\\n rl-client: render horizontal scroll bars\\n jshell: allow copy of shell console\\n jshell: better unresolved symbol handling\\n\\nNeil Rush (1):\\n roof removal: Fix magic guild first floor (#13879)\\n\\nPeter Mauldin (1):\\n item identification: add teleport scrolls\\n\\nRiddleTime (1):\\n skill calc: add wall safe to thieving\\n\\nRobert (1):\\n timers: add pickpocket stun timer\\n\\nTrevor (2):\\n rl-api: add RuneLiteObject\\n ground items plugin: add lootbeams\\n\\nVetricci (1):\\n clues: Fix Shayzien cryptic clue crate location\\n\\nemerald000 (1):\\n api: Fix Mos Le'Harmless firepit varbit (#13906)\\n\\nermalsh (1):\\n statusbars: Add option to hide outside of combat\\n
\\n\",\"image\":\"/img/blog/1.7.17-Release/loot-beams.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/147.03ec8078.chunk.js b/static/js/147.052f8958.chunk.js
similarity index 98%
rename from static/js/147.03ec8078.chunk.js
rename to static/js/147.052f8958.chunk.js
index 7caaf0378..dbc485c1b 100644
--- a/static/js/147.03ec8078.chunk.js
+++ b/static/js/147.052f8958.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[147],{422:function(e,n){e.exports={title:"1.7.22 Release",description:"Interact highlight plugin, improved Slayer and Implings highlighting, and other features and fixes",author:"Jordan",body:"We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover\nover and interact with.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Demonstration of the Interaction Highlight plugin at the Grand Exchange\n
\nLogin and logout messages for friends and friends chat chanels no longer appear for world hops.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Slayer and Implings plugins now use the same system for highlighting as the NPC Indicators\nplugin, allowing configurable hull/tile/outline overlays to be drawn. Note: this currently\nrequires the NPC Indicators plugin to be enabled, we will be removing this dependency in the\nfuture. \nThe NPC Indicators plugin now has a separate fill color option, allowing the fill and border\ncolors to be fully customizable \nWe've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports \nTo match features available in the Steam OldSchool RuneScape client, we have enabled the Antidrag\nplugin in PvP scenarios, and we've increased the walk click distance. \nLoot Tracker entries now display unit price of item stacks in their tooltips \nThe new combat achievement slayer helmet variations are now supported in the Slayer and Clue\nScroll plugins \nThe wilderness level vanilla widget has been made moveable \nSwap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4 \nThe burner timers of the POH plugin have been fixed to be more accurate \nThe expanded side panel is now remembered and restored when restoring the sidebar \nUI tooltips on MacOS are no longer cut off by the game screen \nThe Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\ninstances such as quest instances \nThe Grotesque Guardians instance timer has been changed to 5 minutes \nThe Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest \nThe Woodcutting plugin no longer shows respawn timers for POH construction trees \nThe mining plugin now shows respawn timers for Barronite ore and deposits \nThe XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 20 contributors this release!
\nAdam (45):\n chat commands: use script event for loading col log pets\n clues: fix Shayzien Infirmary clue challenge\n chat commands: fix parsing nightmare nb\n api: remove many unused projectile ids\n api: fix naming of menuoptionclicked params\n chat commands: fix parsing nightmare pb\n Add interact highlight plugin\n loot tracker: add ruins of camdozaal vault lockboxes\n poh: fix burner overlay timers\n api: add menu location and size accessors\n hiscore: switch to dmmt hiscores\n antidrag: enable in pvp\n http service: add pets list length check\n widgetoverlay: support detached overlays\n slayer plugin: use npchiglight for task highlights\n redis pool: don't reuse broken jedis instances\n interact highlight: set overlay priority to high\n widget overlay: rebuild overlay layers when xp tracker moves\n widget overlay: lower priority of oxygen and hp interfaces\n npc indicators: add fill color config\n woodcutting: remove respawn timers from construction trees\n ping: add macos support for icmp ping\n config manager: fsync temp config file\n clientloader: fix loading classes in packages\n clientui: fix restoring sidepanel when expanding sidebar\n api: add type parameter to Comparable\n chat channel: fix join/leave world hop detection\n xp updater: don't send updates for dmm, leagues, or beta worlds\n chat commands: rename tob story mode to entry mode\n npc indicators: allow plugins to specify highlight styles\n implings plugin: use npc indicators for impling overlay\n chat commands: update to parse new adv log pb counters\n ge: fix detecting dmmt world type\n Update world types for seasonal deadman\n world hopper: set activity tooltip on world list\n overlay: only layout widget overlays if the preferred location is set\n world hopper: bubble up mouse events from activity label\n loot tracker: add world id to loot record for dmmt\n use maven's native reproducible build support\n logback: add duplicate exception filter\n api: flatten model uvs\n wiki: move icon to match vanilla position\n api: make getCanvasTilePoly work on multi-tile npcs\n pom: remove source/target configuration on maven-compiler-plugin\n ui: force heavyweight tooltips on macos\n\nAdam Davies (1):\n mining: Add barronite ore and deposits\n\nBenMortensenTTS (1):\n loot tracker: add rogues' chest\n\nChristian (1):\n menu swapper: add placeholder withdraw swap\n\nCyborger1 (1):\n text: don't remove double spaces in toJagexName\n\nEirik Leikvoll (1):\n interact highlight: fix auto retaliate highlight color\n\nHydrox6 (21):\n world map: correct locations of quest markers (#13960)\n client: update various wordings to use "signed in/out" for RL accounts\n ground items: make loot beams work with only show loot\n roof removal: fix some roof bleed in Prifddinas\n roof removal: add overrides for Mage Arena\n roof removal: add overrides for Lighthouse during Horror from the Deep\n clues: remove non-existent clues\n roof removal: add overrides for redwoods\n roof removal: add overrides for port sarim's boats\n roof removal: add overrides for entrana's boat\n roof removal: fix roof collisions at ranging guild\n roof removal: add overrides for the boat next to morytania's farm\n roof removal: add overrides for dorgesh-kaan\n roof removal: add overrides for the temple of light\n roof removal: add overrides for fossil island underwater\n roof removal: add overrides for waterbirth island dungeon\n roof removal: fix ardougne castle 1st floor\n roof removal: properly account for instances when applying overrides\n loot tracker: add ea display to tooltips\n loot tracker: don't show unneeded tooltip lines for coins and platinum\n xp globes: account for progress arc width when deciding overlay bounds\n\nIllya Myshakov (1):\n chat commands: use rl format message for pets\n\nJordan Atwood (6):\n banktags: Fix bank scroll height with separators hidden (#13723)\n Revert "XpInfoBox: Give stats panel equal column widths"\n ItemMapping: Add combat achievement rewards variations\n slayer: Support combat achievement slayer helms\n clues: Support combat achievement slayer helms\n roof removal: Fix Ardougne monastery\n\nJoshS (1):\n skill calc: add Magic Essence Potion\n\nMax Weber (5):\n itemstats: remove quest field\n rl-client/RSProfileType: add DMM Reborn\n rl-client/ImageCapture: use RSProfileType for screenshot naming\n rl-api: expose actor pose anim source setters\n timetracking: don't load notification icons for every panel\n\nRyan (1):\n ItemMapping: Add Tome of Water and Master Scroll Book\n\nSkylerPIlot (2):\n skill calculator: Add Morytania diary shade exp bonus\n skill calculator: Add Urium remains\n\nSteven L (1):\n clues: Add Wizards' Tower fairy ring code to cryptic clue (#13977)\n\nThePharros (1):\n menu swapper: add desert amulet 4\n\nTheStonedTurtle (2):\n itemstats: Add Corrupted Paddlefish\n CrypticClue: Fix hosidius fruit store crates highlighting (#14051)\n\nTrevor Engen (1):\n slayer: Change moss giants task icon to mossy key (#13962)\n\nVetricci (6):\n item mapping: add combat achievement slayer helm variants\n itemstats: Add new Gauntlet food\n roof removal: fix Varrock Castle gallery\n roof removal: fix eastern Dark Beast area\n roof removal: add overrides for Prifddinas\n skillcalculator: Add new amethyst items (#13890)\n\nemerald000 (1):\n boss timers: Change Grotesque Guardians timer to 5 minutes (#13893)\n\npilino1234 (2):\n skillcalculator: Add Camdozaal activities\n worldmap: Add mining spots in Ruins of Camdozaal\n
\n"}}}]);
-//# sourceMappingURL=147.03ec8078.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[147],{423:function(e,n){e.exports={title:"1.7.22 Release",description:"Interact highlight plugin, improved Slayer and Implings highlighting, and other features and fixes",author:"Jordan",body:"We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover\nover and interact with.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Demonstration of the Interaction Highlight plugin at the Grand Exchange\n
\nLogin and logout messages for friends and friends chat chanels no longer appear for world hops.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Slayer and Implings plugins now use the same system for highlighting as the NPC Indicators\nplugin, allowing configurable hull/tile/outline overlays to be drawn. Note: this currently\nrequires the NPC Indicators plugin to be enabled, we will be removing this dependency in the\nfuture. \nThe NPC Indicators plugin now has a separate fill color option, allowing the fill and border\ncolors to be fully customizable \nWe've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports \nTo match features available in the Steam OldSchool RuneScape client, we have enabled the Antidrag\nplugin in PvP scenarios, and we've increased the walk click distance. \nLoot Tracker entries now display unit price of item stacks in their tooltips \nThe new combat achievement slayer helmet variations are now supported in the Slayer and Clue\nScroll plugins \nThe wilderness level vanilla widget has been made moveable \nSwap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4 \nThe burner timers of the POH plugin have been fixed to be more accurate \nThe expanded side panel is now remembered and restored when restoring the sidebar \nUI tooltips on MacOS are no longer cut off by the game screen \nThe Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\ninstances such as quest instances \nThe Grotesque Guardians instance timer has been changed to 5 minutes \nThe Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest \nThe Woodcutting plugin no longer shows respawn timers for POH construction trees \nThe mining plugin now shows respawn timers for Barronite ore and deposits \nThe XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 20 contributors this release!
\nAdam (45):\n chat commands: use script event for loading col log pets\n clues: fix Shayzien Infirmary clue challenge\n chat commands: fix parsing nightmare nb\n api: remove many unused projectile ids\n api: fix naming of menuoptionclicked params\n chat commands: fix parsing nightmare pb\n Add interact highlight plugin\n loot tracker: add ruins of camdozaal vault lockboxes\n poh: fix burner overlay timers\n api: add menu location and size accessors\n hiscore: switch to dmmt hiscores\n antidrag: enable in pvp\n http service: add pets list length check\n widgetoverlay: support detached overlays\n slayer plugin: use npchiglight for task highlights\n redis pool: don't reuse broken jedis instances\n interact highlight: set overlay priority to high\n widget overlay: rebuild overlay layers when xp tracker moves\n widget overlay: lower priority of oxygen and hp interfaces\n npc indicators: add fill color config\n woodcutting: remove respawn timers from construction trees\n ping: add macos support for icmp ping\n config manager: fsync temp config file\n clientloader: fix loading classes in packages\n clientui: fix restoring sidepanel when expanding sidebar\n api: add type parameter to Comparable\n chat channel: fix join/leave world hop detection\n xp updater: don't send updates for dmm, leagues, or beta worlds\n chat commands: rename tob story mode to entry mode\n npc indicators: allow plugins to specify highlight styles\n implings plugin: use npc indicators for impling overlay\n chat commands: update to parse new adv log pb counters\n ge: fix detecting dmmt world type\n Update world types for seasonal deadman\n world hopper: set activity tooltip on world list\n overlay: only layout widget overlays if the preferred location is set\n world hopper: bubble up mouse events from activity label\n loot tracker: add world id to loot record for dmmt\n use maven's native reproducible build support\n logback: add duplicate exception filter\n api: flatten model uvs\n wiki: move icon to match vanilla position\n api: make getCanvasTilePoly work on multi-tile npcs\n pom: remove source/target configuration on maven-compiler-plugin\n ui: force heavyweight tooltips on macos\n\nAdam Davies (1):\n mining: Add barronite ore and deposits\n\nBenMortensenTTS (1):\n loot tracker: add rogues' chest\n\nChristian (1):\n menu swapper: add placeholder withdraw swap\n\nCyborger1 (1):\n text: don't remove double spaces in toJagexName\n\nEirik Leikvoll (1):\n interact highlight: fix auto retaliate highlight color\n\nHydrox6 (21):\n world map: correct locations of quest markers (#13960)\n client: update various wordings to use "signed in/out" for RL accounts\n ground items: make loot beams work with only show loot\n roof removal: fix some roof bleed in Prifddinas\n roof removal: add overrides for Mage Arena\n roof removal: add overrides for Lighthouse during Horror from the Deep\n clues: remove non-existent clues\n roof removal: add overrides for redwoods\n roof removal: add overrides for port sarim's boats\n roof removal: add overrides for entrana's boat\n roof removal: fix roof collisions at ranging guild\n roof removal: add overrides for the boat next to morytania's farm\n roof removal: add overrides for dorgesh-kaan\n roof removal: add overrides for the temple of light\n roof removal: add overrides for fossil island underwater\n roof removal: add overrides for waterbirth island dungeon\n roof removal: fix ardougne castle 1st floor\n roof removal: properly account for instances when applying overrides\n loot tracker: add ea display to tooltips\n loot tracker: don't show unneeded tooltip lines for coins and platinum\n xp globes: account for progress arc width when deciding overlay bounds\n\nIllya Myshakov (1):\n chat commands: use rl format message for pets\n\nJordan Atwood (6):\n banktags: Fix bank scroll height with separators hidden (#13723)\n Revert "XpInfoBox: Give stats panel equal column widths"\n ItemMapping: Add combat achievement rewards variations\n slayer: Support combat achievement slayer helms\n clues: Support combat achievement slayer helms\n roof removal: Fix Ardougne monastery\n\nJoshS (1):\n skill calc: add Magic Essence Potion\n\nMax Weber (5):\n itemstats: remove quest field\n rl-client/RSProfileType: add DMM Reborn\n rl-client/ImageCapture: use RSProfileType for screenshot naming\n rl-api: expose actor pose anim source setters\n timetracking: don't load notification icons for every panel\n\nRyan (1):\n ItemMapping: Add Tome of Water and Master Scroll Book\n\nSkylerPIlot (2):\n skill calculator: Add Morytania diary shade exp bonus\n skill calculator: Add Urium remains\n\nSteven L (1):\n clues: Add Wizards' Tower fairy ring code to cryptic clue (#13977)\n\nThePharros (1):\n menu swapper: add desert amulet 4\n\nTheStonedTurtle (2):\n itemstats: Add Corrupted Paddlefish\n CrypticClue: Fix hosidius fruit store crates highlighting (#14051)\n\nTrevor Engen (1):\n slayer: Change moss giants task icon to mossy key (#13962)\n\nVetricci (6):\n item mapping: add combat achievement slayer helm variants\n itemstats: Add new Gauntlet food\n roof removal: fix Varrock Castle gallery\n roof removal: fix eastern Dark Beast area\n roof removal: add overrides for Prifddinas\n skillcalculator: Add new amethyst items (#13890)\n\nemerald000 (1):\n boss timers: Change Grotesque Guardians timer to 5 minutes (#13893)\n\npilino1234 (2):\n skillcalculator: Add Camdozaal activities\n worldmap: Add mining spots in Ruins of Camdozaal\n
\n"}}}]);
+//# sourceMappingURL=147.052f8958.chunk.js.map
\ No newline at end of file
diff --git a/static/js/147.03ec8078.chunk.js.map b/static/js/147.052f8958.chunk.js.map
similarity index 99%
rename from static/js/147.03ec8078.chunk.js.map
rename to static/js/147.052f8958.chunk.js.map
index 1834694b9..8e6d3873e 100644
--- a/static/js/147.03ec8078.chunk.js.map
+++ b/static/js/147.052f8958.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-09-06-10-00-1.7.22-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qGAAqG,OAAS,SAAS,KAAO","file":"static/js/147.03ec8078.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.22 Release\",\"description\":\"Interact highlight plugin, improved Slayer and Implings highlighting, and other features and fixes\",\"author\":\"Jordan\",\"body\":\"We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover\\nover and interact with.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Demonstration of the Interaction Highlight plugin at the Grand Exchange\\n
\\nLogin and logout messages for friends and friends chat chanels no longer appear for world hops.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Slayer and Implings plugins now use the same system for highlighting as the NPC Indicators\\nplugin, allowing configurable hull/tile/outline overlays to be drawn. Note: this currently\\nrequires the NPC Indicators plugin to be enabled, we will be removing this dependency in the\\nfuture. \\nThe NPC Indicators plugin now has a separate fill color option, allowing the fill and border\\ncolors to be fully customizable \\nWe've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports \\nTo match features available in the Steam OldSchool RuneScape client, we have enabled the Antidrag\\nplugin in PvP scenarios, and we've increased the walk click distance. \\nLoot Tracker entries now display unit price of item stacks in their tooltips \\nThe new combat achievement slayer helmet variations are now supported in the Slayer and Clue\\nScroll plugins \\nThe wilderness level vanilla widget has been made moveable \\nSwap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4 \\nThe burner timers of the POH plugin have been fixed to be more accurate \\nThe expanded side panel is now remembered and restored when restoring the sidebar \\nUI tooltips on MacOS are no longer cut off by the game screen \\nThe Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\\ninstances such as quest instances \\nThe Grotesque Guardians instance timer has been changed to 5 minutes \\nThe Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest \\nThe Woodcutting plugin no longer shows respawn timers for POH construction trees \\nThe mining plugin now shows respawn timers for Barronite ore and deposits \\nThe XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 20 contributors this release!
\\nAdam (45):\\n chat commands: use script event for loading col log pets\\n clues: fix Shayzien Infirmary clue challenge\\n chat commands: fix parsing nightmare nb\\n api: remove many unused projectile ids\\n api: fix naming of menuoptionclicked params\\n chat commands: fix parsing nightmare pb\\n Add interact highlight plugin\\n loot tracker: add ruins of camdozaal vault lockboxes\\n poh: fix burner overlay timers\\n api: add menu location and size accessors\\n hiscore: switch to dmmt hiscores\\n antidrag: enable in pvp\\n http service: add pets list length check\\n widgetoverlay: support detached overlays\\n slayer plugin: use npchiglight for task highlights\\n redis pool: don't reuse broken jedis instances\\n interact highlight: set overlay priority to high\\n widget overlay: rebuild overlay layers when xp tracker moves\\n widget overlay: lower priority of oxygen and hp interfaces\\n npc indicators: add fill color config\\n woodcutting: remove respawn timers from construction trees\\n ping: add macos support for icmp ping\\n config manager: fsync temp config file\\n clientloader: fix loading classes in packages\\n clientui: fix restoring sidepanel when expanding sidebar\\n api: add type parameter to Comparable\\n chat channel: fix join/leave world hop detection\\n xp updater: don't send updates for dmm, leagues, or beta worlds\\n chat commands: rename tob story mode to entry mode\\n npc indicators: allow plugins to specify highlight styles\\n implings plugin: use npc indicators for impling overlay\\n chat commands: update to parse new adv log pb counters\\n ge: fix detecting dmmt world type\\n Update world types for seasonal deadman\\n world hopper: set activity tooltip on world list\\n overlay: only layout widget overlays if the preferred location is set\\n world hopper: bubble up mouse events from activity label\\n loot tracker: add world id to loot record for dmmt\\n use maven's native reproducible build support\\n logback: add duplicate exception filter\\n api: flatten model uvs\\n wiki: move icon to match vanilla position\\n api: make getCanvasTilePoly work on multi-tile npcs\\n pom: remove source/target configuration on maven-compiler-plugin\\n ui: force heavyweight tooltips on macos\\n\\nAdam Davies (1):\\n mining: Add barronite ore and deposits\\n\\nBenMortensenTTS (1):\\n loot tracker: add rogues' chest\\n\\nChristian (1):\\n menu swapper: add placeholder withdraw swap\\n\\nCyborger1 (1):\\n text: don't remove double spaces in toJagexName\\n\\nEirik Leikvoll (1):\\n interact highlight: fix auto retaliate highlight color\\n\\nHydrox6 (21):\\n world map: correct locations of quest markers (#13960)\\n client: update various wordings to use "signed in/out" for RL accounts\\n ground items: make loot beams work with only show loot\\n roof removal: fix some roof bleed in Prifddinas\\n roof removal: add overrides for Mage Arena\\n roof removal: add overrides for Lighthouse during Horror from the Deep\\n clues: remove non-existent clues\\n roof removal: add overrides for redwoods\\n roof removal: add overrides for port sarim's boats\\n roof removal: add overrides for entrana's boat\\n roof removal: fix roof collisions at ranging guild\\n roof removal: add overrides for the boat next to morytania's farm\\n roof removal: add overrides for dorgesh-kaan\\n roof removal: add overrides for the temple of light\\n roof removal: add overrides for fossil island underwater\\n roof removal: add overrides for waterbirth island dungeon\\n roof removal: fix ardougne castle 1st floor\\n roof removal: properly account for instances when applying overrides\\n loot tracker: add ea display to tooltips\\n loot tracker: don't show unneeded tooltip lines for coins and platinum\\n xp globes: account for progress arc width when deciding overlay bounds\\n\\nIllya Myshakov (1):\\n chat commands: use rl format message for pets\\n\\nJordan Atwood (6):\\n banktags: Fix bank scroll height with separators hidden (#13723)\\n Revert "XpInfoBox: Give stats panel equal column widths"\\n ItemMapping: Add combat achievement rewards variations\\n slayer: Support combat achievement slayer helms\\n clues: Support combat achievement slayer helms\\n roof removal: Fix Ardougne monastery\\n\\nJoshS (1):\\n skill calc: add Magic Essence Potion\\n\\nMax Weber (5):\\n itemstats: remove quest field\\n rl-client/RSProfileType: add DMM Reborn\\n rl-client/ImageCapture: use RSProfileType for screenshot naming\\n rl-api: expose actor pose anim source setters\\n timetracking: don't load notification icons for every panel\\n\\nRyan (1):\\n ItemMapping: Add Tome of Water and Master Scroll Book\\n\\nSkylerPIlot (2):\\n skill calculator: Add Morytania diary shade exp bonus\\n skill calculator: Add Urium remains\\n\\nSteven L (1):\\n clues: Add Wizards' Tower fairy ring code to cryptic clue (#13977)\\n\\nThePharros (1):\\n menu swapper: add desert amulet 4\\n\\nTheStonedTurtle (2):\\n itemstats: Add Corrupted Paddlefish\\n CrypticClue: Fix hosidius fruit store crates highlighting (#14051)\\n\\nTrevor Engen (1):\\n slayer: Change moss giants task icon to mossy key (#13962)\\n\\nVetricci (6):\\n item mapping: add combat achievement slayer helm variants\\n itemstats: Add new Gauntlet food\\n roof removal: fix Varrock Castle gallery\\n roof removal: fix eastern Dark Beast area\\n roof removal: add overrides for Prifddinas\\n skillcalculator: Add new amethyst items (#13890)\\n\\nemerald000 (1):\\n boss timers: Change Grotesque Guardians timer to 5 minutes (#13893)\\n\\npilino1234 (2):\\n skillcalculator: Add Camdozaal activities\\n worldmap: Add mining spots in Ruins of Camdozaal\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-09-06-10-00-1.7.22-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qGAAqG,OAAS,SAAS,KAAO","file":"static/js/147.052f8958.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.22 Release\",\"description\":\"Interact highlight plugin, improved Slayer and Implings highlighting, and other features and fixes\",\"author\":\"Jordan\",\"body\":\"We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover\\nover and interact with.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Demonstration of the Interaction Highlight plugin at the Grand Exchange\\n
\\nLogin and logout messages for friends and friends chat chanels no longer appear for world hops.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Slayer and Implings plugins now use the same system for highlighting as the NPC Indicators\\nplugin, allowing configurable hull/tile/outline overlays to be drawn. Note: this currently\\nrequires the NPC Indicators plugin to be enabled, we will be removing this dependency in the\\nfuture. \\nThe NPC Indicators plugin now has a separate fill color option, allowing the fill and border\\ncolors to be fully customizable \\nWe've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports \\nTo match features available in the Steam OldSchool RuneScape client, we have enabled the Antidrag\\nplugin in PvP scenarios, and we've increased the walk click distance. \\nLoot Tracker entries now display unit price of item stacks in their tooltips \\nThe new combat achievement slayer helmet variations are now supported in the Slayer and Clue\\nScroll plugins \\nThe wilderness level vanilla widget has been made moveable \\nSwap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4 \\nThe burner timers of the POH plugin have been fixed to be more accurate \\nThe expanded side panel is now remembered and restored when restoring the sidebar \\nUI tooltips on MacOS are no longer cut off by the game screen \\nThe Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\\ninstances such as quest instances \\nThe Grotesque Guardians instance timer has been changed to 5 minutes \\nThe Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest \\nThe Woodcutting plugin no longer shows respawn timers for POH construction trees \\nThe mining plugin now shows respawn timers for Barronite ore and deposits \\nThe XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 20 contributors this release!
\\nAdam (45):\\n chat commands: use script event for loading col log pets\\n clues: fix Shayzien Infirmary clue challenge\\n chat commands: fix parsing nightmare nb\\n api: remove many unused projectile ids\\n api: fix naming of menuoptionclicked params\\n chat commands: fix parsing nightmare pb\\n Add interact highlight plugin\\n loot tracker: add ruins of camdozaal vault lockboxes\\n poh: fix burner overlay timers\\n api: add menu location and size accessors\\n hiscore: switch to dmmt hiscores\\n antidrag: enable in pvp\\n http service: add pets list length check\\n widgetoverlay: support detached overlays\\n slayer plugin: use npchiglight for task highlights\\n redis pool: don't reuse broken jedis instances\\n interact highlight: set overlay priority to high\\n widget overlay: rebuild overlay layers when xp tracker moves\\n widget overlay: lower priority of oxygen and hp interfaces\\n npc indicators: add fill color config\\n woodcutting: remove respawn timers from construction trees\\n ping: add macos support for icmp ping\\n config manager: fsync temp config file\\n clientloader: fix loading classes in packages\\n clientui: fix restoring sidepanel when expanding sidebar\\n api: add type parameter to Comparable\\n chat channel: fix join/leave world hop detection\\n xp updater: don't send updates for dmm, leagues, or beta worlds\\n chat commands: rename tob story mode to entry mode\\n npc indicators: allow plugins to specify highlight styles\\n implings plugin: use npc indicators for impling overlay\\n chat commands: update to parse new adv log pb counters\\n ge: fix detecting dmmt world type\\n Update world types for seasonal deadman\\n world hopper: set activity tooltip on world list\\n overlay: only layout widget overlays if the preferred location is set\\n world hopper: bubble up mouse events from activity label\\n loot tracker: add world id to loot record for dmmt\\n use maven's native reproducible build support\\n logback: add duplicate exception filter\\n api: flatten model uvs\\n wiki: move icon to match vanilla position\\n api: make getCanvasTilePoly work on multi-tile npcs\\n pom: remove source/target configuration on maven-compiler-plugin\\n ui: force heavyweight tooltips on macos\\n\\nAdam Davies (1):\\n mining: Add barronite ore and deposits\\n\\nBenMortensenTTS (1):\\n loot tracker: add rogues' chest\\n\\nChristian (1):\\n menu swapper: add placeholder withdraw swap\\n\\nCyborger1 (1):\\n text: don't remove double spaces in toJagexName\\n\\nEirik Leikvoll (1):\\n interact highlight: fix auto retaliate highlight color\\n\\nHydrox6 (21):\\n world map: correct locations of quest markers (#13960)\\n client: update various wordings to use "signed in/out" for RL accounts\\n ground items: make loot beams work with only show loot\\n roof removal: fix some roof bleed in Prifddinas\\n roof removal: add overrides for Mage Arena\\n roof removal: add overrides for Lighthouse during Horror from the Deep\\n clues: remove non-existent clues\\n roof removal: add overrides for redwoods\\n roof removal: add overrides for port sarim's boats\\n roof removal: add overrides for entrana's boat\\n roof removal: fix roof collisions at ranging guild\\n roof removal: add overrides for the boat next to morytania's farm\\n roof removal: add overrides for dorgesh-kaan\\n roof removal: add overrides for the temple of light\\n roof removal: add overrides for fossil island underwater\\n roof removal: add overrides for waterbirth island dungeon\\n roof removal: fix ardougne castle 1st floor\\n roof removal: properly account for instances when applying overrides\\n loot tracker: add ea display to tooltips\\n loot tracker: don't show unneeded tooltip lines for coins and platinum\\n xp globes: account for progress arc width when deciding overlay bounds\\n\\nIllya Myshakov (1):\\n chat commands: use rl format message for pets\\n\\nJordan Atwood (6):\\n banktags: Fix bank scroll height with separators hidden (#13723)\\n Revert "XpInfoBox: Give stats panel equal column widths"\\n ItemMapping: Add combat achievement rewards variations\\n slayer: Support combat achievement slayer helms\\n clues: Support combat achievement slayer helms\\n roof removal: Fix Ardougne monastery\\n\\nJoshS (1):\\n skill calc: add Magic Essence Potion\\n\\nMax Weber (5):\\n itemstats: remove quest field\\n rl-client/RSProfileType: add DMM Reborn\\n rl-client/ImageCapture: use RSProfileType for screenshot naming\\n rl-api: expose actor pose anim source setters\\n timetracking: don't load notification icons for every panel\\n\\nRyan (1):\\n ItemMapping: Add Tome of Water and Master Scroll Book\\n\\nSkylerPIlot (2):\\n skill calculator: Add Morytania diary shade exp bonus\\n skill calculator: Add Urium remains\\n\\nSteven L (1):\\n clues: Add Wizards' Tower fairy ring code to cryptic clue (#13977)\\n\\nThePharros (1):\\n menu swapper: add desert amulet 4\\n\\nTheStonedTurtle (2):\\n itemstats: Add Corrupted Paddlefish\\n CrypticClue: Fix hosidius fruit store crates highlighting (#14051)\\n\\nTrevor Engen (1):\\n slayer: Change moss giants task icon to mossy key (#13962)\\n\\nVetricci (6):\\n item mapping: add combat achievement slayer helm variants\\n itemstats: Add new Gauntlet food\\n roof removal: fix Varrock Castle gallery\\n roof removal: fix eastern Dark Beast area\\n roof removal: add overrides for Prifddinas\\n skillcalculator: Add new amethyst items (#13890)\\n\\nemerald000 (1):\\n boss timers: Change Grotesque Guardians timer to 5 minutes (#13893)\\n\\npilino1234 (2):\\n skillcalculator: Add Camdozaal activities\\n worldmap: Add mining spots in Ruins of Camdozaal\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/148.f2b85eba.chunk.js b/static/js/148.a7e8cec7.chunk.js
similarity index 98%
rename from static/js/148.f2b85eba.chunk.js
rename to static/js/148.a7e8cec7.chunk.js
index 926dd56ad..8ecd881f4 100644
--- a/static/js/148.f2b85eba.chunk.js
+++ b/static/js/148.a7e8cec7.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[148],{423:function(e,n){e.exports={title:"1.7.23, 1.7.24, and 1.7.25 Release",description:"All-color HD healthbars, ground marker fill opacity, and Apple M1 launcher",author:"Jordan",body:'The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.
\n\n\n\nNightmare health bars \nZalcano health bar \n \n \n\n\n \n \n \n \n
\nGround markers now have a configurable fill opacity.
\n\n\n\n0 fill opacity markers \n50 fill opacity markers (default) \n150 fill opacity markers \n \n \n\n\n \n \n \n \n \n
\nMacOS M1 Launcher \nMacOS users: A native launcher for the Apple M1 is now available! If you have a Mac with an Apple M1\nprocessor we recommend reinstalling RuneLite with the new launcher, which gives better performance.\nDownload it here .
\nThere are also several smaller improvements and bug fixes, including:
\n\nDinh\'s bulwark special attacks are now tracked via the Special Attack Counter plugin \nInventory tags now appear on items in the gravestone collection interface \nThe cannon plugin is more reliable about detecting your cannon placement in situations where your\nanimations are interrupted. \nNPC model outlines are no longer a few pixels mis-aligned when rendered on GPU \nMinimap ground marker overlays have had their positioning corrected \nThe Clue Scroll plugin now displays solutions for the X Marks the Spot quest steps \n!kc cg
is now a recognized abbreviation for Corrupted Gauntlet in the Chat Commands plugin \nThe Screenshot plugin can now take screenshots of clan member deaths. Additionally, for collection\nlog slot screenshots, it will capture the popup if your game settings are set to show one. \nDucks are now highlighted during bird tasks in the Slayer plugin \nThe Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon \nCannon spots in the Jormungand prison have been added to the Cannon plugin \nThe bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\nplugin \nThe tag tab tab of the Bank Tags plugin now has a working scrollbar \nThe Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes \nThe Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\nthat of the Varrock platebody \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (31):\n npc highlight: fix npe rendering minimap names on npcs with no name\n Move npc highlight overlay to core\n corp: use npc overlay service\n runecraft: use npc overlay service\n external plugins: require assertions when loading builtin plugins\n npc minimap overlay: use unmodified highlight color\n npc overlay: set lower priority on npc change and despawn handlers\n widget overlay: correct raids points overlay position\n music: check game state before applying sliders on startup\n npc overlay: clear highlighted npcs on logout\n client: update jna to 5.9.0\n api: add model vertex normals\n api: add scene tile shapes, underlay, and overlay ids\n ground markers: add fill opacity config\n xtea: skip unknown map regions\n xp tracker overlay: treat counter=off progressbar=off as hidden\n Update okhttp to 3.14.9\n http-service: assign name to scheduler thread\n api: remove cachedModels2 and nodecache setters\n perspective: add gpu projection for modelToCanvas\n perspective: refactor localToCanvas\n api: add runtime jar\n api: mark runtime classes as final\n api: move Favour to achievementdiary plugin\n api: add clan ids and accessors\n spec counter: add Dinh\'s bulwark\n Fix ground marker minimap overlay position\n item charges: fix rof tracking with varrock platebody\n ui: recompute minimum size after frame restore\n api: add widget classes to runtime exclusions\n hiscore: switch to league hiscores\n\nArnaud Peralta (3):\n roof removal: Add Juliet house overrides (#14108)\n inventory tags: Show on gravestone collection interface (#14113)\n roof removal: Add Weiss override (#14177)\n\nBrett (1):\n slayer: Add duck as alternative for bird task (#14224)\n\nChristian Bull (1):\n agility shortcut: include grapple rocks in observatory shortcut\n\nHablapatabla (1):\n roof removal: Add Barbarian village overrides\n\nHydrox6 (6):\n interface styles: add HD healthbars for the rest of the healtbars\n prayer: shorten hd prayer bar to fit with updated health bars\n cannon: make onChatMessage use if/else\n achievementdiary: correct spelling of shortcut\n cannon: update cannon location when interacting with the player\'s cannon\n gpu: display device and driver being used during plugin startup\n\nJordan Atwood (12):\n idle notifier: Support filling water vessels, Shades of Mort\'ton\n widgets: Add POH treasure chest widget IDs\n client: Support POH treasure chest inventory overlays\n status bars: Fix left bar Y offset\n status bars: Clean up rendering code\n api: Add getMirrorPoint to WorldPoint API\n skybox: Show surface color while in Prifddinas\n skill calculator: Code cleanup\n skill calculator: Define actions and bonuses in Java\n skill calculator: Add ItemSkillAction interface\n chat colors: Add engine message recoloring\n cluescrolls: Add X Marks The Spot quest solutions\n\nLlemonDuck (1):\n chatcommands: cg shorthand for corrupted gauntlet\n\nMax Weber (6):\n rl-client: add plugin conflict support\n Revert "rl-client: add plugin conflict support"\n rl-client: add plugin conflict support\n config: clarify plugin conflict list\n rl-client/RSProfileType: add Shattered Relics profile type\n rl-client: use vanilla ItemComposition cache\n\nPatrick Watts (2):\n api: Add contains methods to WorldPoint and WorldArea\n screenshot: Add clan member death screenshotting (#14052)\n\nTal Skverer (2):\n cannon: Add Dagganoth spots in Jormungand prison\n cannon: Increase max distance for cannon overlays\n\nVic Segers (1):\n itemstats: Add jangerberries prayer point restore (#14101)\n\ndekvall (1):\n skill calculator: Add common thieving chests\n\nevaan (1):\n skill calculator: Add bonecrusher prayer bonus\n\ngeheur (2):\n bank tags: Fix tag tab tab scroll height (#13761)\n menu swapper: add extra op swapping for deposit box\n\nneatclient12345 (1):\n skill calculator: Fix grammar 0-action selections (#13995)\n\nsuperiorser9 (1):\n screenshot: Capture collection log popup notifications\n
\n',image:"/img/blog/1.7.25-Release/nightmare-health-bar1.png"}}}]);
-//# sourceMappingURL=148.f2b85eba.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[148],{424:function(e,n){e.exports={title:"1.7.23, 1.7.24, and 1.7.25 Release",description:"All-color HD healthbars, ground marker fill opacity, and Apple M1 launcher",author:"Jordan",body:'The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.
\n\n\n\nNightmare health bars \nZalcano health bar \n \n \n\n\n \n \n \n \n
\nGround markers now have a configurable fill opacity.
\n\n\n\n0 fill opacity markers \n50 fill opacity markers (default) \n150 fill opacity markers \n \n \n\n\n \n \n \n \n \n
\nMacOS M1 Launcher \nMacOS users: A native launcher for the Apple M1 is now available! If you have a Mac with an Apple M1\nprocessor we recommend reinstalling RuneLite with the new launcher, which gives better performance.\nDownload it here .
\nThere are also several smaller improvements and bug fixes, including:
\n\nDinh\'s bulwark special attacks are now tracked via the Special Attack Counter plugin \nInventory tags now appear on items in the gravestone collection interface \nThe cannon plugin is more reliable about detecting your cannon placement in situations where your\nanimations are interrupted. \nNPC model outlines are no longer a few pixels mis-aligned when rendered on GPU \nMinimap ground marker overlays have had their positioning corrected \nThe Clue Scroll plugin now displays solutions for the X Marks the Spot quest steps \n!kc cg
is now a recognized abbreviation for Corrupted Gauntlet in the Chat Commands plugin \nThe Screenshot plugin can now take screenshots of clan member deaths. Additionally, for collection\nlog slot screenshots, it will capture the popup if your game settings are set to show one. \nDucks are now highlighted during bird tasks in the Slayer plugin \nThe Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon \nCannon spots in the Jormungand prison have been added to the Cannon plugin \nThe bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\nplugin \nThe tag tab tab of the Bank Tags plugin now has a working scrollbar \nThe Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes \nThe Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\nthat of the Varrock platebody \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (31):\n npc highlight: fix npe rendering minimap names on npcs with no name\n Move npc highlight overlay to core\n corp: use npc overlay service\n runecraft: use npc overlay service\n external plugins: require assertions when loading builtin plugins\n npc minimap overlay: use unmodified highlight color\n npc overlay: set lower priority on npc change and despawn handlers\n widget overlay: correct raids points overlay position\n music: check game state before applying sliders on startup\n npc overlay: clear highlighted npcs on logout\n client: update jna to 5.9.0\n api: add model vertex normals\n api: add scene tile shapes, underlay, and overlay ids\n ground markers: add fill opacity config\n xtea: skip unknown map regions\n xp tracker overlay: treat counter=off progressbar=off as hidden\n Update okhttp to 3.14.9\n http-service: assign name to scheduler thread\n api: remove cachedModels2 and nodecache setters\n perspective: add gpu projection for modelToCanvas\n perspective: refactor localToCanvas\n api: add runtime jar\n api: mark runtime classes as final\n api: move Favour to achievementdiary plugin\n api: add clan ids and accessors\n spec counter: add Dinh\'s bulwark\n Fix ground marker minimap overlay position\n item charges: fix rof tracking with varrock platebody\n ui: recompute minimum size after frame restore\n api: add widget classes to runtime exclusions\n hiscore: switch to league hiscores\n\nArnaud Peralta (3):\n roof removal: Add Juliet house overrides (#14108)\n inventory tags: Show on gravestone collection interface (#14113)\n roof removal: Add Weiss override (#14177)\n\nBrett (1):\n slayer: Add duck as alternative for bird task (#14224)\n\nChristian Bull (1):\n agility shortcut: include grapple rocks in observatory shortcut\n\nHablapatabla (1):\n roof removal: Add Barbarian village overrides\n\nHydrox6 (6):\n interface styles: add HD healthbars for the rest of the healtbars\n prayer: shorten hd prayer bar to fit with updated health bars\n cannon: make onChatMessage use if/else\n achievementdiary: correct spelling of shortcut\n cannon: update cannon location when interacting with the player\'s cannon\n gpu: display device and driver being used during plugin startup\n\nJordan Atwood (12):\n idle notifier: Support filling water vessels, Shades of Mort\'ton\n widgets: Add POH treasure chest widget IDs\n client: Support POH treasure chest inventory overlays\n status bars: Fix left bar Y offset\n status bars: Clean up rendering code\n api: Add getMirrorPoint to WorldPoint API\n skybox: Show surface color while in Prifddinas\n skill calculator: Code cleanup\n skill calculator: Define actions and bonuses in Java\n skill calculator: Add ItemSkillAction interface\n chat colors: Add engine message recoloring\n cluescrolls: Add X Marks The Spot quest solutions\n\nLlemonDuck (1):\n chatcommands: cg shorthand for corrupted gauntlet\n\nMax Weber (6):\n rl-client: add plugin conflict support\n Revert "rl-client: add plugin conflict support"\n rl-client: add plugin conflict support\n config: clarify plugin conflict list\n rl-client/RSProfileType: add Shattered Relics profile type\n rl-client: use vanilla ItemComposition cache\n\nPatrick Watts (2):\n api: Add contains methods to WorldPoint and WorldArea\n screenshot: Add clan member death screenshotting (#14052)\n\nTal Skverer (2):\n cannon: Add Dagganoth spots in Jormungand prison\n cannon: Increase max distance for cannon overlays\n\nVic Segers (1):\n itemstats: Add jangerberries prayer point restore (#14101)\n\ndekvall (1):\n skill calculator: Add common thieving chests\n\nevaan (1):\n skill calculator: Add bonecrusher prayer bonus\n\ngeheur (2):\n bank tags: Fix tag tab tab scroll height (#13761)\n menu swapper: add extra op swapping for deposit box\n\nneatclient12345 (1):\n skill calculator: Fix grammar 0-action selections (#13995)\n\nsuperiorser9 (1):\n screenshot: Capture collection log popup notifications\n
\n',image:"/img/blog/1.7.25-Release/nightmare-health-bar1.png"}}}]);
+//# sourceMappingURL=148.a7e8cec7.chunk.js.map
\ No newline at end of file
diff --git a/static/js/148.f2b85eba.chunk.js.map b/static/js/148.a7e8cec7.chunk.js.map
similarity index 99%
rename from static/js/148.f2b85eba.chunk.js.map
rename to static/js/148.a7e8cec7.chunk.js.map
index 7594d638a..7100cefd6 100644
--- a/static/js/148.f2b85eba.chunk.js.map
+++ b/static/js/148.a7e8cec7.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-10-06-10-00-1.7.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,qCAAqC,YAAc,6EAA6E,OAAS,SAAS,KAAO,wtPAAswP,MAAQ","file":"static/js/148.f2b85eba.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.23, 1.7.24, and 1.7.25 Release\",\"description\":\"All-color HD healthbars, ground marker fill opacity, and Apple M1 launcher\",\"author\":\"Jordan\",\"body\":\"The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.
\\n\\n\\n\\nNightmare health bars \\nZalcano health bar \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nGround markers now have a configurable fill opacity.
\\n\\n\\n\\n0 fill opacity markers \\n50 fill opacity markers (default) \\n150 fill opacity markers \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nMacOS M1 Launcher \\nMacOS users: A native launcher for the Apple M1 is now available! If you have a Mac with an Apple M1\\nprocessor we recommend reinstalling RuneLite with the new launcher, which gives better performance.\\nDownload it here .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nDinh's bulwark special attacks are now tracked via the Special Attack Counter plugin \\nInventory tags now appear on items in the gravestone collection interface \\nThe cannon plugin is more reliable about detecting your cannon placement in situations where your\\nanimations are interrupted. \\nNPC model outlines are no longer a few pixels mis-aligned when rendered on GPU \\nMinimap ground marker overlays have had their positioning corrected \\nThe Clue Scroll plugin now displays solutions for the X Marks the Spot quest steps \\n!kc cg
is now a recognized abbreviation for Corrupted Gauntlet in the Chat Commands plugin \\nThe Screenshot plugin can now take screenshots of clan member deaths. Additionally, for collection\\nlog slot screenshots, it will capture the popup if your game settings are set to show one. \\nDucks are now highlighted during bird tasks in the Slayer plugin \\nThe Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon \\nCannon spots in the Jormungand prison have been added to the Cannon plugin \\nThe bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\\nplugin \\nThe tag tab tab of the Bank Tags plugin now has a working scrollbar \\nThe Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes \\nThe Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\\nthat of the Varrock platebody \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (31):\\n npc highlight: fix npe rendering minimap names on npcs with no name\\n Move npc highlight overlay to core\\n corp: use npc overlay service\\n runecraft: use npc overlay service\\n external plugins: require assertions when loading builtin plugins\\n npc minimap overlay: use unmodified highlight color\\n npc overlay: set lower priority on npc change and despawn handlers\\n widget overlay: correct raids points overlay position\\n music: check game state before applying sliders on startup\\n npc overlay: clear highlighted npcs on logout\\n client: update jna to 5.9.0\\n api: add model vertex normals\\n api: add scene tile shapes, underlay, and overlay ids\\n ground markers: add fill opacity config\\n xtea: skip unknown map regions\\n xp tracker overlay: treat counter=off progressbar=off as hidden\\n Update okhttp to 3.14.9\\n http-service: assign name to scheduler thread\\n api: remove cachedModels2 and nodecache setters\\n perspective: add gpu projection for modelToCanvas\\n perspective: refactor localToCanvas\\n api: add runtime jar\\n api: mark runtime classes as final\\n api: move Favour to achievementdiary plugin\\n api: add clan ids and accessors\\n spec counter: add Dinh's bulwark\\n Fix ground marker minimap overlay position\\n item charges: fix rof tracking with varrock platebody\\n ui: recompute minimum size after frame restore\\n api: add widget classes to runtime exclusions\\n hiscore: switch to league hiscores\\n\\nArnaud Peralta (3):\\n roof removal: Add Juliet house overrides (#14108)\\n inventory tags: Show on gravestone collection interface (#14113)\\n roof removal: Add Weiss override (#14177)\\n\\nBrett (1):\\n slayer: Add duck as alternative for bird task (#14224)\\n\\nChristian Bull (1):\\n agility shortcut: include grapple rocks in observatory shortcut\\n\\nHablapatabla (1):\\n roof removal: Add Barbarian village overrides\\n\\nHydrox6 (6):\\n interface styles: add HD healthbars for the rest of the healtbars\\n prayer: shorten hd prayer bar to fit with updated health bars\\n cannon: make onChatMessage use if/else\\n achievementdiary: correct spelling of shortcut\\n cannon: update cannon location when interacting with the player's cannon\\n gpu: display device and driver being used during plugin startup\\n\\nJordan Atwood (12):\\n idle notifier: Support filling water vessels, Shades of Mort'ton\\n widgets: Add POH treasure chest widget IDs\\n client: Support POH treasure chest inventory overlays\\n status bars: Fix left bar Y offset\\n status bars: Clean up rendering code\\n api: Add getMirrorPoint to WorldPoint API\\n skybox: Show surface color while in Prifddinas\\n skill calculator: Code cleanup\\n skill calculator: Define actions and bonuses in Java\\n skill calculator: Add ItemSkillAction interface\\n chat colors: Add engine message recoloring\\n cluescrolls: Add X Marks The Spot quest solutions\\n\\nLlemonDuck (1):\\n chatcommands: cg shorthand for corrupted gauntlet\\n\\nMax Weber (6):\\n rl-client: add plugin conflict support\\n Revert "rl-client: add plugin conflict support"\\n rl-client: add plugin conflict support\\n config: clarify plugin conflict list\\n rl-client/RSProfileType: add Shattered Relics profile type\\n rl-client: use vanilla ItemComposition cache\\n\\nPatrick Watts (2):\\n api: Add contains methods to WorldPoint and WorldArea\\n screenshot: Add clan member death screenshotting (#14052)\\n\\nTal Skverer (2):\\n cannon: Add Dagganoth spots in Jormungand prison\\n cannon: Increase max distance for cannon overlays\\n\\nVic Segers (1):\\n itemstats: Add jangerberries prayer point restore (#14101)\\n\\ndekvall (1):\\n skill calculator: Add common thieving chests\\n\\nevaan (1):\\n skill calculator: Add bonecrusher prayer bonus\\n\\ngeheur (2):\\n bank tags: Fix tag tab tab scroll height (#13761)\\n menu swapper: add extra op swapping for deposit box\\n\\nneatclient12345 (1):\\n skill calculator: Fix grammar 0-action selections (#13995)\\n\\nsuperiorser9 (1):\\n screenshot: Capture collection log popup notifications\\n
\\n\",\"image\":\"/img/blog/1.7.25-Release/nightmare-health-bar1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-10-06-10-00-1.7.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,qCAAqC,YAAc,6EAA6E,OAAS,SAAS,KAAO,wtPAAswP,MAAQ","file":"static/js/148.a7e8cec7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.7.23, 1.7.24, and 1.7.25 Release\",\"description\":\"All-color HD healthbars, ground marker fill opacity, and Apple M1 launcher\",\"author\":\"Jordan\",\"body\":\"The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.
\\n\\n\\n\\nNightmare health bars \\nZalcano health bar \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nGround markers now have a configurable fill opacity.
\\n\\n\\n\\n0 fill opacity markers \\n50 fill opacity markers (default) \\n150 fill opacity markers \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nMacOS M1 Launcher \\nMacOS users: A native launcher for the Apple M1 is now available! If you have a Mac with an Apple M1\\nprocessor we recommend reinstalling RuneLite with the new launcher, which gives better performance.\\nDownload it here .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nDinh's bulwark special attacks are now tracked via the Special Attack Counter plugin \\nInventory tags now appear on items in the gravestone collection interface \\nThe cannon plugin is more reliable about detecting your cannon placement in situations where your\\nanimations are interrupted. \\nNPC model outlines are no longer a few pixels mis-aligned when rendered on GPU \\nMinimap ground marker overlays have had their positioning corrected \\nThe Clue Scroll plugin now displays solutions for the X Marks the Spot quest steps \\n!kc cg
is now a recognized abbreviation for Corrupted Gauntlet in the Chat Commands plugin \\nThe Screenshot plugin can now take screenshots of clan member deaths. Additionally, for collection\\nlog slot screenshots, it will capture the popup if your game settings are set to show one. \\nDucks are now highlighted during bird tasks in the Slayer plugin \\nThe Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon \\nCannon spots in the Jormungand prison have been added to the Cannon plugin \\nThe bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\\nplugin \\nThe tag tab tab of the Bank Tags plugin now has a working scrollbar \\nThe Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes \\nThe Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\\nthat of the Varrock platebody \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (31):\\n npc highlight: fix npe rendering minimap names on npcs with no name\\n Move npc highlight overlay to core\\n corp: use npc overlay service\\n runecraft: use npc overlay service\\n external plugins: require assertions when loading builtin plugins\\n npc minimap overlay: use unmodified highlight color\\n npc overlay: set lower priority on npc change and despawn handlers\\n widget overlay: correct raids points overlay position\\n music: check game state before applying sliders on startup\\n npc overlay: clear highlighted npcs on logout\\n client: update jna to 5.9.0\\n api: add model vertex normals\\n api: add scene tile shapes, underlay, and overlay ids\\n ground markers: add fill opacity config\\n xtea: skip unknown map regions\\n xp tracker overlay: treat counter=off progressbar=off as hidden\\n Update okhttp to 3.14.9\\n http-service: assign name to scheduler thread\\n api: remove cachedModels2 and nodecache setters\\n perspective: add gpu projection for modelToCanvas\\n perspective: refactor localToCanvas\\n api: add runtime jar\\n api: mark runtime classes as final\\n api: move Favour to achievementdiary plugin\\n api: add clan ids and accessors\\n spec counter: add Dinh's bulwark\\n Fix ground marker minimap overlay position\\n item charges: fix rof tracking with varrock platebody\\n ui: recompute minimum size after frame restore\\n api: add widget classes to runtime exclusions\\n hiscore: switch to league hiscores\\n\\nArnaud Peralta (3):\\n roof removal: Add Juliet house overrides (#14108)\\n inventory tags: Show on gravestone collection interface (#14113)\\n roof removal: Add Weiss override (#14177)\\n\\nBrett (1):\\n slayer: Add duck as alternative for bird task (#14224)\\n\\nChristian Bull (1):\\n agility shortcut: include grapple rocks in observatory shortcut\\n\\nHablapatabla (1):\\n roof removal: Add Barbarian village overrides\\n\\nHydrox6 (6):\\n interface styles: add HD healthbars for the rest of the healtbars\\n prayer: shorten hd prayer bar to fit with updated health bars\\n cannon: make onChatMessage use if/else\\n achievementdiary: correct spelling of shortcut\\n cannon: update cannon location when interacting with the player's cannon\\n gpu: display device and driver being used during plugin startup\\n\\nJordan Atwood (12):\\n idle notifier: Support filling water vessels, Shades of Mort'ton\\n widgets: Add POH treasure chest widget IDs\\n client: Support POH treasure chest inventory overlays\\n status bars: Fix left bar Y offset\\n status bars: Clean up rendering code\\n api: Add getMirrorPoint to WorldPoint API\\n skybox: Show surface color while in Prifddinas\\n skill calculator: Code cleanup\\n skill calculator: Define actions and bonuses in Java\\n skill calculator: Add ItemSkillAction interface\\n chat colors: Add engine message recoloring\\n cluescrolls: Add X Marks The Spot quest solutions\\n\\nLlemonDuck (1):\\n chatcommands: cg shorthand for corrupted gauntlet\\n\\nMax Weber (6):\\n rl-client: add plugin conflict support\\n Revert "rl-client: add plugin conflict support"\\n rl-client: add plugin conflict support\\n config: clarify plugin conflict list\\n rl-client/RSProfileType: add Shattered Relics profile type\\n rl-client: use vanilla ItemComposition cache\\n\\nPatrick Watts (2):\\n api: Add contains methods to WorldPoint and WorldArea\\n screenshot: Add clan member death screenshotting (#14052)\\n\\nTal Skverer (2):\\n cannon: Add Dagganoth spots in Jormungand prison\\n cannon: Increase max distance for cannon overlays\\n\\nVic Segers (1):\\n itemstats: Add jangerberries prayer point restore (#14101)\\n\\ndekvall (1):\\n skill calculator: Add common thieving chests\\n\\nevaan (1):\\n skill calculator: Add bonecrusher prayer bonus\\n\\ngeheur (2):\\n bank tags: Fix tag tab tab scroll height (#13761)\\n menu swapper: add extra op swapping for deposit box\\n\\nneatclient12345 (1):\\n skill calculator: Fix grammar 0-action selections (#13995)\\n\\nsuperiorser9 (1):\\n screenshot: Capture collection log popup notifications\\n
\\n\",\"image\":\"/img/blog/1.7.25-Release/nightmare-health-bar1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/149.9c5aadb8.chunk.js b/static/js/149.c09ba74a.chunk.js
similarity index 97%
rename from static/js/149.9c5aadb8.chunk.js
rename to static/js/149.c09ba74a.chunk.js
index de210c112..eebf70cb9 100644
--- a/static/js/149.9c5aadb8.chunk.js
+++ b/static/js/149.c09ba74a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[149],{424:function(e,n){e.exports={title:"1.8.0 Release",description:"Uncapped frame rate",author:"Adam",body:'The GPU plugin has a new Unlock FPS
option which disables the 50 FPS hard cap on the client and allows the client to render frames at the maximum rate supported by your system. For most users, this will be 60 FPS, unless you have a display and GPU which supports a higher refresh rate. The higher frame rate is applied to camera movements, like how the steam and mobile clients work, which results in a smoother feel when moving the camera with mouse or keyboard input.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Unlocked FPS\n
\nMacOS M1 Launcher \nIf you missed the previous blog, a native launcher for the Apple M1/M1 Pro/M1 Max is now available. If you have one of these systems and haven\'t already, we highly recommend downloading the newer launcher here .
\nThere are also several smaller improvements and bug fixes, including:
\n\nSelected bank tag tabs no longer get applied to shared storage. You may additionally also search shared storage using bank tag names when a bank tag is selected \nThe actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp \nThe !pets
command now correctly recognizes pet chinchompas \nThe Shared Storage button no longer overlaps the bank capacity interface \nA bug causing HD healthbars widths to be incorrect was fixed \nLookup
was added to player names in the group ironman group list \n!kc gg
and ggs
short names were added for Grotesque Guardians \nA bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level \nThe spec counter now has a configuration option for the bulwark special attack threshold \nThe black Loading
and Connection lost
boxes now get drawn correctly in the upper left when GPU is enabled \nThe prayer dose overlay now correctly computes how much prayer sanfew serums restore \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (21):\n api: make HashTable implement iterable\n game event manager: send itemcontainer change events for all containers\n api: add getItemContainer(int)\n api: import model bottomY\n gpu: improve model visible check\n hiscore: simplify lookup menu option add logic\n wiki: fix positioning wiki icon with wiki entity lookup off\n api: add clan id to clan channel changed event\n widget overlay: update gwd kc position\n banktags: fix active tag being applied to shared storage\n inventoryid: add gim shared storage inventories\n prayer: fix sanfew prayer dose indicator\n skillcalc: only recompute xp bonus values once when bonus changes\n skillcalc: round bonus xp to nearest tenth\n skillcalc: use double precision for xp\n Add runelite_callback opcode to cache\n gpu: fix drawing loading and connection lost boxes\n skillcalc: use fixed point arithmetic for xp calculations\n Bump to 1.8.0-SNAPSHOT\n client loader: add new jagex certificate\n gpu: add uncap fps option\n\nBrastaSauce (1):\n hiscore: Add player lookup in group ironman tab\n\nBrianSchimert (1):\n chat commands: Add shorthand names for Grotesque Guardians (#14305)\n\nHydrox6 (3):\n api: add group ironman account types\n skill calculator: fix incorrect icon for Hespori\n interface styles: fix incorrectly sized 140px healthbar\n\nIllya Myshakov (1):\n chat commands: fix incorrect pet chin ID\n\nKerzyte (1):\n skill calculator: minor xp corrections\n\nTal s (1):\n woodcutting: Add clue nest notification config (#14132)\n\nTheStonedTurtle (1):\n spec counter: add bulwark threshold config\n\nlkmrrs (1):\n skill calculator: Add javelins to fletching calculator (#14317)\n\nmelkypie (2):\n banktags: fix bank equipment button and item count spacing\n banktags: fix group storage button location\n\nshmeeps (1):\n prayer: add blighted super restore\n
\n'}}}]);
-//# sourceMappingURL=149.9c5aadb8.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[149],{425:function(e,n){e.exports={title:"1.8.0 Release",description:"Uncapped frame rate",author:"Adam",body:'The GPU plugin has a new Unlock FPS
option which disables the 50 FPS hard cap on the client and allows the client to render frames at the maximum rate supported by your system. For most users, this will be 60 FPS, unless you have a display and GPU which supports a higher refresh rate. The higher frame rate is applied to camera movements, like how the steam and mobile clients work, which results in a smoother feel when moving the camera with mouse or keyboard input.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: Unlocked FPS\n
\nMacOS M1 Launcher \nIf you missed the previous blog, a native launcher for the Apple M1/M1 Pro/M1 Max is now available. If you have one of these systems and haven\'t already, we highly recommend downloading the newer launcher here .
\nThere are also several smaller improvements and bug fixes, including:
\n\nSelected bank tag tabs no longer get applied to shared storage. You may additionally also search shared storage using bank tag names when a bank tag is selected \nThe actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp \nThe !pets
command now correctly recognizes pet chinchompas \nThe Shared Storage button no longer overlaps the bank capacity interface \nA bug causing HD healthbars widths to be incorrect was fixed \nLookup
was added to player names in the group ironman group list \n!kc gg
and ggs
short names were added for Grotesque Guardians \nA bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level \nThe spec counter now has a configuration option for the bulwark special attack threshold \nThe black Loading
and Connection lost
boxes now get drawn correctly in the upper left when GPU is enabled \nThe prayer dose overlay now correctly computes how much prayer sanfew serums restore \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (21):\n api: make HashTable implement iterable\n game event manager: send itemcontainer change events for all containers\n api: add getItemContainer(int)\n api: import model bottomY\n gpu: improve model visible check\n hiscore: simplify lookup menu option add logic\n wiki: fix positioning wiki icon with wiki entity lookup off\n api: add clan id to clan channel changed event\n widget overlay: update gwd kc position\n banktags: fix active tag being applied to shared storage\n inventoryid: add gim shared storage inventories\n prayer: fix sanfew prayer dose indicator\n skillcalc: only recompute xp bonus values once when bonus changes\n skillcalc: round bonus xp to nearest tenth\n skillcalc: use double precision for xp\n Add runelite_callback opcode to cache\n gpu: fix drawing loading and connection lost boxes\n skillcalc: use fixed point arithmetic for xp calculations\n Bump to 1.8.0-SNAPSHOT\n client loader: add new jagex certificate\n gpu: add uncap fps option\n\nBrastaSauce (1):\n hiscore: Add player lookup in group ironman tab\n\nBrianSchimert (1):\n chat commands: Add shorthand names for Grotesque Guardians (#14305)\n\nHydrox6 (3):\n api: add group ironman account types\n skill calculator: fix incorrect icon for Hespori\n interface styles: fix incorrectly sized 140px healthbar\n\nIllya Myshakov (1):\n chat commands: fix incorrect pet chin ID\n\nKerzyte (1):\n skill calculator: minor xp corrections\n\nTal s (1):\n woodcutting: Add clue nest notification config (#14132)\n\nTheStonedTurtle (1):\n spec counter: add bulwark threshold config\n\nlkmrrs (1):\n skill calculator: Add javelins to fletching calculator (#14317)\n\nmelkypie (2):\n banktags: fix bank equipment button and item count spacing\n banktags: fix group storage button location\n\nshmeeps (1):\n prayer: add blighted super restore\n
\n'}}}]);
+//# sourceMappingURL=149.c09ba74a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/149.9c5aadb8.chunk.js.map b/static/js/149.c09ba74a.chunk.js.map
similarity index 98%
rename from static/js/149.9c5aadb8.chunk.js.map
rename to static/js/149.c09ba74a.chunk.js.map
index d2e678f8e..bd346f02c 100644
--- a/static/js/149.9c5aadb8.chunk.js.map
+++ b/static/js/149.c09ba74a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-10-28-19-00-1.8.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/149.9c5aadb8.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.0 Release\",\"description\":\"Uncapped frame rate\",\"author\":\"Adam\",\"body\":\"The GPU plugin has a new Unlock FPS
option which disables the 50 FPS hard cap on the client and allows the client to render frames at the maximum rate supported by your system. For most users, this will be 60 FPS, unless you have a display and GPU which supports a higher refresh rate. The higher frame rate is applied to camera movements, like how the steam and mobile clients work, which results in a smoother feel when moving the camera with mouse or keyboard input.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Unlocked FPS\\n
\\nMacOS M1 Launcher \\nIf you missed the previous blog, a native launcher for the Apple M1/M1 Pro/M1 Max is now available. If you have one of these systems and haven't already, we highly recommend downloading the newer launcher here .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSelected bank tag tabs no longer get applied to shared storage. You may additionally also search shared storage using bank tag names when a bank tag is selected \\nThe actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp \\nThe !pets
command now correctly recognizes pet chinchompas \\nThe Shared Storage button no longer overlaps the bank capacity interface \\nA bug causing HD healthbars widths to be incorrect was fixed \\nLookup
was added to player names in the group ironman group list \\n!kc gg
and ggs
short names were added for Grotesque Guardians \\nA bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level \\nThe spec counter now has a configuration option for the bulwark special attack threshold \\nThe black Loading
and Connection lost
boxes now get drawn correctly in the upper left when GPU is enabled \\nThe prayer dose overlay now correctly computes how much prayer sanfew serums restore \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (21):\\n api: make HashTable implement iterable\\n game event manager: send itemcontainer change events for all containers\\n api: add getItemContainer(int)\\n api: import model bottomY\\n gpu: improve model visible check\\n hiscore: simplify lookup menu option add logic\\n wiki: fix positioning wiki icon with wiki entity lookup off\\n api: add clan id to clan channel changed event\\n widget overlay: update gwd kc position\\n banktags: fix active tag being applied to shared storage\\n inventoryid: add gim shared storage inventories\\n prayer: fix sanfew prayer dose indicator\\n skillcalc: only recompute xp bonus values once when bonus changes\\n skillcalc: round bonus xp to nearest tenth\\n skillcalc: use double precision for xp\\n Add runelite_callback opcode to cache\\n gpu: fix drawing loading and connection lost boxes\\n skillcalc: use fixed point arithmetic for xp calculations\\n Bump to 1.8.0-SNAPSHOT\\n client loader: add new jagex certificate\\n gpu: add uncap fps option\\n\\nBrastaSauce (1):\\n hiscore: Add player lookup in group ironman tab\\n\\nBrianSchimert (1):\\n chat commands: Add shorthand names for Grotesque Guardians (#14305)\\n\\nHydrox6 (3):\\n api: add group ironman account types\\n skill calculator: fix incorrect icon for Hespori\\n interface styles: fix incorrectly sized 140px healthbar\\n\\nIllya Myshakov (1):\\n chat commands: fix incorrect pet chin ID\\n\\nKerzyte (1):\\n skill calculator: minor xp corrections\\n\\nTal s (1):\\n woodcutting: Add clue nest notification config (#14132)\\n\\nTheStonedTurtle (1):\\n spec counter: add bulwark threshold config\\n\\nlkmrrs (1):\\n skill calculator: Add javelins to fletching calculator (#14317)\\n\\nmelkypie (2):\\n banktags: fix bank equipment button and item count spacing\\n banktags: fix group storage button location\\n\\nshmeeps (1):\\n prayer: add blighted super restore\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-10-28-19-00-1.8.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/149.c09ba74a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.0 Release\",\"description\":\"Uncapped frame rate\",\"author\":\"Adam\",\"body\":\"The GPU plugin has a new Unlock FPS
option which disables the 50 FPS hard cap on the client and allows the client to render frames at the maximum rate supported by your system. For most users, this will be 60 FPS, unless you have a display and GPU which supports a higher refresh rate. The higher frame rate is applied to camera movements, like how the steam and mobile clients work, which results in a smoother feel when moving the camera with mouse or keyboard input.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: Unlocked FPS\\n
\\nMacOS M1 Launcher \\nIf you missed the previous blog, a native launcher for the Apple M1/M1 Pro/M1 Max is now available. If you have one of these systems and haven't already, we highly recommend downloading the newer launcher here .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSelected bank tag tabs no longer get applied to shared storage. You may additionally also search shared storage using bank tag names when a bank tag is selected \\nThe actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp \\nThe !pets
command now correctly recognizes pet chinchompas \\nThe Shared Storage button no longer overlaps the bank capacity interface \\nA bug causing HD healthbars widths to be incorrect was fixed \\nLookup
was added to player names in the group ironman group list \\n!kc gg
and ggs
short names were added for Grotesque Guardians \\nA bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level \\nThe spec counter now has a configuration option for the bulwark special attack threshold \\nThe black Loading
and Connection lost
boxes now get drawn correctly in the upper left when GPU is enabled \\nThe prayer dose overlay now correctly computes how much prayer sanfew serums restore \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (21):\\n api: make HashTable implement iterable\\n game event manager: send itemcontainer change events for all containers\\n api: add getItemContainer(int)\\n api: import model bottomY\\n gpu: improve model visible check\\n hiscore: simplify lookup menu option add logic\\n wiki: fix positioning wiki icon with wiki entity lookup off\\n api: add clan id to clan channel changed event\\n widget overlay: update gwd kc position\\n banktags: fix active tag being applied to shared storage\\n inventoryid: add gim shared storage inventories\\n prayer: fix sanfew prayer dose indicator\\n skillcalc: only recompute xp bonus values once when bonus changes\\n skillcalc: round bonus xp to nearest tenth\\n skillcalc: use double precision for xp\\n Add runelite_callback opcode to cache\\n gpu: fix drawing loading and connection lost boxes\\n skillcalc: use fixed point arithmetic for xp calculations\\n Bump to 1.8.0-SNAPSHOT\\n client loader: add new jagex certificate\\n gpu: add uncap fps option\\n\\nBrastaSauce (1):\\n hiscore: Add player lookup in group ironman tab\\n\\nBrianSchimert (1):\\n chat commands: Add shorthand names for Grotesque Guardians (#14305)\\n\\nHydrox6 (3):\\n api: add group ironman account types\\n skill calculator: fix incorrect icon for Hespori\\n interface styles: fix incorrectly sized 140px healthbar\\n\\nIllya Myshakov (1):\\n chat commands: fix incorrect pet chin ID\\n\\nKerzyte (1):\\n skill calculator: minor xp corrections\\n\\nTal s (1):\\n woodcutting: Add clue nest notification config (#14132)\\n\\nTheStonedTurtle (1):\\n spec counter: add bulwark threshold config\\n\\nlkmrrs (1):\\n skill calculator: Add javelins to fletching calculator (#14317)\\n\\nmelkypie (2):\\n banktags: fix bank equipment button and item count spacing\\n banktags: fix group storage button location\\n\\nshmeeps (1):\\n prayer: add blighted super restore\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/15.e08870f2.chunk.js b/static/js/15.112895f1.chunk.js
similarity index 94%
rename from static/js/15.e08870f2.chunk.js
rename to static/js/15.112895f1.chunk.js
index 993efd495..0b0278559 100644
--- a/static/js/15.e08870f2.chunk.js
+++ b/static/js/15.112895f1.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[15],{126:function(t,e,a){"use strict";var c=a(0);var s=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...n}=t;return n.class=n.class?"container "+n.class:"container",n.style={...n.style||{},maxWidth:a?"100%":""},Object(c.g)("div",Object.assign({},n,{id:"layout"}),e,Object(c.g)(s,null))}},128:function(t,e,a){},455:function(t,e,a){"use strict";a.r(e);var c=a(0),s=a(126),n=a(7),o=a.n(n),i=a(46),r=a(11),g=(a(128),a(71)),l=a(27);e.default=Object(l.b)(t=>({activeTag:t.tag.activeTag}),t=>Object(r.b)({setActiveTag:g.b},t))(t=>{let{activeTag:e,setActiveTag:a}=t;return Object(c.g)(s.a,null,Object(c.g)(i.a,{title:"Select tag tab - "+o.a.title,description:"Paste tag code exported from RuneLite Bank Tags plugin here"}),Object(c.g)("section",{id:"tags"},Object(c.g)("div",{class:"content-section tag-container"},Object(c.g)("div",{class:"page-header"},Object(c.g)("h1",null,"Enter tag"),Object(c.g)("p",{class:"text-muted"},"Paste a tag exported from RuneLite Bank Tags plugin and click 'GO'")),Object(c.g)("textarea",{rows:"5",class:"form-control",placeholder:"Enter your tags here",onChange:t=>a(t.target.value)},e),Object(c.g)("a",{class:"btn btn-block btn-success",href:"/tag/show/"+e},"Go"))))})}}]);
-//# sourceMappingURL=15.e08870f2.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[15],{126:function(t,e,a){"use strict";var c=a(0);var s=()=>Object(c.g)("section",{id:"footer"},Object(c.g)("div",{class:"content-section"},Object(c.g)("footer",null,Object(c.g)("hr",null),"Developed with ",Object(c.g)("i",{class:"fas fa-heart"})," and"," ",Object(c.g)("i",{class:"fas fa-coffee"})," using"," ",Object(c.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(c.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(c.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(c.g)("a",{href:"/atom.xml",class:"float-right"},Object(c.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...n}=t;return n.class=n.class?"container "+n.class:"container",n.style={...n.style||{},maxWidth:a?"100%":""},Object(c.g)("div",Object.assign({},n,{id:"layout"}),e,Object(c.g)(s,null))}},128:function(t,e,a){},457:function(t,e,a){"use strict";a.r(e);var c=a(0),s=a(126),n=a(7),o=a.n(n),i=a(46),r=a(11),g=(a(128),a(71)),l=a(27);e.default=Object(l.b)(t=>({activeTag:t.tag.activeTag}),t=>Object(r.b)({setActiveTag:g.b},t))(t=>{let{activeTag:e,setActiveTag:a}=t;return Object(c.g)(s.a,null,Object(c.g)(i.a,{title:"Select tag tab - "+o.a.title,description:"Paste tag code exported from RuneLite Bank Tags plugin here"}),Object(c.g)("section",{id:"tags"},Object(c.g)("div",{class:"content-section tag-container"},Object(c.g)("div",{class:"page-header"},Object(c.g)("h1",null,"Enter tag"),Object(c.g)("p",{class:"text-muted"},"Paste a tag exported from RuneLite Bank Tags plugin and click 'GO'")),Object(c.g)("textarea",{rows:"5",class:"form-control",placeholder:"Enter your tags here",onChange:t=>a(t.target.value)},e),Object(c.g)("a",{class:"btn btn-block btn-success",href:"/tag/show/"+e},"Go"))))})}}]);
+//# sourceMappingURL=15.112895f1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/15.e08870f2.chunk.js.map b/static/js/15.112895f1.chunk.js.map
similarity index 98%
rename from static/js/15.e08870f2.chunk.js.map
rename to static/js/15.112895f1.chunk.js.map
index ad12a0a76..2f9deb30d 100644
--- a/static/js/15.e08870f2.chunk.js.map
+++ b/static/js/15.112895f1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","routes/tag.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","connect","state","activeTag","tag","dispatch","bindActionCreators","setActiveTag","Meta","title","hero","description","rows","placeholder","onChange","event","target","value"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,oFA4Cec,sBAJSC,IAAK,CAAOC,UAAWD,EAAME,IAAID,YAC9BE,GACzBC,YAAmB,CAAEC,kBAAgBF,GAExBJ,CAnCHR,IAAA,IAAC,UAAEU,EAAS,aAAEI,GAAcd,EAAA,OACtCL,YAACI,IAAM,KACLJ,YAACoB,IAAI,CACHC,MAAQ,oBAAmBC,IAAKD,MAChCE,YAAY,gEAEdvB,YAAA,WAASC,GAAG,QACVD,YAAA,OAAKE,MAAM,iCACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAI,aACJA,YAAA,KAAGE,MAAM,cAAa,uEAKxBF,YAAA,YACEwB,KAAK,IACLtB,MAAM,eACNuB,YAAY,uBACZC,SAAUC,GAASR,EAAaQ,EAAMC,OAAOC,QAE5Cd,GAEHf,YAAA,KAAGE,MAAM,4BAA4BC,KAAO,aAAYY,GAAa","file":"static/js/15.e08870f2.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport './tag.css'\nimport { setActiveTag } from '../modules/tag'\nimport { connect } from 'react-redux'\n\nconst Tag = ({ activeTag, setActiveTag }) => (\n \n \n \n \n)\n\nconst mapStateToProps = state => ({ activeTag: state.tag.activeTag })\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setActiveTag }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tag)\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","routes/tag.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","connect","state","activeTag","tag","dispatch","bindActionCreators","setActiveTag","Meta","title","hero","description","rows","placeholder","onChange","event","target","value"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,oFA4Cec,sBAJSC,IAAK,CAAOC,UAAWD,EAAME,IAAID,YAC9BE,GACzBC,YAAmB,CAAEC,kBAAgBF,GAExBJ,CAnCHR,IAAA,IAAC,UAAEU,EAAS,aAAEI,GAAcd,EAAA,OACtCL,YAACI,IAAM,KACLJ,YAACoB,IAAI,CACHC,MAAQ,oBAAmBC,IAAKD,MAChCE,YAAY,gEAEdvB,YAAA,WAASC,GAAG,QACVD,YAAA,OAAKE,MAAM,iCACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAI,aACJA,YAAA,KAAGE,MAAM,cAAa,uEAKxBF,YAAA,YACEwB,KAAK,IACLtB,MAAM,eACNuB,YAAY,uBACZC,SAAUC,GAASR,EAAaQ,EAAMC,OAAOC,QAE5Cd,GAEHf,YAAA,KAAGE,MAAM,4BAA4BC,KAAO,aAAYY,GAAa","file":"static/js/15.112895f1.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport './tag.css'\nimport { setActiveTag } from '../modules/tag'\nimport { connect } from 'react-redux'\n\nconst Tag = ({ activeTag, setActiveTag }) => (\n \n \n \n \n)\n\nconst mapStateToProps = state => ({ activeTag: state.tag.activeTag })\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setActiveTag }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tag)\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/150.2579c237.chunk.js b/static/js/150.6f4cdceb.chunk.js
similarity index 98%
rename from static/js/150.2579c237.chunk.js
rename to static/js/150.6f4cdceb.chunk.js
index 8fe46993d..3021fa8e5 100644
--- a/static/js/150.2579c237.chunk.js
+++ b/static/js/150.6f4cdceb.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[150],{425:function(e,n){e.exports={title:"1.8.7 Release",description:"Custom left click swap and ambient sounds mute",author:"Adam",body:'The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.
\n
\nLogin and logout notifications can now be hidden per-friend by clicking the Hide notifications
option on the friend.
\n
\nChat channels can now show the number of online members in the channel.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces. \nThe grand exchange buy limit and active traded price has been adjusted to fit on the interface \nThe mute button clickbox on the login screen is no longer the entire bottom right area of the client \nCharacter accents are now ignored when applying chat filters to messages \nThe loot tracker now tracks Mahogany Homes supply crates \nThe world hopper region filter now supports filters with multiple regions \nThe screenshot plugin can now screenshot combat achievement task completions \nTile indicators now has a separate color configuration for tile fill color \nThe party plugin now has a button to join the previous party, as well as join party by id \nTiming for the woodcutting respawn timers has been corrected \nInventory tags are now shown in the Chambers of Xeric storage chest \nItem identification now works in the group ironman shared storage \nThe pickpocket stun timer now works correctly with the dodgy necklace protection \nA rocket emoji was added to the emoji plugin (>==>
) \nThe player Lookup
option now chooses the correct hiscores based on the world type \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\nAdam (59):\n api: add on tick callback\n camera plugin: fix tooltips with uncapped fps\n music plugin: fix tooltips with uncapped fps\n gpu: clear target buffer offset on login screen\n barrows: fix brothers slain overlay flashing\n bank: block bank pin going to chatbox\n clues: capitalize fairy ring BKP\n client: remove rogues\' den plugin\n cache: rename objectdefinition ambient sound ids\n api: add ambient sound effect\n music: add option to mute ambient sound effects\n gpu: store and use previous viewport\'s offsets for each frame\n gpu: update suppressed warnings\n gpu: initialize targetBufferOffset on startup\n gpu: enable adaptive vsync\n opponent info: hide overlay if hp hud is active\n opponent info: use long npc name if available\n banktags: remove extra space in chatbox prompt\n banktags: improve bank scrollbar updates\n banktags: remove setBankScroll event\n clues: remove unnecessary item array copy\n clues test: remove unnecessary stubbing\n chat filter: Ignore character accents for matching\n gpu: add sync mode config\n timestamp: use steam client chat timestamp support\n timestamp: immediately apply color config changes\n screenshot: update duel arena messages\n chat commands: update duel arena messages\n barrows: fix vanilla overlay flashing with unlocked fps\n loot tracker: add mahogany homes supply crate\n logback: use SizeAndTimeBasedRollingPolicy\n Add gim clan chat types\n chat message manager: don\'t apply color changes to message nodes\n chat history: include clan system messages\n config panel: refactor input components creation into methods\n ui: highlight selected cells correctly\n config: add support for enum sets\n world hopper: allow selecting multiple region filters\n hiscore: use hiscore endpoint for world for player lookup op\n chat history: remove group Clear history option\n mes: add left click customization\n screenshot plugin: reorder config\n screenshot plugin: add combat achievements\n screenshot plugin: test screenshot filenames\n config service: avoid raising a json exception on non json input\n loot tracker: aggregate kills prior to inserting\n tile indicators: add config sections\n api: make MenuEntry an interface\n chatfilter: add clan message types\n friendslist: add option to hide per-friend login notifications\n rl-client: build test jar\n ge plugin: compact buy offer examine text\n gpu: add model hsl override support\n nmz: fix point overlay flickering with unlocked fps\n widget inspector: add listeners\n hiscore: add nex\n grandexchange: remove osb ge client\n Move hiscore client to rl-client\n\nAlan Baumgartner (1):\n party: add option to join previous party and join party by id\n\nAlex (1):\n ground items: Fix despawn timer in clan hall (#14358)\n\nBrad Rammel (1):\n achievement diary: remove the queen of thieves quest requirement\n\nDaniel (1):\n hiscore panel: change top border size to 10\n\nDasgust (1):\n chatchannels: display online member count\n\nFreeburn113 (1):\n woodcutting: update respawn times from wiki\n\nHydrox6 (4):\n roof removal: fix rimmington crafting store roof\n roof removal: fix tolna\'s rift\n move runepouch rune enum to client/game\n clues: make item requirements work with the runepouch\n\nIm2be (1):\n inv tags: add cox storage chest\n\nJosh J (1):\n tile indicators: add fill color config\n\nKrazune (1):\n timers: add dodgy necklace protection to pickpocket stun timer\n\nLlemonDuck (1):\n special counter: ignore vet\'ion hellhounds\n\nLogan (1):\n emoji: add rocketship emoji\n\nMax Weber (9):\n gpu: use pbo & driver owned buffer for ui tex upload\n gpu: use optimized scene uploading for dynamic models too\n camera: remove our compass look op config\n avoid boxing `Comparator.comparing`s\n chatchannel: remove target mode\n rl-client: fix sending channel messages dropping ! prefixes\n rl-client: remove chatbox performance plugin\n rl-api: use less confusing names for model indices\n cache: add rev202 model formats\n\nPaul Norton (1):\n spec counter: add sire spawns and scions to ignore list\n\nRon Young (1):\n api: MenuEntry::setDeprioritized return self\n\nTal Skverer (1):\n timers: Track imbued heart timer from varbit\n\nWayne Li (1):\n hiscores: fix npe\n\nZach (1):\n widget item overlay: add group storage to showOnBank\n\nemerald000 (1):\n clues: Fix charcoal burners STASH location (#14306)\n\norange-puff (1):\n menu swapper: add teleports swap to teleport swap\n\nsepticsalmon (1):\n item identification: add option for each seed type\n\nsimeonlg (1):\n clues: Accept Tome of water when requiring water runes (#14361)\n
\n',image:"/img/blog/1.8.7-Release/leftclickswap.png"}}}]);
-//# sourceMappingURL=150.2579c237.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[150],{426:function(e,n){e.exports={title:"1.8.7 Release",description:"Custom left click swap and ambient sounds mute",author:"Adam",body:'The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.
\n
\nLogin and logout notifications can now be hidden per-friend by clicking the Hide notifications
option on the friend.
\n
\nChat channels can now show the number of online members in the channel.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces. \nThe grand exchange buy limit and active traded price has been adjusted to fit on the interface \nThe mute button clickbox on the login screen is no longer the entire bottom right area of the client \nCharacter accents are now ignored when applying chat filters to messages \nThe loot tracker now tracks Mahogany Homes supply crates \nThe world hopper region filter now supports filters with multiple regions \nThe screenshot plugin can now screenshot combat achievement task completions \nTile indicators now has a separate color configuration for tile fill color \nThe party plugin now has a button to join the previous party, as well as join party by id \nTiming for the woodcutting respawn timers has been corrected \nInventory tags are now shown in the Chambers of Xeric storage chest \nItem identification now works in the group ironman shared storage \nThe pickpocket stun timer now works correctly with the dodgy necklace protection \nA rocket emoji was added to the emoji plugin (>==>
) \nThe player Lookup
option now chooses the correct hiscores based on the world type \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 23 contributors this release!
\nAdam (59):\n api: add on tick callback\n camera plugin: fix tooltips with uncapped fps\n music plugin: fix tooltips with uncapped fps\n gpu: clear target buffer offset on login screen\n barrows: fix brothers slain overlay flashing\n bank: block bank pin going to chatbox\n clues: capitalize fairy ring BKP\n client: remove rogues\' den plugin\n cache: rename objectdefinition ambient sound ids\n api: add ambient sound effect\n music: add option to mute ambient sound effects\n gpu: store and use previous viewport\'s offsets for each frame\n gpu: update suppressed warnings\n gpu: initialize targetBufferOffset on startup\n gpu: enable adaptive vsync\n opponent info: hide overlay if hp hud is active\n opponent info: use long npc name if available\n banktags: remove extra space in chatbox prompt\n banktags: improve bank scrollbar updates\n banktags: remove setBankScroll event\n clues: remove unnecessary item array copy\n clues test: remove unnecessary stubbing\n chat filter: Ignore character accents for matching\n gpu: add sync mode config\n timestamp: use steam client chat timestamp support\n timestamp: immediately apply color config changes\n screenshot: update duel arena messages\n chat commands: update duel arena messages\n barrows: fix vanilla overlay flashing with unlocked fps\n loot tracker: add mahogany homes supply crate\n logback: use SizeAndTimeBasedRollingPolicy\n Add gim clan chat types\n chat message manager: don\'t apply color changes to message nodes\n chat history: include clan system messages\n config panel: refactor input components creation into methods\n ui: highlight selected cells correctly\n config: add support for enum sets\n world hopper: allow selecting multiple region filters\n hiscore: use hiscore endpoint for world for player lookup op\n chat history: remove group Clear history option\n mes: add left click customization\n screenshot plugin: reorder config\n screenshot plugin: add combat achievements\n screenshot plugin: test screenshot filenames\n config service: avoid raising a json exception on non json input\n loot tracker: aggregate kills prior to inserting\n tile indicators: add config sections\n api: make MenuEntry an interface\n chatfilter: add clan message types\n friendslist: add option to hide per-friend login notifications\n rl-client: build test jar\n ge plugin: compact buy offer examine text\n gpu: add model hsl override support\n nmz: fix point overlay flickering with unlocked fps\n widget inspector: add listeners\n hiscore: add nex\n grandexchange: remove osb ge client\n Move hiscore client to rl-client\n\nAlan Baumgartner (1):\n party: add option to join previous party and join party by id\n\nAlex (1):\n ground items: Fix despawn timer in clan hall (#14358)\n\nBrad Rammel (1):\n achievement diary: remove the queen of thieves quest requirement\n\nDaniel (1):\n hiscore panel: change top border size to 10\n\nDasgust (1):\n chatchannels: display online member count\n\nFreeburn113 (1):\n woodcutting: update respawn times from wiki\n\nHydrox6 (4):\n roof removal: fix rimmington crafting store roof\n roof removal: fix tolna\'s rift\n move runepouch rune enum to client/game\n clues: make item requirements work with the runepouch\n\nIm2be (1):\n inv tags: add cox storage chest\n\nJosh J (1):\n tile indicators: add fill color config\n\nKrazune (1):\n timers: add dodgy necklace protection to pickpocket stun timer\n\nLlemonDuck (1):\n special counter: ignore vet\'ion hellhounds\n\nLogan (1):\n emoji: add rocketship emoji\n\nMax Weber (9):\n gpu: use pbo & driver owned buffer for ui tex upload\n gpu: use optimized scene uploading for dynamic models too\n camera: remove our compass look op config\n avoid boxing `Comparator.comparing`s\n chatchannel: remove target mode\n rl-client: fix sending channel messages dropping ! prefixes\n rl-client: remove chatbox performance plugin\n rl-api: use less confusing names for model indices\n cache: add rev202 model formats\n\nPaul Norton (1):\n spec counter: add sire spawns and scions to ignore list\n\nRon Young (1):\n api: MenuEntry::setDeprioritized return self\n\nTal Skverer (1):\n timers: Track imbued heart timer from varbit\n\nWayne Li (1):\n hiscores: fix npe\n\nZach (1):\n widget item overlay: add group storage to showOnBank\n\nemerald000 (1):\n clues: Fix charcoal burners STASH location (#14306)\n\norange-puff (1):\n menu swapper: add teleports swap to teleport swap\n\nsepticsalmon (1):\n item identification: add option for each seed type\n\nsimeonlg (1):\n clues: Accept Tome of water when requiring water runes (#14361)\n
\n',image:"/img/blog/1.8.7-Release/leftclickswap.png"}}}]);
+//# sourceMappingURL=150.6f4cdceb.chunk.js.map
\ No newline at end of file
diff --git a/static/js/150.2579c237.chunk.js.map b/static/js/150.6f4cdceb.chunk.js.map
similarity index 99%
rename from static/js/150.2579c237.chunk.js.map
rename to static/js/150.6f4cdceb.chunk.js.map
index b2f7b0509..51aebb7df 100644
--- a/static/js/150.2579c237.chunk.js.map
+++ b/static/js/150.6f4cdceb.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2021-12-16-19-00-1.8.7-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,iDAAiD,OAAS,OAAO,KAAO,wlOAA+lO,MAAQ","file":"static/js/150.2579c237.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.7 Release\",\"description\":\"Custom left click swap and ambient sounds mute\",\"author\":\"Adam\",\"body\":\"The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.
\\n
\\nLogin and logout notifications can now be hidden per-friend by clicking the Hide notifications
option on the friend.
\\n
\\nChat channels can now show the number of online members in the channel.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces. \\nThe grand exchange buy limit and active traded price has been adjusted to fit on the interface \\nThe mute button clickbox on the login screen is no longer the entire bottom right area of the client \\nCharacter accents are now ignored when applying chat filters to messages \\nThe loot tracker now tracks Mahogany Homes supply crates \\nThe world hopper region filter now supports filters with multiple regions \\nThe screenshot plugin can now screenshot combat achievement task completions \\nTile indicators now has a separate color configuration for tile fill color \\nThe party plugin now has a button to join the previous party, as well as join party by id \\nTiming for the woodcutting respawn timers has been corrected \\nInventory tags are now shown in the Chambers of Xeric storage chest \\nItem identification now works in the group ironman shared storage \\nThe pickpocket stun timer now works correctly with the dodgy necklace protection \\nA rocket emoji was added to the emoji plugin (>==>
) \\nThe player Lookup
option now chooses the correct hiscores based on the world type \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (59):\\n api: add on tick callback\\n camera plugin: fix tooltips with uncapped fps\\n music plugin: fix tooltips with uncapped fps\\n gpu: clear target buffer offset on login screen\\n barrows: fix brothers slain overlay flashing\\n bank: block bank pin going to chatbox\\n clues: capitalize fairy ring BKP\\n client: remove rogues' den plugin\\n cache: rename objectdefinition ambient sound ids\\n api: add ambient sound effect\\n music: add option to mute ambient sound effects\\n gpu: store and use previous viewport's offsets for each frame\\n gpu: update suppressed warnings\\n gpu: initialize targetBufferOffset on startup\\n gpu: enable adaptive vsync\\n opponent info: hide overlay if hp hud is active\\n opponent info: use long npc name if available\\n banktags: remove extra space in chatbox prompt\\n banktags: improve bank scrollbar updates\\n banktags: remove setBankScroll event\\n clues: remove unnecessary item array copy\\n clues test: remove unnecessary stubbing\\n chat filter: Ignore character accents for matching\\n gpu: add sync mode config\\n timestamp: use steam client chat timestamp support\\n timestamp: immediately apply color config changes\\n screenshot: update duel arena messages\\n chat commands: update duel arena messages\\n barrows: fix vanilla overlay flashing with unlocked fps\\n loot tracker: add mahogany homes supply crate\\n logback: use SizeAndTimeBasedRollingPolicy\\n Add gim clan chat types\\n chat message manager: don't apply color changes to message nodes\\n chat history: include clan system messages\\n config panel: refactor input components creation into methods\\n ui: highlight selected cells correctly\\n config: add support for enum sets\\n world hopper: allow selecting multiple region filters\\n hiscore: use hiscore endpoint for world for player lookup op\\n chat history: remove group Clear history option\\n mes: add left click customization\\n screenshot plugin: reorder config\\n screenshot plugin: add combat achievements\\n screenshot plugin: test screenshot filenames\\n config service: avoid raising a json exception on non json input\\n loot tracker: aggregate kills prior to inserting\\n tile indicators: add config sections\\n api: make MenuEntry an interface\\n chatfilter: add clan message types\\n friendslist: add option to hide per-friend login notifications\\n rl-client: build test jar\\n ge plugin: compact buy offer examine text\\n gpu: add model hsl override support\\n nmz: fix point overlay flickering with unlocked fps\\n widget inspector: add listeners\\n hiscore: add nex\\n grandexchange: remove osb ge client\\n Move hiscore client to rl-client\\n\\nAlan Baumgartner (1):\\n party: add option to join previous party and join party by id\\n\\nAlex (1):\\n ground items: Fix despawn timer in clan hall (#14358)\\n\\nBrad Rammel (1):\\n achievement diary: remove the queen of thieves quest requirement\\n\\nDaniel (1):\\n hiscore panel: change top border size to 10\\n\\nDasgust (1):\\n chatchannels: display online member count\\n\\nFreeburn113 (1):\\n woodcutting: update respawn times from wiki\\n\\nHydrox6 (4):\\n roof removal: fix rimmington crafting store roof\\n roof removal: fix tolna's rift\\n move runepouch rune enum to client/game\\n clues: make item requirements work with the runepouch\\n\\nIm2be (1):\\n inv tags: add cox storage chest\\n\\nJosh J (1):\\n tile indicators: add fill color config\\n\\nKrazune (1):\\n timers: add dodgy necklace protection to pickpocket stun timer\\n\\nLlemonDuck (1):\\n special counter: ignore vet'ion hellhounds\\n\\nLogan (1):\\n emoji: add rocketship emoji\\n\\nMax Weber (9):\\n gpu: use pbo & driver owned buffer for ui tex upload\\n gpu: use optimized scene uploading for dynamic models too\\n camera: remove our compass look op config\\n avoid boxing `Comparator.comparing`s\\n chatchannel: remove target mode\\n rl-client: fix sending channel messages dropping ! prefixes\\n rl-client: remove chatbox performance plugin\\n rl-api: use less confusing names for model indices\\n cache: add rev202 model formats\\n\\nPaul Norton (1):\\n spec counter: add sire spawns and scions to ignore list\\n\\nRon Young (1):\\n api: MenuEntry::setDeprioritized return self\\n\\nTal Skverer (1):\\n timers: Track imbued heart timer from varbit\\n\\nWayne Li (1):\\n hiscores: fix npe\\n\\nZach (1):\\n widget item overlay: add group storage to showOnBank\\n\\nemerald000 (1):\\n clues: Fix charcoal burners STASH location (#14306)\\n\\norange-puff (1):\\n menu swapper: add teleports swap to teleport swap\\n\\nsepticsalmon (1):\\n item identification: add option for each seed type\\n\\nsimeonlg (1):\\n clues: Accept Tome of water when requiring water runes (#14361)\\n
\\n\",\"image\":\"/img/blog/1.8.7-Release/leftclickswap.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2021-12-16-19-00-1.8.7-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,iDAAiD,OAAS,OAAO,KAAO,wlOAA+lO,MAAQ","file":"static/js/150.6f4cdceb.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.7 Release\",\"description\":\"Custom left click swap and ambient sounds mute\",\"author\":\"Adam\",\"body\":\"The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.
\\n
\\nLogin and logout notifications can now be hidden per-friend by clicking the Hide notifications
option on the friend.
\\n
\\nChat channels can now show the number of online members in the channel.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces. \\nThe grand exchange buy limit and active traded price has been adjusted to fit on the interface \\nThe mute button clickbox on the login screen is no longer the entire bottom right area of the client \\nCharacter accents are now ignored when applying chat filters to messages \\nThe loot tracker now tracks Mahogany Homes supply crates \\nThe world hopper region filter now supports filters with multiple regions \\nThe screenshot plugin can now screenshot combat achievement task completions \\nTile indicators now has a separate color configuration for tile fill color \\nThe party plugin now has a button to join the previous party, as well as join party by id \\nTiming for the woodcutting respawn timers has been corrected \\nInventory tags are now shown in the Chambers of Xeric storage chest \\nItem identification now works in the group ironman shared storage \\nThe pickpocket stun timer now works correctly with the dodgy necklace protection \\nA rocket emoji was added to the emoji plugin (>==>
) \\nThe player Lookup
option now chooses the correct hiscores based on the world type \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (59):\\n api: add on tick callback\\n camera plugin: fix tooltips with uncapped fps\\n music plugin: fix tooltips with uncapped fps\\n gpu: clear target buffer offset on login screen\\n barrows: fix brothers slain overlay flashing\\n bank: block bank pin going to chatbox\\n clues: capitalize fairy ring BKP\\n client: remove rogues' den plugin\\n cache: rename objectdefinition ambient sound ids\\n api: add ambient sound effect\\n music: add option to mute ambient sound effects\\n gpu: store and use previous viewport's offsets for each frame\\n gpu: update suppressed warnings\\n gpu: initialize targetBufferOffset on startup\\n gpu: enable adaptive vsync\\n opponent info: hide overlay if hp hud is active\\n opponent info: use long npc name if available\\n banktags: remove extra space in chatbox prompt\\n banktags: improve bank scrollbar updates\\n banktags: remove setBankScroll event\\n clues: remove unnecessary item array copy\\n clues test: remove unnecessary stubbing\\n chat filter: Ignore character accents for matching\\n gpu: add sync mode config\\n timestamp: use steam client chat timestamp support\\n timestamp: immediately apply color config changes\\n screenshot: update duel arena messages\\n chat commands: update duel arena messages\\n barrows: fix vanilla overlay flashing with unlocked fps\\n loot tracker: add mahogany homes supply crate\\n logback: use SizeAndTimeBasedRollingPolicy\\n Add gim clan chat types\\n chat message manager: don't apply color changes to message nodes\\n chat history: include clan system messages\\n config panel: refactor input components creation into methods\\n ui: highlight selected cells correctly\\n config: add support for enum sets\\n world hopper: allow selecting multiple region filters\\n hiscore: use hiscore endpoint for world for player lookup op\\n chat history: remove group Clear history option\\n mes: add left click customization\\n screenshot plugin: reorder config\\n screenshot plugin: add combat achievements\\n screenshot plugin: test screenshot filenames\\n config service: avoid raising a json exception on non json input\\n loot tracker: aggregate kills prior to inserting\\n tile indicators: add config sections\\n api: make MenuEntry an interface\\n chatfilter: add clan message types\\n friendslist: add option to hide per-friend login notifications\\n rl-client: build test jar\\n ge plugin: compact buy offer examine text\\n gpu: add model hsl override support\\n nmz: fix point overlay flickering with unlocked fps\\n widget inspector: add listeners\\n hiscore: add nex\\n grandexchange: remove osb ge client\\n Move hiscore client to rl-client\\n\\nAlan Baumgartner (1):\\n party: add option to join previous party and join party by id\\n\\nAlex (1):\\n ground items: Fix despawn timer in clan hall (#14358)\\n\\nBrad Rammel (1):\\n achievement diary: remove the queen of thieves quest requirement\\n\\nDaniel (1):\\n hiscore panel: change top border size to 10\\n\\nDasgust (1):\\n chatchannels: display online member count\\n\\nFreeburn113 (1):\\n woodcutting: update respawn times from wiki\\n\\nHydrox6 (4):\\n roof removal: fix rimmington crafting store roof\\n roof removal: fix tolna's rift\\n move runepouch rune enum to client/game\\n clues: make item requirements work with the runepouch\\n\\nIm2be (1):\\n inv tags: add cox storage chest\\n\\nJosh J (1):\\n tile indicators: add fill color config\\n\\nKrazune (1):\\n timers: add dodgy necklace protection to pickpocket stun timer\\n\\nLlemonDuck (1):\\n special counter: ignore vet'ion hellhounds\\n\\nLogan (1):\\n emoji: add rocketship emoji\\n\\nMax Weber (9):\\n gpu: use pbo & driver owned buffer for ui tex upload\\n gpu: use optimized scene uploading for dynamic models too\\n camera: remove our compass look op config\\n avoid boxing `Comparator.comparing`s\\n chatchannel: remove target mode\\n rl-client: fix sending channel messages dropping ! prefixes\\n rl-client: remove chatbox performance plugin\\n rl-api: use less confusing names for model indices\\n cache: add rev202 model formats\\n\\nPaul Norton (1):\\n spec counter: add sire spawns and scions to ignore list\\n\\nRon Young (1):\\n api: MenuEntry::setDeprioritized return self\\n\\nTal Skverer (1):\\n timers: Track imbued heart timer from varbit\\n\\nWayne Li (1):\\n hiscores: fix npe\\n\\nZach (1):\\n widget item overlay: add group storage to showOnBank\\n\\nemerald000 (1):\\n clues: Fix charcoal burners STASH location (#14306)\\n\\norange-puff (1):\\n menu swapper: add teleports swap to teleport swap\\n\\nsepticsalmon (1):\\n item identification: add option for each seed type\\n\\nsimeonlg (1):\\n clues: Accept Tome of water when requiring water runes (#14361)\\n
\\n\",\"image\":\"/img/blog/1.8.7-Release/leftclickswap.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/151.3c7879ef.chunk.js b/static/js/151.38831e06.chunk.js
similarity index 99%
rename from static/js/151.3c7879ef.chunk.js
rename to static/js/151.38831e06.chunk.js
index 26453285d..e0501ddac 100644
--- a/static/js/151.3c7879ef.chunk.js
+++ b/static/js/151.38831e06.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[151],{426:function(e,n){e.exports={title:"1.8.8 - 1.8.13 Releases",description:"Loot tracker improvements",author:"Adam",body:'Loottracker changes \nThe loot tracker now always remembers loot between client sessions, even when\nnot logged in with a RuneLite account. Additionally, the loot is stored\nper-profile now instead of combined for each profile. This means that separate\ngame profiles, such as main game, leagues, deadman, as well as separate\nRuneScape accounts loot are all separately tracked. Loot is now saved to up to 1\nyear from the most recent drop.
\nThe old saved loot must be imported into the correct profile manually by\nclicking the import button in the loot tracker panel if you wish to keep\nyour old saved loot:
\n
\nNew runelite.net link from the Old School RuneScape home page \nJagex have added a direct link to https://runelite.net \nfrom the Old School RuneScape homepage . This\nis due, in part, to the phishing sites which primarily show on Google search.
\nDue to this we recommend finding RuneLite by following the link from the\nofficial Old School RuneScape homepage .
\nWe also recommend using an adblocker when browsing the web if you aren\'t\nalready, which blocks the phishing ads on Google and other ads, such as uBlock\nOrigin (available for Google\nChrome ,\nMicrosoft\nEdge \nand Firefox .\n(Disclaimer: we are not affiliated with uBlock Origin and are happy users))
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe alt key used to configure the ground items plugin is now configurable \nThe entity hider now has an option to hide clan members \nGround items can now deprioritize the left-click Take
option on hidden items,\nmaking it no longer possible to accidentally left click Take
those items \nScreenmarkers now has a toggle to show their names as a label above the marker \nGroup storage withdraw swap has been added to the menu entry swapper \nHallowed sack was added to the loot tracker \nThe roof removal plugin now has an option to always hide roofs in POH \nJewellery has been added to the item identification plugin \nMod West\'s loot beams models are\nnow used by default for loot beams. There is a setting to change it to use the\nprevious model. \nBlood essence has been added to the item charges plugin \nThe menu entry swapper can now shift-click swap Climb-up and Climb-down on\nstairs and ladders \nThe interact highlight plugin now shows which NPC you are selecting when\nhovering over the menu entry \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 33 contributors this update!
\nAdam (110):\n ge: fix showing active trade price on buy offers\n ground items: fix collapsing item examine\n Bump to 1.8.7.1-SNAPSHOT\n ge: fix showing active trade price on buy offers\n ground items: fix collapsing item examine\n menu swapper: use menu callback for swap config\n menu swapper: don\'t show default action if one isn\'t configured\n menu swapper: fix built in swaps overriding custom swaps\n Update logback to 1.2.9\n ci: use adoptopenjdk\n chat message manager: fix recoloring gim messages\n http-service: remove cache controller\n scripts: remove scripts\n config manager: increase sendConfig delay to 5 minutes\n client: move jagexcache into .runelite\n config manager: remove migrateConfig\n api: remove set/get game drawing mode\n http-service: move several hardcoded urls to config\n cache: remove http-api dependency\n http-api: lombokize a few classes\n Move http-api clients to rl-client\n Move okhttp client from http-api\n Remove http-api and http-service\n checkstyle: remove suppressions\n gpu: fix stretched mode scaling issues on macos\n clientui: disable ui scale transform for client bounds on macos\n gpu: queue fbo reset on startup too\n api: add arguments and mousey to scriptevent\n Set macos quitStrategy to CLOSE_ALL_WINDOWS\n ui: set DO_NOTHING_ON_CLOSE close op prior to disposing\n api: add getConfig to deco, game, and ground objects\n api: fix wallobject orientation javadoc and use\n Fix race with client startup and low detail/chat icon loading\n world map: use game state change event to load quest icons\n menu swapper: remove examine swap\n Revert "world map: use game state change event to load quest icons"\n world map: remove quest icon load retry if not logged in\n api: add new head icons\n slayer plugin: support fake xpdrops\n ge plugin: disable fuzzy search if search event is consumed\n loot manager: add nex\n xp updater: add seasonal worlds to wom\n Use leagues hiscores for seasonal worlds\n discord: add nex boss area\n ground items: add nex instance area\n run energy: fix orb text flickering\n entity hider: add option to hide clan members\n item charges: remove unused slot from ItemChargeInfobox\n ui: add infobox font config\n infobox overlay: hoist some config values out of the render loop\n chat notifications: restore normal color after own name highlight\n chat message manager: support game chat color settings\n chat notifications: fix restoring last color on own name highlight\n chat notifications: simplify finding closing color in pattern matching\n chat message manager: format rl-messages at chat build time\n ground items: fix show item quantities to work with no item highlight mode\n ground items: add option to deprioritize hidden item options\n api: make ClanMember an interface\n api: remove tileitem spawn time\n api: combine projectileid and graphicid\n api: add actor graphic height accessors\n api: use deques for projectiles and graphicsobjects\n api: add projectile target and end cycle setter\n api: add GraphicsObject finished setter\n api: add projectile creation api\n Revert "Merge pull request #14512 from wayne-li2/anagram-clue-builder"\n anagram clue: use builder pattern\n clues: use lists instead of sets for clues\n cache: remove netty-buffer dependency\n slayer: fix reanimated abyssals not counting for tasks\n devtools: add object animation ids\n xptracker: use seasonal wom version for seasonal worlds\n interact highlight: support menu option mouseover\n client: add runtime config\n itemmanager: sanity check wiki prices\n plugins: prevent plugins from overriding equals and hashCode\n ground items: make hotkey configurable\n defaultworld: always changeWorld on client thread\n overlay manager: prevent loading dynamic overlay positions\n gpu: reset fbo on resizablechanged on macos\n gpu: replace count_prio_offset switch with loop\n gpu: apply hsl override to flat shade faces\n Update dnschange url\n linkbrowser: prefer xdg-open over Desktop.open and browse\n clues: add Jimmy Dazzler clue\n clues: add Yu\'biusk clue\n screen markers: add a tooltip to border thickness spinner\n screen markers: remove fill toggle\n screen markers: make ScreenMarkerRenderable implement RenderableEntity\n screen markers: add marker labels\n jshell: fix run/clear tooltips\n client: update archive-patcher to 1.2\n cache: script: remove unused import\n item manager: fix active price threshold calculation\n idle notifier: disable by default\n api: expand item api for inventory model replacement\n client: add plugin sideloading\n cache: rename texture animation direction and speed\n gpu: move texture animation to gpu\n gpu: fix anim array indexes with sparse texture array\n loottracker: split panel construction into methods\n loottracker: replace getTotalPrice with stream\n loottracker: hoist box emptyborder from loop\n config manager: post RuneScapeProfileChanged when new profiles are created\n loot tracker: store loot in config\n runelite: disable option parser abbreviations\n api: add methods to get selected item\n config manager: run shutdown hook after plugins\n gpu: don\'t animate textures when loading\n api: add isFollower to NPCComposition\n\nAdam Keenan (2):\n menu swapper: add group storage shift deposit swap\n chat commands: fix cmb to use correct endpoint\n\nChristos-Apostolidis (1):\n loot tracker: add hallowed sack\n\nCody Massin (2):\n roof removal: build overrides for POH on startUp\n roof removal: optimize POH region override check\n\nCyborger1 (2):\n clues: fix Guardian mummy capitalization\n clientui: run PluginPanel#onDeactivate when switching panels\n\nDaniel Bolink (1):\n woodcutting: add Isle Of Souls trees\n\nDavid Luong (1):\n item identification: add goblin and magic ess potions\n\nFaycal (1):\n item identification: add rejuvenation potion\n\nHenry Darnell (1):\n login screen: Add random override option (#14341)\n\nHippolyte Mithouard (1):\n barrows: fix npe from receiving an empty reward\n\nHooder (1):\n gpu: Fix loading gluegen natives on some Windows configurations\n\nHydrox6 (11):\n worldpoint: use passed plane when getting instance chunk for localpoint\n roof removal: use worldpoint\'s plane instead of current plane\n roof removal: add overrides for unused area in the POH dungeon\n roof removal: add support for always hiding roofs in POH\n clientUI: show if the client is in safe mode in the window title\n login screen: add nex login screen\n item charges: add ancient brew\n item identification: add ancient brew\n skill calc: add ancient brew\n dps counter: add nex\n timers: add shattered relics home teleport\n\nIllya Myshakov (1):\n chat commands: add Nexling pet\n\nJeremy Plsek (1):\n notifier: set app name when using notify-send\n\nJordan Atwood (2):\n widget overlay: Don\'t draw empty wilderness K/D box\n slayer: Fix name matching\n\nJordan Hanley (1):\n item identification: add jewellery\n\nJosh (1):\n npcunaggroarea: add option to hide when out of combat\n\nLootBagger (2):\n plugin manager: fix plugins with multiple dependencies\n plugin manager: optimize plugin dependency sorting\n\nMax Weber (10):\n grounditems/Lootbeam: handle loading models correctly\n rl-client: keep plugin hub jars around for longer\n rl-api: expose ModelData & model transformation methods\n rl-api: expose cache getters\n grounditems: Add Modern style loot beam\n rl-api: fluent widget api\n rl-api: add MagicConstant annotations\n grounditems/Lootbeam: use more faithful colors\n config: implement toString/equals/hashCode for Config proxies\n Update Quests to 2022-2-9\n\nMinh Pham (1):\n slayer: add penguins to bird task\n\nNakst (1):\n cache: refactor ModelLoader.decodeOldFormat variable names\n\nRobert (1):\n interface styles: fix 2005 style icon alignment\n\nSirGirion (1):\n itemcharges: Add support for blood essence\n\nSkretzo (1):\n screen markers: fix visibilityLabel tooltip\n\nThource (1):\n Remove daily sand check for UIM accounts\n\nTomas Slusny (1):\n discord: accept animated avatars in matcher\n\nTony Wang (1):\n cache: script: use linkedhashmap for switch map\n\nViktor Horsmanheimo (1):\n notifier: add timeout option for Linux\n\nWayne Li (4):\n clues: Fix some anagrams (#14486)\n HotColdClue: Delete Twisted Leagues code\n clue: Update area descriptions of anagram clues\n clue: Refactor Anagrams into builder model\n\nawbasham (1):\n dps counter: add Corrupted Hunllef\n\ndekvall (1):\n worldmap: use vanilla icons for lovakengj mining site\n\ngeheur (1):\n menu swapper: add climb-up and climb-down swaps\n\ntesting-ongithub (4):\n Add option to disable system tray icon\n Fix clicking tray icon not bringing client to front on macOS\n Don\'t force focus on tray icon click on macOS when already focused\n fairy ring: add Yu\'biusk\n
\n',image:"/img/blog/1.8.13-Release/lootimport.png"}}}]);
-//# sourceMappingURL=151.3c7879ef.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[151],{427:function(e,n){e.exports={title:"1.8.8 - 1.8.13 Releases",description:"Loot tracker improvements",author:"Adam",body:'Loottracker changes \nThe loot tracker now always remembers loot between client sessions, even when\nnot logged in with a RuneLite account. Additionally, the loot is stored\nper-profile now instead of combined for each profile. This means that separate\ngame profiles, such as main game, leagues, deadman, as well as separate\nRuneScape accounts loot are all separately tracked. Loot is now saved to up to 1\nyear from the most recent drop.
\nThe old saved loot must be imported into the correct profile manually by\nclicking the import button in the loot tracker panel if you wish to keep\nyour old saved loot:
\n
\nNew runelite.net link from the Old School RuneScape home page \nJagex have added a direct link to https://runelite.net \nfrom the Old School RuneScape homepage . This\nis due, in part, to the phishing sites which primarily show on Google search.
\nDue to this we recommend finding RuneLite by following the link from the\nofficial Old School RuneScape homepage .
\nWe also recommend using an adblocker when browsing the web if you aren\'t\nalready, which blocks the phishing ads on Google and other ads, such as uBlock\nOrigin (available for Google\nChrome ,\nMicrosoft\nEdge \nand Firefox .\n(Disclaimer: we are not affiliated with uBlock Origin and are happy users))
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe alt key used to configure the ground items plugin is now configurable \nThe entity hider now has an option to hide clan members \nGround items can now deprioritize the left-click Take
option on hidden items,\nmaking it no longer possible to accidentally left click Take
those items \nScreenmarkers now has a toggle to show their names as a label above the marker \nGroup storage withdraw swap has been added to the menu entry swapper \nHallowed sack was added to the loot tracker \nThe roof removal plugin now has an option to always hide roofs in POH \nJewellery has been added to the item identification plugin \nMod West\'s loot beams models are\nnow used by default for loot beams. There is a setting to change it to use the\nprevious model. \nBlood essence has been added to the item charges plugin \nThe menu entry swapper can now shift-click swap Climb-up and Climb-down on\nstairs and ladders \nThe interact highlight plugin now shows which NPC you are selecting when\nhovering over the menu entry \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 33 contributors this update!
\nAdam (110):\n ge: fix showing active trade price on buy offers\n ground items: fix collapsing item examine\n Bump to 1.8.7.1-SNAPSHOT\n ge: fix showing active trade price on buy offers\n ground items: fix collapsing item examine\n menu swapper: use menu callback for swap config\n menu swapper: don\'t show default action if one isn\'t configured\n menu swapper: fix built in swaps overriding custom swaps\n Update logback to 1.2.9\n ci: use adoptopenjdk\n chat message manager: fix recoloring gim messages\n http-service: remove cache controller\n scripts: remove scripts\n config manager: increase sendConfig delay to 5 minutes\n client: move jagexcache into .runelite\n config manager: remove migrateConfig\n api: remove set/get game drawing mode\n http-service: move several hardcoded urls to config\n cache: remove http-api dependency\n http-api: lombokize a few classes\n Move http-api clients to rl-client\n Move okhttp client from http-api\n Remove http-api and http-service\n checkstyle: remove suppressions\n gpu: fix stretched mode scaling issues on macos\n clientui: disable ui scale transform for client bounds on macos\n gpu: queue fbo reset on startup too\n api: add arguments and mousey to scriptevent\n Set macos quitStrategy to CLOSE_ALL_WINDOWS\n ui: set DO_NOTHING_ON_CLOSE close op prior to disposing\n api: add getConfig to deco, game, and ground objects\n api: fix wallobject orientation javadoc and use\n Fix race with client startup and low detail/chat icon loading\n world map: use game state change event to load quest icons\n menu swapper: remove examine swap\n Revert "world map: use game state change event to load quest icons"\n world map: remove quest icon load retry if not logged in\n api: add new head icons\n slayer plugin: support fake xpdrops\n ge plugin: disable fuzzy search if search event is consumed\n loot manager: add nex\n xp updater: add seasonal worlds to wom\n Use leagues hiscores for seasonal worlds\n discord: add nex boss area\n ground items: add nex instance area\n run energy: fix orb text flickering\n entity hider: add option to hide clan members\n item charges: remove unused slot from ItemChargeInfobox\n ui: add infobox font config\n infobox overlay: hoist some config values out of the render loop\n chat notifications: restore normal color after own name highlight\n chat message manager: support game chat color settings\n chat notifications: fix restoring last color on own name highlight\n chat notifications: simplify finding closing color in pattern matching\n chat message manager: format rl-messages at chat build time\n ground items: fix show item quantities to work with no item highlight mode\n ground items: add option to deprioritize hidden item options\n api: make ClanMember an interface\n api: remove tileitem spawn time\n api: combine projectileid and graphicid\n api: add actor graphic height accessors\n api: use deques for projectiles and graphicsobjects\n api: add projectile target and end cycle setter\n api: add GraphicsObject finished setter\n api: add projectile creation api\n Revert "Merge pull request #14512 from wayne-li2/anagram-clue-builder"\n anagram clue: use builder pattern\n clues: use lists instead of sets for clues\n cache: remove netty-buffer dependency\n slayer: fix reanimated abyssals not counting for tasks\n devtools: add object animation ids\n xptracker: use seasonal wom version for seasonal worlds\n interact highlight: support menu option mouseover\n client: add runtime config\n itemmanager: sanity check wiki prices\n plugins: prevent plugins from overriding equals and hashCode\n ground items: make hotkey configurable\n defaultworld: always changeWorld on client thread\n overlay manager: prevent loading dynamic overlay positions\n gpu: reset fbo on resizablechanged on macos\n gpu: replace count_prio_offset switch with loop\n gpu: apply hsl override to flat shade faces\n Update dnschange url\n linkbrowser: prefer xdg-open over Desktop.open and browse\n clues: add Jimmy Dazzler clue\n clues: add Yu\'biusk clue\n screen markers: add a tooltip to border thickness spinner\n screen markers: remove fill toggle\n screen markers: make ScreenMarkerRenderable implement RenderableEntity\n screen markers: add marker labels\n jshell: fix run/clear tooltips\n client: update archive-patcher to 1.2\n cache: script: remove unused import\n item manager: fix active price threshold calculation\n idle notifier: disable by default\n api: expand item api for inventory model replacement\n client: add plugin sideloading\n cache: rename texture animation direction and speed\n gpu: move texture animation to gpu\n gpu: fix anim array indexes with sparse texture array\n loottracker: split panel construction into methods\n loottracker: replace getTotalPrice with stream\n loottracker: hoist box emptyborder from loop\n config manager: post RuneScapeProfileChanged when new profiles are created\n loot tracker: store loot in config\n runelite: disable option parser abbreviations\n api: add methods to get selected item\n config manager: run shutdown hook after plugins\n gpu: don\'t animate textures when loading\n api: add isFollower to NPCComposition\n\nAdam Keenan (2):\n menu swapper: add group storage shift deposit swap\n chat commands: fix cmb to use correct endpoint\n\nChristos-Apostolidis (1):\n loot tracker: add hallowed sack\n\nCody Massin (2):\n roof removal: build overrides for POH on startUp\n roof removal: optimize POH region override check\n\nCyborger1 (2):\n clues: fix Guardian mummy capitalization\n clientui: run PluginPanel#onDeactivate when switching panels\n\nDaniel Bolink (1):\n woodcutting: add Isle Of Souls trees\n\nDavid Luong (1):\n item identification: add goblin and magic ess potions\n\nFaycal (1):\n item identification: add rejuvenation potion\n\nHenry Darnell (1):\n login screen: Add random override option (#14341)\n\nHippolyte Mithouard (1):\n barrows: fix npe from receiving an empty reward\n\nHooder (1):\n gpu: Fix loading gluegen natives on some Windows configurations\n\nHydrox6 (11):\n worldpoint: use passed plane when getting instance chunk for localpoint\n roof removal: use worldpoint\'s plane instead of current plane\n roof removal: add overrides for unused area in the POH dungeon\n roof removal: add support for always hiding roofs in POH\n clientUI: show if the client is in safe mode in the window title\n login screen: add nex login screen\n item charges: add ancient brew\n item identification: add ancient brew\n skill calc: add ancient brew\n dps counter: add nex\n timers: add shattered relics home teleport\n\nIllya Myshakov (1):\n chat commands: add Nexling pet\n\nJeremy Plsek (1):\n notifier: set app name when using notify-send\n\nJordan Atwood (2):\n widget overlay: Don\'t draw empty wilderness K/D box\n slayer: Fix name matching\n\nJordan Hanley (1):\n item identification: add jewellery\n\nJosh (1):\n npcunaggroarea: add option to hide when out of combat\n\nLootBagger (2):\n plugin manager: fix plugins with multiple dependencies\n plugin manager: optimize plugin dependency sorting\n\nMax Weber (10):\n grounditems/Lootbeam: handle loading models correctly\n rl-client: keep plugin hub jars around for longer\n rl-api: expose ModelData & model transformation methods\n rl-api: expose cache getters\n grounditems: Add Modern style loot beam\n rl-api: fluent widget api\n rl-api: add MagicConstant annotations\n grounditems/Lootbeam: use more faithful colors\n config: implement toString/equals/hashCode for Config proxies\n Update Quests to 2022-2-9\n\nMinh Pham (1):\n slayer: add penguins to bird task\n\nNakst (1):\n cache: refactor ModelLoader.decodeOldFormat variable names\n\nRobert (1):\n interface styles: fix 2005 style icon alignment\n\nSirGirion (1):\n itemcharges: Add support for blood essence\n\nSkretzo (1):\n screen markers: fix visibilityLabel tooltip\n\nThource (1):\n Remove daily sand check for UIM accounts\n\nTomas Slusny (1):\n discord: accept animated avatars in matcher\n\nTony Wang (1):\n cache: script: use linkedhashmap for switch map\n\nViktor Horsmanheimo (1):\n notifier: add timeout option for Linux\n\nWayne Li (4):\n clues: Fix some anagrams (#14486)\n HotColdClue: Delete Twisted Leagues code\n clue: Update area descriptions of anagram clues\n clue: Refactor Anagrams into builder model\n\nawbasham (1):\n dps counter: add Corrupted Hunllef\n\ndekvall (1):\n worldmap: use vanilla icons for lovakengj mining site\n\ngeheur (1):\n menu swapper: add climb-up and climb-down swaps\n\ntesting-ongithub (4):\n Add option to disable system tray icon\n Fix clicking tray icon not bringing client to front on macOS\n Don\'t force focus on tray icon click on macOS when already focused\n fairy ring: add Yu\'biusk\n
\n',image:"/img/blog/1.8.13-Release/lootimport.png"}}}]);
+//# sourceMappingURL=151.38831e06.chunk.js.map
\ No newline at end of file
diff --git a/static/js/151.3c7879ef.chunk.js.map b/static/js/151.38831e06.chunk.js.map
similarity index 99%
rename from static/js/151.3c7879ef.chunk.js.map
rename to static/js/151.38831e06.chunk.js.map
index be11eb63b..3eb799acb 100644
--- a/static/js/151.3c7879ef.chunk.js.map
+++ b/static/js/151.38831e06.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-03-09-19-00-1.8.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,4BAA4B,OAAS,OAAO,KAAO,4uZAAgxZ,MAAQ","file":"static/js/151.3c7879ef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.8 - 1.8.13 Releases\",\"description\":\"Loot tracker improvements\",\"author\":\"Adam\",\"body\":\"Loottracker changes \\nThe loot tracker now always remembers loot between client sessions, even when\\nnot logged in with a RuneLite account. Additionally, the loot is stored\\nper-profile now instead of combined for each profile. This means that separate\\ngame profiles, such as main game, leagues, deadman, as well as separate\\nRuneScape accounts loot are all separately tracked. Loot is now saved to up to 1\\nyear from the most recent drop.
\\nThe old saved loot must be imported into the correct profile manually by\\nclicking the import button in the loot tracker panel if you wish to keep\\nyour old saved loot:
\\n
\\nNew runelite.net link from the Old School RuneScape home page \\nJagex have added a direct link to https://runelite.net \\nfrom the Old School RuneScape homepage . This\\nis due, in part, to the phishing sites which primarily show on Google search.
\\nDue to this we recommend finding RuneLite by following the link from the\\nofficial Old School RuneScape homepage .
\\nWe also recommend using an adblocker when browsing the web if you aren't\\nalready, which blocks the phishing ads on Google and other ads, such as uBlock\\nOrigin (available for Google\\nChrome ,\\nMicrosoft\\nEdge \\nand Firefox .\\n(Disclaimer: we are not affiliated with uBlock Origin and are happy users))
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe alt key used to configure the ground items plugin is now configurable \\nThe entity hider now has an option to hide clan members \\nGround items can now deprioritize the left-click Take
option on hidden items,\\nmaking it no longer possible to accidentally left click Take
those items \\nScreenmarkers now has a toggle to show their names as a label above the marker \\nGroup storage withdraw swap has been added to the menu entry swapper \\nHallowed sack was added to the loot tracker \\nThe roof removal plugin now has an option to always hide roofs in POH \\nJewellery has been added to the item identification plugin \\nMod West's loot beams models are\\nnow used by default for loot beams. There is a setting to change it to use the\\nprevious model. \\nBlood essence has been added to the item charges plugin \\nThe menu entry swapper can now shift-click swap Climb-up and Climb-down on\\nstairs and ladders \\nThe interact highlight plugin now shows which NPC you are selecting when\\nhovering over the menu entry \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 33 contributors this update!
\\nAdam (110):\\n ge: fix showing active trade price on buy offers\\n ground items: fix collapsing item examine\\n Bump to 1.8.7.1-SNAPSHOT\\n ge: fix showing active trade price on buy offers\\n ground items: fix collapsing item examine\\n menu swapper: use menu callback for swap config\\n menu swapper: don't show default action if one isn't configured\\n menu swapper: fix built in swaps overriding custom swaps\\n Update logback to 1.2.9\\n ci: use adoptopenjdk\\n chat message manager: fix recoloring gim messages\\n http-service: remove cache controller\\n scripts: remove scripts\\n config manager: increase sendConfig delay to 5 minutes\\n client: move jagexcache into .runelite\\n config manager: remove migrateConfig\\n api: remove set/get game drawing mode\\n http-service: move several hardcoded urls to config\\n cache: remove http-api dependency\\n http-api: lombokize a few classes\\n Move http-api clients to rl-client\\n Move okhttp client from http-api\\n Remove http-api and http-service\\n checkstyle: remove suppressions\\n gpu: fix stretched mode scaling issues on macos\\n clientui: disable ui scale transform for client bounds on macos\\n gpu: queue fbo reset on startup too\\n api: add arguments and mousey to scriptevent\\n Set macos quitStrategy to CLOSE_ALL_WINDOWS\\n ui: set DO_NOTHING_ON_CLOSE close op prior to disposing\\n api: add getConfig to deco, game, and ground objects\\n api: fix wallobject orientation javadoc and use\\n Fix race with client startup and low detail/chat icon loading\\n world map: use game state change event to load quest icons\\n menu swapper: remove examine swap\\n Revert "world map: use game state change event to load quest icons"\\n world map: remove quest icon load retry if not logged in\\n api: add new head icons\\n slayer plugin: support fake xpdrops\\n ge plugin: disable fuzzy search if search event is consumed\\n loot manager: add nex\\n xp updater: add seasonal worlds to wom\\n Use leagues hiscores for seasonal worlds\\n discord: add nex boss area\\n ground items: add nex instance area\\n run energy: fix orb text flickering\\n entity hider: add option to hide clan members\\n item charges: remove unused slot from ItemChargeInfobox\\n ui: add infobox font config\\n infobox overlay: hoist some config values out of the render loop\\n chat notifications: restore normal color after own name highlight\\n chat message manager: support game chat color settings\\n chat notifications: fix restoring last color on own name highlight\\n chat notifications: simplify finding closing color in pattern matching\\n chat message manager: format rl-messages at chat build time\\n ground items: fix show item quantities to work with no item highlight mode\\n ground items: add option to deprioritize hidden item options\\n api: make ClanMember an interface\\n api: remove tileitem spawn time\\n api: combine projectileid and graphicid\\n api: add actor graphic height accessors\\n api: use deques for projectiles and graphicsobjects\\n api: add projectile target and end cycle setter\\n api: add GraphicsObject finished setter\\n api: add projectile creation api\\n Revert "Merge pull request #14512 from wayne-li2/anagram-clue-builder"\\n anagram clue: use builder pattern\\n clues: use lists instead of sets for clues\\n cache: remove netty-buffer dependency\\n slayer: fix reanimated abyssals not counting for tasks\\n devtools: add object animation ids\\n xptracker: use seasonal wom version for seasonal worlds\\n interact highlight: support menu option mouseover\\n client: add runtime config\\n itemmanager: sanity check wiki prices\\n plugins: prevent plugins from overriding equals and hashCode\\n ground items: make hotkey configurable\\n defaultworld: always changeWorld on client thread\\n overlay manager: prevent loading dynamic overlay positions\\n gpu: reset fbo on resizablechanged on macos\\n gpu: replace count_prio_offset switch with loop\\n gpu: apply hsl override to flat shade faces\\n Update dnschange url\\n linkbrowser: prefer xdg-open over Desktop.open and browse\\n clues: add Jimmy Dazzler clue\\n clues: add Yu'biusk clue\\n screen markers: add a tooltip to border thickness spinner\\n screen markers: remove fill toggle\\n screen markers: make ScreenMarkerRenderable implement RenderableEntity\\n screen markers: add marker labels\\n jshell: fix run/clear tooltips\\n client: update archive-patcher to 1.2\\n cache: script: remove unused import\\n item manager: fix active price threshold calculation\\n idle notifier: disable by default\\n api: expand item api for inventory model replacement\\n client: add plugin sideloading\\n cache: rename texture animation direction and speed\\n gpu: move texture animation to gpu\\n gpu: fix anim array indexes with sparse texture array\\n loottracker: split panel construction into methods\\n loottracker: replace getTotalPrice with stream\\n loottracker: hoist box emptyborder from loop\\n config manager: post RuneScapeProfileChanged when new profiles are created\\n loot tracker: store loot in config\\n runelite: disable option parser abbreviations\\n api: add methods to get selected item\\n config manager: run shutdown hook after plugins\\n gpu: don't animate textures when loading\\n api: add isFollower to NPCComposition\\n\\nAdam Keenan (2):\\n menu swapper: add group storage shift deposit swap\\n chat commands: fix cmb to use correct endpoint\\n\\nChristos-Apostolidis (1):\\n loot tracker: add hallowed sack\\n\\nCody Massin (2):\\n roof removal: build overrides for POH on startUp\\n roof removal: optimize POH region override check\\n\\nCyborger1 (2):\\n clues: fix Guardian mummy capitalization\\n clientui: run PluginPanel#onDeactivate when switching panels\\n\\nDaniel Bolink (1):\\n woodcutting: add Isle Of Souls trees\\n\\nDavid Luong (1):\\n item identification: add goblin and magic ess potions\\n\\nFaycal (1):\\n item identification: add rejuvenation potion\\n\\nHenry Darnell (1):\\n login screen: Add random override option (#14341)\\n\\nHippolyte Mithouard (1):\\n barrows: fix npe from receiving an empty reward\\n\\nHooder (1):\\n gpu: Fix loading gluegen natives on some Windows configurations\\n\\nHydrox6 (11):\\n worldpoint: use passed plane when getting instance chunk for localpoint\\n roof removal: use worldpoint's plane instead of current plane\\n roof removal: add overrides for unused area in the POH dungeon\\n roof removal: add support for always hiding roofs in POH\\n clientUI: show if the client is in safe mode in the window title\\n login screen: add nex login screen\\n item charges: add ancient brew\\n item identification: add ancient brew\\n skill calc: add ancient brew\\n dps counter: add nex\\n timers: add shattered relics home teleport\\n\\nIllya Myshakov (1):\\n chat commands: add Nexling pet\\n\\nJeremy Plsek (1):\\n notifier: set app name when using notify-send\\n\\nJordan Atwood (2):\\n widget overlay: Don't draw empty wilderness K/D box\\n slayer: Fix name matching\\n\\nJordan Hanley (1):\\n item identification: add jewellery\\n\\nJosh (1):\\n npcunaggroarea: add option to hide when out of combat\\n\\nLootBagger (2):\\n plugin manager: fix plugins with multiple dependencies\\n plugin manager: optimize plugin dependency sorting\\n\\nMax Weber (10):\\n grounditems/Lootbeam: handle loading models correctly\\n rl-client: keep plugin hub jars around for longer\\n rl-api: expose ModelData & model transformation methods\\n rl-api: expose cache getters\\n grounditems: Add Modern style loot beam\\n rl-api: fluent widget api\\n rl-api: add MagicConstant annotations\\n grounditems/Lootbeam: use more faithful colors\\n config: implement toString/equals/hashCode for Config proxies\\n Update Quests to 2022-2-9\\n\\nMinh Pham (1):\\n slayer: add penguins to bird task\\n\\nNakst (1):\\n cache: refactor ModelLoader.decodeOldFormat variable names\\n\\nRobert (1):\\n interface styles: fix 2005 style icon alignment\\n\\nSirGirion (1):\\n itemcharges: Add support for blood essence\\n\\nSkretzo (1):\\n screen markers: fix visibilityLabel tooltip\\n\\nThource (1):\\n Remove daily sand check for UIM accounts\\n\\nTomas Slusny (1):\\n discord: accept animated avatars in matcher\\n\\nTony Wang (1):\\n cache: script: use linkedhashmap for switch map\\n\\nViktor Horsmanheimo (1):\\n notifier: add timeout option for Linux\\n\\nWayne Li (4):\\n clues: Fix some anagrams (#14486)\\n HotColdClue: Delete Twisted Leagues code\\n clue: Update area descriptions of anagram clues\\n clue: Refactor Anagrams into builder model\\n\\nawbasham (1):\\n dps counter: add Corrupted Hunllef\\n\\ndekvall (1):\\n worldmap: use vanilla icons for lovakengj mining site\\n\\ngeheur (1):\\n menu swapper: add climb-up and climb-down swaps\\n\\ntesting-ongithub (4):\\n Add option to disable system tray icon\\n Fix clicking tray icon not bringing client to front on macOS\\n Don't force focus on tray icon click on macOS when already focused\\n fairy ring: add Yu'biusk\\n
\\n\",\"image\":\"/img/blog/1.8.13-Release/lootimport.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-03-09-19-00-1.8.13-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,4BAA4B,OAAS,OAAO,KAAO,4uZAAgxZ,MAAQ","file":"static/js/151.38831e06.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.8 - 1.8.13 Releases\",\"description\":\"Loot tracker improvements\",\"author\":\"Adam\",\"body\":\"Loottracker changes \\nThe loot tracker now always remembers loot between client sessions, even when\\nnot logged in with a RuneLite account. Additionally, the loot is stored\\nper-profile now instead of combined for each profile. This means that separate\\ngame profiles, such as main game, leagues, deadman, as well as separate\\nRuneScape accounts loot are all separately tracked. Loot is now saved to up to 1\\nyear from the most recent drop.
\\nThe old saved loot must be imported into the correct profile manually by\\nclicking the import button in the loot tracker panel if you wish to keep\\nyour old saved loot:
\\n
\\nNew runelite.net link from the Old School RuneScape home page \\nJagex have added a direct link to https://runelite.net \\nfrom the Old School RuneScape homepage . This\\nis due, in part, to the phishing sites which primarily show on Google search.
\\nDue to this we recommend finding RuneLite by following the link from the\\nofficial Old School RuneScape homepage .
\\nWe also recommend using an adblocker when browsing the web if you aren't\\nalready, which blocks the phishing ads on Google and other ads, such as uBlock\\nOrigin (available for Google\\nChrome ,\\nMicrosoft\\nEdge \\nand Firefox .\\n(Disclaimer: we are not affiliated with uBlock Origin and are happy users))
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe alt key used to configure the ground items plugin is now configurable \\nThe entity hider now has an option to hide clan members \\nGround items can now deprioritize the left-click Take
option on hidden items,\\nmaking it no longer possible to accidentally left click Take
those items \\nScreenmarkers now has a toggle to show their names as a label above the marker \\nGroup storage withdraw swap has been added to the menu entry swapper \\nHallowed sack was added to the loot tracker \\nThe roof removal plugin now has an option to always hide roofs in POH \\nJewellery has been added to the item identification plugin \\nMod West's loot beams models are\\nnow used by default for loot beams. There is a setting to change it to use the\\nprevious model. \\nBlood essence has been added to the item charges plugin \\nThe menu entry swapper can now shift-click swap Climb-up and Climb-down on\\nstairs and ladders \\nThe interact highlight plugin now shows which NPC you are selecting when\\nhovering over the menu entry \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 33 contributors this update!
\\nAdam (110):\\n ge: fix showing active trade price on buy offers\\n ground items: fix collapsing item examine\\n Bump to 1.8.7.1-SNAPSHOT\\n ge: fix showing active trade price on buy offers\\n ground items: fix collapsing item examine\\n menu swapper: use menu callback for swap config\\n menu swapper: don't show default action if one isn't configured\\n menu swapper: fix built in swaps overriding custom swaps\\n Update logback to 1.2.9\\n ci: use adoptopenjdk\\n chat message manager: fix recoloring gim messages\\n http-service: remove cache controller\\n scripts: remove scripts\\n config manager: increase sendConfig delay to 5 minutes\\n client: move jagexcache into .runelite\\n config manager: remove migrateConfig\\n api: remove set/get game drawing mode\\n http-service: move several hardcoded urls to config\\n cache: remove http-api dependency\\n http-api: lombokize a few classes\\n Move http-api clients to rl-client\\n Move okhttp client from http-api\\n Remove http-api and http-service\\n checkstyle: remove suppressions\\n gpu: fix stretched mode scaling issues on macos\\n clientui: disable ui scale transform for client bounds on macos\\n gpu: queue fbo reset on startup too\\n api: add arguments and mousey to scriptevent\\n Set macos quitStrategy to CLOSE_ALL_WINDOWS\\n ui: set DO_NOTHING_ON_CLOSE close op prior to disposing\\n api: add getConfig to deco, game, and ground objects\\n api: fix wallobject orientation javadoc and use\\n Fix race with client startup and low detail/chat icon loading\\n world map: use game state change event to load quest icons\\n menu swapper: remove examine swap\\n Revert "world map: use game state change event to load quest icons"\\n world map: remove quest icon load retry if not logged in\\n api: add new head icons\\n slayer plugin: support fake xpdrops\\n ge plugin: disable fuzzy search if search event is consumed\\n loot manager: add nex\\n xp updater: add seasonal worlds to wom\\n Use leagues hiscores for seasonal worlds\\n discord: add nex boss area\\n ground items: add nex instance area\\n run energy: fix orb text flickering\\n entity hider: add option to hide clan members\\n item charges: remove unused slot from ItemChargeInfobox\\n ui: add infobox font config\\n infobox overlay: hoist some config values out of the render loop\\n chat notifications: restore normal color after own name highlight\\n chat message manager: support game chat color settings\\n chat notifications: fix restoring last color on own name highlight\\n chat notifications: simplify finding closing color in pattern matching\\n chat message manager: format rl-messages at chat build time\\n ground items: fix show item quantities to work with no item highlight mode\\n ground items: add option to deprioritize hidden item options\\n api: make ClanMember an interface\\n api: remove tileitem spawn time\\n api: combine projectileid and graphicid\\n api: add actor graphic height accessors\\n api: use deques for projectiles and graphicsobjects\\n api: add projectile target and end cycle setter\\n api: add GraphicsObject finished setter\\n api: add projectile creation api\\n Revert "Merge pull request #14512 from wayne-li2/anagram-clue-builder"\\n anagram clue: use builder pattern\\n clues: use lists instead of sets for clues\\n cache: remove netty-buffer dependency\\n slayer: fix reanimated abyssals not counting for tasks\\n devtools: add object animation ids\\n xptracker: use seasonal wom version for seasonal worlds\\n interact highlight: support menu option mouseover\\n client: add runtime config\\n itemmanager: sanity check wiki prices\\n plugins: prevent plugins from overriding equals and hashCode\\n ground items: make hotkey configurable\\n defaultworld: always changeWorld on client thread\\n overlay manager: prevent loading dynamic overlay positions\\n gpu: reset fbo on resizablechanged on macos\\n gpu: replace count_prio_offset switch with loop\\n gpu: apply hsl override to flat shade faces\\n Update dnschange url\\n linkbrowser: prefer xdg-open over Desktop.open and browse\\n clues: add Jimmy Dazzler clue\\n clues: add Yu'biusk clue\\n screen markers: add a tooltip to border thickness spinner\\n screen markers: remove fill toggle\\n screen markers: make ScreenMarkerRenderable implement RenderableEntity\\n screen markers: add marker labels\\n jshell: fix run/clear tooltips\\n client: update archive-patcher to 1.2\\n cache: script: remove unused import\\n item manager: fix active price threshold calculation\\n idle notifier: disable by default\\n api: expand item api for inventory model replacement\\n client: add plugin sideloading\\n cache: rename texture animation direction and speed\\n gpu: move texture animation to gpu\\n gpu: fix anim array indexes with sparse texture array\\n loottracker: split panel construction into methods\\n loottracker: replace getTotalPrice with stream\\n loottracker: hoist box emptyborder from loop\\n config manager: post RuneScapeProfileChanged when new profiles are created\\n loot tracker: store loot in config\\n runelite: disable option parser abbreviations\\n api: add methods to get selected item\\n config manager: run shutdown hook after plugins\\n gpu: don't animate textures when loading\\n api: add isFollower to NPCComposition\\n\\nAdam Keenan (2):\\n menu swapper: add group storage shift deposit swap\\n chat commands: fix cmb to use correct endpoint\\n\\nChristos-Apostolidis (1):\\n loot tracker: add hallowed sack\\n\\nCody Massin (2):\\n roof removal: build overrides for POH on startUp\\n roof removal: optimize POH region override check\\n\\nCyborger1 (2):\\n clues: fix Guardian mummy capitalization\\n clientui: run PluginPanel#onDeactivate when switching panels\\n\\nDaniel Bolink (1):\\n woodcutting: add Isle Of Souls trees\\n\\nDavid Luong (1):\\n item identification: add goblin and magic ess potions\\n\\nFaycal (1):\\n item identification: add rejuvenation potion\\n\\nHenry Darnell (1):\\n login screen: Add random override option (#14341)\\n\\nHippolyte Mithouard (1):\\n barrows: fix npe from receiving an empty reward\\n\\nHooder (1):\\n gpu: Fix loading gluegen natives on some Windows configurations\\n\\nHydrox6 (11):\\n worldpoint: use passed plane when getting instance chunk for localpoint\\n roof removal: use worldpoint's plane instead of current plane\\n roof removal: add overrides for unused area in the POH dungeon\\n roof removal: add support for always hiding roofs in POH\\n clientUI: show if the client is in safe mode in the window title\\n login screen: add nex login screen\\n item charges: add ancient brew\\n item identification: add ancient brew\\n skill calc: add ancient brew\\n dps counter: add nex\\n timers: add shattered relics home teleport\\n\\nIllya Myshakov (1):\\n chat commands: add Nexling pet\\n\\nJeremy Plsek (1):\\n notifier: set app name when using notify-send\\n\\nJordan Atwood (2):\\n widget overlay: Don't draw empty wilderness K/D box\\n slayer: Fix name matching\\n\\nJordan Hanley (1):\\n item identification: add jewellery\\n\\nJosh (1):\\n npcunaggroarea: add option to hide when out of combat\\n\\nLootBagger (2):\\n plugin manager: fix plugins with multiple dependencies\\n plugin manager: optimize plugin dependency sorting\\n\\nMax Weber (10):\\n grounditems/Lootbeam: handle loading models correctly\\n rl-client: keep plugin hub jars around for longer\\n rl-api: expose ModelData & model transformation methods\\n rl-api: expose cache getters\\n grounditems: Add Modern style loot beam\\n rl-api: fluent widget api\\n rl-api: add MagicConstant annotations\\n grounditems/Lootbeam: use more faithful colors\\n config: implement toString/equals/hashCode for Config proxies\\n Update Quests to 2022-2-9\\n\\nMinh Pham (1):\\n slayer: add penguins to bird task\\n\\nNakst (1):\\n cache: refactor ModelLoader.decodeOldFormat variable names\\n\\nRobert (1):\\n interface styles: fix 2005 style icon alignment\\n\\nSirGirion (1):\\n itemcharges: Add support for blood essence\\n\\nSkretzo (1):\\n screen markers: fix visibilityLabel tooltip\\n\\nThource (1):\\n Remove daily sand check for UIM accounts\\n\\nTomas Slusny (1):\\n discord: accept animated avatars in matcher\\n\\nTony Wang (1):\\n cache: script: use linkedhashmap for switch map\\n\\nViktor Horsmanheimo (1):\\n notifier: add timeout option for Linux\\n\\nWayne Li (4):\\n clues: Fix some anagrams (#14486)\\n HotColdClue: Delete Twisted Leagues code\\n clue: Update area descriptions of anagram clues\\n clue: Refactor Anagrams into builder model\\n\\nawbasham (1):\\n dps counter: add Corrupted Hunllef\\n\\ndekvall (1):\\n worldmap: use vanilla icons for lovakengj mining site\\n\\ngeheur (1):\\n menu swapper: add climb-up and climb-down swaps\\n\\ntesting-ongithub (4):\\n Add option to disable system tray icon\\n Fix clicking tray icon not bringing client to front on macOS\\n Don't force focus on tray icon click on macOS when already focused\\n fairy ring: add Yu'biusk\\n
\\n\",\"image\":\"/img/blog/1.8.13-Release/lootimport.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/152.1d0042ba.chunk.js b/static/js/152.372dddf9.chunk.js
similarity index 99%
rename from static/js/152.1d0042ba.chunk.js
rename to static/js/152.372dddf9.chunk.js
index 58704c4af..6df6edcfa 100644
--- a/static/js/152.1d0042ba.chunk.js
+++ b/static/js/152.372dddf9.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[152],{427:function(e,n){e.exports={title:"1.8.14 - 1.8.19 Releases",description:"Compost tracking and menu swapper improvements",author:"Adam",body:'Compost tracking \nThe farming tracker now keeps track of compost state of each patch, so you no\nlonger have to remember if you\'ve composted patches or not. It works with the\nfertile soil spell, regular and bottomless compost buckets.
\n \n
\nMenu swapper improvements \nThe left-click option on most NPCs and objects can now be set by shift-right\nclicking and selecting the "Swap" option. These manually set swaps override\nthe more general swaps in the plugin configuration.
\nThere are a few exclusions \nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\nmost things should work.
\n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nOpening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick. \nCatching implings is tracked by the loot tracker \nPBs for COX/TOB are now tracked per scale size, such as eg !pb tob 3
, !pb hmt 3
or !pb cox 3
. The overall !pb
is\nnow for the best time at any scale. \nBoss shortnames now work with !lvl
, eg !lvl hydra
. This is similar to !kc
but uses the hiscores instead, thus the\nrank is provided, but the kill count may be outdated \nDragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too \nBank searches now supports filtering by quantity, eg qty>30
\nThe chat filter default behavior no longer strips accents. If you want it to strip accents like before, enable the Strip accents
option.\nThis makes it easier to specifically filter accented characters. \nA bug causing the !pets
icons to not show up sometimes was fixed \nA bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed \nInventory viewer gained an option to hide the inventory view when the bank is open \nMenu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift \nPlayer indicators now additionally colors player names in the trade window \nThe bank plugin now shows total value of group ironman storage \nThe chatbox and inventory interfaces are now movable via holding alt
\n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this update!
\nAdam (112):\n loottracker: refactor inv change events\n loottracker: add imp jars\n loot tracker: support opening multiple imp jars in 1 tick\n loot tracker: track caught implings\n loot tracker: add wilderness loot chest\n loottracker: replace repaint calls with revalidate\n Revert "gpu: Fix loading gluegen natives on some Windows configurations"\n chat message manager: fix gim rl-format messages\n loot tracker: add remember loot option\n gpu: remove newt dependency\n gpu: remove egl dependency\n gpu: update to jogl 2.4.0-rc-20220318\n client: allow setting system properties via runtime config\n gpu: use DebugGL4 in debug mode\n loot tracker: remove import notice\n ground item: expand item lists by default\n gpu: set jogamp.gluegen.TestTempDirExec=false\n api: add Jagex api\n client: add otl token requester\n api: deprecate getUsername\n plugins: replace getUsername uses with getAccountHash\n chat commands: add gotr kc\n chat commands: add hmt alias for theatre of blood hard mode\n clientthread: log exceptions at error level\n config manager: log profile changes\n loot tracker: fix race with loading saved loot and client startup\n plugins: readd quest list plugin\n chat commands: fix tob pb tracking\n xp updater: send account hash to templeosrs\n runecraft: remove unnecessary rifts set\n runecraft: update blood rift id\n runecraft: add degraded colossal pouch\n menu swapper: rename SwapConfig to ItemSwapConfig\n menu swapper: add custom object left click swap\n menu swapper: change object left click configure method\n Revert "menu swapper: Add uncharged cell swap for gotr (#14795)"\n chat commands: support boss shortnames for !lvl\n chat commands: refactor skill abbreviation to a switch\n boosts: default to display as infoboxes and only combat stats\n api: add friends chat kick rank\n session manager: open session on executor thread\n menu swapper: add custom npc left click swap\n overlay: add drawAfterLayer that accepts ids for plugins, and javadoc\n api: exclude annotations package from runtime jar\n Move SlayerUnlock to slayer plugin\n FarmingRegion: remove unused varbits field\n blast furnace: remove unused BarOres map\n api: replace varbits enum with ints\n api: deprecate getVar(int) and use getVarbitValue(int)\n chat commands: track team sizes for raids pb\n api: move autoweed to farming plugin\n chat command: use plural "players" to be consistent with cox\n mta: use widget item overlay\n mta: disable by default\n devtools: remove inventory tool\n examine: support item examine on if3 components\n Revert "menu swapper: add deposit-runes swap for gotr"\n hiscores: add gotr\n api: refactor some menu action names\n api: add selected widget api\n api: add menuentry widget accessor\n api: pass menu entry to menu clicked event and forward accessors\n menu swapper: move bank swaps to client tick\n client: replace HttpUrl.parse with HttpUrl.get\n client: replace MediaType.parse with MediaType.get\n fatal error dialog: work with substance laf\n external plugin client: use verificationexception for security exceptions\n api: add item op menu api\n client: update for if3 inventory\n api: add dragTime accessor\n inv grid: fix for if3 inv\n antidrag: update for if3 inv\n item stats: update for if3 inv\n mes: fix item swaps with op4 and op5\n clues: fix tracking cluescroll\n statusbars: update for if3 inv\n runelite: remove otl requester\n timers: update for if3 inv\n examine: fix item examine message recolor\n interact highlight: fix using npc attack color on item use\n interact highlight: fix detecting spell attacks on npc click\n chat commands: update gotr kill message\n examine: fix examining ground items\n examine: remove unused import\n api: remove Nullable on getLocalPlayer\n cl: set pmd cache location\n client: update pmd\n ci: disable maven-shade-plugin\n infobox: consistently require non-negative timer durations\n util: use error log level for exception loggers\n chat commands: support parsing team size pbs off adventure log\n bank plugin: add quantity search\n clues: update guardian mummy cryptic clue\n fairy ring: add Necropolis\n clues: add Necropolis mine coordinate clue hint\n Don\'t overwrite okhttp ua if already set\n crowdsourcing: don\'t include menuoptionclicked event in movementdata\n script assembler: remove runelite-api dependency\n maven: update surefire plugin to 2.22.2\n loottracker: fix tracking imp jars\n map image dumper: use BigBufferedImage\n map image dumper: add main method\n cache: make slf4j-simple an optional dependency\n api: add object composition map setters\n api: add post object composition event\n api: add object composition cache accessor\n chatfilter: add config option for stripping accents\n cache: update indextype names\n chat commands: fix loading pets modicons\n emoji: clean up modicons loading\n friendnotes: clean up modicons loading\n timers: remove unused tzhaar complete matcher\n\nBob Heine (1):\n clues: Add abyssal lanterns as light sources (#14923)\n\nCyborger1 (1):\n clues: Fix capitalization for Dark Mage anagram\n\nElias Lahham (2):\n inventory viewer: hide when bank is open\n menu entry swapper: add house teleport swap\n\nGiovanni van der Schelde (1):\n chat commands: add shortnames for shayzien agility courses\n\nHydrox6 (4):\n ItemMapping: add shattered relics ornament kits\n cannon: add support for shattered relics league ornamental cannon\n npcaggro: always show tutorial overlay if plugin is not calibrated\n npcaggro: fix unintended loss of calibration\n\nJZomDev (1):\n clues: rename Traiborn to Wizard Traiborn\n\nJacob Moody (1):\n item charges: fix binding necklace degrading in gotr\n\nJoRouss (1):\n dps counter: fix only boss damage to work in parties\n\nJonathan Lee (1):\n loot tracker: add guardians of the rift\n\nJordan Atwood (25):\n roof removal: Fix Cabin Fever ships\n roof removal: Add Tutorial Island overrides\n roof removal: Add Grim Tales tower override\n discord: Add Guardians of the Rift minigame\n HotColdLocation: Fix East of Watson\'s house spot\n clues: Support rune crossbow and god book (or) variants\n roof removal: Improve Lletya overrides\n roof removal: Add Ardougne gazebo override\n roof removal: Add Misthalin Mystery overrides\n roof removal: Improve Falador castle overrides\n roof removal: Improve SE Ardougne overrides\n roof removal: Improve Port Phasmatys overrides\n roof removal: Add chaos rc altar override\n roof removal: Improve East Catherby overrides\n roof removal: Add Meiyerditch overrides\n roof removal: Add Keep Le Faye overrides\n roof removal: Add House on the Hill overrides\n roof removal: Improve Gnome Stronghold overrides\n roof removal: Add Witchaven override\n roof removal: Add Rising Sun Inn override\n roof removal: Add Falador wall overrides\n roof removal: Add Braindeath Island override\n plugins: Rename Sedridor to Archmage Sedridor\n github: Add Discussions issue template\n HotColdLocation: Add South-east of Ruins of Ullek spot\n\nJoshua Filby (2):\n cache: use LinkedHashMap for switch jump tables\n rl-client: make overridden scripts have switch cases in defined order\n\nLlemonDuck (1):\n timetracking: add compost tracking\n\nMathew Hylkema (2):\n menu swapper: add deposit-runes swap for gotr\n menu swapper: Add uncharged cell swap for gotr (#14795)\n\nMax Weber (31):\n rl-api: use TileObjects\' z for hulls/clickboxes/outlines\n rl-client: remove questlist plugin\n rl-client/chatcommands/Pet: add abyssal protector\n rl-api/Quest: update to 2022-3-22\n api: add AccountHashChanged event\n config: associate account hashes to rsprofiles\n rl-client: open FatalErrorDialog early during outages\n ClientLoader: allow skipping updating vanilla\n rl-client: show FatalErrorDialog when the client crashes\n config: do not start other plugins during startup\n ScriptID: fix GROUP_IRONMAN_STORAGE_BUILD script arguments\n rl-client: pin new Plugin Hub certificate\n wiki: do not allow lookup-ing empty inventory slots\n antidrag: respect hotkeys\n ScriptID: remove unused scripts\n rl-client: do not create a dependency reduced pom\n Quest: update to 2022-4-27\n rl-client: update ID references to 2022-4-27\n cache: correctly link bought & placeholder items\n cache: do not return partially or doubly lit textures\n rl-api: expose ObjectComposition::varbitId/varPlayerId\n cache: unify jagex hsl conversion\n cache/RegionLoader: allow plugging an external xtea key provider\n cache/MapImageDumper: add layer & brightness configuration\n cache/MapImageDumper: add transparency support\n cache/MapImageDumper: fix icon & wall size & placement\n cache/MapImageDumper: handle pushdown objects correctly\n cache/MapImageDumper: fix object wall checks\n cache/MapImageDumper: draw cross region objs when drawing single regions\n Perspective: fix clickbox for type 11 objects\n rl-api: expose currently playing music/jingle\n\nSirGirion (1):\n timetracking: fix tick rate of teak trees\n\nStephen Au (1):\n spriteid: fix Guthix typo\n\nVandager (1):\n player indicators: decorate player name in trade window\n\nemielv (1):\n clues: add abyssal whip (or) variant\n\norange-puff (1):\n bank: Show Group Ironman storage value (#14395)\n\npwatts6060 (1):\n status bars: Add configurable width for modern resizable interface\n\ntesting-ongithub (1):\n xp tracker: Add toggle for "Open Wise Old Man" menu option\n
\n',image:"/img/blog/1.8.19-Release/compost1.png"}}}]);
-//# sourceMappingURL=152.1d0042ba.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[152],{428:function(e,n){e.exports={title:"1.8.14 - 1.8.19 Releases",description:"Compost tracking and menu swapper improvements",author:"Adam",body:'Compost tracking \nThe farming tracker now keeps track of compost state of each patch, so you no\nlonger have to remember if you\'ve composted patches or not. It works with the\nfertile soil spell, regular and bottomless compost buckets.
\n \n
\nMenu swapper improvements \nThe left-click option on most NPCs and objects can now be set by shift-right\nclicking and selecting the "Swap" option. These manually set swaps override\nthe more general swaps in the plugin configuration.
\nThere are a few exclusions \nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\nmost things should work.
\n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nOpening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick. \nCatching implings is tracked by the loot tracker \nPBs for COX/TOB are now tracked per scale size, such as eg !pb tob 3
, !pb hmt 3
or !pb cox 3
. The overall !pb
is\nnow for the best time at any scale. \nBoss shortnames now work with !lvl
, eg !lvl hydra
. This is similar to !kc
but uses the hiscores instead, thus the\nrank is provided, but the kill count may be outdated \nDragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too \nBank searches now supports filtering by quantity, eg qty>30
\nThe chat filter default behavior no longer strips accents. If you want it to strip accents like before, enable the Strip accents
option.\nThis makes it easier to specifically filter accented characters. \nA bug causing the !pets
icons to not show up sometimes was fixed \nA bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed \nInventory viewer gained an option to hide the inventory view when the bank is open \nMenu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift \nPlayer indicators now additionally colors player names in the trade window \nThe bank plugin now shows total value of group ironman storage \nThe chatbox and inventory interfaces are now movable via holding alt
\n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this update!
\nAdam (112):\n loottracker: refactor inv change events\n loottracker: add imp jars\n loot tracker: support opening multiple imp jars in 1 tick\n loot tracker: track caught implings\n loot tracker: add wilderness loot chest\n loottracker: replace repaint calls with revalidate\n Revert "gpu: Fix loading gluegen natives on some Windows configurations"\n chat message manager: fix gim rl-format messages\n loot tracker: add remember loot option\n gpu: remove newt dependency\n gpu: remove egl dependency\n gpu: update to jogl 2.4.0-rc-20220318\n client: allow setting system properties via runtime config\n gpu: use DebugGL4 in debug mode\n loot tracker: remove import notice\n ground item: expand item lists by default\n gpu: set jogamp.gluegen.TestTempDirExec=false\n api: add Jagex api\n client: add otl token requester\n api: deprecate getUsername\n plugins: replace getUsername uses with getAccountHash\n chat commands: add gotr kc\n chat commands: add hmt alias for theatre of blood hard mode\n clientthread: log exceptions at error level\n config manager: log profile changes\n loot tracker: fix race with loading saved loot and client startup\n plugins: readd quest list plugin\n chat commands: fix tob pb tracking\n xp updater: send account hash to templeosrs\n runecraft: remove unnecessary rifts set\n runecraft: update blood rift id\n runecraft: add degraded colossal pouch\n menu swapper: rename SwapConfig to ItemSwapConfig\n menu swapper: add custom object left click swap\n menu swapper: change object left click configure method\n Revert "menu swapper: Add uncharged cell swap for gotr (#14795)"\n chat commands: support boss shortnames for !lvl\n chat commands: refactor skill abbreviation to a switch\n boosts: default to display as infoboxes and only combat stats\n api: add friends chat kick rank\n session manager: open session on executor thread\n menu swapper: add custom npc left click swap\n overlay: add drawAfterLayer that accepts ids for plugins, and javadoc\n api: exclude annotations package from runtime jar\n Move SlayerUnlock to slayer plugin\n FarmingRegion: remove unused varbits field\n blast furnace: remove unused BarOres map\n api: replace varbits enum with ints\n api: deprecate getVar(int) and use getVarbitValue(int)\n chat commands: track team sizes for raids pb\n api: move autoweed to farming plugin\n chat command: use plural "players" to be consistent with cox\n mta: use widget item overlay\n mta: disable by default\n devtools: remove inventory tool\n examine: support item examine on if3 components\n Revert "menu swapper: add deposit-runes swap for gotr"\n hiscores: add gotr\n api: refactor some menu action names\n api: add selected widget api\n api: add menuentry widget accessor\n api: pass menu entry to menu clicked event and forward accessors\n menu swapper: move bank swaps to client tick\n client: replace HttpUrl.parse with HttpUrl.get\n client: replace MediaType.parse with MediaType.get\n fatal error dialog: work with substance laf\n external plugin client: use verificationexception for security exceptions\n api: add item op menu api\n client: update for if3 inventory\n api: add dragTime accessor\n inv grid: fix for if3 inv\n antidrag: update for if3 inv\n item stats: update for if3 inv\n mes: fix item swaps with op4 and op5\n clues: fix tracking cluescroll\n statusbars: update for if3 inv\n runelite: remove otl requester\n timers: update for if3 inv\n examine: fix item examine message recolor\n interact highlight: fix using npc attack color on item use\n interact highlight: fix detecting spell attacks on npc click\n chat commands: update gotr kill message\n examine: fix examining ground items\n examine: remove unused import\n api: remove Nullable on getLocalPlayer\n cl: set pmd cache location\n client: update pmd\n ci: disable maven-shade-plugin\n infobox: consistently require non-negative timer durations\n util: use error log level for exception loggers\n chat commands: support parsing team size pbs off adventure log\n bank plugin: add quantity search\n clues: update guardian mummy cryptic clue\n fairy ring: add Necropolis\n clues: add Necropolis mine coordinate clue hint\n Don\'t overwrite okhttp ua if already set\n crowdsourcing: don\'t include menuoptionclicked event in movementdata\n script assembler: remove runelite-api dependency\n maven: update surefire plugin to 2.22.2\n loottracker: fix tracking imp jars\n map image dumper: use BigBufferedImage\n map image dumper: add main method\n cache: make slf4j-simple an optional dependency\n api: add object composition map setters\n api: add post object composition event\n api: add object composition cache accessor\n chatfilter: add config option for stripping accents\n cache: update indextype names\n chat commands: fix loading pets modicons\n emoji: clean up modicons loading\n friendnotes: clean up modicons loading\n timers: remove unused tzhaar complete matcher\n\nBob Heine (1):\n clues: Add abyssal lanterns as light sources (#14923)\n\nCyborger1 (1):\n clues: Fix capitalization for Dark Mage anagram\n\nElias Lahham (2):\n inventory viewer: hide when bank is open\n menu entry swapper: add house teleport swap\n\nGiovanni van der Schelde (1):\n chat commands: add shortnames for shayzien agility courses\n\nHydrox6 (4):\n ItemMapping: add shattered relics ornament kits\n cannon: add support for shattered relics league ornamental cannon\n npcaggro: always show tutorial overlay if plugin is not calibrated\n npcaggro: fix unintended loss of calibration\n\nJZomDev (1):\n clues: rename Traiborn to Wizard Traiborn\n\nJacob Moody (1):\n item charges: fix binding necklace degrading in gotr\n\nJoRouss (1):\n dps counter: fix only boss damage to work in parties\n\nJonathan Lee (1):\n loot tracker: add guardians of the rift\n\nJordan Atwood (25):\n roof removal: Fix Cabin Fever ships\n roof removal: Add Tutorial Island overrides\n roof removal: Add Grim Tales tower override\n discord: Add Guardians of the Rift minigame\n HotColdLocation: Fix East of Watson\'s house spot\n clues: Support rune crossbow and god book (or) variants\n roof removal: Improve Lletya overrides\n roof removal: Add Ardougne gazebo override\n roof removal: Add Misthalin Mystery overrides\n roof removal: Improve Falador castle overrides\n roof removal: Improve SE Ardougne overrides\n roof removal: Improve Port Phasmatys overrides\n roof removal: Add chaos rc altar override\n roof removal: Improve East Catherby overrides\n roof removal: Add Meiyerditch overrides\n roof removal: Add Keep Le Faye overrides\n roof removal: Add House on the Hill overrides\n roof removal: Improve Gnome Stronghold overrides\n roof removal: Add Witchaven override\n roof removal: Add Rising Sun Inn override\n roof removal: Add Falador wall overrides\n roof removal: Add Braindeath Island override\n plugins: Rename Sedridor to Archmage Sedridor\n github: Add Discussions issue template\n HotColdLocation: Add South-east of Ruins of Ullek spot\n\nJoshua Filby (2):\n cache: use LinkedHashMap for switch jump tables\n rl-client: make overridden scripts have switch cases in defined order\n\nLlemonDuck (1):\n timetracking: add compost tracking\n\nMathew Hylkema (2):\n menu swapper: add deposit-runes swap for gotr\n menu swapper: Add uncharged cell swap for gotr (#14795)\n\nMax Weber (31):\n rl-api: use TileObjects\' z for hulls/clickboxes/outlines\n rl-client: remove questlist plugin\n rl-client/chatcommands/Pet: add abyssal protector\n rl-api/Quest: update to 2022-3-22\n api: add AccountHashChanged event\n config: associate account hashes to rsprofiles\n rl-client: open FatalErrorDialog early during outages\n ClientLoader: allow skipping updating vanilla\n rl-client: show FatalErrorDialog when the client crashes\n config: do not start other plugins during startup\n ScriptID: fix GROUP_IRONMAN_STORAGE_BUILD script arguments\n rl-client: pin new Plugin Hub certificate\n wiki: do not allow lookup-ing empty inventory slots\n antidrag: respect hotkeys\n ScriptID: remove unused scripts\n rl-client: do not create a dependency reduced pom\n Quest: update to 2022-4-27\n rl-client: update ID references to 2022-4-27\n cache: correctly link bought & placeholder items\n cache: do not return partially or doubly lit textures\n rl-api: expose ObjectComposition::varbitId/varPlayerId\n cache: unify jagex hsl conversion\n cache/RegionLoader: allow plugging an external xtea key provider\n cache/MapImageDumper: add layer & brightness configuration\n cache/MapImageDumper: add transparency support\n cache/MapImageDumper: fix icon & wall size & placement\n cache/MapImageDumper: handle pushdown objects correctly\n cache/MapImageDumper: fix object wall checks\n cache/MapImageDumper: draw cross region objs when drawing single regions\n Perspective: fix clickbox for type 11 objects\n rl-api: expose currently playing music/jingle\n\nSirGirion (1):\n timetracking: fix tick rate of teak trees\n\nStephen Au (1):\n spriteid: fix Guthix typo\n\nVandager (1):\n player indicators: decorate player name in trade window\n\nemielv (1):\n clues: add abyssal whip (or) variant\n\norange-puff (1):\n bank: Show Group Ironman storage value (#14395)\n\npwatts6060 (1):\n status bars: Add configurable width for modern resizable interface\n\ntesting-ongithub (1):\n xp tracker: Add toggle for "Open Wise Old Man" menu option\n
\n',image:"/img/blog/1.8.19-Release/compost1.png"}}}]);
+//# sourceMappingURL=152.372dddf9.chunk.js.map
\ No newline at end of file
diff --git a/static/js/152.1d0042ba.chunk.js.map b/static/js/152.372dddf9.chunk.js.map
similarity index 99%
rename from static/js/152.1d0042ba.chunk.js.map
rename to static/js/152.372dddf9.chunk.js.map
index 7c9bc2a11..1cf488991 100644
--- a/static/js/152.1d0042ba.chunk.js.map
+++ b/static/js/152.372dddf9.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-05-11-19-00-1.8.19-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,iDAAiD,OAAS,OAAO,KAAO,gjaAAika,MAAQ","file":"static/js/152.1d0042ba.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.14 - 1.8.19 Releases\",\"description\":\"Compost tracking and menu swapper improvements\",\"author\":\"Adam\",\"body\":\"Compost tracking \\nThe farming tracker now keeps track of compost state of each patch, so you no\\nlonger have to remember if you've composted patches or not. It works with the\\nfertile soil spell, regular and bottomless compost buckets.
\\n \\n
\\nMenu swapper improvements \\nThe left-click option on most NPCs and objects can now be set by shift-right\\nclicking and selecting the "Swap" option. These manually set swaps override\\nthe more general swaps in the plugin configuration.
\\nThere are a few exclusions \\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\\nmost things should work.
\\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nOpening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick. \\nCatching implings is tracked by the loot tracker \\nPBs for COX/TOB are now tracked per scale size, such as eg !pb tob 3
, !pb hmt 3
or !pb cox 3
. The overall !pb
is\\nnow for the best time at any scale. \\nBoss shortnames now work with !lvl
, eg !lvl hydra
. This is similar to !kc
but uses the hiscores instead, thus the\\nrank is provided, but the kill count may be outdated \\nDragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too \\nBank searches now supports filtering by quantity, eg qty>30
\\nThe chat filter default behavior no longer strips accents. If you want it to strip accents like before, enable the Strip accents
option.\\nThis makes it easier to specifically filter accented characters. \\nA bug causing the !pets
icons to not show up sometimes was fixed \\nA bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed \\nInventory viewer gained an option to hide the inventory view when the bank is open \\nMenu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift \\nPlayer indicators now additionally colors player names in the trade window \\nThe bank plugin now shows total value of group ironman storage \\nThe chatbox and inventory interfaces are now movable via holding alt
\\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this update!
\\nAdam (112):\\n loottracker: refactor inv change events\\n loottracker: add imp jars\\n loot tracker: support opening multiple imp jars in 1 tick\\n loot tracker: track caught implings\\n loot tracker: add wilderness loot chest\\n loottracker: replace repaint calls with revalidate\\n Revert "gpu: Fix loading gluegen natives on some Windows configurations"\\n chat message manager: fix gim rl-format messages\\n loot tracker: add remember loot option\\n gpu: remove newt dependency\\n gpu: remove egl dependency\\n gpu: update to jogl 2.4.0-rc-20220318\\n client: allow setting system properties via runtime config\\n gpu: use DebugGL4 in debug mode\\n loot tracker: remove import notice\\n ground item: expand item lists by default\\n gpu: set jogamp.gluegen.TestTempDirExec=false\\n api: add Jagex api\\n client: add otl token requester\\n api: deprecate getUsername\\n plugins: replace getUsername uses with getAccountHash\\n chat commands: add gotr kc\\n chat commands: add hmt alias for theatre of blood hard mode\\n clientthread: log exceptions at error level\\n config manager: log profile changes\\n loot tracker: fix race with loading saved loot and client startup\\n plugins: readd quest list plugin\\n chat commands: fix tob pb tracking\\n xp updater: send account hash to templeosrs\\n runecraft: remove unnecessary rifts set\\n runecraft: update blood rift id\\n runecraft: add degraded colossal pouch\\n menu swapper: rename SwapConfig to ItemSwapConfig\\n menu swapper: add custom object left click swap\\n menu swapper: change object left click configure method\\n Revert "menu swapper: Add uncharged cell swap for gotr (#14795)"\\n chat commands: support boss shortnames for !lvl\\n chat commands: refactor skill abbreviation to a switch\\n boosts: default to display as infoboxes and only combat stats\\n api: add friends chat kick rank\\n session manager: open session on executor thread\\n menu swapper: add custom npc left click swap\\n overlay: add drawAfterLayer that accepts ids for plugins, and javadoc\\n api: exclude annotations package from runtime jar\\n Move SlayerUnlock to slayer plugin\\n FarmingRegion: remove unused varbits field\\n blast furnace: remove unused BarOres map\\n api: replace varbits enum with ints\\n api: deprecate getVar(int) and use getVarbitValue(int)\\n chat commands: track team sizes for raids pb\\n api: move autoweed to farming plugin\\n chat command: use plural "players" to be consistent with cox\\n mta: use widget item overlay\\n mta: disable by default\\n devtools: remove inventory tool\\n examine: support item examine on if3 components\\n Revert "menu swapper: add deposit-runes swap for gotr"\\n hiscores: add gotr\\n api: refactor some menu action names\\n api: add selected widget api\\n api: add menuentry widget accessor\\n api: pass menu entry to menu clicked event and forward accessors\\n menu swapper: move bank swaps to client tick\\n client: replace HttpUrl.parse with HttpUrl.get\\n client: replace MediaType.parse with MediaType.get\\n fatal error dialog: work with substance laf\\n external plugin client: use verificationexception for security exceptions\\n api: add item op menu api\\n client: update for if3 inventory\\n api: add dragTime accessor\\n inv grid: fix for if3 inv\\n antidrag: update for if3 inv\\n item stats: update for if3 inv\\n mes: fix item swaps with op4 and op5\\n clues: fix tracking cluescroll\\n statusbars: update for if3 inv\\n runelite: remove otl requester\\n timers: update for if3 inv\\n examine: fix item examine message recolor\\n interact highlight: fix using npc attack color on item use\\n interact highlight: fix detecting spell attacks on npc click\\n chat commands: update gotr kill message\\n examine: fix examining ground items\\n examine: remove unused import\\n api: remove Nullable on getLocalPlayer\\n cl: set pmd cache location\\n client: update pmd\\n ci: disable maven-shade-plugin\\n infobox: consistently require non-negative timer durations\\n util: use error log level for exception loggers\\n chat commands: support parsing team size pbs off adventure log\\n bank plugin: add quantity search\\n clues: update guardian mummy cryptic clue\\n fairy ring: add Necropolis\\n clues: add Necropolis mine coordinate clue hint\\n Don't overwrite okhttp ua if already set\\n crowdsourcing: don't include menuoptionclicked event in movementdata\\n script assembler: remove runelite-api dependency\\n maven: update surefire plugin to 2.22.2\\n loottracker: fix tracking imp jars\\n map image dumper: use BigBufferedImage\\n map image dumper: add main method\\n cache: make slf4j-simple an optional dependency\\n api: add object composition map setters\\n api: add post object composition event\\n api: add object composition cache accessor\\n chatfilter: add config option for stripping accents\\n cache: update indextype names\\n chat commands: fix loading pets modicons\\n emoji: clean up modicons loading\\n friendnotes: clean up modicons loading\\n timers: remove unused tzhaar complete matcher\\n\\nBob Heine (1):\\n clues: Add abyssal lanterns as light sources (#14923)\\n\\nCyborger1 (1):\\n clues: Fix capitalization for Dark Mage anagram\\n\\nElias Lahham (2):\\n inventory viewer: hide when bank is open\\n menu entry swapper: add house teleport swap\\n\\nGiovanni van der Schelde (1):\\n chat commands: add shortnames for shayzien agility courses\\n\\nHydrox6 (4):\\n ItemMapping: add shattered relics ornament kits\\n cannon: add support for shattered relics league ornamental cannon\\n npcaggro: always show tutorial overlay if plugin is not calibrated\\n npcaggro: fix unintended loss of calibration\\n\\nJZomDev (1):\\n clues: rename Traiborn to Wizard Traiborn\\n\\nJacob Moody (1):\\n item charges: fix binding necklace degrading in gotr\\n\\nJoRouss (1):\\n dps counter: fix only boss damage to work in parties\\n\\nJonathan Lee (1):\\n loot tracker: add guardians of the rift\\n\\nJordan Atwood (25):\\n roof removal: Fix Cabin Fever ships\\n roof removal: Add Tutorial Island overrides\\n roof removal: Add Grim Tales tower override\\n discord: Add Guardians of the Rift minigame\\n HotColdLocation: Fix East of Watson's house spot\\n clues: Support rune crossbow and god book (or) variants\\n roof removal: Improve Lletya overrides\\n roof removal: Add Ardougne gazebo override\\n roof removal: Add Misthalin Mystery overrides\\n roof removal: Improve Falador castle overrides\\n roof removal: Improve SE Ardougne overrides\\n roof removal: Improve Port Phasmatys overrides\\n roof removal: Add chaos rc altar override\\n roof removal: Improve East Catherby overrides\\n roof removal: Add Meiyerditch overrides\\n roof removal: Add Keep Le Faye overrides\\n roof removal: Add House on the Hill overrides\\n roof removal: Improve Gnome Stronghold overrides\\n roof removal: Add Witchaven override\\n roof removal: Add Rising Sun Inn override\\n roof removal: Add Falador wall overrides\\n roof removal: Add Braindeath Island override\\n plugins: Rename Sedridor to Archmage Sedridor\\n github: Add Discussions issue template\\n HotColdLocation: Add South-east of Ruins of Ullek spot\\n\\nJoshua Filby (2):\\n cache: use LinkedHashMap for switch jump tables\\n rl-client: make overridden scripts have switch cases in defined order\\n\\nLlemonDuck (1):\\n timetracking: add compost tracking\\n\\nMathew Hylkema (2):\\n menu swapper: add deposit-runes swap for gotr\\n menu swapper: Add uncharged cell swap for gotr (#14795)\\n\\nMax Weber (31):\\n rl-api: use TileObjects' z for hulls/clickboxes/outlines\\n rl-client: remove questlist plugin\\n rl-client/chatcommands/Pet: add abyssal protector\\n rl-api/Quest: update to 2022-3-22\\n api: add AccountHashChanged event\\n config: associate account hashes to rsprofiles\\n rl-client: open FatalErrorDialog early during outages\\n ClientLoader: allow skipping updating vanilla\\n rl-client: show FatalErrorDialog when the client crashes\\n config: do not start other plugins during startup\\n ScriptID: fix GROUP_IRONMAN_STORAGE_BUILD script arguments\\n rl-client: pin new Plugin Hub certificate\\n wiki: do not allow lookup-ing empty inventory slots\\n antidrag: respect hotkeys\\n ScriptID: remove unused scripts\\n rl-client: do not create a dependency reduced pom\\n Quest: update to 2022-4-27\\n rl-client: update ID references to 2022-4-27\\n cache: correctly link bought & placeholder items\\n cache: do not return partially or doubly lit textures\\n rl-api: expose ObjectComposition::varbitId/varPlayerId\\n cache: unify jagex hsl conversion\\n cache/RegionLoader: allow plugging an external xtea key provider\\n cache/MapImageDumper: add layer & brightness configuration\\n cache/MapImageDumper: add transparency support\\n cache/MapImageDumper: fix icon & wall size & placement\\n cache/MapImageDumper: handle pushdown objects correctly\\n cache/MapImageDumper: fix object wall checks\\n cache/MapImageDumper: draw cross region objs when drawing single regions\\n Perspective: fix clickbox for type 11 objects\\n rl-api: expose currently playing music/jingle\\n\\nSirGirion (1):\\n timetracking: fix tick rate of teak trees\\n\\nStephen Au (1):\\n spriteid: fix Guthix typo\\n\\nVandager (1):\\n player indicators: decorate player name in trade window\\n\\nemielv (1):\\n clues: add abyssal whip (or) variant\\n\\norange-puff (1):\\n bank: Show Group Ironman storage value (#14395)\\n\\npwatts6060 (1):\\n status bars: Add configurable width for modern resizable interface\\n\\ntesting-ongithub (1):\\n xp tracker: Add toggle for "Open Wise Old Man" menu option\\n
\\n\",\"image\":\"/img/blog/1.8.19-Release/compost1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-05-11-19-00-1.8.19-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,2BAA2B,YAAc,iDAAiD,OAAS,OAAO,KAAO,gjaAAika,MAAQ","file":"static/js/152.372dddf9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.14 - 1.8.19 Releases\",\"description\":\"Compost tracking and menu swapper improvements\",\"author\":\"Adam\",\"body\":\"Compost tracking \\nThe farming tracker now keeps track of compost state of each patch, so you no\\nlonger have to remember if you've composted patches or not. It works with the\\nfertile soil spell, regular and bottomless compost buckets.
\\n \\n
\\nMenu swapper improvements \\nThe left-click option on most NPCs and objects can now be set by shift-right\\nclicking and selecting the "Swap" option. These manually set swaps override\\nthe more general swaps in the plugin configuration.
\\nThere are a few exclusions \\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\\nmost things should work.
\\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nOpening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick. \\nCatching implings is tracked by the loot tracker \\nPBs for COX/TOB are now tracked per scale size, such as eg !pb tob 3
, !pb hmt 3
or !pb cox 3
. The overall !pb
is\\nnow for the best time at any scale. \\nBoss shortnames now work with !lvl
, eg !lvl hydra
. This is similar to !kc
but uses the hiscores instead, thus the\\nrank is provided, but the kill count may be outdated \\nDragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too \\nBank searches now supports filtering by quantity, eg qty>30
\\nThe chat filter default behavior no longer strips accents. If you want it to strip accents like before, enable the Strip accents
option.\\nThis makes it easier to specifically filter accented characters. \\nA bug causing the !pets
icons to not show up sometimes was fixed \\nA bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed \\nInventory viewer gained an option to hide the inventory view when the bank is open \\nMenu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift \\nPlayer indicators now additionally colors player names in the trade window \\nThe bank plugin now shows total value of group ironman storage \\nThe chatbox and inventory interfaces are now movable via holding alt
\\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this update!
\\nAdam (112):\\n loottracker: refactor inv change events\\n loottracker: add imp jars\\n loot tracker: support opening multiple imp jars in 1 tick\\n loot tracker: track caught implings\\n loot tracker: add wilderness loot chest\\n loottracker: replace repaint calls with revalidate\\n Revert "gpu: Fix loading gluegen natives on some Windows configurations"\\n chat message manager: fix gim rl-format messages\\n loot tracker: add remember loot option\\n gpu: remove newt dependency\\n gpu: remove egl dependency\\n gpu: update to jogl 2.4.0-rc-20220318\\n client: allow setting system properties via runtime config\\n gpu: use DebugGL4 in debug mode\\n loot tracker: remove import notice\\n ground item: expand item lists by default\\n gpu: set jogamp.gluegen.TestTempDirExec=false\\n api: add Jagex api\\n client: add otl token requester\\n api: deprecate getUsername\\n plugins: replace getUsername uses with getAccountHash\\n chat commands: add gotr kc\\n chat commands: add hmt alias for theatre of blood hard mode\\n clientthread: log exceptions at error level\\n config manager: log profile changes\\n loot tracker: fix race with loading saved loot and client startup\\n plugins: readd quest list plugin\\n chat commands: fix tob pb tracking\\n xp updater: send account hash to templeosrs\\n runecraft: remove unnecessary rifts set\\n runecraft: update blood rift id\\n runecraft: add degraded colossal pouch\\n menu swapper: rename SwapConfig to ItemSwapConfig\\n menu swapper: add custom object left click swap\\n menu swapper: change object left click configure method\\n Revert "menu swapper: Add uncharged cell swap for gotr (#14795)"\\n chat commands: support boss shortnames for !lvl\\n chat commands: refactor skill abbreviation to a switch\\n boosts: default to display as infoboxes and only combat stats\\n api: add friends chat kick rank\\n session manager: open session on executor thread\\n menu swapper: add custom npc left click swap\\n overlay: add drawAfterLayer that accepts ids for plugins, and javadoc\\n api: exclude annotations package from runtime jar\\n Move SlayerUnlock to slayer plugin\\n FarmingRegion: remove unused varbits field\\n blast furnace: remove unused BarOres map\\n api: replace varbits enum with ints\\n api: deprecate getVar(int) and use getVarbitValue(int)\\n chat commands: track team sizes for raids pb\\n api: move autoweed to farming plugin\\n chat command: use plural "players" to be consistent with cox\\n mta: use widget item overlay\\n mta: disable by default\\n devtools: remove inventory tool\\n examine: support item examine on if3 components\\n Revert "menu swapper: add deposit-runes swap for gotr"\\n hiscores: add gotr\\n api: refactor some menu action names\\n api: add selected widget api\\n api: add menuentry widget accessor\\n api: pass menu entry to menu clicked event and forward accessors\\n menu swapper: move bank swaps to client tick\\n client: replace HttpUrl.parse with HttpUrl.get\\n client: replace MediaType.parse with MediaType.get\\n fatal error dialog: work with substance laf\\n external plugin client: use verificationexception for security exceptions\\n api: add item op menu api\\n client: update for if3 inventory\\n api: add dragTime accessor\\n inv grid: fix for if3 inv\\n antidrag: update for if3 inv\\n item stats: update for if3 inv\\n mes: fix item swaps with op4 and op5\\n clues: fix tracking cluescroll\\n statusbars: update for if3 inv\\n runelite: remove otl requester\\n timers: update for if3 inv\\n examine: fix item examine message recolor\\n interact highlight: fix using npc attack color on item use\\n interact highlight: fix detecting spell attacks on npc click\\n chat commands: update gotr kill message\\n examine: fix examining ground items\\n examine: remove unused import\\n api: remove Nullable on getLocalPlayer\\n cl: set pmd cache location\\n client: update pmd\\n ci: disable maven-shade-plugin\\n infobox: consistently require non-negative timer durations\\n util: use error log level for exception loggers\\n chat commands: support parsing team size pbs off adventure log\\n bank plugin: add quantity search\\n clues: update guardian mummy cryptic clue\\n fairy ring: add Necropolis\\n clues: add Necropolis mine coordinate clue hint\\n Don't overwrite okhttp ua if already set\\n crowdsourcing: don't include menuoptionclicked event in movementdata\\n script assembler: remove runelite-api dependency\\n maven: update surefire plugin to 2.22.2\\n loottracker: fix tracking imp jars\\n map image dumper: use BigBufferedImage\\n map image dumper: add main method\\n cache: make slf4j-simple an optional dependency\\n api: add object composition map setters\\n api: add post object composition event\\n api: add object composition cache accessor\\n chatfilter: add config option for stripping accents\\n cache: update indextype names\\n chat commands: fix loading pets modicons\\n emoji: clean up modicons loading\\n friendnotes: clean up modicons loading\\n timers: remove unused tzhaar complete matcher\\n\\nBob Heine (1):\\n clues: Add abyssal lanterns as light sources (#14923)\\n\\nCyborger1 (1):\\n clues: Fix capitalization for Dark Mage anagram\\n\\nElias Lahham (2):\\n inventory viewer: hide when bank is open\\n menu entry swapper: add house teleport swap\\n\\nGiovanni van der Schelde (1):\\n chat commands: add shortnames for shayzien agility courses\\n\\nHydrox6 (4):\\n ItemMapping: add shattered relics ornament kits\\n cannon: add support for shattered relics league ornamental cannon\\n npcaggro: always show tutorial overlay if plugin is not calibrated\\n npcaggro: fix unintended loss of calibration\\n\\nJZomDev (1):\\n clues: rename Traiborn to Wizard Traiborn\\n\\nJacob Moody (1):\\n item charges: fix binding necklace degrading in gotr\\n\\nJoRouss (1):\\n dps counter: fix only boss damage to work in parties\\n\\nJonathan Lee (1):\\n loot tracker: add guardians of the rift\\n\\nJordan Atwood (25):\\n roof removal: Fix Cabin Fever ships\\n roof removal: Add Tutorial Island overrides\\n roof removal: Add Grim Tales tower override\\n discord: Add Guardians of the Rift minigame\\n HotColdLocation: Fix East of Watson's house spot\\n clues: Support rune crossbow and god book (or) variants\\n roof removal: Improve Lletya overrides\\n roof removal: Add Ardougne gazebo override\\n roof removal: Add Misthalin Mystery overrides\\n roof removal: Improve Falador castle overrides\\n roof removal: Improve SE Ardougne overrides\\n roof removal: Improve Port Phasmatys overrides\\n roof removal: Add chaos rc altar override\\n roof removal: Improve East Catherby overrides\\n roof removal: Add Meiyerditch overrides\\n roof removal: Add Keep Le Faye overrides\\n roof removal: Add House on the Hill overrides\\n roof removal: Improve Gnome Stronghold overrides\\n roof removal: Add Witchaven override\\n roof removal: Add Rising Sun Inn override\\n roof removal: Add Falador wall overrides\\n roof removal: Add Braindeath Island override\\n plugins: Rename Sedridor to Archmage Sedridor\\n github: Add Discussions issue template\\n HotColdLocation: Add South-east of Ruins of Ullek spot\\n\\nJoshua Filby (2):\\n cache: use LinkedHashMap for switch jump tables\\n rl-client: make overridden scripts have switch cases in defined order\\n\\nLlemonDuck (1):\\n timetracking: add compost tracking\\n\\nMathew Hylkema (2):\\n menu swapper: add deposit-runes swap for gotr\\n menu swapper: Add uncharged cell swap for gotr (#14795)\\n\\nMax Weber (31):\\n rl-api: use TileObjects' z for hulls/clickboxes/outlines\\n rl-client: remove questlist plugin\\n rl-client/chatcommands/Pet: add abyssal protector\\n rl-api/Quest: update to 2022-3-22\\n api: add AccountHashChanged event\\n config: associate account hashes to rsprofiles\\n rl-client: open FatalErrorDialog early during outages\\n ClientLoader: allow skipping updating vanilla\\n rl-client: show FatalErrorDialog when the client crashes\\n config: do not start other plugins during startup\\n ScriptID: fix GROUP_IRONMAN_STORAGE_BUILD script arguments\\n rl-client: pin new Plugin Hub certificate\\n wiki: do not allow lookup-ing empty inventory slots\\n antidrag: respect hotkeys\\n ScriptID: remove unused scripts\\n rl-client: do not create a dependency reduced pom\\n Quest: update to 2022-4-27\\n rl-client: update ID references to 2022-4-27\\n cache: correctly link bought & placeholder items\\n cache: do not return partially or doubly lit textures\\n rl-api: expose ObjectComposition::varbitId/varPlayerId\\n cache: unify jagex hsl conversion\\n cache/RegionLoader: allow plugging an external xtea key provider\\n cache/MapImageDumper: add layer & brightness configuration\\n cache/MapImageDumper: add transparency support\\n cache/MapImageDumper: fix icon & wall size & placement\\n cache/MapImageDumper: handle pushdown objects correctly\\n cache/MapImageDumper: fix object wall checks\\n cache/MapImageDumper: draw cross region objs when drawing single regions\\n Perspective: fix clickbox for type 11 objects\\n rl-api: expose currently playing music/jingle\\n\\nSirGirion (1):\\n timetracking: fix tick rate of teak trees\\n\\nStephen Au (1):\\n spriteid: fix Guthix typo\\n\\nVandager (1):\\n player indicators: decorate player name in trade window\\n\\nemielv (1):\\n clues: add abyssal whip (or) variant\\n\\norange-puff (1):\\n bank: Show Group Ironman storage value (#14395)\\n\\npwatts6060 (1):\\n status bars: Add configurable width for modern resizable interface\\n\\ntesting-ongithub (1):\\n xp tracker: Add toggle for "Open Wise Old Man" menu option\\n
\\n\",\"image\":\"/img/blog/1.8.19-Release/compost1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/153.4a353f6c.chunk.js b/static/js/153.ed2c6ae2.chunk.js
similarity index 98%
rename from static/js/153.4a353f6c.chunk.js
rename to static/js/153.ed2c6ae2.chunk.js
index cd5054dd6..1bc9a0663 100644
--- a/static/js/153.4a353f6c.chunk.js
+++ b/static/js/153.ed2c6ae2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[153],{428:function(e,n){e.exports={title:"1.8.24 Release",description:"Jagex rules update and party improvements",author:"Adam",body:'Jagex rules update \nJagex have published a new third party client update ,\nand with it a new set of third party client\nguidelines .\nThese new guidelines remove some previous restrictions which allows us to add\nsome new features. We\'ve added these features in this update.
\nPickpocket swap \nPickpocket
can now be swapped on all NPCs, even with a Talk-to
option, by\nshift-right clicking them and selecting Swap Pickpocket
\n
\nRemoving dead NPC menus \nThe menu entry swapper now has a setting to remove menus for dead NPCs. This\nprevents clicking on them while they are dieing, as well as casting spells.\nThe entity hider additionally has an option to remove the NPC completely so it\nis no longer rendered.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: deadnpc\n
\nWalk here swap \nIt is now possible to swap Walk here for both left click and shift click on NPC\nby shift-right clicking them and selecting the corresponding swap option. There\nis also a global shift click walk here setting in the menu swapper\nconfiguration that affects all NPCs.
\n
\nWorn item swaps \nMenus on worn items can now have both their left click and shift click option\nswapped, which can be configured by shift-right clicking the item when wielded.
\n
\nParty system improvements \nAs you may have noticed, we recently updated the special attack counter plugin\nto show a "spec drop" overlay on the player when a special attack lands. This\nfeature works with the reworked party system, which allows the spec drops to\nshow on your party members.
\nThe party system no longer requires Discord integration to send or join invites,\nand instead uses a passphrase system. This is a lot less finicky and works more\nreliably when multiple clients are running.
\nCreating a party now gives you a passphrase, such as robe-set-raw-purple
,\nwhich you share with your friends. They just need to click Join party
and\npaste the passphrase to join.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe inventory and chatbox are now movable by holding alt. As usual they can\nbe reset to their default position via alt-right click. The alt
key used to\ndrag overlays around is also configurable within the RuneLite
settings. \nKeris partisan defensive style is now correctly hidden by the attack styles\nplugin \nAnother bug causing the !pets
icons to not show up has been fixed, again. \nMinigame reset timer no longer shows if the setting to enable it is off. \nA bug causing entity hider\'s hide pets option to not work has been fixed. \n!lvl cox cm
now works correctly \nAncient brew, mixed potions, and other more obscure things have been added to the item stats plugin \nThe stamina timer now works more reliably and also with stamina mixes \nNPC agression timer now has a setting to show for slayer tasks \nThe timers plugin now has a timer for Shadow Veil \nItem charges now supports imbued ring of wealth, and braclet of clay \nThe mining plugin now shows respawn timers for gold veins \nThe bank plugin now has an option to force right click the placeholder toggle button \nThe Left click walk on core
option of the Corporeal Beast plugin has returned once again \nNPC indicators now has an option to highlight true south-west tile and true\ntile \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this update!
\nAdam (57):\n compost tracking: fix tracking fertile soil with ash covered tome\n overlay: make alt drag hotkey configurable\n overlay: better handle picking up overlapping overlays\n menu swapper: removetags object/npc names\n menu swapper: removetags npc name on reset swap\n widget overlay: change minimap position back to top_right\n overlay: add movable and snappable overlay flags\n overlay: disallow transformPosition with dynamic/tooltip\n overlay: set g2d clip per layer\n overlay: worldmap: prefer rect2d as g2d clip shape\n devtools: allow pgup/down to cycle through previous commands\n overlay: use hovered overlay for picking managed overlay\n overlay manager: remove spurious position reset logs\n gpu: initialize scene uploader scene id with nanotime\n api: add setForcedPosition widget method\n widget overlay: use setForcedPosition\n overlay: prevent moving non-movable overlays\n prayer: don\'t return dimension for dynamic overlays\n api: pass menu entry to menu add event and forward accessors\n events: add tostring/equalsandhashcode to menuoption clicked\n api: add npc accessor to menuentry\n api: add player accessor to menuentry\n attackstyles: add weapon types 28 and 29\n fix race loading modicons\n api: add player id accessor\n party: remove Discord requirement\n party: use passphrases for party ids\n party: remove overlay\n spec counter: add devmode check for spec command\n gpu: fix debug mode on macos\n worldmap: add akp and bjp fairy rings\n chat commands: fix !lvl cox cm\n api: deprecate if1 usage\n chat commands: add rifts closed to gotr bossnames\n chatfilter: fix matching lt/gt\n Move entity hider logic to plugin\n hooks: add exception handler for renderable draw listener\n hooks: raise exception logs to error level\n account: use http redirect for oauth login response\n chat channel: use fc max size from container\n runelite: set jagex.disableBouncyCastle=true\n cannon: use varp for cannonball count\n Move party messages from http-api\n spec counter: add config option for infoboxes\n party: no longer use account session id\n party: send join on reconnect\n entity hider: fix hide pets\n timers: fix showMinigameTeleports check\n raids: remove party scout message\n xpglobes: add time to level to tooltip\n corp plugin: add dark core attack deprioritization\n npc overlay: use true tile for south west tile\n menu swapper: remove Pickpocket block\n menu swapper: add option to remove dead npc menu options\n menu swapper: add npc walk here swap\n entity hider: add option to hide dead npcs\n menu swapper: add worn item swaps\n\nBen Puryear (1):\n Add .DS_Store to .gitignore (#14925)\n\nCameron Hetzler (1):\n loottracker: reverse collapse all tooltips\n\nDavid Luong (1):\n item identification: Add Desert Treasure diamonds (#14764)\n\nHexagon (1):\n spec counter: add spec drops\n\nHydrox6 (2):\n item stats: add support for stat boosts with a cap\n item stats: add ancient brew\n\nJonathan Forscher (1):\n item stats: Add some missing beverages (#14412)\n\nJordan Atwood (10):\n chat commands: Update clear word and clear line defaults\n item stats: Clean up saradomin brew code\n item stats: Use variables for reused potion effects\n item stats: Add mixed potions\n item stats: Remove combo primaries\n item stats: Fix jangerberries stats\n status bars: Override hitpoints and prayer max values in LMS\n special counter: Fix test\n hunter: Remove unused lastActionTime field\n timers: Don\'t clear stamina on death\n\nLlemonDuck (5):\n chatcommands: consume "clear single word" keypress\n interfacestyles: 2005-style quest tab headers\n clientui: setResizable after setVisible\n slayer: expose slayer task data in service\n npcaggro: show for current slayer task option\n\nMasonPMGit (2):\n item charges: add bracelet of clay\n clues: Allow Daeyalt essence for runecrafting skill challenges\n\nMatthew C (1):\n skill calculator: Fix herblore typos (#14324)\n\nMax Weber (5):\n rl-api, groundmarkers: handle instance plane conversion correctly\n overlay: do not move snap points backwards\n fairyring: add isle of souls ring\n ClientLoader: don\'t fail patching to hidden files\n SessionManager: don\'t fail to login with a existing hidden session file\n\nProjectileRage (1):\n timers: Add Shadow Veil protection detection (#14687)\n\nStefan Zopfi (1):\n itemcharges: add imbued ring of wealth\n\nZander Bolgar (1):\n mining: add gold vein respawn timer\n\nemerald000 (1):\n item stats: Add missing consumables\n\nsjpfeiffer (1):\n bank: Add option to force right click on placeholder toggle button\n\nsuperiorser9 (2):\n timers: Track home and minigame teleports using vars (#14842)\n timers: Check stamina effect using varbits (#15014)\n\nvmarlowe (1):\n fishing: Add frog spawn spot NPC (#14659)\n
\n',image:"/img/blog/1.8.24-Release/pickpocket.png"}}}]);
-//# sourceMappingURL=153.4a353f6c.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[153],{429:function(e,n){e.exports={title:"1.8.24 Release",description:"Jagex rules update and party improvements",author:"Adam",body:'Jagex rules update \nJagex have published a new third party client update ,\nand with it a new set of third party client\nguidelines .\nThese new guidelines remove some previous restrictions which allows us to add\nsome new features. We\'ve added these features in this update.
\nPickpocket swap \nPickpocket
can now be swapped on all NPCs, even with a Talk-to
option, by\nshift-right clicking them and selecting Swap Pickpocket
\n
\nRemoving dead NPC menus \nThe menu entry swapper now has a setting to remove menus for dead NPCs. This\nprevents clicking on them while they are dieing, as well as casting spells.\nThe entity hider additionally has an option to remove the NPC completely so it\nis no longer rendered.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: deadnpc\n
\nWalk here swap \nIt is now possible to swap Walk here for both left click and shift click on NPC\nby shift-right clicking them and selecting the corresponding swap option. There\nis also a global shift click walk here setting in the menu swapper\nconfiguration that affects all NPCs.
\n
\nWorn item swaps \nMenus on worn items can now have both their left click and shift click option\nswapped, which can be configured by shift-right clicking the item when wielded.
\n
\nParty system improvements \nAs you may have noticed, we recently updated the special attack counter plugin\nto show a "spec drop" overlay on the player when a special attack lands. This\nfeature works with the reworked party system, which allows the spec drops to\nshow on your party members.
\nThe party system no longer requires Discord integration to send or join invites,\nand instead uses a passphrase system. This is a lot less finicky and works more\nreliably when multiple clients are running.
\nCreating a party now gives you a passphrase, such as robe-set-raw-purple
,\nwhich you share with your friends. They just need to click Join party
and\npaste the passphrase to join.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe inventory and chatbox are now movable by holding alt. As usual they can\nbe reset to their default position via alt-right click. The alt
key used to\ndrag overlays around is also configurable within the RuneLite
settings. \nKeris partisan defensive style is now correctly hidden by the attack styles\nplugin \nAnother bug causing the !pets
icons to not show up has been fixed, again. \nMinigame reset timer no longer shows if the setting to enable it is off. \nA bug causing entity hider\'s hide pets option to not work has been fixed. \n!lvl cox cm
now works correctly \nAncient brew, mixed potions, and other more obscure things have been added to the item stats plugin \nThe stamina timer now works more reliably and also with stamina mixes \nNPC agression timer now has a setting to show for slayer tasks \nThe timers plugin now has a timer for Shadow Veil \nItem charges now supports imbued ring of wealth, and braclet of clay \nThe mining plugin now shows respawn timers for gold veins \nThe bank plugin now has an option to force right click the placeholder toggle button \nThe Left click walk on core
option of the Corporeal Beast plugin has returned once again \nNPC indicators now has an option to highlight true south-west tile and true\ntile \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this update!
\nAdam (57):\n compost tracking: fix tracking fertile soil with ash covered tome\n overlay: make alt drag hotkey configurable\n overlay: better handle picking up overlapping overlays\n menu swapper: removetags object/npc names\n menu swapper: removetags npc name on reset swap\n widget overlay: change minimap position back to top_right\n overlay: add movable and snappable overlay flags\n overlay: disallow transformPosition with dynamic/tooltip\n overlay: set g2d clip per layer\n overlay: worldmap: prefer rect2d as g2d clip shape\n devtools: allow pgup/down to cycle through previous commands\n overlay: use hovered overlay for picking managed overlay\n overlay manager: remove spurious position reset logs\n gpu: initialize scene uploader scene id with nanotime\n api: add setForcedPosition widget method\n widget overlay: use setForcedPosition\n overlay: prevent moving non-movable overlays\n prayer: don\'t return dimension for dynamic overlays\n api: pass menu entry to menu add event and forward accessors\n events: add tostring/equalsandhashcode to menuoption clicked\n api: add npc accessor to menuentry\n api: add player accessor to menuentry\n attackstyles: add weapon types 28 and 29\n fix race loading modicons\n api: add player id accessor\n party: remove Discord requirement\n party: use passphrases for party ids\n party: remove overlay\n spec counter: add devmode check for spec command\n gpu: fix debug mode on macos\n worldmap: add akp and bjp fairy rings\n chat commands: fix !lvl cox cm\n api: deprecate if1 usage\n chat commands: add rifts closed to gotr bossnames\n chatfilter: fix matching lt/gt\n Move entity hider logic to plugin\n hooks: add exception handler for renderable draw listener\n hooks: raise exception logs to error level\n account: use http redirect for oauth login response\n chat channel: use fc max size from container\n runelite: set jagex.disableBouncyCastle=true\n cannon: use varp for cannonball count\n Move party messages from http-api\n spec counter: add config option for infoboxes\n party: no longer use account session id\n party: send join on reconnect\n entity hider: fix hide pets\n timers: fix showMinigameTeleports check\n raids: remove party scout message\n xpglobes: add time to level to tooltip\n corp plugin: add dark core attack deprioritization\n npc overlay: use true tile for south west tile\n menu swapper: remove Pickpocket block\n menu swapper: add option to remove dead npc menu options\n menu swapper: add npc walk here swap\n entity hider: add option to hide dead npcs\n menu swapper: add worn item swaps\n\nBen Puryear (1):\n Add .DS_Store to .gitignore (#14925)\n\nCameron Hetzler (1):\n loottracker: reverse collapse all tooltips\n\nDavid Luong (1):\n item identification: Add Desert Treasure diamonds (#14764)\n\nHexagon (1):\n spec counter: add spec drops\n\nHydrox6 (2):\n item stats: add support for stat boosts with a cap\n item stats: add ancient brew\n\nJonathan Forscher (1):\n item stats: Add some missing beverages (#14412)\n\nJordan Atwood (10):\n chat commands: Update clear word and clear line defaults\n item stats: Clean up saradomin brew code\n item stats: Use variables for reused potion effects\n item stats: Add mixed potions\n item stats: Remove combo primaries\n item stats: Fix jangerberries stats\n status bars: Override hitpoints and prayer max values in LMS\n special counter: Fix test\n hunter: Remove unused lastActionTime field\n timers: Don\'t clear stamina on death\n\nLlemonDuck (5):\n chatcommands: consume "clear single word" keypress\n interfacestyles: 2005-style quest tab headers\n clientui: setResizable after setVisible\n slayer: expose slayer task data in service\n npcaggro: show for current slayer task option\n\nMasonPMGit (2):\n item charges: add bracelet of clay\n clues: Allow Daeyalt essence for runecrafting skill challenges\n\nMatthew C (1):\n skill calculator: Fix herblore typos (#14324)\n\nMax Weber (5):\n rl-api, groundmarkers: handle instance plane conversion correctly\n overlay: do not move snap points backwards\n fairyring: add isle of souls ring\n ClientLoader: don\'t fail patching to hidden files\n SessionManager: don\'t fail to login with a existing hidden session file\n\nProjectileRage (1):\n timers: Add Shadow Veil protection detection (#14687)\n\nStefan Zopfi (1):\n itemcharges: add imbued ring of wealth\n\nZander Bolgar (1):\n mining: add gold vein respawn timer\n\nemerald000 (1):\n item stats: Add missing consumables\n\nsjpfeiffer (1):\n bank: Add option to force right click on placeholder toggle button\n\nsuperiorser9 (2):\n timers: Track home and minigame teleports using vars (#14842)\n timers: Check stamina effect using varbits (#15014)\n\nvmarlowe (1):\n fishing: Add frog spawn spot NPC (#14659)\n
\n',image:"/img/blog/1.8.24-Release/pickpocket.png"}}}]);
+//# sourceMappingURL=153.ed2c6ae2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/153.4a353f6c.chunk.js.map b/static/js/153.ed2c6ae2.chunk.js.map
similarity index 99%
rename from static/js/153.4a353f6c.chunk.js.map
rename to static/js/153.ed2c6ae2.chunk.js.map
index 21a6fec01..d0bb1d024 100644
--- a/static/js/153.4a353f6c.chunk.js.map
+++ b/static/js/153.ed2c6ae2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-06-17-19-00-1.8.24-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4CAA4C,OAAS,OAAO,KAAO,okTAAgmT,MAAQ","file":"static/js/153.4a353f6c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.24 Release\",\"description\":\"Jagex rules update and party improvements\",\"author\":\"Adam\",\"body\":\"Jagex rules update \\nJagex have published a new third party client update ,\\nand with it a new set of third party client\\nguidelines .\\nThese new guidelines remove some previous restrictions which allows us to add\\nsome new features. We've added these features in this update.
\\nPickpocket swap \\nPickpocket
can now be swapped on all NPCs, even with a Talk-to
option, by\\nshift-right clicking them and selecting Swap Pickpocket
\\n
\\nRemoving dead NPC menus \\nThe menu entry swapper now has a setting to remove menus for dead NPCs. This\\nprevents clicking on them while they are dieing, as well as casting spells.\\nThe entity hider additionally has an option to remove the NPC completely so it\\nis no longer rendered.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: deadnpc\\n
\\nWalk here swap \\nIt is now possible to swap Walk here for both left click and shift click on NPC\\nby shift-right clicking them and selecting the corresponding swap option. There\\nis also a global shift click walk here setting in the menu swapper\\nconfiguration that affects all NPCs.
\\n
\\nWorn item swaps \\nMenus on worn items can now have both their left click and shift click option\\nswapped, which can be configured by shift-right clicking the item when wielded.
\\n
\\nParty system improvements \\nAs you may have noticed, we recently updated the special attack counter plugin\\nto show a "spec drop" overlay on the player when a special attack lands. This\\nfeature works with the reworked party system, which allows the spec drops to\\nshow on your party members.
\\nThe party system no longer requires Discord integration to send or join invites,\\nand instead uses a passphrase system. This is a lot less finicky and works more\\nreliably when multiple clients are running.
\\nCreating a party now gives you a passphrase, such as robe-set-raw-purple
,\\nwhich you share with your friends. They just need to click Join party
and\\npaste the passphrase to join.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe inventory and chatbox are now movable by holding alt. As usual they can\\nbe reset to their default position via alt-right click. The alt
key used to\\ndrag overlays around is also configurable within the RuneLite
settings. \\nKeris partisan defensive style is now correctly hidden by the attack styles\\nplugin \\nAnother bug causing the !pets
icons to not show up has been fixed, again. \\nMinigame reset timer no longer shows if the setting to enable it is off. \\nA bug causing entity hider's hide pets option to not work has been fixed. \\n!lvl cox cm
now works correctly \\nAncient brew, mixed potions, and other more obscure things have been added to the item stats plugin \\nThe stamina timer now works more reliably and also with stamina mixes \\nNPC agression timer now has a setting to show for slayer tasks \\nThe timers plugin now has a timer for Shadow Veil \\nItem charges now supports imbued ring of wealth, and braclet of clay \\nThe mining plugin now shows respawn timers for gold veins \\nThe bank plugin now has an option to force right click the placeholder toggle button \\nThe Left click walk on core
option of the Corporeal Beast plugin has returned once again \\nNPC indicators now has an option to highlight true south-west tile and true\\ntile \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this update!
\\nAdam (57):\\n compost tracking: fix tracking fertile soil with ash covered tome\\n overlay: make alt drag hotkey configurable\\n overlay: better handle picking up overlapping overlays\\n menu swapper: removetags object/npc names\\n menu swapper: removetags npc name on reset swap\\n widget overlay: change minimap position back to top_right\\n overlay: add movable and snappable overlay flags\\n overlay: disallow transformPosition with dynamic/tooltip\\n overlay: set g2d clip per layer\\n overlay: worldmap: prefer rect2d as g2d clip shape\\n devtools: allow pgup/down to cycle through previous commands\\n overlay: use hovered overlay for picking managed overlay\\n overlay manager: remove spurious position reset logs\\n gpu: initialize scene uploader scene id with nanotime\\n api: add setForcedPosition widget method\\n widget overlay: use setForcedPosition\\n overlay: prevent moving non-movable overlays\\n prayer: don't return dimension for dynamic overlays\\n api: pass menu entry to menu add event and forward accessors\\n events: add tostring/equalsandhashcode to menuoption clicked\\n api: add npc accessor to menuentry\\n api: add player accessor to menuentry\\n attackstyles: add weapon types 28 and 29\\n fix race loading modicons\\n api: add player id accessor\\n party: remove Discord requirement\\n party: use passphrases for party ids\\n party: remove overlay\\n spec counter: add devmode check for spec command\\n gpu: fix debug mode on macos\\n worldmap: add akp and bjp fairy rings\\n chat commands: fix !lvl cox cm\\n api: deprecate if1 usage\\n chat commands: add rifts closed to gotr bossnames\\n chatfilter: fix matching lt/gt\\n Move entity hider logic to plugin\\n hooks: add exception handler for renderable draw listener\\n hooks: raise exception logs to error level\\n account: use http redirect for oauth login response\\n chat channel: use fc max size from container\\n runelite: set jagex.disableBouncyCastle=true\\n cannon: use varp for cannonball count\\n Move party messages from http-api\\n spec counter: add config option for infoboxes\\n party: no longer use account session id\\n party: send join on reconnect\\n entity hider: fix hide pets\\n timers: fix showMinigameTeleports check\\n raids: remove party scout message\\n xpglobes: add time to level to tooltip\\n corp plugin: add dark core attack deprioritization\\n npc overlay: use true tile for south west tile\\n menu swapper: remove Pickpocket block\\n menu swapper: add option to remove dead npc menu options\\n menu swapper: add npc walk here swap\\n entity hider: add option to hide dead npcs\\n menu swapper: add worn item swaps\\n\\nBen Puryear (1):\\n Add .DS_Store to .gitignore (#14925)\\n\\nCameron Hetzler (1):\\n loottracker: reverse collapse all tooltips\\n\\nDavid Luong (1):\\n item identification: Add Desert Treasure diamonds (#14764)\\n\\nHexagon (1):\\n spec counter: add spec drops\\n\\nHydrox6 (2):\\n item stats: add support for stat boosts with a cap\\n item stats: add ancient brew\\n\\nJonathan Forscher (1):\\n item stats: Add some missing beverages (#14412)\\n\\nJordan Atwood (10):\\n chat commands: Update clear word and clear line defaults\\n item stats: Clean up saradomin brew code\\n item stats: Use variables for reused potion effects\\n item stats: Add mixed potions\\n item stats: Remove combo primaries\\n item stats: Fix jangerberries stats\\n status bars: Override hitpoints and prayer max values in LMS\\n special counter: Fix test\\n hunter: Remove unused lastActionTime field\\n timers: Don't clear stamina on death\\n\\nLlemonDuck (5):\\n chatcommands: consume "clear single word" keypress\\n interfacestyles: 2005-style quest tab headers\\n clientui: setResizable after setVisible\\n slayer: expose slayer task data in service\\n npcaggro: show for current slayer task option\\n\\nMasonPMGit (2):\\n item charges: add bracelet of clay\\n clues: Allow Daeyalt essence for runecrafting skill challenges\\n\\nMatthew C (1):\\n skill calculator: Fix herblore typos (#14324)\\n\\nMax Weber (5):\\n rl-api, groundmarkers: handle instance plane conversion correctly\\n overlay: do not move snap points backwards\\n fairyring: add isle of souls ring\\n ClientLoader: don't fail patching to hidden files\\n SessionManager: don't fail to login with a existing hidden session file\\n\\nProjectileRage (1):\\n timers: Add Shadow Veil protection detection (#14687)\\n\\nStefan Zopfi (1):\\n itemcharges: add imbued ring of wealth\\n\\nZander Bolgar (1):\\n mining: add gold vein respawn timer\\n\\nemerald000 (1):\\n item stats: Add missing consumables\\n\\nsjpfeiffer (1):\\n bank: Add option to force right click on placeholder toggle button\\n\\nsuperiorser9 (2):\\n timers: Track home and minigame teleports using vars (#14842)\\n timers: Check stamina effect using varbits (#15014)\\n\\nvmarlowe (1):\\n fishing: Add frog spawn spot NPC (#14659)\\n
\\n\",\"image\":\"/img/blog/1.8.24-Release/pickpocket.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-06-17-19-00-1.8.24-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4CAA4C,OAAS,OAAO,KAAO,okTAAgmT,MAAQ","file":"static/js/153.ed2c6ae2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.24 Release\",\"description\":\"Jagex rules update and party improvements\",\"author\":\"Adam\",\"body\":\"Jagex rules update \\nJagex have published a new third party client update ,\\nand with it a new set of third party client\\nguidelines .\\nThese new guidelines remove some previous restrictions which allows us to add\\nsome new features. We've added these features in this update.
\\nPickpocket swap \\nPickpocket
can now be swapped on all NPCs, even with a Talk-to
option, by\\nshift-right clicking them and selecting Swap Pickpocket
\\n
\\nRemoving dead NPC menus \\nThe menu entry swapper now has a setting to remove menus for dead NPCs. This\\nprevents clicking on them while they are dieing, as well as casting spells.\\nThe entity hider additionally has an option to remove the NPC completely so it\\nis no longer rendered.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: deadnpc\\n
\\nWalk here swap \\nIt is now possible to swap Walk here for both left click and shift click on NPC\\nby shift-right clicking them and selecting the corresponding swap option. There\\nis also a global shift click walk here setting in the menu swapper\\nconfiguration that affects all NPCs.
\\n
\\nWorn item swaps \\nMenus on worn items can now have both their left click and shift click option\\nswapped, which can be configured by shift-right clicking the item when wielded.
\\n
\\nParty system improvements \\nAs you may have noticed, we recently updated the special attack counter plugin\\nto show a "spec drop" overlay on the player when a special attack lands. This\\nfeature works with the reworked party system, which allows the spec drops to\\nshow on your party members.
\\nThe party system no longer requires Discord integration to send or join invites,\\nand instead uses a passphrase system. This is a lot less finicky and works more\\nreliably when multiple clients are running.
\\nCreating a party now gives you a passphrase, such as robe-set-raw-purple
,\\nwhich you share with your friends. They just need to click Join party
and\\npaste the passphrase to join.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe inventory and chatbox are now movable by holding alt. As usual they can\\nbe reset to their default position via alt-right click. The alt
key used to\\ndrag overlays around is also configurable within the RuneLite
settings. \\nKeris partisan defensive style is now correctly hidden by the attack styles\\nplugin \\nAnother bug causing the !pets
icons to not show up has been fixed, again. \\nMinigame reset timer no longer shows if the setting to enable it is off. \\nA bug causing entity hider's hide pets option to not work has been fixed. \\n!lvl cox cm
now works correctly \\nAncient brew, mixed potions, and other more obscure things have been added to the item stats plugin \\nThe stamina timer now works more reliably and also with stamina mixes \\nNPC agression timer now has a setting to show for slayer tasks \\nThe timers plugin now has a timer for Shadow Veil \\nItem charges now supports imbued ring of wealth, and braclet of clay \\nThe mining plugin now shows respawn timers for gold veins \\nThe bank plugin now has an option to force right click the placeholder toggle button \\nThe Left click walk on core
option of the Corporeal Beast plugin has returned once again \\nNPC indicators now has an option to highlight true south-west tile and true\\ntile \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this update!
\\nAdam (57):\\n compost tracking: fix tracking fertile soil with ash covered tome\\n overlay: make alt drag hotkey configurable\\n overlay: better handle picking up overlapping overlays\\n menu swapper: removetags object/npc names\\n menu swapper: removetags npc name on reset swap\\n widget overlay: change minimap position back to top_right\\n overlay: add movable and snappable overlay flags\\n overlay: disallow transformPosition with dynamic/tooltip\\n overlay: set g2d clip per layer\\n overlay: worldmap: prefer rect2d as g2d clip shape\\n devtools: allow pgup/down to cycle through previous commands\\n overlay: use hovered overlay for picking managed overlay\\n overlay manager: remove spurious position reset logs\\n gpu: initialize scene uploader scene id with nanotime\\n api: add setForcedPosition widget method\\n widget overlay: use setForcedPosition\\n overlay: prevent moving non-movable overlays\\n prayer: don't return dimension for dynamic overlays\\n api: pass menu entry to menu add event and forward accessors\\n events: add tostring/equalsandhashcode to menuoption clicked\\n api: add npc accessor to menuentry\\n api: add player accessor to menuentry\\n attackstyles: add weapon types 28 and 29\\n fix race loading modicons\\n api: add player id accessor\\n party: remove Discord requirement\\n party: use passphrases for party ids\\n party: remove overlay\\n spec counter: add devmode check for spec command\\n gpu: fix debug mode on macos\\n worldmap: add akp and bjp fairy rings\\n chat commands: fix !lvl cox cm\\n api: deprecate if1 usage\\n chat commands: add rifts closed to gotr bossnames\\n chatfilter: fix matching lt/gt\\n Move entity hider logic to plugin\\n hooks: add exception handler for renderable draw listener\\n hooks: raise exception logs to error level\\n account: use http redirect for oauth login response\\n chat channel: use fc max size from container\\n runelite: set jagex.disableBouncyCastle=true\\n cannon: use varp for cannonball count\\n Move party messages from http-api\\n spec counter: add config option for infoboxes\\n party: no longer use account session id\\n party: send join on reconnect\\n entity hider: fix hide pets\\n timers: fix showMinigameTeleports check\\n raids: remove party scout message\\n xpglobes: add time to level to tooltip\\n corp plugin: add dark core attack deprioritization\\n npc overlay: use true tile for south west tile\\n menu swapper: remove Pickpocket block\\n menu swapper: add option to remove dead npc menu options\\n menu swapper: add npc walk here swap\\n entity hider: add option to hide dead npcs\\n menu swapper: add worn item swaps\\n\\nBen Puryear (1):\\n Add .DS_Store to .gitignore (#14925)\\n\\nCameron Hetzler (1):\\n loottracker: reverse collapse all tooltips\\n\\nDavid Luong (1):\\n item identification: Add Desert Treasure diamonds (#14764)\\n\\nHexagon (1):\\n spec counter: add spec drops\\n\\nHydrox6 (2):\\n item stats: add support for stat boosts with a cap\\n item stats: add ancient brew\\n\\nJonathan Forscher (1):\\n item stats: Add some missing beverages (#14412)\\n\\nJordan Atwood (10):\\n chat commands: Update clear word and clear line defaults\\n item stats: Clean up saradomin brew code\\n item stats: Use variables for reused potion effects\\n item stats: Add mixed potions\\n item stats: Remove combo primaries\\n item stats: Fix jangerberries stats\\n status bars: Override hitpoints and prayer max values in LMS\\n special counter: Fix test\\n hunter: Remove unused lastActionTime field\\n timers: Don't clear stamina on death\\n\\nLlemonDuck (5):\\n chatcommands: consume "clear single word" keypress\\n interfacestyles: 2005-style quest tab headers\\n clientui: setResizable after setVisible\\n slayer: expose slayer task data in service\\n npcaggro: show for current slayer task option\\n\\nMasonPMGit (2):\\n item charges: add bracelet of clay\\n clues: Allow Daeyalt essence for runecrafting skill challenges\\n\\nMatthew C (1):\\n skill calculator: Fix herblore typos (#14324)\\n\\nMax Weber (5):\\n rl-api, groundmarkers: handle instance plane conversion correctly\\n overlay: do not move snap points backwards\\n fairyring: add isle of souls ring\\n ClientLoader: don't fail patching to hidden files\\n SessionManager: don't fail to login with a existing hidden session file\\n\\nProjectileRage (1):\\n timers: Add Shadow Veil protection detection (#14687)\\n\\nStefan Zopfi (1):\\n itemcharges: add imbued ring of wealth\\n\\nZander Bolgar (1):\\n mining: add gold vein respawn timer\\n\\nemerald000 (1):\\n item stats: Add missing consumables\\n\\nsjpfeiffer (1):\\n bank: Add option to force right click on placeholder toggle button\\n\\nsuperiorser9 (2):\\n timers: Track home and minigame teleports using vars (#14842)\\n timers: Check stamina effect using varbits (#15014)\\n\\nvmarlowe (1):\\n fishing: Add frog spawn spot NPC (#14659)\\n
\\n\",\"image\":\"/img/blog/1.8.24-Release/pickpocket.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/154.52610528.chunk.js b/static/js/154.f5dc672d.chunk.js
similarity index 98%
rename from static/js/154.52610528.chunk.js
rename to static/js/154.f5dc672d.chunk.js
index 14484116d..4ebebb451 100644
--- a/static/js/154.52610528.chunk.js
+++ b/static/js/154.f5dc672d.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[154],{429:function(e,n){e.exports={title:"1.8.27 Release",description:"Farming payment tracker and minor improvements",author:"Adam",body:'Behavior changes since the previous update \nSince the last blog post I\'ve made a couple behavior changes without a proper blog post explaning them, leading to some confusion. Sorry about that.\nThese changes are:
\nThe boosts plugin gained a new "compact view", which necessitated a new toggle for turning off the existing boosts panel display, which previously was predicated on the infobox on/off toggle. The new "Display panel" option was defaulted to off, assuming most players use the infobox display instead. If you notice the boost panel missing, go into the Boosts information
plugin and enable Display panel
.
\nInventory tags and the left and shift-click configuration for inventory items have moved to the shift-right click menu on the items, similar to how the custom swap settings on npcs, objects, and worn items work. This makes it easier to change these settings quickly and removes the "configuration" mode where you are otherwise unable to interact with the items, which can be inconvienent. Inventory tags now supports an unlimited number of different tag "groups"/colors instead of just 6.
\nThe party ping-tile key was made configurable due to it conflicting with the various new shift-click swaps. To use it, go to the party plugin settings and configure the hotkey.
\nFarming payment tracker \nThe farming tracker now tracks patch payments for most trees, fruit trees, bushes. It doesn\'t work currently with payments to farmers who protect multiple patches, notably allotments. It is denoted via a basket of apples:
\n
\nIt is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.
\nGPU improvements \nLast week, we changed the underlying libraries our GPU plugin uses for interfacing with OpenGL. As part of this work, we were able to reduce the minimum OpenGL version required to run the GPU plugin to OpenGL 3.1. If you have a particularly old system which was unable to run GPU prior, it may begin to work now. The previous GPU plugin was made available on the pluginhub as GPU (legacy)
for if you are having issues with the new plugin. Though if you are, particularly if legacy GPU works on your system and the new one doesn\'t, we would be interested in hearing about it on Discord .
\nThere are also several smaller improvements and bug fixes, including:
\n\nXP drop recolors for having the correct prayer no longer considers turning prayers on after\nthe game tick but before the xp drop as successfully having the prayer on. \nA bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed. \nThe spec counter now much more reliably detects which hitsplat is the spec hit when hits from multiple\nsources happen at the same time (thralls/veng) \nCoX private chest has been added to antidrag \nA bug causing the world ping overlay to freeze on MacOS/Linux has been fixed \nA hop
command has been added to world hop, eg ::hop 351
\nThe loot tracker now tracks Take-all
on seedpacks \nVarious references to the dual arena has been changed to the pvp arena \nPvP arena worlds are now skipped over by the world hopper \nObject indicators now has options to highlight object outlines and clickboxes \nThe spec counter now resets at Sotetseg\'s maze phase \nThe hiscores have all been shifted back into place due to the addition of the PvP arena \nThe party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players \nThe bracelet of clay tracker now correctly handles soft clay mining \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 16 contributors this update!
\nAdam (61):\n menu swapper: always raise menus from low priority to cc_op\n npc indicators: add true tile highlight\n menu swapper: add global npc shift-click swap\n npc indicators: separate sw true tile and regular overlay\n party: make ping hotkey configurable\n Add rtconfig for excluded dead npcs\n Require Attack option for dying npcs\n boosts: cleanup\n boosts: add compact view\n boosts: right justify compact overlay text\n party: switch to protobuf\n entity hider: remove pvp hiding restriction\n npcutil: make rtconfig nullable\n api: add server varps\n xp drops: test server varbit for prayer active check\n menu swapper: add custom shift-click npc swap\n menu swapper: add custom shift-click object swap\n party: sanitize passphrase inputs\n tooltip: don\'t set overlay bounds when rendering\n spec counter: make SpecialWeapon public\n antidrag: add cox private chest\n spec counter: improve spec hitsplat detection\n spec counter: remove instanced region reset\n api: switch varc enums to use magicconstant\n ping: fix setting rcvtimeo\n ping: set SNDTIMEO\n client: update remaining getvar references\n object indicators: fix exception from under-bridge objects\n menu swapper: rename left-click swap configs to reflect they add shift too\n menu swapper: default npc shift click walk here to off\n menu swapper: add shift click walk here on objects\n menu swapper: add shift-click walk here on ground items\n spec counter: fix exception from unrecognized spec weapons\n loottracker: remove importloot\n api: add colortextureoverride\n party: exclude null from passphrase generation\n boosts: swap back (de)buff icons\n boosts: swap (de)buff icons in compat view\n boosts: fix compat view negative boosts\n world hopper: add hop command\n api: exclude dbtable\n menu swapper: use shift right click minimenu for setting up item swaps\n inv tags: add unlimited tag groups\n xptracker: initialize account and world type on startup\n clues: make findClueScroll not reset state\n clues: avoid checking clue text each tick\n change duel arena references to pvp arena\n loot tracker: add take-all for seedpacks\n menu swapper: prioritize custom swaps over hint arrow\n api: mark some tileobject methods as nullable\n menu swapper: use left click customization config\n menu swapper: sort menus by left then shift\n api: remove gameobjectchanged event\n api: remove wallobjectchanged event\n api: remove groundobjectchanged event\n api: remove decorativeobjectchanged event\n clues: remove unused tileObjectChangedHandler\n Add pvp arena world type\n timetracking: add farming payment tracker\n hiscore: add pvp arena\n hiscore panel: add pvp arena\n\nChintan Suthar (1):\n object indicators: add outline and clickbox highlight options\n\nHexagon (2):\n spec-counter: use npc index instead of id for tracking\n spec-counter: reset counter on sotetseg maze\n\nJordan Atwood (16):\n entity hider: Don\'t hide NPCs which are alive at 0hp\n game: Add more NPCs which do not die at 0hp\n game: Remove isDying block on transforming NPCs\n game: Add Giant rockslug to isDying block list\n game: Override isDying for Nex, Alchemical hydra, and Drakes\n plugins: Use isDying for loot and boss timer checks\n Add rtconfig for forced dead npcs\n api: Add Actor#setDead(boolean)\n entity hider: Hide nylocas death graphics\n game: Fix Alchemical Hydra isDying override ID\n game: Fix isDying for transforming NPCs\n game: Set Corporeal beast dead on death animation\n game: Add isDying special case for Zalcano\n npc indicators: Fix NpcUtil uses\n npc indicators: Fix dead npc highlight test\n HotColdLocation: Fix enemy for South-west of Arandar\n\nJoshua Filby (5):\n cache: add ScriptVarType#id\n cache: add DBTableDefinition\n cache: add DBRowDefinition\n cache: add DBTableIndex\n cache: add dbtable opcodes\n\nLlemonDuck (7):\n party: spelling generatePassphrase\n plugin manager: don\'t load builtin externals from hub\n party: unified player status packet\n party: extended status packet + player overlay\n party: add getMemberByDisplayName\n player indicators: highlight party members\n npc indicators: Use isDying for dead NPC checks (#15160)\n\nMacweese (1):\n game: Add isDying support for Hopeless creature transformations (#15257)\n\nMax Weber (5):\n cache/ParamLoader: load types correctly\n cache/ScriptVarType: add db row\n Update Quests to 2022-6-29\n questlist: update for dbtabled quests\n gpu: switch to rlawt & lwjgl\n\nMoreBuchus (1):\n party: compact status overlay\n\nPaul Norton (2):\n player indicators: show fc/cc ranks on friends in minimenu\n party: getMemberByDisplayName search by jagex name\n\nReece Camper (1):\n skill calculator: Add ensouled hellhound head to prayer actions (#15064)\n\nRobin (1):\n game: Add lizards to isDying block list (#15144)\n\nSirWrain (1):\n achievement diary: Fix Kourend elite blood runecrafting task text (#15128)\n\nSpencer Kane (1):\n item charges: fix soft clay mining tracking\n\nTimothy J. Aveni (1):\n achievement diary: Remove Ghosts Ahoy requirement from Port Phasmatys cannonball task (#15196)\n\nTomas Slusny (1):\n account: send username and sessionid when redirecting to /logged-in page\n
\n',image:"/img/blog/1.8.27-Release/farm.png"}}}]);
-//# sourceMappingURL=154.52610528.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[154],{430:function(e,n){e.exports={title:"1.8.27 Release",description:"Farming payment tracker and minor improvements",author:"Adam",body:'Behavior changes since the previous update \nSince the last blog post I\'ve made a couple behavior changes without a proper blog post explaning them, leading to some confusion. Sorry about that.\nThese changes are:
\nThe boosts plugin gained a new "compact view", which necessitated a new toggle for turning off the existing boosts panel display, which previously was predicated on the infobox on/off toggle. The new "Display panel" option was defaulted to off, assuming most players use the infobox display instead. If you notice the boost panel missing, go into the Boosts information
plugin and enable Display panel
.
\nInventory tags and the left and shift-click configuration for inventory items have moved to the shift-right click menu on the items, similar to how the custom swap settings on npcs, objects, and worn items work. This makes it easier to change these settings quickly and removes the "configuration" mode where you are otherwise unable to interact with the items, which can be inconvienent. Inventory tags now supports an unlimited number of different tag "groups"/colors instead of just 6.
\nThe party ping-tile key was made configurable due to it conflicting with the various new shift-click swaps. To use it, go to the party plugin settings and configure the hotkey.
\nFarming payment tracker \nThe farming tracker now tracks patch payments for most trees, fruit trees, bushes. It doesn\'t work currently with payments to farmers who protect multiple patches, notably allotments. It is denoted via a basket of apples:
\n
\nIt is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.
\nGPU improvements \nLast week, we changed the underlying libraries our GPU plugin uses for interfacing with OpenGL. As part of this work, we were able to reduce the minimum OpenGL version required to run the GPU plugin to OpenGL 3.1. If you have a particularly old system which was unable to run GPU prior, it may begin to work now. The previous GPU plugin was made available on the pluginhub as GPU (legacy)
for if you are having issues with the new plugin. Though if you are, particularly if legacy GPU works on your system and the new one doesn\'t, we would be interested in hearing about it on Discord .
\nThere are also several smaller improvements and bug fixes, including:
\n\nXP drop recolors for having the correct prayer no longer considers turning prayers on after\nthe game tick but before the xp drop as successfully having the prayer on. \nA bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed. \nThe spec counter now much more reliably detects which hitsplat is the spec hit when hits from multiple\nsources happen at the same time (thralls/veng) \nCoX private chest has been added to antidrag \nA bug causing the world ping overlay to freeze on MacOS/Linux has been fixed \nA hop
command has been added to world hop, eg ::hop 351
\nThe loot tracker now tracks Take-all
on seedpacks \nVarious references to the dual arena has been changed to the pvp arena \nPvP arena worlds are now skipped over by the world hopper \nObject indicators now has options to highlight object outlines and clickboxes \nThe spec counter now resets at Sotetseg\'s maze phase \nThe hiscores have all been shifted back into place due to the addition of the PvP arena \nThe party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players \nThe bracelet of clay tracker now correctly handles soft clay mining \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 16 contributors this update!
\nAdam (61):\n menu swapper: always raise menus from low priority to cc_op\n npc indicators: add true tile highlight\n menu swapper: add global npc shift-click swap\n npc indicators: separate sw true tile and regular overlay\n party: make ping hotkey configurable\n Add rtconfig for excluded dead npcs\n Require Attack option for dying npcs\n boosts: cleanup\n boosts: add compact view\n boosts: right justify compact overlay text\n party: switch to protobuf\n entity hider: remove pvp hiding restriction\n npcutil: make rtconfig nullable\n api: add server varps\n xp drops: test server varbit for prayer active check\n menu swapper: add custom shift-click npc swap\n menu swapper: add custom shift-click object swap\n party: sanitize passphrase inputs\n tooltip: don\'t set overlay bounds when rendering\n spec counter: make SpecialWeapon public\n antidrag: add cox private chest\n spec counter: improve spec hitsplat detection\n spec counter: remove instanced region reset\n api: switch varc enums to use magicconstant\n ping: fix setting rcvtimeo\n ping: set SNDTIMEO\n client: update remaining getvar references\n object indicators: fix exception from under-bridge objects\n menu swapper: rename left-click swap configs to reflect they add shift too\n menu swapper: default npc shift click walk here to off\n menu swapper: add shift click walk here on objects\n menu swapper: add shift-click walk here on ground items\n spec counter: fix exception from unrecognized spec weapons\n loottracker: remove importloot\n api: add colortextureoverride\n party: exclude null from passphrase generation\n boosts: swap back (de)buff icons\n boosts: swap (de)buff icons in compat view\n boosts: fix compat view negative boosts\n world hopper: add hop command\n api: exclude dbtable\n menu swapper: use shift right click minimenu for setting up item swaps\n inv tags: add unlimited tag groups\n xptracker: initialize account and world type on startup\n clues: make findClueScroll not reset state\n clues: avoid checking clue text each tick\n change duel arena references to pvp arena\n loot tracker: add take-all for seedpacks\n menu swapper: prioritize custom swaps over hint arrow\n api: mark some tileobject methods as nullable\n menu swapper: use left click customization config\n menu swapper: sort menus by left then shift\n api: remove gameobjectchanged event\n api: remove wallobjectchanged event\n api: remove groundobjectchanged event\n api: remove decorativeobjectchanged event\n clues: remove unused tileObjectChangedHandler\n Add pvp arena world type\n timetracking: add farming payment tracker\n hiscore: add pvp arena\n hiscore panel: add pvp arena\n\nChintan Suthar (1):\n object indicators: add outline and clickbox highlight options\n\nHexagon (2):\n spec-counter: use npc index instead of id for tracking\n spec-counter: reset counter on sotetseg maze\n\nJordan Atwood (16):\n entity hider: Don\'t hide NPCs which are alive at 0hp\n game: Add more NPCs which do not die at 0hp\n game: Remove isDying block on transforming NPCs\n game: Add Giant rockslug to isDying block list\n game: Override isDying for Nex, Alchemical hydra, and Drakes\n plugins: Use isDying for loot and boss timer checks\n Add rtconfig for forced dead npcs\n api: Add Actor#setDead(boolean)\n entity hider: Hide nylocas death graphics\n game: Fix Alchemical Hydra isDying override ID\n game: Fix isDying for transforming NPCs\n game: Set Corporeal beast dead on death animation\n game: Add isDying special case for Zalcano\n npc indicators: Fix NpcUtil uses\n npc indicators: Fix dead npc highlight test\n HotColdLocation: Fix enemy for South-west of Arandar\n\nJoshua Filby (5):\n cache: add ScriptVarType#id\n cache: add DBTableDefinition\n cache: add DBRowDefinition\n cache: add DBTableIndex\n cache: add dbtable opcodes\n\nLlemonDuck (7):\n party: spelling generatePassphrase\n plugin manager: don\'t load builtin externals from hub\n party: unified player status packet\n party: extended status packet + player overlay\n party: add getMemberByDisplayName\n player indicators: highlight party members\n npc indicators: Use isDying for dead NPC checks (#15160)\n\nMacweese (1):\n game: Add isDying support for Hopeless creature transformations (#15257)\n\nMax Weber (5):\n cache/ParamLoader: load types correctly\n cache/ScriptVarType: add db row\n Update Quests to 2022-6-29\n questlist: update for dbtabled quests\n gpu: switch to rlawt & lwjgl\n\nMoreBuchus (1):\n party: compact status overlay\n\nPaul Norton (2):\n player indicators: show fc/cc ranks on friends in minimenu\n party: getMemberByDisplayName search by jagex name\n\nReece Camper (1):\n skill calculator: Add ensouled hellhound head to prayer actions (#15064)\n\nRobin (1):\n game: Add lizards to isDying block list (#15144)\n\nSirWrain (1):\n achievement diary: Fix Kourend elite blood runecrafting task text (#15128)\n\nSpencer Kane (1):\n item charges: fix soft clay mining tracking\n\nTimothy J. Aveni (1):\n achievement diary: Remove Ghosts Ahoy requirement from Port Phasmatys cannonball task (#15196)\n\nTomas Slusny (1):\n account: send username and sessionid when redirecting to /logged-in page\n
\n',image:"/img/blog/1.8.27-Release/farm.png"}}}]);
+//# sourceMappingURL=154.f5dc672d.chunk.js.map
\ No newline at end of file
diff --git a/static/js/154.52610528.chunk.js.map b/static/js/154.f5dc672d.chunk.js.map
similarity index 99%
rename from static/js/154.52610528.chunk.js.map
rename to static/js/154.f5dc672d.chunk.js.map
index 528db8d1b..50623626b 100644
--- a/static/js/154.52610528.chunk.js.map
+++ b/static/js/154.f5dc672d.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-07-13-19-00-1.8.27-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iDAAiD,OAAS,OAAO,KAAO,6lTAAgmT,MAAQ","file":"static/js/154.52610528.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.27 Release\",\"description\":\"Farming payment tracker and minor improvements\",\"author\":\"Adam\",\"body\":\"Behavior changes since the previous update \\nSince the last blog post I've made a couple behavior changes without a proper blog post explaning them, leading to some confusion. Sorry about that.\\nThese changes are:
\\nThe boosts plugin gained a new "compact view", which necessitated a new toggle for turning off the existing boosts panel display, which previously was predicated on the infobox on/off toggle. The new "Display panel" option was defaulted to off, assuming most players use the infobox display instead. If you notice the boost panel missing, go into the Boosts information
plugin and enable Display panel
.
\\nInventory tags and the left and shift-click configuration for inventory items have moved to the shift-right click menu on the items, similar to how the custom swap settings on npcs, objects, and worn items work. This makes it easier to change these settings quickly and removes the "configuration" mode where you are otherwise unable to interact with the items, which can be inconvienent. Inventory tags now supports an unlimited number of different tag "groups"/colors instead of just 6.
\\nThe party ping-tile key was made configurable due to it conflicting with the various new shift-click swaps. To use it, go to the party plugin settings and configure the hotkey.
\\nFarming payment tracker \\nThe farming tracker now tracks patch payments for most trees, fruit trees, bushes. It doesn't work currently with payments to farmers who protect multiple patches, notably allotments. It is denoted via a basket of apples:
\\n
\\nIt is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.
\\nGPU improvements \\nLast week, we changed the underlying libraries our GPU plugin uses for interfacing with OpenGL. As part of this work, we were able to reduce the minimum OpenGL version required to run the GPU plugin to OpenGL 3.1. If you have a particularly old system which was unable to run GPU prior, it may begin to work now. The previous GPU plugin was made available on the pluginhub as GPU (legacy)
for if you are having issues with the new plugin. Though if you are, particularly if legacy GPU works on your system and the new one doesn't, we would be interested in hearing about it on Discord .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nXP drop recolors for having the correct prayer no longer considers turning prayers on after\\nthe game tick but before the xp drop as successfully having the prayer on. \\nA bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed. \\nThe spec counter now much more reliably detects which hitsplat is the spec hit when hits from multiple\\nsources happen at the same time (thralls/veng) \\nCoX private chest has been added to antidrag \\nA bug causing the world ping overlay to freeze on MacOS/Linux has been fixed \\nA hop
command has been added to world hop, eg ::hop 351
\\nThe loot tracker now tracks Take-all
on seedpacks \\nVarious references to the dual arena has been changed to the pvp arena \\nPvP arena worlds are now skipped over by the world hopper \\nObject indicators now has options to highlight object outlines and clickboxes \\nThe spec counter now resets at Sotetseg's maze phase \\nThe hiscores have all been shifted back into place due to the addition of the PvP arena \\nThe party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players \\nThe bracelet of clay tracker now correctly handles soft clay mining \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 16 contributors this update!
\\nAdam (61):\\n menu swapper: always raise menus from low priority to cc_op\\n npc indicators: add true tile highlight\\n menu swapper: add global npc shift-click swap\\n npc indicators: separate sw true tile and regular overlay\\n party: make ping hotkey configurable\\n Add rtconfig for excluded dead npcs\\n Require Attack option for dying npcs\\n boosts: cleanup\\n boosts: add compact view\\n boosts: right justify compact overlay text\\n party: switch to protobuf\\n entity hider: remove pvp hiding restriction\\n npcutil: make rtconfig nullable\\n api: add server varps\\n xp drops: test server varbit for prayer active check\\n menu swapper: add custom shift-click npc swap\\n menu swapper: add custom shift-click object swap\\n party: sanitize passphrase inputs\\n tooltip: don't set overlay bounds when rendering\\n spec counter: make SpecialWeapon public\\n antidrag: add cox private chest\\n spec counter: improve spec hitsplat detection\\n spec counter: remove instanced region reset\\n api: switch varc enums to use magicconstant\\n ping: fix setting rcvtimeo\\n ping: set SNDTIMEO\\n client: update remaining getvar references\\n object indicators: fix exception from under-bridge objects\\n menu swapper: rename left-click swap configs to reflect they add shift too\\n menu swapper: default npc shift click walk here to off\\n menu swapper: add shift click walk here on objects\\n menu swapper: add shift-click walk here on ground items\\n spec counter: fix exception from unrecognized spec weapons\\n loottracker: remove importloot\\n api: add colortextureoverride\\n party: exclude null from passphrase generation\\n boosts: swap back (de)buff icons\\n boosts: swap (de)buff icons in compat view\\n boosts: fix compat view negative boosts\\n world hopper: add hop command\\n api: exclude dbtable\\n menu swapper: use shift right click minimenu for setting up item swaps\\n inv tags: add unlimited tag groups\\n xptracker: initialize account and world type on startup\\n clues: make findClueScroll not reset state\\n clues: avoid checking clue text each tick\\n change duel arena references to pvp arena\\n loot tracker: add take-all for seedpacks\\n menu swapper: prioritize custom swaps over hint arrow\\n api: mark some tileobject methods as nullable\\n menu swapper: use left click customization config\\n menu swapper: sort menus by left then shift\\n api: remove gameobjectchanged event\\n api: remove wallobjectchanged event\\n api: remove groundobjectchanged event\\n api: remove decorativeobjectchanged event\\n clues: remove unused tileObjectChangedHandler\\n Add pvp arena world type\\n timetracking: add farming payment tracker\\n hiscore: add pvp arena\\n hiscore panel: add pvp arena\\n\\nChintan Suthar (1):\\n object indicators: add outline and clickbox highlight options\\n\\nHexagon (2):\\n spec-counter: use npc index instead of id for tracking\\n spec-counter: reset counter on sotetseg maze\\n\\nJordan Atwood (16):\\n entity hider: Don't hide NPCs which are alive at 0hp\\n game: Add more NPCs which do not die at 0hp\\n game: Remove isDying block on transforming NPCs\\n game: Add Giant rockslug to isDying block list\\n game: Override isDying for Nex, Alchemical hydra, and Drakes\\n plugins: Use isDying for loot and boss timer checks\\n Add rtconfig for forced dead npcs\\n api: Add Actor#setDead(boolean)\\n entity hider: Hide nylocas death graphics\\n game: Fix Alchemical Hydra isDying override ID\\n game: Fix isDying for transforming NPCs\\n game: Set Corporeal beast dead on death animation\\n game: Add isDying special case for Zalcano\\n npc indicators: Fix NpcUtil uses\\n npc indicators: Fix dead npc highlight test\\n HotColdLocation: Fix enemy for South-west of Arandar\\n\\nJoshua Filby (5):\\n cache: add ScriptVarType#id\\n cache: add DBTableDefinition\\n cache: add DBRowDefinition\\n cache: add DBTableIndex\\n cache: add dbtable opcodes\\n\\nLlemonDuck (7):\\n party: spelling generatePassphrase\\n plugin manager: don't load builtin externals from hub\\n party: unified player status packet\\n party: extended status packet + player overlay\\n party: add getMemberByDisplayName\\n player indicators: highlight party members\\n npc indicators: Use isDying for dead NPC checks (#15160)\\n\\nMacweese (1):\\n game: Add isDying support for Hopeless creature transformations (#15257)\\n\\nMax Weber (5):\\n cache/ParamLoader: load types correctly\\n cache/ScriptVarType: add db row\\n Update Quests to 2022-6-29\\n questlist: update for dbtabled quests\\n gpu: switch to rlawt & lwjgl\\n\\nMoreBuchus (1):\\n party: compact status overlay\\n\\nPaul Norton (2):\\n player indicators: show fc/cc ranks on friends in minimenu\\n party: getMemberByDisplayName search by jagex name\\n\\nReece Camper (1):\\n skill calculator: Add ensouled hellhound head to prayer actions (#15064)\\n\\nRobin (1):\\n game: Add lizards to isDying block list (#15144)\\n\\nSirWrain (1):\\n achievement diary: Fix Kourend elite blood runecrafting task text (#15128)\\n\\nSpencer Kane (1):\\n item charges: fix soft clay mining tracking\\n\\nTimothy J. Aveni (1):\\n achievement diary: Remove Ghosts Ahoy requirement from Port Phasmatys cannonball task (#15196)\\n\\nTomas Slusny (1):\\n account: send username and sessionid when redirecting to /logged-in page\\n
\\n\",\"image\":\"/img/blog/1.8.27-Release/farm.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-07-13-19-00-1.8.27-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iDAAiD,OAAS,OAAO,KAAO,6lTAAgmT,MAAQ","file":"static/js/154.f5dc672d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.27 Release\",\"description\":\"Farming payment tracker and minor improvements\",\"author\":\"Adam\",\"body\":\"Behavior changes since the previous update \\nSince the last blog post I've made a couple behavior changes without a proper blog post explaning them, leading to some confusion. Sorry about that.\\nThese changes are:
\\nThe boosts plugin gained a new "compact view", which necessitated a new toggle for turning off the existing boosts panel display, which previously was predicated on the infobox on/off toggle. The new "Display panel" option was defaulted to off, assuming most players use the infobox display instead. If you notice the boost panel missing, go into the Boosts information
plugin and enable Display panel
.
\\nInventory tags and the left and shift-click configuration for inventory items have moved to the shift-right click menu on the items, similar to how the custom swap settings on npcs, objects, and worn items work. This makes it easier to change these settings quickly and removes the "configuration" mode where you are otherwise unable to interact with the items, which can be inconvienent. Inventory tags now supports an unlimited number of different tag "groups"/colors instead of just 6.
\\nThe party ping-tile key was made configurable due to it conflicting with the various new shift-click swaps. To use it, go to the party plugin settings and configure the hotkey.
\\nFarming payment tracker \\nThe farming tracker now tracks patch payments for most trees, fruit trees, bushes. It doesn't work currently with payments to farmers who protect multiple patches, notably allotments. It is denoted via a basket of apples:
\\n
\\nIt is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.
\\nGPU improvements \\nLast week, we changed the underlying libraries our GPU plugin uses for interfacing with OpenGL. As part of this work, we were able to reduce the minimum OpenGL version required to run the GPU plugin to OpenGL 3.1. If you have a particularly old system which was unable to run GPU prior, it may begin to work now. The previous GPU plugin was made available on the pluginhub as GPU (legacy)
for if you are having issues with the new plugin. Though if you are, particularly if legacy GPU works on your system and the new one doesn't, we would be interested in hearing about it on Discord .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nXP drop recolors for having the correct prayer no longer considers turning prayers on after\\nthe game tick but before the xp drop as successfully having the prayer on. \\nA bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed. \\nThe spec counter now much more reliably detects which hitsplat is the spec hit when hits from multiple\\nsources happen at the same time (thralls/veng) \\nCoX private chest has been added to antidrag \\nA bug causing the world ping overlay to freeze on MacOS/Linux has been fixed \\nA hop
command has been added to world hop, eg ::hop 351
\\nThe loot tracker now tracks Take-all
on seedpacks \\nVarious references to the dual arena has been changed to the pvp arena \\nPvP arena worlds are now skipped over by the world hopper \\nObject indicators now has options to highlight object outlines and clickboxes \\nThe spec counter now resets at Sotetseg's maze phase \\nThe hiscores have all been shifted back into place due to the addition of the PvP arena \\nThe party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players \\nThe bracelet of clay tracker now correctly handles soft clay mining \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 16 contributors this update!
\\nAdam (61):\\n menu swapper: always raise menus from low priority to cc_op\\n npc indicators: add true tile highlight\\n menu swapper: add global npc shift-click swap\\n npc indicators: separate sw true tile and regular overlay\\n party: make ping hotkey configurable\\n Add rtconfig for excluded dead npcs\\n Require Attack option for dying npcs\\n boosts: cleanup\\n boosts: add compact view\\n boosts: right justify compact overlay text\\n party: switch to protobuf\\n entity hider: remove pvp hiding restriction\\n npcutil: make rtconfig nullable\\n api: add server varps\\n xp drops: test server varbit for prayer active check\\n menu swapper: add custom shift-click npc swap\\n menu swapper: add custom shift-click object swap\\n party: sanitize passphrase inputs\\n tooltip: don't set overlay bounds when rendering\\n spec counter: make SpecialWeapon public\\n antidrag: add cox private chest\\n spec counter: improve spec hitsplat detection\\n spec counter: remove instanced region reset\\n api: switch varc enums to use magicconstant\\n ping: fix setting rcvtimeo\\n ping: set SNDTIMEO\\n client: update remaining getvar references\\n object indicators: fix exception from under-bridge objects\\n menu swapper: rename left-click swap configs to reflect they add shift too\\n menu swapper: default npc shift click walk here to off\\n menu swapper: add shift click walk here on objects\\n menu swapper: add shift-click walk here on ground items\\n spec counter: fix exception from unrecognized spec weapons\\n loottracker: remove importloot\\n api: add colortextureoverride\\n party: exclude null from passphrase generation\\n boosts: swap back (de)buff icons\\n boosts: swap (de)buff icons in compat view\\n boosts: fix compat view negative boosts\\n world hopper: add hop command\\n api: exclude dbtable\\n menu swapper: use shift right click minimenu for setting up item swaps\\n inv tags: add unlimited tag groups\\n xptracker: initialize account and world type on startup\\n clues: make findClueScroll not reset state\\n clues: avoid checking clue text each tick\\n change duel arena references to pvp arena\\n loot tracker: add take-all for seedpacks\\n menu swapper: prioritize custom swaps over hint arrow\\n api: mark some tileobject methods as nullable\\n menu swapper: use left click customization config\\n menu swapper: sort menus by left then shift\\n api: remove gameobjectchanged event\\n api: remove wallobjectchanged event\\n api: remove groundobjectchanged event\\n api: remove decorativeobjectchanged event\\n clues: remove unused tileObjectChangedHandler\\n Add pvp arena world type\\n timetracking: add farming payment tracker\\n hiscore: add pvp arena\\n hiscore panel: add pvp arena\\n\\nChintan Suthar (1):\\n object indicators: add outline and clickbox highlight options\\n\\nHexagon (2):\\n spec-counter: use npc index instead of id for tracking\\n spec-counter: reset counter on sotetseg maze\\n\\nJordan Atwood (16):\\n entity hider: Don't hide NPCs which are alive at 0hp\\n game: Add more NPCs which do not die at 0hp\\n game: Remove isDying block on transforming NPCs\\n game: Add Giant rockslug to isDying block list\\n game: Override isDying for Nex, Alchemical hydra, and Drakes\\n plugins: Use isDying for loot and boss timer checks\\n Add rtconfig for forced dead npcs\\n api: Add Actor#setDead(boolean)\\n entity hider: Hide nylocas death graphics\\n game: Fix Alchemical Hydra isDying override ID\\n game: Fix isDying for transforming NPCs\\n game: Set Corporeal beast dead on death animation\\n game: Add isDying special case for Zalcano\\n npc indicators: Fix NpcUtil uses\\n npc indicators: Fix dead npc highlight test\\n HotColdLocation: Fix enemy for South-west of Arandar\\n\\nJoshua Filby (5):\\n cache: add ScriptVarType#id\\n cache: add DBTableDefinition\\n cache: add DBRowDefinition\\n cache: add DBTableIndex\\n cache: add dbtable opcodes\\n\\nLlemonDuck (7):\\n party: spelling generatePassphrase\\n plugin manager: don't load builtin externals from hub\\n party: unified player status packet\\n party: extended status packet + player overlay\\n party: add getMemberByDisplayName\\n player indicators: highlight party members\\n npc indicators: Use isDying for dead NPC checks (#15160)\\n\\nMacweese (1):\\n game: Add isDying support for Hopeless creature transformations (#15257)\\n\\nMax Weber (5):\\n cache/ParamLoader: load types correctly\\n cache/ScriptVarType: add db row\\n Update Quests to 2022-6-29\\n questlist: update for dbtabled quests\\n gpu: switch to rlawt & lwjgl\\n\\nMoreBuchus (1):\\n party: compact status overlay\\n\\nPaul Norton (2):\\n player indicators: show fc/cc ranks on friends in minimenu\\n party: getMemberByDisplayName search by jagex name\\n\\nReece Camper (1):\\n skill calculator: Add ensouled hellhound head to prayer actions (#15064)\\n\\nRobin (1):\\n game: Add lizards to isDying block list (#15144)\\n\\nSirWrain (1):\\n achievement diary: Fix Kourend elite blood runecrafting task text (#15128)\\n\\nSpencer Kane (1):\\n item charges: fix soft clay mining tracking\\n\\nTimothy J. Aveni (1):\\n achievement diary: Remove Ghosts Ahoy requirement from Port Phasmatys cannonball task (#15196)\\n\\nTomas Slusny (1):\\n account: send username and sessionid when redirecting to /logged-in page\\n
\\n\",\"image\":\"/img/blog/1.8.27-Release/farm.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/155.5c5c2184.chunk.js b/static/js/155.0ef94ce5.chunk.js
similarity index 98%
rename from static/js/155.5c5c2184.chunk.js
rename to static/js/155.0ef94ce5.chunk.js
index 1475ec479..c938c0342 100644
--- a/static/js/155.5c5c2184.chunk.js
+++ b/static/js/155.0ef94ce5.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[155],{430:function(e,n){e.exports={title:"1.8.31 Release",description:"Custom UI swaps and ToA preparations",author:"Adam",body:'UI swaps \nMany UI elements now support the shift-right-click swap configuration that we\'ve been standardizing on lately. This works on things such as spells, items in the bank, and in shops. When set on items in the bank or on a shop interface, the configuration is per-item, which allow easily configuring eg. one item as withdraw-x while another is withdraw-1.
\n \n
\nDue to the standardization of swaps around the shift-click configure method, many of the existing swaps built into the plugin are no longer necessary. We\'re removed some of the less used swaps with this update. If you notice one is missing, shift-right click the npc/object/ui and re-configure it using the new system.
\nTombs of Amascut \nWe\'ve been working on updates in preparation for Tombs of Amascut coming on the 24th. There is a new runepouch overlay for runepouches with 4 rune stacks due to the text not fitting on the rune pouch. It displays a green bar for rune quantities 1-10k and a red bar for anything under 1k. The old display format is still used for pouches with less than 4 stacks of runes.
\n
\nToA has been added to the hiscore panel:
\n
\nAdditionally, we\'ve been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.
\nThere are also several smaller improvements and bug fixes, including:
\n\nMinor graphical inconsistences on GPU with compute shaders
off have been fixed, such as the GE floor appearing to have white dots between the tiles \nThe maximum model size on GPU with compute shaders
on has been increased. This may cause some additional GPU load in busy areas, but is required to get the ToA bosses to render correctly. \nClan members are included in the hiscore search name autocompleter \nClan members previous chat message ranks no longer change to "unranked" after they log out \nFriends chat rank icon now displays to the left of the user\'s name instead of to the right of the channel name \nBank searching by value now supports searching by per-item value. For example, per >5k
finds any stack of items where the individual items are worth more than 5k each, while >5k
finds any stack of items worth more than 5k total. \nMembers items in a free to play world now show their name with (Members)
appended, eg Abyssal whip (Members)
, instead of Members object
. Making it easier to identify items on free to play worlds. \nThe loot tracker no longer shows member items as Members object
when logged into a free to play world. \nThe double ammo mould has been added to the smelting plugin \nClown :O)
and cow 3:O
have been added to the Emoji plugin. \nThe agility plugin once again highlights the skull slope obstacle clickbox \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors this update!
\nAdam (59):\n gpu: remove double clickbox check with compute shaders off\n pom: remove ciManagement\n gpu: remove double getModel call with compute shaders off\n gpu: remove unused wrapper functions\n clues: fix wizard traiborn cryptic clue text\n gpu: combine small and large comp shaders\n gpu: fix shader test\n api: update MenuEntry getItemId javadoc\n name autocompleter: include clan members\n client: remove jogl deps\n gpu: fix shader test\n spec counter: only count hitsplats applied to spec target\n gpu: set custom org.lwjgl.system.SharedLibraryExtractDirectory\n npc manager: fix npe if srn npc data request is unsuccessful\n npc highlight: add option to ignore pets\n npc highlight: minor code cleanup\n chat commands: fix findHiscoreSkill finding pvp arena - ranked\n chat commands: show unranked for unranked skills\n api: add max damage hitsplats\n api: use magicconstant for hitsplat type ids\n config: use config api v2\n config client: use injected gson\n Replace references to RuneLiteAPI.GSON with injected gson\n gpu: use floats for projection on cpu\n gpu: increase max faces to 6144\n loottracker: add toa\n rune pouch: add grid view\n chat commands: add toa tests\n chat commands: use client enum for pet list\n menu swapper: remove recite-prayer swap\n menu swapper: remove battlestaff swap\n menu swapper: remove guzzle swap\n menu swapper: remove quick-leave swap\n menu swapper: remove house advertisement swap\n menu swapper: remove hardwood grove swap\n menu swapper: remove dive swap\n menu swapper: remove gauntlet swap\n menu swapper: remove claim slime swap\n menu swapper: remove contract swap\n menu swapper: remove decant swap\n menu swapper: remove enchant swap\n menu swapper: remove send-parcel swap\n menu swapper: remove misc swap\n menu swapper: remove nets swap\n menu swapper: remove start-minigame swap\n menu swapper: remove repairs swap\n menu swapper: remove task swap\n menu swapper: add custom ui swaps\n menu swapper: remove shift click teleport swap\n menu swapper: remove house teleport swap\n menu swapper: remove npc contact swap\n menu swapper: move bank withdraw and deposit swaps to ui\n hiscores: add toa\n api: add accessors for pose animation frame\n api: add scene max plane accessor\n chat channels: use script events for inserting fc rank\n menu swapper: exclude (worn) item swaps from ui swap check\n HotkeyButton: use mouse1 to reset hotkey\n ChatBuilder: use clansettings for finding member rank\n\nBirjot (1):\n game: Add isDying support for Damis transformations (#15293)\n\nCole Springer (1):\n xp tracker: Fix "Hide maxed skills" config description (#15408)\n\nDavid Reess (1):\n bank: add individual item value search (#15015)\n\nEnriath (6):\n runelite-api: add real item name support\n plugins: update various plugins to use getMembersName\n skill calculator: use guice injection\n skill calculator: adjust bonuses to be actual multipliers\n skill calculator: don\'t show members actions or bonuses on f2p worlds\n skill calculator: reload panel when switching P2P <-> F2P\n\nEric Sciullo (1):\n emoji: Add clown emoji (#15382)\n\nFiber | James (1):\n blastfurnace: add smiths gloves (i) to ice gloves check (#15162)\n\nHcaryShours (1):\n agility obstacles: fix skull slope highlighting\n\nJZomDev (1):\n smelting plugin: support double ammo mould\n\nJordan Atwood (10):\n clues: Update clue text from 2022-07-27 update\n AgilityShortcut: Add Necropolis stepping stones\n world map: Add Necropolis and Ullek region locations\n game: Add isDying support for Skotizo altar transformations\n dev tools: Use non-instanced region ID for tile location\n Varbits: Fix PVP_SPEC_ORB javadoc\n Varbits: Fix TELEBLOCK javadoc html\n HotColdSolver: Simplify temperature change filtering\n HotColdSolver: Improve temperature change narrowing\n clues: Fix named object clue plane change scan\n\nJordan Hans (1):\n roof removal: add Barrows tunnel override\n\nMacweese (2):\n timers: Track charge spell duration using varp\n timers: Track teleblock duration using varbit\n\nMax Weber (2):\n rl-client: update for split music & emote scroll widgets\n rl-client: dynamically configure hiscore result indexes\n\nNick (1):\n clues: add fairy ring to Isle of Souls step\n\nNick Wolff (1):\n roof removal: add etceteria overrides\n\nPaul Norton (2):\n skill calculator: per-action bonus applicability\n skill calculator: ignore (daeyalt) bonus for camdozaal cores\n\nSam (1):\n fishing: Add missing fish to shrimp and trout spot text (#15472)\n\nSirWrain (2):\n agility shortcut: add meiyerditch lab (#15183)\n worldmap: add true blood altar location (#15182)\n\nSpencer Kane (1):\n clues: fix world map location for Vannaka (#15211)\n\nWoodse07 (1):\n emoji: add cow emoji\n
\n',image:"/img/blog/1.8.31-Release/uiswap1.png"}}}]);
-//# sourceMappingURL=155.5c5c2184.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[155],{431:function(e,n){e.exports={title:"1.8.31 Release",description:"Custom UI swaps and ToA preparations",author:"Adam",body:'UI swaps \nMany UI elements now support the shift-right-click swap configuration that we\'ve been standardizing on lately. This works on things such as spells, items in the bank, and in shops. When set on items in the bank or on a shop interface, the configuration is per-item, which allow easily configuring eg. one item as withdraw-x while another is withdraw-1.
\n \n
\nDue to the standardization of swaps around the shift-click configure method, many of the existing swaps built into the plugin are no longer necessary. We\'re removed some of the less used swaps with this update. If you notice one is missing, shift-right click the npc/object/ui and re-configure it using the new system.
\nTombs of Amascut \nWe\'ve been working on updates in preparation for Tombs of Amascut coming on the 24th. There is a new runepouch overlay for runepouches with 4 rune stacks due to the text not fitting on the rune pouch. It displays a green bar for rune quantities 1-10k and a red bar for anything under 1k. The old display format is still used for pouches with less than 4 stacks of runes.
\n
\nToA has been added to the hiscore panel:
\n
\nAdditionally, we\'ve been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.
\nThere are also several smaller improvements and bug fixes, including:
\n\nMinor graphical inconsistences on GPU with compute shaders
off have been fixed, such as the GE floor appearing to have white dots between the tiles \nThe maximum model size on GPU with compute shaders
on has been increased. This may cause some additional GPU load in busy areas, but is required to get the ToA bosses to render correctly. \nClan members are included in the hiscore search name autocompleter \nClan members previous chat message ranks no longer change to "unranked" after they log out \nFriends chat rank icon now displays to the left of the user\'s name instead of to the right of the channel name \nBank searching by value now supports searching by per-item value. For example, per >5k
finds any stack of items where the individual items are worth more than 5k each, while >5k
finds any stack of items worth more than 5k total. \nMembers items in a free to play world now show their name with (Members)
appended, eg Abyssal whip (Members)
, instead of Members object
. Making it easier to identify items on free to play worlds. \nThe loot tracker no longer shows member items as Members object
when logged into a free to play world. \nThe double ammo mould has been added to the smelting plugin \nClown :O)
and cow 3:O
have been added to the Emoji plugin. \nThe agility plugin once again highlights the skull slope obstacle clickbox \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors this update!
\nAdam (59):\n gpu: remove double clickbox check with compute shaders off\n pom: remove ciManagement\n gpu: remove double getModel call with compute shaders off\n gpu: remove unused wrapper functions\n clues: fix wizard traiborn cryptic clue text\n gpu: combine small and large comp shaders\n gpu: fix shader test\n api: update MenuEntry getItemId javadoc\n name autocompleter: include clan members\n client: remove jogl deps\n gpu: fix shader test\n spec counter: only count hitsplats applied to spec target\n gpu: set custom org.lwjgl.system.SharedLibraryExtractDirectory\n npc manager: fix npe if srn npc data request is unsuccessful\n npc highlight: add option to ignore pets\n npc highlight: minor code cleanup\n chat commands: fix findHiscoreSkill finding pvp arena - ranked\n chat commands: show unranked for unranked skills\n api: add max damage hitsplats\n api: use magicconstant for hitsplat type ids\n config: use config api v2\n config client: use injected gson\n Replace references to RuneLiteAPI.GSON with injected gson\n gpu: use floats for projection on cpu\n gpu: increase max faces to 6144\n loottracker: add toa\n rune pouch: add grid view\n chat commands: add toa tests\n chat commands: use client enum for pet list\n menu swapper: remove recite-prayer swap\n menu swapper: remove battlestaff swap\n menu swapper: remove guzzle swap\n menu swapper: remove quick-leave swap\n menu swapper: remove house advertisement swap\n menu swapper: remove hardwood grove swap\n menu swapper: remove dive swap\n menu swapper: remove gauntlet swap\n menu swapper: remove claim slime swap\n menu swapper: remove contract swap\n menu swapper: remove decant swap\n menu swapper: remove enchant swap\n menu swapper: remove send-parcel swap\n menu swapper: remove misc swap\n menu swapper: remove nets swap\n menu swapper: remove start-minigame swap\n menu swapper: remove repairs swap\n menu swapper: remove task swap\n menu swapper: add custom ui swaps\n menu swapper: remove shift click teleport swap\n menu swapper: remove house teleport swap\n menu swapper: remove npc contact swap\n menu swapper: move bank withdraw and deposit swaps to ui\n hiscores: add toa\n api: add accessors for pose animation frame\n api: add scene max plane accessor\n chat channels: use script events for inserting fc rank\n menu swapper: exclude (worn) item swaps from ui swap check\n HotkeyButton: use mouse1 to reset hotkey\n ChatBuilder: use clansettings for finding member rank\n\nBirjot (1):\n game: Add isDying support for Damis transformations (#15293)\n\nCole Springer (1):\n xp tracker: Fix "Hide maxed skills" config description (#15408)\n\nDavid Reess (1):\n bank: add individual item value search (#15015)\n\nEnriath (6):\n runelite-api: add real item name support\n plugins: update various plugins to use getMembersName\n skill calculator: use guice injection\n skill calculator: adjust bonuses to be actual multipliers\n skill calculator: don\'t show members actions or bonuses on f2p worlds\n skill calculator: reload panel when switching P2P <-> F2P\n\nEric Sciullo (1):\n emoji: Add clown emoji (#15382)\n\nFiber | James (1):\n blastfurnace: add smiths gloves (i) to ice gloves check (#15162)\n\nHcaryShours (1):\n agility obstacles: fix skull slope highlighting\n\nJZomDev (1):\n smelting plugin: support double ammo mould\n\nJordan Atwood (10):\n clues: Update clue text from 2022-07-27 update\n AgilityShortcut: Add Necropolis stepping stones\n world map: Add Necropolis and Ullek region locations\n game: Add isDying support for Skotizo altar transformations\n dev tools: Use non-instanced region ID for tile location\n Varbits: Fix PVP_SPEC_ORB javadoc\n Varbits: Fix TELEBLOCK javadoc html\n HotColdSolver: Simplify temperature change filtering\n HotColdSolver: Improve temperature change narrowing\n clues: Fix named object clue plane change scan\n\nJordan Hans (1):\n roof removal: add Barrows tunnel override\n\nMacweese (2):\n timers: Track charge spell duration using varp\n timers: Track teleblock duration using varbit\n\nMax Weber (2):\n rl-client: update for split music & emote scroll widgets\n rl-client: dynamically configure hiscore result indexes\n\nNick (1):\n clues: add fairy ring to Isle of Souls step\n\nNick Wolff (1):\n roof removal: add etceteria overrides\n\nPaul Norton (2):\n skill calculator: per-action bonus applicability\n skill calculator: ignore (daeyalt) bonus for camdozaal cores\n\nSam (1):\n fishing: Add missing fish to shrimp and trout spot text (#15472)\n\nSirWrain (2):\n agility shortcut: add meiyerditch lab (#15183)\n worldmap: add true blood altar location (#15182)\n\nSpencer Kane (1):\n clues: fix world map location for Vannaka (#15211)\n\nWoodse07 (1):\n emoji: add cow emoji\n
\n',image:"/img/blog/1.8.31-Release/uiswap1.png"}}}]);
+//# sourceMappingURL=155.0ef94ce5.chunk.js.map
\ No newline at end of file
diff --git a/static/js/155.5c5c2184.chunk.js.map b/static/js/155.0ef94ce5.chunk.js.map
similarity index 99%
rename from static/js/155.5c5c2184.chunk.js.map
rename to static/js/155.0ef94ce5.chunk.js.map
index 947bbbb9d..11e0a7758 100644
--- a/static/js/155.5c5c2184.chunk.js.map
+++ b/static/js/155.0ef94ce5.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-08-21-19-00-1.8.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uCAAuC,OAAS,OAAO,KAAO,m6QAA66Q,MAAQ","file":"static/js/155.5c5c2184.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.31 Release\",\"description\":\"Custom UI swaps and ToA preparations\",\"author\":\"Adam\",\"body\":\"UI swaps \\nMany UI elements now support the shift-right-click swap configuration that we've been standardizing on lately. This works on things such as spells, items in the bank, and in shops. When set on items in the bank or on a shop interface, the configuration is per-item, which allow easily configuring eg. one item as withdraw-x while another is withdraw-1.
\\n \\n
\\nDue to the standardization of swaps around the shift-click configure method, many of the existing swaps built into the plugin are no longer necessary. We're removed some of the less used swaps with this update. If you notice one is missing, shift-right click the npc/object/ui and re-configure it using the new system.
\\nTombs of Amascut \\nWe've been working on updates in preparation for Tombs of Amascut coming on the 24th. There is a new runepouch overlay for runepouches with 4 rune stacks due to the text not fitting on the rune pouch. It displays a green bar for rune quantities 1-10k and a red bar for anything under 1k. The old display format is still used for pouches with less than 4 stacks of runes.
\\n
\\nToA has been added to the hiscore panel:
\\n
\\nAdditionally, we've been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nMinor graphical inconsistences on GPU with compute shaders
off have been fixed, such as the GE floor appearing to have white dots between the tiles \\nThe maximum model size on GPU with compute shaders
on has been increased. This may cause some additional GPU load in busy areas, but is required to get the ToA bosses to render correctly. \\nClan members are included in the hiscore search name autocompleter \\nClan members previous chat message ranks no longer change to "unranked" after they log out \\nFriends chat rank icon now displays to the left of the user's name instead of to the right of the channel name \\nBank searching by value now supports searching by per-item value. For example, per >5k
finds any stack of items where the individual items are worth more than 5k each, while >5k
finds any stack of items worth more than 5k total. \\nMembers items in a free to play world now show their name with (Members)
appended, eg Abyssal whip (Members)
, instead of Members object
. Making it easier to identify items on free to play worlds. \\nThe loot tracker no longer shows member items as Members object
when logged into a free to play world. \\nThe double ammo mould has been added to the smelting plugin \\nClown :O)
and cow 3:O
have been added to the Emoji plugin. \\nThe agility plugin once again highlights the skull slope obstacle clickbox \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors this update!
\\nAdam (59):\\n gpu: remove double clickbox check with compute shaders off\\n pom: remove ciManagement\\n gpu: remove double getModel call with compute shaders off\\n gpu: remove unused wrapper functions\\n clues: fix wizard traiborn cryptic clue text\\n gpu: combine small and large comp shaders\\n gpu: fix shader test\\n api: update MenuEntry getItemId javadoc\\n name autocompleter: include clan members\\n client: remove jogl deps\\n gpu: fix shader test\\n spec counter: only count hitsplats applied to spec target\\n gpu: set custom org.lwjgl.system.SharedLibraryExtractDirectory\\n npc manager: fix npe if srn npc data request is unsuccessful\\n npc highlight: add option to ignore pets\\n npc highlight: minor code cleanup\\n chat commands: fix findHiscoreSkill finding pvp arena - ranked\\n chat commands: show unranked for unranked skills\\n api: add max damage hitsplats\\n api: use magicconstant for hitsplat type ids\\n config: use config api v2\\n config client: use injected gson\\n Replace references to RuneLiteAPI.GSON with injected gson\\n gpu: use floats for projection on cpu\\n gpu: increase max faces to 6144\\n loottracker: add toa\\n rune pouch: add grid view\\n chat commands: add toa tests\\n chat commands: use client enum for pet list\\n menu swapper: remove recite-prayer swap\\n menu swapper: remove battlestaff swap\\n menu swapper: remove guzzle swap\\n menu swapper: remove quick-leave swap\\n menu swapper: remove house advertisement swap\\n menu swapper: remove hardwood grove swap\\n menu swapper: remove dive swap\\n menu swapper: remove gauntlet swap\\n menu swapper: remove claim slime swap\\n menu swapper: remove contract swap\\n menu swapper: remove decant swap\\n menu swapper: remove enchant swap\\n menu swapper: remove send-parcel swap\\n menu swapper: remove misc swap\\n menu swapper: remove nets swap\\n menu swapper: remove start-minigame swap\\n menu swapper: remove repairs swap\\n menu swapper: remove task swap\\n menu swapper: add custom ui swaps\\n menu swapper: remove shift click teleport swap\\n menu swapper: remove house teleport swap\\n menu swapper: remove npc contact swap\\n menu swapper: move bank withdraw and deposit swaps to ui\\n hiscores: add toa\\n api: add accessors for pose animation frame\\n api: add scene max plane accessor\\n chat channels: use script events for inserting fc rank\\n menu swapper: exclude (worn) item swaps from ui swap check\\n HotkeyButton: use mouse1 to reset hotkey\\n ChatBuilder: use clansettings for finding member rank\\n\\nBirjot (1):\\n game: Add isDying support for Damis transformations (#15293)\\n\\nCole Springer (1):\\n xp tracker: Fix "Hide maxed skills" config description (#15408)\\n\\nDavid Reess (1):\\n bank: add individual item value search (#15015)\\n\\nEnriath (6):\\n runelite-api: add real item name support\\n plugins: update various plugins to use getMembersName\\n skill calculator: use guice injection\\n skill calculator: adjust bonuses to be actual multipliers\\n skill calculator: don't show members actions or bonuses on f2p worlds\\n skill calculator: reload panel when switching P2P <-> F2P\\n\\nEric Sciullo (1):\\n emoji: Add clown emoji (#15382)\\n\\nFiber | James (1):\\n blastfurnace: add smiths gloves (i) to ice gloves check (#15162)\\n\\nHcaryShours (1):\\n agility obstacles: fix skull slope highlighting\\n\\nJZomDev (1):\\n smelting plugin: support double ammo mould\\n\\nJordan Atwood (10):\\n clues: Update clue text from 2022-07-27 update\\n AgilityShortcut: Add Necropolis stepping stones\\n world map: Add Necropolis and Ullek region locations\\n game: Add isDying support for Skotizo altar transformations\\n dev tools: Use non-instanced region ID for tile location\\n Varbits: Fix PVP_SPEC_ORB javadoc\\n Varbits: Fix TELEBLOCK javadoc html\\n HotColdSolver: Simplify temperature change filtering\\n HotColdSolver: Improve temperature change narrowing\\n clues: Fix named object clue plane change scan\\n\\nJordan Hans (1):\\n roof removal: add Barrows tunnel override\\n\\nMacweese (2):\\n timers: Track charge spell duration using varp\\n timers: Track teleblock duration using varbit\\n\\nMax Weber (2):\\n rl-client: update for split music & emote scroll widgets\\n rl-client: dynamically configure hiscore result indexes\\n\\nNick (1):\\n clues: add fairy ring to Isle of Souls step\\n\\nNick Wolff (1):\\n roof removal: add etceteria overrides\\n\\nPaul Norton (2):\\n skill calculator: per-action bonus applicability\\n skill calculator: ignore (daeyalt) bonus for camdozaal cores\\n\\nSam (1):\\n fishing: Add missing fish to shrimp and trout spot text (#15472)\\n\\nSirWrain (2):\\n agility shortcut: add meiyerditch lab (#15183)\\n worldmap: add true blood altar location (#15182)\\n\\nSpencer Kane (1):\\n clues: fix world map location for Vannaka (#15211)\\n\\nWoodse07 (1):\\n emoji: add cow emoji\\n
\\n\",\"image\":\"/img/blog/1.8.31-Release/uiswap1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-08-21-19-00-1.8.31-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uCAAuC,OAAS,OAAO,KAAO,m6QAA66Q,MAAQ","file":"static/js/155.0ef94ce5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.31 Release\",\"description\":\"Custom UI swaps and ToA preparations\",\"author\":\"Adam\",\"body\":\"UI swaps \\nMany UI elements now support the shift-right-click swap configuration that we've been standardizing on lately. This works on things such as spells, items in the bank, and in shops. When set on items in the bank or on a shop interface, the configuration is per-item, which allow easily configuring eg. one item as withdraw-x while another is withdraw-1.
\\n \\n
\\nDue to the standardization of swaps around the shift-click configure method, many of the existing swaps built into the plugin are no longer necessary. We're removed some of the less used swaps with this update. If you notice one is missing, shift-right click the npc/object/ui and re-configure it using the new system.
\\nTombs of Amascut \\nWe've been working on updates in preparation for Tombs of Amascut coming on the 24th. There is a new runepouch overlay for runepouches with 4 rune stacks due to the text not fitting on the rune pouch. It displays a green bar for rune quantities 1-10k and a red bar for anything under 1k. The old display format is still used for pouches with less than 4 stacks of runes.
\\n
\\nToA has been added to the hiscore panel:
\\n
\\nAdditionally, we've been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nMinor graphical inconsistences on GPU with compute shaders
off have been fixed, such as the GE floor appearing to have white dots between the tiles \\nThe maximum model size on GPU with compute shaders
on has been increased. This may cause some additional GPU load in busy areas, but is required to get the ToA bosses to render correctly. \\nClan members are included in the hiscore search name autocompleter \\nClan members previous chat message ranks no longer change to "unranked" after they log out \\nFriends chat rank icon now displays to the left of the user's name instead of to the right of the channel name \\nBank searching by value now supports searching by per-item value. For example, per >5k
finds any stack of items where the individual items are worth more than 5k each, while >5k
finds any stack of items worth more than 5k total. \\nMembers items in a free to play world now show their name with (Members)
appended, eg Abyssal whip (Members)
, instead of Members object
. Making it easier to identify items on free to play worlds. \\nThe loot tracker no longer shows member items as Members object
when logged into a free to play world. \\nThe double ammo mould has been added to the smelting plugin \\nClown :O)
and cow 3:O
have been added to the Emoji plugin. \\nThe agility plugin once again highlights the skull slope obstacle clickbox \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors this update!
\\nAdam (59):\\n gpu: remove double clickbox check with compute shaders off\\n pom: remove ciManagement\\n gpu: remove double getModel call with compute shaders off\\n gpu: remove unused wrapper functions\\n clues: fix wizard traiborn cryptic clue text\\n gpu: combine small and large comp shaders\\n gpu: fix shader test\\n api: update MenuEntry getItemId javadoc\\n name autocompleter: include clan members\\n client: remove jogl deps\\n gpu: fix shader test\\n spec counter: only count hitsplats applied to spec target\\n gpu: set custom org.lwjgl.system.SharedLibraryExtractDirectory\\n npc manager: fix npe if srn npc data request is unsuccessful\\n npc highlight: add option to ignore pets\\n npc highlight: minor code cleanup\\n chat commands: fix findHiscoreSkill finding pvp arena - ranked\\n chat commands: show unranked for unranked skills\\n api: add max damage hitsplats\\n api: use magicconstant for hitsplat type ids\\n config: use config api v2\\n config client: use injected gson\\n Replace references to RuneLiteAPI.GSON with injected gson\\n gpu: use floats for projection on cpu\\n gpu: increase max faces to 6144\\n loottracker: add toa\\n rune pouch: add grid view\\n chat commands: add toa tests\\n chat commands: use client enum for pet list\\n menu swapper: remove recite-prayer swap\\n menu swapper: remove battlestaff swap\\n menu swapper: remove guzzle swap\\n menu swapper: remove quick-leave swap\\n menu swapper: remove house advertisement swap\\n menu swapper: remove hardwood grove swap\\n menu swapper: remove dive swap\\n menu swapper: remove gauntlet swap\\n menu swapper: remove claim slime swap\\n menu swapper: remove contract swap\\n menu swapper: remove decant swap\\n menu swapper: remove enchant swap\\n menu swapper: remove send-parcel swap\\n menu swapper: remove misc swap\\n menu swapper: remove nets swap\\n menu swapper: remove start-minigame swap\\n menu swapper: remove repairs swap\\n menu swapper: remove task swap\\n menu swapper: add custom ui swaps\\n menu swapper: remove shift click teleport swap\\n menu swapper: remove house teleport swap\\n menu swapper: remove npc contact swap\\n menu swapper: move bank withdraw and deposit swaps to ui\\n hiscores: add toa\\n api: add accessors for pose animation frame\\n api: add scene max plane accessor\\n chat channels: use script events for inserting fc rank\\n menu swapper: exclude (worn) item swaps from ui swap check\\n HotkeyButton: use mouse1 to reset hotkey\\n ChatBuilder: use clansettings for finding member rank\\n\\nBirjot (1):\\n game: Add isDying support for Damis transformations (#15293)\\n\\nCole Springer (1):\\n xp tracker: Fix "Hide maxed skills" config description (#15408)\\n\\nDavid Reess (1):\\n bank: add individual item value search (#15015)\\n\\nEnriath (6):\\n runelite-api: add real item name support\\n plugins: update various plugins to use getMembersName\\n skill calculator: use guice injection\\n skill calculator: adjust bonuses to be actual multipliers\\n skill calculator: don't show members actions or bonuses on f2p worlds\\n skill calculator: reload panel when switching P2P <-> F2P\\n\\nEric Sciullo (1):\\n emoji: Add clown emoji (#15382)\\n\\nFiber | James (1):\\n blastfurnace: add smiths gloves (i) to ice gloves check (#15162)\\n\\nHcaryShours (1):\\n agility obstacles: fix skull slope highlighting\\n\\nJZomDev (1):\\n smelting plugin: support double ammo mould\\n\\nJordan Atwood (10):\\n clues: Update clue text from 2022-07-27 update\\n AgilityShortcut: Add Necropolis stepping stones\\n world map: Add Necropolis and Ullek region locations\\n game: Add isDying support for Skotizo altar transformations\\n dev tools: Use non-instanced region ID for tile location\\n Varbits: Fix PVP_SPEC_ORB javadoc\\n Varbits: Fix TELEBLOCK javadoc html\\n HotColdSolver: Simplify temperature change filtering\\n HotColdSolver: Improve temperature change narrowing\\n clues: Fix named object clue plane change scan\\n\\nJordan Hans (1):\\n roof removal: add Barrows tunnel override\\n\\nMacweese (2):\\n timers: Track charge spell duration using varp\\n timers: Track teleblock duration using varbit\\n\\nMax Weber (2):\\n rl-client: update for split music & emote scroll widgets\\n rl-client: dynamically configure hiscore result indexes\\n\\nNick (1):\\n clues: add fairy ring to Isle of Souls step\\n\\nNick Wolff (1):\\n roof removal: add etceteria overrides\\n\\nPaul Norton (2):\\n skill calculator: per-action bonus applicability\\n skill calculator: ignore (daeyalt) bonus for camdozaal cores\\n\\nSam (1):\\n fishing: Add missing fish to shrimp and trout spot text (#15472)\\n\\nSirWrain (2):\\n agility shortcut: add meiyerditch lab (#15183)\\n worldmap: add true blood altar location (#15182)\\n\\nSpencer Kane (1):\\n clues: fix world map location for Vannaka (#15211)\\n\\nWoodse07 (1):\\n emoji: add cow emoji\\n
\\n\",\"image\":\"/img/blog/1.8.31-Release/uiswap1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/156.936f7e8f.chunk.js b/static/js/156.048f1e23.chunk.js
similarity index 98%
rename from static/js/156.936f7e8f.chunk.js
rename to static/js/156.048f1e23.chunk.js
index 43cb794a5..d6903c8d7 100644
--- a/static/js/156.936f7e8f.chunk.js
+++ b/static/js/156.048f1e23.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[156],{431:function(e,t){e.exports={title:"Recent performance regressions and Tombs of Amascut",description:"Recent performance regressions and Tombs of Amascut",author:"Adam",body:"This is a bit of a tech blog about the ToA release and the stability issues the client has been having, feel free to skip it if that isn't your thing.
\n \nAfter the release of ToA on Aug 24 we saw a large number of reports from users about the client destabilizing in ToA, either crashing, or running with low FPS. We did not have good answers for players at that time due to the confusion of receiving so many error reports, often conflicting, at the same time. We now feel like we've identified and fixed the root cause, which this post is about.
\nNote that this post is about client lag , which is the client dropping frames, and not network lag , which is the time between an action being done and the server receiving the action, nor server lag , which is when the server skips ticks, causing time to essentially stop.
\nThe cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:
\nThe first is caused by there being very little free memory. It becomes difficult to allocate additional memory since it often first require the garbage collector to run. The garbage collector will pause the client until it is able to find enough memory to release to fulfil each allocation. Since most of the memory is in use, it is a difficult and slow process, leading to long pauses and lag.
\nThe second is caused by many small allocations. The garbage collector must keep track of these many different small allocations and handle releasing all of them, which is computationally expensive. So while there is memory available to be released, and potentially even free memory available, the process of releasing it is slow enough that it causes pauses whenever the GC is run.
\nAfter identifying the GC pressure issues fairly early on after the update, we began recommending users update their launcher if they are on one of the old pre-2.0 launchers (1.6, 1.5, and older). The newer launchers use the newer G1 garbage collector, while the 1.x launcher uses Concurrent Mark Sweep. G1 runs faster (that is, releases memory, faster) as well as pauses for a shorter amount of time (less frame drops), so is a good stop gap against type 2 pressure. This is not really a solution, and is instead trying to solve a symptom of the real problem, but on sufficiently powerful machines worked for some people.
\nIf you still do have an old launcher (check the Info
panel in the client), it can be a good idea to update it due to these GC changes - even though we do believe the problems to be fixed even on the older launchers. A common misconception is that the launcher automatically updates itself, but that is not the case. The launcher automatically updates the client, but there is no functionality to update the launcher.
\nIn update 202 from last December, Jagex added a new-to-OSRS animation system. This new system allows Jagex to make much more fine-grained animations with smoother movements, and take advantage of the full 50FPS the client usually runs at - which most animations do not. This system was used for the first time with the release of ToA, and the code for it is the cause of the GC pressure. Notably it both uses a large amount of memory and also causes a large number of allocations.
\nThis problem compounded badly with 3rd party plugins. As you may know, it is possible to install 3rd party plugins into RuneLite via the pluginhub. The pluginhub plugins vary in quality wildly, and some of them consume lots of memory. We have in total allocated 512mb at the JVM for the entire client, which leaves conservatively about 150mb of memory for all 3rd party plugins. With the new animation code using so much memory, users with too many bad plugins also noticed performance issues, even on the newer launcher. The high variance in plugin installations between users made it difficult to identify exactly how many problems there were and where they were.
\nWhile it is possible to increase the 512mb memory limit, I think it should be a measure of last resort. It will help if the application is legitimately out of memory, but if it isn't it can actually have negative consequences. Java prefers to only GC infrequently, or if it has to, and so prefers to allocate new memory vs reusing old memory. Setting an artificially high heap size can then end up with an application with a relatively high memory footprint that is mostly garbage. This just eats memory unnecessarily, and can slow down GC times as there is more to collect. RuneLite typically runs at 170-350mb (varies greatly with location and also plugins), but safely under the 512mb limit.
\nSince the Jagex animation code is not well optimized, we began looking at ways to improve it. On Aug 26 we pushed out a patch which rewrote some of the Jagex animation code to minimize the number of live objects it uses for animations. We do this by inlining small arrays, typically vectors or matrices, into their enclosing class, such as:
\nclass Vec4 {\n float[] v = new float[4];\n}\n
\ninto
\nclass Vec4 {\n float v0;\n float v1;\n float v2;\n float v3;\n}\n
\nThe former has 2 objects, the Vec4
and the float[4]
, while the latter only has one, despite using the same amount of memory.
\nThis removed an enormous amount of type 2 GC pressure, which fixed the large problems for most people. At this point, running the client in safe mode to disable 3rd party plugins worked very well, and we could no longer find any credible crash reports of the client when running in safe mode.
\nWith that fixed, the client was still using a much larger amount of memory than normal, just with less live objects. Thus the remaining issue reports were all from users with type 1 GC pressure due to pluginhub plugins. We began digging through user reported heap dumps and identified a few notable offenders, most prominently: the HD plugin.
\nThe HD plugin has complex code dealing with coloring models, and as a result tries to cache that computation to reuse between frames. This normally is okay, and has been working correctly for some time. However with the addition of the new animations, particularly animations which affect translucency, since the number of unique frames the animated models has is much higher than what would normally be seen, it was computing and caching a lot of color data. This snowballed a bit when combined with the very large sizes of the ToA boss models (many are well over 5k faces), which are much larger than anything else you would typically find. I've excluded most of these from being cached, and also optimized the way which is it storing the cached data. This went out in updates on Aug 31 and Sep 1 as 1.1.3.1 and 1.1.3.2, and from all reports has removed the ToA lag with the HD plugin enabled.
\nAfter this we began looking at ways to optimize the Jagex client further to not use as much memory. We found the vast majority of the memory used by the animation system was used to precompute animation tables, however, precomputing them was not noticeably faster than just computing the animations on demand. We then proceeded to rewrite large portions of the new animation system, and were able to remove most of the additional memory overhead incurred by the new system. This went out in an update on Sep 3.
\n \nWith that, we think that all of the ToA performance regressions are solved. Hopefully it stays that way. Sorry for all of the issues over the last couple weeks.
\n- Adam
\n"}}}]);
-//# sourceMappingURL=156.936f7e8f.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[156],{432:function(e,t){e.exports={title:"Recent performance regressions and Tombs of Amascut",description:"Recent performance regressions and Tombs of Amascut",author:"Adam",body:"This is a bit of a tech blog about the ToA release and the stability issues the client has been having, feel free to skip it if that isn't your thing.
\n \nAfter the release of ToA on Aug 24 we saw a large number of reports from users about the client destabilizing in ToA, either crashing, or running with low FPS. We did not have good answers for players at that time due to the confusion of receiving so many error reports, often conflicting, at the same time. We now feel like we've identified and fixed the root cause, which this post is about.
\nNote that this post is about client lag , which is the client dropping frames, and not network lag , which is the time between an action being done and the server receiving the action, nor server lag , which is when the server skips ticks, causing time to essentially stop.
\nThe cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:
\nThe first is caused by there being very little free memory. It becomes difficult to allocate additional memory since it often first require the garbage collector to run. The garbage collector will pause the client until it is able to find enough memory to release to fulfil each allocation. Since most of the memory is in use, it is a difficult and slow process, leading to long pauses and lag.
\nThe second is caused by many small allocations. The garbage collector must keep track of these many different small allocations and handle releasing all of them, which is computationally expensive. So while there is memory available to be released, and potentially even free memory available, the process of releasing it is slow enough that it causes pauses whenever the GC is run.
\nAfter identifying the GC pressure issues fairly early on after the update, we began recommending users update their launcher if they are on one of the old pre-2.0 launchers (1.6, 1.5, and older). The newer launchers use the newer G1 garbage collector, while the 1.x launcher uses Concurrent Mark Sweep. G1 runs faster (that is, releases memory, faster) as well as pauses for a shorter amount of time (less frame drops), so is a good stop gap against type 2 pressure. This is not really a solution, and is instead trying to solve a symptom of the real problem, but on sufficiently powerful machines worked for some people.
\nIf you still do have an old launcher (check the Info
panel in the client), it can be a good idea to update it due to these GC changes - even though we do believe the problems to be fixed even on the older launchers. A common misconception is that the launcher automatically updates itself, but that is not the case. The launcher automatically updates the client, but there is no functionality to update the launcher.
\nIn update 202 from last December, Jagex added a new-to-OSRS animation system. This new system allows Jagex to make much more fine-grained animations with smoother movements, and take advantage of the full 50FPS the client usually runs at - which most animations do not. This system was used for the first time with the release of ToA, and the code for it is the cause of the GC pressure. Notably it both uses a large amount of memory and also causes a large number of allocations.
\nThis problem compounded badly with 3rd party plugins. As you may know, it is possible to install 3rd party plugins into RuneLite via the pluginhub. The pluginhub plugins vary in quality wildly, and some of them consume lots of memory. We have in total allocated 512mb at the JVM for the entire client, which leaves conservatively about 150mb of memory for all 3rd party plugins. With the new animation code using so much memory, users with too many bad plugins also noticed performance issues, even on the newer launcher. The high variance in plugin installations between users made it difficult to identify exactly how many problems there were and where they were.
\nWhile it is possible to increase the 512mb memory limit, I think it should be a measure of last resort. It will help if the application is legitimately out of memory, but if it isn't it can actually have negative consequences. Java prefers to only GC infrequently, or if it has to, and so prefers to allocate new memory vs reusing old memory. Setting an artificially high heap size can then end up with an application with a relatively high memory footprint that is mostly garbage. This just eats memory unnecessarily, and can slow down GC times as there is more to collect. RuneLite typically runs at 170-350mb (varies greatly with location and also plugins), but safely under the 512mb limit.
\nSince the Jagex animation code is not well optimized, we began looking at ways to improve it. On Aug 26 we pushed out a patch which rewrote some of the Jagex animation code to minimize the number of live objects it uses for animations. We do this by inlining small arrays, typically vectors or matrices, into their enclosing class, such as:
\nclass Vec4 {\n float[] v = new float[4];\n}\n
\ninto
\nclass Vec4 {\n float v0;\n float v1;\n float v2;\n float v3;\n}\n
\nThe former has 2 objects, the Vec4
and the float[4]
, while the latter only has one, despite using the same amount of memory.
\nThis removed an enormous amount of type 2 GC pressure, which fixed the large problems for most people. At this point, running the client in safe mode to disable 3rd party plugins worked very well, and we could no longer find any credible crash reports of the client when running in safe mode.
\nWith that fixed, the client was still using a much larger amount of memory than normal, just with less live objects. Thus the remaining issue reports were all from users with type 1 GC pressure due to pluginhub plugins. We began digging through user reported heap dumps and identified a few notable offenders, most prominently: the HD plugin.
\nThe HD plugin has complex code dealing with coloring models, and as a result tries to cache that computation to reuse between frames. This normally is okay, and has been working correctly for some time. However with the addition of the new animations, particularly animations which affect translucency, since the number of unique frames the animated models has is much higher than what would normally be seen, it was computing and caching a lot of color data. This snowballed a bit when combined with the very large sizes of the ToA boss models (many are well over 5k faces), which are much larger than anything else you would typically find. I've excluded most of these from being cached, and also optimized the way which is it storing the cached data. This went out in updates on Aug 31 and Sep 1 as 1.1.3.1 and 1.1.3.2, and from all reports has removed the ToA lag with the HD plugin enabled.
\nAfter this we began looking at ways to optimize the Jagex client further to not use as much memory. We found the vast majority of the memory used by the animation system was used to precompute animation tables, however, precomputing them was not noticeably faster than just computing the animations on demand. We then proceeded to rewrite large portions of the new animation system, and were able to remove most of the additional memory overhead incurred by the new system. This went out in an update on Sep 3.
\n \nWith that, we think that all of the ToA performance regressions are solved. Hopefully it stays that way. Sorry for all of the issues over the last couple weeks.
\n- Adam
\n"}}}]);
+//# sourceMappingURL=156.048f1e23.chunk.js.map
\ No newline at end of file
diff --git a/static/js/156.936f7e8f.chunk.js.map b/static/js/156.048f1e23.chunk.js.map
similarity index 99%
rename from static/js/156.936f7e8f.chunk.js.map
rename to static/js/156.048f1e23.chunk.js.map
index f633cd9bd..5eff02bba 100644
--- a/static/js/156.936f7e8f.chunk.js.map
+++ b/static/js/156.048f1e23.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sDAAsD,YAAc,sDAAsD,OAAS,OAAO,KAAO","file":"static/js/156.936f7e8f.chunk.js","sourcesContent":["module.exports = {\"title\":\"Recent performance regressions and Tombs of Amascut\",\"description\":\"Recent performance regressions and Tombs of Amascut\",\"author\":\"Adam\",\"body\":\"This is a bit of a tech blog about the ToA release and the stability issues the client has been having, feel free to skip it if that isn't your thing.
\\n \\nAfter the release of ToA on Aug 24 we saw a large number of reports from users about the client destabilizing in ToA, either crashing, or running with low FPS. We did not have good answers for players at that time due to the confusion of receiving so many error reports, often conflicting, at the same time. We now feel like we've identified and fixed the root cause, which this post is about.
\\nNote that this post is about client lag , which is the client dropping frames, and not network lag , which is the time between an action being done and the server receiving the action, nor server lag , which is when the server skips ticks, causing time to essentially stop.
\\nThe cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:
\\nThe first is caused by there being very little free memory. It becomes difficult to allocate additional memory since it often first require the garbage collector to run. The garbage collector will pause the client until it is able to find enough memory to release to fulfil each allocation. Since most of the memory is in use, it is a difficult and slow process, leading to long pauses and lag.
\\nThe second is caused by many small allocations. The garbage collector must keep track of these many different small allocations and handle releasing all of them, which is computationally expensive. So while there is memory available to be released, and potentially even free memory available, the process of releasing it is slow enough that it causes pauses whenever the GC is run.
\\nAfter identifying the GC pressure issues fairly early on after the update, we began recommending users update their launcher if they are on one of the old pre-2.0 launchers (1.6, 1.5, and older). The newer launchers use the newer G1 garbage collector, while the 1.x launcher uses Concurrent Mark Sweep. G1 runs faster (that is, releases memory, faster) as well as pauses for a shorter amount of time (less frame drops), so is a good stop gap against type 2 pressure. This is not really a solution, and is instead trying to solve a symptom of the real problem, but on sufficiently powerful machines worked for some people.
\\nIf you still do have an old launcher (check the Info
panel in the client), it can be a good idea to update it due to these GC changes - even though we do believe the problems to be fixed even on the older launchers. A common misconception is that the launcher automatically updates itself, but that is not the case. The launcher automatically updates the client, but there is no functionality to update the launcher.
\\nIn update 202 from last December, Jagex added a new-to-OSRS animation system. This new system allows Jagex to make much more fine-grained animations with smoother movements, and take advantage of the full 50FPS the client usually runs at - which most animations do not. This system was used for the first time with the release of ToA, and the code for it is the cause of the GC pressure. Notably it both uses a large amount of memory and also causes a large number of allocations.
\\nThis problem compounded badly with 3rd party plugins. As you may know, it is possible to install 3rd party plugins into RuneLite via the pluginhub. The pluginhub plugins vary in quality wildly, and some of them consume lots of memory. We have in total allocated 512mb at the JVM for the entire client, which leaves conservatively about 150mb of memory for all 3rd party plugins. With the new animation code using so much memory, users with too many bad plugins also noticed performance issues, even on the newer launcher. The high variance in plugin installations between users made it difficult to identify exactly how many problems there were and where they were.
\\nWhile it is possible to increase the 512mb memory limit, I think it should be a measure of last resort. It will help if the application is legitimately out of memory, but if it isn't it can actually have negative consequences. Java prefers to only GC infrequently, or if it has to, and so prefers to allocate new memory vs reusing old memory. Setting an artificially high heap size can then end up with an application with a relatively high memory footprint that is mostly garbage. This just eats memory unnecessarily, and can slow down GC times as there is more to collect. RuneLite typically runs at 170-350mb (varies greatly with location and also plugins), but safely under the 512mb limit.
\\nSince the Jagex animation code is not well optimized, we began looking at ways to improve it. On Aug 26 we pushed out a patch which rewrote some of the Jagex animation code to minimize the number of live objects it uses for animations. We do this by inlining small arrays, typically vectors or matrices, into their enclosing class, such as:
\\nclass Vec4 {\\n float[] v = new float[4];\\n}\\n
\\ninto
\\nclass Vec4 {\\n float v0;\\n float v1;\\n float v2;\\n float v3;\\n}\\n
\\nThe former has 2 objects, the Vec4
and the float[4]
, while the latter only has one, despite using the same amount of memory.
\\nThis removed an enormous amount of type 2 GC pressure, which fixed the large problems for most people. At this point, running the client in safe mode to disable 3rd party plugins worked very well, and we could no longer find any credible crash reports of the client when running in safe mode.
\\nWith that fixed, the client was still using a much larger amount of memory than normal, just with less live objects. Thus the remaining issue reports were all from users with type 1 GC pressure due to pluginhub plugins. We began digging through user reported heap dumps and identified a few notable offenders, most prominently: the HD plugin.
\\nThe HD plugin has complex code dealing with coloring models, and as a result tries to cache that computation to reuse between frames. This normally is okay, and has been working correctly for some time. However with the addition of the new animations, particularly animations which affect translucency, since the number of unique frames the animated models has is much higher than what would normally be seen, it was computing and caching a lot of color data. This snowballed a bit when combined with the very large sizes of the ToA boss models (many are well over 5k faces), which are much larger than anything else you would typically find. I've excluded most of these from being cached, and also optimized the way which is it storing the cached data. This went out in updates on Aug 31 and Sep 1 as 1.1.3.1 and 1.1.3.2, and from all reports has removed the ToA lag with the HD plugin enabled.
\\nAfter this we began looking at ways to optimize the Jagex client further to not use as much memory. We found the vast majority of the memory used by the animation system was used to precompute animation tables, however, precomputing them was not noticeably faster than just computing the animations on demand. We then proceeded to rewrite large portions of the new animation system, and were able to remove most of the additional memory overhead incurred by the new system. This went out in an update on Sep 3.
\\n \\nWith that, we think that all of the ToA performance regressions are solved. Hopefully it stays that way. Sorry for all of the issues over the last couple weeks.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,sDAAsD,YAAc,sDAAsD,OAAS,OAAO,KAAO","file":"static/js/156.048f1e23.chunk.js","sourcesContent":["module.exports = {\"title\":\"Recent performance regressions and Tombs of Amascut\",\"description\":\"Recent performance regressions and Tombs of Amascut\",\"author\":\"Adam\",\"body\":\"This is a bit of a tech blog about the ToA release and the stability issues the client has been having, feel free to skip it if that isn't your thing.
\\n \\nAfter the release of ToA on Aug 24 we saw a large number of reports from users about the client destabilizing in ToA, either crashing, or running with low FPS. We did not have good answers for players at that time due to the confusion of receiving so many error reports, often conflicting, at the same time. We now feel like we've identified and fixed the root cause, which this post is about.
\\nNote that this post is about client lag , which is the client dropping frames, and not network lag , which is the time between an action being done and the server receiving the action, nor server lag , which is when the server skips ticks, causing time to essentially stop.
\\nThe cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:
\\nThe first is caused by there being very little free memory. It becomes difficult to allocate additional memory since it often first require the garbage collector to run. The garbage collector will pause the client until it is able to find enough memory to release to fulfil each allocation. Since most of the memory is in use, it is a difficult and slow process, leading to long pauses and lag.
\\nThe second is caused by many small allocations. The garbage collector must keep track of these many different small allocations and handle releasing all of them, which is computationally expensive. So while there is memory available to be released, and potentially even free memory available, the process of releasing it is slow enough that it causes pauses whenever the GC is run.
\\nAfter identifying the GC pressure issues fairly early on after the update, we began recommending users update their launcher if they are on one of the old pre-2.0 launchers (1.6, 1.5, and older). The newer launchers use the newer G1 garbage collector, while the 1.x launcher uses Concurrent Mark Sweep. G1 runs faster (that is, releases memory, faster) as well as pauses for a shorter amount of time (less frame drops), so is a good stop gap against type 2 pressure. This is not really a solution, and is instead trying to solve a symptom of the real problem, but on sufficiently powerful machines worked for some people.
\\nIf you still do have an old launcher (check the Info
panel in the client), it can be a good idea to update it due to these GC changes - even though we do believe the problems to be fixed even on the older launchers. A common misconception is that the launcher automatically updates itself, but that is not the case. The launcher automatically updates the client, but there is no functionality to update the launcher.
\\nIn update 202 from last December, Jagex added a new-to-OSRS animation system. This new system allows Jagex to make much more fine-grained animations with smoother movements, and take advantage of the full 50FPS the client usually runs at - which most animations do not. This system was used for the first time with the release of ToA, and the code for it is the cause of the GC pressure. Notably it both uses a large amount of memory and also causes a large number of allocations.
\\nThis problem compounded badly with 3rd party plugins. As you may know, it is possible to install 3rd party plugins into RuneLite via the pluginhub. The pluginhub plugins vary in quality wildly, and some of them consume lots of memory. We have in total allocated 512mb at the JVM for the entire client, which leaves conservatively about 150mb of memory for all 3rd party plugins. With the new animation code using so much memory, users with too many bad plugins also noticed performance issues, even on the newer launcher. The high variance in plugin installations between users made it difficult to identify exactly how many problems there were and where they were.
\\nWhile it is possible to increase the 512mb memory limit, I think it should be a measure of last resort. It will help if the application is legitimately out of memory, but if it isn't it can actually have negative consequences. Java prefers to only GC infrequently, or if it has to, and so prefers to allocate new memory vs reusing old memory. Setting an artificially high heap size can then end up with an application with a relatively high memory footprint that is mostly garbage. This just eats memory unnecessarily, and can slow down GC times as there is more to collect. RuneLite typically runs at 170-350mb (varies greatly with location and also plugins), but safely under the 512mb limit.
\\nSince the Jagex animation code is not well optimized, we began looking at ways to improve it. On Aug 26 we pushed out a patch which rewrote some of the Jagex animation code to minimize the number of live objects it uses for animations. We do this by inlining small arrays, typically vectors or matrices, into their enclosing class, such as:
\\nclass Vec4 {\\n float[] v = new float[4];\\n}\\n
\\ninto
\\nclass Vec4 {\\n float v0;\\n float v1;\\n float v2;\\n float v3;\\n}\\n
\\nThe former has 2 objects, the Vec4
and the float[4]
, while the latter only has one, despite using the same amount of memory.
\\nThis removed an enormous amount of type 2 GC pressure, which fixed the large problems for most people. At this point, running the client in safe mode to disable 3rd party plugins worked very well, and we could no longer find any credible crash reports of the client when running in safe mode.
\\nWith that fixed, the client was still using a much larger amount of memory than normal, just with less live objects. Thus the remaining issue reports were all from users with type 1 GC pressure due to pluginhub plugins. We began digging through user reported heap dumps and identified a few notable offenders, most prominently: the HD plugin.
\\nThe HD plugin has complex code dealing with coloring models, and as a result tries to cache that computation to reuse between frames. This normally is okay, and has been working correctly for some time. However with the addition of the new animations, particularly animations which affect translucency, since the number of unique frames the animated models has is much higher than what would normally be seen, it was computing and caching a lot of color data. This snowballed a bit when combined with the very large sizes of the ToA boss models (many are well over 5k faces), which are much larger than anything else you would typically find. I've excluded most of these from being cached, and also optimized the way which is it storing the cached data. This went out in updates on Aug 31 and Sep 1 as 1.1.3.1 and 1.1.3.2, and from all reports has removed the ToA lag with the HD plugin enabled.
\\nAfter this we began looking at ways to optimize the Jagex client further to not use as much memory. We found the vast majority of the memory used by the animation system was used to precompute animation tables, however, precomputing them was not noticeably faster than just computing the animations on demand. We then proceeded to rewrite large portions of the new animation system, and were able to remove most of the additional memory overhead incurred by the new system. This went out in an update on Sep 3.
\\n \\nWith that, we think that all of the ToA performance regressions are solved. Hopefully it stays that way. Sorry for all of the issues over the last couple weeks.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/157.20133c65.chunk.js b/static/js/157.f8220558.chunk.js
similarity index 98%
rename from static/js/157.20133c65.chunk.js
rename to static/js/157.f8220558.chunk.js
index 7dca4806e..6b6f50cc8 100644
--- a/static/js/157.20133c65.chunk.js
+++ b/static/js/157.f8220558.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[157],{432:function(e,n){e.exports={title:"1.9.0 Release",description:"Zoomable minimap and submenus",author:"Adam",body:'Minimap zooming \nThe minimap now supports zooming! This works similar to the zoom you may be familiar with on the official mobile or steam clients. Enable the Zoom
option in the Minimap
plugin to use it. The zoom can be reset to the default level by right clicking the minimap.
\n\n\n\nIn \nDefault \nOut \n \n \n\n\n \n \n \n \n \n
\nSubmenus \nLast week we added support for collapsible submenus. This works similar to how the one from RS3 works. You may have noticed we\'ve already converted the menu swapper for inventory and worn items to use this. Submenus allow grouping similar menus logically together, and greatly decreases the length and complexity of the menus on screen. You can tell if a menu has submenus by the presence of the >
.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe run energy plugin now correctly accounts for the passive Ring of Endurance effect \nA bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed \nterminal-notifier
on MacOS is now more reliably detected when installed into nonstandard locations \nThe pickpocket timer now works with Martin the Master Farmer \nDrinking Liquid Adrenaline prior to the timer running out now correctly resets the timer \nFix !lvl toa expert
to work as expected \nFresh start hiscores have been added to the hiscore panel \nThe Tombs of Amascut background has been added to the login screen plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this update!
\nAdam (61):\n menu swapper: remove old swap configs\n party: idle timeout when on login screen\n hiscore: add toa to mappings\n runepouch: add divine runepouch\n clues: add divine runepouch\n use client runepouch rune id enum\n chat commands: add toa shortnames\n runelite: log input arguments at startup\n loottracker: add cache of runes\n loottracker: combine intricate pouch with common case\n screenshot: add toa chest loot\n overlay: layout toa party and raid interfaces\n api: add varbit id and value to event\n menu swapper: hide swap use/reset menus when customizable click is off\n api: rename getVar to getVarpValue\n infobox: add updateDuration method for timer\n timers: add smelling salts buff timer\n timers: add liquid adrenaline timer\n timers: add silk dressing and blessed crystal scarb\n crowdsourcing: remove movement crowdsourcing\n menu swapper: fix npc currentAction check for shift\n clientui: add low memory limit warning\n client: invalidate declaredAnnotations caches after startup\n clientui: make low memory link clickable\n clientui: make low memory limits configurable\n loottracker: add toa metadata\n regen-timer: add lightbearer support\n runelite.properties: change github link to discussions\n opponent info: apply hp display style to hp hud\n client: add logout timer plugin\n devtools: fix examine tool for npcs\n party: add isInParty method instead of checking members\n party: remove unused inParty\n party: include message type in Data message\n ContainableFrame: fix parsing versions with patch level\n world hopper: skip offline worlds\n add quest speedrunning world type\n client: add telemetry\n run energy: use script event for replacing orb text\n run energy: fix clearing text with replaceOrbText off\n ui: fix frame maximized bounds with dpi scaling\n containable frame: correct jdk bug number\n menu swapper: remove redundant code block\n api: add submenu api\n menu swapper: use submenus for inv and worn item swaps\n achievement diary: update to use new scroll interface\n telemetry: include client errors\n achievement diary: invoke new diary scrollbar update script\n api: add localpoint support for hintarrow\n notifier: add comment about terminal-notifier launcher version check\n notifier: remove needless commands list copy\n mta: fix telekinetic room\n Bump to 1.9.0-SNAPSHOT\n api: add fsw\n world hopper: add fsw\n xp updater: add fsw\n hiscores: add fsw\n ge: add fsw\n colorpicker: use clientui icon\n colorpicker: use parent always on top setting\n api: add zoomable minimap\n\nAlexsuperfly (1):\n chat-commands: fix widget id for counters page\n\nBlake Felt (1):\n item identification: Add Tombs of Amascut potions (#15581)\n\nBrady Ryun (1):\n timers: Add Martin the Master Farmer pickpocket timer\n\nEcki (1):\n emoji: Change clown image to twemoji version (#15533)\n\nElias Lahham (1):\n GameTimer: Update Liq Adrenaline time to 150s\n\nFerrariic (1):\n icontextfield: allow custom image icons\n\nHammmed (1):\n game: Add isDying override for Wall beasts (#15699)\n\nHugo (1):\n run energy: add ring of endurance\n\nJZomDev (1):\n timers: fix liquid adrenaline reset\n\nJonathan Lee (1):\n run energy: improve energy remaining formula\n\nJordan Atwood (10):\n skill calc: Add Menaphite remedy\n item stats: Add Menaphite remedy\n ItemMapping: Add Tombs of Amascut items\n HotColdLocation: Fix vertical centering of dark altar spot\n worldmap: Add Tombs of Amascut location\n clues: Clarify Kamil dig cryptic clue message\n world map: Add Necropolis obelisk sceptre teleport\n ItemMapping: Add Tumeken\'s shadow\n ItemMapping: Add Arcane sigil component of Elidinis\' ward\n ItemMapping: Fix Tumeken\'s shadow definition\n\nLlemonDuck (1):\n devtools: highlight current region in locations tool inside instances\n\nMax Weber (4):\n rl-client/PluginHubPanel: release entries when not active\n rl-client/PluginHubPanel: defer loading of icons until they are visible\n client/PluginHubPanel: reactivate with filter set correctly\n client/PluginHubPanel: fix reload on (un)install\n\nRon Young (1):\n loginscreen: add toa background\n\nSam (1):\n skill calc: Fix Menaphite remedy level and xp values (#15718)\n\nSirWrain (2):\n achievementdiary: fix ardy elite castle wars task\n achievementdiary: fix fremennik gwd task text (#15552)\n\nSkretzo (1):\n client: fix logout timer javadoc typo\n\nThePharros (2):\n agility: add Necropolis obstacle (#15706)\n discord: Add Necropolis, Ruins of Ullek, and Tombs of Amascut regions (#15757)\n\nYestin L. Harrison (1):\n notifier: get terminal-notifier from login shell on macOS\n\nYvesW (1):\n chat commands: fix !lvl toa expert\n\ngeheur (2):\n chat commands: fix short name of kril tsutsaroth\n ba: fix detecting end of wave\n
\n',image:"/img/blog/1.9.0-Release/zoom-in.png"}}}]);
-//# sourceMappingURL=157.20133c65.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[157],{433:function(e,n){e.exports={title:"1.9.0 Release",description:"Zoomable minimap and submenus",author:"Adam",body:'Minimap zooming \nThe minimap now supports zooming! This works similar to the zoom you may be familiar with on the official mobile or steam clients. Enable the Zoom
option in the Minimap
plugin to use it. The zoom can be reset to the default level by right clicking the minimap.
\n\n\n\nIn \nDefault \nOut \n \n \n\n\n \n \n \n \n \n
\nSubmenus \nLast week we added support for collapsible submenus. This works similar to how the one from RS3 works. You may have noticed we\'ve already converted the menu swapper for inventory and worn items to use this. Submenus allow grouping similar menus logically together, and greatly decreases the length and complexity of the menus on screen. You can tell if a menu has submenus by the presence of the >
.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe run energy plugin now correctly accounts for the passive Ring of Endurance effect \nA bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed \nterminal-notifier
on MacOS is now more reliably detected when installed into nonstandard locations \nThe pickpocket timer now works with Martin the Master Farmer \nDrinking Liquid Adrenaline prior to the timer running out now correctly resets the timer \nFix !lvl toa expert
to work as expected \nFresh start hiscores have been added to the hiscore panel \nThe Tombs of Amascut background has been added to the login screen plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this update!
\nAdam (61):\n menu swapper: remove old swap configs\n party: idle timeout when on login screen\n hiscore: add toa to mappings\n runepouch: add divine runepouch\n clues: add divine runepouch\n use client runepouch rune id enum\n chat commands: add toa shortnames\n runelite: log input arguments at startup\n loottracker: add cache of runes\n loottracker: combine intricate pouch with common case\n screenshot: add toa chest loot\n overlay: layout toa party and raid interfaces\n api: add varbit id and value to event\n menu swapper: hide swap use/reset menus when customizable click is off\n api: rename getVar to getVarpValue\n infobox: add updateDuration method for timer\n timers: add smelling salts buff timer\n timers: add liquid adrenaline timer\n timers: add silk dressing and blessed crystal scarb\n crowdsourcing: remove movement crowdsourcing\n menu swapper: fix npc currentAction check for shift\n clientui: add low memory limit warning\n client: invalidate declaredAnnotations caches after startup\n clientui: make low memory link clickable\n clientui: make low memory limits configurable\n loottracker: add toa metadata\n regen-timer: add lightbearer support\n runelite.properties: change github link to discussions\n opponent info: apply hp display style to hp hud\n client: add logout timer plugin\n devtools: fix examine tool for npcs\n party: add isInParty method instead of checking members\n party: remove unused inParty\n party: include message type in Data message\n ContainableFrame: fix parsing versions with patch level\n world hopper: skip offline worlds\n add quest speedrunning world type\n client: add telemetry\n run energy: use script event for replacing orb text\n run energy: fix clearing text with replaceOrbText off\n ui: fix frame maximized bounds with dpi scaling\n containable frame: correct jdk bug number\n menu swapper: remove redundant code block\n api: add submenu api\n menu swapper: use submenus for inv and worn item swaps\n achievement diary: update to use new scroll interface\n telemetry: include client errors\n achievement diary: invoke new diary scrollbar update script\n api: add localpoint support for hintarrow\n notifier: add comment about terminal-notifier launcher version check\n notifier: remove needless commands list copy\n mta: fix telekinetic room\n Bump to 1.9.0-SNAPSHOT\n api: add fsw\n world hopper: add fsw\n xp updater: add fsw\n hiscores: add fsw\n ge: add fsw\n colorpicker: use clientui icon\n colorpicker: use parent always on top setting\n api: add zoomable minimap\n\nAlexsuperfly (1):\n chat-commands: fix widget id for counters page\n\nBlake Felt (1):\n item identification: Add Tombs of Amascut potions (#15581)\n\nBrady Ryun (1):\n timers: Add Martin the Master Farmer pickpocket timer\n\nEcki (1):\n emoji: Change clown image to twemoji version (#15533)\n\nElias Lahham (1):\n GameTimer: Update Liq Adrenaline time to 150s\n\nFerrariic (1):\n icontextfield: allow custom image icons\n\nHammmed (1):\n game: Add isDying override for Wall beasts (#15699)\n\nHugo (1):\n run energy: add ring of endurance\n\nJZomDev (1):\n timers: fix liquid adrenaline reset\n\nJonathan Lee (1):\n run energy: improve energy remaining formula\n\nJordan Atwood (10):\n skill calc: Add Menaphite remedy\n item stats: Add Menaphite remedy\n ItemMapping: Add Tombs of Amascut items\n HotColdLocation: Fix vertical centering of dark altar spot\n worldmap: Add Tombs of Amascut location\n clues: Clarify Kamil dig cryptic clue message\n world map: Add Necropolis obelisk sceptre teleport\n ItemMapping: Add Tumeken\'s shadow\n ItemMapping: Add Arcane sigil component of Elidinis\' ward\n ItemMapping: Fix Tumeken\'s shadow definition\n\nLlemonDuck (1):\n devtools: highlight current region in locations tool inside instances\n\nMax Weber (4):\n rl-client/PluginHubPanel: release entries when not active\n rl-client/PluginHubPanel: defer loading of icons until they are visible\n client/PluginHubPanel: reactivate with filter set correctly\n client/PluginHubPanel: fix reload on (un)install\n\nRon Young (1):\n loginscreen: add toa background\n\nSam (1):\n skill calc: Fix Menaphite remedy level and xp values (#15718)\n\nSirWrain (2):\n achievementdiary: fix ardy elite castle wars task\n achievementdiary: fix fremennik gwd task text (#15552)\n\nSkretzo (1):\n client: fix logout timer javadoc typo\n\nThePharros (2):\n agility: add Necropolis obstacle (#15706)\n discord: Add Necropolis, Ruins of Ullek, and Tombs of Amascut regions (#15757)\n\nYestin L. Harrison (1):\n notifier: get terminal-notifier from login shell on macOS\n\nYvesW (1):\n chat commands: fix !lvl toa expert\n\ngeheur (2):\n chat commands: fix short name of kril tsutsaroth\n ba: fix detecting end of wave\n
\n',image:"/img/blog/1.9.0-Release/zoom-in.png"}}}]);
+//# sourceMappingURL=157.f8220558.chunk.js.map
\ No newline at end of file
diff --git a/static/js/157.20133c65.chunk.js.map b/static/js/157.f8220558.chunk.js.map
similarity index 99%
rename from static/js/157.20133c65.chunk.js.map
rename to static/js/157.f8220558.chunk.js.map
index 335ec7b68..eea5358d7 100644
--- a/static/js/157.20133c65.chunk.js.map
+++ b/static/js/157.f8220558.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-10-05-15-00-1.9.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gCAAgC,OAAS,OAAO,KAAO,43OAA44O,MAAQ","file":"static/js/157.20133c65.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.0 Release\",\"description\":\"Zoomable minimap and submenus\",\"author\":\"Adam\",\"body\":\"Minimap zooming \\nThe minimap now supports zooming! This works similar to the zoom you may be familiar with on the official mobile or steam clients. Enable the Zoom
option in the Minimap
plugin to use it. The zoom can be reset to the default level by right clicking the minimap.
\\n\\n\\n\\nIn \\nDefault \\nOut \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nSubmenus \\nLast week we added support for collapsible submenus. This works similar to how the one from RS3 works. You may have noticed we've already converted the menu swapper for inventory and worn items to use this. Submenus allow grouping similar menus logically together, and greatly decreases the length and complexity of the menus on screen. You can tell if a menu has submenus by the presence of the >
.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe run energy plugin now correctly accounts for the passive Ring of Endurance effect \\nA bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed \\nterminal-notifier
on MacOS is now more reliably detected when installed into nonstandard locations \\nThe pickpocket timer now works with Martin the Master Farmer \\nDrinking Liquid Adrenaline prior to the timer running out now correctly resets the timer \\nFix !lvl toa expert
to work as expected \\nFresh start hiscores have been added to the hiscore panel \\nThe Tombs of Amascut background has been added to the login screen plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this update!
\\nAdam (61):\\n menu swapper: remove old swap configs\\n party: idle timeout when on login screen\\n hiscore: add toa to mappings\\n runepouch: add divine runepouch\\n clues: add divine runepouch\\n use client runepouch rune id enum\\n chat commands: add toa shortnames\\n runelite: log input arguments at startup\\n loottracker: add cache of runes\\n loottracker: combine intricate pouch with common case\\n screenshot: add toa chest loot\\n overlay: layout toa party and raid interfaces\\n api: add varbit id and value to event\\n menu swapper: hide swap use/reset menus when customizable click is off\\n api: rename getVar to getVarpValue\\n infobox: add updateDuration method for timer\\n timers: add smelling salts buff timer\\n timers: add liquid adrenaline timer\\n timers: add silk dressing and blessed crystal scarb\\n crowdsourcing: remove movement crowdsourcing\\n menu swapper: fix npc currentAction check for shift\\n clientui: add low memory limit warning\\n client: invalidate declaredAnnotations caches after startup\\n clientui: make low memory link clickable\\n clientui: make low memory limits configurable\\n loottracker: add toa metadata\\n regen-timer: add lightbearer support\\n runelite.properties: change github link to discussions\\n opponent info: apply hp display style to hp hud\\n client: add logout timer plugin\\n devtools: fix examine tool for npcs\\n party: add isInParty method instead of checking members\\n party: remove unused inParty\\n party: include message type in Data message\\n ContainableFrame: fix parsing versions with patch level\\n world hopper: skip offline worlds\\n add quest speedrunning world type\\n client: add telemetry\\n run energy: use script event for replacing orb text\\n run energy: fix clearing text with replaceOrbText off\\n ui: fix frame maximized bounds with dpi scaling\\n containable frame: correct jdk bug number\\n menu swapper: remove redundant code block\\n api: add submenu api\\n menu swapper: use submenus for inv and worn item swaps\\n achievement diary: update to use new scroll interface\\n telemetry: include client errors\\n achievement diary: invoke new diary scrollbar update script\\n api: add localpoint support for hintarrow\\n notifier: add comment about terminal-notifier launcher version check\\n notifier: remove needless commands list copy\\n mta: fix telekinetic room\\n Bump to 1.9.0-SNAPSHOT\\n api: add fsw\\n world hopper: add fsw\\n xp updater: add fsw\\n hiscores: add fsw\\n ge: add fsw\\n colorpicker: use clientui icon\\n colorpicker: use parent always on top setting\\n api: add zoomable minimap\\n\\nAlexsuperfly (1):\\n chat-commands: fix widget id for counters page\\n\\nBlake Felt (1):\\n item identification: Add Tombs of Amascut potions (#15581)\\n\\nBrady Ryun (1):\\n timers: Add Martin the Master Farmer pickpocket timer\\n\\nEcki (1):\\n emoji: Change clown image to twemoji version (#15533)\\n\\nElias Lahham (1):\\n GameTimer: Update Liq Adrenaline time to 150s\\n\\nFerrariic (1):\\n icontextfield: allow custom image icons\\n\\nHammmed (1):\\n game: Add isDying override for Wall beasts (#15699)\\n\\nHugo (1):\\n run energy: add ring of endurance\\n\\nJZomDev (1):\\n timers: fix liquid adrenaline reset\\n\\nJonathan Lee (1):\\n run energy: improve energy remaining formula\\n\\nJordan Atwood (10):\\n skill calc: Add Menaphite remedy\\n item stats: Add Menaphite remedy\\n ItemMapping: Add Tombs of Amascut items\\n HotColdLocation: Fix vertical centering of dark altar spot\\n worldmap: Add Tombs of Amascut location\\n clues: Clarify Kamil dig cryptic clue message\\n world map: Add Necropolis obelisk sceptre teleport\\n ItemMapping: Add Tumeken's shadow\\n ItemMapping: Add Arcane sigil component of Elidinis' ward\\n ItemMapping: Fix Tumeken's shadow definition\\n\\nLlemonDuck (1):\\n devtools: highlight current region in locations tool inside instances\\n\\nMax Weber (4):\\n rl-client/PluginHubPanel: release entries when not active\\n rl-client/PluginHubPanel: defer loading of icons until they are visible\\n client/PluginHubPanel: reactivate with filter set correctly\\n client/PluginHubPanel: fix reload on (un)install\\n\\nRon Young (1):\\n loginscreen: add toa background\\n\\nSam (1):\\n skill calc: Fix Menaphite remedy level and xp values (#15718)\\n\\nSirWrain (2):\\n achievementdiary: fix ardy elite castle wars task\\n achievementdiary: fix fremennik gwd task text (#15552)\\n\\nSkretzo (1):\\n client: fix logout timer javadoc typo\\n\\nThePharros (2):\\n agility: add Necropolis obstacle (#15706)\\n discord: Add Necropolis, Ruins of Ullek, and Tombs of Amascut regions (#15757)\\n\\nYestin L. Harrison (1):\\n notifier: get terminal-notifier from login shell on macOS\\n\\nYvesW (1):\\n chat commands: fix !lvl toa expert\\n\\ngeheur (2):\\n chat commands: fix short name of kril tsutsaroth\\n ba: fix detecting end of wave\\n
\\n\",\"image\":\"/img/blog/1.9.0-Release/zoom-in.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-10-05-15-00-1.9.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gCAAgC,OAAS,OAAO,KAAO,43OAA44O,MAAQ","file":"static/js/157.f8220558.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.0 Release\",\"description\":\"Zoomable minimap and submenus\",\"author\":\"Adam\",\"body\":\"Minimap zooming \\nThe minimap now supports zooming! This works similar to the zoom you may be familiar with on the official mobile or steam clients. Enable the Zoom
option in the Minimap
plugin to use it. The zoom can be reset to the default level by right clicking the minimap.
\\n\\n\\n\\nIn \\nDefault \\nOut \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nSubmenus \\nLast week we added support for collapsible submenus. This works similar to how the one from RS3 works. You may have noticed we've already converted the menu swapper for inventory and worn items to use this. Submenus allow grouping similar menus logically together, and greatly decreases the length and complexity of the menus on screen. You can tell if a menu has submenus by the presence of the >
.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe run energy plugin now correctly accounts for the passive Ring of Endurance effect \\nA bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed \\nterminal-notifier
on MacOS is now more reliably detected when installed into nonstandard locations \\nThe pickpocket timer now works with Martin the Master Farmer \\nDrinking Liquid Adrenaline prior to the timer running out now correctly resets the timer \\nFix !lvl toa expert
to work as expected \\nFresh start hiscores have been added to the hiscore panel \\nThe Tombs of Amascut background has been added to the login screen plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this update!
\\nAdam (61):\\n menu swapper: remove old swap configs\\n party: idle timeout when on login screen\\n hiscore: add toa to mappings\\n runepouch: add divine runepouch\\n clues: add divine runepouch\\n use client runepouch rune id enum\\n chat commands: add toa shortnames\\n runelite: log input arguments at startup\\n loottracker: add cache of runes\\n loottracker: combine intricate pouch with common case\\n screenshot: add toa chest loot\\n overlay: layout toa party and raid interfaces\\n api: add varbit id and value to event\\n menu swapper: hide swap use/reset menus when customizable click is off\\n api: rename getVar to getVarpValue\\n infobox: add updateDuration method for timer\\n timers: add smelling salts buff timer\\n timers: add liquid adrenaline timer\\n timers: add silk dressing and blessed crystal scarb\\n crowdsourcing: remove movement crowdsourcing\\n menu swapper: fix npc currentAction check for shift\\n clientui: add low memory limit warning\\n client: invalidate declaredAnnotations caches after startup\\n clientui: make low memory link clickable\\n clientui: make low memory limits configurable\\n loottracker: add toa metadata\\n regen-timer: add lightbearer support\\n runelite.properties: change github link to discussions\\n opponent info: apply hp display style to hp hud\\n client: add logout timer plugin\\n devtools: fix examine tool for npcs\\n party: add isInParty method instead of checking members\\n party: remove unused inParty\\n party: include message type in Data message\\n ContainableFrame: fix parsing versions with patch level\\n world hopper: skip offline worlds\\n add quest speedrunning world type\\n client: add telemetry\\n run energy: use script event for replacing orb text\\n run energy: fix clearing text with replaceOrbText off\\n ui: fix frame maximized bounds with dpi scaling\\n containable frame: correct jdk bug number\\n menu swapper: remove redundant code block\\n api: add submenu api\\n menu swapper: use submenus for inv and worn item swaps\\n achievement diary: update to use new scroll interface\\n telemetry: include client errors\\n achievement diary: invoke new diary scrollbar update script\\n api: add localpoint support for hintarrow\\n notifier: add comment about terminal-notifier launcher version check\\n notifier: remove needless commands list copy\\n mta: fix telekinetic room\\n Bump to 1.9.0-SNAPSHOT\\n api: add fsw\\n world hopper: add fsw\\n xp updater: add fsw\\n hiscores: add fsw\\n ge: add fsw\\n colorpicker: use clientui icon\\n colorpicker: use parent always on top setting\\n api: add zoomable minimap\\n\\nAlexsuperfly (1):\\n chat-commands: fix widget id for counters page\\n\\nBlake Felt (1):\\n item identification: Add Tombs of Amascut potions (#15581)\\n\\nBrady Ryun (1):\\n timers: Add Martin the Master Farmer pickpocket timer\\n\\nEcki (1):\\n emoji: Change clown image to twemoji version (#15533)\\n\\nElias Lahham (1):\\n GameTimer: Update Liq Adrenaline time to 150s\\n\\nFerrariic (1):\\n icontextfield: allow custom image icons\\n\\nHammmed (1):\\n game: Add isDying override for Wall beasts (#15699)\\n\\nHugo (1):\\n run energy: add ring of endurance\\n\\nJZomDev (1):\\n timers: fix liquid adrenaline reset\\n\\nJonathan Lee (1):\\n run energy: improve energy remaining formula\\n\\nJordan Atwood (10):\\n skill calc: Add Menaphite remedy\\n item stats: Add Menaphite remedy\\n ItemMapping: Add Tombs of Amascut items\\n HotColdLocation: Fix vertical centering of dark altar spot\\n worldmap: Add Tombs of Amascut location\\n clues: Clarify Kamil dig cryptic clue message\\n world map: Add Necropolis obelisk sceptre teleport\\n ItemMapping: Add Tumeken's shadow\\n ItemMapping: Add Arcane sigil component of Elidinis' ward\\n ItemMapping: Fix Tumeken's shadow definition\\n\\nLlemonDuck (1):\\n devtools: highlight current region in locations tool inside instances\\n\\nMax Weber (4):\\n rl-client/PluginHubPanel: release entries when not active\\n rl-client/PluginHubPanel: defer loading of icons until they are visible\\n client/PluginHubPanel: reactivate with filter set correctly\\n client/PluginHubPanel: fix reload on (un)install\\n\\nRon Young (1):\\n loginscreen: add toa background\\n\\nSam (1):\\n skill calc: Fix Menaphite remedy level and xp values (#15718)\\n\\nSirWrain (2):\\n achievementdiary: fix ardy elite castle wars task\\n achievementdiary: fix fremennik gwd task text (#15552)\\n\\nSkretzo (1):\\n client: fix logout timer javadoc typo\\n\\nThePharros (2):\\n agility: add Necropolis obstacle (#15706)\\n discord: Add Necropolis, Ruins of Ullek, and Tombs of Amascut regions (#15757)\\n\\nYestin L. Harrison (1):\\n notifier: get terminal-notifier from login shell on macOS\\n\\nYvesW (1):\\n chat commands: fix !lvl toa expert\\n\\ngeheur (2):\\n chat commands: fix short name of kril tsutsaroth\\n ba: fix detecting end of wave\\n
\\n\",\"image\":\"/img/blog/1.9.0-Release/zoom-in.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/158.f31e0786.chunk.js b/static/js/158.f43b38a3.chunk.js
similarity index 98%
rename from static/js/158.f31e0786.chunk.js
rename to static/js/158.f43b38a3.chunk.js
index a88a68714..57ea33735 100644
--- a/static/js/158.f31e0786.chunk.js
+++ b/static/js/158.f43b38a3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[158],{433:function(e,n){e.exports={title:"1.9.5 Release",description:"Clue notes and npc highlight enhancements",author:"Adam",body:'Clue notes \nNotes can be attached to clue scroll hints via shift+right clicking the overlay and selecting Set note
. The note is saved and shown again if you get the same clue step in the future.
\n
\nPer NPC highlight color and types \nNPC indicators highlight color and highlight type can now be configured per NPC type by selecting the Tag color
and Tag style
options. This overrides the global setting configured in the plugin.
\n\n\n\n \n \n \n \n\n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe world hopper has an option to filter the world list by world type \nWiki FSW GE prices are now used when on a fresh start world \nThe thrall timer has been updated for the new CA task rewards \nThralls can now be hidden with the entity hider \nThe prayer flick and orb colors are now configurable \nObjects\' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper \nA bug causing erroneous Wintertodt round start notifications to be sent has been fixed \nFix tracking Dorgeshuun crossbow special attacks \nZalcano damage tracker correctly tracks max hitsplat variants \nMenaphite remedy has been added to item identification \nOpponent info\'s always show (de)buffer timer option now works correctly, again \nTOA team sizes have been added to the pb command, eg !pb toa 2
\n \n- Adam
\nNew commits \nWe had 19 contributors this update!
\nAdam (53):\n loottracker: clear session records when clearing panel\n api: add graphics object animation and frame\n api: exclude keycode from rt api\n hooks: rate limit error reports\n api: update 209\n cache: update 209\n api: add projectile animation accessors\n wintertodt: fix double round notification\n ground items: remove lots! quantity\n zalcano: track max hitsplat variants\n idle notifier: add blisterwood jump scare anim\n xp updater: use wom api v2\n api: replace gameobject angle with int\n api: add rl object orientation and radius\n api: add itemcontainer count method\n api: rename spell selected to widget selected\n api: deprecate widgetitem index\n item manager: add wiki fsw prices\n item mapping: add test for mapping cycles\n ground markers: combine show import/export and clear config\n prayer: add config for flick and orb color\n client: update to cache 2022-11-09-rev209\n clues: use npc ids for cipher clues\n clues: remove male from barbarian hint\n farming: update treznor npc id\n menu swapper: use submenus for ui swaps\n api: add post client tick event\n api: add widget tick api\n api: remove forced widget position api\n api: add post menu sort event\n boosts: remove unused canShowBoosts\n spec counter: fix tracking dorgeshuun specs\n spec counter: fix tracking melee specs\n clues: update gypsy aris clue\n ping: read multiple icmp packets until timeout or error\n menu swapper: fix npe accessing widget actions\n menu swapper: fix walk here swaps\n menu swapper: use submenu for npc swaps\n menu swapper: remove target on npc submenu\n inv tags: use submenus\n inv tags: remove old inv tag config keys\n overlay: add callback to overlay menu entry\n clues: add clue notes\n clues: remove TextClueScroll\n npc indicators: add per-npc highlight color and render style\n cannon: increase warning threshold max to 60\n Revert "api: remove forced widget position api"\n Revert "api: add widget tick api"\n menu swapper: restore use of deprioritization for walk here swaps\n info: cleanup panel on shutdown\n timers: add ca tier boost to thrall timer\n world hopper: combine quick hop and region filter\n world hopper: add world type filter\n\nClayton (1):\n api: Remove unused MUSIC_TRACKS_UNLOCKED VarPlayer definitions (#15852)\n\nDigiridoo (1):\n entity hider: add option to hide Thralls\n\nDylan Critz (1):\n item identification: Add Menaphite remedy potion (#15896)\n\nJZomDev (1):\n chat commands: add fishingtodt mapping to tempoross (#15802)\n\nJae Ren (1):\n slayer: Add Ogre task alternative monsters (#15888)\n\nJohn Kryspin (1):\n api: fix eighth spelling\n\nJordan Atwood (12):\n item stats: Clean up gauntlet and CoX entries\n item stats: Add Tombs of Amascut consumables\n ItemMapping: Add new locked items\n ItemMapping: Add new imbued twisted slayer helm variant\n ItemMapping: Use ItemVariations for tradeable item variants\n ItemMapping: Add Pharaoh\'s sceptre\n plugins: Use ItemVariationMapping for item variant lists\n ItemMapping: Fix black mask cycle\n ItemMapping: Fix includeVariations field name\n ItemMapping: Use the base variant ID for variant mappings\n menu swapper: Fix duplicate Reset option in bank\n timers: Remove divine potion timers on death\n\nLlemonDuck (1):\n boosts: fix always show (de)buff timer\n\nMacweese (1):\n game: Add isDying override for Gadderanks (#15557)\n\nMantautas Jurksa (1):\n clues: add world map hint for music clue scrolls (#15778)\n\nMax Weber (5):\n rl-api: add all jagex keycodes\n rl-api: remove KeyFocusListener\n cache: add seq animaya fields\n cache: update ItemDefinition to 209\n rl-client: add locked divine rune pouch\n\nMichael (1):\n loot tracker: use price type for npc kill chat message\n\nRobin (1):\n xp updater: add account hash on Wise Old Man update\n\nSkretzo (1):\n skill calculator: Set coif crafting action as members-only (#15911)\n\nTimothy J. Aveni (1):\n menu swapper: Remove extra space from ui swap chat message (#15916)\n\neemkukko (1):\n item mapping: add ensouled hellhound head\n\nredrumze (1):\n chat commands: add toa team sizes pb\n\nsam (1):\n item charges: fix tracking explorer ring charges\n
\n',image:"/img/blog/1.9.5-Release/clue-note.png"}}}]);
-//# sourceMappingURL=158.f31e0786.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[158],{434:function(e,n){e.exports={title:"1.9.5 Release",description:"Clue notes and npc highlight enhancements",author:"Adam",body:'Clue notes \nNotes can be attached to clue scroll hints via shift+right clicking the overlay and selecting Set note
. The note is saved and shown again if you get the same clue step in the future.
\n
\nPer NPC highlight color and types \nNPC indicators highlight color and highlight type can now be configured per NPC type by selecting the Tag color
and Tag style
options. This overrides the global setting configured in the plugin.
\n\n\n\n \n \n \n \n\n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe world hopper has an option to filter the world list by world type \nWiki FSW GE prices are now used when on a fresh start world \nThe thrall timer has been updated for the new CA task rewards \nThralls can now be hidden with the entity hider \nThe prayer flick and orb colors are now configurable \nObjects\' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper \nA bug causing erroneous Wintertodt round start notifications to be sent has been fixed \nFix tracking Dorgeshuun crossbow special attacks \nZalcano damage tracker correctly tracks max hitsplat variants \nMenaphite remedy has been added to item identification \nOpponent info\'s always show (de)buffer timer option now works correctly, again \nTOA team sizes have been added to the pb command, eg !pb toa 2
\n \n- Adam
\nNew commits \nWe had 19 contributors this update!
\nAdam (53):\n loottracker: clear session records when clearing panel\n api: add graphics object animation and frame\n api: exclude keycode from rt api\n hooks: rate limit error reports\n api: update 209\n cache: update 209\n api: add projectile animation accessors\n wintertodt: fix double round notification\n ground items: remove lots! quantity\n zalcano: track max hitsplat variants\n idle notifier: add blisterwood jump scare anim\n xp updater: use wom api v2\n api: replace gameobject angle with int\n api: add rl object orientation and radius\n api: add itemcontainer count method\n api: rename spell selected to widget selected\n api: deprecate widgetitem index\n item manager: add wiki fsw prices\n item mapping: add test for mapping cycles\n ground markers: combine show import/export and clear config\n prayer: add config for flick and orb color\n client: update to cache 2022-11-09-rev209\n clues: use npc ids for cipher clues\n clues: remove male from barbarian hint\n farming: update treznor npc id\n menu swapper: use submenus for ui swaps\n api: add post client tick event\n api: add widget tick api\n api: remove forced widget position api\n api: add post menu sort event\n boosts: remove unused canShowBoosts\n spec counter: fix tracking dorgeshuun specs\n spec counter: fix tracking melee specs\n clues: update gypsy aris clue\n ping: read multiple icmp packets until timeout or error\n menu swapper: fix npe accessing widget actions\n menu swapper: fix walk here swaps\n menu swapper: use submenu for npc swaps\n menu swapper: remove target on npc submenu\n inv tags: use submenus\n inv tags: remove old inv tag config keys\n overlay: add callback to overlay menu entry\n clues: add clue notes\n clues: remove TextClueScroll\n npc indicators: add per-npc highlight color and render style\n cannon: increase warning threshold max to 60\n Revert "api: remove forced widget position api"\n Revert "api: add widget tick api"\n menu swapper: restore use of deprioritization for walk here swaps\n info: cleanup panel on shutdown\n timers: add ca tier boost to thrall timer\n world hopper: combine quick hop and region filter\n world hopper: add world type filter\n\nClayton (1):\n api: Remove unused MUSIC_TRACKS_UNLOCKED VarPlayer definitions (#15852)\n\nDigiridoo (1):\n entity hider: add option to hide Thralls\n\nDylan Critz (1):\n item identification: Add Menaphite remedy potion (#15896)\n\nJZomDev (1):\n chat commands: add fishingtodt mapping to tempoross (#15802)\n\nJae Ren (1):\n slayer: Add Ogre task alternative monsters (#15888)\n\nJohn Kryspin (1):\n api: fix eighth spelling\n\nJordan Atwood (12):\n item stats: Clean up gauntlet and CoX entries\n item stats: Add Tombs of Amascut consumables\n ItemMapping: Add new locked items\n ItemMapping: Add new imbued twisted slayer helm variant\n ItemMapping: Use ItemVariations for tradeable item variants\n ItemMapping: Add Pharaoh\'s sceptre\n plugins: Use ItemVariationMapping for item variant lists\n ItemMapping: Fix black mask cycle\n ItemMapping: Fix includeVariations field name\n ItemMapping: Use the base variant ID for variant mappings\n menu swapper: Fix duplicate Reset option in bank\n timers: Remove divine potion timers on death\n\nLlemonDuck (1):\n boosts: fix always show (de)buff timer\n\nMacweese (1):\n game: Add isDying override for Gadderanks (#15557)\n\nMantautas Jurksa (1):\n clues: add world map hint for music clue scrolls (#15778)\n\nMax Weber (5):\n rl-api: add all jagex keycodes\n rl-api: remove KeyFocusListener\n cache: add seq animaya fields\n cache: update ItemDefinition to 209\n rl-client: add locked divine rune pouch\n\nMichael (1):\n loot tracker: use price type for npc kill chat message\n\nRobin (1):\n xp updater: add account hash on Wise Old Man update\n\nSkretzo (1):\n skill calculator: Set coif crafting action as members-only (#15911)\n\nTimothy J. Aveni (1):\n menu swapper: Remove extra space from ui swap chat message (#15916)\n\neemkukko (1):\n item mapping: add ensouled hellhound head\n\nredrumze (1):\n chat commands: add toa team sizes pb\n\nsam (1):\n item charges: fix tracking explorer ring charges\n
\n',image:"/img/blog/1.9.5-Release/clue-note.png"}}}]);
+//# sourceMappingURL=158.f43b38a3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/158.f31e0786.chunk.js.map b/static/js/158.f43b38a3.chunk.js.map
similarity index 99%
rename from static/js/158.f31e0786.chunk.js.map
rename to static/js/158.f43b38a3.chunk.js.map
index be28f3a85..860ff44c9 100644
--- a/static/js/158.f31e0786.chunk.js.map
+++ b/static/js/158.f43b38a3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2022-12-07-15-00-1.9.5-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4CAA4C,OAAS,OAAO,KAAO,w4MAAi5M,MAAQ","file":"static/js/158.f31e0786.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.5 Release\",\"description\":\"Clue notes and npc highlight enhancements\",\"author\":\"Adam\",\"body\":\"Clue notes \\nNotes can be attached to clue scroll hints via shift+right clicking the overlay and selecting Set note
. The note is saved and shown again if you get the same clue step in the future.
\\n
\\nPer NPC highlight color and types \\nNPC indicators highlight color and highlight type can now be configured per NPC type by selecting the Tag color
and Tag style
options. This overrides the global setting configured in the plugin.
\\n\\n\\n\\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe world hopper has an option to filter the world list by world type \\nWiki FSW GE prices are now used when on a fresh start world \\nThe thrall timer has been updated for the new CA task rewards \\nThralls can now be hidden with the entity hider \\nThe prayer flick and orb colors are now configurable \\nObjects' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper \\nA bug causing erroneous Wintertodt round start notifications to be sent has been fixed \\nFix tracking Dorgeshuun crossbow special attacks \\nZalcano damage tracker correctly tracks max hitsplat variants \\nMenaphite remedy has been added to item identification \\nOpponent info's always show (de)buffer timer option now works correctly, again \\nTOA team sizes have been added to the pb command, eg !pb toa 2
\\n \\n- Adam
\\nNew commits \\nWe had 19 contributors this update!
\\nAdam (53):\\n loottracker: clear session records when clearing panel\\n api: add graphics object animation and frame\\n api: exclude keycode from rt api\\n hooks: rate limit error reports\\n api: update 209\\n cache: update 209\\n api: add projectile animation accessors\\n wintertodt: fix double round notification\\n ground items: remove lots! quantity\\n zalcano: track max hitsplat variants\\n idle notifier: add blisterwood jump scare anim\\n xp updater: use wom api v2\\n api: replace gameobject angle with int\\n api: add rl object orientation and radius\\n api: add itemcontainer count method\\n api: rename spell selected to widget selected\\n api: deprecate widgetitem index\\n item manager: add wiki fsw prices\\n item mapping: add test for mapping cycles\\n ground markers: combine show import/export and clear config\\n prayer: add config for flick and orb color\\n client: update to cache 2022-11-09-rev209\\n clues: use npc ids for cipher clues\\n clues: remove male from barbarian hint\\n farming: update treznor npc id\\n menu swapper: use submenus for ui swaps\\n api: add post client tick event\\n api: add widget tick api\\n api: remove forced widget position api\\n api: add post menu sort event\\n boosts: remove unused canShowBoosts\\n spec counter: fix tracking dorgeshuun specs\\n spec counter: fix tracking melee specs\\n clues: update gypsy aris clue\\n ping: read multiple icmp packets until timeout or error\\n menu swapper: fix npe accessing widget actions\\n menu swapper: fix walk here swaps\\n menu swapper: use submenu for npc swaps\\n menu swapper: remove target on npc submenu\\n inv tags: use submenus\\n inv tags: remove old inv tag config keys\\n overlay: add callback to overlay menu entry\\n clues: add clue notes\\n clues: remove TextClueScroll\\n npc indicators: add per-npc highlight color and render style\\n cannon: increase warning threshold max to 60\\n Revert "api: remove forced widget position api"\\n Revert "api: add widget tick api"\\n menu swapper: restore use of deprioritization for walk here swaps\\n info: cleanup panel on shutdown\\n timers: add ca tier boost to thrall timer\\n world hopper: combine quick hop and region filter\\n world hopper: add world type filter\\n\\nClayton (1):\\n api: Remove unused MUSIC_TRACKS_UNLOCKED VarPlayer definitions (#15852)\\n\\nDigiridoo (1):\\n entity hider: add option to hide Thralls\\n\\nDylan Critz (1):\\n item identification: Add Menaphite remedy potion (#15896)\\n\\nJZomDev (1):\\n chat commands: add fishingtodt mapping to tempoross (#15802)\\n\\nJae Ren (1):\\n slayer: Add Ogre task alternative monsters (#15888)\\n\\nJohn Kryspin (1):\\n api: fix eighth spelling\\n\\nJordan Atwood (12):\\n item stats: Clean up gauntlet and CoX entries\\n item stats: Add Tombs of Amascut consumables\\n ItemMapping: Add new locked items\\n ItemMapping: Add new imbued twisted slayer helm variant\\n ItemMapping: Use ItemVariations for tradeable item variants\\n ItemMapping: Add Pharaoh's sceptre\\n plugins: Use ItemVariationMapping for item variant lists\\n ItemMapping: Fix black mask cycle\\n ItemMapping: Fix includeVariations field name\\n ItemMapping: Use the base variant ID for variant mappings\\n menu swapper: Fix duplicate Reset option in bank\\n timers: Remove divine potion timers on death\\n\\nLlemonDuck (1):\\n boosts: fix always show (de)buff timer\\n\\nMacweese (1):\\n game: Add isDying override for Gadderanks (#15557)\\n\\nMantautas Jurksa (1):\\n clues: add world map hint for music clue scrolls (#15778)\\n\\nMax Weber (5):\\n rl-api: add all jagex keycodes\\n rl-api: remove KeyFocusListener\\n cache: add seq animaya fields\\n cache: update ItemDefinition to 209\\n rl-client: add locked divine rune pouch\\n\\nMichael (1):\\n loot tracker: use price type for npc kill chat message\\n\\nRobin (1):\\n xp updater: add account hash on Wise Old Man update\\n\\nSkretzo (1):\\n skill calculator: Set coif crafting action as members-only (#15911)\\n\\nTimothy J. Aveni (1):\\n menu swapper: Remove extra space from ui swap chat message (#15916)\\n\\neemkukko (1):\\n item mapping: add ensouled hellhound head\\n\\nredrumze (1):\\n chat commands: add toa team sizes pb\\n\\nsam (1):\\n item charges: fix tracking explorer ring charges\\n
\\n\",\"image\":\"/img/blog/1.9.5-Release/clue-note.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2022-12-07-15-00-1.9.5-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4CAA4C,OAAS,OAAO,KAAO,w4MAAi5M,MAAQ","file":"static/js/158.f43b38a3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.5 Release\",\"description\":\"Clue notes and npc highlight enhancements\",\"author\":\"Adam\",\"body\":\"Clue notes \\nNotes can be attached to clue scroll hints via shift+right clicking the overlay and selecting Set note
. The note is saved and shown again if you get the same clue step in the future.
\\n
\\nPer NPC highlight color and types \\nNPC indicators highlight color and highlight type can now be configured per NPC type by selecting the Tag color
and Tag style
options. This overrides the global setting configured in the plugin.
\\n\\n\\n\\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe world hopper has an option to filter the world list by world type \\nWiki FSW GE prices are now used when on a fresh start world \\nThe thrall timer has been updated for the new CA task rewards \\nThralls can now be hidden with the entity hider \\nThe prayer flick and orb colors are now configurable \\nObjects' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper \\nA bug causing erroneous Wintertodt round start notifications to be sent has been fixed \\nFix tracking Dorgeshuun crossbow special attacks \\nZalcano damage tracker correctly tracks max hitsplat variants \\nMenaphite remedy has been added to item identification \\nOpponent info's always show (de)buffer timer option now works correctly, again \\nTOA team sizes have been added to the pb command, eg !pb toa 2
\\n \\n- Adam
\\nNew commits \\nWe had 19 contributors this update!
\\nAdam (53):\\n loottracker: clear session records when clearing panel\\n api: add graphics object animation and frame\\n api: exclude keycode from rt api\\n hooks: rate limit error reports\\n api: update 209\\n cache: update 209\\n api: add projectile animation accessors\\n wintertodt: fix double round notification\\n ground items: remove lots! quantity\\n zalcano: track max hitsplat variants\\n idle notifier: add blisterwood jump scare anim\\n xp updater: use wom api v2\\n api: replace gameobject angle with int\\n api: add rl object orientation and radius\\n api: add itemcontainer count method\\n api: rename spell selected to widget selected\\n api: deprecate widgetitem index\\n item manager: add wiki fsw prices\\n item mapping: add test for mapping cycles\\n ground markers: combine show import/export and clear config\\n prayer: add config for flick and orb color\\n client: update to cache 2022-11-09-rev209\\n clues: use npc ids for cipher clues\\n clues: remove male from barbarian hint\\n farming: update treznor npc id\\n menu swapper: use submenus for ui swaps\\n api: add post client tick event\\n api: add widget tick api\\n api: remove forced widget position api\\n api: add post menu sort event\\n boosts: remove unused canShowBoosts\\n spec counter: fix tracking dorgeshuun specs\\n spec counter: fix tracking melee specs\\n clues: update gypsy aris clue\\n ping: read multiple icmp packets until timeout or error\\n menu swapper: fix npe accessing widget actions\\n menu swapper: fix walk here swaps\\n menu swapper: use submenu for npc swaps\\n menu swapper: remove target on npc submenu\\n inv tags: use submenus\\n inv tags: remove old inv tag config keys\\n overlay: add callback to overlay menu entry\\n clues: add clue notes\\n clues: remove TextClueScroll\\n npc indicators: add per-npc highlight color and render style\\n cannon: increase warning threshold max to 60\\n Revert "api: remove forced widget position api"\\n Revert "api: add widget tick api"\\n menu swapper: restore use of deprioritization for walk here swaps\\n info: cleanup panel on shutdown\\n timers: add ca tier boost to thrall timer\\n world hopper: combine quick hop and region filter\\n world hopper: add world type filter\\n\\nClayton (1):\\n api: Remove unused MUSIC_TRACKS_UNLOCKED VarPlayer definitions (#15852)\\n\\nDigiridoo (1):\\n entity hider: add option to hide Thralls\\n\\nDylan Critz (1):\\n item identification: Add Menaphite remedy potion (#15896)\\n\\nJZomDev (1):\\n chat commands: add fishingtodt mapping to tempoross (#15802)\\n\\nJae Ren (1):\\n slayer: Add Ogre task alternative monsters (#15888)\\n\\nJohn Kryspin (1):\\n api: fix eighth spelling\\n\\nJordan Atwood (12):\\n item stats: Clean up gauntlet and CoX entries\\n item stats: Add Tombs of Amascut consumables\\n ItemMapping: Add new locked items\\n ItemMapping: Add new imbued twisted slayer helm variant\\n ItemMapping: Use ItemVariations for tradeable item variants\\n ItemMapping: Add Pharaoh's sceptre\\n plugins: Use ItemVariationMapping for item variant lists\\n ItemMapping: Fix black mask cycle\\n ItemMapping: Fix includeVariations field name\\n ItemMapping: Use the base variant ID for variant mappings\\n menu swapper: Fix duplicate Reset option in bank\\n timers: Remove divine potion timers on death\\n\\nLlemonDuck (1):\\n boosts: fix always show (de)buff timer\\n\\nMacweese (1):\\n game: Add isDying override for Gadderanks (#15557)\\n\\nMantautas Jurksa (1):\\n clues: add world map hint for music clue scrolls (#15778)\\n\\nMax Weber (5):\\n rl-api: add all jagex keycodes\\n rl-api: remove KeyFocusListener\\n cache: add seq animaya fields\\n cache: update ItemDefinition to 209\\n rl-client: add locked divine rune pouch\\n\\nMichael (1):\\n loot tracker: use price type for npc kill chat message\\n\\nRobin (1):\\n xp updater: add account hash on Wise Old Man update\\n\\nSkretzo (1):\\n skill calculator: Set coif crafting action as members-only (#15911)\\n\\nTimothy J. Aveni (1):\\n menu swapper: Remove extra space from ui swap chat message (#15916)\\n\\neemkukko (1):\\n item mapping: add ensouled hellhound head\\n\\nredrumze (1):\\n chat commands: add toa team sizes pb\\n\\nsam (1):\\n item charges: fix tracking explorer ring charges\\n
\\n\",\"image\":\"/img/blog/1.9.5-Release/clue-note.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/159.43535cc1.chunk.js b/static/js/159.dc6c7523.chunk.js
similarity index 93%
rename from static/js/159.43535cc1.chunk.js
rename to static/js/159.dc6c7523.chunk.js
index 2ca6abd16..ae45c8e86 100644
--- a/static/js/159.43535cc1.chunk.js
+++ b/static/js/159.dc6c7523.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[159],{434:function(e,t){e.exports={title:"Security Incident Jan 21 2023",description:"Security Incident Jan 21 2023",author:"Adam",skip:!0,body:"On January 10 a plugin named ChatClip
was erroneously published to the plugin hub which, under non-default configuration, would permit an attacker to remotely execute code on a victims computer by sending an in-game message.
\nThis was caused by human error on our part, where we approved the plugin despite the code being exploitable.
\nTo be affected by this issue, you would have had to 1) installed the chat clip plugin, and 2) enabled the Add to history
option within the plugin.
\nOver the 11 day period the plugin was active on the plugin hub, the plugin was installed 118 times by 78 unique IPs. We have no way to determine how many of those users enabled the Add to history
option allowing the exploitable behavior.
\nWe raised the issue to Jagex, and provided to them the IPs of the players who we think could be affected. A staff member briefly took a look at the possibly affected accounts on Saturday, did not find anything requiring immediate attention, and has promised to look into it this week. I hope that they will be able to take corrective action if any compromised accounts are found.
\nWe have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.
\nTo prevent this from happening again in the future, we will be automatically flagging plugins which use potentially dangerous APIs that can allow command injection, to require them to be more closely scrutinized.
\n- Adam
\n"}}}]);
-//# sourceMappingURL=159.43535cc1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[159],{435:function(e,t){e.exports={title:"Security Incident Jan 21 2023",description:"Security Incident Jan 21 2023",author:"Adam",skip:!0,body:"On January 10 a plugin named ChatClip
was erroneously published to the plugin hub which, under non-default configuration, would permit an attacker to remotely execute code on a victims computer by sending an in-game message.
\nThis was caused by human error on our part, where we approved the plugin despite the code being exploitable.
\nTo be affected by this issue, you would have had to 1) installed the chat clip plugin, and 2) enabled the Add to history
option within the plugin.
\nOver the 11 day period the plugin was active on the plugin hub, the plugin was installed 118 times by 78 unique IPs. We have no way to determine how many of those users enabled the Add to history
option allowing the exploitable behavior.
\nWe raised the issue to Jagex, and provided to them the IPs of the players who we think could be affected. A staff member briefly took a look at the possibly affected accounts on Saturday, did not find anything requiring immediate attention, and has promised to look into it this week. I hope that they will be able to take corrective action if any compromised accounts are found.
\nWe have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.
\nTo prevent this from happening again in the future, we will be automatically flagging plugins which use potentially dangerous APIs that can allow command injection, to require them to be more closely scrutinized.
\n- Adam
\n"}}}]);
+//# sourceMappingURL=159.dc6c7523.chunk.js.map
\ No newline at end of file
diff --git a/static/js/159.43535cc1.chunk.js.map b/static/js/159.dc6c7523.chunk.js.map
similarity index 96%
rename from static/js/159.43535cc1.chunk.js.map
rename to static/js/159.dc6c7523.chunk.js.map
index f2d562c2c..7d13aad72 100644
--- a/static/js/159.43535cc1.chunk.js.map
+++ b/static/js/159.dc6c7523.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-01-22-10-00-security-incident-jan21.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gCAAgC,YAAc,gCAAgC,OAAS,OAAO,MAAO,EAAK,KAAO","file":"static/js/159.43535cc1.chunk.js","sourcesContent":["module.exports = {\"title\":\"Security Incident Jan 21 2023\",\"description\":\"Security Incident Jan 21 2023\",\"author\":\"Adam\",\"skip\":true,\"body\":\"On January 10 a plugin named ChatClip
was erroneously published to the plugin hub which, under non-default configuration, would permit an attacker to remotely execute code on a victims computer by sending an in-game message.
\\nThis was caused by human error on our part, where we approved the plugin despite the code being exploitable.
\\nTo be affected by this issue, you would have had to 1) installed the chat clip plugin, and 2) enabled the Add to history
option within the plugin.
\\nOver the 11 day period the plugin was active on the plugin hub, the plugin was installed 118 times by 78 unique IPs. We have no way to determine how many of those users enabled the Add to history
option allowing the exploitable behavior.
\\nWe raised the issue to Jagex, and provided to them the IPs of the players who we think could be affected. A staff member briefly took a look at the possibly affected accounts on Saturday, did not find anything requiring immediate attention, and has promised to look into it this week. I hope that they will be able to take corrective action if any compromised accounts are found.
\\nWe have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.
\\nTo prevent this from happening again in the future, we will be automatically flagging plugins which use potentially dangerous APIs that can allow command injection, to require them to be more closely scrutinized.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-01-22-10-00-security-incident-jan21.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,gCAAgC,YAAc,gCAAgC,OAAS,OAAO,MAAO,EAAK,KAAO","file":"static/js/159.dc6c7523.chunk.js","sourcesContent":["module.exports = {\"title\":\"Security Incident Jan 21 2023\",\"description\":\"Security Incident Jan 21 2023\",\"author\":\"Adam\",\"skip\":true,\"body\":\"On January 10 a plugin named ChatClip
was erroneously published to the plugin hub which, under non-default configuration, would permit an attacker to remotely execute code on a victims computer by sending an in-game message.
\\nThis was caused by human error on our part, where we approved the plugin despite the code being exploitable.
\\nTo be affected by this issue, you would have had to 1) installed the chat clip plugin, and 2) enabled the Add to history
option within the plugin.
\\nOver the 11 day period the plugin was active on the plugin hub, the plugin was installed 118 times by 78 unique IPs. We have no way to determine how many of those users enabled the Add to history
option allowing the exploitable behavior.
\\nWe raised the issue to Jagex, and provided to them the IPs of the players who we think could be affected. A staff member briefly took a look at the possibly affected accounts on Saturday, did not find anything requiring immediate attention, and has promised to look into it this week. I hope that they will be able to take corrective action if any compromised accounts are found.
\\nWe have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.
\\nTo prevent this from happening again in the future, we will be automatically flagging plugins which use potentially dangerous APIs that can allow command injection, to require them to be more closely scrutinized.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/16.e05d291a.chunk.js b/static/js/16.71c67a3b.chunk.js
similarity index 94%
rename from static/js/16.e05d291a.chunk.js
rename to static/js/16.71c67a3b.chunk.js
index c5ad25544..a062e009c 100644
--- a/static/js/16.e05d291a.chunk.js
+++ b/static/js/16.71c67a3b.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[16],{126:function(e,t,c){"use strict";var s=c(0);var a=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:c,...i}=e;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:c?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),t,Object(s.g)(a,null))}},128:function(e,t,c){},457:function(e,t,c){"use strict";c.r(t);var s=c(0),a=c(126),i=c(7),l=c.n(i),r=c(46),n=c(11),o=c(72),b=c(27);c(128);t.default=Object(b.b)(e=>({activeTile:e.tile.activeTile}),e=>Object(n.b)({setActiveTile:o.b},e))(e=>{let{activeTile:t,setActiveTile:c}=e;return Object(s.g)(a.a,null,Object(s.g)(r.a,{title:"Select tile markers - "+l.a.title,description:"Paste tile markers code exported from RuneLite here"}),Object(s.g)("section",{id:"tiles"},Object(s.g)("div",{class:"content-section tag-container"},Object(s.g)("div",{class:"page-header"},Object(s.g)("h1",null,"Enter tile markers"),Object(s.g)("p",{class:"text-muted"},"Paste tile markers exported from RuneLite and click 'GO'")),Object(s.g)("textarea",{rows:"5",class:"form-control",placeholder:"Enter your tile markers here",onChange:e=>c(e.target.value)},t),Object(s.g)("a",{class:"btn btn-block btn-success",href:"/tile/show/#"+btoa(t)},"Go"))))})}}]);
-//# sourceMappingURL=16.e05d291a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[16],{126:function(e,t,c){"use strict";var s=c(0);var a=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:c,...i}=e;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:c?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),t,Object(s.g)(a,null))}},128:function(e,t,c){},459:function(e,t,c){"use strict";c.r(t);var s=c(0),a=c(126),i=c(7),l=c.n(i),r=c(46),n=c(11),o=c(72),b=c(27);c(128);t.default=Object(b.b)(e=>({activeTile:e.tile.activeTile}),e=>Object(n.b)({setActiveTile:o.b},e))(e=>{let{activeTile:t,setActiveTile:c}=e;return Object(s.g)(a.a,null,Object(s.g)(r.a,{title:"Select tile markers - "+l.a.title,description:"Paste tile markers code exported from RuneLite here"}),Object(s.g)("section",{id:"tiles"},Object(s.g)("div",{class:"content-section tag-container"},Object(s.g)("div",{class:"page-header"},Object(s.g)("h1",null,"Enter tile markers"),Object(s.g)("p",{class:"text-muted"},"Paste tile markers exported from RuneLite and click 'GO'")),Object(s.g)("textarea",{rows:"5",class:"form-control",placeholder:"Enter your tile markers here",onChange:e=>c(e.target.value)},t),Object(s.g)("a",{class:"btn btn-block btn-success",href:"/tile/show/#"+btoa(t)},"Go"))))})}}]);
+//# sourceMappingURL=16.71c67a3b.chunk.js.map
\ No newline at end of file
diff --git a/static/js/16.e05d291a.chunk.js.map b/static/js/16.71c67a3b.chunk.js.map
similarity index 98%
rename from static/js/16.e05d291a.chunk.js.map
rename to static/js/16.71c67a3b.chunk.js.map
index 0151b7d27..a6e0d3ed9 100644
--- a/static/js/16.e05d291a.chunk.js.map
+++ b/static/js/16.71c67a3b.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","routes/tile.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","connect","state","activeTile","tile","dispatch","bindActionCreators","setActiveTile","Meta","title","hero","description","rows","placeholder","onChange","event","target","value","btoa"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,kFA+Cec,sBAJSC,IAAK,CAAOC,WAAYD,EAAME,KAAKD,aAChCE,GACzBC,YAAmB,CAAEC,mBAAiBF,GAEzBJ,CAtCFR,IAAA,IAAC,WAAEU,EAAU,cAAEI,GAAed,EAAA,OACzCL,YAACI,IAAM,KACLJ,YAACoB,IAAI,CACHC,MAAQ,yBAAwBC,IAAKD,MACrCE,YAAY,wDAEdvB,YAAA,WAASC,GAAG,SACVD,YAAA,OAAKE,MAAM,iCACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAI,sBACJA,YAAA,KAAGE,MAAM,cAAa,6DAKxBF,YAAA,YACEwB,KAAK,IACLtB,MAAM,eACNuB,YAAY,+BACZC,SAAUC,GAASR,EAAcQ,EAAMC,OAAOC,QAE7Cd,GAEHf,YAAA,KACEE,MAAM,4BACNC,KAAO,eAAc2B,KAAKf,IAC3B","file":"static/js/16.e05d291a.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { setActiveTile } from '../modules/tile'\nimport { connect } from 'react-redux'\nimport './tag.css'\n\nconst Tile = ({ activeTile, setActiveTile }) => (\n \n \n \n \n)\n\nconst mapStateToProps = state => ({ activeTile: state.tile.activeTile })\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setActiveTile }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tile)\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","routes/tile.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","connect","state","activeTile","tile","dispatch","bindActionCreators","setActiveTile","Meta","title","hero","description","rows","placeholder","onChange","event","target","value","btoa"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,uDCbb,kFA+Cec,sBAJSC,IAAK,CAAOC,WAAYD,EAAME,KAAKD,aAChCE,GACzBC,YAAmB,CAAEC,mBAAiBF,GAEzBJ,CAtCFR,IAAA,IAAC,WAAEU,EAAU,cAAEI,GAAed,EAAA,OACzCL,YAACI,IAAM,KACLJ,YAACoB,IAAI,CACHC,MAAQ,yBAAwBC,IAAKD,MACrCE,YAAY,wDAEdvB,YAAA,WAASC,GAAG,SACVD,YAAA,OAAKE,MAAM,iCACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAI,sBACJA,YAAA,KAAGE,MAAM,cAAa,6DAKxBF,YAAA,YACEwB,KAAK,IACLtB,MAAM,eACNuB,YAAY,+BACZC,SAAUC,GAASR,EAAcQ,EAAMC,OAAOC,QAE7Cd,GAEHf,YAAA,KACEE,MAAM,4BACNC,KAAO,eAAc2B,KAAKf,IAC3B","file":"static/js/16.71c67a3b.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { setActiveTile } from '../modules/tile'\nimport { connect } from 'react-redux'\nimport './tag.css'\n\nconst Tile = ({ activeTile, setActiveTile }) => (\n \n \n \n \n)\n\nconst mapStateToProps = state => ({ activeTile: state.tile.activeTile })\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setActiveTile }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tile)\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/160.5693c2ef.chunk.js b/static/js/160.b5d7bd92.chunk.js
similarity index 98%
rename from static/js/160.5693c2ef.chunk.js
rename to static/js/160.b5d7bd92.chunk.js
index ca178feab..73553b255 100644
--- a/static/js/160.5693c2ef.chunk.js
+++ b/static/js/160.b5d7bd92.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[160],{435:function(e,n){e.exports={title:"1.9.11 Release",description:"Profiles",author:"Adam",body:"Profiles \nProfiles have been added to RuneLite, which are separate sets of plugins and settings that can be switched between at any time. There is a new UI in the configuration panel for managing profiles. Profiles are useful for players who want different settings for different accounts, or for different activites.
\nYour existing settings will be migrated into a single profile named default
automatically.
\n
\nIn addition to creating and deleting profiles, the profile panel also allows duplicating (copying an existing profile's settings to a new profile), exporting, and importing profiles.
\nFor advanced users, there is a new --profile
client argument to choose the profile the client uses at startup. By default the client will select the profile it was last using. If you currently use the --config
client argument, import the config file you use into a new profile, and then use --profile name
to launch the client with that profile.
\nLauncher updates \nLast week we began showing an outdated launcher warning to a small percentage of users whose launcher version is 1.6 or older (prior to Aug 2019). If you are receiving this warning at startup, you should update your launcher to the latest version by redownloading RuneLite from https://runelite.net . You don't need to uninstall your previous launcher, and also your settings will not be reset.
\nThere are also several smaller improvements and bug fixes, including:
\n\nPlayer indicators has an option to disable when outside of PvP \nCamera plugin expand pitch mode now also expands the lower pitch limit \nVarious missing random events were added to the random event plugin \nEntity hider can now hide random events \n1 defence and level 3 combat hiscores have been added to the hiscore plugin \nVolcanic mine ore packs have been added to the loot tracker \nxBR UI scaling now works correctly on M1 Macs \nFarmer's affinity has been added to the timers plugin \nA bug causing timers to turn red too early has been fixed \n \n- Adam
\nNew commits \nWe had 27 contributors this update!
\nAdam (62):\n timers: add Menaphite remedy\n ci: update actions\n client: update protobuf to 3.21.12\n overlay: add widget overlay drag warning\n overlay: remove menuEntryShift\n overlay: use configured hotkey in drag warning\n inv grid: use drag delay from interface\n hooks: release stretched mode image when disabled\n hooks: invalidate volatile g2d when drawing surface is restored\n hooks: remove canvas fill on resize\n clientui: add outdated launcher warning\n api: move worldmap classes into worldmap package\n worldmap: use map icon locations for quest start locations\n worldmap: fix pmd errors\n player indicators: add disable outside pvp option\n api: add camera yaw/pitch target accessors\n camera: change vertical camera name to expand pitch limit\n config: hide tooltips of config items with no description\n random events: reorder config items alphebetically\n random events: add missing random events\n entity hider: add option to hide random events\n skill calc: update ham member thieving xp\n twitch: accept urls for channels\n github: update issue template\n gpu: use ui graphics configuration to get affine transform\n gpu: apply affine transform to aa fbo\n clientui: fix y scale of clientbounds\n config manager: synchronize iteration of properties keySet\n config manager: add logging for settings import\n hiscores: add phantom muspah\n rt config: support boolean values\n hiscore: update pnm icon\n npc util: add exclusion for strange creature\n twitch: decrease ping timeout\n twitch: send USER command\n twitch: fix /t command\n chat: use eventbus for chat input events\n worldmap: fix loading quest start locations\n agility shortcut: add weiss broken fence\n worldmap: fix placement of CIS fairy ring\n session: fix config sync on session close\n config: add config sync event\n loottracker: sync config on configsync\n chat notifications: exclude dialog and mesbox chattypes\n party: throttle status updates in large parties\n client: update to 2023-01-25-c1-rev210\n xtea: cache seen keys on disk\n config panel: harden spinner and dimension parsing\n config panel: revert checkbox boolean parsing\n progressbar: fix divide by 0 with maximumValue 0\n party: don't throttle forceSend messages\n hiscore: use json endpoint\n consistently capitalize plugins on splashscreen action text\n consistently capitalize plugins on splashscreen action text v2\n Revert "timers: Reset var timers when duration increases"\n timers: reset var timers when duration increases\n session manager: fix stopping http server on login\n grandexchange: add fsw to openGeLink\n config: add type constraint to setDefaultConfiguration\n hiscore: add account builds hiscores\n config: add profiles\n client: use both Windows root trust store and bundled trust store\n\nAlex Jurkiewicz (1):\n gpu: add draw distance requires compute shaders (#15939)\n\nAlexsuperfly (1):\n loot tracker: add Volcanic Mine ore pack (#16213)\n\nBo (2):\n worldmap: add ghommal's hilt teleport location (#16138)\n CrypticClie: Update "Anger Abbot Langley" step description (#16143)\n\nBrian (1):\n screenshot plugin: add loot keys\n\nCalvin Kroese (1):\n chat commands: Fix Al Kharid Rooftop expansion (#16229)\n\nEnriath (6):\n loot tracker: add support for frozen caches\n bosstimers: use TemporalUnit instead of ChronoUnit\n bosstimers: fix Scorpia and Sarachnis respawn times\n bosstimers: add test to check that respawn timers are a number of ticks\n interface styles: add HD healthbars for phantom muspah's shield\n timers: use varbit to track remaining overload time\n\nJae Ren (1):\n item charges: Add Tombs of Amascut supplies (#16044)\n\nJason O'Neill (1):\n item stats: add Kovac's grog\n\nJordan Atwood (28):\n achievement diary: Fix runecrafting step requirements\n SkillChallengeClue: Fix Charlie clues update regression\n NpcUtil: Indicate gargoyles are dead during death animation\n api: Improve VarPlayer#POISON javadoc\n timers: Use Duration.of(..., RSTimeUnit.GAME_TICKS)\n slayer: Set streak and points when receiving first task\n item stats: Add Saturated heart\n item stats: Add Forgotten brew\n item stats: Fix Ring of the gods (i) detection\n dev tools: Fix setvarp and setvarb\n timers: Remove imbued heart timer duration\n timers: Update imbued heart timer tooltip\n timers: Fix imbued heart duration test\n item charges: Reset slayer bracelet charges on recharge\n game: Fix Antidote++ item variation mapping test\n game: Fix isDying for Vet'ion, add Calvar'ion\n ItemMapping: Add upgraded wilderness weapons\n world map: Add wilderness rework dungeons\n world map: Fix west Revenant caves location\n world map: Add various dungeon locations\n api: add WorldPoint#toWorldArea()\n loot tracker: add wilderness rework bosses\n boss timers: Wilderness rework boss timers\n timers: Consolidate var-controlled timer tracking\n timers: Track Dragonfire shield cooldown via varbit\n roof removal: Add Monkey Madness II airship platform override\n WeaponType: Add argument length check\n ItemMapping: Add crystal armour variants\n\nKenneth Chung (1):\n GPU: Fix xBR scaling on M1 macs\n\nKyle (1):\n npc indicators: add list format to config description (#16031)\n\nLameGames (1):\n clues: reset panel width before rendering hint\n\nMax Weber (9):\n rl-api: allow replacing the minimap tile drawing method\n Update Quest to 2023-1-11\n Revert ChatBuilder: use clansettings for finding member rank\n loginscreen: do not allow non-number characters into the OTP field\n feed: reduce useless text layouts\n feed: only load feed on demand\n cache: update Model face limit\n ConfigManager: only key rsprofiles off of account hash\n config: use tabs for switching between plugin hub & plugin list panels\n\nMike (1):\n EmoteClue: Allow bowfa for crystal bow clue requirement (#16157)\n\nPaul Norton (3):\n idle notifier: Re-check NPC interaction on transform\n slayer: cancel task on inferno fail\n xptracker: prevent negative values with hide maxed\n\nPeter Forsling (1):\n clue: add climbing boots (g) to emote steps (#16008)\n\nRoelof (1):\n boss timers: Add Phantom Muspah\n\nSirWrain (1):\n timers: add farmer's affinity effect timer\n\nSkretzo (1):\n attack styles: Fix type 28 attack style indices\n\nYvesW (2):\n random events: fix bob and MoM related events\n entity hider: fix frog random event\n\nfioxxu (1):\n agility shortcut: remove requirement for Weiss shortcut\n\niProdigy (1):\n twitch: use login name in place of unrenderable display names\n\nmaxmaximus123456 (1):\n worldmap: fix typo for Skavid Caves\n\ntcoy (1):\n questlist: Update quest list tab index\n\ntesting-ongithub (8):\n timers: Fix antivenom timers expiring too early (#16073)\n timers: Track antifire durations using varbits\n timers: Track divine potion durations using varbits\n timers: Track magic imbue duration using varbit\n timers: Null buffTimer and remedyTimer on shutdown\n timers: Track Arceuus spell durations using varbits\n menu swapper: Remove tags from UI swap feedback message (#16235)\n timers: Reset var timers when duration increases\n\n\u0141ukasz Kli\u015b (1):\n chat commands: add short names for Phantom Muspah\n
\n",image:"/img/blog/1.9.11-Release/profile.png"}}}]);
-//# sourceMappingURL=160.5693c2ef.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[160],{436:function(e,n){e.exports={title:"1.9.11 Release",description:"Profiles",author:"Adam",body:"Profiles \nProfiles have been added to RuneLite, which are separate sets of plugins and settings that can be switched between at any time. There is a new UI in the configuration panel for managing profiles. Profiles are useful for players who want different settings for different accounts, or for different activites.
\nYour existing settings will be migrated into a single profile named default
automatically.
\n
\nIn addition to creating and deleting profiles, the profile panel also allows duplicating (copying an existing profile's settings to a new profile), exporting, and importing profiles.
\nFor advanced users, there is a new --profile
client argument to choose the profile the client uses at startup. By default the client will select the profile it was last using. If you currently use the --config
client argument, import the config file you use into a new profile, and then use --profile name
to launch the client with that profile.
\nLauncher updates \nLast week we began showing an outdated launcher warning to a small percentage of users whose launcher version is 1.6 or older (prior to Aug 2019). If you are receiving this warning at startup, you should update your launcher to the latest version by redownloading RuneLite from https://runelite.net . You don't need to uninstall your previous launcher, and also your settings will not be reset.
\nThere are also several smaller improvements and bug fixes, including:
\n\nPlayer indicators has an option to disable when outside of PvP \nCamera plugin expand pitch mode now also expands the lower pitch limit \nVarious missing random events were added to the random event plugin \nEntity hider can now hide random events \n1 defence and level 3 combat hiscores have been added to the hiscore plugin \nVolcanic mine ore packs have been added to the loot tracker \nxBR UI scaling now works correctly on M1 Macs \nFarmer's affinity has been added to the timers plugin \nA bug causing timers to turn red too early has been fixed \n \n- Adam
\nNew commits \nWe had 27 contributors this update!
\nAdam (62):\n timers: add Menaphite remedy\n ci: update actions\n client: update protobuf to 3.21.12\n overlay: add widget overlay drag warning\n overlay: remove menuEntryShift\n overlay: use configured hotkey in drag warning\n inv grid: use drag delay from interface\n hooks: release stretched mode image when disabled\n hooks: invalidate volatile g2d when drawing surface is restored\n hooks: remove canvas fill on resize\n clientui: add outdated launcher warning\n api: move worldmap classes into worldmap package\n worldmap: use map icon locations for quest start locations\n worldmap: fix pmd errors\n player indicators: add disable outside pvp option\n api: add camera yaw/pitch target accessors\n camera: change vertical camera name to expand pitch limit\n config: hide tooltips of config items with no description\n random events: reorder config items alphebetically\n random events: add missing random events\n entity hider: add option to hide random events\n skill calc: update ham member thieving xp\n twitch: accept urls for channels\n github: update issue template\n gpu: use ui graphics configuration to get affine transform\n gpu: apply affine transform to aa fbo\n clientui: fix y scale of clientbounds\n config manager: synchronize iteration of properties keySet\n config manager: add logging for settings import\n hiscores: add phantom muspah\n rt config: support boolean values\n hiscore: update pnm icon\n npc util: add exclusion for strange creature\n twitch: decrease ping timeout\n twitch: send USER command\n twitch: fix /t command\n chat: use eventbus for chat input events\n worldmap: fix loading quest start locations\n agility shortcut: add weiss broken fence\n worldmap: fix placement of CIS fairy ring\n session: fix config sync on session close\n config: add config sync event\n loottracker: sync config on configsync\n chat notifications: exclude dialog and mesbox chattypes\n party: throttle status updates in large parties\n client: update to 2023-01-25-c1-rev210\n xtea: cache seen keys on disk\n config panel: harden spinner and dimension parsing\n config panel: revert checkbox boolean parsing\n progressbar: fix divide by 0 with maximumValue 0\n party: don't throttle forceSend messages\n hiscore: use json endpoint\n consistently capitalize plugins on splashscreen action text\n consistently capitalize plugins on splashscreen action text v2\n Revert "timers: Reset var timers when duration increases"\n timers: reset var timers when duration increases\n session manager: fix stopping http server on login\n grandexchange: add fsw to openGeLink\n config: add type constraint to setDefaultConfiguration\n hiscore: add account builds hiscores\n config: add profiles\n client: use both Windows root trust store and bundled trust store\n\nAlex Jurkiewicz (1):\n gpu: add draw distance requires compute shaders (#15939)\n\nAlexsuperfly (1):\n loot tracker: add Volcanic Mine ore pack (#16213)\n\nBo (2):\n worldmap: add ghommal's hilt teleport location (#16138)\n CrypticClie: Update "Anger Abbot Langley" step description (#16143)\n\nBrian (1):\n screenshot plugin: add loot keys\n\nCalvin Kroese (1):\n chat commands: Fix Al Kharid Rooftop expansion (#16229)\n\nEnriath (6):\n loot tracker: add support for frozen caches\n bosstimers: use TemporalUnit instead of ChronoUnit\n bosstimers: fix Scorpia and Sarachnis respawn times\n bosstimers: add test to check that respawn timers are a number of ticks\n interface styles: add HD healthbars for phantom muspah's shield\n timers: use varbit to track remaining overload time\n\nJae Ren (1):\n item charges: Add Tombs of Amascut supplies (#16044)\n\nJason O'Neill (1):\n item stats: add Kovac's grog\n\nJordan Atwood (28):\n achievement diary: Fix runecrafting step requirements\n SkillChallengeClue: Fix Charlie clues update regression\n NpcUtil: Indicate gargoyles are dead during death animation\n api: Improve VarPlayer#POISON javadoc\n timers: Use Duration.of(..., RSTimeUnit.GAME_TICKS)\n slayer: Set streak and points when receiving first task\n item stats: Add Saturated heart\n item stats: Add Forgotten brew\n item stats: Fix Ring of the gods (i) detection\n dev tools: Fix setvarp and setvarb\n timers: Remove imbued heart timer duration\n timers: Update imbued heart timer tooltip\n timers: Fix imbued heart duration test\n item charges: Reset slayer bracelet charges on recharge\n game: Fix Antidote++ item variation mapping test\n game: Fix isDying for Vet'ion, add Calvar'ion\n ItemMapping: Add upgraded wilderness weapons\n world map: Add wilderness rework dungeons\n world map: Fix west Revenant caves location\n world map: Add various dungeon locations\n api: add WorldPoint#toWorldArea()\n loot tracker: add wilderness rework bosses\n boss timers: Wilderness rework boss timers\n timers: Consolidate var-controlled timer tracking\n timers: Track Dragonfire shield cooldown via varbit\n roof removal: Add Monkey Madness II airship platform override\n WeaponType: Add argument length check\n ItemMapping: Add crystal armour variants\n\nKenneth Chung (1):\n GPU: Fix xBR scaling on M1 macs\n\nKyle (1):\n npc indicators: add list format to config description (#16031)\n\nLameGames (1):\n clues: reset panel width before rendering hint\n\nMax Weber (9):\n rl-api: allow replacing the minimap tile drawing method\n Update Quest to 2023-1-11\n Revert ChatBuilder: use clansettings for finding member rank\n loginscreen: do not allow non-number characters into the OTP field\n feed: reduce useless text layouts\n feed: only load feed on demand\n cache: update Model face limit\n ConfigManager: only key rsprofiles off of account hash\n config: use tabs for switching between plugin hub & plugin list panels\n\nMike (1):\n EmoteClue: Allow bowfa for crystal bow clue requirement (#16157)\n\nPaul Norton (3):\n idle notifier: Re-check NPC interaction on transform\n slayer: cancel task on inferno fail\n xptracker: prevent negative values with hide maxed\n\nPeter Forsling (1):\n clue: add climbing boots (g) to emote steps (#16008)\n\nRoelof (1):\n boss timers: Add Phantom Muspah\n\nSirWrain (1):\n timers: add farmer's affinity effect timer\n\nSkretzo (1):\n attack styles: Fix type 28 attack style indices\n\nYvesW (2):\n random events: fix bob and MoM related events\n entity hider: fix frog random event\n\nfioxxu (1):\n agility shortcut: remove requirement for Weiss shortcut\n\niProdigy (1):\n twitch: use login name in place of unrenderable display names\n\nmaxmaximus123456 (1):\n worldmap: fix typo for Skavid Caves\n\ntcoy (1):\n questlist: Update quest list tab index\n\ntesting-ongithub (8):\n timers: Fix antivenom timers expiring too early (#16073)\n timers: Track antifire durations using varbits\n timers: Track divine potion durations using varbits\n timers: Track magic imbue duration using varbit\n timers: Null buffTimer and remedyTimer on shutdown\n timers: Track Arceuus spell durations using varbits\n menu swapper: Remove tags from UI swap feedback message (#16235)\n timers: Reset var timers when duration increases\n\n\u0141ukasz Kli\u015b (1):\n chat commands: add short names for Phantom Muspah\n
\n",image:"/img/blog/1.9.11-Release/profile.png"}}}]);
+//# sourceMappingURL=160.b5d7bd92.chunk.js.map
\ No newline at end of file
diff --git a/static/js/160.5693c2ef.chunk.js.map b/static/js/160.b5d7bd92.chunk.js.map
similarity index 99%
rename from static/js/160.5693c2ef.chunk.js.map
rename to static/js/160.b5d7bd92.chunk.js.map
index 812fd1c65..2cb2f9fc2 100644
--- a/static/js/160.5693c2ef.chunk.js.map
+++ b/static/js/160.b5d7bd92.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-02-18-15-00-1.9.11-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,WAAW,OAAS,OAAO,KAAO,whUAA8gU,MAAQ","file":"static/js/160.5693c2ef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.11 Release\",\"description\":\"Profiles\",\"author\":\"Adam\",\"body\":\"Profiles \\nProfiles have been added to RuneLite, which are separate sets of plugins and settings that can be switched between at any time. There is a new UI in the configuration panel for managing profiles. Profiles are useful for players who want different settings for different accounts, or for different activites.
\\nYour existing settings will be migrated into a single profile named default
automatically.
\\n
\\nIn addition to creating and deleting profiles, the profile panel also allows duplicating (copying an existing profile's settings to a new profile), exporting, and importing profiles.
\\nFor advanced users, there is a new --profile
client argument to choose the profile the client uses at startup. By default the client will select the profile it was last using. If you currently use the --config
client argument, import the config file you use into a new profile, and then use --profile name
to launch the client with that profile.
\\nLauncher updates \\nLast week we began showing an outdated launcher warning to a small percentage of users whose launcher version is 1.6 or older (prior to Aug 2019). If you are receiving this warning at startup, you should update your launcher to the latest version by redownloading RuneLite from https://runelite.net . You don't need to uninstall your previous launcher, and also your settings will not be reset.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nPlayer indicators has an option to disable when outside of PvP \\nCamera plugin expand pitch mode now also expands the lower pitch limit \\nVarious missing random events were added to the random event plugin \\nEntity hider can now hide random events \\n1 defence and level 3 combat hiscores have been added to the hiscore plugin \\nVolcanic mine ore packs have been added to the loot tracker \\nxBR UI scaling now works correctly on M1 Macs \\nFarmer's affinity has been added to the timers plugin \\nA bug causing timers to turn red too early has been fixed \\n \\n- Adam
\\nNew commits \\nWe had 27 contributors this update!
\\nAdam (62):\\n timers: add Menaphite remedy\\n ci: update actions\\n client: update protobuf to 3.21.12\\n overlay: add widget overlay drag warning\\n overlay: remove menuEntryShift\\n overlay: use configured hotkey in drag warning\\n inv grid: use drag delay from interface\\n hooks: release stretched mode image when disabled\\n hooks: invalidate volatile g2d when drawing surface is restored\\n hooks: remove canvas fill on resize\\n clientui: add outdated launcher warning\\n api: move worldmap classes into worldmap package\\n worldmap: use map icon locations for quest start locations\\n worldmap: fix pmd errors\\n player indicators: add disable outside pvp option\\n api: add camera yaw/pitch target accessors\\n camera: change vertical camera name to expand pitch limit\\n config: hide tooltips of config items with no description\\n random events: reorder config items alphebetically\\n random events: add missing random events\\n entity hider: add option to hide random events\\n skill calc: update ham member thieving xp\\n twitch: accept urls for channels\\n github: update issue template\\n gpu: use ui graphics configuration to get affine transform\\n gpu: apply affine transform to aa fbo\\n clientui: fix y scale of clientbounds\\n config manager: synchronize iteration of properties keySet\\n config manager: add logging for settings import\\n hiscores: add phantom muspah\\n rt config: support boolean values\\n hiscore: update pnm icon\\n npc util: add exclusion for strange creature\\n twitch: decrease ping timeout\\n twitch: send USER command\\n twitch: fix /t command\\n chat: use eventbus for chat input events\\n worldmap: fix loading quest start locations\\n agility shortcut: add weiss broken fence\\n worldmap: fix placement of CIS fairy ring\\n session: fix config sync on session close\\n config: add config sync event\\n loottracker: sync config on configsync\\n chat notifications: exclude dialog and mesbox chattypes\\n party: throttle status updates in large parties\\n client: update to 2023-01-25-c1-rev210\\n xtea: cache seen keys on disk\\n config panel: harden spinner and dimension parsing\\n config panel: revert checkbox boolean parsing\\n progressbar: fix divide by 0 with maximumValue 0\\n party: don't throttle forceSend messages\\n hiscore: use json endpoint\\n consistently capitalize plugins on splashscreen action text\\n consistently capitalize plugins on splashscreen action text v2\\n Revert "timers: Reset var timers when duration increases"\\n timers: reset var timers when duration increases\\n session manager: fix stopping http server on login\\n grandexchange: add fsw to openGeLink\\n config: add type constraint to setDefaultConfiguration\\n hiscore: add account builds hiscores\\n config: add profiles\\n client: use both Windows root trust store and bundled trust store\\n\\nAlex Jurkiewicz (1):\\n gpu: add draw distance requires compute shaders (#15939)\\n\\nAlexsuperfly (1):\\n loot tracker: add Volcanic Mine ore pack (#16213)\\n\\nBo (2):\\n worldmap: add ghommal's hilt teleport location (#16138)\\n CrypticClie: Update "Anger Abbot Langley" step description (#16143)\\n\\nBrian (1):\\n screenshot plugin: add loot keys\\n\\nCalvin Kroese (1):\\n chat commands: Fix Al Kharid Rooftop expansion (#16229)\\n\\nEnriath (6):\\n loot tracker: add support for frozen caches\\n bosstimers: use TemporalUnit instead of ChronoUnit\\n bosstimers: fix Scorpia and Sarachnis respawn times\\n bosstimers: add test to check that respawn timers are a number of ticks\\n interface styles: add HD healthbars for phantom muspah's shield\\n timers: use varbit to track remaining overload time\\n\\nJae Ren (1):\\n item charges: Add Tombs of Amascut supplies (#16044)\\n\\nJason O'Neill (1):\\n item stats: add Kovac's grog\\n\\nJordan Atwood (28):\\n achievement diary: Fix runecrafting step requirements\\n SkillChallengeClue: Fix Charlie clues update regression\\n NpcUtil: Indicate gargoyles are dead during death animation\\n api: Improve VarPlayer#POISON javadoc\\n timers: Use Duration.of(..., RSTimeUnit.GAME_TICKS)\\n slayer: Set streak and points when receiving first task\\n item stats: Add Saturated heart\\n item stats: Add Forgotten brew\\n item stats: Fix Ring of the gods (i) detection\\n dev tools: Fix setvarp and setvarb\\n timers: Remove imbued heart timer duration\\n timers: Update imbued heart timer tooltip\\n timers: Fix imbued heart duration test\\n item charges: Reset slayer bracelet charges on recharge\\n game: Fix Antidote++ item variation mapping test\\n game: Fix isDying for Vet'ion, add Calvar'ion\\n ItemMapping: Add upgraded wilderness weapons\\n world map: Add wilderness rework dungeons\\n world map: Fix west Revenant caves location\\n world map: Add various dungeon locations\\n api: add WorldPoint#toWorldArea()\\n loot tracker: add wilderness rework bosses\\n boss timers: Wilderness rework boss timers\\n timers: Consolidate var-controlled timer tracking\\n timers: Track Dragonfire shield cooldown via varbit\\n roof removal: Add Monkey Madness II airship platform override\\n WeaponType: Add argument length check\\n ItemMapping: Add crystal armour variants\\n\\nKenneth Chung (1):\\n GPU: Fix xBR scaling on M1 macs\\n\\nKyle (1):\\n npc indicators: add list format to config description (#16031)\\n\\nLameGames (1):\\n clues: reset panel width before rendering hint\\n\\nMax Weber (9):\\n rl-api: allow replacing the minimap tile drawing method\\n Update Quest to 2023-1-11\\n Revert ChatBuilder: use clansettings for finding member rank\\n loginscreen: do not allow non-number characters into the OTP field\\n feed: reduce useless text layouts\\n feed: only load feed on demand\\n cache: update Model face limit\\n ConfigManager: only key rsprofiles off of account hash\\n config: use tabs for switching between plugin hub & plugin list panels\\n\\nMike (1):\\n EmoteClue: Allow bowfa for crystal bow clue requirement (#16157)\\n\\nPaul Norton (3):\\n idle notifier: Re-check NPC interaction on transform\\n slayer: cancel task on inferno fail\\n xptracker: prevent negative values with hide maxed\\n\\nPeter Forsling (1):\\n clue: add climbing boots (g) to emote steps (#16008)\\n\\nRoelof (1):\\n boss timers: Add Phantom Muspah\\n\\nSirWrain (1):\\n timers: add farmer's affinity effect timer\\n\\nSkretzo (1):\\n attack styles: Fix type 28 attack style indices\\n\\nYvesW (2):\\n random events: fix bob and MoM related events\\n entity hider: fix frog random event\\n\\nfioxxu (1):\\n agility shortcut: remove requirement for Weiss shortcut\\n\\niProdigy (1):\\n twitch: use login name in place of unrenderable display names\\n\\nmaxmaximus123456 (1):\\n worldmap: fix typo for Skavid Caves\\n\\ntcoy (1):\\n questlist: Update quest list tab index\\n\\ntesting-ongithub (8):\\n timers: Fix antivenom timers expiring too early (#16073)\\n timers: Track antifire durations using varbits\\n timers: Track divine potion durations using varbits\\n timers: Track magic imbue duration using varbit\\n timers: Null buffTimer and remedyTimer on shutdown\\n timers: Track Arceuus spell durations using varbits\\n menu swapper: Remove tags from UI swap feedback message (#16235)\\n timers: Reset var timers when duration increases\\n\\nŁukasz Kliś (1):\\n chat commands: add short names for Phantom Muspah\\n
\\n\",\"image\":\"/img/blog/1.9.11-Release/profile.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-02-18-15-00-1.9.11-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,WAAW,OAAS,OAAO,KAAO,whUAA8gU,MAAQ","file":"static/js/160.b5d7bd92.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.11 Release\",\"description\":\"Profiles\",\"author\":\"Adam\",\"body\":\"Profiles \\nProfiles have been added to RuneLite, which are separate sets of plugins and settings that can be switched between at any time. There is a new UI in the configuration panel for managing profiles. Profiles are useful for players who want different settings for different accounts, or for different activites.
\\nYour existing settings will be migrated into a single profile named default
automatically.
\\n
\\nIn addition to creating and deleting profiles, the profile panel also allows duplicating (copying an existing profile's settings to a new profile), exporting, and importing profiles.
\\nFor advanced users, there is a new --profile
client argument to choose the profile the client uses at startup. By default the client will select the profile it was last using. If you currently use the --config
client argument, import the config file you use into a new profile, and then use --profile name
to launch the client with that profile.
\\nLauncher updates \\nLast week we began showing an outdated launcher warning to a small percentage of users whose launcher version is 1.6 or older (prior to Aug 2019). If you are receiving this warning at startup, you should update your launcher to the latest version by redownloading RuneLite from https://runelite.net . You don't need to uninstall your previous launcher, and also your settings will not be reset.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nPlayer indicators has an option to disable when outside of PvP \\nCamera plugin expand pitch mode now also expands the lower pitch limit \\nVarious missing random events were added to the random event plugin \\nEntity hider can now hide random events \\n1 defence and level 3 combat hiscores have been added to the hiscore plugin \\nVolcanic mine ore packs have been added to the loot tracker \\nxBR UI scaling now works correctly on M1 Macs \\nFarmer's affinity has been added to the timers plugin \\nA bug causing timers to turn red too early has been fixed \\n \\n- Adam
\\nNew commits \\nWe had 27 contributors this update!
\\nAdam (62):\\n timers: add Menaphite remedy\\n ci: update actions\\n client: update protobuf to 3.21.12\\n overlay: add widget overlay drag warning\\n overlay: remove menuEntryShift\\n overlay: use configured hotkey in drag warning\\n inv grid: use drag delay from interface\\n hooks: release stretched mode image when disabled\\n hooks: invalidate volatile g2d when drawing surface is restored\\n hooks: remove canvas fill on resize\\n clientui: add outdated launcher warning\\n api: move worldmap classes into worldmap package\\n worldmap: use map icon locations for quest start locations\\n worldmap: fix pmd errors\\n player indicators: add disable outside pvp option\\n api: add camera yaw/pitch target accessors\\n camera: change vertical camera name to expand pitch limit\\n config: hide tooltips of config items with no description\\n random events: reorder config items alphebetically\\n random events: add missing random events\\n entity hider: add option to hide random events\\n skill calc: update ham member thieving xp\\n twitch: accept urls for channels\\n github: update issue template\\n gpu: use ui graphics configuration to get affine transform\\n gpu: apply affine transform to aa fbo\\n clientui: fix y scale of clientbounds\\n config manager: synchronize iteration of properties keySet\\n config manager: add logging for settings import\\n hiscores: add phantom muspah\\n rt config: support boolean values\\n hiscore: update pnm icon\\n npc util: add exclusion for strange creature\\n twitch: decrease ping timeout\\n twitch: send USER command\\n twitch: fix /t command\\n chat: use eventbus for chat input events\\n worldmap: fix loading quest start locations\\n agility shortcut: add weiss broken fence\\n worldmap: fix placement of CIS fairy ring\\n session: fix config sync on session close\\n config: add config sync event\\n loottracker: sync config on configsync\\n chat notifications: exclude dialog and mesbox chattypes\\n party: throttle status updates in large parties\\n client: update to 2023-01-25-c1-rev210\\n xtea: cache seen keys on disk\\n config panel: harden spinner and dimension parsing\\n config panel: revert checkbox boolean parsing\\n progressbar: fix divide by 0 with maximumValue 0\\n party: don't throttle forceSend messages\\n hiscore: use json endpoint\\n consistently capitalize plugins on splashscreen action text\\n consistently capitalize plugins on splashscreen action text v2\\n Revert "timers: Reset var timers when duration increases"\\n timers: reset var timers when duration increases\\n session manager: fix stopping http server on login\\n grandexchange: add fsw to openGeLink\\n config: add type constraint to setDefaultConfiguration\\n hiscore: add account builds hiscores\\n config: add profiles\\n client: use both Windows root trust store and bundled trust store\\n\\nAlex Jurkiewicz (1):\\n gpu: add draw distance requires compute shaders (#15939)\\n\\nAlexsuperfly (1):\\n loot tracker: add Volcanic Mine ore pack (#16213)\\n\\nBo (2):\\n worldmap: add ghommal's hilt teleport location (#16138)\\n CrypticClie: Update "Anger Abbot Langley" step description (#16143)\\n\\nBrian (1):\\n screenshot plugin: add loot keys\\n\\nCalvin Kroese (1):\\n chat commands: Fix Al Kharid Rooftop expansion (#16229)\\n\\nEnriath (6):\\n loot tracker: add support for frozen caches\\n bosstimers: use TemporalUnit instead of ChronoUnit\\n bosstimers: fix Scorpia and Sarachnis respawn times\\n bosstimers: add test to check that respawn timers are a number of ticks\\n interface styles: add HD healthbars for phantom muspah's shield\\n timers: use varbit to track remaining overload time\\n\\nJae Ren (1):\\n item charges: Add Tombs of Amascut supplies (#16044)\\n\\nJason O'Neill (1):\\n item stats: add Kovac's grog\\n\\nJordan Atwood (28):\\n achievement diary: Fix runecrafting step requirements\\n SkillChallengeClue: Fix Charlie clues update regression\\n NpcUtil: Indicate gargoyles are dead during death animation\\n api: Improve VarPlayer#POISON javadoc\\n timers: Use Duration.of(..., RSTimeUnit.GAME_TICKS)\\n slayer: Set streak and points when receiving first task\\n item stats: Add Saturated heart\\n item stats: Add Forgotten brew\\n item stats: Fix Ring of the gods (i) detection\\n dev tools: Fix setvarp and setvarb\\n timers: Remove imbued heart timer duration\\n timers: Update imbued heart timer tooltip\\n timers: Fix imbued heart duration test\\n item charges: Reset slayer bracelet charges on recharge\\n game: Fix Antidote++ item variation mapping test\\n game: Fix isDying for Vet'ion, add Calvar'ion\\n ItemMapping: Add upgraded wilderness weapons\\n world map: Add wilderness rework dungeons\\n world map: Fix west Revenant caves location\\n world map: Add various dungeon locations\\n api: add WorldPoint#toWorldArea()\\n loot tracker: add wilderness rework bosses\\n boss timers: Wilderness rework boss timers\\n timers: Consolidate var-controlled timer tracking\\n timers: Track Dragonfire shield cooldown via varbit\\n roof removal: Add Monkey Madness II airship platform override\\n WeaponType: Add argument length check\\n ItemMapping: Add crystal armour variants\\n\\nKenneth Chung (1):\\n GPU: Fix xBR scaling on M1 macs\\n\\nKyle (1):\\n npc indicators: add list format to config description (#16031)\\n\\nLameGames (1):\\n clues: reset panel width before rendering hint\\n\\nMax Weber (9):\\n rl-api: allow replacing the minimap tile drawing method\\n Update Quest to 2023-1-11\\n Revert ChatBuilder: use clansettings for finding member rank\\n loginscreen: do not allow non-number characters into the OTP field\\n feed: reduce useless text layouts\\n feed: only load feed on demand\\n cache: update Model face limit\\n ConfigManager: only key rsprofiles off of account hash\\n config: use tabs for switching between plugin hub & plugin list panels\\n\\nMike (1):\\n EmoteClue: Allow bowfa for crystal bow clue requirement (#16157)\\n\\nPaul Norton (3):\\n idle notifier: Re-check NPC interaction on transform\\n slayer: cancel task on inferno fail\\n xptracker: prevent negative values with hide maxed\\n\\nPeter Forsling (1):\\n clue: add climbing boots (g) to emote steps (#16008)\\n\\nRoelof (1):\\n boss timers: Add Phantom Muspah\\n\\nSirWrain (1):\\n timers: add farmer's affinity effect timer\\n\\nSkretzo (1):\\n attack styles: Fix type 28 attack style indices\\n\\nYvesW (2):\\n random events: fix bob and MoM related events\\n entity hider: fix frog random event\\n\\nfioxxu (1):\\n agility shortcut: remove requirement for Weiss shortcut\\n\\niProdigy (1):\\n twitch: use login name in place of unrenderable display names\\n\\nmaxmaximus123456 (1):\\n worldmap: fix typo for Skavid Caves\\n\\ntcoy (1):\\n questlist: Update quest list tab index\\n\\ntesting-ongithub (8):\\n timers: Fix antivenom timers expiring too early (#16073)\\n timers: Track antifire durations using varbits\\n timers: Track divine potion durations using varbits\\n timers: Track magic imbue duration using varbit\\n timers: Null buffTimer and remedyTimer on shutdown\\n timers: Track Arceuus spell durations using varbits\\n menu swapper: Remove tags from UI swap feedback message (#16235)\\n timers: Reset var timers when duration increases\\n\\nŁukasz Kliś (1):\\n chat commands: add short names for Phantom Muspah\\n
\\n\",\"image\":\"/img/blog/1.9.11-Release/profile.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/161.48aa5a66.chunk.js b/static/js/161.294750d3.chunk.js
similarity index 98%
rename from static/js/161.48aa5a66.chunk.js
rename to static/js/161.294750d3.chunk.js
index f91a65b1c..e8275a622 100644
--- a/static/js/161.48aa5a66.chunk.js
+++ b/static/js/161.294750d3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[161],{436:function(e,n){e.exports={title:"1.10.0 Release",description:"Map loading improvements",author:"Adam",body:"Map loading improvements \nThe short Loading - please wait
freeze which happens when a new map is loaded (also sometimes referred to as crossing "loading lines") has been greatly reduced, and in many cases, completely removed. This allows for a much smoother game play experience, and is most noticible in content like the Gauntlet and Chambers of Xeric which have multiple map loads. We've also fixed projectiles so they no longer disappear when loading a new map.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: maploading\n
\nJagex Account PSA \nWith Jagex recently pushing people towords using the new Jagex Account system, we've seen many people lock themselves out of their accounts by migrating their account without fully understanding the consequences. This occurs most prominently to users whose computers can not run the Jagex Launcher. Please do not migrate your accounts without first verifying that the Jagex Launcher works on all of the computers you play on.
\nJagex Accounts are still in beta, and so it is expected there will be some teething problems. If your computer does not support the Jagex launcher we highly recommend not migrating your account yet as you will be unable to play on RuneLite.
\nThere are also several smaller improvements and bug fixes, including:
\n\nMulti kills on abyssal demons on task are now correctly counted \nMirror shield's "mirror" effect now renders correctly on GPU \nWalk here
can now be swapped on a per-object basis, similar to NPCs \nProfiles can now be reordered via drag and drop in the profile list \nFix the ring of forging tracker being off by 1 \nThe GE plugin can now notify you when an offer is fully complete, instead of on each update \n \n- Adam
\nNew commits \nWe had 28 contributors this update!
\nAdam (94):\n runelite: fix npe from --insecure-skip-tls-verificiation\n external plugins: reload plugin list on profile change\n ground markers: reload points on profile change\n profile panel: info level log more profile operations\n config: null check fetched profiles\n profile panel: remember expanded state between rebuilds\n profile panel: require profile names to be valid file names\n config manager: distribute initial config sync delay\n drag and drop panel: add drag listener\n drag and drop panel: fix components of varying size\n profile panel: support reordering\n player indicators: add per-setting pvp option\n config manager: handle exceptions from scheduled sendConfig task\n grand exchange: save trades to rsprofile config\n slayer: remove profile migration\n player indicators: fix test for highlight own player\n slayer: use vars for task tracking\n slayer: use task location enum for location verification\n slayer: fix !task location checking\n run energy: fix parsing roe with 1000 charges\n slayer: fix test\n feed: fix npe on shutdown\n config: mark lost remote profile as not synced\n chatfilter: fix cme from rebuilding patterns\n cache: remove various savers\n cache: refactor item renderer\n cache: fix texture projection on models without tex coords\n clientui: add java8 brownout\n api: add tex triangles to Model\n item charges: fix setting rsprofile config before login\n gpu: move uv calculation to gpu\n api: add Actor isInteracting\n containable frame: log insets in getWindowAreaBounds()\n api: update 212\n api: replace varp enum with ints\n api: remove model uvs\n devtools: add wear/tex commands\n gpu: fix vanilla uvs with a depth offset\n ping: move unknown host exception log to debug\n slayer: display infobox on task check\n external plugins: fix refresh race with plugin manager\n external plugins: remove unused session event handlers\n client: cache update 3-15-2023\n ground markers: cap fill opacity at 255\n ground items: Fix Kalphite Queen instance despawn times (#16382)\n config manager: reset lost profile active flag\n config manager: log profiles at startup\n config manager: use inactive profile if no profile is active\n config manager: avoid removing active profile on logout\n runelite: remove --config argument\n camera plugin: remove preserve yaw\n gpu: fix min10 initializer\n overlay manager: remove plugin changed hook\n api: remove WorldArea calculateNextTravellingPoint\n logback: include timezone in date pattern\n gpu: don't double offset of tile models\n gpu: fix a few comments\n gpu: remove unused vb clear\n gpu: use a separate vao for compute and temp buffers\n gpu: fix initialization of uniform block index\n gpu: allow quoting filenames in #include\n gpu: add clang-format config\n gpu: clang-format shaders\n gpu: fix derotating jau computation for uvs\n gpu: fix derotating jau on cpu too\n hiscore panel: repaint entire panel on lookup\n screenshot: fix screenshots with j2d scaling\n clientui: fix applying client bounds with j2d scaling\n screen markers: reload markers on profile change\n infobox manager: rebuild infoboxes on profile change\n slayer: remove twisted league tasks\n slayer: fix detecting Check on worn items\n gpu: fix amd miscompile of frag.glsl\n cache: update uv calculation code\n gpu: move uv calculation to geometry shader\n gpu: simplify face sorting comparison\n gpu: check aa framebuffer status\n hiscore: add wilderness bosses\n screenshot: fix scaling on macos\n clientui: keep size when resetting client position\n api: update 213\n api: add frame cycle to actorspotanim and dynamicobject\n external plugins: change support link to plugin hub readme\n cache: rename ambient sound fields\n menu swapper: use submenus for object swaps\n menu swapper: add object walk here swap\n screenshot: remove points from combat achievement file names\n screenshot: remove points from notification popup too\n devtools: add loading lines tool\n gpu: use power of 2 for gl buffer sizes\n gpu: name gl buffers\n gpu: invalidate buffer data before updating\n ge: add notify on offer complete\n api: add scene loading callbacks\n\nAlberto Pluecker (2):\n slayer: Add Phantom Muspah to task list (#16414)\n slayer: Add Forgotten Soul as an alternative for Ghosts task (#16427)\n\nArnaud Peralta (1):\n roof removal: Add Camelot Castle override\n\nBasil Mahmood (1):\n clues: Identify Eastfloor spade as a valid spade (#16464)\n\nBob Heine (1):\n item stats: Fix Choc-ice healing amount (#16545)\n\nFilip \xc5sberg (2):\n clues: Include all combat bracelet variants (#16520)\n mining: update mlm ore-vein respawn times\n\nFiori (1):\n roof removal: add Uzer Oasis override (#16355)\n\nIlkka Kallioniemi (1):\n plugins: Fix Ectofuntus spelling (#16393)\n\nInfernoStats (1):\n timers: fix liquid adrenaline timer being removed on death\n\nJZomDev (2):\n profile panel: default file chooser directory to RUNELITE_DIR\n cannon: Improve Meiyerditch Laboratories bloodveld spot (#16455)\n\nJordan (1):\n fishing: add Camdozaal fishing spots\n\nJordan Atwood (10):\n item stats: Fix capped stat boosts when starting from overheal\n ground items: Update KBD instance despawn time\n feed: Remove unused @Slf4j annotation and import\n loot tracker: Fix toa loot value config check\n roof removal: Add Karuulm Slayer Dungeon overrides\n timers: Add Heal Group cooldown timer\n client: Log loaded local rtconf contents\n game: Fix isDying for Runite golems\n game: Add isDying override for Agrith Naar\n game: Fix comment spelling\n\nLootBagger (1):\n skill calc: Add true blood altar runecrafting (#16259)\n\nMacweese (1):\n slayer: match task names to enum\n\nMax Weber (14):\n config: register panels to the eventbus correctly\n client: specify utf8 encoding\n rl-api: expose DBRowConfig\n rl-api: fix DBTableID runtime exclusion\n widgetid: remove unused widgets\n ConfigManager: don't rely on HashSet ordering when picking rsprofiles\n ConfigManager: merge imported rsprofile keys\n config: document RSProfileType ordinal stability\n config: merge imported profiles correctly\n client/ItemMapping: update to 2023-4-12\n rl-client: add --insecure-write-credentials\n MaterialTabGroup: do not select tabs that are already selected\n wiki: do not trip asserts for despawned npcs\n music: update for 2023-5-10 game update\n\nMorgan Lewis (1):\n api: Fix SpriteIDs from April 2023 updates (#16519)\n\nMustafa (1):\n ItemMapping: Add Venator bow (#16394)\n\nNewbcake (1):\n worldmap: fix typo for Skeletal Tombs (#16546)\n\nPaul Norton (2):\n cluescrolls: wildy boss update clue descriptions\n kourendlibrary: reset state on new gamemessage\n\nPkZ (1):\n slayer: Add Revenants as an alternative for Ghosts task (#16436)\n\nSevenEightFour (1):\n skill calculator: Fix Slimy Eel experience (#16536)\n\nSirGirion (1):\n woodcutting: Add farming guild redwood tree (#16505)\n\nVelite12 (1):\n idle notifier: Add Imcando hammer infernal eel crushing animation (#16350)\n\nYvesW (1):\n drag and drop panel: fix typo (#16314)\n\nZoinkwiz (1):\n outline renderer: add RuneliteObject support\n\ngeheur (3):\n overlay manager: reload overlay config on profile change\n item manager: Add quest speedrunning graceful to worn items map (#16404)\n item charges: Add Forgotten brew (#16526)\n\nolligobber (1):\n item charges: Fix Ring of forging breaking being off by one (#16500)\n\ntesting-ongithub (2):\n timers: Switch back to message-based detection for thrall creation timer\n timers: Don't create shadow veil / liquid adrenaline timers with varbits\n
\n"}}}]);
-//# sourceMappingURL=161.48aa5a66.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[161],{437:function(e,n){e.exports={title:"1.10.0 Release",description:"Map loading improvements",author:"Adam",body:"Map loading improvements \nThe short Loading - please wait
freeze which happens when a new map is loaded (also sometimes referred to as crossing "loading lines") has been greatly reduced, and in many cases, completely removed. This allows for a much smoother game play experience, and is most noticible in content like the Gauntlet and Chambers of Xeric which have multiple map loads. We've also fixed projectiles so they no longer disappear when loading a new map.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: maploading\n
\nJagex Account PSA \nWith Jagex recently pushing people towords using the new Jagex Account system, we've seen many people lock themselves out of their accounts by migrating their account without fully understanding the consequences. This occurs most prominently to users whose computers can not run the Jagex Launcher. Please do not migrate your accounts without first verifying that the Jagex Launcher works on all of the computers you play on.
\nJagex Accounts are still in beta, and so it is expected there will be some teething problems. If your computer does not support the Jagex launcher we highly recommend not migrating your account yet as you will be unable to play on RuneLite.
\nThere are also several smaller improvements and bug fixes, including:
\n\nMulti kills on abyssal demons on task are now correctly counted \nMirror shield's "mirror" effect now renders correctly on GPU \nWalk here
can now be swapped on a per-object basis, similar to NPCs \nProfiles can now be reordered via drag and drop in the profile list \nFix the ring of forging tracker being off by 1 \nThe GE plugin can now notify you when an offer is fully complete, instead of on each update \n \n- Adam
\nNew commits \nWe had 28 contributors this update!
\nAdam (94):\n runelite: fix npe from --insecure-skip-tls-verificiation\n external plugins: reload plugin list on profile change\n ground markers: reload points on profile change\n profile panel: info level log more profile operations\n config: null check fetched profiles\n profile panel: remember expanded state between rebuilds\n profile panel: require profile names to be valid file names\n config manager: distribute initial config sync delay\n drag and drop panel: add drag listener\n drag and drop panel: fix components of varying size\n profile panel: support reordering\n player indicators: add per-setting pvp option\n config manager: handle exceptions from scheduled sendConfig task\n grand exchange: save trades to rsprofile config\n slayer: remove profile migration\n player indicators: fix test for highlight own player\n slayer: use vars for task tracking\n slayer: use task location enum for location verification\n slayer: fix !task location checking\n run energy: fix parsing roe with 1000 charges\n slayer: fix test\n feed: fix npe on shutdown\n config: mark lost remote profile as not synced\n chatfilter: fix cme from rebuilding patterns\n cache: remove various savers\n cache: refactor item renderer\n cache: fix texture projection on models without tex coords\n clientui: add java8 brownout\n api: add tex triangles to Model\n item charges: fix setting rsprofile config before login\n gpu: move uv calculation to gpu\n api: add Actor isInteracting\n containable frame: log insets in getWindowAreaBounds()\n api: update 212\n api: replace varp enum with ints\n api: remove model uvs\n devtools: add wear/tex commands\n gpu: fix vanilla uvs with a depth offset\n ping: move unknown host exception log to debug\n slayer: display infobox on task check\n external plugins: fix refresh race with plugin manager\n external plugins: remove unused session event handlers\n client: cache update 3-15-2023\n ground markers: cap fill opacity at 255\n ground items: Fix Kalphite Queen instance despawn times (#16382)\n config manager: reset lost profile active flag\n config manager: log profiles at startup\n config manager: use inactive profile if no profile is active\n config manager: avoid removing active profile on logout\n runelite: remove --config argument\n camera plugin: remove preserve yaw\n gpu: fix min10 initializer\n overlay manager: remove plugin changed hook\n api: remove WorldArea calculateNextTravellingPoint\n logback: include timezone in date pattern\n gpu: don't double offset of tile models\n gpu: fix a few comments\n gpu: remove unused vb clear\n gpu: use a separate vao for compute and temp buffers\n gpu: fix initialization of uniform block index\n gpu: allow quoting filenames in #include\n gpu: add clang-format config\n gpu: clang-format shaders\n gpu: fix derotating jau computation for uvs\n gpu: fix derotating jau on cpu too\n hiscore panel: repaint entire panel on lookup\n screenshot: fix screenshots with j2d scaling\n clientui: fix applying client bounds with j2d scaling\n screen markers: reload markers on profile change\n infobox manager: rebuild infoboxes on profile change\n slayer: remove twisted league tasks\n slayer: fix detecting Check on worn items\n gpu: fix amd miscompile of frag.glsl\n cache: update uv calculation code\n gpu: move uv calculation to geometry shader\n gpu: simplify face sorting comparison\n gpu: check aa framebuffer status\n hiscore: add wilderness bosses\n screenshot: fix scaling on macos\n clientui: keep size when resetting client position\n api: update 213\n api: add frame cycle to actorspotanim and dynamicobject\n external plugins: change support link to plugin hub readme\n cache: rename ambient sound fields\n menu swapper: use submenus for object swaps\n menu swapper: add object walk here swap\n screenshot: remove points from combat achievement file names\n screenshot: remove points from notification popup too\n devtools: add loading lines tool\n gpu: use power of 2 for gl buffer sizes\n gpu: name gl buffers\n gpu: invalidate buffer data before updating\n ge: add notify on offer complete\n api: add scene loading callbacks\n\nAlberto Pluecker (2):\n slayer: Add Phantom Muspah to task list (#16414)\n slayer: Add Forgotten Soul as an alternative for Ghosts task (#16427)\n\nArnaud Peralta (1):\n roof removal: Add Camelot Castle override\n\nBasil Mahmood (1):\n clues: Identify Eastfloor spade as a valid spade (#16464)\n\nBob Heine (1):\n item stats: Fix Choc-ice healing amount (#16545)\n\nFilip \xc5sberg (2):\n clues: Include all combat bracelet variants (#16520)\n mining: update mlm ore-vein respawn times\n\nFiori (1):\n roof removal: add Uzer Oasis override (#16355)\n\nIlkka Kallioniemi (1):\n plugins: Fix Ectofuntus spelling (#16393)\n\nInfernoStats (1):\n timers: fix liquid adrenaline timer being removed on death\n\nJZomDev (2):\n profile panel: default file chooser directory to RUNELITE_DIR\n cannon: Improve Meiyerditch Laboratories bloodveld spot (#16455)\n\nJordan (1):\n fishing: add Camdozaal fishing spots\n\nJordan Atwood (10):\n item stats: Fix capped stat boosts when starting from overheal\n ground items: Update KBD instance despawn time\n feed: Remove unused @Slf4j annotation and import\n loot tracker: Fix toa loot value config check\n roof removal: Add Karuulm Slayer Dungeon overrides\n timers: Add Heal Group cooldown timer\n client: Log loaded local rtconf contents\n game: Fix isDying for Runite golems\n game: Add isDying override for Agrith Naar\n game: Fix comment spelling\n\nLootBagger (1):\n skill calc: Add true blood altar runecrafting (#16259)\n\nMacweese (1):\n slayer: match task names to enum\n\nMax Weber (14):\n config: register panels to the eventbus correctly\n client: specify utf8 encoding\n rl-api: expose DBRowConfig\n rl-api: fix DBTableID runtime exclusion\n widgetid: remove unused widgets\n ConfigManager: don't rely on HashSet ordering when picking rsprofiles\n ConfigManager: merge imported rsprofile keys\n config: document RSProfileType ordinal stability\n config: merge imported profiles correctly\n client/ItemMapping: update to 2023-4-12\n rl-client: add --insecure-write-credentials\n MaterialTabGroup: do not select tabs that are already selected\n wiki: do not trip asserts for despawned npcs\n music: update for 2023-5-10 game update\n\nMorgan Lewis (1):\n api: Fix SpriteIDs from April 2023 updates (#16519)\n\nMustafa (1):\n ItemMapping: Add Venator bow (#16394)\n\nNewbcake (1):\n worldmap: fix typo for Skeletal Tombs (#16546)\n\nPaul Norton (2):\n cluescrolls: wildy boss update clue descriptions\n kourendlibrary: reset state on new gamemessage\n\nPkZ (1):\n slayer: Add Revenants as an alternative for Ghosts task (#16436)\n\nSevenEightFour (1):\n skill calculator: Fix Slimy Eel experience (#16536)\n\nSirGirion (1):\n woodcutting: Add farming guild redwood tree (#16505)\n\nVelite12 (1):\n idle notifier: Add Imcando hammer infernal eel crushing animation (#16350)\n\nYvesW (1):\n drag and drop panel: fix typo (#16314)\n\nZoinkwiz (1):\n outline renderer: add RuneliteObject support\n\ngeheur (3):\n overlay manager: reload overlay config on profile change\n item manager: Add quest speedrunning graceful to worn items map (#16404)\n item charges: Add Forgotten brew (#16526)\n\nolligobber (1):\n item charges: Fix Ring of forging breaking being off by one (#16500)\n\ntesting-ongithub (2):\n timers: Switch back to message-based detection for thrall creation timer\n timers: Don't create shadow veil / liquid adrenaline timers with varbits\n
\n"}}}]);
+//# sourceMappingURL=161.294750d3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/161.48aa5a66.chunk.js.map b/static/js/161.294750d3.chunk.js.map
similarity index 99%
rename from static/js/161.48aa5a66.chunk.js.map
rename to static/js/161.294750d3.chunk.js.map
index 05da85021..7ab2cf29b 100644
--- a/static/js/161.48aa5a66.chunk.js.map
+++ b/static/js/161.294750d3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-05-13-15-00-1.10.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2BAA2B,OAAS,OAAO,KAAO","file":"static/js/161.48aa5a66.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.0 Release\",\"description\":\"Map loading improvements\",\"author\":\"Adam\",\"body\":\"Map loading improvements \\nThe short Loading - please wait
freeze which happens when a new map is loaded (also sometimes referred to as crossing "loading lines") has been greatly reduced, and in many cases, completely removed. This allows for a much smoother game play experience, and is most noticible in content like the Gauntlet and Chambers of Xeric which have multiple map loads. We've also fixed projectiles so they no longer disappear when loading a new map.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: maploading\\n
\\nJagex Account PSA \\nWith Jagex recently pushing people towords using the new Jagex Account system, we've seen many people lock themselves out of their accounts by migrating their account without fully understanding the consequences. This occurs most prominently to users whose computers can not run the Jagex Launcher. Please do not migrate your accounts without first verifying that the Jagex Launcher works on all of the computers you play on.
\\nJagex Accounts are still in beta, and so it is expected there will be some teething problems. If your computer does not support the Jagex launcher we highly recommend not migrating your account yet as you will be unable to play on RuneLite.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nMulti kills on abyssal demons on task are now correctly counted \\nMirror shield's "mirror" effect now renders correctly on GPU \\nWalk here
can now be swapped on a per-object basis, similar to NPCs \\nProfiles can now be reordered via drag and drop in the profile list \\nFix the ring of forging tracker being off by 1 \\nThe GE plugin can now notify you when an offer is fully complete, instead of on each update \\n \\n- Adam
\\nNew commits \\nWe had 28 contributors this update!
\\nAdam (94):\\n runelite: fix npe from --insecure-skip-tls-verificiation\\n external plugins: reload plugin list on profile change\\n ground markers: reload points on profile change\\n profile panel: info level log more profile operations\\n config: null check fetched profiles\\n profile panel: remember expanded state between rebuilds\\n profile panel: require profile names to be valid file names\\n config manager: distribute initial config sync delay\\n drag and drop panel: add drag listener\\n drag and drop panel: fix components of varying size\\n profile panel: support reordering\\n player indicators: add per-setting pvp option\\n config manager: handle exceptions from scheduled sendConfig task\\n grand exchange: save trades to rsprofile config\\n slayer: remove profile migration\\n player indicators: fix test for highlight own player\\n slayer: use vars for task tracking\\n slayer: use task location enum for location verification\\n slayer: fix !task location checking\\n run energy: fix parsing roe with 1000 charges\\n slayer: fix test\\n feed: fix npe on shutdown\\n config: mark lost remote profile as not synced\\n chatfilter: fix cme from rebuilding patterns\\n cache: remove various savers\\n cache: refactor item renderer\\n cache: fix texture projection on models without tex coords\\n clientui: add java8 brownout\\n api: add tex triangles to Model\\n item charges: fix setting rsprofile config before login\\n gpu: move uv calculation to gpu\\n api: add Actor isInteracting\\n containable frame: log insets in getWindowAreaBounds()\\n api: update 212\\n api: replace varp enum with ints\\n api: remove model uvs\\n devtools: add wear/tex commands\\n gpu: fix vanilla uvs with a depth offset\\n ping: move unknown host exception log to debug\\n slayer: display infobox on task check\\n external plugins: fix refresh race with plugin manager\\n external plugins: remove unused session event handlers\\n client: cache update 3-15-2023\\n ground markers: cap fill opacity at 255\\n ground items: Fix Kalphite Queen instance despawn times (#16382)\\n config manager: reset lost profile active flag\\n config manager: log profiles at startup\\n config manager: use inactive profile if no profile is active\\n config manager: avoid removing active profile on logout\\n runelite: remove --config argument\\n camera plugin: remove preserve yaw\\n gpu: fix min10 initializer\\n overlay manager: remove plugin changed hook\\n api: remove WorldArea calculateNextTravellingPoint\\n logback: include timezone in date pattern\\n gpu: don't double offset of tile models\\n gpu: fix a few comments\\n gpu: remove unused vb clear\\n gpu: use a separate vao for compute and temp buffers\\n gpu: fix initialization of uniform block index\\n gpu: allow quoting filenames in #include\\n gpu: add clang-format config\\n gpu: clang-format shaders\\n gpu: fix derotating jau computation for uvs\\n gpu: fix derotating jau on cpu too\\n hiscore panel: repaint entire panel on lookup\\n screenshot: fix screenshots with j2d scaling\\n clientui: fix applying client bounds with j2d scaling\\n screen markers: reload markers on profile change\\n infobox manager: rebuild infoboxes on profile change\\n slayer: remove twisted league tasks\\n slayer: fix detecting Check on worn items\\n gpu: fix amd miscompile of frag.glsl\\n cache: update uv calculation code\\n gpu: move uv calculation to geometry shader\\n gpu: simplify face sorting comparison\\n gpu: check aa framebuffer status\\n hiscore: add wilderness bosses\\n screenshot: fix scaling on macos\\n clientui: keep size when resetting client position\\n api: update 213\\n api: add frame cycle to actorspotanim and dynamicobject\\n external plugins: change support link to plugin hub readme\\n cache: rename ambient sound fields\\n menu swapper: use submenus for object swaps\\n menu swapper: add object walk here swap\\n screenshot: remove points from combat achievement file names\\n screenshot: remove points from notification popup too\\n devtools: add loading lines tool\\n gpu: use power of 2 for gl buffer sizes\\n gpu: name gl buffers\\n gpu: invalidate buffer data before updating\\n ge: add notify on offer complete\\n api: add scene loading callbacks\\n\\nAlberto Pluecker (2):\\n slayer: Add Phantom Muspah to task list (#16414)\\n slayer: Add Forgotten Soul as an alternative for Ghosts task (#16427)\\n\\nArnaud Peralta (1):\\n roof removal: Add Camelot Castle override\\n\\nBasil Mahmood (1):\\n clues: Identify Eastfloor spade as a valid spade (#16464)\\n\\nBob Heine (1):\\n item stats: Fix Choc-ice healing amount (#16545)\\n\\nFilip Åsberg (2):\\n clues: Include all combat bracelet variants (#16520)\\n mining: update mlm ore-vein respawn times\\n\\nFiori (1):\\n roof removal: add Uzer Oasis override (#16355)\\n\\nIlkka Kallioniemi (1):\\n plugins: Fix Ectofuntus spelling (#16393)\\n\\nInfernoStats (1):\\n timers: fix liquid adrenaline timer being removed on death\\n\\nJZomDev (2):\\n profile panel: default file chooser directory to RUNELITE_DIR\\n cannon: Improve Meiyerditch Laboratories bloodveld spot (#16455)\\n\\nJordan (1):\\n fishing: add Camdozaal fishing spots\\n\\nJordan Atwood (10):\\n item stats: Fix capped stat boosts when starting from overheal\\n ground items: Update KBD instance despawn time\\n feed: Remove unused @Slf4j annotation and import\\n loot tracker: Fix toa loot value config check\\n roof removal: Add Karuulm Slayer Dungeon overrides\\n timers: Add Heal Group cooldown timer\\n client: Log loaded local rtconf contents\\n game: Fix isDying for Runite golems\\n game: Add isDying override for Agrith Naar\\n game: Fix comment spelling\\n\\nLootBagger (1):\\n skill calc: Add true blood altar runecrafting (#16259)\\n\\nMacweese (1):\\n slayer: match task names to enum\\n\\nMax Weber (14):\\n config: register panels to the eventbus correctly\\n client: specify utf8 encoding\\n rl-api: expose DBRowConfig\\n rl-api: fix DBTableID runtime exclusion\\n widgetid: remove unused widgets\\n ConfigManager: don't rely on HashSet ordering when picking rsprofiles\\n ConfigManager: merge imported rsprofile keys\\n config: document RSProfileType ordinal stability\\n config: merge imported profiles correctly\\n client/ItemMapping: update to 2023-4-12\\n rl-client: add --insecure-write-credentials\\n MaterialTabGroup: do not select tabs that are already selected\\n wiki: do not trip asserts for despawned npcs\\n music: update for 2023-5-10 game update\\n\\nMorgan Lewis (1):\\n api: Fix SpriteIDs from April 2023 updates (#16519)\\n\\nMustafa (1):\\n ItemMapping: Add Venator bow (#16394)\\n\\nNewbcake (1):\\n worldmap: fix typo for Skeletal Tombs (#16546)\\n\\nPaul Norton (2):\\n cluescrolls: wildy boss update clue descriptions\\n kourendlibrary: reset state on new gamemessage\\n\\nPkZ (1):\\n slayer: Add Revenants as an alternative for Ghosts task (#16436)\\n\\nSevenEightFour (1):\\n skill calculator: Fix Slimy Eel experience (#16536)\\n\\nSirGirion (1):\\n woodcutting: Add farming guild redwood tree (#16505)\\n\\nVelite12 (1):\\n idle notifier: Add Imcando hammer infernal eel crushing animation (#16350)\\n\\nYvesW (1):\\n drag and drop panel: fix typo (#16314)\\n\\nZoinkwiz (1):\\n outline renderer: add RuneliteObject support\\n\\ngeheur (3):\\n overlay manager: reload overlay config on profile change\\n item manager: Add quest speedrunning graceful to worn items map (#16404)\\n item charges: Add Forgotten brew (#16526)\\n\\nolligobber (1):\\n item charges: Fix Ring of forging breaking being off by one (#16500)\\n\\ntesting-ongithub (2):\\n timers: Switch back to message-based detection for thrall creation timer\\n timers: Don't create shadow veil / liquid adrenaline timers with varbits\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-05-13-15-00-1.10.0-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2BAA2B,OAAS,OAAO,KAAO","file":"static/js/161.294750d3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.0 Release\",\"description\":\"Map loading improvements\",\"author\":\"Adam\",\"body\":\"Map loading improvements \\nThe short Loading - please wait
freeze which happens when a new map is loaded (also sometimes referred to as crossing "loading lines") has been greatly reduced, and in many cases, completely removed. This allows for a much smoother game play experience, and is most noticible in content like the Gauntlet and Chambers of Xeric which have multiple map loads. We've also fixed projectiles so they no longer disappear when loading a new map.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: maploading\\n
\\nJagex Account PSA \\nWith Jagex recently pushing people towords using the new Jagex Account system, we've seen many people lock themselves out of their accounts by migrating their account without fully understanding the consequences. This occurs most prominently to users whose computers can not run the Jagex Launcher. Please do not migrate your accounts without first verifying that the Jagex Launcher works on all of the computers you play on.
\\nJagex Accounts are still in beta, and so it is expected there will be some teething problems. If your computer does not support the Jagex launcher we highly recommend not migrating your account yet as you will be unable to play on RuneLite.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nMulti kills on abyssal demons on task are now correctly counted \\nMirror shield's "mirror" effect now renders correctly on GPU \\nWalk here
can now be swapped on a per-object basis, similar to NPCs \\nProfiles can now be reordered via drag and drop in the profile list \\nFix the ring of forging tracker being off by 1 \\nThe GE plugin can now notify you when an offer is fully complete, instead of on each update \\n \\n- Adam
\\nNew commits \\nWe had 28 contributors this update!
\\nAdam (94):\\n runelite: fix npe from --insecure-skip-tls-verificiation\\n external plugins: reload plugin list on profile change\\n ground markers: reload points on profile change\\n profile panel: info level log more profile operations\\n config: null check fetched profiles\\n profile panel: remember expanded state between rebuilds\\n profile panel: require profile names to be valid file names\\n config manager: distribute initial config sync delay\\n drag and drop panel: add drag listener\\n drag and drop panel: fix components of varying size\\n profile panel: support reordering\\n player indicators: add per-setting pvp option\\n config manager: handle exceptions from scheduled sendConfig task\\n grand exchange: save trades to rsprofile config\\n slayer: remove profile migration\\n player indicators: fix test for highlight own player\\n slayer: use vars for task tracking\\n slayer: use task location enum for location verification\\n slayer: fix !task location checking\\n run energy: fix parsing roe with 1000 charges\\n slayer: fix test\\n feed: fix npe on shutdown\\n config: mark lost remote profile as not synced\\n chatfilter: fix cme from rebuilding patterns\\n cache: remove various savers\\n cache: refactor item renderer\\n cache: fix texture projection on models without tex coords\\n clientui: add java8 brownout\\n api: add tex triangles to Model\\n item charges: fix setting rsprofile config before login\\n gpu: move uv calculation to gpu\\n api: add Actor isInteracting\\n containable frame: log insets in getWindowAreaBounds()\\n api: update 212\\n api: replace varp enum with ints\\n api: remove model uvs\\n devtools: add wear/tex commands\\n gpu: fix vanilla uvs with a depth offset\\n ping: move unknown host exception log to debug\\n slayer: display infobox on task check\\n external plugins: fix refresh race with plugin manager\\n external plugins: remove unused session event handlers\\n client: cache update 3-15-2023\\n ground markers: cap fill opacity at 255\\n ground items: Fix Kalphite Queen instance despawn times (#16382)\\n config manager: reset lost profile active flag\\n config manager: log profiles at startup\\n config manager: use inactive profile if no profile is active\\n config manager: avoid removing active profile on logout\\n runelite: remove --config argument\\n camera plugin: remove preserve yaw\\n gpu: fix min10 initializer\\n overlay manager: remove plugin changed hook\\n api: remove WorldArea calculateNextTravellingPoint\\n logback: include timezone in date pattern\\n gpu: don't double offset of tile models\\n gpu: fix a few comments\\n gpu: remove unused vb clear\\n gpu: use a separate vao for compute and temp buffers\\n gpu: fix initialization of uniform block index\\n gpu: allow quoting filenames in #include\\n gpu: add clang-format config\\n gpu: clang-format shaders\\n gpu: fix derotating jau computation for uvs\\n gpu: fix derotating jau on cpu too\\n hiscore panel: repaint entire panel on lookup\\n screenshot: fix screenshots with j2d scaling\\n clientui: fix applying client bounds with j2d scaling\\n screen markers: reload markers on profile change\\n infobox manager: rebuild infoboxes on profile change\\n slayer: remove twisted league tasks\\n slayer: fix detecting Check on worn items\\n gpu: fix amd miscompile of frag.glsl\\n cache: update uv calculation code\\n gpu: move uv calculation to geometry shader\\n gpu: simplify face sorting comparison\\n gpu: check aa framebuffer status\\n hiscore: add wilderness bosses\\n screenshot: fix scaling on macos\\n clientui: keep size when resetting client position\\n api: update 213\\n api: add frame cycle to actorspotanim and dynamicobject\\n external plugins: change support link to plugin hub readme\\n cache: rename ambient sound fields\\n menu swapper: use submenus for object swaps\\n menu swapper: add object walk here swap\\n screenshot: remove points from combat achievement file names\\n screenshot: remove points from notification popup too\\n devtools: add loading lines tool\\n gpu: use power of 2 for gl buffer sizes\\n gpu: name gl buffers\\n gpu: invalidate buffer data before updating\\n ge: add notify on offer complete\\n api: add scene loading callbacks\\n\\nAlberto Pluecker (2):\\n slayer: Add Phantom Muspah to task list (#16414)\\n slayer: Add Forgotten Soul as an alternative for Ghosts task (#16427)\\n\\nArnaud Peralta (1):\\n roof removal: Add Camelot Castle override\\n\\nBasil Mahmood (1):\\n clues: Identify Eastfloor spade as a valid spade (#16464)\\n\\nBob Heine (1):\\n item stats: Fix Choc-ice healing amount (#16545)\\n\\nFilip Åsberg (2):\\n clues: Include all combat bracelet variants (#16520)\\n mining: update mlm ore-vein respawn times\\n\\nFiori (1):\\n roof removal: add Uzer Oasis override (#16355)\\n\\nIlkka Kallioniemi (1):\\n plugins: Fix Ectofuntus spelling (#16393)\\n\\nInfernoStats (1):\\n timers: fix liquid adrenaline timer being removed on death\\n\\nJZomDev (2):\\n profile panel: default file chooser directory to RUNELITE_DIR\\n cannon: Improve Meiyerditch Laboratories bloodveld spot (#16455)\\n\\nJordan (1):\\n fishing: add Camdozaal fishing spots\\n\\nJordan Atwood (10):\\n item stats: Fix capped stat boosts when starting from overheal\\n ground items: Update KBD instance despawn time\\n feed: Remove unused @Slf4j annotation and import\\n loot tracker: Fix toa loot value config check\\n roof removal: Add Karuulm Slayer Dungeon overrides\\n timers: Add Heal Group cooldown timer\\n client: Log loaded local rtconf contents\\n game: Fix isDying for Runite golems\\n game: Add isDying override for Agrith Naar\\n game: Fix comment spelling\\n\\nLootBagger (1):\\n skill calc: Add true blood altar runecrafting (#16259)\\n\\nMacweese (1):\\n slayer: match task names to enum\\n\\nMax Weber (14):\\n config: register panels to the eventbus correctly\\n client: specify utf8 encoding\\n rl-api: expose DBRowConfig\\n rl-api: fix DBTableID runtime exclusion\\n widgetid: remove unused widgets\\n ConfigManager: don't rely on HashSet ordering when picking rsprofiles\\n ConfigManager: merge imported rsprofile keys\\n config: document RSProfileType ordinal stability\\n config: merge imported profiles correctly\\n client/ItemMapping: update to 2023-4-12\\n rl-client: add --insecure-write-credentials\\n MaterialTabGroup: do not select tabs that are already selected\\n wiki: do not trip asserts for despawned npcs\\n music: update for 2023-5-10 game update\\n\\nMorgan Lewis (1):\\n api: Fix SpriteIDs from April 2023 updates (#16519)\\n\\nMustafa (1):\\n ItemMapping: Add Venator bow (#16394)\\n\\nNewbcake (1):\\n worldmap: fix typo for Skeletal Tombs (#16546)\\n\\nPaul Norton (2):\\n cluescrolls: wildy boss update clue descriptions\\n kourendlibrary: reset state on new gamemessage\\n\\nPkZ (1):\\n slayer: Add Revenants as an alternative for Ghosts task (#16436)\\n\\nSevenEightFour (1):\\n skill calculator: Fix Slimy Eel experience (#16536)\\n\\nSirGirion (1):\\n woodcutting: Add farming guild redwood tree (#16505)\\n\\nVelite12 (1):\\n idle notifier: Add Imcando hammer infernal eel crushing animation (#16350)\\n\\nYvesW (1):\\n drag and drop panel: fix typo (#16314)\\n\\nZoinkwiz (1):\\n outline renderer: add RuneliteObject support\\n\\ngeheur (3):\\n overlay manager: reload overlay config on profile change\\n item manager: Add quest speedrunning graceful to worn items map (#16404)\\n item charges: Add Forgotten brew (#16526)\\n\\nolligobber (1):\\n item charges: Fix Ring of forging breaking being off by one (#16500)\\n\\ntesting-ongithub (2):\\n timers: Switch back to message-based detection for thrall creation timer\\n timers: Don't create shadow veil / liquid adrenaline timers with varbits\\n
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/162.1ffeb034.chunk.js b/static/js/162.085f2939.chunk.js
similarity index 98%
rename from static/js/162.1ffeb034.chunk.js
rename to static/js/162.085f2939.chunk.js
index 1cdf56021..c2f27cadf 100644
--- a/static/js/162.1ffeb034.chunk.js
+++ b/static/js/162.085f2939.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[162],{437:function(e,n){e.exports={title:"1.10.6 Release",description:"Forestry",author:"Adam",body:'Forestry \nThe woodcutting plugin has had support for forestry added. This includes notifications for each type of event, and an overlay aiding it.
\n\n\n\n \n \n \n \n \n\n\n \n \n \n \n \n
\nPrayer reordering \nAs you may have seen a couple weeks ago, Jagex has changed their rules regarding prayer reordering, and so we have added prayer reordering support to the prayer plugin.\nA bug causing prayer filtering to be broken when prayer reordering is on has also been fixed
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: prayerreorder\n
\nWindows ARM launcher \nWe now have a native Windows ARM launcher. If you have a Windows laptop or tablet with an ARM processor (common in Microsoft Surface Pro) machines, you can download it from the homepage by selecting the Download for Windows (ARM64)
option. Additionally, the GPU plugin is now supported on ARM, regardless of what launcher you use.
\nThere are also several smaller improvements and bug fixes, including:
\n\nWhen pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing \nThe motherlode mine respawn timers have been fixed, again, and are now definitely correct \n!pb
now supports hours \nThe feed panel has been removed due to Twitter removing their free API access \n \nNew commits \nWe had 17 contributors this update!
\nAdam (34):\n coords: add scene overload for toLocalInstance\n api: deprecate AccountType\n time tracking: disallow composting compost bins\n slayer: fix forgetting initial amount on disconnect\n hiscore: update bh target regex\n hiscore: allow any color for bh target regex\n client: remove feed plugin\n client: remove feed resources\n loot tracker: remove unused http-api client methods\n spec counter: add dragon warhammer (cr)\n Update to JDK 11\n clientui: remove java 8 warnings\n client: update orange-extensions to 1.1\n update http-api to 1.2.5\n world hopper: add beta worlds\n cache-client: skip index 16\n cache-client: support removing archives\n cache-updater: update to spring 2\n loot manager: add wall beasts\n prayer: add prayer reordering\n prayer: fix prayer filtering with reordering\n gpu: update to lwjgl 3.3.2\n gpu: use lwjgl-opencl\n xp tracker: remove game tick rebuildSkills call\n api: deprecate and remove overall skill\n mining: use add_overlaytimer_loc clientscript for mlm timer\n gpu: fix crash on shutdown if cl library is not initialized\n gpu: add windows aarch64 support\n gpu: improve opencl context creation error handling\n woodcutting: add forestry event notifications\n woodcutting: add glowing roots highlight\n woodcutting: add mulch highlight\n Revert "random events: add more frog npcids"\n woodcutting: add flower highlighter\n\nAdam Sharp (1):\n chat commands: add hours support for !pb\n\nChris (1):\n loot tracker: Add fishing level to slayer chest metadata (#16694)\n\nFelanbird (2):\n clues: Move arrows for NPCs found on upper floors (#16618)\n clues: Support Forestry outfit\n\nFilip \xc5sberg (1):\n item charges: update explorer charges at plugin startup\n\nFrosty-J (1):\n clues: clarify Chaos Temple location\n\nJatie (1):\n clues: add primordial boots to dragon boots requirement\n\nJordan Atwood (6):\n grand exchange: Fix slot detail panels with wrapped text\n grand exchange: Use constant for panel height\n grand exchange: Initialize offers panel on startup\n report button: Remove "Off" display option\n ItemMapping: Add Bounty Hunter item variants\n discord: Fix ordering of minigame definitions\n\nJoshua Kuan (2):\n clues: Update location text for Gallow medium anagram clue (#16332)\n random events: add more frog npcids\n\nMax Weber (7):\n cache/item: use correct texture brightness\n rl-client/RSProfileType: support new BETA world type\n rl-client: use pluginhub manifest v2 format\n rl-client: allow rtconf-ing keys from runelite.properties\n osxutil: do not reference eawt classes during verification\n rl-client/GameEventManager: don\'t use pointless Optionals\n rl-client/GameEventManager: post TileObjects for bridge tiles\n\nShane Doherty (1):\n discord: Add Giants\' Foundry area\n\nadam-a (1):\n osxutil: update frame extended state for fullscreen mode\n\ncrab-pancake (1):\n spec counter: fix tracking weapon with 1 tick specs\n\ngeheur (1):\n menu swapper: fix object walk here swap with multilocs\n\niProdigy (1):\n hiscore: avoid AccountType enum usage\n\njonas-fo (1):\n screenshot: suport screenshots with level-up interface disabled\n\nshi-vy (1):\n clues: add fairy ring to elite clue step for gutanoth\n
\n',image:"/img/blog/1.10.6-Release/bees.png"}}}]);
-//# sourceMappingURL=162.1ffeb034.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[162],{438:function(e,n){e.exports={title:"1.10.6 Release",description:"Forestry",author:"Adam",body:'Forestry \nThe woodcutting plugin has had support for forestry added. This includes notifications for each type of event, and an overlay aiding it.
\n\n\n\n \n \n \n \n \n\n\n \n \n \n \n \n
\nPrayer reordering \nAs you may have seen a couple weeks ago, Jagex has changed their rules regarding prayer reordering, and so we have added prayer reordering support to the prayer plugin.\nA bug causing prayer filtering to be broken when prayer reordering is on has also been fixed
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: prayerreorder\n
\nWindows ARM launcher \nWe now have a native Windows ARM launcher. If you have a Windows laptop or tablet with an ARM processor (common in Microsoft Surface Pro) machines, you can download it from the homepage by selecting the Download for Windows (ARM64)
option. Additionally, the GPU plugin is now supported on ARM, regardless of what launcher you use.
\nThere are also several smaller improvements and bug fixes, including:
\n\nWhen pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing \nThe motherlode mine respawn timers have been fixed, again, and are now definitely correct \n!pb
now supports hours \nThe feed panel has been removed due to Twitter removing their free API access \n \nNew commits \nWe had 17 contributors this update!
\nAdam (34):\n coords: add scene overload for toLocalInstance\n api: deprecate AccountType\n time tracking: disallow composting compost bins\n slayer: fix forgetting initial amount on disconnect\n hiscore: update bh target regex\n hiscore: allow any color for bh target regex\n client: remove feed plugin\n client: remove feed resources\n loot tracker: remove unused http-api client methods\n spec counter: add dragon warhammer (cr)\n Update to JDK 11\n clientui: remove java 8 warnings\n client: update orange-extensions to 1.1\n update http-api to 1.2.5\n world hopper: add beta worlds\n cache-client: skip index 16\n cache-client: support removing archives\n cache-updater: update to spring 2\n loot manager: add wall beasts\n prayer: add prayer reordering\n prayer: fix prayer filtering with reordering\n gpu: update to lwjgl 3.3.2\n gpu: use lwjgl-opencl\n xp tracker: remove game tick rebuildSkills call\n api: deprecate and remove overall skill\n mining: use add_overlaytimer_loc clientscript for mlm timer\n gpu: fix crash on shutdown if cl library is not initialized\n gpu: add windows aarch64 support\n gpu: improve opencl context creation error handling\n woodcutting: add forestry event notifications\n woodcutting: add glowing roots highlight\n woodcutting: add mulch highlight\n Revert "random events: add more frog npcids"\n woodcutting: add flower highlighter\n\nAdam Sharp (1):\n chat commands: add hours support for !pb\n\nChris (1):\n loot tracker: Add fishing level to slayer chest metadata (#16694)\n\nFelanbird (2):\n clues: Move arrows for NPCs found on upper floors (#16618)\n clues: Support Forestry outfit\n\nFilip \xc5sberg (1):\n item charges: update explorer charges at plugin startup\n\nFrosty-J (1):\n clues: clarify Chaos Temple location\n\nJatie (1):\n clues: add primordial boots to dragon boots requirement\n\nJordan Atwood (6):\n grand exchange: Fix slot detail panels with wrapped text\n grand exchange: Use constant for panel height\n grand exchange: Initialize offers panel on startup\n report button: Remove "Off" display option\n ItemMapping: Add Bounty Hunter item variants\n discord: Fix ordering of minigame definitions\n\nJoshua Kuan (2):\n clues: Update location text for Gallow medium anagram clue (#16332)\n random events: add more frog npcids\n\nMax Weber (7):\n cache/item: use correct texture brightness\n rl-client/RSProfileType: support new BETA world type\n rl-client: use pluginhub manifest v2 format\n rl-client: allow rtconf-ing keys from runelite.properties\n osxutil: do not reference eawt classes during verification\n rl-client/GameEventManager: don\'t use pointless Optionals\n rl-client/GameEventManager: post TileObjects for bridge tiles\n\nShane Doherty (1):\n discord: Add Giants\' Foundry area\n\nadam-a (1):\n osxutil: update frame extended state for fullscreen mode\n\ncrab-pancake (1):\n spec counter: fix tracking weapon with 1 tick specs\n\ngeheur (1):\n menu swapper: fix object walk here swap with multilocs\n\niProdigy (1):\n hiscore: avoid AccountType enum usage\n\njonas-fo (1):\n screenshot: suport screenshots with level-up interface disabled\n\nshi-vy (1):\n clues: add fairy ring to elite clue step for gutanoth\n
\n',image:"/img/blog/1.10.6-Release/bees.png"}}}]);
+//# sourceMappingURL=162.085f2939.chunk.js.map
\ No newline at end of file
diff --git a/static/js/162.1ffeb034.chunk.js.map b/static/js/162.085f2939.chunk.js.map
similarity index 98%
rename from static/js/162.1ffeb034.chunk.js.map
rename to static/js/162.085f2939.chunk.js.map
index bac53bb8c..9d9c55f00 100644
--- a/static/js/162.1ffeb034.chunk.js.map
+++ b/static/js/162.085f2939.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-07-01-15-00-1.10.6-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,WAAW,OAAS,OAAO,KAAO,w+KAAq/K,MAAQ","file":"static/js/162.1ffeb034.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.6 Release\",\"description\":\"Forestry\",\"author\":\"Adam\",\"body\":\"Forestry \\nThe woodcutting plugin has had support for forestry added. This includes notifications for each type of event, and an overlay aiding it.
\\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nPrayer reordering \\nAs you may have seen a couple weeks ago, Jagex has changed their rules regarding prayer reordering, and so we have added prayer reordering support to the prayer plugin.\\nA bug causing prayer filtering to be broken when prayer reordering is on has also been fixed
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: prayerreorder\\n
\\nWindows ARM launcher \\nWe now have a native Windows ARM launcher. If you have a Windows laptop or tablet with an ARM processor (common in Microsoft Surface Pro) machines, you can download it from the homepage by selecting the Download for Windows (ARM64)
option. Additionally, the GPU plugin is now supported on ARM, regardless of what launcher you use.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nWhen pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing \\nThe motherlode mine respawn timers have been fixed, again, and are now definitely correct \\n!pb
now supports hours \\nThe feed panel has been removed due to Twitter removing their free API access \\n \\nNew commits \\nWe had 17 contributors this update!
\\nAdam (34):\\n coords: add scene overload for toLocalInstance\\n api: deprecate AccountType\\n time tracking: disallow composting compost bins\\n slayer: fix forgetting initial amount on disconnect\\n hiscore: update bh target regex\\n hiscore: allow any color for bh target regex\\n client: remove feed plugin\\n client: remove feed resources\\n loot tracker: remove unused http-api client methods\\n spec counter: add dragon warhammer (cr)\\n Update to JDK 11\\n clientui: remove java 8 warnings\\n client: update orange-extensions to 1.1\\n update http-api to 1.2.5\\n world hopper: add beta worlds\\n cache-client: skip index 16\\n cache-client: support removing archives\\n cache-updater: update to spring 2\\n loot manager: add wall beasts\\n prayer: add prayer reordering\\n prayer: fix prayer filtering with reordering\\n gpu: update to lwjgl 3.3.2\\n gpu: use lwjgl-opencl\\n xp tracker: remove game tick rebuildSkills call\\n api: deprecate and remove overall skill\\n mining: use add_overlaytimer_loc clientscript for mlm timer\\n gpu: fix crash on shutdown if cl library is not initialized\\n gpu: add windows aarch64 support\\n gpu: improve opencl context creation error handling\\n woodcutting: add forestry event notifications\\n woodcutting: add glowing roots highlight\\n woodcutting: add mulch highlight\\n Revert "random events: add more frog npcids"\\n woodcutting: add flower highlighter\\n\\nAdam Sharp (1):\\n chat commands: add hours support for !pb\\n\\nChris (1):\\n loot tracker: Add fishing level to slayer chest metadata (#16694)\\n\\nFelanbird (2):\\n clues: Move arrows for NPCs found on upper floors (#16618)\\n clues: Support Forestry outfit\\n\\nFilip Åsberg (1):\\n item charges: update explorer charges at plugin startup\\n\\nFrosty-J (1):\\n clues: clarify Chaos Temple location\\n\\nJatie (1):\\n clues: add primordial boots to dragon boots requirement\\n\\nJordan Atwood (6):\\n grand exchange: Fix slot detail panels with wrapped text\\n grand exchange: Use constant for panel height\\n grand exchange: Initialize offers panel on startup\\n report button: Remove "Off" display option\\n ItemMapping: Add Bounty Hunter item variants\\n discord: Fix ordering of minigame definitions\\n\\nJoshua Kuan (2):\\n clues: Update location text for Gallow medium anagram clue (#16332)\\n random events: add more frog npcids\\n\\nMax Weber (7):\\n cache/item: use correct texture brightness\\n rl-client/RSProfileType: support new BETA world type\\n rl-client: use pluginhub manifest v2 format\\n rl-client: allow rtconf-ing keys from runelite.properties\\n osxutil: do not reference eawt classes during verification\\n rl-client/GameEventManager: don't use pointless Optionals\\n rl-client/GameEventManager: post TileObjects for bridge tiles\\n\\nShane Doherty (1):\\n discord: Add Giants' Foundry area\\n\\nadam-a (1):\\n osxutil: update frame extended state for fullscreen mode\\n\\ncrab-pancake (1):\\n spec counter: fix tracking weapon with 1 tick specs\\n\\ngeheur (1):\\n menu swapper: fix object walk here swap with multilocs\\n\\niProdigy (1):\\n hiscore: avoid AccountType enum usage\\n\\njonas-fo (1):\\n screenshot: suport screenshots with level-up interface disabled\\n\\nshi-vy (1):\\n clues: add fairy ring to elite clue step for gutanoth\\n
\\n\",\"image\":\"/img/blog/1.10.6-Release/bees.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-07-01-15-00-1.10.6-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,WAAW,OAAS,OAAO,KAAO,w+KAAq/K,MAAQ","file":"static/js/162.085f2939.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.6 Release\",\"description\":\"Forestry\",\"author\":\"Adam\",\"body\":\"Forestry \\nThe woodcutting plugin has had support for forestry added. This includes notifications for each type of event, and an overlay aiding it.
\\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n
\\nPrayer reordering \\nAs you may have seen a couple weeks ago, Jagex has changed their rules regarding prayer reordering, and so we have added prayer reordering support to the prayer plugin.\\nA bug causing prayer filtering to be broken when prayer reordering is on has also been fixed
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: prayerreorder\\n
\\nWindows ARM launcher \\nWe now have a native Windows ARM launcher. If you have a Windows laptop or tablet with an ARM processor (common in Microsoft Surface Pro) machines, you can download it from the homepage by selecting the Download for Windows (ARM64)
option. Additionally, the GPU plugin is now supported on ARM, regardless of what launcher you use.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nWhen pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing \\nThe motherlode mine respawn timers have been fixed, again, and are now definitely correct \\n!pb
now supports hours \\nThe feed panel has been removed due to Twitter removing their free API access \\n \\nNew commits \\nWe had 17 contributors this update!
\\nAdam (34):\\n coords: add scene overload for toLocalInstance\\n api: deprecate AccountType\\n time tracking: disallow composting compost bins\\n slayer: fix forgetting initial amount on disconnect\\n hiscore: update bh target regex\\n hiscore: allow any color for bh target regex\\n client: remove feed plugin\\n client: remove feed resources\\n loot tracker: remove unused http-api client methods\\n spec counter: add dragon warhammer (cr)\\n Update to JDK 11\\n clientui: remove java 8 warnings\\n client: update orange-extensions to 1.1\\n update http-api to 1.2.5\\n world hopper: add beta worlds\\n cache-client: skip index 16\\n cache-client: support removing archives\\n cache-updater: update to spring 2\\n loot manager: add wall beasts\\n prayer: add prayer reordering\\n prayer: fix prayer filtering with reordering\\n gpu: update to lwjgl 3.3.2\\n gpu: use lwjgl-opencl\\n xp tracker: remove game tick rebuildSkills call\\n api: deprecate and remove overall skill\\n mining: use add_overlaytimer_loc clientscript for mlm timer\\n gpu: fix crash on shutdown if cl library is not initialized\\n gpu: add windows aarch64 support\\n gpu: improve opencl context creation error handling\\n woodcutting: add forestry event notifications\\n woodcutting: add glowing roots highlight\\n woodcutting: add mulch highlight\\n Revert "random events: add more frog npcids"\\n woodcutting: add flower highlighter\\n\\nAdam Sharp (1):\\n chat commands: add hours support for !pb\\n\\nChris (1):\\n loot tracker: Add fishing level to slayer chest metadata (#16694)\\n\\nFelanbird (2):\\n clues: Move arrows for NPCs found on upper floors (#16618)\\n clues: Support Forestry outfit\\n\\nFilip Åsberg (1):\\n item charges: update explorer charges at plugin startup\\n\\nFrosty-J (1):\\n clues: clarify Chaos Temple location\\n\\nJatie (1):\\n clues: add primordial boots to dragon boots requirement\\n\\nJordan Atwood (6):\\n grand exchange: Fix slot detail panels with wrapped text\\n grand exchange: Use constant for panel height\\n grand exchange: Initialize offers panel on startup\\n report button: Remove "Off" display option\\n ItemMapping: Add Bounty Hunter item variants\\n discord: Fix ordering of minigame definitions\\n\\nJoshua Kuan (2):\\n clues: Update location text for Gallow medium anagram clue (#16332)\\n random events: add more frog npcids\\n\\nMax Weber (7):\\n cache/item: use correct texture brightness\\n rl-client/RSProfileType: support new BETA world type\\n rl-client: use pluginhub manifest v2 format\\n rl-client: allow rtconf-ing keys from runelite.properties\\n osxutil: do not reference eawt classes during verification\\n rl-client/GameEventManager: don't use pointless Optionals\\n rl-client/GameEventManager: post TileObjects for bridge tiles\\n\\nShane Doherty (1):\\n discord: Add Giants' Foundry area\\n\\nadam-a (1):\\n osxutil: update frame extended state for fullscreen mode\\n\\ncrab-pancake (1):\\n spec counter: fix tracking weapon with 1 tick specs\\n\\ngeheur (1):\\n menu swapper: fix object walk here swap with multilocs\\n\\niProdigy (1):\\n hiscore: avoid AccountType enum usage\\n\\njonas-fo (1):\\n screenshot: suport screenshots with level-up interface disabled\\n\\nshi-vy (1):\\n clues: add fairy ring to elite clue step for gutanoth\\n
\\n\",\"image\":\"/img/blog/1.10.6-Release/bees.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/163.8c4738f0.chunk.js b/static/js/163.c78eb22f.chunk.js
similarity index 99%
rename from static/js/163.8c4738f0.chunk.js
rename to static/js/163.c78eb22f.chunk.js
index 0284a30b9..5fe34099c 100644
--- a/static/js/163.8c4738f0.chunk.js
+++ b/static/js/163.c78eb22f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[163],{438:function(e,n){e.exports={title:"1.10.12 Release",description:"Extended map loading",author:"Adam",body:'Extended map loading \nRuneLite now supports extended map loading, via a new setting in the GPU plugin
. This setting controls how many additional chunks to load past what is usually the edge of the visible world. Previously your character would have to move close to the edge, within 16 tiles, before the new map area was loaded in. Now, we have increased that gap to 56 tiles!
\nWhen combined with our previous work on seamless map loading the world feels like one continuous area.
\nWhen zoomed fully out, the total visible area is now up to 184x184 tiles, over three times as many as previously! The max render distance of the GPU plugin has been increased accordingly. This also fixes the black area shown on the minimap when zoomed out and near the world edge.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: maploading\n
\n
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: config\n
\nNote there are a few limitations:
\nExtended map loading does not work in instances, because there isn\'t a way to tell what the additional map to load is.
\nYou also may have to do a little exploring first! RuneLite can only load areas that it has seen before.
\nScrollable menu \nThe right click menu is now scrollable, useful for selecting menu options which are otherwise off screen. Also remember the Collapse ground item menu
option exists which helps with this too.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: menu\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTile and object markers now have an option to change their color in the right click menu. Object markers also can change the render style on a per-object basis via the menu. \nAttack styles can now send a chat message warning when you switched to a warned style \nA recent update by Jagex has made the client able to reload itself without fully restarting after game updates. Various bugs in plugins related to this have been fixed. Most notably issues surrounding chat icons added by plugins being incorrectly shown. We recommend restarting the client regardless, so that you will pull in the latest RuneLite version, even if it is not required. \nA bug causing boss slayer tasks to not be shown properly in !task
or on the overlay has been fixed. \nThe loot tracker now supports bounty crates \nThe party plugin ping color assigned to players is now configurable \nThe rune pouch overlay\'s runes are now pixel art instead of scaled down rune images \n \nNew commits \nWe had 30 contributors this update!
\nAdam (98):\n gpu: use clGetGLContextInfoAPPLE on macos\n woodcutting: count session logs instead of using xptracker actions\n woodcutting: add bark tracking to session\n telemetry client: report vm crashes\n config manager: disallow keys starting with $\n api: fix createProjectile docs typo\n ground markers: add color menu option\n client: update 2023-07-12-rev214\n woodcutting: suppress PMD.UnnecessaryFullyQualifiedName\n devtools: add menus\n player indicators: fix color player menu when using items on players\n api: add menu scroll api\n inv tags: cache untagged items in tag cache\n client: flush output streams before calling fsync\n chatbox: include lighting params in item search dedup\n client: add launcher updater\n api: update 215\n client: set jagex.userhome\n Revert "music: disable granularSliders"\n npc util: add death hider exclusion param\n hooks: include stacktrace in error reports\n api: worldpoint: use client base x/y instead of scene\n agility plugin: code cleanup\n hooks: remove npc update deferred eventbus replay\n clues: update tests\n updater: update launcher to 2.6.7\n api: add closeInterface\n bank: add option to remove jagex account ad\n hiscores: add dt2 bosses\n api: correct ItemLayer bottom/top usage\n cache: add libbzip2 support\n remove cache-client and cache-updater\n Revert "attack styles: Prevent errant warning messages"\n Revert "attack styles: Flip double-negative config"\n Revert "attack styles: Add chat message when switching to warned style"\n attack styles: Add chat message when switching to warned style\n github: remove placeholder versions from bug template\n ground markers: remove rememberTileColor option\n chat commands: add dt2 boss aliases\n cache: remove unnecessary assert\n loot tracker: track whisperer\n gpu: don\'t draw frames during STARTING\n chat commands: capitalize dt2 bosses\n loot tracker: fix whisperer tracking deaths\n loottracker: fix whisperer tracking deaths\n cache: ignore libbzip2 test\n camera: add option for right click move camera to work even with mouse over objects\n hiscore panel: fix crazy archaeologist alphabetization\n gpu: ignore buffer swap errors on shutdown\n cache: modify Storage api to accept int index/archive\n cache: remove archive hash\n cache: store: remove unused FileNotFoundException\n overlay renderer: don\'t consume mouse drag events when moving overlays\n client: add chat icons api\n bank: fix account ad popup blocking clear-all fillers\n special counter: remove counter when duke dies\n camera: default right click objects to true\n chat icons: fix npe if refresh is run too early\n slayer: update boss task task lookup\n slayer: fix The Phantom Muspah task name\n slayer: fix detecting boss task changes\n object indicators: add per object higlight style\n object indicators: remove remember object colors\n ground markers: add reset all color option\n loot tracker: fix tracking whisperer deaths v3\n loot tracker: update tests\n loot tracker: add ancient vault chest\n loot tracker: fix tracking whisperer deaths v4\n runepouch overlay: use pixel art rune images\n hiscores: switch from fsw to dmm tournament\n api: add openInterface\n object indicators: mark objects on startup\n client: update http-api to 1.2.12\n item manager: remove wiki fsw prices\n config: fix duplicating rsprofile\n runepouch overlay: update pixel art images\n inventory tags: null check item container\n api: add line of sight impl\n api: exclude CollisionDataFlag from runtime api\n discord: add discord rpc feature flag\n ge: add tournament ge world type\n loottracker: include loot world id for tournament worlds\n object indicators: null check map regions\n hiscore: add tournament world to HiscoreEndpoint.fromWorldTypes()\n worldutil: fix exception converting tournament world type\n ge: exclude active trade price from dmm worlds\n api: document gameobject config and hash\n gpu: move hillskew to gpu\n draw callbacks: remove drawFace\n gpu: increase config defaults\n gpu: remove sin/cos table from UBO\n profiles: add id to logging and log enames\n profiles: fix logging id on switch\n gpu: use GL_NEAREST for tile height min/max filter\n Revert "gpu: remove sin/cos table from UBO"\n gpu: reinitialize opencl variables on init\n devtools: add tile scene location to overlay\n gpu: add extended scene\n\nChris (1):\n loottracker: add support for Bounty crates\n\nCorey Forsyth (1):\n groundmarkers: Fix minimap stroke\n\nDavid Goldstein (1):\n util: Complete branch coverage for ColorUtil\n\nFelanbird (4):\n clues: Add Abyssal tentacles to Sherlock master challenge\n achievement diary: update ardy picklock task\n clues: Support Ring of shadows (#16846)\n clues: Update Necromancer Tower Master clue hint\n\nFjara (1):\n clues: update ranged attack bonus for Robin master cryptic\n\nJordan Atwood (23):\n woodcutting: Remember session stats after timeout\n npc indicators: Fix per-npc highlight menu color\n item identification: Add Chambers of Xeric potions\n timers: Support all staff of the dead variants\n attack styles: Code cleanup\n attack styles: Add chat message when switching to warned style\n attack styles: Flip double-negative config\n attack styles: Prevent errant warning messages\n widget overlay: Add the strangler infection overlay\n widget overlay: Add sanity overlay\n ground markers: Allow setting alpha when recoloring markers\n slayer: Add The Fallen Empire boss task entries\n boss timers: Add The Leviathan\n loot tracker: Fix tracking for The Leviathan\n loot tracker: Fix tracking for Duke Sucellus\n loot tracker: Fix tracking for Vardorvis\n discord: Add Secrets of the North and Desert Treasure 2 areas\n ItemMapping: Add Sanguine Torva armor\n roof removal: Add Lassar Undercity overrides\n clues: Add fairy ring code to hot-cold clue hint\n loot tracker: Fix The Leviathan loot tracking\n screenshot: Capitalize level up screenshots\n loot tracker: Fix chest re-opening detection\n\nLlemonDuck (3):\n checkstyle: no trailing whitespace on empty lines\n clues: support dynamic locations\n clues: dynamic viggora location\n\nMark7625 (1):\n entity hider: Clarify "Hide Pets" option only hides others\' pets (#15378)\n\nMax Weber (11):\n music: disable granularSliders\n music: fix playback not starting on unmute\n music: do not enable granular sliders on unrelated configs changing\n music: set slider deadtime as intended\n client: update carrallangar -> carrallanger\n api: add getDBRowsByValue\n worldmap: fix quest icons not showing\n api: add Animation::getNumFrames\n api: expose NpcOverrides\n devtools: show NpcOverrides\n devtools: fix texture overridden npcs\n\nMo Ben (1):\n npc aggro: fix Show on slayer task\n\nMorgan Lewis (9):\n widget overlay: Layout Tempoross lobby interface\n widget overlay: Layout GOTR interface\n widget overlay: Layout Trouble Brewing interfaces\n widget overlay: Layout Shades of Mort\'ton interface\n widget overlay: Layout Burthorpe Games Room interfaces\n widget overlay: Layout Brimhaven Agility Arena interface\n widget overlay: Layout Gnomeball interface\n widget overlay: Layout Mage Training Arean interfaces\n item stats: Fix barbarian mix heal amounts (#16988)\n\nPaul Norton (1):\n party: allow custom colors\n\nPhil (1):\n chat commands: add calvarion aliases\n\nReactate (1):\n clues: Improve Al Kharid mine emote clue location (#16420)\n\nRon Young (1):\n colorpicker: clamp window position to screen bounds\n\nSirGirion (1):\n itemstats: add support for group storage\n\nStephenWolters (1):\n herbiboar: always show correct object to search\n\nThePharros (1):\n clues: Add missing fairy ring CJR to Donovan clue\n\nUsman Akhtar (1):\n cannon: Add wilderness slayer cave spots\n\nVendarin (1):\n cannon: Add Edgeville Dungeon Moss Giant spot (#16560)\n\nZupami (1):\n achievement diary: update ardy steal chest task\n\ngeeckon (1):\n cannon: Update Lizardman spot (#14197)\n\ngeheur (2):\n bank: Support seed vault with search hotkey (#16417)\n clues: improve BRUCE CATNAP location and description\n\niProdigy (1):\n docs: update explanation of Varbits.PVP_SPEC_ORB (#16406)\n\ninvalidCards (1):\n achievement diary: Remove Tree Gnome Village requirement (#16776)\n\nrugg0064 (1):\n inventory tags: add colors of equipped items to submenu\n\nsam (4):\n fairy rings: add BLS fairy ring.\n world map: add BLS fairy ring.\n agility: add ice mountain shortcut\n world map: add icon descriptions for the stranglewood and lassar city\n\nshi-vy (1):\n discord: Indicate safe mode in icon tooltip (#16667)\n\ntesting-ongithub (2):\n combat level: Show next level info on Character Summary tab (#15876)\n combat level: Check "Show precise combat level" config on character summary tab (#16972)\n
\n',image:"/img/blog/1.10.12-Release/mountain.png"}}}]);
-//# sourceMappingURL=163.8c4738f0.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[163],{439:function(e,n){e.exports={title:"1.10.12 Release",description:"Extended map loading",author:"Adam",body:'Extended map loading \nRuneLite now supports extended map loading, via a new setting in the GPU plugin
. This setting controls how many additional chunks to load past what is usually the edge of the visible world. Previously your character would have to move close to the edge, within 16 tiles, before the new map area was loaded in. Now, we have increased that gap to 56 tiles!
\nWhen combined with our previous work on seamless map loading the world feels like one continuous area.
\nWhen zoomed fully out, the total visible area is now up to 184x184 tiles, over three times as many as previously! The max render distance of the GPU plugin has been increased accordingly. This also fixes the black area shown on the minimap when zoomed out and near the world edge.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: maploading\n
\n
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: config\n
\nNote there are a few limitations:
\nExtended map loading does not work in instances, because there isn\'t a way to tell what the additional map to load is.
\nYou also may have to do a little exploring first! RuneLite can only load areas that it has seen before.
\nScrollable menu \nThe right click menu is now scrollable, useful for selecting menu options which are otherwise off screen. Also remember the Collapse ground item menu
option exists which helps with this too.
\n\nYour browser does not support playing HTML5 video.\nYou can download the file instead.\nHere is a description of the content: menu\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTile and object markers now have an option to change their color in the right click menu. Object markers also can change the render style on a per-object basis via the menu. \nAttack styles can now send a chat message warning when you switched to a warned style \nA recent update by Jagex has made the client able to reload itself without fully restarting after game updates. Various bugs in plugins related to this have been fixed. Most notably issues surrounding chat icons added by plugins being incorrectly shown. We recommend restarting the client regardless, so that you will pull in the latest RuneLite version, even if it is not required. \nA bug causing boss slayer tasks to not be shown properly in !task
or on the overlay has been fixed. \nThe loot tracker now supports bounty crates \nThe party plugin ping color assigned to players is now configurable \nThe rune pouch overlay\'s runes are now pixel art instead of scaled down rune images \n \nNew commits \nWe had 30 contributors this update!
\nAdam (98):\n gpu: use clGetGLContextInfoAPPLE on macos\n woodcutting: count session logs instead of using xptracker actions\n woodcutting: add bark tracking to session\n telemetry client: report vm crashes\n config manager: disallow keys starting with $\n api: fix createProjectile docs typo\n ground markers: add color menu option\n client: update 2023-07-12-rev214\n woodcutting: suppress PMD.UnnecessaryFullyQualifiedName\n devtools: add menus\n player indicators: fix color player menu when using items on players\n api: add menu scroll api\n inv tags: cache untagged items in tag cache\n client: flush output streams before calling fsync\n chatbox: include lighting params in item search dedup\n client: add launcher updater\n api: update 215\n client: set jagex.userhome\n Revert "music: disable granularSliders"\n npc util: add death hider exclusion param\n hooks: include stacktrace in error reports\n api: worldpoint: use client base x/y instead of scene\n agility plugin: code cleanup\n hooks: remove npc update deferred eventbus replay\n clues: update tests\n updater: update launcher to 2.6.7\n api: add closeInterface\n bank: add option to remove jagex account ad\n hiscores: add dt2 bosses\n api: correct ItemLayer bottom/top usage\n cache: add libbzip2 support\n remove cache-client and cache-updater\n Revert "attack styles: Prevent errant warning messages"\n Revert "attack styles: Flip double-negative config"\n Revert "attack styles: Add chat message when switching to warned style"\n attack styles: Add chat message when switching to warned style\n github: remove placeholder versions from bug template\n ground markers: remove rememberTileColor option\n chat commands: add dt2 boss aliases\n cache: remove unnecessary assert\n loot tracker: track whisperer\n gpu: don\'t draw frames during STARTING\n chat commands: capitalize dt2 bosses\n loot tracker: fix whisperer tracking deaths\n loottracker: fix whisperer tracking deaths\n cache: ignore libbzip2 test\n camera: add option for right click move camera to work even with mouse over objects\n hiscore panel: fix crazy archaeologist alphabetization\n gpu: ignore buffer swap errors on shutdown\n cache: modify Storage api to accept int index/archive\n cache: remove archive hash\n cache: store: remove unused FileNotFoundException\n overlay renderer: don\'t consume mouse drag events when moving overlays\n client: add chat icons api\n bank: fix account ad popup blocking clear-all fillers\n special counter: remove counter when duke dies\n camera: default right click objects to true\n chat icons: fix npe if refresh is run too early\n slayer: update boss task task lookup\n slayer: fix The Phantom Muspah task name\n slayer: fix detecting boss task changes\n object indicators: add per object higlight style\n object indicators: remove remember object colors\n ground markers: add reset all color option\n loot tracker: fix tracking whisperer deaths v3\n loot tracker: update tests\n loot tracker: add ancient vault chest\n loot tracker: fix tracking whisperer deaths v4\n runepouch overlay: use pixel art rune images\n hiscores: switch from fsw to dmm tournament\n api: add openInterface\n object indicators: mark objects on startup\n client: update http-api to 1.2.12\n item manager: remove wiki fsw prices\n config: fix duplicating rsprofile\n runepouch overlay: update pixel art images\n inventory tags: null check item container\n api: add line of sight impl\n api: exclude CollisionDataFlag from runtime api\n discord: add discord rpc feature flag\n ge: add tournament ge world type\n loottracker: include loot world id for tournament worlds\n object indicators: null check map regions\n hiscore: add tournament world to HiscoreEndpoint.fromWorldTypes()\n worldutil: fix exception converting tournament world type\n ge: exclude active trade price from dmm worlds\n api: document gameobject config and hash\n gpu: move hillskew to gpu\n draw callbacks: remove drawFace\n gpu: increase config defaults\n gpu: remove sin/cos table from UBO\n profiles: add id to logging and log enames\n profiles: fix logging id on switch\n gpu: use GL_NEAREST for tile height min/max filter\n Revert "gpu: remove sin/cos table from UBO"\n gpu: reinitialize opencl variables on init\n devtools: add tile scene location to overlay\n gpu: add extended scene\n\nChris (1):\n loottracker: add support for Bounty crates\n\nCorey Forsyth (1):\n groundmarkers: Fix minimap stroke\n\nDavid Goldstein (1):\n util: Complete branch coverage for ColorUtil\n\nFelanbird (4):\n clues: Add Abyssal tentacles to Sherlock master challenge\n achievement diary: update ardy picklock task\n clues: Support Ring of shadows (#16846)\n clues: Update Necromancer Tower Master clue hint\n\nFjara (1):\n clues: update ranged attack bonus for Robin master cryptic\n\nJordan Atwood (23):\n woodcutting: Remember session stats after timeout\n npc indicators: Fix per-npc highlight menu color\n item identification: Add Chambers of Xeric potions\n timers: Support all staff of the dead variants\n attack styles: Code cleanup\n attack styles: Add chat message when switching to warned style\n attack styles: Flip double-negative config\n attack styles: Prevent errant warning messages\n widget overlay: Add the strangler infection overlay\n widget overlay: Add sanity overlay\n ground markers: Allow setting alpha when recoloring markers\n slayer: Add The Fallen Empire boss task entries\n boss timers: Add The Leviathan\n loot tracker: Fix tracking for The Leviathan\n loot tracker: Fix tracking for Duke Sucellus\n loot tracker: Fix tracking for Vardorvis\n discord: Add Secrets of the North and Desert Treasure 2 areas\n ItemMapping: Add Sanguine Torva armor\n roof removal: Add Lassar Undercity overrides\n clues: Add fairy ring code to hot-cold clue hint\n loot tracker: Fix The Leviathan loot tracking\n screenshot: Capitalize level up screenshots\n loot tracker: Fix chest re-opening detection\n\nLlemonDuck (3):\n checkstyle: no trailing whitespace on empty lines\n clues: support dynamic locations\n clues: dynamic viggora location\n\nMark7625 (1):\n entity hider: Clarify "Hide Pets" option only hides others\' pets (#15378)\n\nMax Weber (11):\n music: disable granularSliders\n music: fix playback not starting on unmute\n music: do not enable granular sliders on unrelated configs changing\n music: set slider deadtime as intended\n client: update carrallangar -> carrallanger\n api: add getDBRowsByValue\n worldmap: fix quest icons not showing\n api: add Animation::getNumFrames\n api: expose NpcOverrides\n devtools: show NpcOverrides\n devtools: fix texture overridden npcs\n\nMo Ben (1):\n npc aggro: fix Show on slayer task\n\nMorgan Lewis (9):\n widget overlay: Layout Tempoross lobby interface\n widget overlay: Layout GOTR interface\n widget overlay: Layout Trouble Brewing interfaces\n widget overlay: Layout Shades of Mort\'ton interface\n widget overlay: Layout Burthorpe Games Room interfaces\n widget overlay: Layout Brimhaven Agility Arena interface\n widget overlay: Layout Gnomeball interface\n widget overlay: Layout Mage Training Arean interfaces\n item stats: Fix barbarian mix heal amounts (#16988)\n\nPaul Norton (1):\n party: allow custom colors\n\nPhil (1):\n chat commands: add calvarion aliases\n\nReactate (1):\n clues: Improve Al Kharid mine emote clue location (#16420)\n\nRon Young (1):\n colorpicker: clamp window position to screen bounds\n\nSirGirion (1):\n itemstats: add support for group storage\n\nStephenWolters (1):\n herbiboar: always show correct object to search\n\nThePharros (1):\n clues: Add missing fairy ring CJR to Donovan clue\n\nUsman Akhtar (1):\n cannon: Add wilderness slayer cave spots\n\nVendarin (1):\n cannon: Add Edgeville Dungeon Moss Giant spot (#16560)\n\nZupami (1):\n achievement diary: update ardy steal chest task\n\ngeeckon (1):\n cannon: Update Lizardman spot (#14197)\n\ngeheur (2):\n bank: Support seed vault with search hotkey (#16417)\n clues: improve BRUCE CATNAP location and description\n\niProdigy (1):\n docs: update explanation of Varbits.PVP_SPEC_ORB (#16406)\n\ninvalidCards (1):\n achievement diary: Remove Tree Gnome Village requirement (#16776)\n\nrugg0064 (1):\n inventory tags: add colors of equipped items to submenu\n\nsam (4):\n fairy rings: add BLS fairy ring.\n world map: add BLS fairy ring.\n agility: add ice mountain shortcut\n world map: add icon descriptions for the stranglewood and lassar city\n\nshi-vy (1):\n discord: Indicate safe mode in icon tooltip (#16667)\n\ntesting-ongithub (2):\n combat level: Show next level info on Character Summary tab (#15876)\n combat level: Check "Show precise combat level" config on character summary tab (#16972)\n
\n',image:"/img/blog/1.10.12-Release/mountain.png"}}}]);
+//# sourceMappingURL=163.c78eb22f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/163.8c4738f0.chunk.js.map b/static/js/163.c78eb22f.chunk.js.map
similarity index 99%
rename from static/js/163.8c4738f0.chunk.js.map
rename to static/js/163.c78eb22f.chunk.js.map
index 54940b976..5fb38101a 100644
--- a/static/js/163.8c4738f0.chunk.js.map
+++ b/static/js/163.c78eb22f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-09-09-15-00-1.10.12-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,uBAAuB,OAAS,OAAO,KAAO,6iaAAmka,MAAQ","file":"static/js/163.8c4738f0.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.12 Release\",\"description\":\"Extended map loading\",\"author\":\"Adam\",\"body\":\"Extended map loading \\nRuneLite now supports extended map loading, via a new setting in the GPU plugin
. This setting controls how many additional chunks to load past what is usually the edge of the visible world. Previously your character would have to move close to the edge, within 16 tiles, before the new map area was loaded in. Now, we have increased that gap to 56 tiles!
\\nWhen combined with our previous work on seamless map loading the world feels like one continuous area.
\\nWhen zoomed fully out, the total visible area is now up to 184x184 tiles, over three times as many as previously! The max render distance of the GPU plugin has been increased accordingly. This also fixes the black area shown on the minimap when zoomed out and near the world edge.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: maploading\\n
\\n
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: config\\n
\\nNote there are a few limitations:
\\nExtended map loading does not work in instances, because there isn't a way to tell what the additional map to load is.
\\nYou also may have to do a little exploring first! RuneLite can only load areas that it has seen before.
\\nScrollable menu \\nThe right click menu is now scrollable, useful for selecting menu options which are otherwise off screen. Also remember the Collapse ground item menu
option exists which helps with this too.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: menu\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTile and object markers now have an option to change their color in the right click menu. Object markers also can change the render style on a per-object basis via the menu. \\nAttack styles can now send a chat message warning when you switched to a warned style \\nA recent update by Jagex has made the client able to reload itself without fully restarting after game updates. Various bugs in plugins related to this have been fixed. Most notably issues surrounding chat icons added by plugins being incorrectly shown. We recommend restarting the client regardless, so that you will pull in the latest RuneLite version, even if it is not required. \\nA bug causing boss slayer tasks to not be shown properly in !task
or on the overlay has been fixed. \\nThe loot tracker now supports bounty crates \\nThe party plugin ping color assigned to players is now configurable \\nThe rune pouch overlay's runes are now pixel art instead of scaled down rune images \\n \\nNew commits \\nWe had 30 contributors this update!
\\nAdam (98):\\n gpu: use clGetGLContextInfoAPPLE on macos\\n woodcutting: count session logs instead of using xptracker actions\\n woodcutting: add bark tracking to session\\n telemetry client: report vm crashes\\n config manager: disallow keys starting with $\\n api: fix createProjectile docs typo\\n ground markers: add color menu option\\n client: update 2023-07-12-rev214\\n woodcutting: suppress PMD.UnnecessaryFullyQualifiedName\\n devtools: add menus\\n player indicators: fix color player menu when using items on players\\n api: add menu scroll api\\n inv tags: cache untagged items in tag cache\\n client: flush output streams before calling fsync\\n chatbox: include lighting params in item search dedup\\n client: add launcher updater\\n api: update 215\\n client: set jagex.userhome\\n Revert "music: disable granularSliders"\\n npc util: add death hider exclusion param\\n hooks: include stacktrace in error reports\\n api: worldpoint: use client base x/y instead of scene\\n agility plugin: code cleanup\\n hooks: remove npc update deferred eventbus replay\\n clues: update tests\\n updater: update launcher to 2.6.7\\n api: add closeInterface\\n bank: add option to remove jagex account ad\\n hiscores: add dt2 bosses\\n api: correct ItemLayer bottom/top usage\\n cache: add libbzip2 support\\n remove cache-client and cache-updater\\n Revert "attack styles: Prevent errant warning messages"\\n Revert "attack styles: Flip double-negative config"\\n Revert "attack styles: Add chat message when switching to warned style"\\n attack styles: Add chat message when switching to warned style\\n github: remove placeholder versions from bug template\\n ground markers: remove rememberTileColor option\\n chat commands: add dt2 boss aliases\\n cache: remove unnecessary assert\\n loot tracker: track whisperer\\n gpu: don't draw frames during STARTING\\n chat commands: capitalize dt2 bosses\\n loot tracker: fix whisperer tracking deaths\\n loottracker: fix whisperer tracking deaths\\n cache: ignore libbzip2 test\\n camera: add option for right click move camera to work even with mouse over objects\\n hiscore panel: fix crazy archaeologist alphabetization\\n gpu: ignore buffer swap errors on shutdown\\n cache: modify Storage api to accept int index/archive\\n cache: remove archive hash\\n cache: store: remove unused FileNotFoundException\\n overlay renderer: don't consume mouse drag events when moving overlays\\n client: add chat icons api\\n bank: fix account ad popup blocking clear-all fillers\\n special counter: remove counter when duke dies\\n camera: default right click objects to true\\n chat icons: fix npe if refresh is run too early\\n slayer: update boss task task lookup\\n slayer: fix The Phantom Muspah task name\\n slayer: fix detecting boss task changes\\n object indicators: add per object higlight style\\n object indicators: remove remember object colors\\n ground markers: add reset all color option\\n loot tracker: fix tracking whisperer deaths v3\\n loot tracker: update tests\\n loot tracker: add ancient vault chest\\n loot tracker: fix tracking whisperer deaths v4\\n runepouch overlay: use pixel art rune images\\n hiscores: switch from fsw to dmm tournament\\n api: add openInterface\\n object indicators: mark objects on startup\\n client: update http-api to 1.2.12\\n item manager: remove wiki fsw prices\\n config: fix duplicating rsprofile\\n runepouch overlay: update pixel art images\\n inventory tags: null check item container\\n api: add line of sight impl\\n api: exclude CollisionDataFlag from runtime api\\n discord: add discord rpc feature flag\\n ge: add tournament ge world type\\n loottracker: include loot world id for tournament worlds\\n object indicators: null check map regions\\n hiscore: add tournament world to HiscoreEndpoint.fromWorldTypes()\\n worldutil: fix exception converting tournament world type\\n ge: exclude active trade price from dmm worlds\\n api: document gameobject config and hash\\n gpu: move hillskew to gpu\\n draw callbacks: remove drawFace\\n gpu: increase config defaults\\n gpu: remove sin/cos table from UBO\\n profiles: add id to logging and log enames\\n profiles: fix logging id on switch\\n gpu: use GL_NEAREST for tile height min/max filter\\n Revert "gpu: remove sin/cos table from UBO"\\n gpu: reinitialize opencl variables on init\\n devtools: add tile scene location to overlay\\n gpu: add extended scene\\n\\nChris (1):\\n loottracker: add support for Bounty crates\\n\\nCorey Forsyth (1):\\n groundmarkers: Fix minimap stroke\\n\\nDavid Goldstein (1):\\n util: Complete branch coverage for ColorUtil\\n\\nFelanbird (4):\\n clues: Add Abyssal tentacles to Sherlock master challenge\\n achievement diary: update ardy picklock task\\n clues: Support Ring of shadows (#16846)\\n clues: Update Necromancer Tower Master clue hint\\n\\nFjara (1):\\n clues: update ranged attack bonus for Robin master cryptic\\n\\nJordan Atwood (23):\\n woodcutting: Remember session stats after timeout\\n npc indicators: Fix per-npc highlight menu color\\n item identification: Add Chambers of Xeric potions\\n timers: Support all staff of the dead variants\\n attack styles: Code cleanup\\n attack styles: Add chat message when switching to warned style\\n attack styles: Flip double-negative config\\n attack styles: Prevent errant warning messages\\n widget overlay: Add the strangler infection overlay\\n widget overlay: Add sanity overlay\\n ground markers: Allow setting alpha when recoloring markers\\n slayer: Add The Fallen Empire boss task entries\\n boss timers: Add The Leviathan\\n loot tracker: Fix tracking for The Leviathan\\n loot tracker: Fix tracking for Duke Sucellus\\n loot tracker: Fix tracking for Vardorvis\\n discord: Add Secrets of the North and Desert Treasure 2 areas\\n ItemMapping: Add Sanguine Torva armor\\n roof removal: Add Lassar Undercity overrides\\n clues: Add fairy ring code to hot-cold clue hint\\n loot tracker: Fix The Leviathan loot tracking\\n screenshot: Capitalize level up screenshots\\n loot tracker: Fix chest re-opening detection\\n\\nLlemonDuck (3):\\n checkstyle: no trailing whitespace on empty lines\\n clues: support dynamic locations\\n clues: dynamic viggora location\\n\\nMark7625 (1):\\n entity hider: Clarify "Hide Pets" option only hides others' pets (#15378)\\n\\nMax Weber (11):\\n music: disable granularSliders\\n music: fix playback not starting on unmute\\n music: do not enable granular sliders on unrelated configs changing\\n music: set slider deadtime as intended\\n client: update carrallangar -> carrallanger\\n api: add getDBRowsByValue\\n worldmap: fix quest icons not showing\\n api: add Animation::getNumFrames\\n api: expose NpcOverrides\\n devtools: show NpcOverrides\\n devtools: fix texture overridden npcs\\n\\nMo Ben (1):\\n npc aggro: fix Show on slayer task\\n\\nMorgan Lewis (9):\\n widget overlay: Layout Tempoross lobby interface\\n widget overlay: Layout GOTR interface\\n widget overlay: Layout Trouble Brewing interfaces\\n widget overlay: Layout Shades of Mort'ton interface\\n widget overlay: Layout Burthorpe Games Room interfaces\\n widget overlay: Layout Brimhaven Agility Arena interface\\n widget overlay: Layout Gnomeball interface\\n widget overlay: Layout Mage Training Arean interfaces\\n item stats: Fix barbarian mix heal amounts (#16988)\\n\\nPaul Norton (1):\\n party: allow custom colors\\n\\nPhil (1):\\n chat commands: add calvarion aliases\\n\\nReactate (1):\\n clues: Improve Al Kharid mine emote clue location (#16420)\\n\\nRon Young (1):\\n colorpicker: clamp window position to screen bounds\\n\\nSirGirion (1):\\n itemstats: add support for group storage\\n\\nStephenWolters (1):\\n herbiboar: always show correct object to search\\n\\nThePharros (1):\\n clues: Add missing fairy ring CJR to Donovan clue\\n\\nUsman Akhtar (1):\\n cannon: Add wilderness slayer cave spots\\n\\nVendarin (1):\\n cannon: Add Edgeville Dungeon Moss Giant spot (#16560)\\n\\nZupami (1):\\n achievement diary: update ardy steal chest task\\n\\ngeeckon (1):\\n cannon: Update Lizardman spot (#14197)\\n\\ngeheur (2):\\n bank: Support seed vault with search hotkey (#16417)\\n clues: improve BRUCE CATNAP location and description\\n\\niProdigy (1):\\n docs: update explanation of Varbits.PVP_SPEC_ORB (#16406)\\n\\ninvalidCards (1):\\n achievement diary: Remove Tree Gnome Village requirement (#16776)\\n\\nrugg0064 (1):\\n inventory tags: add colors of equipped items to submenu\\n\\nsam (4):\\n fairy rings: add BLS fairy ring.\\n world map: add BLS fairy ring.\\n agility: add ice mountain shortcut\\n world map: add icon descriptions for the stranglewood and lassar city\\n\\nshi-vy (1):\\n discord: Indicate safe mode in icon tooltip (#16667)\\n\\ntesting-ongithub (2):\\n combat level: Show next level info on Character Summary tab (#15876)\\n combat level: Check "Show precise combat level" config on character summary tab (#16972)\\n
\\n\",\"image\":\"/img/blog/1.10.12-Release/mountain.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-09-09-15-00-1.10.12-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,uBAAuB,OAAS,OAAO,KAAO,6iaAAmka,MAAQ","file":"static/js/163.c78eb22f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.12 Release\",\"description\":\"Extended map loading\",\"author\":\"Adam\",\"body\":\"Extended map loading \\nRuneLite now supports extended map loading, via a new setting in the GPU plugin
. This setting controls how many additional chunks to load past what is usually the edge of the visible world. Previously your character would have to move close to the edge, within 16 tiles, before the new map area was loaded in. Now, we have increased that gap to 56 tiles!
\\nWhen combined with our previous work on seamless map loading the world feels like one continuous area.
\\nWhen zoomed fully out, the total visible area is now up to 184x184 tiles, over three times as many as previously! The max render distance of the GPU plugin has been increased accordingly. This also fixes the black area shown on the minimap when zoomed out and near the world edge.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: maploading\\n
\\n
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: config\\n
\\nNote there are a few limitations:
\\nExtended map loading does not work in instances, because there isn't a way to tell what the additional map to load is.
\\nYou also may have to do a little exploring first! RuneLite can only load areas that it has seen before.
\\nScrollable menu \\nThe right click menu is now scrollable, useful for selecting menu options which are otherwise off screen. Also remember the Collapse ground item menu
option exists which helps with this too.
\\n\\nYour browser does not support playing HTML5 video.\\nYou can download the file instead.\\nHere is a description of the content: menu\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTile and object markers now have an option to change their color in the right click menu. Object markers also can change the render style on a per-object basis via the menu. \\nAttack styles can now send a chat message warning when you switched to a warned style \\nA recent update by Jagex has made the client able to reload itself without fully restarting after game updates. Various bugs in plugins related to this have been fixed. Most notably issues surrounding chat icons added by plugins being incorrectly shown. We recommend restarting the client regardless, so that you will pull in the latest RuneLite version, even if it is not required. \\nA bug causing boss slayer tasks to not be shown properly in !task
or on the overlay has been fixed. \\nThe loot tracker now supports bounty crates \\nThe party plugin ping color assigned to players is now configurable \\nThe rune pouch overlay's runes are now pixel art instead of scaled down rune images \\n \\nNew commits \\nWe had 30 contributors this update!
\\nAdam (98):\\n gpu: use clGetGLContextInfoAPPLE on macos\\n woodcutting: count session logs instead of using xptracker actions\\n woodcutting: add bark tracking to session\\n telemetry client: report vm crashes\\n config manager: disallow keys starting with $\\n api: fix createProjectile docs typo\\n ground markers: add color menu option\\n client: update 2023-07-12-rev214\\n woodcutting: suppress PMD.UnnecessaryFullyQualifiedName\\n devtools: add menus\\n player indicators: fix color player menu when using items on players\\n api: add menu scroll api\\n inv tags: cache untagged items in tag cache\\n client: flush output streams before calling fsync\\n chatbox: include lighting params in item search dedup\\n client: add launcher updater\\n api: update 215\\n client: set jagex.userhome\\n Revert "music: disable granularSliders"\\n npc util: add death hider exclusion param\\n hooks: include stacktrace in error reports\\n api: worldpoint: use client base x/y instead of scene\\n agility plugin: code cleanup\\n hooks: remove npc update deferred eventbus replay\\n clues: update tests\\n updater: update launcher to 2.6.7\\n api: add closeInterface\\n bank: add option to remove jagex account ad\\n hiscores: add dt2 bosses\\n api: correct ItemLayer bottom/top usage\\n cache: add libbzip2 support\\n remove cache-client and cache-updater\\n Revert "attack styles: Prevent errant warning messages"\\n Revert "attack styles: Flip double-negative config"\\n Revert "attack styles: Add chat message when switching to warned style"\\n attack styles: Add chat message when switching to warned style\\n github: remove placeholder versions from bug template\\n ground markers: remove rememberTileColor option\\n chat commands: add dt2 boss aliases\\n cache: remove unnecessary assert\\n loot tracker: track whisperer\\n gpu: don't draw frames during STARTING\\n chat commands: capitalize dt2 bosses\\n loot tracker: fix whisperer tracking deaths\\n loottracker: fix whisperer tracking deaths\\n cache: ignore libbzip2 test\\n camera: add option for right click move camera to work even with mouse over objects\\n hiscore panel: fix crazy archaeologist alphabetization\\n gpu: ignore buffer swap errors on shutdown\\n cache: modify Storage api to accept int index/archive\\n cache: remove archive hash\\n cache: store: remove unused FileNotFoundException\\n overlay renderer: don't consume mouse drag events when moving overlays\\n client: add chat icons api\\n bank: fix account ad popup blocking clear-all fillers\\n special counter: remove counter when duke dies\\n camera: default right click objects to true\\n chat icons: fix npe if refresh is run too early\\n slayer: update boss task task lookup\\n slayer: fix The Phantom Muspah task name\\n slayer: fix detecting boss task changes\\n object indicators: add per object higlight style\\n object indicators: remove remember object colors\\n ground markers: add reset all color option\\n loot tracker: fix tracking whisperer deaths v3\\n loot tracker: update tests\\n loot tracker: add ancient vault chest\\n loot tracker: fix tracking whisperer deaths v4\\n runepouch overlay: use pixel art rune images\\n hiscores: switch from fsw to dmm tournament\\n api: add openInterface\\n object indicators: mark objects on startup\\n client: update http-api to 1.2.12\\n item manager: remove wiki fsw prices\\n config: fix duplicating rsprofile\\n runepouch overlay: update pixel art images\\n inventory tags: null check item container\\n api: add line of sight impl\\n api: exclude CollisionDataFlag from runtime api\\n discord: add discord rpc feature flag\\n ge: add tournament ge world type\\n loottracker: include loot world id for tournament worlds\\n object indicators: null check map regions\\n hiscore: add tournament world to HiscoreEndpoint.fromWorldTypes()\\n worldutil: fix exception converting tournament world type\\n ge: exclude active trade price from dmm worlds\\n api: document gameobject config and hash\\n gpu: move hillskew to gpu\\n draw callbacks: remove drawFace\\n gpu: increase config defaults\\n gpu: remove sin/cos table from UBO\\n profiles: add id to logging and log enames\\n profiles: fix logging id on switch\\n gpu: use GL_NEAREST for tile height min/max filter\\n Revert "gpu: remove sin/cos table from UBO"\\n gpu: reinitialize opencl variables on init\\n devtools: add tile scene location to overlay\\n gpu: add extended scene\\n\\nChris (1):\\n loottracker: add support for Bounty crates\\n\\nCorey Forsyth (1):\\n groundmarkers: Fix minimap stroke\\n\\nDavid Goldstein (1):\\n util: Complete branch coverage for ColorUtil\\n\\nFelanbird (4):\\n clues: Add Abyssal tentacles to Sherlock master challenge\\n achievement diary: update ardy picklock task\\n clues: Support Ring of shadows (#16846)\\n clues: Update Necromancer Tower Master clue hint\\n\\nFjara (1):\\n clues: update ranged attack bonus for Robin master cryptic\\n\\nJordan Atwood (23):\\n woodcutting: Remember session stats after timeout\\n npc indicators: Fix per-npc highlight menu color\\n item identification: Add Chambers of Xeric potions\\n timers: Support all staff of the dead variants\\n attack styles: Code cleanup\\n attack styles: Add chat message when switching to warned style\\n attack styles: Flip double-negative config\\n attack styles: Prevent errant warning messages\\n widget overlay: Add the strangler infection overlay\\n widget overlay: Add sanity overlay\\n ground markers: Allow setting alpha when recoloring markers\\n slayer: Add The Fallen Empire boss task entries\\n boss timers: Add The Leviathan\\n loot tracker: Fix tracking for The Leviathan\\n loot tracker: Fix tracking for Duke Sucellus\\n loot tracker: Fix tracking for Vardorvis\\n discord: Add Secrets of the North and Desert Treasure 2 areas\\n ItemMapping: Add Sanguine Torva armor\\n roof removal: Add Lassar Undercity overrides\\n clues: Add fairy ring code to hot-cold clue hint\\n loot tracker: Fix The Leviathan loot tracking\\n screenshot: Capitalize level up screenshots\\n loot tracker: Fix chest re-opening detection\\n\\nLlemonDuck (3):\\n checkstyle: no trailing whitespace on empty lines\\n clues: support dynamic locations\\n clues: dynamic viggora location\\n\\nMark7625 (1):\\n entity hider: Clarify "Hide Pets" option only hides others' pets (#15378)\\n\\nMax Weber (11):\\n music: disable granularSliders\\n music: fix playback not starting on unmute\\n music: do not enable granular sliders on unrelated configs changing\\n music: set slider deadtime as intended\\n client: update carrallangar -> carrallanger\\n api: add getDBRowsByValue\\n worldmap: fix quest icons not showing\\n api: add Animation::getNumFrames\\n api: expose NpcOverrides\\n devtools: show NpcOverrides\\n devtools: fix texture overridden npcs\\n\\nMo Ben (1):\\n npc aggro: fix Show on slayer task\\n\\nMorgan Lewis (9):\\n widget overlay: Layout Tempoross lobby interface\\n widget overlay: Layout GOTR interface\\n widget overlay: Layout Trouble Brewing interfaces\\n widget overlay: Layout Shades of Mort'ton interface\\n widget overlay: Layout Burthorpe Games Room interfaces\\n widget overlay: Layout Brimhaven Agility Arena interface\\n widget overlay: Layout Gnomeball interface\\n widget overlay: Layout Mage Training Arean interfaces\\n item stats: Fix barbarian mix heal amounts (#16988)\\n\\nPaul Norton (1):\\n party: allow custom colors\\n\\nPhil (1):\\n chat commands: add calvarion aliases\\n\\nReactate (1):\\n clues: Improve Al Kharid mine emote clue location (#16420)\\n\\nRon Young (1):\\n colorpicker: clamp window position to screen bounds\\n\\nSirGirion (1):\\n itemstats: add support for group storage\\n\\nStephenWolters (1):\\n herbiboar: always show correct object to search\\n\\nThePharros (1):\\n clues: Add missing fairy ring CJR to Donovan clue\\n\\nUsman Akhtar (1):\\n cannon: Add wilderness slayer cave spots\\n\\nVendarin (1):\\n cannon: Add Edgeville Dungeon Moss Giant spot (#16560)\\n\\nZupami (1):\\n achievement diary: update ardy steal chest task\\n\\ngeeckon (1):\\n cannon: Update Lizardman spot (#14197)\\n\\ngeheur (2):\\n bank: Support seed vault with search hotkey (#16417)\\n clues: improve BRUCE CATNAP location and description\\n\\niProdigy (1):\\n docs: update explanation of Varbits.PVP_SPEC_ORB (#16406)\\n\\ninvalidCards (1):\\n achievement diary: Remove Tree Gnome Village requirement (#16776)\\n\\nrugg0064 (1):\\n inventory tags: add colors of equipped items to submenu\\n\\nsam (4):\\n fairy rings: add BLS fairy ring.\\n world map: add BLS fairy ring.\\n agility: add ice mountain shortcut\\n world map: add icon descriptions for the stranglewood and lassar city\\n\\nshi-vy (1):\\n discord: Indicate safe mode in icon tooltip (#16667)\\n\\ntesting-ongithub (2):\\n combat level: Show next level info on Character Summary tab (#15876)\\n combat level: Check "Show precise combat level" config on character summary tab (#16972)\\n
\\n\",\"image\":\"/img/blog/1.10.12-Release/mountain.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/164.f113fa47.chunk.js b/static/js/164.6b9c9841.chunk.js
similarity index 98%
rename from static/js/164.f113fa47.chunk.js
rename to static/js/164.6b9c9841.chunk.js
index 2cbcf7a9f..0cff996e0 100644
--- a/static/js/164.f113fa47.chunk.js
+++ b/static/js/164.6b9c9841.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[164],{439:function(e,n){e.exports={title:"1.10.15 Release",description:"Profile account linking, GPU performance improvements, and hidden unrelated areas in GPU",author:"Jordan",body:'Profile account linking \nEarlier this year, we released profiles to let you easily switch between different plugins and\nsettings. Paired with a new --profile
client argument for players wanting to\nopen specific client windows to separate profiles, this helped most players manage their settings neatly, but did not\nhandle two specific cases very well: players using the Jagex launcher, who could not use a --profile
argument; and\nplayers who switched accounts in the same client. To help both of these cases, we\'ve added profile account linking,\nwhich lets players associate a RuneScape account with a specific profile, to be automatically switched to when logging\nin. (This also supports accounts on special game modes such as Leagues, Deadman, and Quest Speedrunning!)
\n
\nLinking an account with one of your profiles is a simple process:
\n\nLog in to the account to be linked \nExpand the card of the profile to link it to \nClick the \ud83d\udd17 button \n \nAs seen in the picture above, the link icon will be shown in orange when linked, and you can see\nwhich accounts are linked to it in the button\'s tooltip.
\nGPU performance improvements \nOver the last 6 months we have been working in the background on performance improvements, starting with asynchronous map loading and extended map loading . More recently, we have increased the FPS via improving the tile cull testing, and also converted the client\'s camera to floating point arithmetic, which makes camera movement noticeably smoother. Unlocked FPS mode is now the default mode in the GPU plugin, we recommend checking it out if you are not using it currently.
\nHide unrelated areas on GPU \nHave you ever wondered why you\'re able to see the Abyss in the distance when scaling the Agility\nPyramid? Or why from one runecrafting altar you\'re able to see others? Wonder no more, as unrelated\nmap areas are now hidden when using the GPU plugin.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nObject indicators now support a separately-customizable fill color \nThe Entity Hider and Random Event plugins both support the new Count Check random event \nYour gains will now be reported via the XP Updater plugin on world hop as well as on logout \nThe Report Button plugin\'s login timer no longer resets on a lost connection being re-established\nwithout logging out \nThe special attack counter now tracks Accursed sceptre specs \nA Mark of Darkness timer has been added to the Timers plugin \nThe Skill Calculator plugin learned the xp values for making a Forgotten brew \n2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin \n \nEnjoy!
\n- Jordan & Adam
\nNew commits \nWe had 21 contributors this update!
\nAdam (56):\n util: run asyncbufferedimage onLoaded callbacks when already loaded\n api: remove setRenderArea\n low detail: reset low detail flag on STARTING\n gpu: early frustum cull tiles\n gpu: default unlocked fps to on\n object indicators: make hull fill color consistent\n object indicators: open color picker to previously used color\n object indicators: add configurable fill color\n object indicators: revert "make hull fill color consistent"\n api: remove NPCComposition isClickable\n object indicators: add default fill color config\n profile panel: strip crlf from profile names\n interface styles: fix race with client startup\n world hopper: ignore ping errors to current world\n world hopper: only update panel ping if active\n default world: don\'t apply world in safe mode\n default world: don\'t apply beta or nosave worlds\n default world: ignore pmd error\n Revert "default world: ignore pmd error"\n default world: fix injecting safemode\n hooks: add openUrl callback\n minimap: fix replacing map dots on client reload\n camera: add right click examine option\n attack styles: fix spurious warnings with autocasting staffs\n perspective: support extended scene in getCanvasTileAreaPoly()\n gpu: add option to hide unrelated maps\n screenshot: remove imgur uploader\n screenshot: move client frame code to ImageCapture\n screenshot: imagecapture: add utility method for taking screenshots\n screenshot: add screenshot taken event\n draw callbacks: use floating point camera\n api: add floating point camera accessors\n perspective: use floating point projection\n gpu: use floating point camera pos, yaw, and pitch\n chat filter: null check player name in onOverheadTextChanged\n idle notifier: add 2h axes and campfire anims\n wintertodt: add 2h axes anims\n woodcutting: rename WoodcuttingTreesOverlay to WoodcuttingSceneOverlay\n woodcutting: add 2h axe anims\n woodcutting: clear flowers on logout and world hop\n woodcutting: add new forestry events\n hiscore panel: switch from dmmt to leagues\n woodcutting: clear pheasant nests on map load\n woodcutting: update npc ids\n entity hider: add count check\n random events: add count check\n rename runelite-script-assembler-plugin to runelite-maven-plugin\n cache: update antlr to 4.13.1\n api: codegen component and interface id constants\n client: use new component and interface id constants\n widgets: use new api\n woodcutting: don\'t try to solve dyrad without 5 circles\n idle notifier: add all campfire anims\n fishing spot: add f2p wilderness spot\n remove leagues relic varbit accesses\n RSProfileType: add trailblazer reloaded league\n\nErik (1):\n kingdom of miscellania: use midnight gmt for favour estimates\n\nFelanbird (4):\n achievement diary: fix runecrafting steps\n clues: Add Abyssal tentacles to Draynor Village Master emote clue\n clues: Add Guardian boots to Zul-Andra Master emote clue\n clues: Add Bow of faerdhinen\'s to Falo the bard step\n\nFredrik Haarde (1):\n xp updater: Submit automatic updates on world hop (#15765)\n\nJordan Atwood (10):\n game: Add isDying override for Bouncer\'s ghost\n special counter: Add Accursed sceptre\n Revert "item charges: Track Ardougne cloak charges"\n clues: Add missing Falo The Bard item variants\n report button: Don\'t reset login time on connection lost\n default world: Remove empty shutDown method\n ConfigManager: Improve switchProfile log message\n ProfilePanel: Clean up UI code\n config: Add default profile linking to config profiles\n default world: Remove world change on profile change\n\nLevente Kurusa (1):\n time tracking: rename giant compost bin to big compost bin\n\nMacweese (3):\n slayer: add warped creatures task\n timers: remove corruption cooldown on configchange\n timers: add mark of darkness timer\n\nMax Weber (3):\n gpu: extend frustum checks below the ground for sunken models\n camera: remove compass look preserve pitch\n update lombok\n\nMo Ben (1):\n inventory grid: enable in bank with equipment view open\n\nMorgan Lewis (2):\n crowdsourcing: Add sprite dialogue tracking (#16953)\n NPCComposition: Expose color replacement and scale\n\nNicole M (2):\n item charges: fix bracelet of clay tracking in prif mine\n item charges: add egniol potions\n\nRasmus Karlsson (1):\n objectindicators: deduplicate color suggestions\n\nRyanTamulevicz (1):\n skill calc: add forgotten brew (#17019)\n\nSirGirion (2):\n bank: fix showing seed vault value on open\n item charges: Track Ardougne cloak charges\n\nYvesW (5):\n notifier: fix typo in comment (#17069)\n worldmap: fix stranglewood rowboats destinations\n worldmap: add ring of the elements teleport locations\n worldmap: add ring of shadows teleport locations\n clues: add ring of shadows to cryptic and emote clue text\n\nbradysauter (1):\n opponent info: add toggle for health overlay\n\niProdigy (1):\n twitch: prepend oauth prefix to token if missing\n\nmatej-veselovsky (1):\n FishingSpot: Use Raw karambwanji icon for karambwanji spot (#17085)\n\npajlada (2):\n npcaggro: fix typo in Notify Expiration description (#17044)\n idle notifier: add crashed star mining animation ids\n\nrjarn (1):\n ClientThread: Fix javadoc grammar (#17088)\n\nskillingdev (1):\n screenshot: fix matching level 99 messages with level-up dialogs disabled\n
\n',image:"/img/blog/1.10.15-Release/rsprofile-default-linking.png"}}}]);
-//# sourceMappingURL=164.f113fa47.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[164],{440:function(e,n){e.exports={title:"1.10.15 Release",description:"Profile account linking, GPU performance improvements, and hidden unrelated areas in GPU",author:"Jordan",body:'Profile account linking \nEarlier this year, we released profiles to let you easily switch between different plugins and\nsettings. Paired with a new --profile
client argument for players wanting to\nopen specific client windows to separate profiles, this helped most players manage their settings neatly, but did not\nhandle two specific cases very well: players using the Jagex launcher, who could not use a --profile
argument; and\nplayers who switched accounts in the same client. To help both of these cases, we\'ve added profile account linking,\nwhich lets players associate a RuneScape account with a specific profile, to be automatically switched to when logging\nin. (This also supports accounts on special game modes such as Leagues, Deadman, and Quest Speedrunning!)
\n
\nLinking an account with one of your profiles is a simple process:
\n\nLog in to the account to be linked \nExpand the card of the profile to link it to \nClick the \ud83d\udd17 button \n \nAs seen in the picture above, the link icon will be shown in orange when linked, and you can see\nwhich accounts are linked to it in the button\'s tooltip.
\nGPU performance improvements \nOver the last 6 months we have been working in the background on performance improvements, starting with asynchronous map loading and extended map loading . More recently, we have increased the FPS via improving the tile cull testing, and also converted the client\'s camera to floating point arithmetic, which makes camera movement noticeably smoother. Unlocked FPS mode is now the default mode in the GPU plugin, we recommend checking it out if you are not using it currently.
\nHide unrelated areas on GPU \nHave you ever wondered why you\'re able to see the Abyss in the distance when scaling the Agility\nPyramid? Or why from one runecrafting altar you\'re able to see others? Wonder no more, as unrelated\nmap areas are now hidden when using the GPU plugin.
\n\n\n\nBefore \nAfter \n \n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nObject indicators now support a separately-customizable fill color \nThe Entity Hider and Random Event plugins both support the new Count Check random event \nYour gains will now be reported via the XP Updater plugin on world hop as well as on logout \nThe Report Button plugin\'s login timer no longer resets on a lost connection being re-established\nwithout logging out \nThe special attack counter now tracks Accursed sceptre specs \nA Mark of Darkness timer has been added to the Timers plugin \nThe Skill Calculator plugin learned the xp values for making a Forgotten brew \n2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin \n \nEnjoy!
\n- Jordan & Adam
\nNew commits \nWe had 21 contributors this update!
\nAdam (56):\n util: run asyncbufferedimage onLoaded callbacks when already loaded\n api: remove setRenderArea\n low detail: reset low detail flag on STARTING\n gpu: early frustum cull tiles\n gpu: default unlocked fps to on\n object indicators: make hull fill color consistent\n object indicators: open color picker to previously used color\n object indicators: add configurable fill color\n object indicators: revert "make hull fill color consistent"\n api: remove NPCComposition isClickable\n object indicators: add default fill color config\n profile panel: strip crlf from profile names\n interface styles: fix race with client startup\n world hopper: ignore ping errors to current world\n world hopper: only update panel ping if active\n default world: don\'t apply world in safe mode\n default world: don\'t apply beta or nosave worlds\n default world: ignore pmd error\n Revert "default world: ignore pmd error"\n default world: fix injecting safemode\n hooks: add openUrl callback\n minimap: fix replacing map dots on client reload\n camera: add right click examine option\n attack styles: fix spurious warnings with autocasting staffs\n perspective: support extended scene in getCanvasTileAreaPoly()\n gpu: add option to hide unrelated maps\n screenshot: remove imgur uploader\n screenshot: move client frame code to ImageCapture\n screenshot: imagecapture: add utility method for taking screenshots\n screenshot: add screenshot taken event\n draw callbacks: use floating point camera\n api: add floating point camera accessors\n perspective: use floating point projection\n gpu: use floating point camera pos, yaw, and pitch\n chat filter: null check player name in onOverheadTextChanged\n idle notifier: add 2h axes and campfire anims\n wintertodt: add 2h axes anims\n woodcutting: rename WoodcuttingTreesOverlay to WoodcuttingSceneOverlay\n woodcutting: add 2h axe anims\n woodcutting: clear flowers on logout and world hop\n woodcutting: add new forestry events\n hiscore panel: switch from dmmt to leagues\n woodcutting: clear pheasant nests on map load\n woodcutting: update npc ids\n entity hider: add count check\n random events: add count check\n rename runelite-script-assembler-plugin to runelite-maven-plugin\n cache: update antlr to 4.13.1\n api: codegen component and interface id constants\n client: use new component and interface id constants\n widgets: use new api\n woodcutting: don\'t try to solve dyrad without 5 circles\n idle notifier: add all campfire anims\n fishing spot: add f2p wilderness spot\n remove leagues relic varbit accesses\n RSProfileType: add trailblazer reloaded league\n\nErik (1):\n kingdom of miscellania: use midnight gmt for favour estimates\n\nFelanbird (4):\n achievement diary: fix runecrafting steps\n clues: Add Abyssal tentacles to Draynor Village Master emote clue\n clues: Add Guardian boots to Zul-Andra Master emote clue\n clues: Add Bow of faerdhinen\'s to Falo the bard step\n\nFredrik Haarde (1):\n xp updater: Submit automatic updates on world hop (#15765)\n\nJordan Atwood (10):\n game: Add isDying override for Bouncer\'s ghost\n special counter: Add Accursed sceptre\n Revert "item charges: Track Ardougne cloak charges"\n clues: Add missing Falo The Bard item variants\n report button: Don\'t reset login time on connection lost\n default world: Remove empty shutDown method\n ConfigManager: Improve switchProfile log message\n ProfilePanel: Clean up UI code\n config: Add default profile linking to config profiles\n default world: Remove world change on profile change\n\nLevente Kurusa (1):\n time tracking: rename giant compost bin to big compost bin\n\nMacweese (3):\n slayer: add warped creatures task\n timers: remove corruption cooldown on configchange\n timers: add mark of darkness timer\n\nMax Weber (3):\n gpu: extend frustum checks below the ground for sunken models\n camera: remove compass look preserve pitch\n update lombok\n\nMo Ben (1):\n inventory grid: enable in bank with equipment view open\n\nMorgan Lewis (2):\n crowdsourcing: Add sprite dialogue tracking (#16953)\n NPCComposition: Expose color replacement and scale\n\nNicole M (2):\n item charges: fix bracelet of clay tracking in prif mine\n item charges: add egniol potions\n\nRasmus Karlsson (1):\n objectindicators: deduplicate color suggestions\n\nRyanTamulevicz (1):\n skill calc: add forgotten brew (#17019)\n\nSirGirion (2):\n bank: fix showing seed vault value on open\n item charges: Track Ardougne cloak charges\n\nYvesW (5):\n notifier: fix typo in comment (#17069)\n worldmap: fix stranglewood rowboats destinations\n worldmap: add ring of the elements teleport locations\n worldmap: add ring of shadows teleport locations\n clues: add ring of shadows to cryptic and emote clue text\n\nbradysauter (1):\n opponent info: add toggle for health overlay\n\niProdigy (1):\n twitch: prepend oauth prefix to token if missing\n\nmatej-veselovsky (1):\n FishingSpot: Use Raw karambwanji icon for karambwanji spot (#17085)\n\npajlada (2):\n npcaggro: fix typo in Notify Expiration description (#17044)\n idle notifier: add crashed star mining animation ids\n\nrjarn (1):\n ClientThread: Fix javadoc grammar (#17088)\n\nskillingdev (1):\n screenshot: fix matching level 99 messages with level-up dialogs disabled\n
\n',image:"/img/blog/1.10.15-Release/rsprofile-default-linking.png"}}}]);
+//# sourceMappingURL=164.6b9c9841.chunk.js.map
\ No newline at end of file
diff --git a/static/js/164.f113fa47.chunk.js.map b/static/js/164.6b9c9841.chunk.js.map
similarity index 99%
rename from static/js/164.f113fa47.chunk.js.map
rename to static/js/164.6b9c9841.chunk.js.map
index f7e51b63a..984319e01 100644
--- a/static/js/164.f113fa47.chunk.js.map
+++ b/static/js/164.6b9c9841.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2023-11-05-10-00-1.10.15-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,2FAA2F,OAAS,SAAS,KAAO,gjUAAulU,MAAQ","file":"static/js/164.f113fa47.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.15 Release\",\"description\":\"Profile account linking, GPU performance improvements, and hidden unrelated areas in GPU\",\"author\":\"Jordan\",\"body\":\"Profile account linking \\nEarlier this year, we released profiles to let you easily switch between different plugins and\\nsettings. Paired with a new --profile
client argument for players wanting to\\nopen specific client windows to separate profiles, this helped most players manage their settings neatly, but did not\\nhandle two specific cases very well: players using the Jagex launcher, who could not use a --profile
argument; and\\nplayers who switched accounts in the same client. To help both of these cases, we've added profile account linking,\\nwhich lets players associate a RuneScape account with a specific profile, to be automatically switched to when logging\\nin. (This also supports accounts on special game modes such as Leagues, Deadman, and Quest Speedrunning!)
\\n
\\nLinking an account with one of your profiles is a simple process:
\\n\\nLog in to the account to be linked \\nExpand the card of the profile to link it to \\nClick the 🔗 button \\n \\nAs seen in the picture above, the link icon will be shown in orange when linked, and you can see\\nwhich accounts are linked to it in the button's tooltip.
\\nGPU performance improvements \\nOver the last 6 months we have been working in the background on performance improvements, starting with asynchronous map loading and extended map loading . More recently, we have increased the FPS via improving the tile cull testing, and also converted the client's camera to floating point arithmetic, which makes camera movement noticeably smoother. Unlocked FPS mode is now the default mode in the GPU plugin, we recommend checking it out if you are not using it currently.
\\nHide unrelated areas on GPU \\nHave you ever wondered why you're able to see the Abyss in the distance when scaling the Agility\\nPyramid? Or why from one runecrafting altar you're able to see others? Wonder no more, as unrelated\\nmap areas are now hidden when using the GPU plugin.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nObject indicators now support a separately-customizable fill color \\nThe Entity Hider and Random Event plugins both support the new Count Check random event \\nYour gains will now be reported via the XP Updater plugin on world hop as well as on logout \\nThe Report Button plugin's login timer no longer resets on a lost connection being re-established\\nwithout logging out \\nThe special attack counter now tracks Accursed sceptre specs \\nA Mark of Darkness timer has been added to the Timers plugin \\nThe Skill Calculator plugin learned the xp values for making a Forgotten brew \\n2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin \\n \\nEnjoy!
\\n- Jordan & Adam
\\nNew commits \\nWe had 21 contributors this update!
\\nAdam (56):\\n util: run asyncbufferedimage onLoaded callbacks when already loaded\\n api: remove setRenderArea\\n low detail: reset low detail flag on STARTING\\n gpu: early frustum cull tiles\\n gpu: default unlocked fps to on\\n object indicators: make hull fill color consistent\\n object indicators: open color picker to previously used color\\n object indicators: add configurable fill color\\n object indicators: revert "make hull fill color consistent"\\n api: remove NPCComposition isClickable\\n object indicators: add default fill color config\\n profile panel: strip crlf from profile names\\n interface styles: fix race with client startup\\n world hopper: ignore ping errors to current world\\n world hopper: only update panel ping if active\\n default world: don't apply world in safe mode\\n default world: don't apply beta or nosave worlds\\n default world: ignore pmd error\\n Revert "default world: ignore pmd error"\\n default world: fix injecting safemode\\n hooks: add openUrl callback\\n minimap: fix replacing map dots on client reload\\n camera: add right click examine option\\n attack styles: fix spurious warnings with autocasting staffs\\n perspective: support extended scene in getCanvasTileAreaPoly()\\n gpu: add option to hide unrelated maps\\n screenshot: remove imgur uploader\\n screenshot: move client frame code to ImageCapture\\n screenshot: imagecapture: add utility method for taking screenshots\\n screenshot: add screenshot taken event\\n draw callbacks: use floating point camera\\n api: add floating point camera accessors\\n perspective: use floating point projection\\n gpu: use floating point camera pos, yaw, and pitch\\n chat filter: null check player name in onOverheadTextChanged\\n idle notifier: add 2h axes and campfire anims\\n wintertodt: add 2h axes anims\\n woodcutting: rename WoodcuttingTreesOverlay to WoodcuttingSceneOverlay\\n woodcutting: add 2h axe anims\\n woodcutting: clear flowers on logout and world hop\\n woodcutting: add new forestry events\\n hiscore panel: switch from dmmt to leagues\\n woodcutting: clear pheasant nests on map load\\n woodcutting: update npc ids\\n entity hider: add count check\\n random events: add count check\\n rename runelite-script-assembler-plugin to runelite-maven-plugin\\n cache: update antlr to 4.13.1\\n api: codegen component and interface id constants\\n client: use new component and interface id constants\\n widgets: use new api\\n woodcutting: don't try to solve dyrad without 5 circles\\n idle notifier: add all campfire anims\\n fishing spot: add f2p wilderness spot\\n remove leagues relic varbit accesses\\n RSProfileType: add trailblazer reloaded league\\n\\nErik (1):\\n kingdom of miscellania: use midnight gmt for favour estimates\\n\\nFelanbird (4):\\n achievement diary: fix runecrafting steps\\n clues: Add Abyssal tentacles to Draynor Village Master emote clue\\n clues: Add Guardian boots to Zul-Andra Master emote clue\\n clues: Add Bow of faerdhinen's to Falo the bard step\\n\\nFredrik Haarde (1):\\n xp updater: Submit automatic updates on world hop (#15765)\\n\\nJordan Atwood (10):\\n game: Add isDying override for Bouncer's ghost\\n special counter: Add Accursed sceptre\\n Revert "item charges: Track Ardougne cloak charges"\\n clues: Add missing Falo The Bard item variants\\n report button: Don't reset login time on connection lost\\n default world: Remove empty shutDown method\\n ConfigManager: Improve switchProfile log message\\n ProfilePanel: Clean up UI code\\n config: Add default profile linking to config profiles\\n default world: Remove world change on profile change\\n\\nLevente Kurusa (1):\\n time tracking: rename giant compost bin to big compost bin\\n\\nMacweese (3):\\n slayer: add warped creatures task\\n timers: remove corruption cooldown on configchange\\n timers: add mark of darkness timer\\n\\nMax Weber (3):\\n gpu: extend frustum checks below the ground for sunken models\\n camera: remove compass look preserve pitch\\n update lombok\\n\\nMo Ben (1):\\n inventory grid: enable in bank with equipment view open\\n\\nMorgan Lewis (2):\\n crowdsourcing: Add sprite dialogue tracking (#16953)\\n NPCComposition: Expose color replacement and scale\\n\\nNicole M (2):\\n item charges: fix bracelet of clay tracking in prif mine\\n item charges: add egniol potions\\n\\nRasmus Karlsson (1):\\n objectindicators: deduplicate color suggestions\\n\\nRyanTamulevicz (1):\\n skill calc: add forgotten brew (#17019)\\n\\nSirGirion (2):\\n bank: fix showing seed vault value on open\\n item charges: Track Ardougne cloak charges\\n\\nYvesW (5):\\n notifier: fix typo in comment (#17069)\\n worldmap: fix stranglewood rowboats destinations\\n worldmap: add ring of the elements teleport locations\\n worldmap: add ring of shadows teleport locations\\n clues: add ring of shadows to cryptic and emote clue text\\n\\nbradysauter (1):\\n opponent info: add toggle for health overlay\\n\\niProdigy (1):\\n twitch: prepend oauth prefix to token if missing\\n\\nmatej-veselovsky (1):\\n FishingSpot: Use Raw karambwanji icon for karambwanji spot (#17085)\\n\\npajlada (2):\\n npcaggro: fix typo in Notify Expiration description (#17044)\\n idle notifier: add crashed star mining animation ids\\n\\nrjarn (1):\\n ClientThread: Fix javadoc grammar (#17088)\\n\\nskillingdev (1):\\n screenshot: fix matching level 99 messages with level-up dialogs disabled\\n
\\n\",\"image\":\"/img/blog/1.10.15-Release/rsprofile-default-linking.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2023-11-05-10-00-1.10.15-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,2FAA2F,OAAS,SAAS,KAAO,gjUAAulU,MAAQ","file":"static/js/164.6b9c9841.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.15 Release\",\"description\":\"Profile account linking, GPU performance improvements, and hidden unrelated areas in GPU\",\"author\":\"Jordan\",\"body\":\"Profile account linking \\nEarlier this year, we released profiles to let you easily switch between different plugins and\\nsettings. Paired with a new --profile
client argument for players wanting to\\nopen specific client windows to separate profiles, this helped most players manage their settings neatly, but did not\\nhandle two specific cases very well: players using the Jagex launcher, who could not use a --profile
argument; and\\nplayers who switched accounts in the same client. To help both of these cases, we've added profile account linking,\\nwhich lets players associate a RuneScape account with a specific profile, to be automatically switched to when logging\\nin. (This also supports accounts on special game modes such as Leagues, Deadman, and Quest Speedrunning!)
\\n
\\nLinking an account with one of your profiles is a simple process:
\\n\\nLog in to the account to be linked \\nExpand the card of the profile to link it to \\nClick the 🔗 button \\n \\nAs seen in the picture above, the link icon will be shown in orange when linked, and you can see\\nwhich accounts are linked to it in the button's tooltip.
\\nGPU performance improvements \\nOver the last 6 months we have been working in the background on performance improvements, starting with asynchronous map loading and extended map loading . More recently, we have increased the FPS via improving the tile cull testing, and also converted the client's camera to floating point arithmetic, which makes camera movement noticeably smoother. Unlocked FPS mode is now the default mode in the GPU plugin, we recommend checking it out if you are not using it currently.
\\nHide unrelated areas on GPU \\nHave you ever wondered why you're able to see the Abyss in the distance when scaling the Agility\\nPyramid? Or why from one runecrafting altar you're able to see others? Wonder no more, as unrelated\\nmap areas are now hidden when using the GPU plugin.
\\n\\n\\n\\nBefore \\nAfter \\n \\n \\n\\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nObject indicators now support a separately-customizable fill color \\nThe Entity Hider and Random Event plugins both support the new Count Check random event \\nYour gains will now be reported via the XP Updater plugin on world hop as well as on logout \\nThe Report Button plugin's login timer no longer resets on a lost connection being re-established\\nwithout logging out \\nThe special attack counter now tracks Accursed sceptre specs \\nA Mark of Darkness timer has been added to the Timers plugin \\nThe Skill Calculator plugin learned the xp values for making a Forgotten brew \\n2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin \\n \\nEnjoy!
\\n- Jordan & Adam
\\nNew commits \\nWe had 21 contributors this update!
\\nAdam (56):\\n util: run asyncbufferedimage onLoaded callbacks when already loaded\\n api: remove setRenderArea\\n low detail: reset low detail flag on STARTING\\n gpu: early frustum cull tiles\\n gpu: default unlocked fps to on\\n object indicators: make hull fill color consistent\\n object indicators: open color picker to previously used color\\n object indicators: add configurable fill color\\n object indicators: revert "make hull fill color consistent"\\n api: remove NPCComposition isClickable\\n object indicators: add default fill color config\\n profile panel: strip crlf from profile names\\n interface styles: fix race with client startup\\n world hopper: ignore ping errors to current world\\n world hopper: only update panel ping if active\\n default world: don't apply world in safe mode\\n default world: don't apply beta or nosave worlds\\n default world: ignore pmd error\\n Revert "default world: ignore pmd error"\\n default world: fix injecting safemode\\n hooks: add openUrl callback\\n minimap: fix replacing map dots on client reload\\n camera: add right click examine option\\n attack styles: fix spurious warnings with autocasting staffs\\n perspective: support extended scene in getCanvasTileAreaPoly()\\n gpu: add option to hide unrelated maps\\n screenshot: remove imgur uploader\\n screenshot: move client frame code to ImageCapture\\n screenshot: imagecapture: add utility method for taking screenshots\\n screenshot: add screenshot taken event\\n draw callbacks: use floating point camera\\n api: add floating point camera accessors\\n perspective: use floating point projection\\n gpu: use floating point camera pos, yaw, and pitch\\n chat filter: null check player name in onOverheadTextChanged\\n idle notifier: add 2h axes and campfire anims\\n wintertodt: add 2h axes anims\\n woodcutting: rename WoodcuttingTreesOverlay to WoodcuttingSceneOverlay\\n woodcutting: add 2h axe anims\\n woodcutting: clear flowers on logout and world hop\\n woodcutting: add new forestry events\\n hiscore panel: switch from dmmt to leagues\\n woodcutting: clear pheasant nests on map load\\n woodcutting: update npc ids\\n entity hider: add count check\\n random events: add count check\\n rename runelite-script-assembler-plugin to runelite-maven-plugin\\n cache: update antlr to 4.13.1\\n api: codegen component and interface id constants\\n client: use new component and interface id constants\\n widgets: use new api\\n woodcutting: don't try to solve dyrad without 5 circles\\n idle notifier: add all campfire anims\\n fishing spot: add f2p wilderness spot\\n remove leagues relic varbit accesses\\n RSProfileType: add trailblazer reloaded league\\n\\nErik (1):\\n kingdom of miscellania: use midnight gmt for favour estimates\\n\\nFelanbird (4):\\n achievement diary: fix runecrafting steps\\n clues: Add Abyssal tentacles to Draynor Village Master emote clue\\n clues: Add Guardian boots to Zul-Andra Master emote clue\\n clues: Add Bow of faerdhinen's to Falo the bard step\\n\\nFredrik Haarde (1):\\n xp updater: Submit automatic updates on world hop (#15765)\\n\\nJordan Atwood (10):\\n game: Add isDying override for Bouncer's ghost\\n special counter: Add Accursed sceptre\\n Revert "item charges: Track Ardougne cloak charges"\\n clues: Add missing Falo The Bard item variants\\n report button: Don't reset login time on connection lost\\n default world: Remove empty shutDown method\\n ConfigManager: Improve switchProfile log message\\n ProfilePanel: Clean up UI code\\n config: Add default profile linking to config profiles\\n default world: Remove world change on profile change\\n\\nLevente Kurusa (1):\\n time tracking: rename giant compost bin to big compost bin\\n\\nMacweese (3):\\n slayer: add warped creatures task\\n timers: remove corruption cooldown on configchange\\n timers: add mark of darkness timer\\n\\nMax Weber (3):\\n gpu: extend frustum checks below the ground for sunken models\\n camera: remove compass look preserve pitch\\n update lombok\\n\\nMo Ben (1):\\n inventory grid: enable in bank with equipment view open\\n\\nMorgan Lewis (2):\\n crowdsourcing: Add sprite dialogue tracking (#16953)\\n NPCComposition: Expose color replacement and scale\\n\\nNicole M (2):\\n item charges: fix bracelet of clay tracking in prif mine\\n item charges: add egniol potions\\n\\nRasmus Karlsson (1):\\n objectindicators: deduplicate color suggestions\\n\\nRyanTamulevicz (1):\\n skill calc: add forgotten brew (#17019)\\n\\nSirGirion (2):\\n bank: fix showing seed vault value on open\\n item charges: Track Ardougne cloak charges\\n\\nYvesW (5):\\n notifier: fix typo in comment (#17069)\\n worldmap: fix stranglewood rowboats destinations\\n worldmap: add ring of the elements teleport locations\\n worldmap: add ring of shadows teleport locations\\n clues: add ring of shadows to cryptic and emote clue text\\n\\nbradysauter (1):\\n opponent info: add toggle for health overlay\\n\\niProdigy (1):\\n twitch: prepend oauth prefix to token if missing\\n\\nmatej-veselovsky (1):\\n FishingSpot: Use Raw karambwanji icon for karambwanji spot (#17085)\\n\\npajlada (2):\\n npcaggro: fix typo in Notify Expiration description (#17044)\\n idle notifier: add crashed star mining animation ids\\n\\nrjarn (1):\\n ClientThread: Fix javadoc grammar (#17088)\\n\\nskillingdev (1):\\n screenshot: fix matching level 99 messages with level-up dialogs disabled\\n
\\n\",\"image\":\"/img/blog/1.10.15-Release/rsprofile-default-linking.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/165.f61f08d1.chunk.js b/static/js/165.f61f08d1.chunk.js
new file mode 100644
index 000000000..919ecd2c2
--- /dev/null
+++ b/static/js/165.f61f08d1.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[165],{441:function(e,n){e.exports={title:"1.10.23 Release",description:"New UI Look and Feel",author:"Adam",body:'New UI Look and Feel \nWe\'ve recently completed a large overhaul of our UI, the first change since 2018 .\nThis allows native Window snapping support on Windows 10 and 11, on MacOS uses the native titlebar, and fixes inconsistent maximize behavior when using multiple displays of different scaling factors. The titlebar and tray icon has also been updated to a new pixelart version of the logo thanks to con_no_1
.
\n
\nAdditionally I would like to apologize for how bumpy this update was. We went through several iterations of update & rollback between January 13 and 30 which you might have noticed, causing the client to switch between the old and new L&F multiple times. While we do rollbacks occasionally, applying this to the UI updates caused a lot more consternation due to the changes being so visible. Many of the issues brought to our attention were changes to behaviors that we didn\'t know we had or that people relied upon. We have since fixed back the behaviors of everything that we can reasonably do.
\nPlayer menu collapsing \nThe interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nYou can now locate all your dashing clue gear that is storable in the POH treasure chest with the new treasure chest
bank tag, freeing up bank space! \nUS servers now show east or west on the world hopper. \nTime tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch. \nThe Window opacity
setting now works on more systems (MacOS/Linux) and also with custom chrome off. \nThe wiki plugin adds a View DPS
button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear. \nTree respawn timers now use the Jagex respawn timers. \nThe message from the NPC unaggression plugin being uncalibrated is now an infobox. \nCamera speed can now be adjusted in the camera plugin. \nCustom notification volume can now be adjusted under notification settings. \nGroup ironman shared storage can now be searched using the search hotkey. \nLoot tracking for the Nightmare and Phosani\'s Nightmare has been fixed. \nA bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed. \nThe chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list. \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 31 contributors this update!
\nAdam (98):\n gpu: regions: fix air altar\n status bars: fix lms check\n friendlist: fix friend list title component id\n api: add AmbientSoundEffectCreated event\n api: add ambient sound effect background ids\n widget util: add utility method for packing component ids\n loottracker: include relic selections in npc metadata\n gpu: regions: add pyramid plunder\n null check getSelectedWidget() on menu click\n prayer: move drain rate to prayer plugin\n prayer: add drain rate test\n prayer: convert drain rate to drain effect\n prayer: add ruinous powers\n xpdrop: support multiple prayer types per prayer\n xpdrop: rename package to xpdrop\n xpdrop: add ruinous powers\n rs: add js5connect error message\n clues: add treasure chest bank tag\n xp drops: fix coloring defensive casting\n clues: fix treasure chest tag test\n api: add widget createStaticChild\n api: add widget setOnScrollWheelListener\n bank tags: refactor ui to use layers\n bank tags: rebuild tag tab tab on new/import/delete\n bank tags: fix scrolling the tag tab\n bank tags: remove separators prior to computing scroll\n bank tags: remove use of dummy script null\n bank tags: fix pmd violation\n menu swapper: fix ui swapping optarget\n raids: simplify login scout check\n raids: fix scouting on raid reload\n chat filter: cache filter results\n raids: reset raid on party id change\n bank tags: move onMenuOptionClicked subscriber to TabInterface\n bank tags: remove unused import\n api: add scene tile model/paint isFlat()\n gpu: fix tile uvs\n clues: include alternatives in treasure chest tag\n gpu: flip y/z in projection\n gpu: reverse z\n api: include WidgetConfig in runtime api\n gpu: remove radius from compute shaders\n gpu: use floating point for vertex positions\n music: correctly apply ambient sound mute on startup and shutdown\n clues: use builder for cryptic clues\n clues: add npc regions for cryptic clues\n fishing: fix tracking Karambwanji\n gpu: fix cl compilation on amd gpus\n Revert "gpu: fix cl compilation on amd gpus"\n Revert "gpu: use floating point for vertex positions"\n world hopper: cleanup\n world hopper: add us east/west coast flags\n cryptic clues: fix object id initializer\n time tracking: support payment tracking of multi-patch npcs\n containable frame: remove setMaximizedBounds workaround\n ui: remove contain in screen ALWAYS\n IconTextField: fix popup suggestion list size\n config: use default font for JPasswordField\n containable frame: fix Window.setMinimumSize DPI scaling\n laf: disable text antialiasing for rs fonts\n banktags: fix tabtabs tab\n worldpoint: use signed right shift for local to world conversion\n laf: change titlepane height to 27px\n ui: remove window opacity setting\n screenshot: image capture: support insets on client frame\n update flatlaf to 3.2.5-rl2\n ui: readd contain in screen ALWAYS\n add scurrius\n hiscores: add scurrius boss icon\n devtools: cleanup location overlays\n ContainableFrame: apply insets to old rhs offset behavior\n laf: change titlepane height to 23px\n clientui: adjust for frame insets when performing display bounds check\n ui: readd window opacity setting\n use backgroundless logo for image icon\n update flatlaf to 3.2.5-rl3\n Revert "update flatlaf to 3.2.5-rl3"\n update flatlaf to 3.2.5-rl4\n api: add size x/y to ObjectComposition\n overlay: use floating point overlay priority\n replace OverlayPriority use with corresponding constants\n woodcutting: use add_overlaytimer_loc for respawn timer\n bank tags: use only dynamic components for tab layer\n Revert "api: add widget createStaticChild"\n worldmap: strip pngs\n api: add setter for ScriptEvent op\n bank: use scriptevent for shared bank search trigger\n rs: add error dialog for js5io and crash errors\n npc unaggro: remove recheckActive on LOGGED_IN\n Revert "npc unaggro: remove recheckActive on LOGGED_IN"\n npc unaggro: remove recheckActive on LOGGED_IN\n npc unaggro: change uncalibrated overlay into an infobox\n Revert "clientui: force keep window size on when snapped on windows"\n woodcutting: fix respawn overlay on rotated objects\n cache: update 220\n Revert "npc unaggro: remove recheckActive on LOGGED_IN"\n npc unaggro: check active before doing npc scans\n roof removal: fix race applying roof flags with startup\n\nChristopher Michael Mescher (1):\n world map: Add capes of achievement teleports\n\nDavid Pedersen (1):\n xp updater: add runetracker support\n\nEmil Hansen (1):\n ground items: fix inferno despawn timer\n\nEric White (1):\n notifier: add flash taskbar option\n\nFelanbird (11):\n achievement diary: update fremennik astral rune task (#17221)\n idle notifier: add cow milking animation id\n idle notifier: add dairy churn animation ids\n clues: add fairy ring to mudskipper point emote step\n achievement diary: add new kourend task\n achievement diary: remove kourend favour\n clues: update lizardman canyon hot-cold step\n idle notifier: add specimen cleaning animation ids\n world map: add AKR fairy ring\n worldmap: fix Kourend teleport level\n achievement diary: update various tasks\n\nGeordan Neukum (1):\n clues: recognize (l)(t) variant of dragon defender\n\nJZomDev (1):\n ui: don\'t apply opacity in safe mode\n\nJason O\'Neill (1):\n npc aggro area: ignore unattackable NPCs\n\nJordan Atwood (8):\n loot tracker: Fix TOB chest interface id\n loot tracker: Fix interface id in tests\n loot tracker: Track unsired loot\n slayer: Fix initial amount when task changes\n clues: Fix Lovada cryptic clue text\n clientui: Support Linux WM layout\n clues: Add Wizards\' tower region to Wizards\' tower clue\n timers: Track god wars altar cooldown via varbit\n\nJoshua Kuan (1):\n clues: fix single item fulfilledBy check\n\nLouis Hong (1):\n notifier: add custom notification volume control\n\nLukas H\xf6nig (2):\n achievement diary: add 30 Constr. req. to crane repair task\n woodcutting: fix division by zero computing hourly rate\n\nMacweese (3):\n clues: fix comment grammar\n clues: add felling axes\n clues: add trailblazer tools\n\nMax Weber (31):\n api: add Animation::restartMode accessors\n runepouch: skip empty slots in grid view\n api: expose drawFrustum & drawWidgetText\n fairyring: add vinery fairy ring\n kourendlibrary: remove dark manuscripts\n runelite-client: use FlatLaf\n devtools: add swing inspector\n clientui: optimize for FlatLaf\n config: optimize for FlatLaf\n clientui: apply client size config correctly\n clientui: use sidebar pref width as min width\n clientui: add 4px border in custom chrome mode\n clientui: do not try to shift the frame in screen when not changing size\n clientui: do not show custom chrome border when maximized\n clientui: do not include insets in game size config\n clientui: correctly apply suction when expanding via min size change\n ContainableFrame: fix dpi scaled minimum size hack\n ContainableFrame: restore old rhs offset behavior\n ContainableFrame: set suction when shifted by native containment\n ContainableFrame: use hungarian to prevent window / content coord misuse\n clientui: listen for sidebar hotkeys when the client is not focused\n clientui: give client focus when closing or hiding the sidebar\n clientui: synchronously update the root pane\'s size\n rl-client: remove ItemVariationMappingTest\n ContainableFrame: remove non-native containedInScreen==ALWAYS code\n ContainableFrame: always contain & suction when snapped on windows\n clientui: force keep window size on when snapped on windows\n clientui: save game size instead of window size when keeping game size\n clientui: remember last restored bounds when starting maximized\n skillcalculator: remove checkbox panel background\n config: remove unused JCheckBox::setBackground\n\nPhraZier (1):\n bank: support group storage with search hotkey\n\nPortAGuy (1):\n party: tie ping duration to system time\n\nRasmus Karlsson (2):\n clues: reword Varrock Apothecary cryptic clue solution\n clues: clarify Burthorpe Games Room emote clue location\n\nRobin (1):\n update wise old man API endpoints\n\nRon Young (1):\n overlay manager: revalidate overlays on profile change\n\nYenof (1):\n clues: Add Team Cape 0/X/I to emote clue steps (#17273)\n\nYvesW (5):\n prayer: disable reordering on shutdown\n idle notifier: add crystal felling axe (inactive) animation\n wintertodt: add crystal felling axe (inactive) animation\n woodcutting: add crystal felling axe (inactive) animation\n chat commands: fix theatre of blood: entry mode Previously the branch was unreachable: the label contained uppercase symbols while the selector is lowercase-only (boss.toLowerCase())\n\ngeheur (3):\n clues: fix hotcold class initialization\n bank tags: only close chatbox interface when clicking bank ops\n prayer: reorder prayers on profile change\n\niProdigy (1):\n chat commands: fix off-by-one team size for out-of-order toa pb\n\nldahleen54 (1):\n config: allow using tab key for hotkeys\n\npkhermouch (1):\n cryptic clues: update Sinclair Mansion solution\n\nsam (1):\n Trailblazer league reloaded rune pouch up to 6 runes.\n\nsmol-tako (2):\n item identification: add Forgotten brew and Blighted super restore\n chat history: fix Copy to clipboard for friend dms\n\nsonnypb (1):\n timers: add Spellbook Swap timer\n\ntesting-ongithub (8):\n worldmap: fix Lovakengj mine cart location\n worldmap: add new minecart locations\n worldmap: rename minecarts to match in-game list\n worldmap: fix DIP fairy ring location\n worldmap: add ALR fairy ring\n worldmap: alphabetize fairy rings\n worldmap: use Zanaris fairy code rather than location\n worldmap: comment fairy rings that don\'t exist on the world map\n\ntimleafy (1):\n worldmap: add mining guild west amethyst\n
\n',image:"/img/blog/1.10.23-Release/sidebar.png"}}}]);
+//# sourceMappingURL=165.f61f08d1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/165.f61f08d1.chunk.js.map b/static/js/165.f61f08d1.chunk.js.map
new file mode 100644
index 000000000..355730f6a
--- /dev/null
+++ b/static/js/165.f61f08d1.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["_posts/2024-02-24-23-00-1.10.23-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,uBAAuB,OAAS,OAAO,KAAO,u9aAA+9a,MAAQ","file":"static/js/165.f61f08d1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.23 Release\",\"description\":\"New UI Look and Feel\",\"author\":\"Adam\",\"body\":\"New UI Look and Feel \\nWe've recently completed a large overhaul of our UI, the first change since 2018 .\\nThis allows native Window snapping support on Windows 10 and 11, on MacOS uses the native titlebar, and fixes inconsistent maximize behavior when using multiple displays of different scaling factors. The titlebar and tray icon has also been updated to a new pixelart version of the logo thanks to con_no_1
.
\\n
\\nAdditionally I would like to apologize for how bumpy this update was. We went through several iterations of update & rollback between January 13 and 30 which you might have noticed, causing the client to switch between the old and new L&F multiple times. While we do rollbacks occasionally, applying this to the UI updates caused a lot more consternation due to the changes being so visible. Many of the issues brought to our attention were changes to behaviors that we didn't know we had or that people relied upon. We have since fixed back the behaviors of everything that we can reasonably do.
\\nPlayer menu collapsing \\nThe interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nYou can now locate all your dashing clue gear that is storable in the POH treasure chest with the new treasure chest
bank tag, freeing up bank space! \\nUS servers now show east or west on the world hopper. \\nTime tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch. \\nThe Window opacity
setting now works on more systems (MacOS/Linux) and also with custom chrome off. \\nThe wiki plugin adds a View DPS
button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear. \\nTree respawn timers now use the Jagex respawn timers. \\nThe message from the NPC unaggression plugin being uncalibrated is now an infobox. \\nCamera speed can now be adjusted in the camera plugin. \\nCustom notification volume can now be adjusted under notification settings. \\nGroup ironman shared storage can now be searched using the search hotkey. \\nLoot tracking for the Nightmare and Phosani's Nightmare has been fixed. \\nA bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed. \\nThe chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list. \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 31 contributors this update!
\\nAdam (98):\\n gpu: regions: fix air altar\\n status bars: fix lms check\\n friendlist: fix friend list title component id\\n api: add AmbientSoundEffectCreated event\\n api: add ambient sound effect background ids\\n widget util: add utility method for packing component ids\\n loottracker: include relic selections in npc metadata\\n gpu: regions: add pyramid plunder\\n null check getSelectedWidget() on menu click\\n prayer: move drain rate to prayer plugin\\n prayer: add drain rate test\\n prayer: convert drain rate to drain effect\\n prayer: add ruinous powers\\n xpdrop: support multiple prayer types per prayer\\n xpdrop: rename package to xpdrop\\n xpdrop: add ruinous powers\\n rs: add js5connect error message\\n clues: add treasure chest bank tag\\n xp drops: fix coloring defensive casting\\n clues: fix treasure chest tag test\\n api: add widget createStaticChild\\n api: add widget setOnScrollWheelListener\\n bank tags: refactor ui to use layers\\n bank tags: rebuild tag tab tab on new/import/delete\\n bank tags: fix scrolling the tag tab\\n bank tags: remove separators prior to computing scroll\\n bank tags: remove use of dummy script null\\n bank tags: fix pmd violation\\n menu swapper: fix ui swapping optarget\\n raids: simplify login scout check\\n raids: fix scouting on raid reload\\n chat filter: cache filter results\\n raids: reset raid on party id change\\n bank tags: move onMenuOptionClicked subscriber to TabInterface\\n bank tags: remove unused import\\n api: add scene tile model/paint isFlat()\\n gpu: fix tile uvs\\n clues: include alternatives in treasure chest tag\\n gpu: flip y/z in projection\\n gpu: reverse z\\n api: include WidgetConfig in runtime api\\n gpu: remove radius from compute shaders\\n gpu: use floating point for vertex positions\\n music: correctly apply ambient sound mute on startup and shutdown\\n clues: use builder for cryptic clues\\n clues: add npc regions for cryptic clues\\n fishing: fix tracking Karambwanji\\n gpu: fix cl compilation on amd gpus\\n Revert "gpu: fix cl compilation on amd gpus"\\n Revert "gpu: use floating point for vertex positions"\\n world hopper: cleanup\\n world hopper: add us east/west coast flags\\n cryptic clues: fix object id initializer\\n time tracking: support payment tracking of multi-patch npcs\\n containable frame: remove setMaximizedBounds workaround\\n ui: remove contain in screen ALWAYS\\n IconTextField: fix popup suggestion list size\\n config: use default font for JPasswordField\\n containable frame: fix Window.setMinimumSize DPI scaling\\n laf: disable text antialiasing for rs fonts\\n banktags: fix tabtabs tab\\n worldpoint: use signed right shift for local to world conversion\\n laf: change titlepane height to 27px\\n ui: remove window opacity setting\\n screenshot: image capture: support insets on client frame\\n update flatlaf to 3.2.5-rl2\\n ui: readd contain in screen ALWAYS\\n add scurrius\\n hiscores: add scurrius boss icon\\n devtools: cleanup location overlays\\n ContainableFrame: apply insets to old rhs offset behavior\\n laf: change titlepane height to 23px\\n clientui: adjust for frame insets when performing display bounds check\\n ui: readd window opacity setting\\n use backgroundless logo for image icon\\n update flatlaf to 3.2.5-rl3\\n Revert "update flatlaf to 3.2.5-rl3"\\n update flatlaf to 3.2.5-rl4\\n api: add size x/y to ObjectComposition\\n overlay: use floating point overlay priority\\n replace OverlayPriority use with corresponding constants\\n woodcutting: use add_overlaytimer_loc for respawn timer\\n bank tags: use only dynamic components for tab layer\\n Revert "api: add widget createStaticChild"\\n worldmap: strip pngs\\n api: add setter for ScriptEvent op\\n bank: use scriptevent for shared bank search trigger\\n rs: add error dialog for js5io and crash errors\\n npc unaggro: remove recheckActive on LOGGED_IN\\n Revert "npc unaggro: remove recheckActive on LOGGED_IN"\\n npc unaggro: remove recheckActive on LOGGED_IN\\n npc unaggro: change uncalibrated overlay into an infobox\\n Revert "clientui: force keep window size on when snapped on windows"\\n woodcutting: fix respawn overlay on rotated objects\\n cache: update 220\\n Revert "npc unaggro: remove recheckActive on LOGGED_IN"\\n npc unaggro: check active before doing npc scans\\n roof removal: fix race applying roof flags with startup\\n\\nChristopher Michael Mescher (1):\\n world map: Add capes of achievement teleports\\n\\nDavid Pedersen (1):\\n xp updater: add runetracker support\\n\\nEmil Hansen (1):\\n ground items: fix inferno despawn timer\\n\\nEric White (1):\\n notifier: add flash taskbar option\\n\\nFelanbird (11):\\n achievement diary: update fremennik astral rune task (#17221)\\n idle notifier: add cow milking animation id\\n idle notifier: add dairy churn animation ids\\n clues: add fairy ring to mudskipper point emote step\\n achievement diary: add new kourend task\\n achievement diary: remove kourend favour\\n clues: update lizardman canyon hot-cold step\\n idle notifier: add specimen cleaning animation ids\\n world map: add AKR fairy ring\\n worldmap: fix Kourend teleport level\\n achievement diary: update various tasks\\n\\nGeordan Neukum (1):\\n clues: recognize (l)(t) variant of dragon defender\\n\\nJZomDev (1):\\n ui: don't apply opacity in safe mode\\n\\nJason O'Neill (1):\\n npc aggro area: ignore unattackable NPCs\\n\\nJordan Atwood (8):\\n loot tracker: Fix TOB chest interface id\\n loot tracker: Fix interface id in tests\\n loot tracker: Track unsired loot\\n slayer: Fix initial amount when task changes\\n clues: Fix Lovada cryptic clue text\\n clientui: Support Linux WM layout\\n clues: Add Wizards' tower region to Wizards' tower clue\\n timers: Track god wars altar cooldown via varbit\\n\\nJoshua Kuan (1):\\n clues: fix single item fulfilledBy check\\n\\nLouis Hong (1):\\n notifier: add custom notification volume control\\n\\nLukas Hönig (2):\\n achievement diary: add 30 Constr. req. to crane repair task\\n woodcutting: fix division by zero computing hourly rate\\n\\nMacweese (3):\\n clues: fix comment grammar\\n clues: add felling axes\\n clues: add trailblazer tools\\n\\nMax Weber (31):\\n api: add Animation::restartMode accessors\\n runepouch: skip empty slots in grid view\\n api: expose drawFrustum & drawWidgetText\\n fairyring: add vinery fairy ring\\n kourendlibrary: remove dark manuscripts\\n runelite-client: use FlatLaf\\n devtools: add swing inspector\\n clientui: optimize for FlatLaf\\n config: optimize for FlatLaf\\n clientui: apply client size config correctly\\n clientui: use sidebar pref width as min width\\n clientui: add 4px border in custom chrome mode\\n clientui: do not try to shift the frame in screen when not changing size\\n clientui: do not show custom chrome border when maximized\\n clientui: do not include insets in game size config\\n clientui: correctly apply suction when expanding via min size change\\n ContainableFrame: fix dpi scaled minimum size hack\\n ContainableFrame: restore old rhs offset behavior\\n ContainableFrame: set suction when shifted by native containment\\n ContainableFrame: use hungarian to prevent window / content coord misuse\\n clientui: listen for sidebar hotkeys when the client is not focused\\n clientui: give client focus when closing or hiding the sidebar\\n clientui: synchronously update the root pane's size\\n rl-client: remove ItemVariationMappingTest\\n ContainableFrame: remove non-native containedInScreen==ALWAYS code\\n ContainableFrame: always contain & suction when snapped on windows\\n clientui: force keep window size on when snapped on windows\\n clientui: save game size instead of window size when keeping game size\\n clientui: remember last restored bounds when starting maximized\\n skillcalculator: remove checkbox panel background\\n config: remove unused JCheckBox::setBackground\\n\\nPhraZier (1):\\n bank: support group storage with search hotkey\\n\\nPortAGuy (1):\\n party: tie ping duration to system time\\n\\nRasmus Karlsson (2):\\n clues: reword Varrock Apothecary cryptic clue solution\\n clues: clarify Burthorpe Games Room emote clue location\\n\\nRobin (1):\\n update wise old man API endpoints\\n\\nRon Young (1):\\n overlay manager: revalidate overlays on profile change\\n\\nYenof (1):\\n clues: Add Team Cape 0/X/I to emote clue steps (#17273)\\n\\nYvesW (5):\\n prayer: disable reordering on shutdown\\n idle notifier: add crystal felling axe (inactive) animation\\n wintertodt: add crystal felling axe (inactive) animation\\n woodcutting: add crystal felling axe (inactive) animation\\n chat commands: fix theatre of blood: entry mode Previously the branch was unreachable: the label contained uppercase symbols while the selector is lowercase-only (boss.toLowerCase())\\n\\ngeheur (3):\\n clues: fix hotcold class initialization\\n bank tags: only close chatbox interface when clicking bank ops\\n prayer: reorder prayers on profile change\\n\\niProdigy (1):\\n chat commands: fix off-by-one team size for out-of-order toa pb\\n\\nldahleen54 (1):\\n config: allow using tab key for hotkeys\\n\\npkhermouch (1):\\n cryptic clues: update Sinclair Mansion solution\\n\\nsam (1):\\n Trailblazer league reloaded rune pouch up to 6 runes.\\n\\nsmol-tako (2):\\n item identification: add Forgotten brew and Blighted super restore\\n chat history: fix Copy to clipboard for friend dms\\n\\nsonnypb (1):\\n timers: add Spellbook Swap timer\\n\\ntesting-ongithub (8):\\n worldmap: fix Lovakengj mine cart location\\n worldmap: add new minecart locations\\n worldmap: rename minecarts to match in-game list\\n worldmap: fix DIP fairy ring location\\n worldmap: add ALR fairy ring\\n worldmap: alphabetize fairy rings\\n worldmap: use Zanaris fairy code rather than location\\n worldmap: comment fairy rings that don't exist on the world map\\n\\ntimleafy (1):\\n worldmap: add mining guild west amethyst\\n
\\n\",\"image\":\"/img/blog/1.10.23-Release/sidebar.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/17.1f85fa06.chunk.js b/static/js/17.9efd8dd2.chunk.js
similarity index 93%
rename from static/js/17.1f85fa06.chunk.js
rename to static/js/17.9efd8dd2.chunk.js
index 9c9314871..80f98df21 100644
--- a/static/js/17.1f85fa06.chunk.js
+++ b/static/js/17.9efd8dd2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[17],{126:function(t,e,c){"use strict";var s=c(0);var a=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:c,...n}=t;return n.class=n.class?"container "+n.class:"container",n.style={...n.style||{},maxWidth:c?"100%":""},Object(s.g)("div",Object.assign({},n,{id:"layout"}),e,Object(s.g)(a,null))}},453:function(t,e,c){"use strict";c.r(e);var s=c(0),a=c(126),n=c(7),i=c.n(n),o=c(46);e.default=t=>{let{code:e}=t;return Object(s.g)(a.a,null,Object(s.g)(o.a,{title:"GitHub-Discord Connection - "+i.a.title}),Object(s.g)("section",{id:"gh-auth"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Almost there..."),Object(s.g)("div",null,"To complete authentication, send:",Object(s.g)("pre",{class:"pre-select"},"/ghauth oauth_code:",e),"In the"," ",Object(s.g)("a",{href:"https://runelite.net/discord",title:"RuneLite Discord"},"RuneLite Discord")))))}}}]);
-//# sourceMappingURL=17.1f85fa06.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[17],{126:function(t,e,c){"use strict";var s=c(0);var a=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:c,...n}=t;return n.class=n.class?"container "+n.class:"container",n.style={...n.style||{},maxWidth:c?"100%":""},Object(s.g)("div",Object.assign({},n,{id:"layout"}),e,Object(s.g)(a,null))}},455:function(t,e,c){"use strict";c.r(e);var s=c(0),a=c(126),n=c(7),i=c.n(n),o=c(46);e.default=t=>{let{code:e}=t;return Object(s.g)(a.a,null,Object(s.g)(o.a,{title:"GitHub-Discord Connection - "+i.a.title}),Object(s.g)("section",{id:"gh-auth"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Almost there..."),Object(s.g)("div",null,"To complete authentication, send:",Object(s.g)("pre",{class:"pre-select"},"/ghauth oauth_code:",e),"In the"," ",Object(s.g)("a",{href:"https://runelite.net/discord",title:"RuneLite Discord"},"RuneLite Discord")))))}}}]);
+//# sourceMappingURL=17.9efd8dd2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/17.1f85fa06.chunk.js.map b/static/js/17.9efd8dd2.chunk.js.map
similarity index 97%
rename from static/js/17.1f85fa06.chunk.js.map
rename to static/js/17.9efd8dd2.chunk.js.map
index 8acaf5e3e..28a7c78fd 100644
--- a/static/js/17.1f85fa06.chunk.js.map
+++ b/static/js/17.9efd8dd2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","routes/gh-auth-code.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","GitHubAuthCode","code","Meta","title","hero"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,mDAyBec,UApBQR,IAAA,IAAC,KAAES,GAAMT,EAAA,OAC9BL,YAACI,IAAM,KACLJ,YAACe,IAAI,CAACC,MAAQ,+BAA8BC,IAAKD,QAEjDhB,YAAA,WAASC,GAAG,WACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,mBACxBF,YAAA,WAAK,oCAEHA,YAAA,OAAKE,MAAM,cAAa,sBAAoBY,GAAW,SAChD,IACPd,YAAA,KAAGG,KAAK,+BAA+Ba,MAAM,oBAAmB","file":"static/js/17.1f85fa06.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst GitHubAuthCode = ({ code }) => (\n \n \n\n \n \n \n
\n To complete authentication, send:\n
/ghauth oauth_code:{code} \n In the{' '}\n
\n RuneLite Discord\n \n
\n
\n \n \n)\n\nexport default GitHubAuthCode\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","routes/gh-auth-code.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","GitHubAuthCode","code","Meta","title","hero"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,mDAyBec,UApBQR,IAAA,IAAC,KAAES,GAAMT,EAAA,OAC9BL,YAACI,IAAM,KACLJ,YAACe,IAAI,CAACC,MAAQ,+BAA8BC,IAAKD,QAEjDhB,YAAA,WAASC,GAAG,WACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,mBACxBF,YAAA,WAAK,oCAEHA,YAAA,OAAKE,MAAM,cAAa,sBAAoBY,GAAW,SAChD,IACPd,YAAA,KAAGG,KAAK,+BAA+Ba,MAAM,oBAAmB","file":"static/js/17.9efd8dd2.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst GitHubAuthCode = ({ code }) => (\n \n \n\n \n \n \n
\n To complete authentication, send:\n
/ghauth oauth_code:{code} \n In the{' '}\n
\n RuneLite Discord\n \n
\n
\n \n \n)\n\nexport default GitHubAuthCode\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/18.682fa400.chunk.js b/static/js/18.6e7a6d54.chunk.js
similarity index 91%
rename from static/js/18.682fa400.chunk.js
rename to static/js/18.6e7a6d54.chunk.js
index a0ea64afb..b777be3ab 100644
--- a/static/js/18.682fa400.chunk.js
+++ b/static/js/18.6e7a6d54.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[18],{126:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),e,Object(s.g)(c,null))}},454:function(t,e,a){"use strict";a.r(e);var s=a(0),c=a(126),i=a(7),n=a.n(i),l=a(46);e.default=()=>Object(s.g)(c.a,null,Object(s.g)(l.a,{title:"Loading - "+n.a.title}),Object(s.g)("section",{id:"loading"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Loading..."),Object(s.g)("p",null,"Please wait while you are redirected."))))}}]);
-//# sourceMappingURL=18.682fa400.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[18],{126:function(t,e,a){"use strict";var s=a(0);var c=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...i}=t;return i.class=i.class?"container "+i.class:"container",i.style={...i.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},i,{id:"layout"}),e,Object(s.g)(c,null))}},456:function(t,e,a){"use strict";a.r(e);var s=a(0),c=a(126),i=a(7),n=a.n(i),l=a(46);e.default=()=>Object(s.g)(c.a,null,Object(s.g)(l.a,{title:"Loading - "+n.a.title}),Object(s.g)("section",{id:"loading"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Loading..."),Object(s.g)("p",null,"Please wait while you are redirected."))))}}]);
+//# sourceMappingURL=18.6e7a6d54.chunk.js.map
\ No newline at end of file
diff --git a/static/js/18.682fa400.chunk.js.map b/static/js/18.6e7a6d54.chunk.js.map
similarity index 97%
rename from static/js/18.682fa400.chunk.js.map
rename to static/js/18.6e7a6d54.chunk.js.map
index ea3d853cd..3096c0687 100644
--- a/static/js/18.682fa400.chunk.js.map
+++ b/static/js/18.6e7a6d54.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","routes/loading.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","Meta","title","hero"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,mDAkBec,UAbCA,IACdb,YAACI,IAAM,KACLJ,YAACc,IAAI,CAACC,MAAQ,aAAYC,IAAKD,QAE/Bf,YAAA,WAASC,GAAG,WACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,cACxBF,YAAA,SAAG","file":"static/js/18.682fa400.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst Loading = () => (\n \n \n\n \n \n \n
Please wait while you are redirected.
\n
\n \n \n)\n\nexport default Loading\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","routes/loading.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","Meta","title","hero"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,mDAkBec,UAbCA,IACdb,YAACI,IAAM,KACLJ,YAACc,IAAI,CAACC,MAAQ,aAAYC,IAAKD,QAE/Bf,YAAA,WAASC,GAAG,WACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,cACxBF,YAAA,SAAG","file":"static/js/18.6e7a6d54.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\n\nconst Loading = () => (\n \n \n\n \n \n \n
Please wait while you are redirected.
\n
\n \n \n)\n\nexport default Loading\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/19.8e76c0a5.chunk.js b/static/js/19.6c50b715.chunk.js
similarity index 94%
rename from static/js/19.8e76c0a5.chunk.js
rename to static/js/19.6c50b715.chunk.js
index e37079e25..04972e386 100644
--- a/static/js/19.8e76c0a5.chunk.js
+++ b/static/js/19.6c50b715.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[19],{126:function(e,t,s){"use strict";var o=s(0);var n=()=>Object(o.g)("section",{id:"footer"},Object(o.g)("div",{class:"content-section"},Object(o.g)("footer",null,Object(o.g)("hr",null),"Developed with ",Object(o.g)("i",{class:"fas fa-heart"})," and"," ",Object(o.g)("i",{class:"fas fa-coffee"})," using"," ",Object(o.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(o.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(o.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(o.g)("a",{href:"/atom.xml",class:"float-right"},Object(o.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:s,...c}=e;return c.class=c.class?"container "+c.class:"container",c.style={...c.style||{},maxWidth:s?"100%":""},Object(o.g)("div",Object.assign({},c,{id:"layout"}),t,Object(o.g)(n,null))}},452:function(e,t,s){"use strict";s.r(t);var o=s(0),n=s(126),c=s(7),a=s.n(c),i=s(46),l=s(11),r=s(27),u=s(20);class g extends o.a{componentDidMount(){this.props.sessionId&&this.props.username&&this.props.setSession({uuid:this.props.sessionId,username:this.props.username})}render(e){let{sessionId:t,username:s}=e;const c=s&&t?Object(o.g)("p",null,"You have successfully logged in as ",Object(o.g)("b",null,s),". You can now either close this window or navigate to your"," ",Object(o.g)("a",{href:"/account/home"},"account page"),"."):Object(o.g)("p",null,"You have successfully logged into RuneLite. Your profiles have been synced to the client, if you have any. If you want to use one of these profiles now, switch to the profile by double clicking the profile in the profiles panel.",Object(o.g)("br",null),Object(o.g)("br",null),"You may now close this window.");return Object(o.g)(n.a,null,Object(o.g)(i.a,{title:"Successfully logged in - "+a.a.title}),Object(o.g)("section",{id:"logged-in"},Object(o.g)("div",{class:"content-section"},Object(o.g)("h1",{class:"page-header"},"Congratulations!"),c)))}}t.default=Object(r.b)(e=>e,e=>Object(l.b)({setSession:u.f},e))(g)}}]);
-//# sourceMappingURL=19.8e76c0a5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[19],{126:function(e,t,s){"use strict";var o=s(0);var n=()=>Object(o.g)("section",{id:"footer"},Object(o.g)("div",{class:"content-section"},Object(o.g)("footer",null,Object(o.g)("hr",null),"Developed with ",Object(o.g)("i",{class:"fas fa-heart"})," and"," ",Object(o.g)("i",{class:"fas fa-coffee"})," using"," ",Object(o.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(o.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(o.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(o.g)("a",{href:"/atom.xml",class:"float-right"},Object(o.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:s,...c}=e;return c.class=c.class?"container "+c.class:"container",c.style={...c.style||{},maxWidth:s?"100%":""},Object(o.g)("div",Object.assign({},c,{id:"layout"}),t,Object(o.g)(n,null))}},454:function(e,t,s){"use strict";s.r(t);var o=s(0),n=s(126),c=s(7),a=s.n(c),i=s(46),l=s(11),r=s(27),u=s(20);class g extends o.a{componentDidMount(){this.props.sessionId&&this.props.username&&this.props.setSession({uuid:this.props.sessionId,username:this.props.username})}render(e){let{sessionId:t,username:s}=e;const c=s&&t?Object(o.g)("p",null,"You have successfully logged in as ",Object(o.g)("b",null,s),". You can now either close this window or navigate to your"," ",Object(o.g)("a",{href:"/account/home"},"account page"),"."):Object(o.g)("p",null,"You have successfully logged into RuneLite. Your profiles have been synced to the client, if you have any. If you want to use one of these profiles now, switch to the profile by double clicking the profile in the profiles panel.",Object(o.g)("br",null),Object(o.g)("br",null),"You may now close this window.");return Object(o.g)(n.a,null,Object(o.g)(i.a,{title:"Successfully logged in - "+a.a.title}),Object(o.g)("section",{id:"logged-in"},Object(o.g)("div",{class:"content-section"},Object(o.g)("h1",{class:"page-header"},"Congratulations!"),c)))}}t.default=Object(r.b)(e=>e,e=>Object(l.b)({setSession:u.f},e))(g)}}]);
+//# sourceMappingURL=19.6c50b715.chunk.js.map
\ No newline at end of file
diff --git a/static/js/19.8e76c0a5.chunk.js.map b/static/js/19.6c50b715.chunk.js.map
similarity index 98%
rename from static/js/19.8e76c0a5.chunk.js.map
rename to static/js/19.6c50b715.chunk.js.map
index 9f654e3f9..d2efc5874 100644
--- a/static/js/19.8e76c0a5.chunk.js.map
+++ b/static/js/19.6c50b715.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","routes/logged-in.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","LoggedIn","Component","componentDidMount","this","sessionId","username","setSession","uuid","render","message","Meta","title","hero","connect","state","dispatch","bindActionCreators"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,2EAQA,MAAMc,UAAiBC,IACrBC,oBACMC,KAAKR,MAAMS,WAAaD,KAAKR,MAAMU,UACrCF,KAAKR,MAAMW,WAAW,CACpBC,KAAMJ,KAAKR,MAAMS,UACjBC,SAAUF,KAAKR,MAAMU,WAK3BG,OAAMhB,GAA2B,IAA1B,UAAEY,EAAS,SAAEC,GAAUb,EAC5B,MAAMiB,EACJJ,GAAYD,EACVjB,YAAA,SAAG,sCACkCA,YAAA,SAAIkB,GAAa,6DACP,IAC7ClB,YAAA,KAAGG,KAAK,iBAAgB,gBAAgB,KAG1CH,YAAA,SAAG,uOAKDA,YAAA,WACAA,YAAA,WAAM,kCAKZ,OACEA,YAACI,IAAM,KACLJ,YAACuB,IAAI,CAACC,MAAQ,4BAA2BC,IAAKD,QAC9CxB,YAAA,WAASC,GAAG,aACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,oBACvBoB,MAWEI,sBAAQC,GAASA,EAHLC,GACzBC,YAAmB,CAAEV,gBAAcS,GAEtBF,CAA4Cb","file":"static/js/19.8e76c0a5.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { Component, h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { setSession } from '../modules/account'\n\nclass LoggedIn extends Component {\n componentDidMount() {\n if (this.props.sessionId && this.props.username) {\n this.props.setSession({\n uuid: this.props.sessionId,\n username: this.props.username\n })\n }\n }\n\n render({ sessionId, username }) {\n const message =\n username && sessionId ? (\n \n You have successfully logged in as {username} . You can now\n either close this window or navigate to your{' '}\n account page .\n
\n ) : (\n \n You have successfully logged into RuneLite. Your profiles have been\n synced to the client, if you have any. If you want to use one of these\n profiles now, switch to the profile by double clicking the profile in\n the profiles panel.\n \n \n You may now close this window.\n
\n )\n\n return (\n \n \n \n \n )\n }\n}\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setSession }, dispatch)\n\nexport default connect(state => state, mapDispatchToProps)(LoggedIn)\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","routes/logged-in.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","LoggedIn","Component","componentDidMount","this","sessionId","username","setSession","uuid","render","message","Meta","title","hero","connect","state","dispatch","bindActionCreators"],"mappings":"gIAoBeA,MAlBAA,IACbC,YAAA,WAASC,GAAG,UACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,cACEA,YAAA,WAAM,kBACSA,YAAA,KAAGE,MAAM,iBAAiB,OAAK,IAC9CF,YAAA,KAAGE,MAAM,kBAAkB,SAAO,IAClCF,YAAA,KAAGG,KAAK,6BAA4B,aAAc,IAAC,IACnDH,YAAA,KAAGG,KAAK,wBAAuB,SAAS,OAAK,IAC7CH,YAAA,KAAGG,KAAK,4BAA2B,gBACnCH,YAAA,KAAGG,KAAO,YAAYD,MAAM,eAC1BF,YAAA,KAAGE,MAAM,eAAe,yBCKnBE,IAfAC,IAAwC,IAAvC,SAAEC,EAAQ,UAAEC,KAAcC,GAAOH,EAO/C,OANAG,EAAMN,MAAQM,EAAMN,MAAQ,aAAeM,EAAMN,MAAQ,YACzDM,EAAMC,MAAQ,IACRD,EAAMC,OAAS,GACnBC,SAAUH,EAAY,OAAS,IAI/BP,YAAA,MAAAW,OAAAC,OAAA,GAASJ,EAAK,CAAEP,GAAG,WAChBK,EACDN,YAACD,EAAM,S,iCCbb,2EAQA,MAAMc,UAAiBC,IACrBC,oBACMC,KAAKR,MAAMS,WAAaD,KAAKR,MAAMU,UACrCF,KAAKR,MAAMW,WAAW,CACpBC,KAAMJ,KAAKR,MAAMS,UACjBC,SAAUF,KAAKR,MAAMU,WAK3BG,OAAMhB,GAA2B,IAA1B,UAAEY,EAAS,SAAEC,GAAUb,EAC5B,MAAMiB,EACJJ,GAAYD,EACVjB,YAAA,SAAG,sCACkCA,YAAA,SAAIkB,GAAa,6DACP,IAC7ClB,YAAA,KAAGG,KAAK,iBAAgB,gBAAgB,KAG1CH,YAAA,SAAG,uOAKDA,YAAA,WACAA,YAAA,WAAM,kCAKZ,OACEA,YAACI,IAAM,KACLJ,YAACuB,IAAI,CAACC,MAAQ,4BAA2BC,IAAKD,QAC9CxB,YAAA,WAASC,GAAG,aACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,oBACvBoB,MAWEI,sBAAQC,GAASA,EAHLC,GACzBC,YAAmB,CAAEV,gBAAcS,GAEtBF,CAA4Cb","file":"static/js/19.6c50b715.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { Component, h } from 'preact'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { setSession } from '../modules/account'\n\nclass LoggedIn extends Component {\n componentDidMount() {\n if (this.props.sessionId && this.props.username) {\n this.props.setSession({\n uuid: this.props.sessionId,\n username: this.props.username\n })\n }\n }\n\n render({ sessionId, username }) {\n const message =\n username && sessionId ? (\n \n You have successfully logged in as {username} . You can now\n either close this window or navigate to your{' '}\n account page .\n
\n ) : (\n \n You have successfully logged into RuneLite. Your profiles have been\n synced to the client, if you have any. If you want to use one of these\n profiles now, switch to the profile by double clicking the profile in\n the profiles panel.\n \n \n You may now close this window.\n
\n )\n\n return (\n \n \n \n \n )\n }\n}\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators({ setSession }, dispatch)\n\nexport default connect(state => state, mapDispatchToProps)(LoggedIn)\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/20.f7aa3c6a.chunk.js b/static/js/20.0d5f0ba1.chunk.js
similarity index 90%
rename from static/js/20.f7aa3c6a.chunk.js
rename to static/js/20.0d5f0ba1.chunk.js
index 23a9910ea..5cbd5f8a3 100644
--- a/static/js/20.f7aa3c6a.chunk.js
+++ b/static/js/20.0d5f0ba1.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[20],{295:function(e,t){e.exports={title:"New Site",description:"We created new website for RuneLite replacing old one generated by GitHub pages",author:"Tomas",body:'So, I am happy to present you the new site. This site replaces the old one, what\nwas generated by GitHub pages.
\nThis new site is using latest web development technologies, focusing on\nperformance, user-friendliness and responsivity. It is still new, so if you will\nhave any problems with the site, feel free to submit issue on it\'s\nGitHub repository .
\nAlso, if you want to contribute, it has never been easier, as the individual\nblog posts are rendered from Markdown, so all you need to do to create new blog\npost is to submit Pull Request to the repository with new Markdown file in\nformat YYYY-DD-MM-My-Post-Title.md
in the src/_posts
directory.
\nWell, all I can say now is, enjoy!
\n~ Tomas
\n'}}}]);
-//# sourceMappingURL=20.f7aa3c6a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[20],{296:function(e,t){e.exports={title:"New Site",description:"We created new website for RuneLite replacing old one generated by GitHub pages",author:"Tomas",body:'So, I am happy to present you the new site. This site replaces the old one, what\nwas generated by GitHub pages.
\nThis new site is using latest web development technologies, focusing on\nperformance, user-friendliness and responsivity. It is still new, so if you will\nhave any problems with the site, feel free to submit issue on it\'s\nGitHub repository .
\nAlso, if you want to contribute, it has never been easier, as the individual\nblog posts are rendered from Markdown, so all you need to do to create new blog\npost is to submit Pull Request to the repository with new Markdown file in\nformat YYYY-DD-MM-My-Post-Title.md
in the src/_posts
directory.
\nWell, all I can say now is, enjoy!
\n~ Tomas
\n'}}}]);
+//# sourceMappingURL=20.0d5f0ba1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/20.f7aa3c6a.chunk.js.map b/static/js/20.0d5f0ba1.chunk.js.map
similarity index 90%
rename from static/js/20.f7aa3c6a.chunk.js.map
rename to static/js/20.0d5f0ba1.chunk.js.map
index c42300eb5..3813d92e8 100644
--- a/static/js/20.f7aa3c6a.chunk.js.map
+++ b/static/js/20.0d5f0ba1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2017-12-13-00-00-New-Site.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,WAAW,YAAc,kFAAkF,OAAS,QAAQ,KAAO","file":"static/js/20.f7aa3c6a.chunk.js","sourcesContent":["module.exports = {\"title\":\"New Site\",\"description\":\"We created new website for RuneLite replacing old one generated by GitHub pages\",\"author\":\"Tomas\",\"body\":\"So, I am happy to present you the new site. This site replaces the old one, what\\nwas generated by GitHub pages.
\\nThis new site is using latest web development technologies, focusing on\\nperformance, user-friendliness and responsivity. It is still new, so if you will\\nhave any problems with the site, feel free to submit issue on it's\\nGitHub repository .
\\nAlso, if you want to contribute, it has never been easier, as the individual\\nblog posts are rendered from Markdown, so all you need to do to create new blog\\npost is to submit Pull Request to the repository with new Markdown file in\\nformat YYYY-DD-MM-My-Post-Title.md
in the src/_posts
directory.
\\nWell, all I can say now is, enjoy!
\\n~ Tomas
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2017-12-13-00-00-New-Site.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,WAAW,YAAc,kFAAkF,OAAS,QAAQ,KAAO","file":"static/js/20.0d5f0ba1.chunk.js","sourcesContent":["module.exports = {\"title\":\"New Site\",\"description\":\"We created new website for RuneLite replacing old one generated by GitHub pages\",\"author\":\"Tomas\",\"body\":\"So, I am happy to present you the new site. This site replaces the old one, what\\nwas generated by GitHub pages.
\\nThis new site is using latest web development technologies, focusing on\\nperformance, user-friendliness and responsivity. It is still new, so if you will\\nhave any problems with the site, feel free to submit issue on it's\\nGitHub repository .
\\nAlso, if you want to contribute, it has never been easier, as the individual\\nblog posts are rendered from Markdown, so all you need to do to create new blog\\npost is to submit Pull Request to the repository with new Markdown file in\\nformat YYYY-DD-MM-My-Post-Title.md
in the src/_posts
directory.
\\nWell, all I can say now is, enjoy!
\\n~ Tomas
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/21.5da8e3fe.chunk.js b/static/js/21.3d9e48ef.chunk.js
similarity index 98%
rename from static/js/21.5da8e3fe.chunk.js
rename to static/js/21.3d9e48ef.chunk.js
index 8023fa577..e5d7bc026 100644
--- a/static/js/21.5da8e3fe.chunk.js
+++ b/static/js/21.3d9e48ef.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[21],{296:function(e,n){e.exports={title:"1.2.10 Release",description:"New 1.2.10 release of RuneLite is out. We added many new features, like native UI, notifications and few plugin improvements.",author:"Tomas",body:'This release adds lots of new functionality to RuneLite to make the end-user\nexperience even better, and to compete with well established third-party\nclients.
\nThe most notable new feature is the new UI design . I tried to make it look as\nclose to the native OSRS interfaces as possible. Here is the end result:
\n
\nThe UI was updated for all of the current RuneLite plugins, and the new API for\nit is really easy to use, so it can be used in future plugins too. An example\nof plugin using the new UI api is the new Team Capes plugin.
\nThe plugin is showing the amount of players wearing specific team capes\ncurrently visible on the map, which is very useful for pking clans. Here is how\nit looks in game:
\n
\nTill now it was hard to check the price of item you just got as a drop\nfrom monster, or just simply to check price of stack of your precious magic\nlogs in bank. That is why there were quite a few improvements to examine plugin\nin the client. Now you are able to examine items and item stacks in you bank,\ninventory, equipment screen or even in the Miscellania screen and it shows\nGrand Exchange and High Alchemy price of that item in the game chat. Here is\nsmall example:
\n
\nTo make talking to your clan mates easier, there is new clan chat plugin\nthat shows current ranks of every clan chat member next to his/her name.\nExample:
\n
\nThere were also some background changes in the client to make it work better,\nfix some bugs and possibly make it faster. One of the background improvements\nthat is also visible to end users is the use of the native notification system,\nso it now supports every Linux distribution with working notification system\nand even Mac OS (with same notification support for Windows as before). Example\nof the notification system in action on Arch Linux with Dunst notification\ndaemon:
\n
\nWell, hopefully you like new release, and as usual, enjoy!
\n~ Tomas
\nNew commits \nWe had 9 contributors this release! Special thanks to @deathbeam for his hard work.
\nAdam (26):\n runelite-client: use lombok for slf4j logger creation\n runelite-client: lombok events\n runelite-client: change AnimationChanged event to have an Actor\n executor: optimize processExceptions()\n deobfuscator: do not cfg deob methods with exceptions in them\n runescape-client: redump\n runelite-client: fix infoboxes\n injector: cast object references to the field type in setters\n injector: add construct injector to create new instances of classes\n injector: ignore synthetic methods in InjectConstruct\n runescape-api: fix javadoc error\n injector: support hooking to ends of methods\n Move setMessage hook to end of method\n clanchat: don\'t load icons more than once\n runelite-client: fix scheduler for concurrent modifications\n chat message manager: avoid adding chat messages on threads\n cache: remove whirlpool as it is not in osrs\n cache: improve xtea test\n cache: use own Xtea implmentation instead of bouncycastle\'s\n cache: test scope slf4j-simple\n cache server: never send appended archive revision\n cache: remove tree storage\n cache: fix compression with encryption\n cache: split loading archive files from archive loading\n injector: skip over dups when recursively copying array index instructions\n deobfuscator: remove apache commons dependency\n\nDevin (5):\n Add ImagePanelComponent overlay component\n Add getTeam method for Player\n Add setter for background color of overlay components\n Fix padding for bottom right overlays\n Add team capes plugin\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nSomeoneWithAnInternetConnection (2):\n Fix IllegalArgumentExceptions from XPGlobes\' tooltips for level 1 stats\n Fix example plugin to use the new overlay API\n\nTomas Slusny (16):\n Add hide items under value to GroundItems plugin\n Make native notifications lightweight\n Add clan ranks to clan chat\n Improve item caching\n Add chat message recolouring API\n Show item price when examining item\n Show full price for stackable items when examined\n runelite-client: add plugin changed event\n runelite-client: Make overlay UI reuseable and look native\n Cleanup overlay logic after native-ui changes\n Fix displaying of examine price without GE value\n Add support for examining bank and eq items price\n Fix overlay renderer cache\n Isolate graphics for each overlay (#267)\n Remove unused app property from RSStub\n runelite-client: Add app name to RuneliteProperties\n\nToocanzs (3):\n Move common game state and interface checks to overlay\n Change game tick hook to npc update\n Dispose of BufferedImage graphics in overlay util\n\nTyler Hardy (4):\n Add Karambwan fishing to animation and idle plugin\n Add crazy arch to aoe plugin\n Remove FPS plugin (deprecated by base osrs ::displayfps)\n Fix default config for dynamic plugins\n\n\nUniquePassive (1):\n Make special attack orb look a little nicer\n\nVagrant User (1):\n Add support for native notifications\n\nXrioBtw (1):\n Fix tooltips rendering behind the game\n\nrbbi (1):\n Guice : RuneliteProperties inj (#212)\n
\n',image:"/img/blog/1.2.10-Release/native-ui.png"}}}]);
-//# sourceMappingURL=21.5da8e3fe.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[21],{297:function(e,n){e.exports={title:"1.2.10 Release",description:"New 1.2.10 release of RuneLite is out. We added many new features, like native UI, notifications and few plugin improvements.",author:"Tomas",body:'This release adds lots of new functionality to RuneLite to make the end-user\nexperience even better, and to compete with well established third-party\nclients.
\nThe most notable new feature is the new UI design . I tried to make it look as\nclose to the native OSRS interfaces as possible. Here is the end result:
\n
\nThe UI was updated for all of the current RuneLite plugins, and the new API for\nit is really easy to use, so it can be used in future plugins too. An example\nof plugin using the new UI api is the new Team Capes plugin.
\nThe plugin is showing the amount of players wearing specific team capes\ncurrently visible on the map, which is very useful for pking clans. Here is how\nit looks in game:
\n
\nTill now it was hard to check the price of item you just got as a drop\nfrom monster, or just simply to check price of stack of your precious magic\nlogs in bank. That is why there were quite a few improvements to examine plugin\nin the client. Now you are able to examine items and item stacks in you bank,\ninventory, equipment screen or even in the Miscellania screen and it shows\nGrand Exchange and High Alchemy price of that item in the game chat. Here is\nsmall example:
\n
\nTo make talking to your clan mates easier, there is new clan chat plugin\nthat shows current ranks of every clan chat member next to his/her name.\nExample:
\n
\nThere were also some background changes in the client to make it work better,\nfix some bugs and possibly make it faster. One of the background improvements\nthat is also visible to end users is the use of the native notification system,\nso it now supports every Linux distribution with working notification system\nand even Mac OS (with same notification support for Windows as before). Example\nof the notification system in action on Arch Linux with Dunst notification\ndaemon:
\n
\nWell, hopefully you like new release, and as usual, enjoy!
\n~ Tomas
\nNew commits \nWe had 9 contributors this release! Special thanks to @deathbeam for his hard work.
\nAdam (26):\n runelite-client: use lombok for slf4j logger creation\n runelite-client: lombok events\n runelite-client: change AnimationChanged event to have an Actor\n executor: optimize processExceptions()\n deobfuscator: do not cfg deob methods with exceptions in them\n runescape-client: redump\n runelite-client: fix infoboxes\n injector: cast object references to the field type in setters\n injector: add construct injector to create new instances of classes\n injector: ignore synthetic methods in InjectConstruct\n runescape-api: fix javadoc error\n injector: support hooking to ends of methods\n Move setMessage hook to end of method\n clanchat: don\'t load icons more than once\n runelite-client: fix scheduler for concurrent modifications\n chat message manager: avoid adding chat messages on threads\n cache: remove whirlpool as it is not in osrs\n cache: improve xtea test\n cache: use own Xtea implmentation instead of bouncycastle\'s\n cache: test scope slf4j-simple\n cache server: never send appended archive revision\n cache: remove tree storage\n cache: fix compression with encryption\n cache: split loading archive files from archive loading\n injector: skip over dups when recursively copying array index instructions\n deobfuscator: remove apache commons dependency\n\nDevin (5):\n Add ImagePanelComponent overlay component\n Add getTeam method for Player\n Add setter for background color of overlay components\n Fix padding for bottom right overlays\n Add team capes plugin\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nSomeoneWithAnInternetConnection (2):\n Fix IllegalArgumentExceptions from XPGlobes\' tooltips for level 1 stats\n Fix example plugin to use the new overlay API\n\nTomas Slusny (16):\n Add hide items under value to GroundItems plugin\n Make native notifications lightweight\n Add clan ranks to clan chat\n Improve item caching\n Add chat message recolouring API\n Show item price when examining item\n Show full price for stackable items when examined\n runelite-client: add plugin changed event\n runelite-client: Make overlay UI reuseable and look native\n Cleanup overlay logic after native-ui changes\n Fix displaying of examine price without GE value\n Add support for examining bank and eq items price\n Fix overlay renderer cache\n Isolate graphics for each overlay (#267)\n Remove unused app property from RSStub\n runelite-client: Add app name to RuneliteProperties\n\nToocanzs (3):\n Move common game state and interface checks to overlay\n Change game tick hook to npc update\n Dispose of BufferedImage graphics in overlay util\n\nTyler Hardy (4):\n Add Karambwan fishing to animation and idle plugin\n Add crazy arch to aoe plugin\n Remove FPS plugin (deprecated by base osrs ::displayfps)\n Fix default config for dynamic plugins\n\n\nUniquePassive (1):\n Make special attack orb look a little nicer\n\nVagrant User (1):\n Add support for native notifications\n\nXrioBtw (1):\n Fix tooltips rendering behind the game\n\nrbbi (1):\n Guice : RuneliteProperties inj (#212)\n
\n',image:"/img/blog/1.2.10-Release/native-ui.png"}}}]);
+//# sourceMappingURL=21.3d9e48ef.chunk.js.map
\ No newline at end of file
diff --git a/static/js/21.5da8e3fe.chunk.js.map b/static/js/21.3d9e48ef.chunk.js.map
similarity index 99%
rename from static/js/21.5da8e3fe.chunk.js.map
rename to static/js/21.3d9e48ef.chunk.js.map
index b9e20a3dc..d48af388b 100644
--- a/static/js/21.5da8e3fe.chunk.js.map
+++ b/static/js/21.3d9e48ef.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2017-12-21-00-00-1.2.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gIAAgI,OAAS,QAAQ,KAAO,63LAAo5L,MAAQ","file":"static/js/21.5da8e3fe.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.10 Release\",\"description\":\"New 1.2.10 release of RuneLite is out. We added many new features, like native UI, notifications and few plugin improvements.\",\"author\":\"Tomas\",\"body\":\"This release adds lots of new functionality to RuneLite to make the end-user\\nexperience even better, and to compete with well established third-party\\nclients.
\\nThe most notable new feature is the new UI design . I tried to make it look as\\nclose to the native OSRS interfaces as possible. Here is the end result:
\\n
\\nThe UI was updated for all of the current RuneLite plugins, and the new API for\\nit is really easy to use, so it can be used in future plugins too. An example\\nof plugin using the new UI api is the new Team Capes plugin.
\\nThe plugin is showing the amount of players wearing specific team capes\\ncurrently visible on the map, which is very useful for pking clans. Here is how\\nit looks in game:
\\n
\\nTill now it was hard to check the price of item you just got as a drop\\nfrom monster, or just simply to check price of stack of your precious magic\\nlogs in bank. That is why there were quite a few improvements to examine plugin\\nin the client. Now you are able to examine items and item stacks in you bank,\\ninventory, equipment screen or even in the Miscellania screen and it shows\\nGrand Exchange and High Alchemy price of that item in the game chat. Here is\\nsmall example:
\\n
\\nTo make talking to your clan mates easier, there is new clan chat plugin\\nthat shows current ranks of every clan chat member next to his/her name.\\nExample:
\\n
\\nThere were also some background changes in the client to make it work better,\\nfix some bugs and possibly make it faster. One of the background improvements\\nthat is also visible to end users is the use of the native notification system,\\nso it now supports every Linux distribution with working notification system\\nand even Mac OS (with same notification support for Windows as before). Example\\nof the notification system in action on Arch Linux with Dunst notification\\ndaemon:
\\n
\\nWell, hopefully you like new release, and as usual, enjoy!
\\n~ Tomas
\\nNew commits \\nWe had 9 contributors this release! Special thanks to @deathbeam for his hard work.
\\nAdam (26):\\n runelite-client: use lombok for slf4j logger creation\\n runelite-client: lombok events\\n runelite-client: change AnimationChanged event to have an Actor\\n executor: optimize processExceptions()\\n deobfuscator: do not cfg deob methods with exceptions in them\\n runescape-client: redump\\n runelite-client: fix infoboxes\\n injector: cast object references to the field type in setters\\n injector: add construct injector to create new instances of classes\\n injector: ignore synthetic methods in InjectConstruct\\n runescape-api: fix javadoc error\\n injector: support hooking to ends of methods\\n Move setMessage hook to end of method\\n clanchat: don't load icons more than once\\n runelite-client: fix scheduler for concurrent modifications\\n chat message manager: avoid adding chat messages on threads\\n cache: remove whirlpool as it is not in osrs\\n cache: improve xtea test\\n cache: use own Xtea implmentation instead of bouncycastle's\\n cache: test scope slf4j-simple\\n cache server: never send appended archive revision\\n cache: remove tree storage\\n cache: fix compression with encryption\\n cache: split loading archive files from archive loading\\n injector: skip over dups when recursively copying array index instructions\\n deobfuscator: remove apache commons dependency\\n\\nDevin (5):\\n Add ImagePanelComponent overlay component\\n Add getTeam method for Player\\n Add setter for background color of overlay components\\n Fix padding for bottom right overlays\\n Add team capes plugin\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nSomeoneWithAnInternetConnection (2):\\n Fix IllegalArgumentExceptions from XPGlobes' tooltips for level 1 stats\\n Fix example plugin to use the new overlay API\\n\\nTomas Slusny (16):\\n Add hide items under value to GroundItems plugin\\n Make native notifications lightweight\\n Add clan ranks to clan chat\\n Improve item caching\\n Add chat message recolouring API\\n Show item price when examining item\\n Show full price for stackable items when examined\\n runelite-client: add plugin changed event\\n runelite-client: Make overlay UI reuseable and look native\\n Cleanup overlay logic after native-ui changes\\n Fix displaying of examine price without GE value\\n Add support for examining bank and eq items price\\n Fix overlay renderer cache\\n Isolate graphics for each overlay (#267)\\n Remove unused app property from RSStub\\n runelite-client: Add app name to RuneliteProperties\\n\\nToocanzs (3):\\n Move common game state and interface checks to overlay\\n Change game tick hook to npc update\\n Dispose of BufferedImage graphics in overlay util\\n\\nTyler Hardy (4):\\n Add Karambwan fishing to animation and idle plugin\\n Add crazy arch to aoe plugin\\n Remove FPS plugin (deprecated by base osrs ::displayfps)\\n Fix default config for dynamic plugins\\n\\n\\nUniquePassive (1):\\n Make special attack orb look a little nicer\\n\\nVagrant User (1):\\n Add support for native notifications\\n\\nXrioBtw (1):\\n Fix tooltips rendering behind the game\\n\\nrbbi (1):\\n Guice : RuneliteProperties inj (#212)\\n
\\n\",\"image\":\"/img/blog/1.2.10-Release/native-ui.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2017-12-21-00-00-1.2.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gIAAgI,OAAS,QAAQ,KAAO,63LAAo5L,MAAQ","file":"static/js/21.3d9e48ef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.10 Release\",\"description\":\"New 1.2.10 release of RuneLite is out. We added many new features, like native UI, notifications and few plugin improvements.\",\"author\":\"Tomas\",\"body\":\"This release adds lots of new functionality to RuneLite to make the end-user\\nexperience even better, and to compete with well established third-party\\nclients.
\\nThe most notable new feature is the new UI design . I tried to make it look as\\nclose to the native OSRS interfaces as possible. Here is the end result:
\\n
\\nThe UI was updated for all of the current RuneLite plugins, and the new API for\\nit is really easy to use, so it can be used in future plugins too. An example\\nof plugin using the new UI api is the new Team Capes plugin.
\\nThe plugin is showing the amount of players wearing specific team capes\\ncurrently visible on the map, which is very useful for pking clans. Here is how\\nit looks in game:
\\n
\\nTill now it was hard to check the price of item you just got as a drop\\nfrom monster, or just simply to check price of stack of your precious magic\\nlogs in bank. That is why there were quite a few improvements to examine plugin\\nin the client. Now you are able to examine items and item stacks in you bank,\\ninventory, equipment screen or even in the Miscellania screen and it shows\\nGrand Exchange and High Alchemy price of that item in the game chat. Here is\\nsmall example:
\\n
\\nTo make talking to your clan mates easier, there is new clan chat plugin\\nthat shows current ranks of every clan chat member next to his/her name.\\nExample:
\\n
\\nThere were also some background changes in the client to make it work better,\\nfix some bugs and possibly make it faster. One of the background improvements\\nthat is also visible to end users is the use of the native notification system,\\nso it now supports every Linux distribution with working notification system\\nand even Mac OS (with same notification support for Windows as before). Example\\nof the notification system in action on Arch Linux with Dunst notification\\ndaemon:
\\n
\\nWell, hopefully you like new release, and as usual, enjoy!
\\n~ Tomas
\\nNew commits \\nWe had 9 contributors this release! Special thanks to @deathbeam for his hard work.
\\nAdam (26):\\n runelite-client: use lombok for slf4j logger creation\\n runelite-client: lombok events\\n runelite-client: change AnimationChanged event to have an Actor\\n executor: optimize processExceptions()\\n deobfuscator: do not cfg deob methods with exceptions in them\\n runescape-client: redump\\n runelite-client: fix infoboxes\\n injector: cast object references to the field type in setters\\n injector: add construct injector to create new instances of classes\\n injector: ignore synthetic methods in InjectConstruct\\n runescape-api: fix javadoc error\\n injector: support hooking to ends of methods\\n Move setMessage hook to end of method\\n clanchat: don't load icons more than once\\n runelite-client: fix scheduler for concurrent modifications\\n chat message manager: avoid adding chat messages on threads\\n cache: remove whirlpool as it is not in osrs\\n cache: improve xtea test\\n cache: use own Xtea implmentation instead of bouncycastle's\\n cache: test scope slf4j-simple\\n cache server: never send appended archive revision\\n cache: remove tree storage\\n cache: fix compression with encryption\\n cache: split loading archive files from archive loading\\n injector: skip over dups when recursively copying array index instructions\\n deobfuscator: remove apache commons dependency\\n\\nDevin (5):\\n Add ImagePanelComponent overlay component\\n Add getTeam method for Player\\n Add setter for background color of overlay components\\n Fix padding for bottom right overlays\\n Add team capes plugin\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nSomeoneWithAnInternetConnection (2):\\n Fix IllegalArgumentExceptions from XPGlobes' tooltips for level 1 stats\\n Fix example plugin to use the new overlay API\\n\\nTomas Slusny (16):\\n Add hide items under value to GroundItems plugin\\n Make native notifications lightweight\\n Add clan ranks to clan chat\\n Improve item caching\\n Add chat message recolouring API\\n Show item price when examining item\\n Show full price for stackable items when examined\\n runelite-client: add plugin changed event\\n runelite-client: Make overlay UI reuseable and look native\\n Cleanup overlay logic after native-ui changes\\n Fix displaying of examine price without GE value\\n Add support for examining bank and eq items price\\n Fix overlay renderer cache\\n Isolate graphics for each overlay (#267)\\n Remove unused app property from RSStub\\n runelite-client: Add app name to RuneliteProperties\\n\\nToocanzs (3):\\n Move common game state and interface checks to overlay\\n Change game tick hook to npc update\\n Dispose of BufferedImage graphics in overlay util\\n\\nTyler Hardy (4):\\n Add Karambwan fishing to animation and idle plugin\\n Add crazy arch to aoe plugin\\n Remove FPS plugin (deprecated by base osrs ::displayfps)\\n Fix default config for dynamic plugins\\n\\n\\nUniquePassive (1):\\n Make special attack orb look a little nicer\\n\\nVagrant User (1):\\n Add support for native notifications\\n\\nXrioBtw (1):\\n Fix tooltips rendering behind the game\\n\\nrbbi (1):\\n Guice : RuneliteProperties inj (#212)\\n
\\n\",\"image\":\"/img/blog/1.2.10-Release/native-ui.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/22.f5a53d1e.chunk.js b/static/js/22.fca77403.chunk.js
similarity index 98%
rename from static/js/22.f5a53d1e.chunk.js
rename to static/js/22.fca77403.chunk.js
index 04eae8ad8..5ea7db556 100644
--- a/static/js/22.f5a53d1e.chunk.js
+++ b/static/js/22.fca77403.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[22],{297:function(e,n){e.exports={title:"1.2.11 Release",description:"New 1.2.11 release of RuneLite is out. Notable new features are an awesome Hunter Plugin and support for more potion timers",author:"Tomas",body:'In this release we made a lot of improvements to client source, performance and\noverall stability of the client. But there are few new features that are\ndefinitely worth mentioning.
\nFirst, and the biggest one is Hunter plugin (thanks to\n@RobinWeymans ). Hunter plugin will show you\nstate of your traps and also time until they will break. That should improve\nyour overall hunting experience (and makes the terrible skill less terrible).\nHere is small preview:
\n
\nWe also added support for some missing potions for the Timers plugin, and that\nalso includes the newest released potion, Super Antifire Potion.
\n
\nAnd last feature on the list is support for native window decorations . That\nmeans now you have option to let your window manager handle the window\ndecorations (title bar, window borders). Here is small preview using my window\nmanager (bspwm) without any window borders:
\n
\nAs I said in the beginning of the post, we made a lot of improvements to the\nclient source code (mainly decoupling), so if you are bored Java developer\nlooking for project to contribute to, you are always welcome!
\nHopefully you will like the new release, enjoy!
\n~ Tomas
\nNew commits \nWe had 15 contributors this release!
\nAbex (1):\n client: Add option to disable custom window chrome/style\n\nAdam (30):\n Skip archetype test by default\n cache: default index data to protocol 6\n runelite-api: add equipment inventory slot id, inventory id, logout widget and chat message type 7\n cache: fix writeBigSmart\n cache: fix readBigSmart\n cache: fix readString to not sign extend negative values\n cache: rename some fields of object and interface\n cache: lombok definitions\n cache: add a few more write* to outputstream\n cache: add savers\n cache: add map and location definition, convert Region loading to use it\n cache: split cache client and server into their own projects\n runelite-proxy: subtree split into separate repository\n cache: disable map image dumper test\n cache: also disable map dumper test\n runelite-client: move infoboxes back to top left\n runelite-client: always render tooltips on top\n cache test: get tmpdir from a system property\n injector: allow method hooking to end of methods with multiple returns\n Consistently capitalize RuneLite\n Update logo\n xp tracker: reset on world hop and on logging in\n xp tracker: remove unused import\n runelite-client: fix --no-rs\n dev tools: draw over everything\n http-service: fix item price cache to use fetched time instead of price time\n http-service: remove junit/mockito dependencies since spring pulls them in\n http-service: disable default cache control provided by spring-security\n http-service: add cache control to item price\n http-service: change item price cache to 30 minutes\n\nAlexander (2):\n Fall back to default font for glyphs not in the custom font\n ExaminePlugin: Make sure widget children array index is valid\n\nDevin (3):\n Add fight cave plugin config\n Update fight cave plugin overlay\n Update zulrah plugin overlay\n\nDevin French (1):\n Combine BOTTOM_RIGHT and ABOVE_CHATBOX_RIGHT overlays for fixed mode\n\nJulian Tith (1):\n Add craft spinning animation ID and idle notification\n\nMax Weber (1):\n runelite-client: add ConfigItem.warnOnDisable and warnOnEnable to configure when confirmationWarning is shown\n\nOnvo (6):\n New MenuActions related to the hunter plugin\n Add Widget.contains point\n Add GameObjectsChanged event\n Make ground items overlay use new Widget.contains\n Add hunter plugin\n Add colors for impling types\n\nRunelite auto updater (2):\n [maven-release-plugin] prepare for next development iteration\n [maven-release-plugin] prepare release runelite-parent-1.2.11\n\nSomeoneWithAnInternetConnection (5):\n Actually fix example plugin archetype\n Add tests for archetype-plugin compilability\n Reduce clearRect calls to improve framerate\n Prevent cursor icon from getting stuck as the wrong shape\n Slayer plugin - fix "count on items" feature\n\nTomas Slusny (20):\n Fix OkHttp connection leaks on connection error\n Change UIManager defaults to use OSRS font\n Change XP tracker button to use image\n Simplify navigation button code\n Move IconTextField to Hiscore plugin\n Normalize plugin panel display\n Change Notifier to be injectable service\n Extract session-related logic to SessionManager\n Extract runQuery to QueryRunner service\n Move creation of client to RuneLite\n Move setTitle to ClientUI\n Move creation of tray icon to ClientUI\n Cleanup RuneLite class fields\n Move creation of UI to ClientUI class\n Remove unnecessary null checks for game client\n Show account and config plugins when outdated\n Change warning for not found task to debug\n Add support for super antifire potion\n Add Antidote++ timer to TimerPlugin\n Improve clan rank caching\n\nUniquePassive (10):\n Don\'t NPE when Player name is null\n Expand the hiscore panel when looking up players\n Fix BackgroundComponent\'s background overflow\n Fix previous result not being cleared in hiscore plugin\n Fix ground items not being toggleable\n Fix the UI freezing when refreshing widgets in the Dev Tools\n runescape-client: Rename RSCanvas to GameCanvas\n runescape-client: Rename RSSocket to GameSocket\n Add a world list lookup client\n Add world types\n\nUnmoon (4):\n Ground Items - Fix alch value not applying to whole stack\n Ground Items - Fix coins not having value\n Ground Items - Fix quantity in high alch value display\n Ground Items - Always show highlighted items\n\nkokkue (1):\n idle plugin: add ornament dragon pickaxe\n\nnoremac201 (11):\n Added missing skilling skills from boosts overlay. Reordered from left to right and up to down.\n Add new overlay position for above right side of chatbox\n Change attack style plugin to use overlay position ABOVE_CHATBOX_RIGHT\n Added ProgressBar Component\n Modified PanelComponent to hold a ProgressBarComponent\n Updated XpGlobes to use new Components\n Fixed setStroke not being reset in Graphics object\n Added ReportButton Widget to api\n Added Report Button Utilities Plugin\n Fixed attackStyle not being correct without configChangeEvent\n Fixed type 20 attack weapon styles\n\nutsukami (1):\n Fixes idle notifications occurring when they shouldn\'t (interacting with bankers/players). See #282\n
\n',image:"/img/blog/1.2.11-Release/hunterplugin.png"}}}]);
-//# sourceMappingURL=22.f5a53d1e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[22],{298:function(e,n){e.exports={title:"1.2.11 Release",description:"New 1.2.11 release of RuneLite is out. Notable new features are an awesome Hunter Plugin and support for more potion timers",author:"Tomas",body:'In this release we made a lot of improvements to client source, performance and\noverall stability of the client. But there are few new features that are\ndefinitely worth mentioning.
\nFirst, and the biggest one is Hunter plugin (thanks to\n@RobinWeymans ). Hunter plugin will show you\nstate of your traps and also time until they will break. That should improve\nyour overall hunting experience (and makes the terrible skill less terrible).\nHere is small preview:
\n
\nWe also added support for some missing potions for the Timers plugin, and that\nalso includes the newest released potion, Super Antifire Potion.
\n
\nAnd last feature on the list is support for native window decorations . That\nmeans now you have option to let your window manager handle the window\ndecorations (title bar, window borders). Here is small preview using my window\nmanager (bspwm) without any window borders:
\n
\nAs I said in the beginning of the post, we made a lot of improvements to the\nclient source code (mainly decoupling), so if you are bored Java developer\nlooking for project to contribute to, you are always welcome!
\nHopefully you will like the new release, enjoy!
\n~ Tomas
\nNew commits \nWe had 15 contributors this release!
\nAbex (1):\n client: Add option to disable custom window chrome/style\n\nAdam (30):\n Skip archetype test by default\n cache: default index data to protocol 6\n runelite-api: add equipment inventory slot id, inventory id, logout widget and chat message type 7\n cache: fix writeBigSmart\n cache: fix readBigSmart\n cache: fix readString to not sign extend negative values\n cache: rename some fields of object and interface\n cache: lombok definitions\n cache: add a few more write* to outputstream\n cache: add savers\n cache: add map and location definition, convert Region loading to use it\n cache: split cache client and server into their own projects\n runelite-proxy: subtree split into separate repository\n cache: disable map image dumper test\n cache: also disable map dumper test\n runelite-client: move infoboxes back to top left\n runelite-client: always render tooltips on top\n cache test: get tmpdir from a system property\n injector: allow method hooking to end of methods with multiple returns\n Consistently capitalize RuneLite\n Update logo\n xp tracker: reset on world hop and on logging in\n xp tracker: remove unused import\n runelite-client: fix --no-rs\n dev tools: draw over everything\n http-service: fix item price cache to use fetched time instead of price time\n http-service: remove junit/mockito dependencies since spring pulls them in\n http-service: disable default cache control provided by spring-security\n http-service: add cache control to item price\n http-service: change item price cache to 30 minutes\n\nAlexander (2):\n Fall back to default font for glyphs not in the custom font\n ExaminePlugin: Make sure widget children array index is valid\n\nDevin (3):\n Add fight cave plugin config\n Update fight cave plugin overlay\n Update zulrah plugin overlay\n\nDevin French (1):\n Combine BOTTOM_RIGHT and ABOVE_CHATBOX_RIGHT overlays for fixed mode\n\nJulian Tith (1):\n Add craft spinning animation ID and idle notification\n\nMax Weber (1):\n runelite-client: add ConfigItem.warnOnDisable and warnOnEnable to configure when confirmationWarning is shown\n\nOnvo (6):\n New MenuActions related to the hunter plugin\n Add Widget.contains point\n Add GameObjectsChanged event\n Make ground items overlay use new Widget.contains\n Add hunter plugin\n Add colors for impling types\n\nRunelite auto updater (2):\n [maven-release-plugin] prepare for next development iteration\n [maven-release-plugin] prepare release runelite-parent-1.2.11\n\nSomeoneWithAnInternetConnection (5):\n Actually fix example plugin archetype\n Add tests for archetype-plugin compilability\n Reduce clearRect calls to improve framerate\n Prevent cursor icon from getting stuck as the wrong shape\n Slayer plugin - fix "count on items" feature\n\nTomas Slusny (20):\n Fix OkHttp connection leaks on connection error\n Change UIManager defaults to use OSRS font\n Change XP tracker button to use image\n Simplify navigation button code\n Move IconTextField to Hiscore plugin\n Normalize plugin panel display\n Change Notifier to be injectable service\n Extract session-related logic to SessionManager\n Extract runQuery to QueryRunner service\n Move creation of client to RuneLite\n Move setTitle to ClientUI\n Move creation of tray icon to ClientUI\n Cleanup RuneLite class fields\n Move creation of UI to ClientUI class\n Remove unnecessary null checks for game client\n Show account and config plugins when outdated\n Change warning for not found task to debug\n Add support for super antifire potion\n Add Antidote++ timer to TimerPlugin\n Improve clan rank caching\n\nUniquePassive (10):\n Don\'t NPE when Player name is null\n Expand the hiscore panel when looking up players\n Fix BackgroundComponent\'s background overflow\n Fix previous result not being cleared in hiscore plugin\n Fix ground items not being toggleable\n Fix the UI freezing when refreshing widgets in the Dev Tools\n runescape-client: Rename RSCanvas to GameCanvas\n runescape-client: Rename RSSocket to GameSocket\n Add a world list lookup client\n Add world types\n\nUnmoon (4):\n Ground Items - Fix alch value not applying to whole stack\n Ground Items - Fix coins not having value\n Ground Items - Fix quantity in high alch value display\n Ground Items - Always show highlighted items\n\nkokkue (1):\n idle plugin: add ornament dragon pickaxe\n\nnoremac201 (11):\n Added missing skilling skills from boosts overlay. Reordered from left to right and up to down.\n Add new overlay position for above right side of chatbox\n Change attack style plugin to use overlay position ABOVE_CHATBOX_RIGHT\n Added ProgressBar Component\n Modified PanelComponent to hold a ProgressBarComponent\n Updated XpGlobes to use new Components\n Fixed setStroke not being reset in Graphics object\n Added ReportButton Widget to api\n Added Report Button Utilities Plugin\n Fixed attackStyle not being correct without configChangeEvent\n Fixed type 20 attack weapon styles\n\nutsukami (1):\n Fixes idle notifications occurring when they shouldn\'t (interacting with bankers/players). See #282\n
\n',image:"/img/blog/1.2.11-Release/hunterplugin.png"}}}]);
+//# sourceMappingURL=22.fca77403.chunk.js.map
\ No newline at end of file
diff --git a/static/js/22.f5a53d1e.chunk.js.map b/static/js/22.fca77403.chunk.js.map
similarity index 99%
rename from static/js/22.f5a53d1e.chunk.js.map
rename to static/js/22.fca77403.chunk.js.map
index 5bd1262df..b7041fed0 100644
--- a/static/js/22.f5a53d1e.chunk.js.map
+++ b/static/js/22.fca77403.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-01-12-00-00-1.2.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8HAA8H,OAAS,QAAQ,KAAO,mkOAAklO,MAAQ","file":"static/js/22.f5a53d1e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.11 Release\",\"description\":\"New 1.2.11 release of RuneLite is out. Notable new features are an awesome Hunter Plugin and support for more potion timers\",\"author\":\"Tomas\",\"body\":\"In this release we made a lot of improvements to client source, performance and\\noverall stability of the client. But there are few new features that are\\ndefinitely worth mentioning.
\\nFirst, and the biggest one is Hunter plugin (thanks to\\n@RobinWeymans ). Hunter plugin will show you\\nstate of your traps and also time until they will break. That should improve\\nyour overall hunting experience (and makes the terrible skill less terrible).\\nHere is small preview:
\\n
\\nWe also added support for some missing potions for the Timers plugin, and that\\nalso includes the newest released potion, Super Antifire Potion.
\\n
\\nAnd last feature on the list is support for native window decorations . That\\nmeans now you have option to let your window manager handle the window\\ndecorations (title bar, window borders). Here is small preview using my window\\nmanager (bspwm) without any window borders:
\\n
\\nAs I said in the beginning of the post, we made a lot of improvements to the\\nclient source code (mainly decoupling), so if you are bored Java developer\\nlooking for project to contribute to, you are always welcome!
\\nHopefully you will like the new release, enjoy!
\\n~ Tomas
\\nNew commits \\nWe had 15 contributors this release!
\\nAbex (1):\\n client: Add option to disable custom window chrome/style\\n\\nAdam (30):\\n Skip archetype test by default\\n cache: default index data to protocol 6\\n runelite-api: add equipment inventory slot id, inventory id, logout widget and chat message type 7\\n cache: fix writeBigSmart\\n cache: fix readBigSmart\\n cache: fix readString to not sign extend negative values\\n cache: rename some fields of object and interface\\n cache: lombok definitions\\n cache: add a few more write* to outputstream\\n cache: add savers\\n cache: add map and location definition, convert Region loading to use it\\n cache: split cache client and server into their own projects\\n runelite-proxy: subtree split into separate repository\\n cache: disable map image dumper test\\n cache: also disable map dumper test\\n runelite-client: move infoboxes back to top left\\n runelite-client: always render tooltips on top\\n cache test: get tmpdir from a system property\\n injector: allow method hooking to end of methods with multiple returns\\n Consistently capitalize RuneLite\\n Update logo\\n xp tracker: reset on world hop and on logging in\\n xp tracker: remove unused import\\n runelite-client: fix --no-rs\\n dev tools: draw over everything\\n http-service: fix item price cache to use fetched time instead of price time\\n http-service: remove junit/mockito dependencies since spring pulls them in\\n http-service: disable default cache control provided by spring-security\\n http-service: add cache control to item price\\n http-service: change item price cache to 30 minutes\\n\\nAlexander (2):\\n Fall back to default font for glyphs not in the custom font\\n ExaminePlugin: Make sure widget children array index is valid\\n\\nDevin (3):\\n Add fight cave plugin config\\n Update fight cave plugin overlay\\n Update zulrah plugin overlay\\n\\nDevin French (1):\\n Combine BOTTOM_RIGHT and ABOVE_CHATBOX_RIGHT overlays for fixed mode\\n\\nJulian Tith (1):\\n Add craft spinning animation ID and idle notification\\n\\nMax Weber (1):\\n runelite-client: add ConfigItem.warnOnDisable and warnOnEnable to configure when confirmationWarning is shown\\n\\nOnvo (6):\\n New MenuActions related to the hunter plugin\\n Add Widget.contains point\\n Add GameObjectsChanged event\\n Make ground items overlay use new Widget.contains\\n Add hunter plugin\\n Add colors for impling types\\n\\nRunelite auto updater (2):\\n [maven-release-plugin] prepare for next development iteration\\n [maven-release-plugin] prepare release runelite-parent-1.2.11\\n\\nSomeoneWithAnInternetConnection (5):\\n Actually fix example plugin archetype\\n Add tests for archetype-plugin compilability\\n Reduce clearRect calls to improve framerate\\n Prevent cursor icon from getting stuck as the wrong shape\\n Slayer plugin - fix "count on items" feature\\n\\nTomas Slusny (20):\\n Fix OkHttp connection leaks on connection error\\n Change UIManager defaults to use OSRS font\\n Change XP tracker button to use image\\n Simplify navigation button code\\n Move IconTextField to Hiscore plugin\\n Normalize plugin panel display\\n Change Notifier to be injectable service\\n Extract session-related logic to SessionManager\\n Extract runQuery to QueryRunner service\\n Move creation of client to RuneLite\\n Move setTitle to ClientUI\\n Move creation of tray icon to ClientUI\\n Cleanup RuneLite class fields\\n Move creation of UI to ClientUI class\\n Remove unnecessary null checks for game client\\n Show account and config plugins when outdated\\n Change warning for not found task to debug\\n Add support for super antifire potion\\n Add Antidote++ timer to TimerPlugin\\n Improve clan rank caching\\n\\nUniquePassive (10):\\n Don't NPE when Player name is null\\n Expand the hiscore panel when looking up players\\n Fix BackgroundComponent's background overflow\\n Fix previous result not being cleared in hiscore plugin\\n Fix ground items not being toggleable\\n Fix the UI freezing when refreshing widgets in the Dev Tools\\n runescape-client: Rename RSCanvas to GameCanvas\\n runescape-client: Rename RSSocket to GameSocket\\n Add a world list lookup client\\n Add world types\\n\\nUnmoon (4):\\n Ground Items - Fix alch value not applying to whole stack\\n Ground Items - Fix coins not having value\\n Ground Items - Fix quantity in high alch value display\\n Ground Items - Always show highlighted items\\n\\nkokkue (1):\\n idle plugin: add ornament dragon pickaxe\\n\\nnoremac201 (11):\\n Added missing skilling skills from boosts overlay. Reordered from left to right and up to down.\\n Add new overlay position for above right side of chatbox\\n Change attack style plugin to use overlay position ABOVE_CHATBOX_RIGHT\\n Added ProgressBar Component\\n Modified PanelComponent to hold a ProgressBarComponent\\n Updated XpGlobes to use new Components\\n Fixed setStroke not being reset in Graphics object\\n Added ReportButton Widget to api\\n Added Report Button Utilities Plugin\\n Fixed attackStyle not being correct without configChangeEvent\\n Fixed type 20 attack weapon styles\\n\\nutsukami (1):\\n Fixes idle notifications occurring when they shouldn't (interacting with bankers/players). See #282\\n
\\n\",\"image\":\"/img/blog/1.2.11-Release/hunterplugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-01-12-00-00-1.2.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8HAA8H,OAAS,QAAQ,KAAO,mkOAAklO,MAAQ","file":"static/js/22.fca77403.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.11 Release\",\"description\":\"New 1.2.11 release of RuneLite is out. Notable new features are an awesome Hunter Plugin and support for more potion timers\",\"author\":\"Tomas\",\"body\":\"In this release we made a lot of improvements to client source, performance and\\noverall stability of the client. But there are few new features that are\\ndefinitely worth mentioning.
\\nFirst, and the biggest one is Hunter plugin (thanks to\\n@RobinWeymans ). Hunter plugin will show you\\nstate of your traps and also time until they will break. That should improve\\nyour overall hunting experience (and makes the terrible skill less terrible).\\nHere is small preview:
\\n
\\nWe also added support for some missing potions for the Timers plugin, and that\\nalso includes the newest released potion, Super Antifire Potion.
\\n
\\nAnd last feature on the list is support for native window decorations . That\\nmeans now you have option to let your window manager handle the window\\ndecorations (title bar, window borders). Here is small preview using my window\\nmanager (bspwm) without any window borders:
\\n
\\nAs I said in the beginning of the post, we made a lot of improvements to the\\nclient source code (mainly decoupling), so if you are bored Java developer\\nlooking for project to contribute to, you are always welcome!
\\nHopefully you will like the new release, enjoy!
\\n~ Tomas
\\nNew commits \\nWe had 15 contributors this release!
\\nAbex (1):\\n client: Add option to disable custom window chrome/style\\n\\nAdam (30):\\n Skip archetype test by default\\n cache: default index data to protocol 6\\n runelite-api: add equipment inventory slot id, inventory id, logout widget and chat message type 7\\n cache: fix writeBigSmart\\n cache: fix readBigSmart\\n cache: fix readString to not sign extend negative values\\n cache: rename some fields of object and interface\\n cache: lombok definitions\\n cache: add a few more write* to outputstream\\n cache: add savers\\n cache: add map and location definition, convert Region loading to use it\\n cache: split cache client and server into their own projects\\n runelite-proxy: subtree split into separate repository\\n cache: disable map image dumper test\\n cache: also disable map dumper test\\n runelite-client: move infoboxes back to top left\\n runelite-client: always render tooltips on top\\n cache test: get tmpdir from a system property\\n injector: allow method hooking to end of methods with multiple returns\\n Consistently capitalize RuneLite\\n Update logo\\n xp tracker: reset on world hop and on logging in\\n xp tracker: remove unused import\\n runelite-client: fix --no-rs\\n dev tools: draw over everything\\n http-service: fix item price cache to use fetched time instead of price time\\n http-service: remove junit/mockito dependencies since spring pulls them in\\n http-service: disable default cache control provided by spring-security\\n http-service: add cache control to item price\\n http-service: change item price cache to 30 minutes\\n\\nAlexander (2):\\n Fall back to default font for glyphs not in the custom font\\n ExaminePlugin: Make sure widget children array index is valid\\n\\nDevin (3):\\n Add fight cave plugin config\\n Update fight cave plugin overlay\\n Update zulrah plugin overlay\\n\\nDevin French (1):\\n Combine BOTTOM_RIGHT and ABOVE_CHATBOX_RIGHT overlays for fixed mode\\n\\nJulian Tith (1):\\n Add craft spinning animation ID and idle notification\\n\\nMax Weber (1):\\n runelite-client: add ConfigItem.warnOnDisable and warnOnEnable to configure when confirmationWarning is shown\\n\\nOnvo (6):\\n New MenuActions related to the hunter plugin\\n Add Widget.contains point\\n Add GameObjectsChanged event\\n Make ground items overlay use new Widget.contains\\n Add hunter plugin\\n Add colors for impling types\\n\\nRunelite auto updater (2):\\n [maven-release-plugin] prepare for next development iteration\\n [maven-release-plugin] prepare release runelite-parent-1.2.11\\n\\nSomeoneWithAnInternetConnection (5):\\n Actually fix example plugin archetype\\n Add tests for archetype-plugin compilability\\n Reduce clearRect calls to improve framerate\\n Prevent cursor icon from getting stuck as the wrong shape\\n Slayer plugin - fix "count on items" feature\\n\\nTomas Slusny (20):\\n Fix OkHttp connection leaks on connection error\\n Change UIManager defaults to use OSRS font\\n Change XP tracker button to use image\\n Simplify navigation button code\\n Move IconTextField to Hiscore plugin\\n Normalize plugin panel display\\n Change Notifier to be injectable service\\n Extract session-related logic to SessionManager\\n Extract runQuery to QueryRunner service\\n Move creation of client to RuneLite\\n Move setTitle to ClientUI\\n Move creation of tray icon to ClientUI\\n Cleanup RuneLite class fields\\n Move creation of UI to ClientUI class\\n Remove unnecessary null checks for game client\\n Show account and config plugins when outdated\\n Change warning for not found task to debug\\n Add support for super antifire potion\\n Add Antidote++ timer to TimerPlugin\\n Improve clan rank caching\\n\\nUniquePassive (10):\\n Don't NPE when Player name is null\\n Expand the hiscore panel when looking up players\\n Fix BackgroundComponent's background overflow\\n Fix previous result not being cleared in hiscore plugin\\n Fix ground items not being toggleable\\n Fix the UI freezing when refreshing widgets in the Dev Tools\\n runescape-client: Rename RSCanvas to GameCanvas\\n runescape-client: Rename RSSocket to GameSocket\\n Add a world list lookup client\\n Add world types\\n\\nUnmoon (4):\\n Ground Items - Fix alch value not applying to whole stack\\n Ground Items - Fix coins not having value\\n Ground Items - Fix quantity in high alch value display\\n Ground Items - Always show highlighted items\\n\\nkokkue (1):\\n idle plugin: add ornament dragon pickaxe\\n\\nnoremac201 (11):\\n Added missing skilling skills from boosts overlay. Reordered from left to right and up to down.\\n Add new overlay position for above right side of chatbox\\n Change attack style plugin to use overlay position ABOVE_CHATBOX_RIGHT\\n Added ProgressBar Component\\n Modified PanelComponent to hold a ProgressBarComponent\\n Updated XpGlobes to use new Components\\n Fixed setStroke not being reset in Graphics object\\n Added ReportButton Widget to api\\n Added Report Button Utilities Plugin\\n Fixed attackStyle not being correct without configChangeEvent\\n Fixed type 20 attack weapon styles\\n\\nutsukami (1):\\n Fixes idle notifications occurring when they shouldn't (interacting with bankers/players). See #282\\n
\\n\",\"image\":\"/img/blog/1.2.11-Release/hunterplugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/23.d7fa1f69.chunk.js b/static/js/23.2187209e.chunk.js
similarity index 98%
rename from static/js/23.d7fa1f69.chunk.js
rename to static/js/23.2187209e.chunk.js
index 26051134b..c20ac6d40 100644
--- a/static/js/23.d7fa1f69.chunk.js
+++ b/static/js/23.2187209e.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[23],{298:function(e,n){e.exports={title:"1.2.12 Release",description:"RuneLite 1.2.12 is released!",author:"Adam",body:'This release includes several notable features, including:
\n@UniquePassive added overlay layers, which\nallows RuneLite to optionally render beneath both the game menu and in-game\ninterfaces (such as the bank).
\n
\n@Noremac201 added a barbarian assult plugin\nwhich introduces a timer until next change, and allows left-click calls.
\n
\n
\nA new cannon plugin was introduced to count the number of cannonballs left in\nyour cannon, thanks to @Sethtroll .
\n
\nThe new player indicators plugin will draw your friend and clanmates names:
\n
\nSome improvements have been made to the attack indicator plugin to hide unwanted\nattack styles instantly. Thanks to @Dreyri for his\nwork on this.
\n
\nAdditionally, various new AoE attacks have been added to the AoE plugin,\nincluding Vorkath, Galvek, Vet\'ion, Chaos Fanatic, and the Corporeal Beast.
\n
\n
\n
\nFinally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam :
\n
\nEnjoy.
\n- Adam
\nNew commits \nWe had 10 contributors this release!
\nAdam (11):\n runelite-client: fix plugin manager test\n Move RS-related events to runelite-api\n injector: fix copying method code to update code->method, instructions->code, and instruction->instructions pointers\n Move field hooks to mixins\n runelite-plugin-archetype: update for events which moved to api\n readme: update logo url\n player indicators: update isFriend -> isFriended\n aoeprojectileinfo: store projectiles in a map\n runelite-api: expose widget group ids\n runelite-api: fix combat fornula\n xpglobes: don\'t break at virt level 126\n\nBart van Helvert (1):\n Deobfuscation and renaming of object definitions\n\nCameron Moberg (1):\n Add barbarian assault plugin\n\nDreyri (31):\n update hz.h to Widget.dynamicX\n update hz.d to Widget.dynamicY\n update hz.v to Widget.dynamicWidth\n update hz.ak to Widget.originalHeight\n update Client.hw to myPlayerIndex\n update ar.ce to KeyFocusListener.keyPressed\n update x.nw to BoundingBox3D.minimapSprite\n update eq.n to getItemStackAmountText\n rename field921 to overheadTextCount\n rename field997 to overheadTexts\n rename field929 to overheadTextsCyclesRemaining\n rename method4886 to getTextWidth\n rename field926 to overheadTextsOffsetX\n rename field925 to overheadTextsOffsetY\n rename field1100 to maxOverheadTexts\n rename method4884 to drawTextCentered\n rename method4903 to drawText\n swap screenX and screenY\n rename field923 to overheadTextsX\n rename field924 to overheadTextsY\n rename method168 to draw2DExtras\n update field1003 to lastLeftClickX\n update field936 to lastLeftClickY\n rename field940 to pressedItemIndex\n renamed method5211 to drawAtOpacity\n rename field 1082 to itemPressedDuration\n rename method3079 to processMouseInput\n rename field679 to mouseLastX\n rename field682 to mouseLastY\n rename class34.field455 to middleMouseMovesCamera\n rename field945 to itemBeingDragged\n\nFrederik Engels (6):\n runescape-client: update Projectile mappings\n Track projectile target and spawn cycle. Add to api with rest of mapings.\n runelite-client: add projectiles to devtools\n runelite-client: add new aoes to aoewarningplugin\n runelite-client: change combat level plugin to use game tick event\n Add widget hidden change event, use in attack indicator plugin\n\nMax Weber (2):\n Update ItemIDs\n Prevent the client from taking focus when it doesn\'t have it.\n\nSeth (3):\n Add Wintertodt Aoe\n overlay renderer: add check for chatbox being minimized\n Add Cannon plugin\n\nTomas Slusny (7):\n Add support for making tar idle notification\n Let overlapping tooltips stack vertically\n Add search bar to ConfigPanel\n Fix runelite-plugin-archetype\n Add tile indicators plugin\n Add plugin for displaying player names\n Fix new player-is-x mixins\n\nTyler Hardy (1):\n Generalize and add MenuActions\n\nUniquePassive (10):\n Don\'t produce erroneous code when @Copy mixin method missing dummy param\n Don\'t let @Copy/@Replace methods have more params than ob method\n Implement optimized isFriend, isIgnore and isClanMember\n SpecOrbOverlay: Use fields for position constants + adjust specorb pos\n Remove extra pixels on the right side of minimap_orb_background\n Add API for getting the client BufferProvider\n injector: add injector for drawAfterWidgets call\n runescape-client: add hook for draw under widgets\n runelite-client: add OverlayLayer and rendering logic for multiple overlay layers\n runelite-client: update plugins for new overlay layer\n
\n',image:"/img/blog/1.2.12-Release/overlayorder.png"}}}]);
-//# sourceMappingURL=23.d7fa1f69.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[23],{299:function(e,n){e.exports={title:"1.2.12 Release",description:"RuneLite 1.2.12 is released!",author:"Adam",body:'This release includes several notable features, including:
\n@UniquePassive added overlay layers, which\nallows RuneLite to optionally render beneath both the game menu and in-game\ninterfaces (such as the bank).
\n
\n@Noremac201 added a barbarian assult plugin\nwhich introduces a timer until next change, and allows left-click calls.
\n
\n
\nA new cannon plugin was introduced to count the number of cannonballs left in\nyour cannon, thanks to @Sethtroll .
\n
\nThe new player indicators plugin will draw your friend and clanmates names:
\n
\nSome improvements have been made to the attack indicator plugin to hide unwanted\nattack styles instantly. Thanks to @Dreyri for his\nwork on this.
\n
\nAdditionally, various new AoE attacks have been added to the AoE plugin,\nincluding Vorkath, Galvek, Vet\'ion, Chaos Fanatic, and the Corporeal Beast.
\n
\n
\n
\nFinally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam :
\n
\nEnjoy.
\n- Adam
\nNew commits \nWe had 10 contributors this release!
\nAdam (11):\n runelite-client: fix plugin manager test\n Move RS-related events to runelite-api\n injector: fix copying method code to update code->method, instructions->code, and instruction->instructions pointers\n Move field hooks to mixins\n runelite-plugin-archetype: update for events which moved to api\n readme: update logo url\n player indicators: update isFriend -> isFriended\n aoeprojectileinfo: store projectiles in a map\n runelite-api: expose widget group ids\n runelite-api: fix combat fornula\n xpglobes: don\'t break at virt level 126\n\nBart van Helvert (1):\n Deobfuscation and renaming of object definitions\n\nCameron Moberg (1):\n Add barbarian assault plugin\n\nDreyri (31):\n update hz.h to Widget.dynamicX\n update hz.d to Widget.dynamicY\n update hz.v to Widget.dynamicWidth\n update hz.ak to Widget.originalHeight\n update Client.hw to myPlayerIndex\n update ar.ce to KeyFocusListener.keyPressed\n update x.nw to BoundingBox3D.minimapSprite\n update eq.n to getItemStackAmountText\n rename field921 to overheadTextCount\n rename field997 to overheadTexts\n rename field929 to overheadTextsCyclesRemaining\n rename method4886 to getTextWidth\n rename field926 to overheadTextsOffsetX\n rename field925 to overheadTextsOffsetY\n rename field1100 to maxOverheadTexts\n rename method4884 to drawTextCentered\n rename method4903 to drawText\n swap screenX and screenY\n rename field923 to overheadTextsX\n rename field924 to overheadTextsY\n rename method168 to draw2DExtras\n update field1003 to lastLeftClickX\n update field936 to lastLeftClickY\n rename field940 to pressedItemIndex\n renamed method5211 to drawAtOpacity\n rename field 1082 to itemPressedDuration\n rename method3079 to processMouseInput\n rename field679 to mouseLastX\n rename field682 to mouseLastY\n rename class34.field455 to middleMouseMovesCamera\n rename field945 to itemBeingDragged\n\nFrederik Engels (6):\n runescape-client: update Projectile mappings\n Track projectile target and spawn cycle. Add to api with rest of mapings.\n runelite-client: add projectiles to devtools\n runelite-client: add new aoes to aoewarningplugin\n runelite-client: change combat level plugin to use game tick event\n Add widget hidden change event, use in attack indicator plugin\n\nMax Weber (2):\n Update ItemIDs\n Prevent the client from taking focus when it doesn\'t have it.\n\nSeth (3):\n Add Wintertodt Aoe\n overlay renderer: add check for chatbox being minimized\n Add Cannon plugin\n\nTomas Slusny (7):\n Add support for making tar idle notification\n Let overlapping tooltips stack vertically\n Add search bar to ConfigPanel\n Fix runelite-plugin-archetype\n Add tile indicators plugin\n Add plugin for displaying player names\n Fix new player-is-x mixins\n\nTyler Hardy (1):\n Generalize and add MenuActions\n\nUniquePassive (10):\n Don\'t produce erroneous code when @Copy mixin method missing dummy param\n Don\'t let @Copy/@Replace methods have more params than ob method\n Implement optimized isFriend, isIgnore and isClanMember\n SpecOrbOverlay: Use fields for position constants + adjust specorb pos\n Remove extra pixels on the right side of minimap_orb_background\n Add API for getting the client BufferProvider\n injector: add injector for drawAfterWidgets call\n runescape-client: add hook for draw under widgets\n runelite-client: add OverlayLayer and rendering logic for multiple overlay layers\n runelite-client: update plugins for new overlay layer\n
\n',image:"/img/blog/1.2.12-Release/overlayorder.png"}}}]);
+//# sourceMappingURL=23.2187209e.chunk.js.map
\ No newline at end of file
diff --git a/static/js/23.d7fa1f69.chunk.js.map b/static/js/23.2187209e.chunk.js.map
similarity index 99%
rename from static/js/23.d7fa1f69.chunk.js.map
rename to static/js/23.2187209e.chunk.js.map
index 55752579c..d40bb3a73 100644
--- a/static/js/23.d7fa1f69.chunk.js.map
+++ b/static/js/23.2187209e.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-01-18-00-00-1.2.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,+4LAAg9L,MAAQ","file":"static/js/23.d7fa1f69.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.12 Release\",\"description\":\"RuneLite 1.2.12 is released!\",\"author\":\"Adam\",\"body\":\"This release includes several notable features, including:
\\n@UniquePassive added overlay layers, which\\nallows RuneLite to optionally render beneath both the game menu and in-game\\ninterfaces (such as the bank).
\\n
\\n@Noremac201 added a barbarian assult plugin\\nwhich introduces a timer until next change, and allows left-click calls.
\\n
\\n
\\nA new cannon plugin was introduced to count the number of cannonballs left in\\nyour cannon, thanks to @Sethtroll .
\\n
\\nThe new player indicators plugin will draw your friend and clanmates names:
\\n
\\nSome improvements have been made to the attack indicator plugin to hide unwanted\\nattack styles instantly. Thanks to @Dreyri for his\\nwork on this.
\\n
\\nAdditionally, various new AoE attacks have been added to the AoE plugin,\\nincluding Vorkath, Galvek, Vet'ion, Chaos Fanatic, and the Corporeal Beast.
\\n
\\n
\\n
\\nFinally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam :
\\n
\\nEnjoy.
\\n- Adam
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (11):\\n runelite-client: fix plugin manager test\\n Move RS-related events to runelite-api\\n injector: fix copying method code to update code->method, instructions->code, and instruction->instructions pointers\\n Move field hooks to mixins\\n runelite-plugin-archetype: update for events which moved to api\\n readme: update logo url\\n player indicators: update isFriend -> isFriended\\n aoeprojectileinfo: store projectiles in a map\\n runelite-api: expose widget group ids\\n runelite-api: fix combat fornula\\n xpglobes: don't break at virt level 126\\n\\nBart van Helvert (1):\\n Deobfuscation and renaming of object definitions\\n\\nCameron Moberg (1):\\n Add barbarian assault plugin\\n\\nDreyri (31):\\n update hz.h to Widget.dynamicX\\n update hz.d to Widget.dynamicY\\n update hz.v to Widget.dynamicWidth\\n update hz.ak to Widget.originalHeight\\n update Client.hw to myPlayerIndex\\n update ar.ce to KeyFocusListener.keyPressed\\n update x.nw to BoundingBox3D.minimapSprite\\n update eq.n to getItemStackAmountText\\n rename field921 to overheadTextCount\\n rename field997 to overheadTexts\\n rename field929 to overheadTextsCyclesRemaining\\n rename method4886 to getTextWidth\\n rename field926 to overheadTextsOffsetX\\n rename field925 to overheadTextsOffsetY\\n rename field1100 to maxOverheadTexts\\n rename method4884 to drawTextCentered\\n rename method4903 to drawText\\n swap screenX and screenY\\n rename field923 to overheadTextsX\\n rename field924 to overheadTextsY\\n rename method168 to draw2DExtras\\n update field1003 to lastLeftClickX\\n update field936 to lastLeftClickY\\n rename field940 to pressedItemIndex\\n renamed method5211 to drawAtOpacity\\n rename field 1082 to itemPressedDuration\\n rename method3079 to processMouseInput\\n rename field679 to mouseLastX\\n rename field682 to mouseLastY\\n rename class34.field455 to middleMouseMovesCamera\\n rename field945 to itemBeingDragged\\n\\nFrederik Engels (6):\\n runescape-client: update Projectile mappings\\n Track projectile target and spawn cycle. Add to api with rest of mapings.\\n runelite-client: add projectiles to devtools\\n runelite-client: add new aoes to aoewarningplugin\\n runelite-client: change combat level plugin to use game tick event\\n Add widget hidden change event, use in attack indicator plugin\\n\\nMax Weber (2):\\n Update ItemIDs\\n Prevent the client from taking focus when it doesn't have it.\\n\\nSeth (3):\\n Add Wintertodt Aoe\\n overlay renderer: add check for chatbox being minimized\\n Add Cannon plugin\\n\\nTomas Slusny (7):\\n Add support for making tar idle notification\\n Let overlapping tooltips stack vertically\\n Add search bar to ConfigPanel\\n Fix runelite-plugin-archetype\\n Add tile indicators plugin\\n Add plugin for displaying player names\\n Fix new player-is-x mixins\\n\\nTyler Hardy (1):\\n Generalize and add MenuActions\\n\\nUniquePassive (10):\\n Don't produce erroneous code when @Copy mixin method missing dummy param\\n Don't let @Copy/@Replace methods have more params than ob method\\n Implement optimized isFriend, isIgnore and isClanMember\\n SpecOrbOverlay: Use fields for position constants + adjust specorb pos\\n Remove extra pixels on the right side of minimap_orb_background\\n Add API for getting the client BufferProvider\\n injector: add injector for drawAfterWidgets call\\n runescape-client: add hook for draw under widgets\\n runelite-client: add OverlayLayer and rendering logic for multiple overlay layers\\n runelite-client: update plugins for new overlay layer\\n
\\n\",\"image\":\"/img/blog/1.2.12-Release/overlayorder.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-01-18-00-00-1.2.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,+4LAAg9L,MAAQ","file":"static/js/23.2187209e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.12 Release\",\"description\":\"RuneLite 1.2.12 is released!\",\"author\":\"Adam\",\"body\":\"This release includes several notable features, including:
\\n@UniquePassive added overlay layers, which\\nallows RuneLite to optionally render beneath both the game menu and in-game\\ninterfaces (such as the bank).
\\n
\\n@Noremac201 added a barbarian assult plugin\\nwhich introduces a timer until next change, and allows left-click calls.
\\n
\\n
\\nA new cannon plugin was introduced to count the number of cannonballs left in\\nyour cannon, thanks to @Sethtroll .
\\n
\\nThe new player indicators plugin will draw your friend and clanmates names:
\\n
\\nSome improvements have been made to the attack indicator plugin to hide unwanted\\nattack styles instantly. Thanks to @Dreyri for his\\nwork on this.
\\n
\\nAdditionally, various new AoE attacks have been added to the AoE plugin,\\nincluding Vorkath, Galvek, Vet'ion, Chaos Fanatic, and the Corporeal Beast.
\\n
\\n
\\n
\\nFinally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam :
\\n
\\nEnjoy.
\\n- Adam
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (11):\\n runelite-client: fix plugin manager test\\n Move RS-related events to runelite-api\\n injector: fix copying method code to update code->method, instructions->code, and instruction->instructions pointers\\n Move field hooks to mixins\\n runelite-plugin-archetype: update for events which moved to api\\n readme: update logo url\\n player indicators: update isFriend -> isFriended\\n aoeprojectileinfo: store projectiles in a map\\n runelite-api: expose widget group ids\\n runelite-api: fix combat fornula\\n xpglobes: don't break at virt level 126\\n\\nBart van Helvert (1):\\n Deobfuscation and renaming of object definitions\\n\\nCameron Moberg (1):\\n Add barbarian assault plugin\\n\\nDreyri (31):\\n update hz.h to Widget.dynamicX\\n update hz.d to Widget.dynamicY\\n update hz.v to Widget.dynamicWidth\\n update hz.ak to Widget.originalHeight\\n update Client.hw to myPlayerIndex\\n update ar.ce to KeyFocusListener.keyPressed\\n update x.nw to BoundingBox3D.minimapSprite\\n update eq.n to getItemStackAmountText\\n rename field921 to overheadTextCount\\n rename field997 to overheadTexts\\n rename field929 to overheadTextsCyclesRemaining\\n rename method4886 to getTextWidth\\n rename field926 to overheadTextsOffsetX\\n rename field925 to overheadTextsOffsetY\\n rename field1100 to maxOverheadTexts\\n rename method4884 to drawTextCentered\\n rename method4903 to drawText\\n swap screenX and screenY\\n rename field923 to overheadTextsX\\n rename field924 to overheadTextsY\\n rename method168 to draw2DExtras\\n update field1003 to lastLeftClickX\\n update field936 to lastLeftClickY\\n rename field940 to pressedItemIndex\\n renamed method5211 to drawAtOpacity\\n rename field 1082 to itemPressedDuration\\n rename method3079 to processMouseInput\\n rename field679 to mouseLastX\\n rename field682 to mouseLastY\\n rename class34.field455 to middleMouseMovesCamera\\n rename field945 to itemBeingDragged\\n\\nFrederik Engels (6):\\n runescape-client: update Projectile mappings\\n Track projectile target and spawn cycle. Add to api with rest of mapings.\\n runelite-client: add projectiles to devtools\\n runelite-client: add new aoes to aoewarningplugin\\n runelite-client: change combat level plugin to use game tick event\\n Add widget hidden change event, use in attack indicator plugin\\n\\nMax Weber (2):\\n Update ItemIDs\\n Prevent the client from taking focus when it doesn't have it.\\n\\nSeth (3):\\n Add Wintertodt Aoe\\n overlay renderer: add check for chatbox being minimized\\n Add Cannon plugin\\n\\nTomas Slusny (7):\\n Add support for making tar idle notification\\n Let overlapping tooltips stack vertically\\n Add search bar to ConfigPanel\\n Fix runelite-plugin-archetype\\n Add tile indicators plugin\\n Add plugin for displaying player names\\n Fix new player-is-x mixins\\n\\nTyler Hardy (1):\\n Generalize and add MenuActions\\n\\nUniquePassive (10):\\n Don't produce erroneous code when @Copy mixin method missing dummy param\\n Don't let @Copy/@Replace methods have more params than ob method\\n Implement optimized isFriend, isIgnore and isClanMember\\n SpecOrbOverlay: Use fields for position constants + adjust specorb pos\\n Remove extra pixels on the right side of minimap_orb_background\\n Add API for getting the client BufferProvider\\n injector: add injector for drawAfterWidgets call\\n runescape-client: add hook for draw under widgets\\n runelite-client: add OverlayLayer and rendering logic for multiple overlay layers\\n runelite-client: update plugins for new overlay layer\\n
\\n\",\"image\":\"/img/blog/1.2.12-Release/overlayorder.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/24.566cdfb0.chunk.js b/static/js/24.87a547be.chunk.js
similarity index 98%
rename from static/js/24.566cdfb0.chunk.js
rename to static/js/24.87a547be.chunk.js
index 878af3404..85de3bde9 100644
--- a/static/js/24.566cdfb0.chunk.js
+++ b/static/js/24.87a547be.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[24],{299:function(e,n){e.exports={title:"1.2.13 Release",description:"RuneLite 1.2.13 is released!",author:"Adam",body:'This release includes several notable features, including:
\n@UniquePassive added a screenshot plugin,\noverlay layers, which automatically takes a screen shot on level up, clue\ncompletion, and quest completion. The screenshots may optionally be\nautomatically uploaded to imgur.
\nYou may manually take a screenshot by clicking the camera icon in the titlebar:
\n
\nIf you enjoy the old Low Detail mode, @deathbeam \ncontributed a low detail mode plugin which lets you toggle it.
\n
\nFinally, @SomeoneWithAnInternetConnection \nadded a metronome plugin to aid with timing game ticks.
\nThere were also several smaller improvements, including:
\n\nFixed ground items overlay to correctly account for tile height when drawing item names. \nAllow plugin panels, including the configuration panel, to keep state between\nbeing collapsed and expanded. \nFix idle notifier to more reliably notify you \nFix broken glyphs which are evident on some overlays \nAdd infernal eel to fishing plugin \n \nOn a more serious note, Jagex has requested removal of the Zulrah Helper,\nVolcanic Mine Helper, Teamcape Overlay, and AoE Plugin for being in violation of\nthe game rules. These plugins have been removed.
\nAdditionally, support for loading external plugins has been removed upon request\nfrom Jagex.
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (19):\n cache service: lazily load store\n cache service: skip loading filedata as it is not necessary for cache updater\n cache service: move database updating to happen during download\n cache service: don\'t skip already up to date archives\n cache service: use an identity hashmap as equals checks archive contents\n Revert "cache service: use an identity hashmap as equals checks archive contents"\n Revert "cache service: don\'t skip already up to date archives"\n Revert "cache service: move database updating to happen during download"\n cache service: remove unused import\n item service: set cache-control: public too\n config panel: don\'t show groups with no visible config items\n runelite-client: move all main loop checks info try/catch\n infobox manager: check infobox isn\'t null\n xp tracker: don\'t reset on logout or hop\n http-service: split hiscore service from controller\n http-service: add beginning of xp tracker\n deobfuscator: map classes of static fields which are initialized in clinit\n Add maven central to be tried before repo.runelite.net\n runelite-client: remove version and account name from title\n\nCameron Moberg (2):\n Fixed Slayer task infobox only updating on state change\n Changed how idle checks in combat\n\nDreyri (16):\n add setter for textColor\n add setter for spriteId\n add setter for width\n add setter for height\n add setter for name\n add setter for contentType\n add setter for type\n add getter/setter for scrollX\n add getter/setter for scrollY\n add setter/getter for originalX\n add getter/setter for originalY\n add getter for paddingX\n add getter for paddingY\n add setter for paddingX\n add setter for paddingY\n dev tools: allow editing widget settings\n\nMartin Tuskevicius (1):\n Swapped viewport width and height fields.\n\nMax Weber (1):\n Allow PluginPanels to keep state\n\nSeth (1):\n Add Clue Scroll/Barrows to screenshot plugin\n\nSomeoneWithAnInternetConnection (7):\n Name some internal runescape audio bits\n Implement sound-playing API\n Add collection of named SoundEffect IDs\n Add metronome plugin\n Rename debug boundingbox drawmode enums\n Expose runescape click/boundingbox display mode\n Add bounding/clickbox buttons to the devtools plugin\n\nSteveOSRS (1):\n Added infernal eel to fishing plugin\n\nTomas Slusny (14):\n Add startUp method for attack indicators plugin\n Fix startup and shutdown method of AccountPlugin\n Add shutDown to BossTimersPlugin\n Add shutDown to ConfigPlugin\n Add shutDown to DevtoolsPlugin\n Add shutDown method to HiscorePlugin\n Add startup and shutdown methods to SlayerPlugin\n Add shutDown method to TimersPlugin\n Add shutDown method to XpTrackerPlugin\n Fix NPE in ScreenShotPlugin\n Fix idle notifications for animation changes\n Update Project Lombok version to 1.16.20\n runescape-client: rename low detail fields\n Add low memory mode plugin\n\nTyler Hardy (1):\n Add gargoyle boss to aoe plugin\n\nUniquePassive (7):\n runescape-client: Fix broken glyphs\n Notify before 5 minute idle and 6h logout\n Add nullcheck for counter in SlayerPlugin#onConfigChanged\n runelite-client: update to substance 8.0.00-dev\n runelite-client: add client ui loaded event\n runelite-client: add screenshot plugin\n http-service: fix exception on empty config setKey request body\n\nnoremac201 (2):\n Progress Bar Component to not show 2 decimals percent\n Standardize xpglobe tooltip width\n\noplosthee (1):\n Incorporate height into the GroundItems overlay\n
\n',image:"/img/blog/1.2.13-Release/screenshotplugin.png"}}}]);
-//# sourceMappingURL=24.566cdfb0.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[24],{300:function(e,n){e.exports={title:"1.2.13 Release",description:"RuneLite 1.2.13 is released!",author:"Adam",body:'This release includes several notable features, including:
\n@UniquePassive added a screenshot plugin,\noverlay layers, which automatically takes a screen shot on level up, clue\ncompletion, and quest completion. The screenshots may optionally be\nautomatically uploaded to imgur.
\nYou may manually take a screenshot by clicking the camera icon in the titlebar:
\n
\nIf you enjoy the old Low Detail mode, @deathbeam \ncontributed a low detail mode plugin which lets you toggle it.
\n
\nFinally, @SomeoneWithAnInternetConnection \nadded a metronome plugin to aid with timing game ticks.
\nThere were also several smaller improvements, including:
\n\nFixed ground items overlay to correctly account for tile height when drawing item names. \nAllow plugin panels, including the configuration panel, to keep state between\nbeing collapsed and expanded. \nFix idle notifier to more reliably notify you \nFix broken glyphs which are evident on some overlays \nAdd infernal eel to fishing plugin \n \nOn a more serious note, Jagex has requested removal of the Zulrah Helper,\nVolcanic Mine Helper, Teamcape Overlay, and AoE Plugin for being in violation of\nthe game rules. These plugins have been removed.
\nAdditionally, support for loading external plugins has been removed upon request\nfrom Jagex.
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (19):\n cache service: lazily load store\n cache service: skip loading filedata as it is not necessary for cache updater\n cache service: move database updating to happen during download\n cache service: don\'t skip already up to date archives\n cache service: use an identity hashmap as equals checks archive contents\n Revert "cache service: use an identity hashmap as equals checks archive contents"\n Revert "cache service: don\'t skip already up to date archives"\n Revert "cache service: move database updating to happen during download"\n cache service: remove unused import\n item service: set cache-control: public too\n config panel: don\'t show groups with no visible config items\n runelite-client: move all main loop checks info try/catch\n infobox manager: check infobox isn\'t null\n xp tracker: don\'t reset on logout or hop\n http-service: split hiscore service from controller\n http-service: add beginning of xp tracker\n deobfuscator: map classes of static fields which are initialized in clinit\n Add maven central to be tried before repo.runelite.net\n runelite-client: remove version and account name from title\n\nCameron Moberg (2):\n Fixed Slayer task infobox only updating on state change\n Changed how idle checks in combat\n\nDreyri (16):\n add setter for textColor\n add setter for spriteId\n add setter for width\n add setter for height\n add setter for name\n add setter for contentType\n add setter for type\n add getter/setter for scrollX\n add getter/setter for scrollY\n add setter/getter for originalX\n add getter/setter for originalY\n add getter for paddingX\n add getter for paddingY\n add setter for paddingX\n add setter for paddingY\n dev tools: allow editing widget settings\n\nMartin Tuskevicius (1):\n Swapped viewport width and height fields.\n\nMax Weber (1):\n Allow PluginPanels to keep state\n\nSeth (1):\n Add Clue Scroll/Barrows to screenshot plugin\n\nSomeoneWithAnInternetConnection (7):\n Name some internal runescape audio bits\n Implement sound-playing API\n Add collection of named SoundEffect IDs\n Add metronome plugin\n Rename debug boundingbox drawmode enums\n Expose runescape click/boundingbox display mode\n Add bounding/clickbox buttons to the devtools plugin\n\nSteveOSRS (1):\n Added infernal eel to fishing plugin\n\nTomas Slusny (14):\n Add startUp method for attack indicators plugin\n Fix startup and shutdown method of AccountPlugin\n Add shutDown to BossTimersPlugin\n Add shutDown to ConfigPlugin\n Add shutDown to DevtoolsPlugin\n Add shutDown method to HiscorePlugin\n Add startup and shutdown methods to SlayerPlugin\n Add shutDown method to TimersPlugin\n Add shutDown method to XpTrackerPlugin\n Fix NPE in ScreenShotPlugin\n Fix idle notifications for animation changes\n Update Project Lombok version to 1.16.20\n runescape-client: rename low detail fields\n Add low memory mode plugin\n\nTyler Hardy (1):\n Add gargoyle boss to aoe plugin\n\nUniquePassive (7):\n runescape-client: Fix broken glyphs\n Notify before 5 minute idle and 6h logout\n Add nullcheck for counter in SlayerPlugin#onConfigChanged\n runelite-client: update to substance 8.0.00-dev\n runelite-client: add client ui loaded event\n runelite-client: add screenshot plugin\n http-service: fix exception on empty config setKey request body\n\nnoremac201 (2):\n Progress Bar Component to not show 2 decimals percent\n Standardize xpglobe tooltip width\n\noplosthee (1):\n Incorporate height into the GroundItems overlay\n
\n',image:"/img/blog/1.2.13-Release/screenshotplugin.png"}}}]);
+//# sourceMappingURL=24.87a547be.chunk.js.map
\ No newline at end of file
diff --git a/static/js/24.566cdfb0.chunk.js.map b/static/js/24.87a547be.chunk.js.map
similarity index 99%
rename from static/js/24.566cdfb0.chunk.js.map
rename to static/js/24.87a547be.chunk.js.map
index 85c0639b3..4b8a0bab6 100644
--- a/static/js/24.566cdfb0.chunk.js.map
+++ b/static/js/24.87a547be.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-01-25-00-00-1.2.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,ooLAAypL,MAAQ","file":"static/js/24.566cdfb0.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.13 Release\",\"description\":\"RuneLite 1.2.13 is released!\",\"author\":\"Adam\",\"body\":\"This release includes several notable features, including:
\\n@UniquePassive added a screenshot plugin,\\noverlay layers, which automatically takes a screen shot on level up, clue\\ncompletion, and quest completion. The screenshots may optionally be\\nautomatically uploaded to imgur.
\\nYou may manually take a screenshot by clicking the camera icon in the titlebar:
\\n
\\nIf you enjoy the old Low Detail mode, @deathbeam \\ncontributed a low detail mode plugin which lets you toggle it.
\\n
\\nFinally, @SomeoneWithAnInternetConnection \\nadded a metronome plugin to aid with timing game ticks.
\\nThere were also several smaller improvements, including:
\\n\\nFixed ground items overlay to correctly account for tile height when drawing item names. \\nAllow plugin panels, including the configuration panel, to keep state between\\nbeing collapsed and expanded. \\nFix idle notifier to more reliably notify you \\nFix broken glyphs which are evident on some overlays \\nAdd infernal eel to fishing plugin \\n \\nOn a more serious note, Jagex has requested removal of the Zulrah Helper,\\nVolcanic Mine Helper, Teamcape Overlay, and AoE Plugin for being in violation of\\nthe game rules. These plugins have been removed.
\\nAdditionally, support for loading external plugins has been removed upon request\\nfrom Jagex.
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (19):\\n cache service: lazily load store\\n cache service: skip loading filedata as it is not necessary for cache updater\\n cache service: move database updating to happen during download\\n cache service: don't skip already up to date archives\\n cache service: use an identity hashmap as equals checks archive contents\\n Revert "cache service: use an identity hashmap as equals checks archive contents"\\n Revert "cache service: don't skip already up to date archives"\\n Revert "cache service: move database updating to happen during download"\\n cache service: remove unused import\\n item service: set cache-control: public too\\n config panel: don't show groups with no visible config items\\n runelite-client: move all main loop checks info try/catch\\n infobox manager: check infobox isn't null\\n xp tracker: don't reset on logout or hop\\n http-service: split hiscore service from controller\\n http-service: add beginning of xp tracker\\n deobfuscator: map classes of static fields which are initialized in clinit\\n Add maven central to be tried before repo.runelite.net\\n runelite-client: remove version and account name from title\\n\\nCameron Moberg (2):\\n Fixed Slayer task infobox only updating on state change\\n Changed how idle checks in combat\\n\\nDreyri (16):\\n add setter for textColor\\n add setter for spriteId\\n add setter for width\\n add setter for height\\n add setter for name\\n add setter for contentType\\n add setter for type\\n add getter/setter for scrollX\\n add getter/setter for scrollY\\n add setter/getter for originalX\\n add getter/setter for originalY\\n add getter for paddingX\\n add getter for paddingY\\n add setter for paddingX\\n add setter for paddingY\\n dev tools: allow editing widget settings\\n\\nMartin Tuskevicius (1):\\n Swapped viewport width and height fields.\\n\\nMax Weber (1):\\n Allow PluginPanels to keep state\\n\\nSeth (1):\\n Add Clue Scroll/Barrows to screenshot plugin\\n\\nSomeoneWithAnInternetConnection (7):\\n Name some internal runescape audio bits\\n Implement sound-playing API\\n Add collection of named SoundEffect IDs\\n Add metronome plugin\\n Rename debug boundingbox drawmode enums\\n Expose runescape click/boundingbox display mode\\n Add bounding/clickbox buttons to the devtools plugin\\n\\nSteveOSRS (1):\\n Added infernal eel to fishing plugin\\n\\nTomas Slusny (14):\\n Add startUp method for attack indicators plugin\\n Fix startup and shutdown method of AccountPlugin\\n Add shutDown to BossTimersPlugin\\n Add shutDown to ConfigPlugin\\n Add shutDown to DevtoolsPlugin\\n Add shutDown method to HiscorePlugin\\n Add startup and shutdown methods to SlayerPlugin\\n Add shutDown method to TimersPlugin\\n Add shutDown method to XpTrackerPlugin\\n Fix NPE in ScreenShotPlugin\\n Fix idle notifications for animation changes\\n Update Project Lombok version to 1.16.20\\n runescape-client: rename low detail fields\\n Add low memory mode plugin\\n\\nTyler Hardy (1):\\n Add gargoyle boss to aoe plugin\\n\\nUniquePassive (7):\\n runescape-client: Fix broken glyphs\\n Notify before 5 minute idle and 6h logout\\n Add nullcheck for counter in SlayerPlugin#onConfigChanged\\n runelite-client: update to substance 8.0.00-dev\\n runelite-client: add client ui loaded event\\n runelite-client: add screenshot plugin\\n http-service: fix exception on empty config setKey request body\\n\\nnoremac201 (2):\\n Progress Bar Component to not show 2 decimals percent\\n Standardize xpglobe tooltip width\\n\\noplosthee (1):\\n Incorporate height into the GroundItems overlay\\n
\\n\",\"image\":\"/img/blog/1.2.13-Release/screenshotplugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-01-25-00-00-1.2.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,ooLAAypL,MAAQ","file":"static/js/24.87a547be.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.13 Release\",\"description\":\"RuneLite 1.2.13 is released!\",\"author\":\"Adam\",\"body\":\"This release includes several notable features, including:
\\n@UniquePassive added a screenshot plugin,\\noverlay layers, which automatically takes a screen shot on level up, clue\\ncompletion, and quest completion. The screenshots may optionally be\\nautomatically uploaded to imgur.
\\nYou may manually take a screenshot by clicking the camera icon in the titlebar:
\\n
\\nIf you enjoy the old Low Detail mode, @deathbeam \\ncontributed a low detail mode plugin which lets you toggle it.
\\n
\\nFinally, @SomeoneWithAnInternetConnection \\nadded a metronome plugin to aid with timing game ticks.
\\nThere were also several smaller improvements, including:
\\n\\nFixed ground items overlay to correctly account for tile height when drawing item names. \\nAllow plugin panels, including the configuration panel, to keep state between\\nbeing collapsed and expanded. \\nFix idle notifier to more reliably notify you \\nFix broken glyphs which are evident on some overlays \\nAdd infernal eel to fishing plugin \\n \\nOn a more serious note, Jagex has requested removal of the Zulrah Helper,\\nVolcanic Mine Helper, Teamcape Overlay, and AoE Plugin for being in violation of\\nthe game rules. These plugins have been removed.
\\nAdditionally, support for loading external plugins has been removed upon request\\nfrom Jagex.
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (19):\\n cache service: lazily load store\\n cache service: skip loading filedata as it is not necessary for cache updater\\n cache service: move database updating to happen during download\\n cache service: don't skip already up to date archives\\n cache service: use an identity hashmap as equals checks archive contents\\n Revert "cache service: use an identity hashmap as equals checks archive contents"\\n Revert "cache service: don't skip already up to date archives"\\n Revert "cache service: move database updating to happen during download"\\n cache service: remove unused import\\n item service: set cache-control: public too\\n config panel: don't show groups with no visible config items\\n runelite-client: move all main loop checks info try/catch\\n infobox manager: check infobox isn't null\\n xp tracker: don't reset on logout or hop\\n http-service: split hiscore service from controller\\n http-service: add beginning of xp tracker\\n deobfuscator: map classes of static fields which are initialized in clinit\\n Add maven central to be tried before repo.runelite.net\\n runelite-client: remove version and account name from title\\n\\nCameron Moberg (2):\\n Fixed Slayer task infobox only updating on state change\\n Changed how idle checks in combat\\n\\nDreyri (16):\\n add setter for textColor\\n add setter for spriteId\\n add setter for width\\n add setter for height\\n add setter for name\\n add setter for contentType\\n add setter for type\\n add getter/setter for scrollX\\n add getter/setter for scrollY\\n add setter/getter for originalX\\n add getter/setter for originalY\\n add getter for paddingX\\n add getter for paddingY\\n add setter for paddingX\\n add setter for paddingY\\n dev tools: allow editing widget settings\\n\\nMartin Tuskevicius (1):\\n Swapped viewport width and height fields.\\n\\nMax Weber (1):\\n Allow PluginPanels to keep state\\n\\nSeth (1):\\n Add Clue Scroll/Barrows to screenshot plugin\\n\\nSomeoneWithAnInternetConnection (7):\\n Name some internal runescape audio bits\\n Implement sound-playing API\\n Add collection of named SoundEffect IDs\\n Add metronome plugin\\n Rename debug boundingbox drawmode enums\\n Expose runescape click/boundingbox display mode\\n Add bounding/clickbox buttons to the devtools plugin\\n\\nSteveOSRS (1):\\n Added infernal eel to fishing plugin\\n\\nTomas Slusny (14):\\n Add startUp method for attack indicators plugin\\n Fix startup and shutdown method of AccountPlugin\\n Add shutDown to BossTimersPlugin\\n Add shutDown to ConfigPlugin\\n Add shutDown to DevtoolsPlugin\\n Add shutDown method to HiscorePlugin\\n Add startup and shutdown methods to SlayerPlugin\\n Add shutDown method to TimersPlugin\\n Add shutDown method to XpTrackerPlugin\\n Fix NPE in ScreenShotPlugin\\n Fix idle notifications for animation changes\\n Update Project Lombok version to 1.16.20\\n runescape-client: rename low detail fields\\n Add low memory mode plugin\\n\\nTyler Hardy (1):\\n Add gargoyle boss to aoe plugin\\n\\nUniquePassive (7):\\n runescape-client: Fix broken glyphs\\n Notify before 5 minute idle and 6h logout\\n Add nullcheck for counter in SlayerPlugin#onConfigChanged\\n runelite-client: update to substance 8.0.00-dev\\n runelite-client: add client ui loaded event\\n runelite-client: add screenshot plugin\\n http-service: fix exception on empty config setKey request body\\n\\nnoremac201 (2):\\n Progress Bar Component to not show 2 decimals percent\\n Standardize xpglobe tooltip width\\n\\noplosthee (1):\\n Incorporate height into the GroundItems overlay\\n
\\n\",\"image\":\"/img/blog/1.2.13-Release/screenshotplugin.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/25.4b99b4eb.chunk.js b/static/js/25.1e257e35.chunk.js
similarity index 98%
rename from static/js/25.4b99b4eb.chunk.js
rename to static/js/25.1e257e35.chunk.js
index ca361bf72..32152625f 100644
--- a/static/js/25.4b99b4eb.chunk.js
+++ b/static/js/25.1e257e35.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[25],{300:function(e,n){e.exports={title:"1.2.14 Release",description:"RuneLite 1.2.14 is released!",author:"Adam",body:'@Abextm added an item stats plugin which shows a\ntooltip on food and potions to show its effect and whether or not it would be\nwasteful to consume it.
\n
\nA new zoom plugin was added which extends the zoom limits on the built in client\nZoom feature:
\n
\nA new motherlode mine plugin was added to mark the locations of ore veins and\nrocks, thanks to @Sethtroll . Additionally, many\nnew potions and freeze spells have been added to the timer plugin.
\n
\n@deathbeam reworked the XP tracker plugin to have a nice new UI:
\n
\n@oplosthee added an achievement diary indicator\nplugin which shows which sections of diaries have been completed.
\n
\nThere are also several smaller improvements, including:
\n\nXP drop plugin to recolor xp drops when prayers are activated \nFix BA plugin for recent game update \nAdd granite cannonballs to cannon plugin \nAdd configuration option for the runepouch overaly to only show on hover \nAdded configurable tick delay to metronome plugin \n \n- Adam
\nNew commits \nWe had 10 contributors this release!
\nAdam (52):\n injector: fix detecting if garbage value should be appended\n runelite-api: rename InventoryItemQuery -> InventoryWidgetItemQuery\n runelite-api: add ItemContainer\n runelite-api: add inventory item query\n Add item stats plugin\n screenshot plugin: add test for different level up messages\n checkstyle: enforce whitespace after comma\n cache: remove script interpreter\n cache: allow passing instruction set to assembler\n runelite-api: add Script\n cache: add set_zoom_distance\n cache: add get_zoom_distance\n cache: add comment to rs2asm grammar\n cache: add set_camera_focal_point_height\n cache: add get_camera_focal_point_height\n cache: add script id to grammar\n runescape-api: add IndexData and IndexDataBase\n runescape-client: method1102 -> execute6500\n runescape-client: rename conflicting getConfigData method in IndexDataBase\n Add slf4j to mixins and expose logger in Hooks for them\n mixin injector: remove assert for moved code to not have exceptions\n Add ability to overlay cache archives\n Add runelite vm opcode and event\n Add int and string script stack to api\n Add script assembler plugin for packing scripts at build time\n Add runelite-scripts project for packaging overlaid scripts and dependency\n Add zoom plugin\n cache service: fix findArchive to select distinct\n runelite-client: add xp drop plugin which colors based on prayers\n metronome plugin: remove configurable sound ids until a better solution is found\n runelite-api: add rigour and augury prayers\n xo drop plugin: add rigour and augury\n xo drop plugin: set back xp drops to default color too\n mlm plugin: disable until it can be rewritten without scene scans every frame\n ground items: only loop tiles which are within distance\n ground items: REGION_SIZE - 1 since this is inclusive now\n cache: allow carriage returns in newlines in scripts\n Remote projectile target and length tracking\n mixins: fix getProjectiles queue iteration logic\n Remove unused imports\n Remove even more unused imports\n item manager: fix trying to cache null in getItemPrice\n config manager: thread config flushes to disk too\n slayer plugin: fix getting -1 count left on tasks\n runelite-client: fix exception from --no-rs\n xp tracker: don\'t add duplicate entries if nothing changes\n xp tracker plugin: update on logout\n runelite-api: add game object and wall object spawn/change/despawn events\n cannon plugin: update for event change\n hunter plugin: update for event change\n mlm plugin: rewrite to use events\n mlm plugin: default to enabled once again\n\nC Gibson (1):\n Disable screenshots on login screen\n\nCameron Moberg (1):\n Fixed Barbarian Assault plugin to work with osrs update on 2018/25/1\n\nKamiel (1):\n Add granite cannonball support to plugin\n\nMax Weber (6):\n method2965 > getScript\n method1752 > getScriptByFile\n Enable custom window border warning\n Add low-memory mode warning\n itemstats: Fix SuperRestore and friends\n runescape-api: remove RSCacheableNode::getNext() and getPrevious(). They are different than RSNode\'s next and previous, but have the same signature so they can get called instead. This caused the ground overlay to only show 1 item because it was iterating the cache, not the item list.\n\nSeth (14):\n Add hover option to runepouch\n Add graphic changed event\n timers plugin: add more timers\n Fix for screenshot HP level\n Add Wrath rune to Runepouch\n Add timer tooltips\n Fix spelling inconsistencies/add rest of potions\n Add Motherlode plugin\n Add custom colors to ground items\n Fix motherlode Ids\n timers plugin: check config before checking message\n timers plugin: add raids potions\n Fix spelling error on timer\n Add raid varbit check to remove timers\n\nSomeoneWithAnInternetConnection (3):\n Fishing plugin: Add fishing spots north of seers\' village\n Remove unused import\n Include unit prices in examine messages\n\nTomas Slusny (7):\n Change conversion of config stream to map to pairs\n Fix coloring of warned attack styles\n Fix the frame is displayable exception\n Update XP tracking plugin to include more info\n Preserve guava classes in the shaded jar\n Change AccountSession to use lombok features\n Fix access levels of WSClient\n\nUniquePassive (6):\n Add Dimension to configs\n Add a config setting for the game applet\'s size\n Add a Reset button to config panels for resetting to defaults\n Shift local indices only once\n Make sure injected methods don\'t invoke copied methods\n screenshot plugin: fix okhttp resource leak on imgur upload\n\noplosthee (5):\n Add Diary Progress Indicator plugin (#429)\n Change duration of Super Antifire Potions from 2 to 3 minutes\n Extend Metronome Plugin with configurable sound and tick delay (#454)\n Fix Karamja diary displaying incorrect progress\n Remove modification of original diary entry colors\n
\n',image:"/img/blog/1.2.14-Release/itemstats.png"}}}]);
-//# sourceMappingURL=25.4b99b4eb.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[25],{301:function(e,n){e.exports={title:"1.2.14 Release",description:"RuneLite 1.2.14 is released!",author:"Adam",body:'@Abextm added an item stats plugin which shows a\ntooltip on food and potions to show its effect and whether or not it would be\nwasteful to consume it.
\n
\nA new zoom plugin was added which extends the zoom limits on the built in client\nZoom feature:
\n
\nA new motherlode mine plugin was added to mark the locations of ore veins and\nrocks, thanks to @Sethtroll . Additionally, many\nnew potions and freeze spells have been added to the timer plugin.
\n
\n@deathbeam reworked the XP tracker plugin to have a nice new UI:
\n
\n@oplosthee added an achievement diary indicator\nplugin which shows which sections of diaries have been completed.
\n
\nThere are also several smaller improvements, including:
\n\nXP drop plugin to recolor xp drops when prayers are activated \nFix BA plugin for recent game update \nAdd granite cannonballs to cannon plugin \nAdd configuration option for the runepouch overaly to only show on hover \nAdded configurable tick delay to metronome plugin \n \n- Adam
\nNew commits \nWe had 10 contributors this release!
\nAdam (52):\n injector: fix detecting if garbage value should be appended\n runelite-api: rename InventoryItemQuery -> InventoryWidgetItemQuery\n runelite-api: add ItemContainer\n runelite-api: add inventory item query\n Add item stats plugin\n screenshot plugin: add test for different level up messages\n checkstyle: enforce whitespace after comma\n cache: remove script interpreter\n cache: allow passing instruction set to assembler\n runelite-api: add Script\n cache: add set_zoom_distance\n cache: add get_zoom_distance\n cache: add comment to rs2asm grammar\n cache: add set_camera_focal_point_height\n cache: add get_camera_focal_point_height\n cache: add script id to grammar\n runescape-api: add IndexData and IndexDataBase\n runescape-client: method1102 -> execute6500\n runescape-client: rename conflicting getConfigData method in IndexDataBase\n Add slf4j to mixins and expose logger in Hooks for them\n mixin injector: remove assert for moved code to not have exceptions\n Add ability to overlay cache archives\n Add runelite vm opcode and event\n Add int and string script stack to api\n Add script assembler plugin for packing scripts at build time\n Add runelite-scripts project for packaging overlaid scripts and dependency\n Add zoom plugin\n cache service: fix findArchive to select distinct\n runelite-client: add xp drop plugin which colors based on prayers\n metronome plugin: remove configurable sound ids until a better solution is found\n runelite-api: add rigour and augury prayers\n xo drop plugin: add rigour and augury\n xo drop plugin: set back xp drops to default color too\n mlm plugin: disable until it can be rewritten without scene scans every frame\n ground items: only loop tiles which are within distance\n ground items: REGION_SIZE - 1 since this is inclusive now\n cache: allow carriage returns in newlines in scripts\n Remote projectile target and length tracking\n mixins: fix getProjectiles queue iteration logic\n Remove unused imports\n Remove even more unused imports\n item manager: fix trying to cache null in getItemPrice\n config manager: thread config flushes to disk too\n slayer plugin: fix getting -1 count left on tasks\n runelite-client: fix exception from --no-rs\n xp tracker: don\'t add duplicate entries if nothing changes\n xp tracker plugin: update on logout\n runelite-api: add game object and wall object spawn/change/despawn events\n cannon plugin: update for event change\n hunter plugin: update for event change\n mlm plugin: rewrite to use events\n mlm plugin: default to enabled once again\n\nC Gibson (1):\n Disable screenshots on login screen\n\nCameron Moberg (1):\n Fixed Barbarian Assault plugin to work with osrs update on 2018/25/1\n\nKamiel (1):\n Add granite cannonball support to plugin\n\nMax Weber (6):\n method2965 > getScript\n method1752 > getScriptByFile\n Enable custom window border warning\n Add low-memory mode warning\n itemstats: Fix SuperRestore and friends\n runescape-api: remove RSCacheableNode::getNext() and getPrevious(). They are different than RSNode\'s next and previous, but have the same signature so they can get called instead. This caused the ground overlay to only show 1 item because it was iterating the cache, not the item list.\n\nSeth (14):\n Add hover option to runepouch\n Add graphic changed event\n timers plugin: add more timers\n Fix for screenshot HP level\n Add Wrath rune to Runepouch\n Add timer tooltips\n Fix spelling inconsistencies/add rest of potions\n Add Motherlode plugin\n Add custom colors to ground items\n Fix motherlode Ids\n timers plugin: check config before checking message\n timers plugin: add raids potions\n Fix spelling error on timer\n Add raid varbit check to remove timers\n\nSomeoneWithAnInternetConnection (3):\n Fishing plugin: Add fishing spots north of seers\' village\n Remove unused import\n Include unit prices in examine messages\n\nTomas Slusny (7):\n Change conversion of config stream to map to pairs\n Fix coloring of warned attack styles\n Fix the frame is displayable exception\n Update XP tracking plugin to include more info\n Preserve guava classes in the shaded jar\n Change AccountSession to use lombok features\n Fix access levels of WSClient\n\nUniquePassive (6):\n Add Dimension to configs\n Add a config setting for the game applet\'s size\n Add a Reset button to config panels for resetting to defaults\n Shift local indices only once\n Make sure injected methods don\'t invoke copied methods\n screenshot plugin: fix okhttp resource leak on imgur upload\n\noplosthee (5):\n Add Diary Progress Indicator plugin (#429)\n Change duration of Super Antifire Potions from 2 to 3 minutes\n Extend Metronome Plugin with configurable sound and tick delay (#454)\n Fix Karamja diary displaying incorrect progress\n Remove modification of original diary entry colors\n
\n',image:"/img/blog/1.2.14-Release/itemstats.png"}}}]);
+//# sourceMappingURL=25.1e257e35.chunk.js.map
\ No newline at end of file
diff --git a/static/js/25.4b99b4eb.chunk.js.map b/static/js/25.1e257e35.chunk.js.map
similarity index 99%
rename from static/js/25.4b99b4eb.chunk.js.map
rename to static/js/25.1e257e35.chunk.js.map
index 5880d5ee4..9c7ec0911 100644
--- a/static/js/25.4b99b4eb.chunk.js.map
+++ b/static/js/25.1e257e35.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-02-01-00-00-1.2.14-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,47NAAm+N,MAAQ","file":"static/js/25.4b99b4eb.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.14 Release\",\"description\":\"RuneLite 1.2.14 is released!\",\"author\":\"Adam\",\"body\":\"@Abextm added an item stats plugin which shows a\\ntooltip on food and potions to show its effect and whether or not it would be\\nwasteful to consume it.
\\n
\\nA new zoom plugin was added which extends the zoom limits on the built in client\\nZoom feature:
\\n
\\nA new motherlode mine plugin was added to mark the locations of ore veins and\\nrocks, thanks to @Sethtroll . Additionally, many\\nnew potions and freeze spells have been added to the timer plugin.
\\n
\\n@deathbeam reworked the XP tracker plugin to have a nice new UI:
\\n
\\n@oplosthee added an achievement diary indicator\\nplugin which shows which sections of diaries have been completed.
\\n
\\nThere are also several smaller improvements, including:
\\n\\nXP drop plugin to recolor xp drops when prayers are activated \\nFix BA plugin for recent game update \\nAdd granite cannonballs to cannon plugin \\nAdd configuration option for the runepouch overaly to only show on hover \\nAdded configurable tick delay to metronome plugin \\n \\n- Adam
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (52):\\n injector: fix detecting if garbage value should be appended\\n runelite-api: rename InventoryItemQuery -> InventoryWidgetItemQuery\\n runelite-api: add ItemContainer\\n runelite-api: add inventory item query\\n Add item stats plugin\\n screenshot plugin: add test for different level up messages\\n checkstyle: enforce whitespace after comma\\n cache: remove script interpreter\\n cache: allow passing instruction set to assembler\\n runelite-api: add Script\\n cache: add set_zoom_distance\\n cache: add get_zoom_distance\\n cache: add comment to rs2asm grammar\\n cache: add set_camera_focal_point_height\\n cache: add get_camera_focal_point_height\\n cache: add script id to grammar\\n runescape-api: add IndexData and IndexDataBase\\n runescape-client: method1102 -> execute6500\\n runescape-client: rename conflicting getConfigData method in IndexDataBase\\n Add slf4j to mixins and expose logger in Hooks for them\\n mixin injector: remove assert for moved code to not have exceptions\\n Add ability to overlay cache archives\\n Add runelite vm opcode and event\\n Add int and string script stack to api\\n Add script assembler plugin for packing scripts at build time\\n Add runelite-scripts project for packaging overlaid scripts and dependency\\n Add zoom plugin\\n cache service: fix findArchive to select distinct\\n runelite-client: add xp drop plugin which colors based on prayers\\n metronome plugin: remove configurable sound ids until a better solution is found\\n runelite-api: add rigour and augury prayers\\n xo drop plugin: add rigour and augury\\n xo drop plugin: set back xp drops to default color too\\n mlm plugin: disable until it can be rewritten without scene scans every frame\\n ground items: only loop tiles which are within distance\\n ground items: REGION_SIZE - 1 since this is inclusive now\\n cache: allow carriage returns in newlines in scripts\\n Remote projectile target and length tracking\\n mixins: fix getProjectiles queue iteration logic\\n Remove unused imports\\n Remove even more unused imports\\n item manager: fix trying to cache null in getItemPrice\\n config manager: thread config flushes to disk too\\n slayer plugin: fix getting -1 count left on tasks\\n runelite-client: fix exception from --no-rs\\n xp tracker: don't add duplicate entries if nothing changes\\n xp tracker plugin: update on logout\\n runelite-api: add game object and wall object spawn/change/despawn events\\n cannon plugin: update for event change\\n hunter plugin: update for event change\\n mlm plugin: rewrite to use events\\n mlm plugin: default to enabled once again\\n\\nC Gibson (1):\\n Disable screenshots on login screen\\n\\nCameron Moberg (1):\\n Fixed Barbarian Assault plugin to work with osrs update on 2018/25/1\\n\\nKamiel (1):\\n Add granite cannonball support to plugin\\n\\nMax Weber (6):\\n method2965 > getScript\\n method1752 > getScriptByFile\\n Enable custom window border warning\\n Add low-memory mode warning\\n itemstats: Fix SuperRestore and friends\\n runescape-api: remove RSCacheableNode::getNext() and getPrevious(). They are different than RSNode's next and previous, but have the same signature so they can get called instead. This caused the ground overlay to only show 1 item because it was iterating the cache, not the item list.\\n\\nSeth (14):\\n Add hover option to runepouch\\n Add graphic changed event\\n timers plugin: add more timers\\n Fix for screenshot HP level\\n Add Wrath rune to Runepouch\\n Add timer tooltips\\n Fix spelling inconsistencies/add rest of potions\\n Add Motherlode plugin\\n Add custom colors to ground items\\n Fix motherlode Ids\\n timers plugin: check config before checking message\\n timers plugin: add raids potions\\n Fix spelling error on timer\\n Add raid varbit check to remove timers\\n\\nSomeoneWithAnInternetConnection (3):\\n Fishing plugin: Add fishing spots north of seers' village\\n Remove unused import\\n Include unit prices in examine messages\\n\\nTomas Slusny (7):\\n Change conversion of config stream to map to pairs\\n Fix coloring of warned attack styles\\n Fix the frame is displayable exception\\n Update XP tracking plugin to include more info\\n Preserve guava classes in the shaded jar\\n Change AccountSession to use lombok features\\n Fix access levels of WSClient\\n\\nUniquePassive (6):\\n Add Dimension to configs\\n Add a config setting for the game applet's size\\n Add a Reset button to config panels for resetting to defaults\\n Shift local indices only once\\n Make sure injected methods don't invoke copied methods\\n screenshot plugin: fix okhttp resource leak on imgur upload\\n\\noplosthee (5):\\n Add Diary Progress Indicator plugin (#429)\\n Change duration of Super Antifire Potions from 2 to 3 minutes\\n Extend Metronome Plugin with configurable sound and tick delay (#454)\\n Fix Karamja diary displaying incorrect progress\\n Remove modification of original diary entry colors\\n
\\n\",\"image\":\"/img/blog/1.2.14-Release/itemstats.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-02-01-00-00-1.2.14-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,47NAAm+N,MAAQ","file":"static/js/25.1e257e35.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.14 Release\",\"description\":\"RuneLite 1.2.14 is released!\",\"author\":\"Adam\",\"body\":\"@Abextm added an item stats plugin which shows a\\ntooltip on food and potions to show its effect and whether or not it would be\\nwasteful to consume it.
\\n
\\nA new zoom plugin was added which extends the zoom limits on the built in client\\nZoom feature:
\\n
\\nA new motherlode mine plugin was added to mark the locations of ore veins and\\nrocks, thanks to @Sethtroll . Additionally, many\\nnew potions and freeze spells have been added to the timer plugin.
\\n
\\n@deathbeam reworked the XP tracker plugin to have a nice new UI:
\\n
\\n@oplosthee added an achievement diary indicator\\nplugin which shows which sections of diaries have been completed.
\\n
\\nThere are also several smaller improvements, including:
\\n\\nXP drop plugin to recolor xp drops when prayers are activated \\nFix BA plugin for recent game update \\nAdd granite cannonballs to cannon plugin \\nAdd configuration option for the runepouch overaly to only show on hover \\nAdded configurable tick delay to metronome plugin \\n \\n- Adam
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (52):\\n injector: fix detecting if garbage value should be appended\\n runelite-api: rename InventoryItemQuery -> InventoryWidgetItemQuery\\n runelite-api: add ItemContainer\\n runelite-api: add inventory item query\\n Add item stats plugin\\n screenshot plugin: add test for different level up messages\\n checkstyle: enforce whitespace after comma\\n cache: remove script interpreter\\n cache: allow passing instruction set to assembler\\n runelite-api: add Script\\n cache: add set_zoom_distance\\n cache: add get_zoom_distance\\n cache: add comment to rs2asm grammar\\n cache: add set_camera_focal_point_height\\n cache: add get_camera_focal_point_height\\n cache: add script id to grammar\\n runescape-api: add IndexData and IndexDataBase\\n runescape-client: method1102 -> execute6500\\n runescape-client: rename conflicting getConfigData method in IndexDataBase\\n Add slf4j to mixins and expose logger in Hooks for them\\n mixin injector: remove assert for moved code to not have exceptions\\n Add ability to overlay cache archives\\n Add runelite vm opcode and event\\n Add int and string script stack to api\\n Add script assembler plugin for packing scripts at build time\\n Add runelite-scripts project for packaging overlaid scripts and dependency\\n Add zoom plugin\\n cache service: fix findArchive to select distinct\\n runelite-client: add xp drop plugin which colors based on prayers\\n metronome plugin: remove configurable sound ids until a better solution is found\\n runelite-api: add rigour and augury prayers\\n xo drop plugin: add rigour and augury\\n xo drop plugin: set back xp drops to default color too\\n mlm plugin: disable until it can be rewritten without scene scans every frame\\n ground items: only loop tiles which are within distance\\n ground items: REGION_SIZE - 1 since this is inclusive now\\n cache: allow carriage returns in newlines in scripts\\n Remote projectile target and length tracking\\n mixins: fix getProjectiles queue iteration logic\\n Remove unused imports\\n Remove even more unused imports\\n item manager: fix trying to cache null in getItemPrice\\n config manager: thread config flushes to disk too\\n slayer plugin: fix getting -1 count left on tasks\\n runelite-client: fix exception from --no-rs\\n xp tracker: don't add duplicate entries if nothing changes\\n xp tracker plugin: update on logout\\n runelite-api: add game object and wall object spawn/change/despawn events\\n cannon plugin: update for event change\\n hunter plugin: update for event change\\n mlm plugin: rewrite to use events\\n mlm plugin: default to enabled once again\\n\\nC Gibson (1):\\n Disable screenshots on login screen\\n\\nCameron Moberg (1):\\n Fixed Barbarian Assault plugin to work with osrs update on 2018/25/1\\n\\nKamiel (1):\\n Add granite cannonball support to plugin\\n\\nMax Weber (6):\\n method2965 > getScript\\n method1752 > getScriptByFile\\n Enable custom window border warning\\n Add low-memory mode warning\\n itemstats: Fix SuperRestore and friends\\n runescape-api: remove RSCacheableNode::getNext() and getPrevious(). They are different than RSNode's next and previous, but have the same signature so they can get called instead. This caused the ground overlay to only show 1 item because it was iterating the cache, not the item list.\\n\\nSeth (14):\\n Add hover option to runepouch\\n Add graphic changed event\\n timers plugin: add more timers\\n Fix for screenshot HP level\\n Add Wrath rune to Runepouch\\n Add timer tooltips\\n Fix spelling inconsistencies/add rest of potions\\n Add Motherlode plugin\\n Add custom colors to ground items\\n Fix motherlode Ids\\n timers plugin: check config before checking message\\n timers plugin: add raids potions\\n Fix spelling error on timer\\n Add raid varbit check to remove timers\\n\\nSomeoneWithAnInternetConnection (3):\\n Fishing plugin: Add fishing spots north of seers' village\\n Remove unused import\\n Include unit prices in examine messages\\n\\nTomas Slusny (7):\\n Change conversion of config stream to map to pairs\\n Fix coloring of warned attack styles\\n Fix the frame is displayable exception\\n Update XP tracking plugin to include more info\\n Preserve guava classes in the shaded jar\\n Change AccountSession to use lombok features\\n Fix access levels of WSClient\\n\\nUniquePassive (6):\\n Add Dimension to configs\\n Add a config setting for the game applet's size\\n Add a Reset button to config panels for resetting to defaults\\n Shift local indices only once\\n Make sure injected methods don't invoke copied methods\\n screenshot plugin: fix okhttp resource leak on imgur upload\\n\\noplosthee (5):\\n Add Diary Progress Indicator plugin (#429)\\n Change duration of Super Antifire Potions from 2 to 3 minutes\\n Extend Metronome Plugin with configurable sound and tick delay (#454)\\n Fix Karamja diary displaying incorrect progress\\n Remove modification of original diary entry colors\\n
\\n\",\"image\":\"/img/blog/1.2.14-Release/itemstats.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/26.6c79b7e3.chunk.js b/static/js/26.d7632b29.chunk.js
similarity index 97%
rename from static/js/26.6c79b7e3.chunk.js
rename to static/js/26.d7632b29.chunk.js
index 4965305fe..4a77b951d 100644
--- a/static/js/26.6c79b7e3.chunk.js
+++ b/static/js/26.d7632b29.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[26],{301:function(e,n){e.exports={title:"1.2.15 Release",description:"RuneLite 1.2.15 is released!",author:"Adam",body:'An agility plugin has been added which shows the click boxes of ability obstaces.\nThanks to @SomeoneWithAnInternetConnection \nfor their hard work on reversing the clickbox calculations and making this happen.
\n
\n
\n
\nDiscord Rich Presence support has been\nadded in a new Discord plugin from @deathbeam .\nIt will show what skill you are training in game as your discord status.
\n
\nAdditionally, abyss rift locations and player owned house locations are now\nmarked on the minimap thanks to @Sethtroll .
\n
\n
\nAnd the burners are now marked as lit or unlit:
\n
\nThere are also several smaller improvements, including:
\n\nThe screenshot plugin now has configuration for the auto screenshot of\nlevelups and rewards \nThere is now an option to overlay non-clan members in the player indicator\nplugin \nTheoretical boosts have been added to the item stats plugin \nIndicators have been added for stat boots as an alternative to the current\noverlay \nFix sometimes drawing overlays at the wrong height above players and npcs \nDon\'t enable low memory mode on the audio subsystem when the client is\nconfigured in low memory mode, so the sounds sound normal \nThe teamcape plugin has been readded \n \n- Adam
\nNew commits \nWe had 9 contributors this release!
\nAdam (10):\n Revert "runelite-client: remove teamcape plugin"\n cache client: log when index crc changes too\n cache service: fix duplicating index to archive associations\n cache service: split up into cache controller and service\n Split out cache updater into own project\n http service: change cache datasource to runelite-cache2\n runelite-client: add central skill icon cache\n screenshot plugin: add configuration for auto screenshot of levelups and rewards\n screenshot plugin: fix test\n player indicators: use new isFriend/isClanMember api\n\nBen Moyer (2):\n add option to overlay non-clanmate player names\n Add theoretical boost to item stat overlay\n\nKamiel (5):\n info box component: vertically center images\n Add indicators to boosts plugin\n Fix several issues with indicators\n Prevent tooltip from being shown when runepouch is empty\n Make examine plugin work for runepouch\n\nMax Weber (4):\n move session management into the SessionManager from the AccountPlugin\n Add info panel plugin\n field1147 > logicalHeight\n change getModelHeight to getLogicalHeight\n\nSeth (5):\n runelite-api: add MiniMapImageLocation to perspective\n runecraft plugin: add Abyss rifts overlay\n make injected fields private\n Fix color tags in OpponentInfo\n Add Poh plugin\n\nSomeoneWithAnInternetConnection (9):\n Decrease the injector plugin\'s verbosity\n runescape-client: Rename some AABB-related fields\n Simplify Triangle and Vertex with lombok\n Move orientation incantation into Vertex.rotate\n Add method to get the clickable area of a TileObject\n Add events for Decorative and Ground TileObjects\n Add agility plugin\n Fix boosts plugin style nits\n Fix NPEs from BoostsPlugin at startup\n\nTomas Slusny (6):\n Change default overlay position to UNDER_WIDGETS\n Add new overlay layer position\n Adjust overlay layers and priorities\n Fix MLM plugin overlay layer\n Add Discord RPC service\n Add Discord plugin\n\nUniquePassive (3):\n Always use "high memory" audio\n Rename highMemory to audioHighMemory\n Rename ocLowDetail to objectCompositionLowDetail\n\nUnmoon (3):\n Idle Notifier - Change wording and default value of "Alert When Focused"\n Show ground items under widgets and with interfaces open\n Remove unused import\n
\n',image:"/img/blog/1.2.15-Release/agility1.png"}}}]);
-//# sourceMappingURL=26.6c79b7e3.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[26],{302:function(e,n){e.exports={title:"1.2.15 Release",description:"RuneLite 1.2.15 is released!",author:"Adam",body:'An agility plugin has been added which shows the click boxes of ability obstaces.\nThanks to @SomeoneWithAnInternetConnection \nfor their hard work on reversing the clickbox calculations and making this happen.
\n
\n
\n
\nDiscord Rich Presence support has been\nadded in a new Discord plugin from @deathbeam .\nIt will show what skill you are training in game as your discord status.
\n
\nAdditionally, abyss rift locations and player owned house locations are now\nmarked on the minimap thanks to @Sethtroll .
\n
\n
\nAnd the burners are now marked as lit or unlit:
\n
\nThere are also several smaller improvements, including:
\n\nThe screenshot plugin now has configuration for the auto screenshot of\nlevelups and rewards \nThere is now an option to overlay non-clan members in the player indicator\nplugin \nTheoretical boosts have been added to the item stats plugin \nIndicators have been added for stat boots as an alternative to the current\noverlay \nFix sometimes drawing overlays at the wrong height above players and npcs \nDon\'t enable low memory mode on the audio subsystem when the client is\nconfigured in low memory mode, so the sounds sound normal \nThe teamcape plugin has been readded \n \n- Adam
\nNew commits \nWe had 9 contributors this release!
\nAdam (10):\n Revert "runelite-client: remove teamcape plugin"\n cache client: log when index crc changes too\n cache service: fix duplicating index to archive associations\n cache service: split up into cache controller and service\n Split out cache updater into own project\n http service: change cache datasource to runelite-cache2\n runelite-client: add central skill icon cache\n screenshot plugin: add configuration for auto screenshot of levelups and rewards\n screenshot plugin: fix test\n player indicators: use new isFriend/isClanMember api\n\nBen Moyer (2):\n add option to overlay non-clanmate player names\n Add theoretical boost to item stat overlay\n\nKamiel (5):\n info box component: vertically center images\n Add indicators to boosts plugin\n Fix several issues with indicators\n Prevent tooltip from being shown when runepouch is empty\n Make examine plugin work for runepouch\n\nMax Weber (4):\n move session management into the SessionManager from the AccountPlugin\n Add info panel plugin\n field1147 > logicalHeight\n change getModelHeight to getLogicalHeight\n\nSeth (5):\n runelite-api: add MiniMapImageLocation to perspective\n runecraft plugin: add Abyss rifts overlay\n make injected fields private\n Fix color tags in OpponentInfo\n Add Poh plugin\n\nSomeoneWithAnInternetConnection (9):\n Decrease the injector plugin\'s verbosity\n runescape-client: Rename some AABB-related fields\n Simplify Triangle and Vertex with lombok\n Move orientation incantation into Vertex.rotate\n Add method to get the clickable area of a TileObject\n Add events for Decorative and Ground TileObjects\n Add agility plugin\n Fix boosts plugin style nits\n Fix NPEs from BoostsPlugin at startup\n\nTomas Slusny (6):\n Change default overlay position to UNDER_WIDGETS\n Add new overlay layer position\n Adjust overlay layers and priorities\n Fix MLM plugin overlay layer\n Add Discord RPC service\n Add Discord plugin\n\nUniquePassive (3):\n Always use "high memory" audio\n Rename highMemory to audioHighMemory\n Rename ocLowDetail to objectCompositionLowDetail\n\nUnmoon (3):\n Idle Notifier - Change wording and default value of "Alert When Focused"\n Show ground items under widgets and with interfaces open\n Remove unused import\n
\n',image:"/img/blog/1.2.15-Release/agility1.png"}}}]);
+//# sourceMappingURL=26.d7632b29.chunk.js.map
\ No newline at end of file
diff --git a/static/js/26.6c79b7e3.chunk.js.map b/static/js/26.d7632b29.chunk.js.map
similarity index 98%
rename from static/js/26.6c79b7e3.chunk.js.map
rename to static/js/26.d7632b29.chunk.js.map
index 8ca23169a..b907a0511 100644
--- a/static/js/26.6c79b7e3.chunk.js.map
+++ b/static/js/26.d7632b29.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-02-08-00-00-1.2.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,wlJAA0oJ,MAAQ","file":"static/js/26.6c79b7e3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.15 Release\",\"description\":\"RuneLite 1.2.15 is released!\",\"author\":\"Adam\",\"body\":\"An agility plugin has been added which shows the click boxes of ability obstaces.\\nThanks to @SomeoneWithAnInternetConnection \\nfor their hard work on reversing the clickbox calculations and making this happen.
\\n
\\n
\\n
\\nDiscord Rich Presence support has been\\nadded in a new Discord plugin from @deathbeam .\\nIt will show what skill you are training in game as your discord status.
\\n
\\nAdditionally, abyss rift locations and player owned house locations are now\\nmarked on the minimap thanks to @Sethtroll .
\\n
\\n
\\nAnd the burners are now marked as lit or unlit:
\\n
\\nThere are also several smaller improvements, including:
\\n\\nThe screenshot plugin now has configuration for the auto screenshot of\\nlevelups and rewards \\nThere is now an option to overlay non-clan members in the player indicator\\nplugin \\nTheoretical boosts have been added to the item stats plugin \\nIndicators have been added for stat boots as an alternative to the current\\noverlay \\nFix sometimes drawing overlays at the wrong height above players and npcs \\nDon't enable low memory mode on the audio subsystem when the client is\\nconfigured in low memory mode, so the sounds sound normal \\nThe teamcape plugin has been readded \\n \\n- Adam
\\nNew commits \\nWe had 9 contributors this release!
\\nAdam (10):\\n Revert "runelite-client: remove teamcape plugin"\\n cache client: log when index crc changes too\\n cache service: fix duplicating index to archive associations\\n cache service: split up into cache controller and service\\n Split out cache updater into own project\\n http service: change cache datasource to runelite-cache2\\n runelite-client: add central skill icon cache\\n screenshot plugin: add configuration for auto screenshot of levelups and rewards\\n screenshot plugin: fix test\\n player indicators: use new isFriend/isClanMember api\\n\\nBen Moyer (2):\\n add option to overlay non-clanmate player names\\n Add theoretical boost to item stat overlay\\n\\nKamiel (5):\\n info box component: vertically center images\\n Add indicators to boosts plugin\\n Fix several issues with indicators\\n Prevent tooltip from being shown when runepouch is empty\\n Make examine plugin work for runepouch\\n\\nMax Weber (4):\\n move session management into the SessionManager from the AccountPlugin\\n Add info panel plugin\\n field1147 > logicalHeight\\n change getModelHeight to getLogicalHeight\\n\\nSeth (5):\\n runelite-api: add MiniMapImageLocation to perspective\\n runecraft plugin: add Abyss rifts overlay\\n make injected fields private\\n Fix color tags in OpponentInfo\\n Add Poh plugin\\n\\nSomeoneWithAnInternetConnection (9):\\n Decrease the injector plugin's verbosity\\n runescape-client: Rename some AABB-related fields\\n Simplify Triangle and Vertex with lombok\\n Move orientation incantation into Vertex.rotate\\n Add method to get the clickable area of a TileObject\\n Add events for Decorative and Ground TileObjects\\n Add agility plugin\\n Fix boosts plugin style nits\\n Fix NPEs from BoostsPlugin at startup\\n\\nTomas Slusny (6):\\n Change default overlay position to UNDER_WIDGETS\\n Add new overlay layer position\\n Adjust overlay layers and priorities\\n Fix MLM plugin overlay layer\\n Add Discord RPC service\\n Add Discord plugin\\n\\nUniquePassive (3):\\n Always use "high memory" audio\\n Rename highMemory to audioHighMemory\\n Rename ocLowDetail to objectCompositionLowDetail\\n\\nUnmoon (3):\\n Idle Notifier - Change wording and default value of "Alert When Focused"\\n Show ground items under widgets and with interfaces open\\n Remove unused import\\n
\\n\",\"image\":\"/img/blog/1.2.15-Release/agility1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-02-08-00-00-1.2.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,+BAA+B,OAAS,OAAO,KAAO,wlJAA0oJ,MAAQ","file":"static/js/26.d7632b29.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.15 Release\",\"description\":\"RuneLite 1.2.15 is released!\",\"author\":\"Adam\",\"body\":\"An agility plugin has been added which shows the click boxes of ability obstaces.\\nThanks to @SomeoneWithAnInternetConnection \\nfor their hard work on reversing the clickbox calculations and making this happen.
\\n
\\n
\\n
\\nDiscord Rich Presence support has been\\nadded in a new Discord plugin from @deathbeam .\\nIt will show what skill you are training in game as your discord status.
\\n
\\nAdditionally, abyss rift locations and player owned house locations are now\\nmarked on the minimap thanks to @Sethtroll .
\\n
\\n
\\nAnd the burners are now marked as lit or unlit:
\\n
\\nThere are also several smaller improvements, including:
\\n\\nThe screenshot plugin now has configuration for the auto screenshot of\\nlevelups and rewards \\nThere is now an option to overlay non-clan members in the player indicator\\nplugin \\nTheoretical boosts have been added to the item stats plugin \\nIndicators have been added for stat boots as an alternative to the current\\noverlay \\nFix sometimes drawing overlays at the wrong height above players and npcs \\nDon't enable low memory mode on the audio subsystem when the client is\\nconfigured in low memory mode, so the sounds sound normal \\nThe teamcape plugin has been readded \\n \\n- Adam
\\nNew commits \\nWe had 9 contributors this release!
\\nAdam (10):\\n Revert "runelite-client: remove teamcape plugin"\\n cache client: log when index crc changes too\\n cache service: fix duplicating index to archive associations\\n cache service: split up into cache controller and service\\n Split out cache updater into own project\\n http service: change cache datasource to runelite-cache2\\n runelite-client: add central skill icon cache\\n screenshot plugin: add configuration for auto screenshot of levelups and rewards\\n screenshot plugin: fix test\\n player indicators: use new isFriend/isClanMember api\\n\\nBen Moyer (2):\\n add option to overlay non-clanmate player names\\n Add theoretical boost to item stat overlay\\n\\nKamiel (5):\\n info box component: vertically center images\\n Add indicators to boosts plugin\\n Fix several issues with indicators\\n Prevent tooltip from being shown when runepouch is empty\\n Make examine plugin work for runepouch\\n\\nMax Weber (4):\\n move session management into the SessionManager from the AccountPlugin\\n Add info panel plugin\\n field1147 > logicalHeight\\n change getModelHeight to getLogicalHeight\\n\\nSeth (5):\\n runelite-api: add MiniMapImageLocation to perspective\\n runecraft plugin: add Abyss rifts overlay\\n make injected fields private\\n Fix color tags in OpponentInfo\\n Add Poh plugin\\n\\nSomeoneWithAnInternetConnection (9):\\n Decrease the injector plugin's verbosity\\n runescape-client: Rename some AABB-related fields\\n Simplify Triangle and Vertex with lombok\\n Move orientation incantation into Vertex.rotate\\n Add method to get the clickable area of a TileObject\\n Add events for Decorative and Ground TileObjects\\n Add agility plugin\\n Fix boosts plugin style nits\\n Fix NPEs from BoostsPlugin at startup\\n\\nTomas Slusny (6):\\n Change default overlay position to UNDER_WIDGETS\\n Add new overlay layer position\\n Adjust overlay layers and priorities\\n Fix MLM plugin overlay layer\\n Add Discord RPC service\\n Add Discord plugin\\n\\nUniquePassive (3):\\n Always use "high memory" audio\\n Rename highMemory to audioHighMemory\\n Rename ocLowDetail to objectCompositionLowDetail\\n\\nUnmoon (3):\\n Idle Notifier - Change wording and default value of "Alert When Focused"\\n Show ground items under widgets and with interfaces open\\n Remove unused import\\n
\\n\",\"image\":\"/img/blog/1.2.15-Release/agility1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/27.5ab036ca.chunk.js b/static/js/27.35f1e6b7.chunk.js
similarity index 97%
rename from static/js/27.5ab036ca.chunk.js
rename to static/js/27.35f1e6b7.chunk.js
index 626e3f1db..baac41544 100644
--- a/static/js/27.5ab036ca.chunk.js
+++ b/static/js/27.35f1e6b7.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[27],{302:function(e,n){e.exports={title:"1.2.16 Release",description:"New puzzle box solver, barrows plugin, and NMZ plugin!",author:"Tomas",body:'An awesome puzzle box plugin has been finally added to RuneLite thanks to work of\n@UniquePassive . Clues are now even easier to do!
\n
\n
\nFor everyone who likes to AFK, thanks to @Fire-Proof \na Nightmare Zone plugin was added. It shows your current Nightmare Zone points in nice\nRuneLite custom overlay, notifies you when you are low on absorption, and when your\noverload runs out.
\n
\nBarrows helper has been added in a new Barrows plugin by @Sethtroll .\nNo more black minimap when in tunnels or finding the correct doors!
\n
\n
\nAdditionally, abyss rift click boxes are now highlighted thanks to\n@Sethtroll (again).
\n
\nAnd new Rogue\'s den plugin has been added to RuneLite as well, that shows click boxes\nof the Rogue\'s den obstacles. Thanks to @ShaunDreclin !
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe zoom plugin is now working again thanks to @Abextm \nNew option has been added to RuneLite settings that will make your window stay always on top \nClient is now logging the logs to ~/.runelite/logs, so in case you want to report problem,\nyou can also send the logs that would help us with resolving the problem. \nPOH icon\'s displaying when on the wrong floor was fixed \nSlayer task now do not decrements anymore when your slayer level is decremented\n(for example in God wars or from KBD special attack) \nTitle bar buttons are now shown in the info panel when you have custom title bar disabled \n \nEnjoy the new release!
\n~ Tomas
\nNew commits \nWe had 11 contributors this release!
\nAbex (1):\n Allow titlebar buttons to be moved out of the titlebar\n\nAdam (9):\n mousehighlight: don\'t show tooltip on sliding puzzles\n timers plugin: respect enabled configuration\n perspective: add method for checking if world location is in scene\n fishing plugin: move minimap overlay to own overlay\n runelite-client: shut down discord service when closed\n http-service: try to release okhttp resources on shutdown\n rs2asm: allow multiple newlines after header or instruction\n item manager: allow getting images with quantity\n item manager: also allow specifying stackable\n\nMax Weber (6):\n method984 > runScript\n Revert "scripts: disable callbacks"\n injector: copy exceptions on Injected classes\n Add raw injector to hook the script interpreter\n Zoom plugin: Relax inner zoom constraint\n injector: Allow injection of <init> and <clinit>\n\nNickolaj Jepsen (1):\n Add NMZ plugin\n\nNotFoxtrot (1):\n Add always on top setting\n\nSeth (8):\n runecraft plugin: show click boxes of abyss rifts\n cache: Update ObjectManager to include NULL names\n runelite-api: redump objectid with null names\n runelite-api: add getActions, imposterIds, and imposter to ObjectComposition\n perspective: add getCanvasTextMiniMapLocation\n Add barrows plugin\n slayer plugin: add check for cachedXp when xp changes\n poh plugin: fix icons displaying when changing planes\n\nShaunDreclin (1):\n Add Rogues\' Den plugin\n\nSomeoneWithAnInternetConnection (1):\n Fix mismapping of MouseWheel\n\nTomas Slusny (2):\n Fix logging inside info panel plugin\n Add logback logger that will log to file\n\nTyler Hardy (3):\n Remove unused Zulrah plugin assets\n Update ItemID from 160 cache\n runepouch plugin: use itemmanager to render runepouch item icons\n\nUniquePassive (4):\n Add puzzle box InventoryID\n Add puzzle box WidgetInfo\n Add puzzle solving algorithm\n Add puzzle solver plugin\n
\n',image:"/img/blog/1.2.16-Release/puzzlebox1.png"}}}]);
-//# sourceMappingURL=27.5ab036ca.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[27],{303:function(e,n){e.exports={title:"1.2.16 Release",description:"New puzzle box solver, barrows plugin, and NMZ plugin!",author:"Tomas",body:'An awesome puzzle box plugin has been finally added to RuneLite thanks to work of\n@UniquePassive . Clues are now even easier to do!
\n
\n
\nFor everyone who likes to AFK, thanks to @Fire-Proof \na Nightmare Zone plugin was added. It shows your current Nightmare Zone points in nice\nRuneLite custom overlay, notifies you when you are low on absorption, and when your\noverload runs out.
\n
\nBarrows helper has been added in a new Barrows plugin by @Sethtroll .\nNo more black minimap when in tunnels or finding the correct doors!
\n
\n
\nAdditionally, abyss rift click boxes are now highlighted thanks to\n@Sethtroll (again).
\n
\nAnd new Rogue\'s den plugin has been added to RuneLite as well, that shows click boxes\nof the Rogue\'s den obstacles. Thanks to @ShaunDreclin !
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe zoom plugin is now working again thanks to @Abextm \nNew option has been added to RuneLite settings that will make your window stay always on top \nClient is now logging the logs to ~/.runelite/logs, so in case you want to report problem,\nyou can also send the logs that would help us with resolving the problem. \nPOH icon\'s displaying when on the wrong floor was fixed \nSlayer task now do not decrements anymore when your slayer level is decremented\n(for example in God wars or from KBD special attack) \nTitle bar buttons are now shown in the info panel when you have custom title bar disabled \n \nEnjoy the new release!
\n~ Tomas
\nNew commits \nWe had 11 contributors this release!
\nAbex (1):\n Allow titlebar buttons to be moved out of the titlebar\n\nAdam (9):\n mousehighlight: don\'t show tooltip on sliding puzzles\n timers plugin: respect enabled configuration\n perspective: add method for checking if world location is in scene\n fishing plugin: move minimap overlay to own overlay\n runelite-client: shut down discord service when closed\n http-service: try to release okhttp resources on shutdown\n rs2asm: allow multiple newlines after header or instruction\n item manager: allow getting images with quantity\n item manager: also allow specifying stackable\n\nMax Weber (6):\n method984 > runScript\n Revert "scripts: disable callbacks"\n injector: copy exceptions on Injected classes\n Add raw injector to hook the script interpreter\n Zoom plugin: Relax inner zoom constraint\n injector: Allow injection of <init> and <clinit>\n\nNickolaj Jepsen (1):\n Add NMZ plugin\n\nNotFoxtrot (1):\n Add always on top setting\n\nSeth (8):\n runecraft plugin: show click boxes of abyss rifts\n cache: Update ObjectManager to include NULL names\n runelite-api: redump objectid with null names\n runelite-api: add getActions, imposterIds, and imposter to ObjectComposition\n perspective: add getCanvasTextMiniMapLocation\n Add barrows plugin\n slayer plugin: add check for cachedXp when xp changes\n poh plugin: fix icons displaying when changing planes\n\nShaunDreclin (1):\n Add Rogues\' Den plugin\n\nSomeoneWithAnInternetConnection (1):\n Fix mismapping of MouseWheel\n\nTomas Slusny (2):\n Fix logging inside info panel plugin\n Add logback logger that will log to file\n\nTyler Hardy (3):\n Remove unused Zulrah plugin assets\n Update ItemID from 160 cache\n runepouch plugin: use itemmanager to render runepouch item icons\n\nUniquePassive (4):\n Add puzzle box InventoryID\n Add puzzle box WidgetInfo\n Add puzzle solving algorithm\n Add puzzle solver plugin\n
\n',image:"/img/blog/1.2.16-Release/puzzlebox1.png"}}}]);
+//# sourceMappingURL=27.35f1e6b7.chunk.js.map
\ No newline at end of file
diff --git a/static/js/27.5ab036ca.chunk.js.map b/static/js/27.35f1e6b7.chunk.js.map
similarity index 98%
rename from static/js/27.5ab036ca.chunk.js.map
rename to static/js/27.35f1e6b7.chunk.js.map
index d3c302ae8..276cab755 100644
--- a/static/js/27.5ab036ca.chunk.js.map
+++ b/static/js/27.35f1e6b7.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-02-15-00-00-1.2.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yDAAyD,OAAS,QAAQ,KAAO,ilJAA4oJ,MAAQ","file":"static/js/27.5ab036ca.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.16 Release\",\"description\":\"New puzzle box solver, barrows plugin, and NMZ plugin!\",\"author\":\"Tomas\",\"body\":\"An awesome puzzle box plugin has been finally added to RuneLite thanks to work of\\n@UniquePassive . Clues are now even easier to do!
\\n
\\n
\\nFor everyone who likes to AFK, thanks to @Fire-Proof \\na Nightmare Zone plugin was added. It shows your current Nightmare Zone points in nice\\nRuneLite custom overlay, notifies you when you are low on absorption, and when your\\noverload runs out.
\\n
\\nBarrows helper has been added in a new Barrows plugin by @Sethtroll .\\nNo more black minimap when in tunnels or finding the correct doors!
\\n
\\n
\\nAdditionally, abyss rift click boxes are now highlighted thanks to\\n@Sethtroll (again).
\\n
\\nAnd new Rogue's den plugin has been added to RuneLite as well, that shows click boxes\\nof the Rogue's den obstacles. Thanks to @ShaunDreclin !
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe zoom plugin is now working again thanks to @Abextm \\nNew option has been added to RuneLite settings that will make your window stay always on top \\nClient is now logging the logs to ~/.runelite/logs, so in case you want to report problem,\\nyou can also send the logs that would help us with resolving the problem. \\nPOH icon's displaying when on the wrong floor was fixed \\nSlayer task now do not decrements anymore when your slayer level is decremented\\n(for example in God wars or from KBD special attack) \\nTitle bar buttons are now shown in the info panel when you have custom title bar disabled \\n \\nEnjoy the new release!
\\n~ Tomas
\\nNew commits \\nWe had 11 contributors this release!
\\nAbex (1):\\n Allow titlebar buttons to be moved out of the titlebar\\n\\nAdam (9):\\n mousehighlight: don't show tooltip on sliding puzzles\\n timers plugin: respect enabled configuration\\n perspective: add method for checking if world location is in scene\\n fishing plugin: move minimap overlay to own overlay\\n runelite-client: shut down discord service when closed\\n http-service: try to release okhttp resources on shutdown\\n rs2asm: allow multiple newlines after header or instruction\\n item manager: allow getting images with quantity\\n item manager: also allow specifying stackable\\n\\nMax Weber (6):\\n method984 > runScript\\n Revert "scripts: disable callbacks"\\n injector: copy exceptions on Injected classes\\n Add raw injector to hook the script interpreter\\n Zoom plugin: Relax inner zoom constraint\\n injector: Allow injection of <init> and <clinit>\\n\\nNickolaj Jepsen (1):\\n Add NMZ plugin\\n\\nNotFoxtrot (1):\\n Add always on top setting\\n\\nSeth (8):\\n runecraft plugin: show click boxes of abyss rifts\\n cache: Update ObjectManager to include NULL names\\n runelite-api: redump objectid with null names\\n runelite-api: add getActions, imposterIds, and imposter to ObjectComposition\\n perspective: add getCanvasTextMiniMapLocation\\n Add barrows plugin\\n slayer plugin: add check for cachedXp when xp changes\\n poh plugin: fix icons displaying when changing planes\\n\\nShaunDreclin (1):\\n Add Rogues' Den plugin\\n\\nSomeoneWithAnInternetConnection (1):\\n Fix mismapping of MouseWheel\\n\\nTomas Slusny (2):\\n Fix logging inside info panel plugin\\n Add logback logger that will log to file\\n\\nTyler Hardy (3):\\n Remove unused Zulrah plugin assets\\n Update ItemID from 160 cache\\n runepouch plugin: use itemmanager to render runepouch item icons\\n\\nUniquePassive (4):\\n Add puzzle box InventoryID\\n Add puzzle box WidgetInfo\\n Add puzzle solving algorithm\\n Add puzzle solver plugin\\n
\\n\",\"image\":\"/img/blog/1.2.16-Release/puzzlebox1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-02-15-00-00-1.2.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yDAAyD,OAAS,QAAQ,KAAO,ilJAA4oJ,MAAQ","file":"static/js/27.35f1e6b7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.16 Release\",\"description\":\"New puzzle box solver, barrows plugin, and NMZ plugin!\",\"author\":\"Tomas\",\"body\":\"An awesome puzzle box plugin has been finally added to RuneLite thanks to work of\\n@UniquePassive . Clues are now even easier to do!
\\n
\\n
\\nFor everyone who likes to AFK, thanks to @Fire-Proof \\na Nightmare Zone plugin was added. It shows your current Nightmare Zone points in nice\\nRuneLite custom overlay, notifies you when you are low on absorption, and when your\\noverload runs out.
\\n
\\nBarrows helper has been added in a new Barrows plugin by @Sethtroll .\\nNo more black minimap when in tunnels or finding the correct doors!
\\n
\\n
\\nAdditionally, abyss rift click boxes are now highlighted thanks to\\n@Sethtroll (again).
\\n
\\nAnd new Rogue's den plugin has been added to RuneLite as well, that shows click boxes\\nof the Rogue's den obstacles. Thanks to @ShaunDreclin !
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe zoom plugin is now working again thanks to @Abextm \\nNew option has been added to RuneLite settings that will make your window stay always on top \\nClient is now logging the logs to ~/.runelite/logs, so in case you want to report problem,\\nyou can also send the logs that would help us with resolving the problem. \\nPOH icon's displaying when on the wrong floor was fixed \\nSlayer task now do not decrements anymore when your slayer level is decremented\\n(for example in God wars or from KBD special attack) \\nTitle bar buttons are now shown in the info panel when you have custom title bar disabled \\n \\nEnjoy the new release!
\\n~ Tomas
\\nNew commits \\nWe had 11 contributors this release!
\\nAbex (1):\\n Allow titlebar buttons to be moved out of the titlebar\\n\\nAdam (9):\\n mousehighlight: don't show tooltip on sliding puzzles\\n timers plugin: respect enabled configuration\\n perspective: add method for checking if world location is in scene\\n fishing plugin: move minimap overlay to own overlay\\n runelite-client: shut down discord service when closed\\n http-service: try to release okhttp resources on shutdown\\n rs2asm: allow multiple newlines after header or instruction\\n item manager: allow getting images with quantity\\n item manager: also allow specifying stackable\\n\\nMax Weber (6):\\n method984 > runScript\\n Revert "scripts: disable callbacks"\\n injector: copy exceptions on Injected classes\\n Add raw injector to hook the script interpreter\\n Zoom plugin: Relax inner zoom constraint\\n injector: Allow injection of <init> and <clinit>\\n\\nNickolaj Jepsen (1):\\n Add NMZ plugin\\n\\nNotFoxtrot (1):\\n Add always on top setting\\n\\nSeth (8):\\n runecraft plugin: show click boxes of abyss rifts\\n cache: Update ObjectManager to include NULL names\\n runelite-api: redump objectid with null names\\n runelite-api: add getActions, imposterIds, and imposter to ObjectComposition\\n perspective: add getCanvasTextMiniMapLocation\\n Add barrows plugin\\n slayer plugin: add check for cachedXp when xp changes\\n poh plugin: fix icons displaying when changing planes\\n\\nShaunDreclin (1):\\n Add Rogues' Den plugin\\n\\nSomeoneWithAnInternetConnection (1):\\n Fix mismapping of MouseWheel\\n\\nTomas Slusny (2):\\n Fix logging inside info panel plugin\\n Add logback logger that will log to file\\n\\nTyler Hardy (3):\\n Remove unused Zulrah plugin assets\\n Update ItemID from 160 cache\\n runepouch plugin: use itemmanager to render runepouch item icons\\n\\nUniquePassive (4):\\n Add puzzle box InventoryID\\n Add puzzle box WidgetInfo\\n Add puzzle solving algorithm\\n Add puzzle solver plugin\\n
\\n\",\"image\":\"/img/blog/1.2.16-Release/puzzlebox1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/28.2f7dce06.chunk.js b/static/js/28.39bb3209.chunk.js
similarity index 98%
rename from static/js/28.2f7dce06.chunk.js
rename to static/js/28.39bb3209.chunk.js
index 97576a32f..e1c7ad105 100644
--- a/static/js/28.2f7dce06.chunk.js
+++ b/static/js/28.39bb3209.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[28],{303:function(e,n){e.exports={title:"1.2.17 Release",description:"New raid scouting plugin, Kourend library book finder, and chat history plugin!",author:"Tomas",body:'A new raids plugin was added by @Kamielvf . This plugin will make raids\nan even more pleasant experience and adds support for scouting.
\n
\n
\n
\nDue to recent success of Woox\'s Kourend library website one\nof our contributors @Abextm decided to top that and implement a similar feature\ninto RuneLite. It shows where requested books will most likely be and also people who can\nrequest books from you.
\n
\nFor everyone who loves smithing, Blast Furnace plugin was added.\nIt shows the money in the coffer and bars in the dispenser. Thanks to @sethtroll !
\n
\nThe configuration system was significantly improved and the plugin manager interface was changed\nto provide better access to enabling and disabling of plugins.
\n
\nA new chat history plugin was added, that will preserve your chat history during logout and world\nhopping. Never miss messages due to hopping again!
\n
\nIf you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\ncolors of the dots was added.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nScreenshot plugin was improved and should now properly work with most of the level ups \nTooltips are now displaying even for game interface actions \nTooltips for ironmen and moderators now show the correct icon when hovered \nToggle to show only highlighted items was added to the Ground Items plugin \nConfiguration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin \nClan chat icons now look good even in fixed mode \nThe speed of !price lookups is now quicker \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 10 contributors this release!
\nAdam (22):\n Use client Varbit for index, lsb, msb\n Hide xtea plugin from list\n Hide config plugin\n config panel: fix check/uncheck image names\n runelite-client: remove many unnecessary bindings in configure() in plugins\n runelite-client: checkstyle fixes\n http-service: split itemservice into service and controller\n item controller: cache empty price lookups\n item service: always use last known price, and queue price updates instead\n Fix varbits to read the other settings[] array\n boosts plugin: check if skills change before removing infoboxes\n remembser name plugin: fix not setting usernames on session open\n runelite-client: add plugin dependencies\n xp tracker: expose xp stats\n woodcutting plugin: use stats from xp plugin\n fishing plugin: use stats from xp plugin\n runelite-client: add minimap dot plugin\n cannon plugin: check cannon location is in scene\n nmz: reformat config\n item service: change search to only search database\n slayer plugin: remove tasks with item image -1\n tooltip component: split text width calculation into its own method\n\nBen Moyer (1):\n Remove duplicate tracking info in fishing/woodcutting overlays\n\nJoshua Filby (2):\n cache: release the ByteBuf allocated when calling ByteBuf#readBytes(int)\n Release ByteBuf in CacheClient when downloading chunks\n\nKamiel (3):\n Fix clanchat icons\n Update team cape plugin to make use of new plugin panel toggles\n Raids scouting plugin\n\nLotto (8):\n screenshot-plugin: extend test to test Attack and Hunter lvlups\n Change copyright header for UniquePassive to Lotto\n screenshot-plugin: adjust time/date format to not include spaces\n screenshot-plugin: run image saving logic in another thread\n Render modicons in tooltips\n Import API for getting remembered username from preferences.dat\n Update RememberUsernamePlugin to save the name from the vanilla feature\n Change name of RememberUsername plugin to UsernameSyncer\n\nMax Weber (10):\n Fix removing items from the TitleToolbar\n injector: Choose the right constructor if multiple exist\n Change perspective to convert world to local points centered on the tile\n hunter plugin: add imp box\n hunter plugin: Fix null pointer when going across a loading zone\n Add Kourend Library plugin\n Fix menu action clicked hook log\n Merge HUNTER_LEVEL_UP* and DIALOG_LIBRARY_FIND* into DIALOG_SPRITE*\n Allow the info panel\'s navButton to be removed on shutDown\n Sort the PluginToolbar\n\nNickolaj Jepsen (1):\n nmz plugin: add color config for the absorption infobox\n\nSeth (6):\n item stat: fix overlay being shown ontop of menu\n imagePanelComponent: Add support for multiple images\n Add Blast furnace plugin\n Remove @Nullable Client annotations\n ground items: Add toggle to show highlighted items only\n ground items: re-order the config\n\nTomas Slusny (18):\n Add ability to disable/enable all plugins\n Remove enabled() checks\n Fix slayer plugin task reset on config change\n Add region tile manager\n Clear game objects on plugin shutdown\n Add null check for 6 hour waiting time\n Add startup and shutdown methods to DiscordPlugin\n Enable/disable plugins in the ConfigPanel\n Remove "plugin" from each plugin name\n Properly invalidate cache and load icons in Clan\n Re-cache chatMessageManager colors on startup\n Disable configuration button when all items hidden\n Add support for Karambwan/Karambwanji to fishing\n Display tooltips for widget actions\n Fix PuzzleSolverOverlay layer\n Enhance the sending message API\n Add check for clan members > 0 when inserting icon\n Add chat history plugin\n\nUniquePassive (5):\n Add Hunter levelup widget info\n screenshot-plugin: don\'t include spaces in file names\n screenshot-plugin: adjust the comments for to-be-parsed text\n screenshot-plugin: don\'t depend on "a " in skill name string\n screenshot-plugin: add detection for Hunter levelups\n
\n',image:"/img/blog/1.2.17-Release/raids-scouting.png"}}}]);
-//# sourceMappingURL=28.2f7dce06.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[28],{304:function(e,n){e.exports={title:"1.2.17 Release",description:"New raid scouting plugin, Kourend library book finder, and chat history plugin!",author:"Tomas",body:'A new raids plugin was added by @Kamielvf . This plugin will make raids\nan even more pleasant experience and adds support for scouting.
\n
\n
\n
\nDue to recent success of Woox\'s Kourend library website one\nof our contributors @Abextm decided to top that and implement a similar feature\ninto RuneLite. It shows where requested books will most likely be and also people who can\nrequest books from you.
\n
\nFor everyone who loves smithing, Blast Furnace plugin was added.\nIt shows the money in the coffer and bars in the dispenser. Thanks to @sethtroll !
\n
\nThe configuration system was significantly improved and the plugin manager interface was changed\nto provide better access to enabling and disabling of plugins.
\n
\nA new chat history plugin was added, that will preserve your chat history during logout and world\nhopping. Never miss messages due to hopping again!
\n
\nIf you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\ncolors of the dots was added.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nScreenshot plugin was improved and should now properly work with most of the level ups \nTooltips are now displaying even for game interface actions \nTooltips for ironmen and moderators now show the correct icon when hovered \nToggle to show only highlighted items was added to the Ground Items plugin \nConfiguration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin \nClan chat icons now look good even in fixed mode \nThe speed of !price lookups is now quicker \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 10 contributors this release!
\nAdam (22):\n Use client Varbit for index, lsb, msb\n Hide xtea plugin from list\n Hide config plugin\n config panel: fix check/uncheck image names\n runelite-client: remove many unnecessary bindings in configure() in plugins\n runelite-client: checkstyle fixes\n http-service: split itemservice into service and controller\n item controller: cache empty price lookups\n item service: always use last known price, and queue price updates instead\n Fix varbits to read the other settings[] array\n boosts plugin: check if skills change before removing infoboxes\n remembser name plugin: fix not setting usernames on session open\n runelite-client: add plugin dependencies\n xp tracker: expose xp stats\n woodcutting plugin: use stats from xp plugin\n fishing plugin: use stats from xp plugin\n runelite-client: add minimap dot plugin\n cannon plugin: check cannon location is in scene\n nmz: reformat config\n item service: change search to only search database\n slayer plugin: remove tasks with item image -1\n tooltip component: split text width calculation into its own method\n\nBen Moyer (1):\n Remove duplicate tracking info in fishing/woodcutting overlays\n\nJoshua Filby (2):\n cache: release the ByteBuf allocated when calling ByteBuf#readBytes(int)\n Release ByteBuf in CacheClient when downloading chunks\n\nKamiel (3):\n Fix clanchat icons\n Update team cape plugin to make use of new plugin panel toggles\n Raids scouting plugin\n\nLotto (8):\n screenshot-plugin: extend test to test Attack and Hunter lvlups\n Change copyright header for UniquePassive to Lotto\n screenshot-plugin: adjust time/date format to not include spaces\n screenshot-plugin: run image saving logic in another thread\n Render modicons in tooltips\n Import API for getting remembered username from preferences.dat\n Update RememberUsernamePlugin to save the name from the vanilla feature\n Change name of RememberUsername plugin to UsernameSyncer\n\nMax Weber (10):\n Fix removing items from the TitleToolbar\n injector: Choose the right constructor if multiple exist\n Change perspective to convert world to local points centered on the tile\n hunter plugin: add imp box\n hunter plugin: Fix null pointer when going across a loading zone\n Add Kourend Library plugin\n Fix menu action clicked hook log\n Merge HUNTER_LEVEL_UP* and DIALOG_LIBRARY_FIND* into DIALOG_SPRITE*\n Allow the info panel\'s navButton to be removed on shutDown\n Sort the PluginToolbar\n\nNickolaj Jepsen (1):\n nmz plugin: add color config for the absorption infobox\n\nSeth (6):\n item stat: fix overlay being shown ontop of menu\n imagePanelComponent: Add support for multiple images\n Add Blast furnace plugin\n Remove @Nullable Client annotations\n ground items: Add toggle to show highlighted items only\n ground items: re-order the config\n\nTomas Slusny (18):\n Add ability to disable/enable all plugins\n Remove enabled() checks\n Fix slayer plugin task reset on config change\n Add region tile manager\n Clear game objects on plugin shutdown\n Add null check for 6 hour waiting time\n Add startup and shutdown methods to DiscordPlugin\n Enable/disable plugins in the ConfigPanel\n Remove "plugin" from each plugin name\n Properly invalidate cache and load icons in Clan\n Re-cache chatMessageManager colors on startup\n Disable configuration button when all items hidden\n Add support for Karambwan/Karambwanji to fishing\n Display tooltips for widget actions\n Fix PuzzleSolverOverlay layer\n Enhance the sending message API\n Add check for clan members > 0 when inserting icon\n Add chat history plugin\n\nUniquePassive (5):\n Add Hunter levelup widget info\n screenshot-plugin: don\'t include spaces in file names\n screenshot-plugin: adjust the comments for to-be-parsed text\n screenshot-plugin: don\'t depend on "a " in skill name string\n screenshot-plugin: add detection for Hunter levelups\n
\n',image:"/img/blog/1.2.17-Release/raids-scouting.png"}}}]);
+//# sourceMappingURL=28.39bb3209.chunk.js.map
\ No newline at end of file
diff --git a/static/js/28.2f7dce06.chunk.js.map b/static/js/28.39bb3209.chunk.js.map
similarity index 99%
rename from static/js/28.2f7dce06.chunk.js.map
rename to static/js/28.39bb3209.chunk.js.map
index 69b8beaca..d5dbbea85 100644
--- a/static/js/28.2f7dce06.chunk.js.map
+++ b/static/js/28.39bb3209.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-02-22-00-00-1.2.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,kFAAkF,OAAS,QAAQ,KAAO,s3NAA06N,MAAQ","file":"static/js/28.2f7dce06.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.17 Release\",\"description\":\"New raid scouting plugin, Kourend library book finder, and chat history plugin!\",\"author\":\"Tomas\",\"body\":\"A new raids plugin was added by @Kamielvf . This plugin will make raids\\nan even more pleasant experience and adds support for scouting.
\\n
\\n
\\n
\\nDue to recent success of Woox's Kourend library website one\\nof our contributors @Abextm decided to top that and implement a similar feature\\ninto RuneLite. It shows where requested books will most likely be and also people who can\\nrequest books from you.
\\n
\\nFor everyone who loves smithing, Blast Furnace plugin was added.\\nIt shows the money in the coffer and bars in the dispenser. Thanks to @sethtroll !
\\n
\\nThe configuration system was significantly improved and the plugin manager interface was changed\\nto provide better access to enabling and disabling of plugins.
\\n
\\nA new chat history plugin was added, that will preserve your chat history during logout and world\\nhopping. Never miss messages due to hopping again!
\\n
\\nIf you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\\ncolors of the dots was added.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nScreenshot plugin was improved and should now properly work with most of the level ups \\nTooltips are now displaying even for game interface actions \\nTooltips for ironmen and moderators now show the correct icon when hovered \\nToggle to show only highlighted items was added to the Ground Items plugin \\nConfiguration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin \\nClan chat icons now look good even in fixed mode \\nThe speed of !price lookups is now quicker \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (22):\\n Use client Varbit for index, lsb, msb\\n Hide xtea plugin from list\\n Hide config plugin\\n config panel: fix check/uncheck image names\\n runelite-client: remove many unnecessary bindings in configure() in plugins\\n runelite-client: checkstyle fixes\\n http-service: split itemservice into service and controller\\n item controller: cache empty price lookups\\n item service: always use last known price, and queue price updates instead\\n Fix varbits to read the other settings[] array\\n boosts plugin: check if skills change before removing infoboxes\\n remembser name plugin: fix not setting usernames on session open\\n runelite-client: add plugin dependencies\\n xp tracker: expose xp stats\\n woodcutting plugin: use stats from xp plugin\\n fishing plugin: use stats from xp plugin\\n runelite-client: add minimap dot plugin\\n cannon plugin: check cannon location is in scene\\n nmz: reformat config\\n item service: change search to only search database\\n slayer plugin: remove tasks with item image -1\\n tooltip component: split text width calculation into its own method\\n\\nBen Moyer (1):\\n Remove duplicate tracking info in fishing/woodcutting overlays\\n\\nJoshua Filby (2):\\n cache: release the ByteBuf allocated when calling ByteBuf#readBytes(int)\\n Release ByteBuf in CacheClient when downloading chunks\\n\\nKamiel (3):\\n Fix clanchat icons\\n Update team cape plugin to make use of new plugin panel toggles\\n Raids scouting plugin\\n\\nLotto (8):\\n screenshot-plugin: extend test to test Attack and Hunter lvlups\\n Change copyright header for UniquePassive to Lotto\\n screenshot-plugin: adjust time/date format to not include spaces\\n screenshot-plugin: run image saving logic in another thread\\n Render modicons in tooltips\\n Import API for getting remembered username from preferences.dat\\n Update RememberUsernamePlugin to save the name from the vanilla feature\\n Change name of RememberUsername plugin to UsernameSyncer\\n\\nMax Weber (10):\\n Fix removing items from the TitleToolbar\\n injector: Choose the right constructor if multiple exist\\n Change perspective to convert world to local points centered on the tile\\n hunter plugin: add imp box\\n hunter plugin: Fix null pointer when going across a loading zone\\n Add Kourend Library plugin\\n Fix menu action clicked hook log\\n Merge HUNTER_LEVEL_UP* and DIALOG_LIBRARY_FIND* into DIALOG_SPRITE*\\n Allow the info panel's navButton to be removed on shutDown\\n Sort the PluginToolbar\\n\\nNickolaj Jepsen (1):\\n nmz plugin: add color config for the absorption infobox\\n\\nSeth (6):\\n item stat: fix overlay being shown ontop of menu\\n imagePanelComponent: Add support for multiple images\\n Add Blast furnace plugin\\n Remove @Nullable Client annotations\\n ground items: Add toggle to show highlighted items only\\n ground items: re-order the config\\n\\nTomas Slusny (18):\\n Add ability to disable/enable all plugins\\n Remove enabled() checks\\n Fix slayer plugin task reset on config change\\n Add region tile manager\\n Clear game objects on plugin shutdown\\n Add null check for 6 hour waiting time\\n Add startup and shutdown methods to DiscordPlugin\\n Enable/disable plugins in the ConfigPanel\\n Remove "plugin" from each plugin name\\n Properly invalidate cache and load icons in Clan\\n Re-cache chatMessageManager colors on startup\\n Disable configuration button when all items hidden\\n Add support for Karambwan/Karambwanji to fishing\\n Display tooltips for widget actions\\n Fix PuzzleSolverOverlay layer\\n Enhance the sending message API\\n Add check for clan members > 0 when inserting icon\\n Add chat history plugin\\n\\nUniquePassive (5):\\n Add Hunter levelup widget info\\n screenshot-plugin: don't include spaces in file names\\n screenshot-plugin: adjust the comments for to-be-parsed text\\n screenshot-plugin: don't depend on "a " in skill name string\\n screenshot-plugin: add detection for Hunter levelups\\n
\\n\",\"image\":\"/img/blog/1.2.17-Release/raids-scouting.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-02-22-00-00-1.2.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,kFAAkF,OAAS,QAAQ,KAAO,s3NAA06N,MAAQ","file":"static/js/28.39bb3209.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.17 Release\",\"description\":\"New raid scouting plugin, Kourend library book finder, and chat history plugin!\",\"author\":\"Tomas\",\"body\":\"A new raids plugin was added by @Kamielvf . This plugin will make raids\\nan even more pleasant experience and adds support for scouting.
\\n
\\n
\\n
\\nDue to recent success of Woox's Kourend library website one\\nof our contributors @Abextm decided to top that and implement a similar feature\\ninto RuneLite. It shows where requested books will most likely be and also people who can\\nrequest books from you.
\\n
\\nFor everyone who loves smithing, Blast Furnace plugin was added.\\nIt shows the money in the coffer and bars in the dispenser. Thanks to @sethtroll !
\\n
\\nThe configuration system was significantly improved and the plugin manager interface was changed\\nto provide better access to enabling and disabling of plugins.
\\n
\\nA new chat history plugin was added, that will preserve your chat history during logout and world\\nhopping. Never miss messages due to hopping again!
\\n
\\nIf you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\\ncolors of the dots was added.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nScreenshot plugin was improved and should now properly work with most of the level ups \\nTooltips are now displaying even for game interface actions \\nTooltips for ironmen and moderators now show the correct icon when hovered \\nToggle to show only highlighted items was added to the Ground Items plugin \\nConfiguration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin \\nClan chat icons now look good even in fixed mode \\nThe speed of !price lookups is now quicker \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (22):\\n Use client Varbit for index, lsb, msb\\n Hide xtea plugin from list\\n Hide config plugin\\n config panel: fix check/uncheck image names\\n runelite-client: remove many unnecessary bindings in configure() in plugins\\n runelite-client: checkstyle fixes\\n http-service: split itemservice into service and controller\\n item controller: cache empty price lookups\\n item service: always use last known price, and queue price updates instead\\n Fix varbits to read the other settings[] array\\n boosts plugin: check if skills change before removing infoboxes\\n remembser name plugin: fix not setting usernames on session open\\n runelite-client: add plugin dependencies\\n xp tracker: expose xp stats\\n woodcutting plugin: use stats from xp plugin\\n fishing plugin: use stats from xp plugin\\n runelite-client: add minimap dot plugin\\n cannon plugin: check cannon location is in scene\\n nmz: reformat config\\n item service: change search to only search database\\n slayer plugin: remove tasks with item image -1\\n tooltip component: split text width calculation into its own method\\n\\nBen Moyer (1):\\n Remove duplicate tracking info in fishing/woodcutting overlays\\n\\nJoshua Filby (2):\\n cache: release the ByteBuf allocated when calling ByteBuf#readBytes(int)\\n Release ByteBuf in CacheClient when downloading chunks\\n\\nKamiel (3):\\n Fix clanchat icons\\n Update team cape plugin to make use of new plugin panel toggles\\n Raids scouting plugin\\n\\nLotto (8):\\n screenshot-plugin: extend test to test Attack and Hunter lvlups\\n Change copyright header for UniquePassive to Lotto\\n screenshot-plugin: adjust time/date format to not include spaces\\n screenshot-plugin: run image saving logic in another thread\\n Render modicons in tooltips\\n Import API for getting remembered username from preferences.dat\\n Update RememberUsernamePlugin to save the name from the vanilla feature\\n Change name of RememberUsername plugin to UsernameSyncer\\n\\nMax Weber (10):\\n Fix removing items from the TitleToolbar\\n injector: Choose the right constructor if multiple exist\\n Change perspective to convert world to local points centered on the tile\\n hunter plugin: add imp box\\n hunter plugin: Fix null pointer when going across a loading zone\\n Add Kourend Library plugin\\n Fix menu action clicked hook log\\n Merge HUNTER_LEVEL_UP* and DIALOG_LIBRARY_FIND* into DIALOG_SPRITE*\\n Allow the info panel's navButton to be removed on shutDown\\n Sort the PluginToolbar\\n\\nNickolaj Jepsen (1):\\n nmz plugin: add color config for the absorption infobox\\n\\nSeth (6):\\n item stat: fix overlay being shown ontop of menu\\n imagePanelComponent: Add support for multiple images\\n Add Blast furnace plugin\\n Remove @Nullable Client annotations\\n ground items: Add toggle to show highlighted items only\\n ground items: re-order the config\\n\\nTomas Slusny (18):\\n Add ability to disable/enable all plugins\\n Remove enabled() checks\\n Fix slayer plugin task reset on config change\\n Add region tile manager\\n Clear game objects on plugin shutdown\\n Add null check for 6 hour waiting time\\n Add startup and shutdown methods to DiscordPlugin\\n Enable/disable plugins in the ConfigPanel\\n Remove "plugin" from each plugin name\\n Properly invalidate cache and load icons in Clan\\n Re-cache chatMessageManager colors on startup\\n Disable configuration button when all items hidden\\n Add support for Karambwan/Karambwanji to fishing\\n Display tooltips for widget actions\\n Fix PuzzleSolverOverlay layer\\n Enhance the sending message API\\n Add check for clan members > 0 when inserting icon\\n Add chat history plugin\\n\\nUniquePassive (5):\\n Add Hunter levelup widget info\\n screenshot-plugin: don't include spaces in file names\\n screenshot-plugin: adjust the comments for to-be-parsed text\\n screenshot-plugin: don't depend on "a " in skill name string\\n screenshot-plugin: add detection for Hunter levelups\\n
\\n\",\"image\":\"/img/blog/1.2.17-Release/raids-scouting.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/29.9e1d216b.chunk.js b/static/js/29.55d2e971.chunk.js
similarity index 98%
rename from static/js/29.9e1d216b.chunk.js
rename to static/js/29.55d2e971.chunk.js
index 85176221d..c308b4f6a 100644
--- a/static/js/29.9e1d216b.chunk.js
+++ b/static/js/29.55d2e971.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[29],{304:function(e,n){e.exports={title:"1.2.18 Release",description:"New grand exchange plugin, pyramid plunder plugin, and the cannon plugin now shows NPC double-hit spots",author:"Adam",body:'A grand exchange plugin has been added by\n@Someonewithaninternetconnection .\nIt shows your current grand exchange offers and their progress:
\n
\n@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:
\n
\nFinally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTzTok-Jad overlay is now shown for the whole fight duration \nThe puzzle solver now displays the fastest solution \nAdd Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin \nShow skill details on hover instead of click in the hiscore panel \nManiacal monkeys have been added to the hunter plugin \nHunter plugin was improved to be more accurate, and catch rate overlay was removed \nFullscreen support has been added for OSX \nAchievement diary plugin has been removed in favour of new OSRS achievement diary interface \nWorld map has been fixed, no more increased memory consumption after it is closed \nPositive and negative boosts are now properly colored when using absolute boosts \nCannonball plugin now supports unloading \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (16):\n overlay renderer: remove unnecessary lambda which makes it hard to profile\n xtea service: fix get() query to join on id\n Revert "xtea service: fix get() query to join on id"\n xtea service:try to fix query again\n runescape-client: refactor WorldMapManager\n runescape-api: import world map data\n runelite-api: expose world map data\n Garbage collect world map once closed\n menu manager: add method to remove player menu items\n hiscore plugin: remove player option on shutdown\n hiscore plugin: add config for player option\n text component: allow color tags\n boosts overlay: show boosts in color\n attack indicator plugin: process hidden styles on startup/shutdown and config changes\n mixin injector: fall back to method name if no deobfuscated name is found\n Add support for intercepting mouse and keyboard input\n\nDevin (1):\n Change TzTok-Jad overlay to be persistent\n\nHexagon (1):\n Use the address returned by the worldlist api instead of building our own\n\nJoshua Filby (1):\n runescape-client: set the close operation for running deob client to exit on close\n\nKamiel (6):\n Fix minor issues\n Add ability to set custom colors\n Fix overlays not being rendered\n Follow java coding conventions\n Use normal font weight for input field\n Fix panel expanding inconsistency (#464)\n\nLotto (21):\n grounditems: offset text on z axis\n puzzlesolver: add IDA* + manhattan distance solver\n puzzlesolver: don\'t spit out exceptions when the puzzle is finished\n puzzlesolver: use the new solver and display Solving.. + Solved! msgs\n puzzlesolver: update the test to use the new solver\n puzzlesolver: add an option to draw dots instead of arrows\n puzzlesolver: fix solution being reset when clicking the puzzle quickly\n puzzlesolver: remove bounds check from PuzzleSolver#getStep\n Fix Widget#isHidden returning incorrect state when parent is null\n Add grand exchange support to InventoryWidgetItemQuery\n Add varbit for multicombat area\n opponentinfo: display the name of the target of your target\n examineplugin: only capture menuactions with the option "Examine"\n notifier: add option to disable notification sounds\n Add guide prices support to InventoryWidgetItemQuery\n Add equipment window support to InventoryWidgetItemQuery\n modelmixin: use verticesCount/trianglesCount instead of array lengths\n agilityplugin: add support for Dorgesh-Kaan\n agilityplugin: add support for Brimhaven\n hiscoreplugin: show skill details on hover instead of click\n runelite-client: remove diary progress plugin\n\nMax Weber (30):\n cameraPitch > cameraPitchCopy\n field885 > cameraPitch\n method2995 > buildVisibilityMaps\n zoom plugin: Add option to relax the camera\'s upper pitch limit.\n cache: Add get_is_mobile opcode.\n cameraPitch > cameraPitchTarget\n cameraPitchCopy > cameraPitch\n method565 > drawMapIcons\n method564 > drawMapRegion\n field3927 > worldMapX\n field3944 > worldMapY\n field3947 > worldMapZoom\n field3948 > worldMapZoomTarget\n method385 > drawFlashingMapIcons\n method406 > drawMapLinks\n method402 > drawNonLinkMapIcons\n class39 > MapIcon\n method4375 > bitpack\n class47 > MapIconReference\n field3406 > id\n field488 > areaId\n field556 > areaId\n field3788 > scriptMapIconReference\n class33 > MapLabel\n field433 > fontSize\n field3935 > mapFonts\n field515 > mapFonts\n field450 > mapFonts\n method648 > popcnt\n field431 > text\n\nNotFoxtrot (2):\n Add Pharaoh\'s sceptre to the jewellery count\n Add new overlay for Pyramid Plunder\n\nSeth (5):\n boss timers: replace resource image with itemID images\n boss timers: add tooltips\n boss timers: add chaos elemental\n image component: fix images being off-centered\n poh plugin: Remove unnecessary toggles\n\nSomeoneWithAnInternetConnection (4):\n Expose isStackable on ItemComposition objects\n Rename progress to state in GrandExchangeOffer\n runelite-api: Add Grand Exchange offer support\n Create Grand Exchange plugin\n\nTomas Slusny (9):\n Prevent throwing duplacite events for GameObject\n Add support for maniacal monkeys to hunter plugin\n Add default timeout to notify-send on Linux\n Rename "Low memory" to "Low detail" plugin\n Fix crash in ClienUI configChanged event\n Fix NPE in minimap plugin\n Remove animation checks\n Remove catch rate overlay\n Remove inSequence import b/c problems with mapping\n\nXrioBtw (1):\n Add missing cancel menu action\n\narlyon (2):\n runelite-client: split ostype into its own utility\n runelite-client: enable fullscreen on osx\n\nl2- (1):\n Xp orb fixes (#689)\n\nsemtexerror (4):\n cannon plugin: support unloading cannon\n cannon plugin: cleanup\n cannon plugin: add overlay for cannonballs left\n cannon plugin: draw npc double hit spots\n
\n',image:"/img/blog/1.2.18-Release/ge.png"}}}]);
-//# sourceMappingURL=29.9e1d216b.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[29],{305:function(e,n){e.exports={title:"1.2.18 Release",description:"New grand exchange plugin, pyramid plunder plugin, and the cannon plugin now shows NPC double-hit spots",author:"Adam",body:'A grand exchange plugin has been added by\n@Someonewithaninternetconnection .\nIt shows your current grand exchange offers and their progress:
\n
\n@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:
\n
\nFinally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nTzTok-Jad overlay is now shown for the whole fight duration \nThe puzzle solver now displays the fastest solution \nAdd Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin \nShow skill details on hover instead of click in the hiscore panel \nManiacal monkeys have been added to the hunter plugin \nHunter plugin was improved to be more accurate, and catch rate overlay was removed \nFullscreen support has been added for OSX \nAchievement diary plugin has been removed in favour of new OSRS achievement diary interface \nWorld map has been fixed, no more increased memory consumption after it is closed \nPositive and negative boosts are now properly colored when using absolute boosts \nCannonball plugin now supports unloading \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (16):\n overlay renderer: remove unnecessary lambda which makes it hard to profile\n xtea service: fix get() query to join on id\n Revert "xtea service: fix get() query to join on id"\n xtea service:try to fix query again\n runescape-client: refactor WorldMapManager\n runescape-api: import world map data\n runelite-api: expose world map data\n Garbage collect world map once closed\n menu manager: add method to remove player menu items\n hiscore plugin: remove player option on shutdown\n hiscore plugin: add config for player option\n text component: allow color tags\n boosts overlay: show boosts in color\n attack indicator plugin: process hidden styles on startup/shutdown and config changes\n mixin injector: fall back to method name if no deobfuscated name is found\n Add support for intercepting mouse and keyboard input\n\nDevin (1):\n Change TzTok-Jad overlay to be persistent\n\nHexagon (1):\n Use the address returned by the worldlist api instead of building our own\n\nJoshua Filby (1):\n runescape-client: set the close operation for running deob client to exit on close\n\nKamiel (6):\n Fix minor issues\n Add ability to set custom colors\n Fix overlays not being rendered\n Follow java coding conventions\n Use normal font weight for input field\n Fix panel expanding inconsistency (#464)\n\nLotto (21):\n grounditems: offset text on z axis\n puzzlesolver: add IDA* + manhattan distance solver\n puzzlesolver: don\'t spit out exceptions when the puzzle is finished\n puzzlesolver: use the new solver and display Solving.. + Solved! msgs\n puzzlesolver: update the test to use the new solver\n puzzlesolver: add an option to draw dots instead of arrows\n puzzlesolver: fix solution being reset when clicking the puzzle quickly\n puzzlesolver: remove bounds check from PuzzleSolver#getStep\n Fix Widget#isHidden returning incorrect state when parent is null\n Add grand exchange support to InventoryWidgetItemQuery\n Add varbit for multicombat area\n opponentinfo: display the name of the target of your target\n examineplugin: only capture menuactions with the option "Examine"\n notifier: add option to disable notification sounds\n Add guide prices support to InventoryWidgetItemQuery\n Add equipment window support to InventoryWidgetItemQuery\n modelmixin: use verticesCount/trianglesCount instead of array lengths\n agilityplugin: add support for Dorgesh-Kaan\n agilityplugin: add support for Brimhaven\n hiscoreplugin: show skill details on hover instead of click\n runelite-client: remove diary progress plugin\n\nMax Weber (30):\n cameraPitch > cameraPitchCopy\n field885 > cameraPitch\n method2995 > buildVisibilityMaps\n zoom plugin: Add option to relax the camera\'s upper pitch limit.\n cache: Add get_is_mobile opcode.\n cameraPitch > cameraPitchTarget\n cameraPitchCopy > cameraPitch\n method565 > drawMapIcons\n method564 > drawMapRegion\n field3927 > worldMapX\n field3944 > worldMapY\n field3947 > worldMapZoom\n field3948 > worldMapZoomTarget\n method385 > drawFlashingMapIcons\n method406 > drawMapLinks\n method402 > drawNonLinkMapIcons\n class39 > MapIcon\n method4375 > bitpack\n class47 > MapIconReference\n field3406 > id\n field488 > areaId\n field556 > areaId\n field3788 > scriptMapIconReference\n class33 > MapLabel\n field433 > fontSize\n field3935 > mapFonts\n field515 > mapFonts\n field450 > mapFonts\n method648 > popcnt\n field431 > text\n\nNotFoxtrot (2):\n Add Pharaoh\'s sceptre to the jewellery count\n Add new overlay for Pyramid Plunder\n\nSeth (5):\n boss timers: replace resource image with itemID images\n boss timers: add tooltips\n boss timers: add chaos elemental\n image component: fix images being off-centered\n poh plugin: Remove unnecessary toggles\n\nSomeoneWithAnInternetConnection (4):\n Expose isStackable on ItemComposition objects\n Rename progress to state in GrandExchangeOffer\n runelite-api: Add Grand Exchange offer support\n Create Grand Exchange plugin\n\nTomas Slusny (9):\n Prevent throwing duplacite events for GameObject\n Add support for maniacal monkeys to hunter plugin\n Add default timeout to notify-send on Linux\n Rename "Low memory" to "Low detail" plugin\n Fix crash in ClienUI configChanged event\n Fix NPE in minimap plugin\n Remove animation checks\n Remove catch rate overlay\n Remove inSequence import b/c problems with mapping\n\nXrioBtw (1):\n Add missing cancel menu action\n\narlyon (2):\n runelite-client: split ostype into its own utility\n runelite-client: enable fullscreen on osx\n\nl2- (1):\n Xp orb fixes (#689)\n\nsemtexerror (4):\n cannon plugin: support unloading cannon\n cannon plugin: cleanup\n cannon plugin: add overlay for cannonballs left\n cannon plugin: draw npc double hit spots\n
\n',image:"/img/blog/1.2.18-Release/ge.png"}}}]);
+//# sourceMappingURL=29.55d2e971.chunk.js.map
\ No newline at end of file
diff --git a/static/js/29.9e1d216b.chunk.js.map b/static/js/29.55d2e971.chunk.js.map
similarity index 99%
rename from static/js/29.9e1d216b.chunk.js.map
rename to static/js/29.55d2e971.chunk.js.map
index 320fe6e55..0d6c33fde 100644
--- a/static/js/29.9e1d216b.chunk.js.map
+++ b/static/js/29.55d2e971.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-03-01-00-00-1.2.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0GAA0G,OAAS,OAAO,KAAO,2/NAAshO,MAAQ","file":"static/js/29.9e1d216b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.18 Release\",\"description\":\"New grand exchange plugin, pyramid plunder plugin, and the cannon plugin now shows NPC double-hit spots\",\"author\":\"Adam\",\"body\":\"A grand exchange plugin has been added by\\n@Someonewithaninternetconnection .\\nIt shows your current grand exchange offers and their progress:
\\n
\\n@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:
\\n
\\nFinally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTzTok-Jad overlay is now shown for the whole fight duration \\nThe puzzle solver now displays the fastest solution \\nAdd Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin \\nShow skill details on hover instead of click in the hiscore panel \\nManiacal monkeys have been added to the hunter plugin \\nHunter plugin was improved to be more accurate, and catch rate overlay was removed \\nFullscreen support has been added for OSX \\nAchievement diary plugin has been removed in favour of new OSRS achievement diary interface \\nWorld map has been fixed, no more increased memory consumption after it is closed \\nPositive and negative boosts are now properly colored when using absolute boosts \\nCannonball plugin now supports unloading \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (16):\\n overlay renderer: remove unnecessary lambda which makes it hard to profile\\n xtea service: fix get() query to join on id\\n Revert "xtea service: fix get() query to join on id"\\n xtea service:try to fix query again\\n runescape-client: refactor WorldMapManager\\n runescape-api: import world map data\\n runelite-api: expose world map data\\n Garbage collect world map once closed\\n menu manager: add method to remove player menu items\\n hiscore plugin: remove player option on shutdown\\n hiscore plugin: add config for player option\\n text component: allow color tags\\n boosts overlay: show boosts in color\\n attack indicator plugin: process hidden styles on startup/shutdown and config changes\\n mixin injector: fall back to method name if no deobfuscated name is found\\n Add support for intercepting mouse and keyboard input\\n\\nDevin (1):\\n Change TzTok-Jad overlay to be persistent\\n\\nHexagon (1):\\n Use the address returned by the worldlist api instead of building our own\\n\\nJoshua Filby (1):\\n runescape-client: set the close operation for running deob client to exit on close\\n\\nKamiel (6):\\n Fix minor issues\\n Add ability to set custom colors\\n Fix overlays not being rendered\\n Follow java coding conventions\\n Use normal font weight for input field\\n Fix panel expanding inconsistency (#464)\\n\\nLotto (21):\\n grounditems: offset text on z axis\\n puzzlesolver: add IDA* + manhattan distance solver\\n puzzlesolver: don't spit out exceptions when the puzzle is finished\\n puzzlesolver: use the new solver and display Solving.. + Solved! msgs\\n puzzlesolver: update the test to use the new solver\\n puzzlesolver: add an option to draw dots instead of arrows\\n puzzlesolver: fix solution being reset when clicking the puzzle quickly\\n puzzlesolver: remove bounds check from PuzzleSolver#getStep\\n Fix Widget#isHidden returning incorrect state when parent is null\\n Add grand exchange support to InventoryWidgetItemQuery\\n Add varbit for multicombat area\\n opponentinfo: display the name of the target of your target\\n examineplugin: only capture menuactions with the option "Examine"\\n notifier: add option to disable notification sounds\\n Add guide prices support to InventoryWidgetItemQuery\\n Add equipment window support to InventoryWidgetItemQuery\\n modelmixin: use verticesCount/trianglesCount instead of array lengths\\n agilityplugin: add support for Dorgesh-Kaan\\n agilityplugin: add support for Brimhaven\\n hiscoreplugin: show skill details on hover instead of click\\n runelite-client: remove diary progress plugin\\n\\nMax Weber (30):\\n cameraPitch > cameraPitchCopy\\n field885 > cameraPitch\\n method2995 > buildVisibilityMaps\\n zoom plugin: Add option to relax the camera's upper pitch limit.\\n cache: Add get_is_mobile opcode.\\n cameraPitch > cameraPitchTarget\\n cameraPitchCopy > cameraPitch\\n method565 > drawMapIcons\\n method564 > drawMapRegion\\n field3927 > worldMapX\\n field3944 > worldMapY\\n field3947 > worldMapZoom\\n field3948 > worldMapZoomTarget\\n method385 > drawFlashingMapIcons\\n method406 > drawMapLinks\\n method402 > drawNonLinkMapIcons\\n class39 > MapIcon\\n method4375 > bitpack\\n class47 > MapIconReference\\n field3406 > id\\n field488 > areaId\\n field556 > areaId\\n field3788 > scriptMapIconReference\\n class33 > MapLabel\\n field433 > fontSize\\n field3935 > mapFonts\\n field515 > mapFonts\\n field450 > mapFonts\\n method648 > popcnt\\n field431 > text\\n\\nNotFoxtrot (2):\\n Add Pharaoh's sceptre to the jewellery count\\n Add new overlay for Pyramid Plunder\\n\\nSeth (5):\\n boss timers: replace resource image with itemID images\\n boss timers: add tooltips\\n boss timers: add chaos elemental\\n image component: fix images being off-centered\\n poh plugin: Remove unnecessary toggles\\n\\nSomeoneWithAnInternetConnection (4):\\n Expose isStackable on ItemComposition objects\\n Rename progress to state in GrandExchangeOffer\\n runelite-api: Add Grand Exchange offer support\\n Create Grand Exchange plugin\\n\\nTomas Slusny (9):\\n Prevent throwing duplacite events for GameObject\\n Add support for maniacal monkeys to hunter plugin\\n Add default timeout to notify-send on Linux\\n Rename "Low memory" to "Low detail" plugin\\n Fix crash in ClienUI configChanged event\\n Fix NPE in minimap plugin\\n Remove animation checks\\n Remove catch rate overlay\\n Remove inSequence import b/c problems with mapping\\n\\nXrioBtw (1):\\n Add missing cancel menu action\\n\\narlyon (2):\\n runelite-client: split ostype into its own utility\\n runelite-client: enable fullscreen on osx\\n\\nl2- (1):\\n Xp orb fixes (#689)\\n\\nsemtexerror (4):\\n cannon plugin: support unloading cannon\\n cannon plugin: cleanup\\n cannon plugin: add overlay for cannonballs left\\n cannon plugin: draw npc double hit spots\\n
\\n\",\"image\":\"/img/blog/1.2.18-Release/ge.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-03-01-00-00-1.2.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0GAA0G,OAAS,OAAO,KAAO,2/NAAshO,MAAQ","file":"static/js/29.55d2e971.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.18 Release\",\"description\":\"New grand exchange plugin, pyramid plunder plugin, and the cannon plugin now shows NPC double-hit spots\",\"author\":\"Adam\",\"body\":\"A grand exchange plugin has been added by\\n@Someonewithaninternetconnection .\\nIt shows your current grand exchange offers and their progress:
\\n
\\n@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:
\\n
\\nFinally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nTzTok-Jad overlay is now shown for the whole fight duration \\nThe puzzle solver now displays the fastest solution \\nAdd Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin \\nShow skill details on hover instead of click in the hiscore panel \\nManiacal monkeys have been added to the hunter plugin \\nHunter plugin was improved to be more accurate, and catch rate overlay was removed \\nFullscreen support has been added for OSX \\nAchievement diary plugin has been removed in favour of new OSRS achievement diary interface \\nWorld map has been fixed, no more increased memory consumption after it is closed \\nPositive and negative boosts are now properly colored when using absolute boosts \\nCannonball plugin now supports unloading \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (16):\\n overlay renderer: remove unnecessary lambda which makes it hard to profile\\n xtea service: fix get() query to join on id\\n Revert "xtea service: fix get() query to join on id"\\n xtea service:try to fix query again\\n runescape-client: refactor WorldMapManager\\n runescape-api: import world map data\\n runelite-api: expose world map data\\n Garbage collect world map once closed\\n menu manager: add method to remove player menu items\\n hiscore plugin: remove player option on shutdown\\n hiscore plugin: add config for player option\\n text component: allow color tags\\n boosts overlay: show boosts in color\\n attack indicator plugin: process hidden styles on startup/shutdown and config changes\\n mixin injector: fall back to method name if no deobfuscated name is found\\n Add support for intercepting mouse and keyboard input\\n\\nDevin (1):\\n Change TzTok-Jad overlay to be persistent\\n\\nHexagon (1):\\n Use the address returned by the worldlist api instead of building our own\\n\\nJoshua Filby (1):\\n runescape-client: set the close operation for running deob client to exit on close\\n\\nKamiel (6):\\n Fix minor issues\\n Add ability to set custom colors\\n Fix overlays not being rendered\\n Follow java coding conventions\\n Use normal font weight for input field\\n Fix panel expanding inconsistency (#464)\\n\\nLotto (21):\\n grounditems: offset text on z axis\\n puzzlesolver: add IDA* + manhattan distance solver\\n puzzlesolver: don't spit out exceptions when the puzzle is finished\\n puzzlesolver: use the new solver and display Solving.. + Solved! msgs\\n puzzlesolver: update the test to use the new solver\\n puzzlesolver: add an option to draw dots instead of arrows\\n puzzlesolver: fix solution being reset when clicking the puzzle quickly\\n puzzlesolver: remove bounds check from PuzzleSolver#getStep\\n Fix Widget#isHidden returning incorrect state when parent is null\\n Add grand exchange support to InventoryWidgetItemQuery\\n Add varbit for multicombat area\\n opponentinfo: display the name of the target of your target\\n examineplugin: only capture menuactions with the option "Examine"\\n notifier: add option to disable notification sounds\\n Add guide prices support to InventoryWidgetItemQuery\\n Add equipment window support to InventoryWidgetItemQuery\\n modelmixin: use verticesCount/trianglesCount instead of array lengths\\n agilityplugin: add support for Dorgesh-Kaan\\n agilityplugin: add support for Brimhaven\\n hiscoreplugin: show skill details on hover instead of click\\n runelite-client: remove diary progress plugin\\n\\nMax Weber (30):\\n cameraPitch > cameraPitchCopy\\n field885 > cameraPitch\\n method2995 > buildVisibilityMaps\\n zoom plugin: Add option to relax the camera's upper pitch limit.\\n cache: Add get_is_mobile opcode.\\n cameraPitch > cameraPitchTarget\\n cameraPitchCopy > cameraPitch\\n method565 > drawMapIcons\\n method564 > drawMapRegion\\n field3927 > worldMapX\\n field3944 > worldMapY\\n field3947 > worldMapZoom\\n field3948 > worldMapZoomTarget\\n method385 > drawFlashingMapIcons\\n method406 > drawMapLinks\\n method402 > drawNonLinkMapIcons\\n class39 > MapIcon\\n method4375 > bitpack\\n class47 > MapIconReference\\n field3406 > id\\n field488 > areaId\\n field556 > areaId\\n field3788 > scriptMapIconReference\\n class33 > MapLabel\\n field433 > fontSize\\n field3935 > mapFonts\\n field515 > mapFonts\\n field450 > mapFonts\\n method648 > popcnt\\n field431 > text\\n\\nNotFoxtrot (2):\\n Add Pharaoh's sceptre to the jewellery count\\n Add new overlay for Pyramid Plunder\\n\\nSeth (5):\\n boss timers: replace resource image with itemID images\\n boss timers: add tooltips\\n boss timers: add chaos elemental\\n image component: fix images being off-centered\\n poh plugin: Remove unnecessary toggles\\n\\nSomeoneWithAnInternetConnection (4):\\n Expose isStackable on ItemComposition objects\\n Rename progress to state in GrandExchangeOffer\\n runelite-api: Add Grand Exchange offer support\\n Create Grand Exchange plugin\\n\\nTomas Slusny (9):\\n Prevent throwing duplacite events for GameObject\\n Add support for maniacal monkeys to hunter plugin\\n Add default timeout to notify-send on Linux\\n Rename "Low memory" to "Low detail" plugin\\n Fix crash in ClienUI configChanged event\\n Fix NPE in minimap plugin\\n Remove animation checks\\n Remove catch rate overlay\\n Remove inSequence import b/c problems with mapping\\n\\nXrioBtw (1):\\n Add missing cancel menu action\\n\\narlyon (2):\\n runelite-client: split ostype into its own utility\\n runelite-client: enable fullscreen on osx\\n\\nl2- (1):\\n Xp orb fixes (#689)\\n\\nsemtexerror (4):\\n cannon plugin: support unloading cannon\\n cannon plugin: cleanup\\n cannon plugin: add overlay for cannonballs left\\n cannon plugin: draw npc double hit spots\\n
\\n\",\"image\":\"/img/blog/1.2.18-Release/ge.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/30.315d5ded.chunk.js b/static/js/30.4f882079.chunk.js
similarity index 98%
rename from static/js/30.315d5ded.chunk.js
rename to static/js/30.4f882079.chunk.js
index 3bab0be8a..b7b80d68b 100644
--- a/static/js/30.315d5ded.chunk.js
+++ b/static/js/30.4f882079.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[30],{305:function(e,n){e.exports={title:"1.2.19 Release",description:"Stretched fixed mode, default world, and grand exchange price search!",author:"Adam",body:'Stretched fixed mode has been added, which stretches the game screen and makes\nit more playable on high resolution monitors. Thanks to @devLotto for making this happen.
\n@sethtroll added a GE search feature to the\nexisting grand exchange plugin. You may also use alt+click on your inventory to\nGE search an item now.
\n
\nA news feed plugin was added which shows the latest RuneLite blog posts, Old\nSchool RuneScape news, and a Twitter feed of JMods.
\n
\n@ChaoticConundrum added Notes plugin that will allow you to\nstore notes that will be persisted via RuneLite configuration system.
\n
\nFinally, the long-requested default world plugin has been added thanks to\n@deathbeam , which sets a preconfigured home\nworld by default.
\nThere were many smaller improvements and bug fixes, including:
\n\nThe raids plugin now allows configuring whitelist/blacklist layouts and\nrotations. \nThe screenshot plugin now takes screenshots of raid rewards \nFix length of prayer enhance timer \nThe instance map can now be closed with escape and floor can be changed with scrollbar \nThe "You are fishing" overlay now works again since the last OSRS update \n@arlyon improved native OSX support - with native fullscreen, and focus\nrequesting \nFix cannon plugin showing incorrect double hit spots after region change \nAllow disabling of the skill icons on XP drops \nClear saved private chat history upon clear request \nFix clanchat icons not showing during region loading \nAdd configuation option to make the client size fixed \nAdd minimum threshold to teamcape configuration, and now disable by default \nMost of the plugins has been renamed to proper names, abbreviations was removed and casing was fixed\n(for example Raids plugin is now named "Chambers Of Xeric") \nSpecial Attack Orb plugin was removed in favour of native OSRS special attack orb \nVarious notifaction-related settings was moved to "RuneLite" config section, and now they are applied\nto all notifications \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (12):\n runescape-client: add jav_config\n cannon plugin: use infobox counter instead of overlay\n http-service: add session service\n http-api: add session client\n runelite-client: add client session manager\n client session manager: delete session on shutdown too\n http-service: queue item lookups from images\n input: don\'t allow duplicate input handlers\n item service: process pending lookups in order\n Change mouse wheel listener back to an interface as the instance map input listener uses it\n ge panel: use static number formatter\n runelite-client: add configuration option for resizable\n\nCharlie Waters (3):\n Add Notes plugin\n Add waterskin charges to jewellerycount plugin. Fixes #825.\n Fix notes plugin loading notes from account\n\nDavid Kosub (1):\n Notifier improvements and fixes\n\nDesetude (3):\n Fixed HiscorePanel text\n Allow customization of the default color for ground items\n Renamed \'Experience drop\' -> \'XP Drop\'\n\nKamiel (13):\n Add ability to whitelist layouts\n Add ability to highlight rooms\n Add ability to whitelist boss rotations\n Add floor duration(s) to infobox tooltip\n Get points from varbits instead of widget\n Set size properly\n Make rotation whitelist not case-sensitive\n Raids plugin: read proper input for room whitelist\n Instance map: Add support for user input\n Clear saved private chat history upon clear request\n Allow disabling of the skill icons on XP drops\n Fix cannon plugin showing incorrect double hit spots after region change\n Fix clanchat messages not showing rank icons at certain moments\n\nLotto (18):\n deobfuscator: fix aic failing to determine if a field is imported\n http-api: add feed types\n http-service: add services for getting blog posts, tweets and osrs news\n http-service: add feed api endpoint\n http-api: add client for looking up feed\n runelite-client: add news feed plugin\n Improve deob method finding in the injector\n Use a mixin for calling Hooks.draw instead of a @Hook\n Move the 765x503 constants to a Constants API class\n Add a mixin for storing stretched fixed mode setting states\n Add logic for game image stretching in Hooks#draw\n Modify the size and location of the game canvas if stretched is enabled\n Add support for proxying mouseWheelMoved events\n Add support for specifying the position to insert mouse listeners in\n Add mouse listeners that stretch event x/y\n Add stretched fixed mode plugin\n runelite-client: fix Use tooltip arrow not being displayed\n runelite-api: fix worldToMiniMap not working correctly in stretched mode\n\nMax Weber (52):\n Move the Login and Logout buttons to the TitleToolbar\n draw(IIIIII)V > drawRegion\n AudioInstrument.SINE > AUDIO_SINE\n zoom: Fix pitch relaxer after rev 165 changes\n Reuse NumberFormatter to reduce allocations\n inline RSHashTableMixin.getNodes into RSWidgetMixin.getParentId to reduce allocations\n specorb: Cache draws to reduce allocations\n field429 > WorldMapRegionX\n field432 > worldMapRegionWidth\n field426 > worldMapRegionY\n field427 > worldMapRegionHeight\n field3005 > rsOrdinal\n class41 > MapCacheArchiveNames\n field546 > DETAILS\n field541 > COMPOSITE_MAP\n field548 > COMPOSITE_TEXTURE\n field542 > AREA\n field545 > LABELS\n field542 > name\n field450 > objectDefinitionId\n class247 > WorldMapDecorationType\n field446 > decoration\n field452 > rotation\n class31 > WorldMapDecoration\n field417 > decorations\n class29 > WorldMapRectangle\n method588 > getRegionRectForViewport\n field544 > mapRegions\n class35 > WorldMapRegion\n field3464 > value\n class284 > HorizontalAlignment\n class266 > VerticalAlignment\n field3436 > value\n field3464 > horizontalAlignment\n field3463 > verticalAlignment\n field538 > screenX\n field537 > screenY\n field459 > minX\n method312 > getMinX\n method302 > getMinY\n field453 > minY\n method294 > getFileId\n field465 > identifier\n method296 > getIdentifier\n field455 > name\n method288 > getName\n field4014 > worldMapDataByIdentifier\n method6175 > getWorldMapDataByFileId\n method6077 > getWorldMapDataContainingCoord\n method290 > containsCoord\n vmethod712 > containsCoord\n method6122 > onMapClicked\n\nSeth (7):\n opponent info: remove color tags from opponentOpponent name\n item stat: add raid food\n screenshot plugin: fix up chatMessage events\n screenshot plugin: Add raids reward\n item client: add getIcon method\n ge: Add search feature\n idle notifier: add barbtail/dragon harpoon animation\n\nSomeoneWithAnInternetConnection (1):\n Remove left click calling from BA plugin\n\nTomas Slusny (23):\n Add fuzzy searching to config panel\n Move the notification options to Notifier\n Remove duplicate options from IdleNotifier\n Remove notification settings from NMZ\n Add support for oily rod fishing to idle notifier\n Remove unnecessary chatCommandsEnabled from config\n Allow other types of alerts when messages are off\n Fix "You are fishing" in fishing plugin\n Remove the timeout for HP/pray thresholds\n Correctly focus game canvas when requesting focus\n Make idle notifier work for splashing/missing\n Improve scoring of Jaro-Winkler\n Add link browser utility service\n Use new LinkBrowser in SessionManager\n Use new link browser in Grand Exchange plugin\n Use new link browser in feed plugin\n Continue running in case Discord lib load failed\n Restore original username on syncer shutdown\n Disable team capes plugin by default\n Add support for changing world to API\n Simplify RuneLite API world\n Add default world plugin\n Inverse window resize condition\n\nUnknown (1):\n Team Capes: Added minimum cape count\n\narlyon (4):\n extract mac-specific functionality into OSXUtil\n notifier: fix to request focus on OSX\n extract out number formatting utility\n Update plugins to use either NumberFormat or the StackFormatter\n\njoshpfox (1):\n Remove duplicate anti-venom+ config check\n\nl2- (1):\n fix prayer enhance timer. its actually 10 seconds shorter than 5 minutes\n
\n',image:"/img/blog/1.2.19-Release/ge-search.png"}}}]);
-//# sourceMappingURL=30.315d5ded.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[30],{306:function(e,n){e.exports={title:"1.2.19 Release",description:"Stretched fixed mode, default world, and grand exchange price search!",author:"Adam",body:'Stretched fixed mode has been added, which stretches the game screen and makes\nit more playable on high resolution monitors. Thanks to @devLotto for making this happen.
\n@sethtroll added a GE search feature to the\nexisting grand exchange plugin. You may also use alt+click on your inventory to\nGE search an item now.
\n
\nA news feed plugin was added which shows the latest RuneLite blog posts, Old\nSchool RuneScape news, and a Twitter feed of JMods.
\n
\n@ChaoticConundrum added Notes plugin that will allow you to\nstore notes that will be persisted via RuneLite configuration system.
\n
\nFinally, the long-requested default world plugin has been added thanks to\n@deathbeam , which sets a preconfigured home\nworld by default.
\nThere were many smaller improvements and bug fixes, including:
\n\nThe raids plugin now allows configuring whitelist/blacklist layouts and\nrotations. \nThe screenshot plugin now takes screenshots of raid rewards \nFix length of prayer enhance timer \nThe instance map can now be closed with escape and floor can be changed with scrollbar \nThe "You are fishing" overlay now works again since the last OSRS update \n@arlyon improved native OSX support - with native fullscreen, and focus\nrequesting \nFix cannon plugin showing incorrect double hit spots after region change \nAllow disabling of the skill icons on XP drops \nClear saved private chat history upon clear request \nFix clanchat icons not showing during region loading \nAdd configuation option to make the client size fixed \nAdd minimum threshold to teamcape configuration, and now disable by default \nMost of the plugins has been renamed to proper names, abbreviations was removed and casing was fixed\n(for example Raids plugin is now named "Chambers Of Xeric") \nSpecial Attack Orb plugin was removed in favour of native OSRS special attack orb \nVarious notifaction-related settings was moved to "RuneLite" config section, and now they are applied\nto all notifications \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (12):\n runescape-client: add jav_config\n cannon plugin: use infobox counter instead of overlay\n http-service: add session service\n http-api: add session client\n runelite-client: add client session manager\n client session manager: delete session on shutdown too\n http-service: queue item lookups from images\n input: don\'t allow duplicate input handlers\n item service: process pending lookups in order\n Change mouse wheel listener back to an interface as the instance map input listener uses it\n ge panel: use static number formatter\n runelite-client: add configuration option for resizable\n\nCharlie Waters (3):\n Add Notes plugin\n Add waterskin charges to jewellerycount plugin. Fixes #825.\n Fix notes plugin loading notes from account\n\nDavid Kosub (1):\n Notifier improvements and fixes\n\nDesetude (3):\n Fixed HiscorePanel text\n Allow customization of the default color for ground items\n Renamed \'Experience drop\' -> \'XP Drop\'\n\nKamiel (13):\n Add ability to whitelist layouts\n Add ability to highlight rooms\n Add ability to whitelist boss rotations\n Add floor duration(s) to infobox tooltip\n Get points from varbits instead of widget\n Set size properly\n Make rotation whitelist not case-sensitive\n Raids plugin: read proper input for room whitelist\n Instance map: Add support for user input\n Clear saved private chat history upon clear request\n Allow disabling of the skill icons on XP drops\n Fix cannon plugin showing incorrect double hit spots after region change\n Fix clanchat messages not showing rank icons at certain moments\n\nLotto (18):\n deobfuscator: fix aic failing to determine if a field is imported\n http-api: add feed types\n http-service: add services for getting blog posts, tweets and osrs news\n http-service: add feed api endpoint\n http-api: add client for looking up feed\n runelite-client: add news feed plugin\n Improve deob method finding in the injector\n Use a mixin for calling Hooks.draw instead of a @Hook\n Move the 765x503 constants to a Constants API class\n Add a mixin for storing stretched fixed mode setting states\n Add logic for game image stretching in Hooks#draw\n Modify the size and location of the game canvas if stretched is enabled\n Add support for proxying mouseWheelMoved events\n Add support for specifying the position to insert mouse listeners in\n Add mouse listeners that stretch event x/y\n Add stretched fixed mode plugin\n runelite-client: fix Use tooltip arrow not being displayed\n runelite-api: fix worldToMiniMap not working correctly in stretched mode\n\nMax Weber (52):\n Move the Login and Logout buttons to the TitleToolbar\n draw(IIIIII)V > drawRegion\n AudioInstrument.SINE > AUDIO_SINE\n zoom: Fix pitch relaxer after rev 165 changes\n Reuse NumberFormatter to reduce allocations\n inline RSHashTableMixin.getNodes into RSWidgetMixin.getParentId to reduce allocations\n specorb: Cache draws to reduce allocations\n field429 > WorldMapRegionX\n field432 > worldMapRegionWidth\n field426 > worldMapRegionY\n field427 > worldMapRegionHeight\n field3005 > rsOrdinal\n class41 > MapCacheArchiveNames\n field546 > DETAILS\n field541 > COMPOSITE_MAP\n field548 > COMPOSITE_TEXTURE\n field542 > AREA\n field545 > LABELS\n field542 > name\n field450 > objectDefinitionId\n class247 > WorldMapDecorationType\n field446 > decoration\n field452 > rotation\n class31 > WorldMapDecoration\n field417 > decorations\n class29 > WorldMapRectangle\n method588 > getRegionRectForViewport\n field544 > mapRegions\n class35 > WorldMapRegion\n field3464 > value\n class284 > HorizontalAlignment\n class266 > VerticalAlignment\n field3436 > value\n field3464 > horizontalAlignment\n field3463 > verticalAlignment\n field538 > screenX\n field537 > screenY\n field459 > minX\n method312 > getMinX\n method302 > getMinY\n field453 > minY\n method294 > getFileId\n field465 > identifier\n method296 > getIdentifier\n field455 > name\n method288 > getName\n field4014 > worldMapDataByIdentifier\n method6175 > getWorldMapDataByFileId\n method6077 > getWorldMapDataContainingCoord\n method290 > containsCoord\n vmethod712 > containsCoord\n method6122 > onMapClicked\n\nSeth (7):\n opponent info: remove color tags from opponentOpponent name\n item stat: add raid food\n screenshot plugin: fix up chatMessage events\n screenshot plugin: Add raids reward\n item client: add getIcon method\n ge: Add search feature\n idle notifier: add barbtail/dragon harpoon animation\n\nSomeoneWithAnInternetConnection (1):\n Remove left click calling from BA plugin\n\nTomas Slusny (23):\n Add fuzzy searching to config panel\n Move the notification options to Notifier\n Remove duplicate options from IdleNotifier\n Remove notification settings from NMZ\n Add support for oily rod fishing to idle notifier\n Remove unnecessary chatCommandsEnabled from config\n Allow other types of alerts when messages are off\n Fix "You are fishing" in fishing plugin\n Remove the timeout for HP/pray thresholds\n Correctly focus game canvas when requesting focus\n Make idle notifier work for splashing/missing\n Improve scoring of Jaro-Winkler\n Add link browser utility service\n Use new LinkBrowser in SessionManager\n Use new link browser in Grand Exchange plugin\n Use new link browser in feed plugin\n Continue running in case Discord lib load failed\n Restore original username on syncer shutdown\n Disable team capes plugin by default\n Add support for changing world to API\n Simplify RuneLite API world\n Add default world plugin\n Inverse window resize condition\n\nUnknown (1):\n Team Capes: Added minimum cape count\n\narlyon (4):\n extract mac-specific functionality into OSXUtil\n notifier: fix to request focus on OSX\n extract out number formatting utility\n Update plugins to use either NumberFormat or the StackFormatter\n\njoshpfox (1):\n Remove duplicate anti-venom+ config check\n\nl2- (1):\n fix prayer enhance timer. its actually 10 seconds shorter than 5 minutes\n
\n',image:"/img/blog/1.2.19-Release/ge-search.png"}}}]);
+//# sourceMappingURL=30.4f882079.chunk.js.map
\ No newline at end of file
diff --git a/static/js/30.315d5ded.chunk.js.map b/static/js/30.4f882079.chunk.js.map
similarity index 99%
rename from static/js/30.315d5ded.chunk.js.map
rename to static/js/30.4f882079.chunk.js.map
index d9c9a3440..b167296e2 100644
--- a/static/js/30.315d5ded.chunk.js.map
+++ b/static/js/30.4f882079.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-03-08-00-00-1.2.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,wEAAwE,OAAS,OAAO,KAAO,u7SAA49S,MAAQ","file":"static/js/30.315d5ded.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.19 Release\",\"description\":\"Stretched fixed mode, default world, and grand exchange price search!\",\"author\":\"Adam\",\"body\":\"Stretched fixed mode has been added, which stretches the game screen and makes\\nit more playable on high resolution monitors. Thanks to @devLotto for making this happen.
\\n@sethtroll added a GE search feature to the\\nexisting grand exchange plugin. You may also use alt+click on your inventory to\\nGE search an item now.
\\n
\\nA news feed plugin was added which shows the latest RuneLite blog posts, Old\\nSchool RuneScape news, and a Twitter feed of JMods.
\\n
\\n@ChaoticConundrum added Notes plugin that will allow you to\\nstore notes that will be persisted via RuneLite configuration system.
\\n
\\nFinally, the long-requested default world plugin has been added thanks to\\n@deathbeam , which sets a preconfigured home\\nworld by default.
\\nThere were many smaller improvements and bug fixes, including:
\\n\\nThe raids plugin now allows configuring whitelist/blacklist layouts and\\nrotations. \\nThe screenshot plugin now takes screenshots of raid rewards \\nFix length of prayer enhance timer \\nThe instance map can now be closed with escape and floor can be changed with scrollbar \\nThe "You are fishing" overlay now works again since the last OSRS update \\n@arlyon improved native OSX support - with native fullscreen, and focus\\nrequesting \\nFix cannon plugin showing incorrect double hit spots after region change \\nAllow disabling of the skill icons on XP drops \\nClear saved private chat history upon clear request \\nFix clanchat icons not showing during region loading \\nAdd configuation option to make the client size fixed \\nAdd minimum threshold to teamcape configuration, and now disable by default \\nMost of the plugins has been renamed to proper names, abbreviations was removed and casing was fixed\\n(for example Raids plugin is now named "Chambers Of Xeric") \\nSpecial Attack Orb plugin was removed in favour of native OSRS special attack orb \\nVarious notifaction-related settings was moved to "RuneLite" config section, and now they are applied\\nto all notifications \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (12):\\n runescape-client: add jav_config\\n cannon plugin: use infobox counter instead of overlay\\n http-service: add session service\\n http-api: add session client\\n runelite-client: add client session manager\\n client session manager: delete session on shutdown too\\n http-service: queue item lookups from images\\n input: don't allow duplicate input handlers\\n item service: process pending lookups in order\\n Change mouse wheel listener back to an interface as the instance map input listener uses it\\n ge panel: use static number formatter\\n runelite-client: add configuration option for resizable\\n\\nCharlie Waters (3):\\n Add Notes plugin\\n Add waterskin charges to jewellerycount plugin. Fixes #825.\\n Fix notes plugin loading notes from account\\n\\nDavid Kosub (1):\\n Notifier improvements and fixes\\n\\nDesetude (3):\\n Fixed HiscorePanel text\\n Allow customization of the default color for ground items\\n Renamed 'Experience drop' -> 'XP Drop'\\n\\nKamiel (13):\\n Add ability to whitelist layouts\\n Add ability to highlight rooms\\n Add ability to whitelist boss rotations\\n Add floor duration(s) to infobox tooltip\\n Get points from varbits instead of widget\\n Set size properly\\n Make rotation whitelist not case-sensitive\\n Raids plugin: read proper input for room whitelist\\n Instance map: Add support for user input\\n Clear saved private chat history upon clear request\\n Allow disabling of the skill icons on XP drops\\n Fix cannon plugin showing incorrect double hit spots after region change\\n Fix clanchat messages not showing rank icons at certain moments\\n\\nLotto (18):\\n deobfuscator: fix aic failing to determine if a field is imported\\n http-api: add feed types\\n http-service: add services for getting blog posts, tweets and osrs news\\n http-service: add feed api endpoint\\n http-api: add client for looking up feed\\n runelite-client: add news feed plugin\\n Improve deob method finding in the injector\\n Use a mixin for calling Hooks.draw instead of a @Hook\\n Move the 765x503 constants to a Constants API class\\n Add a mixin for storing stretched fixed mode setting states\\n Add logic for game image stretching in Hooks#draw\\n Modify the size and location of the game canvas if stretched is enabled\\n Add support for proxying mouseWheelMoved events\\n Add support for specifying the position to insert mouse listeners in\\n Add mouse listeners that stretch event x/y\\n Add stretched fixed mode plugin\\n runelite-client: fix Use tooltip arrow not being displayed\\n runelite-api: fix worldToMiniMap not working correctly in stretched mode\\n\\nMax Weber (52):\\n Move the Login and Logout buttons to the TitleToolbar\\n draw(IIIIII)V > drawRegion\\n AudioInstrument.SINE > AUDIO_SINE\\n zoom: Fix pitch relaxer after rev 165 changes\\n Reuse NumberFormatter to reduce allocations\\n inline RSHashTableMixin.getNodes into RSWidgetMixin.getParentId to reduce allocations\\n specorb: Cache draws to reduce allocations\\n field429 > WorldMapRegionX\\n field432 > worldMapRegionWidth\\n field426 > worldMapRegionY\\n field427 > worldMapRegionHeight\\n field3005 > rsOrdinal\\n class41 > MapCacheArchiveNames\\n field546 > DETAILS\\n field541 > COMPOSITE_MAP\\n field548 > COMPOSITE_TEXTURE\\n field542 > AREA\\n field545 > LABELS\\n field542 > name\\n field450 > objectDefinitionId\\n class247 > WorldMapDecorationType\\n field446 > decoration\\n field452 > rotation\\n class31 > WorldMapDecoration\\n field417 > decorations\\n class29 > WorldMapRectangle\\n method588 > getRegionRectForViewport\\n field544 > mapRegions\\n class35 > WorldMapRegion\\n field3464 > value\\n class284 > HorizontalAlignment\\n class266 > VerticalAlignment\\n field3436 > value\\n field3464 > horizontalAlignment\\n field3463 > verticalAlignment\\n field538 > screenX\\n field537 > screenY\\n field459 > minX\\n method312 > getMinX\\n method302 > getMinY\\n field453 > minY\\n method294 > getFileId\\n field465 > identifier\\n method296 > getIdentifier\\n field455 > name\\n method288 > getName\\n field4014 > worldMapDataByIdentifier\\n method6175 > getWorldMapDataByFileId\\n method6077 > getWorldMapDataContainingCoord\\n method290 > containsCoord\\n vmethod712 > containsCoord\\n method6122 > onMapClicked\\n\\nSeth (7):\\n opponent info: remove color tags from opponentOpponent name\\n item stat: add raid food\\n screenshot plugin: fix up chatMessage events\\n screenshot plugin: Add raids reward\\n item client: add getIcon method\\n ge: Add search feature\\n idle notifier: add barbtail/dragon harpoon animation\\n\\nSomeoneWithAnInternetConnection (1):\\n Remove left click calling from BA plugin\\n\\nTomas Slusny (23):\\n Add fuzzy searching to config panel\\n Move the notification options to Notifier\\n Remove duplicate options from IdleNotifier\\n Remove notification settings from NMZ\\n Add support for oily rod fishing to idle notifier\\n Remove unnecessary chatCommandsEnabled from config\\n Allow other types of alerts when messages are off\\n Fix "You are fishing" in fishing plugin\\n Remove the timeout for HP/pray thresholds\\n Correctly focus game canvas when requesting focus\\n Make idle notifier work for splashing/missing\\n Improve scoring of Jaro-Winkler\\n Add link browser utility service\\n Use new LinkBrowser in SessionManager\\n Use new link browser in Grand Exchange plugin\\n Use new link browser in feed plugin\\n Continue running in case Discord lib load failed\\n Restore original username on syncer shutdown\\n Disable team capes plugin by default\\n Add support for changing world to API\\n Simplify RuneLite API world\\n Add default world plugin\\n Inverse window resize condition\\n\\nUnknown (1):\\n Team Capes: Added minimum cape count\\n\\narlyon (4):\\n extract mac-specific functionality into OSXUtil\\n notifier: fix to request focus on OSX\\n extract out number formatting utility\\n Update plugins to use either NumberFormat or the StackFormatter\\n\\njoshpfox (1):\\n Remove duplicate anti-venom+ config check\\n\\nl2- (1):\\n fix prayer enhance timer. its actually 10 seconds shorter than 5 minutes\\n
\\n\",\"image\":\"/img/blog/1.2.19-Release/ge-search.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-03-08-00-00-1.2.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,wEAAwE,OAAS,OAAO,KAAO,u7SAA49S,MAAQ","file":"static/js/30.4f882079.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.2.19 Release\",\"description\":\"Stretched fixed mode, default world, and grand exchange price search!\",\"author\":\"Adam\",\"body\":\"Stretched fixed mode has been added, which stretches the game screen and makes\\nit more playable on high resolution monitors. Thanks to @devLotto for making this happen.
\\n@sethtroll added a GE search feature to the\\nexisting grand exchange plugin. You may also use alt+click on your inventory to\\nGE search an item now.
\\n
\\nA news feed plugin was added which shows the latest RuneLite blog posts, Old\\nSchool RuneScape news, and a Twitter feed of JMods.
\\n
\\n@ChaoticConundrum added Notes plugin that will allow you to\\nstore notes that will be persisted via RuneLite configuration system.
\\n
\\nFinally, the long-requested default world plugin has been added thanks to\\n@deathbeam , which sets a preconfigured home\\nworld by default.
\\nThere were many smaller improvements and bug fixes, including:
\\n\\nThe raids plugin now allows configuring whitelist/blacklist layouts and\\nrotations. \\nThe screenshot plugin now takes screenshots of raid rewards \\nFix length of prayer enhance timer \\nThe instance map can now be closed with escape and floor can be changed with scrollbar \\nThe "You are fishing" overlay now works again since the last OSRS update \\n@arlyon improved native OSX support - with native fullscreen, and focus\\nrequesting \\nFix cannon plugin showing incorrect double hit spots after region change \\nAllow disabling of the skill icons on XP drops \\nClear saved private chat history upon clear request \\nFix clanchat icons not showing during region loading \\nAdd configuation option to make the client size fixed \\nAdd minimum threshold to teamcape configuration, and now disable by default \\nMost of the plugins has been renamed to proper names, abbreviations was removed and casing was fixed\\n(for example Raids plugin is now named "Chambers Of Xeric") \\nSpecial Attack Orb plugin was removed in favour of native OSRS special attack orb \\nVarious notifaction-related settings was moved to "RuneLite" config section, and now they are applied\\nto all notifications \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (12):\\n runescape-client: add jav_config\\n cannon plugin: use infobox counter instead of overlay\\n http-service: add session service\\n http-api: add session client\\n runelite-client: add client session manager\\n client session manager: delete session on shutdown too\\n http-service: queue item lookups from images\\n input: don't allow duplicate input handlers\\n item service: process pending lookups in order\\n Change mouse wheel listener back to an interface as the instance map input listener uses it\\n ge panel: use static number formatter\\n runelite-client: add configuration option for resizable\\n\\nCharlie Waters (3):\\n Add Notes plugin\\n Add waterskin charges to jewellerycount plugin. Fixes #825.\\n Fix notes plugin loading notes from account\\n\\nDavid Kosub (1):\\n Notifier improvements and fixes\\n\\nDesetude (3):\\n Fixed HiscorePanel text\\n Allow customization of the default color for ground items\\n Renamed 'Experience drop' -> 'XP Drop'\\n\\nKamiel (13):\\n Add ability to whitelist layouts\\n Add ability to highlight rooms\\n Add ability to whitelist boss rotations\\n Add floor duration(s) to infobox tooltip\\n Get points from varbits instead of widget\\n Set size properly\\n Make rotation whitelist not case-sensitive\\n Raids plugin: read proper input for room whitelist\\n Instance map: Add support for user input\\n Clear saved private chat history upon clear request\\n Allow disabling of the skill icons on XP drops\\n Fix cannon plugin showing incorrect double hit spots after region change\\n Fix clanchat messages not showing rank icons at certain moments\\n\\nLotto (18):\\n deobfuscator: fix aic failing to determine if a field is imported\\n http-api: add feed types\\n http-service: add services for getting blog posts, tweets and osrs news\\n http-service: add feed api endpoint\\n http-api: add client for looking up feed\\n runelite-client: add news feed plugin\\n Improve deob method finding in the injector\\n Use a mixin for calling Hooks.draw instead of a @Hook\\n Move the 765x503 constants to a Constants API class\\n Add a mixin for storing stretched fixed mode setting states\\n Add logic for game image stretching in Hooks#draw\\n Modify the size and location of the game canvas if stretched is enabled\\n Add support for proxying mouseWheelMoved events\\n Add support for specifying the position to insert mouse listeners in\\n Add mouse listeners that stretch event x/y\\n Add stretched fixed mode plugin\\n runelite-client: fix Use tooltip arrow not being displayed\\n runelite-api: fix worldToMiniMap not working correctly in stretched mode\\n\\nMax Weber (52):\\n Move the Login and Logout buttons to the TitleToolbar\\n draw(IIIIII)V > drawRegion\\n AudioInstrument.SINE > AUDIO_SINE\\n zoom: Fix pitch relaxer after rev 165 changes\\n Reuse NumberFormatter to reduce allocations\\n inline RSHashTableMixin.getNodes into RSWidgetMixin.getParentId to reduce allocations\\n specorb: Cache draws to reduce allocations\\n field429 > WorldMapRegionX\\n field432 > worldMapRegionWidth\\n field426 > worldMapRegionY\\n field427 > worldMapRegionHeight\\n field3005 > rsOrdinal\\n class41 > MapCacheArchiveNames\\n field546 > DETAILS\\n field541 > COMPOSITE_MAP\\n field548 > COMPOSITE_TEXTURE\\n field542 > AREA\\n field545 > LABELS\\n field542 > name\\n field450 > objectDefinitionId\\n class247 > WorldMapDecorationType\\n field446 > decoration\\n field452 > rotation\\n class31 > WorldMapDecoration\\n field417 > decorations\\n class29 > WorldMapRectangle\\n method588 > getRegionRectForViewport\\n field544 > mapRegions\\n class35 > WorldMapRegion\\n field3464 > value\\n class284 > HorizontalAlignment\\n class266 > VerticalAlignment\\n field3436 > value\\n field3464 > horizontalAlignment\\n field3463 > verticalAlignment\\n field538 > screenX\\n field537 > screenY\\n field459 > minX\\n method312 > getMinX\\n method302 > getMinY\\n field453 > minY\\n method294 > getFileId\\n field465 > identifier\\n method296 > getIdentifier\\n field455 > name\\n method288 > getName\\n field4014 > worldMapDataByIdentifier\\n method6175 > getWorldMapDataByFileId\\n method6077 > getWorldMapDataContainingCoord\\n method290 > containsCoord\\n vmethod712 > containsCoord\\n method6122 > onMapClicked\\n\\nSeth (7):\\n opponent info: remove color tags from opponentOpponent name\\n item stat: add raid food\\n screenshot plugin: fix up chatMessage events\\n screenshot plugin: Add raids reward\\n item client: add getIcon method\\n ge: Add search feature\\n idle notifier: add barbtail/dragon harpoon animation\\n\\nSomeoneWithAnInternetConnection (1):\\n Remove left click calling from BA plugin\\n\\nTomas Slusny (23):\\n Add fuzzy searching to config panel\\n Move the notification options to Notifier\\n Remove duplicate options from IdleNotifier\\n Remove notification settings from NMZ\\n Add support for oily rod fishing to idle notifier\\n Remove unnecessary chatCommandsEnabled from config\\n Allow other types of alerts when messages are off\\n Fix "You are fishing" in fishing plugin\\n Remove the timeout for HP/pray thresholds\\n Correctly focus game canvas when requesting focus\\n Make idle notifier work for splashing/missing\\n Improve scoring of Jaro-Winkler\\n Add link browser utility service\\n Use new LinkBrowser in SessionManager\\n Use new link browser in Grand Exchange plugin\\n Use new link browser in feed plugin\\n Continue running in case Discord lib load failed\\n Restore original username on syncer shutdown\\n Disable team capes plugin by default\\n Add support for changing world to API\\n Simplify RuneLite API world\\n Add default world plugin\\n Inverse window resize condition\\n\\nUnknown (1):\\n Team Capes: Added minimum cape count\\n\\narlyon (4):\\n extract mac-specific functionality into OSXUtil\\n notifier: fix to request focus on OSX\\n extract out number formatting utility\\n Update plugins to use either NumberFormat or the StackFormatter\\n\\njoshpfox (1):\\n Remove duplicate anti-venom+ config check\\n\\nl2- (1):\\n fix prayer enhance timer. its actually 10 seconds shorter than 5 minutes\\n
\\n\",\"image\":\"/img/blog/1.2.19-Release/ge-search.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/31.e2bbb427.chunk.js b/static/js/31.f8da3339.chunk.js
similarity index 98%
rename from static/js/31.e2bbb427.chunk.js
rename to static/js/31.f8da3339.chunk.js
index 08d7a2d8e..7b672d9b6 100644
--- a/static/js/31.e2bbb427.chunk.js
+++ b/static/js/31.f8da3339.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[31],{306:function(n,e){n.exports={title:"1.3.0 Release",description:"Menu swapping and highlighting, hp and spec regen meter, and player names on minimap",author:"Adam",body:'@Xrio contributed a menu swapper plugin which\nswaps the left click menu options on some things.
\n
\nThe ground items plugin can now highlight menu options based on item price,\nthanks to @devdennis .
\n
\n@abex added a regen meter to the hitpoints and\nspecial attack orbs.
\n
\nThe player indicator plugin can now show player names on the minimap, from\n@deathbeam
\n
\nAlso, thanks to @josharoo and\n@fe-mirino for their work on\nexpanding the wiki .
\nThe minimap plugin now has an option to allow hiding the minimap on resized mode\n(@Blizik )
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe xp tracker plugin has been overhauled to show more information in less\nspace \nFixed item sprites in the fishing plugin (among other places) sometimes having\nthe incorrect zoom applied to them \nOpponent info overlay will now update hitpoints for opponents you recently\nwere targeting \nFix hiscore player menu option intefering with other game menu options like\nWhack \nFix attack styles not being hidden when attack style plugin configuration is\nchanged \nAdd right click menu to screenshot button to open the screenshot folder \nReposition points box in raids to be underneat the xp dropper overlay \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (20):\n Bump to 1.2.19.1-SNAPSHOT\n Bump to 1.3.0-SNAPSHOT\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\n widget id: fix viewport child widget\n Also bump scm tag\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\n widget id: fix viewport child widget\n item controller: add method for bulk price lookups\n instance map: fix various races between game and event threads\n runelite-api: add ability to get npc index\n runelite-api: expose cachedNpcs\n opponent info overlay: use last opponent if no opponent is targeted\n Reset player menu types whenever the options are changed\n runelite-api: expose npc composition\n dev tools overlay: transform npcs if applicable\n sessions: decrease session ping frequency\n cache: fix item definition default zoom2d\n runelite-api: add scale to createItemSprite\n http-service: add sprite service\n runelite-client: add github release plugin configuration\n\nBart van Helvert (1):\n Remove unneeded drawRegionTile calls\n\nBlizik (1):\n Add ability to toggle minimap display\n\nConnor (1):\n Resolving Issue #860 - Warned Attack Styles not properly hiding. Adding automated test coverage for AttackIndicatorPlugin.\n\nDennis (1):\n ground items plugin: add option to highlight menu\n\nDennis de V (1):\n Fix ground items nullpointer exception\n\nInfinitay (1):\n Add confirmation dialog to runelite logout button\n\nJeremy Plsek (1):\n Add right click menu to screenshot button #797\n\nJoshua Filby (2):\n runelite-client: Add Text#removeTags method\n runelite-client: Update plugins to use Text.removeTags\n\nKamiel (3):\n Raids plugin: Reposition the points box to prevent it from overlapping overlays\n Fix instance map "show" option not displaying in right-click menu\n Fix instance map "show" option not displaying in right-click menu\n\nMax Weber (11):\n injector: Fix scriptvm not updating currentScript\n isRSHidden > isSelfHidden\n Move widget inspector into it\'s own window\n jewellerycount: add imp-in-a-box\n Rename Point3D to WorldPoint\n Add conversion methods to WorldPoint and LocalPoint\n Update almost everything to the new API\n Remove old API\n Add planes to planeless tile objects\n hunter plugin: Don\'t iterate over all tiles\n Add regen meter plugin\n\nSeth (6):\n dev tools: add location to dev tools plugin\n Remove viewport contains\n xp tracker: add format suffix to reduce string size\n xp tracker: update xp tracker UI\n NpcID: update ids to cache 165\n fishing plugin: remove broken minnow npcs and swap to graphic check\n\nTomas Slusny (6):\n Add idle anim and combat idle toggles to notifier\n Remove duplicated and unused OverlayUtil code\n Add support for drawing names on minimap\n Allow specifying default world in [0-9]{2} format\n Title-case and remove "plugin" from ME swapper\n Fix drawing of player names on minimap\n\nXrioBtw (1):\n Add menu entry swapper plugin\n\nnvisser (1):\n Round actions remaining up\n
\n',image:"/img/blog/1.3.0-Release/menuswap.png"}}}]);
-//# sourceMappingURL=31.e2bbb427.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[31],{307:function(n,e){n.exports={title:"1.3.0 Release",description:"Menu swapping and highlighting, hp and spec regen meter, and player names on minimap",author:"Adam",body:'@Xrio contributed a menu swapper plugin which\nswaps the left click menu options on some things.
\n
\nThe ground items plugin can now highlight menu options based on item price,\nthanks to @devdennis .
\n
\n@abex added a regen meter to the hitpoints and\nspecial attack orbs.
\n
\nThe player indicator plugin can now show player names on the minimap, from\n@deathbeam
\n
\nAlso, thanks to @josharoo and\n@fe-mirino for their work on\nexpanding the wiki .
\nThe minimap plugin now has an option to allow hiding the minimap on resized mode\n(@Blizik )
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe xp tracker plugin has been overhauled to show more information in less\nspace \nFixed item sprites in the fishing plugin (among other places) sometimes having\nthe incorrect zoom applied to them \nOpponent info overlay will now update hitpoints for opponents you recently\nwere targeting \nFix hiscore player menu option intefering with other game menu options like\nWhack \nFix attack styles not being hidden when attack style plugin configuration is\nchanged \nAdd right click menu to screenshot button to open the screenshot folder \nReposition points box in raids to be underneat the xp dropper overlay \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (20):\n Bump to 1.2.19.1-SNAPSHOT\n Bump to 1.3.0-SNAPSHOT\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\n widget id: fix viewport child widget\n Also bump scm tag\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\n widget id: fix viewport child widget\n item controller: add method for bulk price lookups\n instance map: fix various races between game and event threads\n runelite-api: add ability to get npc index\n runelite-api: expose cachedNpcs\n opponent info overlay: use last opponent if no opponent is targeted\n Reset player menu types whenever the options are changed\n runelite-api: expose npc composition\n dev tools overlay: transform npcs if applicable\n sessions: decrease session ping frequency\n cache: fix item definition default zoom2d\n runelite-api: add scale to createItemSprite\n http-service: add sprite service\n runelite-client: add github release plugin configuration\n\nBart van Helvert (1):\n Remove unneeded drawRegionTile calls\n\nBlizik (1):\n Add ability to toggle minimap display\n\nConnor (1):\n Resolving Issue #860 - Warned Attack Styles not properly hiding. Adding automated test coverage for AttackIndicatorPlugin.\n\nDennis (1):\n ground items plugin: add option to highlight menu\n\nDennis de V (1):\n Fix ground items nullpointer exception\n\nInfinitay (1):\n Add confirmation dialog to runelite logout button\n\nJeremy Plsek (1):\n Add right click menu to screenshot button #797\n\nJoshua Filby (2):\n runelite-client: Add Text#removeTags method\n runelite-client: Update plugins to use Text.removeTags\n\nKamiel (3):\n Raids plugin: Reposition the points box to prevent it from overlapping overlays\n Fix instance map "show" option not displaying in right-click menu\n Fix instance map "show" option not displaying in right-click menu\n\nMax Weber (11):\n injector: Fix scriptvm not updating currentScript\n isRSHidden > isSelfHidden\n Move widget inspector into it\'s own window\n jewellerycount: add imp-in-a-box\n Rename Point3D to WorldPoint\n Add conversion methods to WorldPoint and LocalPoint\n Update almost everything to the new API\n Remove old API\n Add planes to planeless tile objects\n hunter plugin: Don\'t iterate over all tiles\n Add regen meter plugin\n\nSeth (6):\n dev tools: add location to dev tools plugin\n Remove viewport contains\n xp tracker: add format suffix to reduce string size\n xp tracker: update xp tracker UI\n NpcID: update ids to cache 165\n fishing plugin: remove broken minnow npcs and swap to graphic check\n\nTomas Slusny (6):\n Add idle anim and combat idle toggles to notifier\n Remove duplicated and unused OverlayUtil code\n Add support for drawing names on minimap\n Allow specifying default world in [0-9]{2} format\n Title-case and remove "plugin" from ME swapper\n Fix drawing of player names on minimap\n\nXrioBtw (1):\n Add menu entry swapper plugin\n\nnvisser (1):\n Round actions remaining up\n
\n',image:"/img/blog/1.3.0-Release/menuswap.png"}}}]);
+//# sourceMappingURL=31.f8da3339.chunk.js.map
\ No newline at end of file
diff --git a/static/js/31.e2bbb427.chunk.js.map b/static/js/31.f8da3339.chunk.js.map
similarity index 99%
rename from static/js/31.e2bbb427.chunk.js.map
rename to static/js/31.f8da3339.chunk.js.map
index d9b33032e..9f26693bd 100644
--- a/static/js/31.e2bbb427.chunk.js.map
+++ b/static/js/31.f8da3339.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-03-15-00-00-1.3.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uFAAuF,OAAS,OAAO,KAAO,29KAAyhL,MAAQ","file":"static/js/31.e2bbb427.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.0 Release\",\"description\":\"Menu swapping and highlighting, hp and spec regen meter, and player names on minimap\",\"author\":\"Adam\",\"body\":\"@Xrio contributed a menu swapper plugin which\\nswaps the left click menu options on some things.
\\n
\\nThe ground items plugin can now highlight menu options based on item price,\\nthanks to @devdennis .
\\n
\\n@abex added a regen meter to the hitpoints and\\nspecial attack orbs.
\\n
\\nThe player indicator plugin can now show player names on the minimap, from\\n@deathbeam
\\n
\\nAlso, thanks to @josharoo and\\n@fe-mirino for their work on\\nexpanding the wiki .
\\nThe minimap plugin now has an option to allow hiding the minimap on resized mode\\n(@Blizik )
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe xp tracker plugin has been overhauled to show more information in less\\nspace \\nFixed item sprites in the fishing plugin (among other places) sometimes having\\nthe incorrect zoom applied to them \\nOpponent info overlay will now update hitpoints for opponents you recently\\nwere targeting \\nFix hiscore player menu option intefering with other game menu options like\\nWhack \\nFix attack styles not being hidden when attack style plugin configuration is\\nchanged \\nAdd right click menu to screenshot button to open the screenshot folder \\nReposition points box in raids to be underneat the xp dropper overlay \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (20):\\n Bump to 1.2.19.1-SNAPSHOT\\n Bump to 1.3.0-SNAPSHOT\\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\\n widget id: fix viewport child widget\\n Also bump scm tag\\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\\n widget id: fix viewport child widget\\n item controller: add method for bulk price lookups\\n instance map: fix various races between game and event threads\\n runelite-api: add ability to get npc index\\n runelite-api: expose cachedNpcs\\n opponent info overlay: use last opponent if no opponent is targeted\\n Reset player menu types whenever the options are changed\\n runelite-api: expose npc composition\\n dev tools overlay: transform npcs if applicable\\n sessions: decrease session ping frequency\\n cache: fix item definition default zoom2d\\n runelite-api: add scale to createItemSprite\\n http-service: add sprite service\\n runelite-client: add github release plugin configuration\\n\\nBart van Helvert (1):\\n Remove unneeded drawRegionTile calls\\n\\nBlizik (1):\\n Add ability to toggle minimap display\\n\\nConnor (1):\\n Resolving Issue #860 - Warned Attack Styles not properly hiding. Adding automated test coverage for AttackIndicatorPlugin.\\n\\nDennis (1):\\n ground items plugin: add option to highlight menu\\n\\nDennis de V (1):\\n Fix ground items nullpointer exception\\n\\nInfinitay (1):\\n Add confirmation dialog to runelite logout button\\n\\nJeremy Plsek (1):\\n Add right click menu to screenshot button #797\\n\\nJoshua Filby (2):\\n runelite-client: Add Text#removeTags method\\n runelite-client: Update plugins to use Text.removeTags\\n\\nKamiel (3):\\n Raids plugin: Reposition the points box to prevent it from overlapping overlays\\n Fix instance map "show" option not displaying in right-click menu\\n Fix instance map "show" option not displaying in right-click menu\\n\\nMax Weber (11):\\n injector: Fix scriptvm not updating currentScript\\n isRSHidden > isSelfHidden\\n Move widget inspector into it's own window\\n jewellerycount: add imp-in-a-box\\n Rename Point3D to WorldPoint\\n Add conversion methods to WorldPoint and LocalPoint\\n Update almost everything to the new API\\n Remove old API\\n Add planes to planeless tile objects\\n hunter plugin: Don't iterate over all tiles\\n Add regen meter plugin\\n\\nSeth (6):\\n dev tools: add location to dev tools plugin\\n Remove viewport contains\\n xp tracker: add format suffix to reduce string size\\n xp tracker: update xp tracker UI\\n NpcID: update ids to cache 165\\n fishing plugin: remove broken minnow npcs and swap to graphic check\\n\\nTomas Slusny (6):\\n Add idle anim and combat idle toggles to notifier\\n Remove duplicated and unused OverlayUtil code\\n Add support for drawing names on minimap\\n Allow specifying default world in [0-9]{2} format\\n Title-case and remove "plugin" from ME swapper\\n Fix drawing of player names on minimap\\n\\nXrioBtw (1):\\n Add menu entry swapper plugin\\n\\nnvisser (1):\\n Round actions remaining up\\n
\\n\",\"image\":\"/img/blog/1.3.0-Release/menuswap.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-03-15-00-00-1.3.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uFAAuF,OAAS,OAAO,KAAO,29KAAyhL,MAAQ","file":"static/js/31.f8da3339.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.0 Release\",\"description\":\"Menu swapping and highlighting, hp and spec regen meter, and player names on minimap\",\"author\":\"Adam\",\"body\":\"@Xrio contributed a menu swapper plugin which\\nswaps the left click menu options on some things.
\\n
\\nThe ground items plugin can now highlight menu options based on item price,\\nthanks to @devdennis .
\\n
\\n@abex added a regen meter to the hitpoints and\\nspecial attack orbs.
\\n
\\nThe player indicator plugin can now show player names on the minimap, from\\n@deathbeam
\\n
\\nAlso, thanks to @josharoo and\\n@fe-mirino for their work on\\nexpanding the wiki .
\\nThe minimap plugin now has an option to allow hiding the minimap on resized mode\\n(@Blizik )
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe xp tracker plugin has been overhauled to show more information in less\\nspace \\nFixed item sprites in the fishing plugin (among other places) sometimes having\\nthe incorrect zoom applied to them \\nOpponent info overlay will now update hitpoints for opponents you recently\\nwere targeting \\nFix hiscore player menu option intefering with other game menu options like\\nWhack \\nFix attack styles not being hidden when attack style plugin configuration is\\nchanged \\nAdd right click menu to screenshot button to open the screenshot folder \\nReposition points box in raids to be underneat the xp dropper overlay \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (20):\\n Bump to 1.2.19.1-SNAPSHOT\\n Bump to 1.3.0-SNAPSHOT\\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\\n widget id: fix viewport child widget\\n Also bump scm tag\\n session client: fix throwing IllegalArgumentException if deserialization of uuid fails\\n widget id: fix viewport child widget\\n item controller: add method for bulk price lookups\\n instance map: fix various races between game and event threads\\n runelite-api: add ability to get npc index\\n runelite-api: expose cachedNpcs\\n opponent info overlay: use last opponent if no opponent is targeted\\n Reset player menu types whenever the options are changed\\n runelite-api: expose npc composition\\n dev tools overlay: transform npcs if applicable\\n sessions: decrease session ping frequency\\n cache: fix item definition default zoom2d\\n runelite-api: add scale to createItemSprite\\n http-service: add sprite service\\n runelite-client: add github release plugin configuration\\n\\nBart van Helvert (1):\\n Remove unneeded drawRegionTile calls\\n\\nBlizik (1):\\n Add ability to toggle minimap display\\n\\nConnor (1):\\n Resolving Issue #860 - Warned Attack Styles not properly hiding. Adding automated test coverage for AttackIndicatorPlugin.\\n\\nDennis (1):\\n ground items plugin: add option to highlight menu\\n\\nDennis de V (1):\\n Fix ground items nullpointer exception\\n\\nInfinitay (1):\\n Add confirmation dialog to runelite logout button\\n\\nJeremy Plsek (1):\\n Add right click menu to screenshot button #797\\n\\nJoshua Filby (2):\\n runelite-client: Add Text#removeTags method\\n runelite-client: Update plugins to use Text.removeTags\\n\\nKamiel (3):\\n Raids plugin: Reposition the points box to prevent it from overlapping overlays\\n Fix instance map "show" option not displaying in right-click menu\\n Fix instance map "show" option not displaying in right-click menu\\n\\nMax Weber (11):\\n injector: Fix scriptvm not updating currentScript\\n isRSHidden > isSelfHidden\\n Move widget inspector into it's own window\\n jewellerycount: add imp-in-a-box\\n Rename Point3D to WorldPoint\\n Add conversion methods to WorldPoint and LocalPoint\\n Update almost everything to the new API\\n Remove old API\\n Add planes to planeless tile objects\\n hunter plugin: Don't iterate over all tiles\\n Add regen meter plugin\\n\\nSeth (6):\\n dev tools: add location to dev tools plugin\\n Remove viewport contains\\n xp tracker: add format suffix to reduce string size\\n xp tracker: update xp tracker UI\\n NpcID: update ids to cache 165\\n fishing plugin: remove broken minnow npcs and swap to graphic check\\n\\nTomas Slusny (6):\\n Add idle anim and combat idle toggles to notifier\\n Remove duplicated and unused OverlayUtil code\\n Add support for drawing names on minimap\\n Allow specifying default world in [0-9]{2} format\\n Title-case and remove "plugin" from ME swapper\\n Fix drawing of player names on minimap\\n\\nXrioBtw (1):\\n Add menu entry swapper plugin\\n\\nnvisser (1):\\n Round actions remaining up\\n
\\n\",\"image\":\"/img/blog/1.3.0-Release/menuswap.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/32.1cf20d67.chunk.js b/static/js/32.9c94a8c2.chunk.js
similarity index 98%
rename from static/js/32.1cf20d67.chunk.js
rename to static/js/32.9c94a8c2.chunk.js
index 394749174..99eb15611 100644
--- a/static/js/32.1cf20d67.chunk.js
+++ b/static/js/32.9c94a8c2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[32],{307:function(e,n){e.exports={title:"1.3.1 Release",description:"Prayer reordering, bank price evaluation, and NPC highlighting",author:"Adam",body:'A prayer reordering plugin has been added which lets you reorder the prayers in\nyour prayer book. Big thanks to @devdennis for\nthe excellent work on making this possible;
\n
\n@McSwindler contributed a NPC highlight plugin\nwhich lets you tag npcs, and also configure a list of npcs which are\nhighlighted.
\n
\nA bank evaluator has been added, which is a combination of effort from myself,\n@jplsek , and\n@TheLonelyDev . It will tell you the overall\nGE and HA price of each tab of your bank.
\n
\nThe ground items plugin now supports quickly hiding and highlighting items.\nThanks to @sethtroll .
\n
\nA herbiboar plugin has been added from\n@Perterter . It highlights the starting rocks,\ntrail, and the two objects to search at the end of each trail.
\n
\nAn item price plugin has been added, from\n@ChaoticConundrum , which shows the price\nof items when hovered over in the bank.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nGround items now support wildcards in both hidden and highlighted fields, so for example *bone*
\nwill hide/highlight all bones \nThe boosted stats plugin now shows time until next change \nThe agility plugin allows configuring of the hitbox overlay color \nGame menus options are no longer left broken when moving regions with the menu\noption \nAttack style plugin now hides attack styles better \nFixed Kourend library plugin, which was broken last release \nShow glory location in POH plugin \nCommon cannon placement spots have been added to the cannon plugin \nRemaining XP to level has been added to the hiscore panel \nRemoved background from the prayer flick overlay, which made the quick prayers\n\xa0toggle hard to see \nAdded godwars altar timer \nSuperior slayer notifications have been added to the slayer plugin \nThe slayer plugin infobox (with your current task) now has a configurable\ntimeout \nThe time until levelup has been added to the xp tracker panel \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 16 contributors this release!
\nAdam (26):\n runelite-mixins: add null checks in region mixin\n Bump for 1.3.0.1-SNAPSHOT\n runelite-mixins: add null checks in region mixin\n boosts plugin: show time to next change\n ground items: add support for wildcards\n ge plugin: move item composition and image calls off of awt thread\n runescape-client: export updateNote\n runescape-client: fix sprite originalWidth<->width and export fields for loading sprites\n cache: add provider interfaces for items, models, sprites, and textures\n cache: add updateNote to ItemDefinition\n cache: fix not invalidating vertexNormals in reset\n cache: expand on texture definition and loader\n cache: store original pixels and palette too, and add normalize()\n cache: add resize, recolor, and retexture to modeldefinirtion\n cache: add item sprite renderer\n cache controller: expose item sprites\n examine service: correct type column enum\n item manager: add batch item price lookup\n Hook to actor health being updated to detect death\n gitignore: add eclipse files\n runelite-api: move getConvexHull to Model\n runelite-api: add getConvexHull to Actor\n Add npc menu options to MenuManager\n devtools: remove double npc transform call\n utils: add wildcard matcher from grounditems\n runelite-client: add npc highlight plugin\n\nCas (1):\n Agility plugin: Agility configuration with Select Color\n\nCharlie Waters (6):\n Add items to item stats plugin: spinach roll, lava eel, sandwich lady items, jangerberries\n Fix bug with rendering more than two tooltips following mouse\n Add TooltipManager method to add tooltip to front of list, and always add mouse highlight tooltip to front\n Add item prices plugin for item price/value tooltips\n Add FocusChanged event from runescape client\n Fix Groud Items plugin Alt+Tab bug by hooking FocusChanged event\n\nDennis (10):\n restore menu entries after open/close widget\n fix prayer order resetting after teleporting to a new area\n injector: checkcast return values from replaced methods\n runescape-client: export animation related symbols\n runelite-api: expose dragging widget fields\n runelite-api: add event for dragging widget\n runelite-api: add widget open event\n runelite-mixins: add null check for widget group in getGroup()\n runelite-api: add widget config\n runelite-client: add prayer reordering plugin\n\nDreyri (2):\n Broadcast widget hidden changed recursively for each child too\n Use isLocalHidden in attack indicator plugin\n\nJeremy Plsek (4):\n http-api: add batch lookup to ItemClient\n stack formatter: support larger stack sizes\n bank item query: only search items in current tab\n Add bank value plugin\n\nKamiel (1):\n Add progress pie type overlay\n\nMax Weber (5):\n kourendlibrary: Fix NPE while loading\n kourendlibrary: Use correct coordinate conversion\n jarvis: allow null points\n Add JShadowedLabel\n Change colors in XPInfoPanel to be brighter\n\nSeth (9):\n poh plugin: change gameobject map to tile object\n pog plugin: fix mounted glory minimap icon\n cannon plugin: add common cannon spots\n ground items: add support for quickly hiding/highlighting items\n hiscore panel: make hiscores type more visible\n hiscore panel: add Remaining XP to next level to hover text\n hiscore panel: add loading label when searching\n menu entry swapper: add bury swap\n prayer flick overlay: remove background arc\n\nTomas Slusny (24):\n Extract utlity methods to SwingUtil class\n Remove the need to extend JFrame in ClientUI\n Make plugins work with new ClientUI\n Remove need to extend JToolBar in PluginToolbar\n Make plugins work with the new PluginToolbar\n Remove the need for custom TitleToolbar component\n Make plugins work with new title toolbar\n Add Discord button through DiscordPlugin\n Add support for popups to navigation button\n Change panel supplier to just getter for panel\n Consistent behaviour between ClientUI and InfoPane\n Set correct offsets to overlays, smaller panels\n Reposition instance map correctly in resizeable\n Use backgroundComponent for drawing border of map\n Lower default width of the PanelComponent\n Fix herbiboar plugin NPE on startup\n Fix AgilityPlugin naming conventions\n Fix Herbiboar plugin naming conventions\n Correctly name Herbiboar classes\n Remove unused variables in Herbiboar plugin\n Fix ClientUI settings loading\n Click the navigation button on selecting in\n Fix tooltip modicon OutOfBounds\n Do not display stack in price tooltips\n\nToocanzs (1):\n Add God Wars Altar Timer\n\nTyler Hardy (4):\n Add herbiboar varbits\n Add herbiboar plugin\n Move region check to loading\n Fix improper varbit for trail 31372\n\nXavier Bergeron (1):\n Add slayer superior foe notification\n\nXrioBtw (1):\n Fix net and harpoon swap for all fishing spots\n\njoshpfox (1):\n configurable slayer infobox expiry timer\n\nnvisser (1):\n Add time till next level to xptracker\n
\n',image:"/img/blog/1.3.1-Release/prayer-reorder.gif"}}}]);
-//# sourceMappingURL=32.1cf20d67.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[32],{308:function(e,n){e.exports={title:"1.3.1 Release",description:"Prayer reordering, bank price evaluation, and NPC highlighting",author:"Adam",body:'A prayer reordering plugin has been added which lets you reorder the prayers in\nyour prayer book. Big thanks to @devdennis for\nthe excellent work on making this possible;
\n
\n@McSwindler contributed a NPC highlight plugin\nwhich lets you tag npcs, and also configure a list of npcs which are\nhighlighted.
\n
\nA bank evaluator has been added, which is a combination of effort from myself,\n@jplsek , and\n@TheLonelyDev . It will tell you the overall\nGE and HA price of each tab of your bank.
\n
\nThe ground items plugin now supports quickly hiding and highlighting items.\nThanks to @sethtroll .
\n
\nA herbiboar plugin has been added from\n@Perterter . It highlights the starting rocks,\ntrail, and the two objects to search at the end of each trail.
\n
\nAn item price plugin has been added, from\n@ChaoticConundrum , which shows the price\nof items when hovered over in the bank.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nGround items now support wildcards in both hidden and highlighted fields, so for example *bone*
\nwill hide/highlight all bones \nThe boosted stats plugin now shows time until next change \nThe agility plugin allows configuring of the hitbox overlay color \nGame menus options are no longer left broken when moving regions with the menu\noption \nAttack style plugin now hides attack styles better \nFixed Kourend library plugin, which was broken last release \nShow glory location in POH plugin \nCommon cannon placement spots have been added to the cannon plugin \nRemaining XP to level has been added to the hiscore panel \nRemoved background from the prayer flick overlay, which made the quick prayers\n\xa0toggle hard to see \nAdded godwars altar timer \nSuperior slayer notifications have been added to the slayer plugin \nThe slayer plugin infobox (with your current task) now has a configurable\ntimeout \nThe time until levelup has been added to the xp tracker panel \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 16 contributors this release!
\nAdam (26):\n runelite-mixins: add null checks in region mixin\n Bump for 1.3.0.1-SNAPSHOT\n runelite-mixins: add null checks in region mixin\n boosts plugin: show time to next change\n ground items: add support for wildcards\n ge plugin: move item composition and image calls off of awt thread\n runescape-client: export updateNote\n runescape-client: fix sprite originalWidth<->width and export fields for loading sprites\n cache: add provider interfaces for items, models, sprites, and textures\n cache: add updateNote to ItemDefinition\n cache: fix not invalidating vertexNormals in reset\n cache: expand on texture definition and loader\n cache: store original pixels and palette too, and add normalize()\n cache: add resize, recolor, and retexture to modeldefinirtion\n cache: add item sprite renderer\n cache controller: expose item sprites\n examine service: correct type column enum\n item manager: add batch item price lookup\n Hook to actor health being updated to detect death\n gitignore: add eclipse files\n runelite-api: move getConvexHull to Model\n runelite-api: add getConvexHull to Actor\n Add npc menu options to MenuManager\n devtools: remove double npc transform call\n utils: add wildcard matcher from grounditems\n runelite-client: add npc highlight plugin\n\nCas (1):\n Agility plugin: Agility configuration with Select Color\n\nCharlie Waters (6):\n Add items to item stats plugin: spinach roll, lava eel, sandwich lady items, jangerberries\n Fix bug with rendering more than two tooltips following mouse\n Add TooltipManager method to add tooltip to front of list, and always add mouse highlight tooltip to front\n Add item prices plugin for item price/value tooltips\n Add FocusChanged event from runescape client\n Fix Groud Items plugin Alt+Tab bug by hooking FocusChanged event\n\nDennis (10):\n restore menu entries after open/close widget\n fix prayer order resetting after teleporting to a new area\n injector: checkcast return values from replaced methods\n runescape-client: export animation related symbols\n runelite-api: expose dragging widget fields\n runelite-api: add event for dragging widget\n runelite-api: add widget open event\n runelite-mixins: add null check for widget group in getGroup()\n runelite-api: add widget config\n runelite-client: add prayer reordering plugin\n\nDreyri (2):\n Broadcast widget hidden changed recursively for each child too\n Use isLocalHidden in attack indicator plugin\n\nJeremy Plsek (4):\n http-api: add batch lookup to ItemClient\n stack formatter: support larger stack sizes\n bank item query: only search items in current tab\n Add bank value plugin\n\nKamiel (1):\n Add progress pie type overlay\n\nMax Weber (5):\n kourendlibrary: Fix NPE while loading\n kourendlibrary: Use correct coordinate conversion\n jarvis: allow null points\n Add JShadowedLabel\n Change colors in XPInfoPanel to be brighter\n\nSeth (9):\n poh plugin: change gameobject map to tile object\n pog plugin: fix mounted glory minimap icon\n cannon plugin: add common cannon spots\n ground items: add support for quickly hiding/highlighting items\n hiscore panel: make hiscores type more visible\n hiscore panel: add Remaining XP to next level to hover text\n hiscore panel: add loading label when searching\n menu entry swapper: add bury swap\n prayer flick overlay: remove background arc\n\nTomas Slusny (24):\n Extract utlity methods to SwingUtil class\n Remove the need to extend JFrame in ClientUI\n Make plugins work with new ClientUI\n Remove need to extend JToolBar in PluginToolbar\n Make plugins work with the new PluginToolbar\n Remove the need for custom TitleToolbar component\n Make plugins work with new title toolbar\n Add Discord button through DiscordPlugin\n Add support for popups to navigation button\n Change panel supplier to just getter for panel\n Consistent behaviour between ClientUI and InfoPane\n Set correct offsets to overlays, smaller panels\n Reposition instance map correctly in resizeable\n Use backgroundComponent for drawing border of map\n Lower default width of the PanelComponent\n Fix herbiboar plugin NPE on startup\n Fix AgilityPlugin naming conventions\n Fix Herbiboar plugin naming conventions\n Correctly name Herbiboar classes\n Remove unused variables in Herbiboar plugin\n Fix ClientUI settings loading\n Click the navigation button on selecting in\n Fix tooltip modicon OutOfBounds\n Do not display stack in price tooltips\n\nToocanzs (1):\n Add God Wars Altar Timer\n\nTyler Hardy (4):\n Add herbiboar varbits\n Add herbiboar plugin\n Move region check to loading\n Fix improper varbit for trail 31372\n\nXavier Bergeron (1):\n Add slayer superior foe notification\n\nXrioBtw (1):\n Fix net and harpoon swap for all fishing spots\n\njoshpfox (1):\n configurable slayer infobox expiry timer\n\nnvisser (1):\n Add time till next level to xptracker\n
\n',image:"/img/blog/1.3.1-Release/prayer-reorder.gif"}}}]);
+//# sourceMappingURL=32.9c94a8c2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/32.1cf20d67.chunk.js.map b/static/js/32.9c94a8c2.chunk.js.map
similarity index 99%
rename from static/js/32.1cf20d67.chunk.js.map
rename to static/js/32.9c94a8c2.chunk.js.map
index 1c865ef59..780e78898 100644
--- a/static/js/32.1cf20d67.chunk.js.map
+++ b/static/js/32.9c94a8c2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-03-22-00-00-1.3.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,iEAAiE,OAAS,OAAO,KAAO,qzQAAo3Q,MAAQ","file":"static/js/32.1cf20d67.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.1 Release\",\"description\":\"Prayer reordering, bank price evaluation, and NPC highlighting\",\"author\":\"Adam\",\"body\":\"A prayer reordering plugin has been added which lets you reorder the prayers in\\nyour prayer book. Big thanks to @devdennis for\\nthe excellent work on making this possible;
\\n
\\n@McSwindler contributed a NPC highlight plugin\\nwhich lets you tag npcs, and also configure a list of npcs which are\\nhighlighted.
\\n
\\nA bank evaluator has been added, which is a combination of effort from myself,\\n@jplsek , and\\n@TheLonelyDev . It will tell you the overall\\nGE and HA price of each tab of your bank.
\\n
\\nThe ground items plugin now supports quickly hiding and highlighting items.\\nThanks to @sethtroll .
\\n
\\nA herbiboar plugin has been added from\\n@Perterter . It highlights the starting rocks,\\ntrail, and the two objects to search at the end of each trail.
\\n
\\nAn item price plugin has been added, from\\n@ChaoticConundrum , which shows the price\\nof items when hovered over in the bank.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nGround items now support wildcards in both hidden and highlighted fields, so for example *bone*
\\nwill hide/highlight all bones \\nThe boosted stats plugin now shows time until next change \\nThe agility plugin allows configuring of the hitbox overlay color \\nGame menus options are no longer left broken when moving regions with the menu\\noption \\nAttack style plugin now hides attack styles better \\nFixed Kourend library plugin, which was broken last release \\nShow glory location in POH plugin \\nCommon cannon placement spots have been added to the cannon plugin \\nRemaining XP to level has been added to the hiscore panel \\nRemoved background from the prayer flick overlay, which made the quick prayers\\n toggle hard to see \\nAdded godwars altar timer \\nSuperior slayer notifications have been added to the slayer plugin \\nThe slayer plugin infobox (with your current task) now has a configurable\\ntimeout \\nThe time until levelup has been added to the xp tracker panel \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 16 contributors this release!
\\nAdam (26):\\n runelite-mixins: add null checks in region mixin\\n Bump for 1.3.0.1-SNAPSHOT\\n runelite-mixins: add null checks in region mixin\\n boosts plugin: show time to next change\\n ground items: add support for wildcards\\n ge plugin: move item composition and image calls off of awt thread\\n runescape-client: export updateNote\\n runescape-client: fix sprite originalWidth<->width and export fields for loading sprites\\n cache: add provider interfaces for items, models, sprites, and textures\\n cache: add updateNote to ItemDefinition\\n cache: fix not invalidating vertexNormals in reset\\n cache: expand on texture definition and loader\\n cache: store original pixels and palette too, and add normalize()\\n cache: add resize, recolor, and retexture to modeldefinirtion\\n cache: add item sprite renderer\\n cache controller: expose item sprites\\n examine service: correct type column enum\\n item manager: add batch item price lookup\\n Hook to actor health being updated to detect death\\n gitignore: add eclipse files\\n runelite-api: move getConvexHull to Model\\n runelite-api: add getConvexHull to Actor\\n Add npc menu options to MenuManager\\n devtools: remove double npc transform call\\n utils: add wildcard matcher from grounditems\\n runelite-client: add npc highlight plugin\\n\\nCas (1):\\n Agility plugin: Agility configuration with Select Color\\n\\nCharlie Waters (6):\\n Add items to item stats plugin: spinach roll, lava eel, sandwich lady items, jangerberries\\n Fix bug with rendering more than two tooltips following mouse\\n Add TooltipManager method to add tooltip to front of list, and always add mouse highlight tooltip to front\\n Add item prices plugin for item price/value tooltips\\n Add FocusChanged event from runescape client\\n Fix Groud Items plugin Alt+Tab bug by hooking FocusChanged event\\n\\nDennis (10):\\n restore menu entries after open/close widget\\n fix prayer order resetting after teleporting to a new area\\n injector: checkcast return values from replaced methods\\n runescape-client: export animation related symbols\\n runelite-api: expose dragging widget fields\\n runelite-api: add event for dragging widget\\n runelite-api: add widget open event\\n runelite-mixins: add null check for widget group in getGroup()\\n runelite-api: add widget config\\n runelite-client: add prayer reordering plugin\\n\\nDreyri (2):\\n Broadcast widget hidden changed recursively for each child too\\n Use isLocalHidden in attack indicator plugin\\n\\nJeremy Plsek (4):\\n http-api: add batch lookup to ItemClient\\n stack formatter: support larger stack sizes\\n bank item query: only search items in current tab\\n Add bank value plugin\\n\\nKamiel (1):\\n Add progress pie type overlay\\n\\nMax Weber (5):\\n kourendlibrary: Fix NPE while loading\\n kourendlibrary: Use correct coordinate conversion\\n jarvis: allow null points\\n Add JShadowedLabel\\n Change colors in XPInfoPanel to be brighter\\n\\nSeth (9):\\n poh plugin: change gameobject map to tile object\\n pog plugin: fix mounted glory minimap icon\\n cannon plugin: add common cannon spots\\n ground items: add support for quickly hiding/highlighting items\\n hiscore panel: make hiscores type more visible\\n hiscore panel: add Remaining XP to next level to hover text\\n hiscore panel: add loading label when searching\\n menu entry swapper: add bury swap\\n prayer flick overlay: remove background arc\\n\\nTomas Slusny (24):\\n Extract utlity methods to SwingUtil class\\n Remove the need to extend JFrame in ClientUI\\n Make plugins work with new ClientUI\\n Remove need to extend JToolBar in PluginToolbar\\n Make plugins work with the new PluginToolbar\\n Remove the need for custom TitleToolbar component\\n Make plugins work with new title toolbar\\n Add Discord button through DiscordPlugin\\n Add support for popups to navigation button\\n Change panel supplier to just getter for panel\\n Consistent behaviour between ClientUI and InfoPane\\n Set correct offsets to overlays, smaller panels\\n Reposition instance map correctly in resizeable\\n Use backgroundComponent for drawing border of map\\n Lower default width of the PanelComponent\\n Fix herbiboar plugin NPE on startup\\n Fix AgilityPlugin naming conventions\\n Fix Herbiboar plugin naming conventions\\n Correctly name Herbiboar classes\\n Remove unused variables in Herbiboar plugin\\n Fix ClientUI settings loading\\n Click the navigation button on selecting in\\n Fix tooltip modicon OutOfBounds\\n Do not display stack in price tooltips\\n\\nToocanzs (1):\\n Add God Wars Altar Timer\\n\\nTyler Hardy (4):\\n Add herbiboar varbits\\n Add herbiboar plugin\\n Move region check to loading\\n Fix improper varbit for trail 31372\\n\\nXavier Bergeron (1):\\n Add slayer superior foe notification\\n\\nXrioBtw (1):\\n Fix net and harpoon swap for all fishing spots\\n\\njoshpfox (1):\\n configurable slayer infobox expiry timer\\n\\nnvisser (1):\\n Add time till next level to xptracker\\n
\\n\",\"image\":\"/img/blog/1.3.1-Release/prayer-reorder.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-03-22-00-00-1.3.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,iEAAiE,OAAS,OAAO,KAAO,qzQAAo3Q,MAAQ","file":"static/js/32.9c94a8c2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.1 Release\",\"description\":\"Prayer reordering, bank price evaluation, and NPC highlighting\",\"author\":\"Adam\",\"body\":\"A prayer reordering plugin has been added which lets you reorder the prayers in\\nyour prayer book. Big thanks to @devdennis for\\nthe excellent work on making this possible;
\\n
\\n@McSwindler contributed a NPC highlight plugin\\nwhich lets you tag npcs, and also configure a list of npcs which are\\nhighlighted.
\\n
\\nA bank evaluator has been added, which is a combination of effort from myself,\\n@jplsek , and\\n@TheLonelyDev . It will tell you the overall\\nGE and HA price of each tab of your bank.
\\n
\\nThe ground items plugin now supports quickly hiding and highlighting items.\\nThanks to @sethtroll .
\\n
\\nA herbiboar plugin has been added from\\n@Perterter . It highlights the starting rocks,\\ntrail, and the two objects to search at the end of each trail.
\\n
\\nAn item price plugin has been added, from\\n@ChaoticConundrum , which shows the price\\nof items when hovered over in the bank.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nGround items now support wildcards in both hidden and highlighted fields, so for example *bone*
\\nwill hide/highlight all bones \\nThe boosted stats plugin now shows time until next change \\nThe agility plugin allows configuring of the hitbox overlay color \\nGame menus options are no longer left broken when moving regions with the menu\\noption \\nAttack style plugin now hides attack styles better \\nFixed Kourend library plugin, which was broken last release \\nShow glory location in POH plugin \\nCommon cannon placement spots have been added to the cannon plugin \\nRemaining XP to level has been added to the hiscore panel \\nRemoved background from the prayer flick overlay, which made the quick prayers\\n toggle hard to see \\nAdded godwars altar timer \\nSuperior slayer notifications have been added to the slayer plugin \\nThe slayer plugin infobox (with your current task) now has a configurable\\ntimeout \\nThe time until levelup has been added to the xp tracker panel \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 16 contributors this release!
\\nAdam (26):\\n runelite-mixins: add null checks in region mixin\\n Bump for 1.3.0.1-SNAPSHOT\\n runelite-mixins: add null checks in region mixin\\n boosts plugin: show time to next change\\n ground items: add support for wildcards\\n ge plugin: move item composition and image calls off of awt thread\\n runescape-client: export updateNote\\n runescape-client: fix sprite originalWidth<->width and export fields for loading sprites\\n cache: add provider interfaces for items, models, sprites, and textures\\n cache: add updateNote to ItemDefinition\\n cache: fix not invalidating vertexNormals in reset\\n cache: expand on texture definition and loader\\n cache: store original pixels and palette too, and add normalize()\\n cache: add resize, recolor, and retexture to modeldefinirtion\\n cache: add item sprite renderer\\n cache controller: expose item sprites\\n examine service: correct type column enum\\n item manager: add batch item price lookup\\n Hook to actor health being updated to detect death\\n gitignore: add eclipse files\\n runelite-api: move getConvexHull to Model\\n runelite-api: add getConvexHull to Actor\\n Add npc menu options to MenuManager\\n devtools: remove double npc transform call\\n utils: add wildcard matcher from grounditems\\n runelite-client: add npc highlight plugin\\n\\nCas (1):\\n Agility plugin: Agility configuration with Select Color\\n\\nCharlie Waters (6):\\n Add items to item stats plugin: spinach roll, lava eel, sandwich lady items, jangerberries\\n Fix bug with rendering more than two tooltips following mouse\\n Add TooltipManager method to add tooltip to front of list, and always add mouse highlight tooltip to front\\n Add item prices plugin for item price/value tooltips\\n Add FocusChanged event from runescape client\\n Fix Groud Items plugin Alt+Tab bug by hooking FocusChanged event\\n\\nDennis (10):\\n restore menu entries after open/close widget\\n fix prayer order resetting after teleporting to a new area\\n injector: checkcast return values from replaced methods\\n runescape-client: export animation related symbols\\n runelite-api: expose dragging widget fields\\n runelite-api: add event for dragging widget\\n runelite-api: add widget open event\\n runelite-mixins: add null check for widget group in getGroup()\\n runelite-api: add widget config\\n runelite-client: add prayer reordering plugin\\n\\nDreyri (2):\\n Broadcast widget hidden changed recursively for each child too\\n Use isLocalHidden in attack indicator plugin\\n\\nJeremy Plsek (4):\\n http-api: add batch lookup to ItemClient\\n stack formatter: support larger stack sizes\\n bank item query: only search items in current tab\\n Add bank value plugin\\n\\nKamiel (1):\\n Add progress pie type overlay\\n\\nMax Weber (5):\\n kourendlibrary: Fix NPE while loading\\n kourendlibrary: Use correct coordinate conversion\\n jarvis: allow null points\\n Add JShadowedLabel\\n Change colors in XPInfoPanel to be brighter\\n\\nSeth (9):\\n poh plugin: change gameobject map to tile object\\n pog plugin: fix mounted glory minimap icon\\n cannon plugin: add common cannon spots\\n ground items: add support for quickly hiding/highlighting items\\n hiscore panel: make hiscores type more visible\\n hiscore panel: add Remaining XP to next level to hover text\\n hiscore panel: add loading label when searching\\n menu entry swapper: add bury swap\\n prayer flick overlay: remove background arc\\n\\nTomas Slusny (24):\\n Extract utlity methods to SwingUtil class\\n Remove the need to extend JFrame in ClientUI\\n Make plugins work with new ClientUI\\n Remove need to extend JToolBar in PluginToolbar\\n Make plugins work with the new PluginToolbar\\n Remove the need for custom TitleToolbar component\\n Make plugins work with new title toolbar\\n Add Discord button through DiscordPlugin\\n Add support for popups to navigation button\\n Change panel supplier to just getter for panel\\n Consistent behaviour between ClientUI and InfoPane\\n Set correct offsets to overlays, smaller panels\\n Reposition instance map correctly in resizeable\\n Use backgroundComponent for drawing border of map\\n Lower default width of the PanelComponent\\n Fix herbiboar plugin NPE on startup\\n Fix AgilityPlugin naming conventions\\n Fix Herbiboar plugin naming conventions\\n Correctly name Herbiboar classes\\n Remove unused variables in Herbiboar plugin\\n Fix ClientUI settings loading\\n Click the navigation button on selecting in\\n Fix tooltip modicon OutOfBounds\\n Do not display stack in price tooltips\\n\\nToocanzs (1):\\n Add God Wars Altar Timer\\n\\nTyler Hardy (4):\\n Add herbiboar varbits\\n Add herbiboar plugin\\n Move region check to loading\\n Fix improper varbit for trail 31372\\n\\nXavier Bergeron (1):\\n Add slayer superior foe notification\\n\\nXrioBtw (1):\\n Fix net and harpoon swap for all fishing spots\\n\\njoshpfox (1):\\n configurable slayer infobox expiry timer\\n\\nnvisser (1):\\n Add time till next level to xptracker\\n
\\n\",\"image\":\"/img/blog/1.3.1-Release/prayer-reorder.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/33.974f0cec.chunk.js b/static/js/33.4bc5dbd3.chunk.js
similarity index 98%
rename from static/js/33.974f0cec.chunk.js
rename to static/js/33.4bc5dbd3.chunk.js
index f158afe73..fabe9c2a4 100644
--- a/static/js/33.974f0cec.chunk.js
+++ b/static/js/33.4bc5dbd3.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[33],{308:function(e,n){e.exports={title:"1.3.2 Release",description:"Movable overlays, revamped clue scoll plugin, and tithe farm plugin",author:"Adam",body:'Movable overlay support is finally here! This allows you to move any RuneLite\nOverlay to any position on the screen. Hold alt to do so. There are 4 (or 5 on\nresizable) "snap corners" provided where, if you move an overlay to a snap\ncorner, the client will dynamically place the overlay to not draw on top of\nother overlays. Thanks to @deathbeam for this\nfeature.
\n
\nThe clue scroll plugin has been rewritten, and now supports all clue types.\nThanks to @devLotto for their work on this.
\n \n
\nA tithe farm plugin was added by @Unmoon , which tracks plant growth stages and state.
\n
\nThe agility plugin now has an additional lap counter overlay by @sethtroll :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe instance map plugin maps now look the same as the ingame minimap \nMouse tooltips were moved to the bottom right corner of the mouse, and are now\nhidden when the game has a tooltip open. \nFixed slayer points and streak being lost on restart \nA kingdom of Miscellania plugin has been added to show you your support, and\noptionally warn if it is unpopular \nThe raids points interface has been replaced with an overlay that also\nincludes party size. As with the other overlays, this is now movable. \nAntipoison and superantipoision were added to the timers plugin \nAdd holy wrench effect to itemstats plugin \nSort infoboxes by plugin and priority \nAdd Silver sickle(b) to menu swapper plugin \nExpand list of skill abbreviations for the !lvl command \nAdd spicey stew to item stats plugin \nAdd cave horror cannon spot \nFix lizardmen cannon spot \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (14):\n config manager: check for invalid keynames in loadFromFile\n config manager: add get and set configuration methods for objects\n Add movable overlay support\n travis: remove oracle-java8-installer as it broke and use the oraclejdk travis ships, which is new enough now\n feed plugin: make scheduled method public\n wsservice: remove sessions on close or error\n instance map plugin: rewrite to use client minimap code\n runescape-client: export varc related classes/fields\n Add varc api accessors, and tooltip varclient\n mouse highlight plugin: hide tooltips when the client is showing tooltips\n xp globes: move expire check to a scheduled method\n cluescroll overlay: set priority to low\n agility lap overlay: set priority to low\n slayer plugin: load points and streak on login and startup\n\nCharlie Waters (2):\n Fix clue scroll plugin game object query for world overlay\n Fix some clue solutions\n\nInfinitay (4):\n Added Kingdom of Miscellania plugin\n Added daily task indicators plugin\n Fixed checkCanCollectEssence method\n Disabled plugin by default - Hopefully will encourage users seeking this feature to configure it to their liking. For example, if ironman, disable herb box.\n\nJoshua Filby (50):\n refactor: rename widgetSettings to clientVarps\n refactor: rename settings to serverVarps\n refactor: remove unnecessary Client#getSettings(), use Client#getVarps()\n fix: hook clientVarps instead of settings\n refactor: rename get/set settings to get/set varp\n refactor(widget): rename method4463 to decodeListener\n refactor(widget): rename method4464 to decodeTransmitList\n refactor(widget): rename field2898 to onLoadListener\n refactor(widget): rename mouseEnterListener to onMouseOverListener\n refactor(widget): rename mouseExitListener to onMouseLeaveListener\n refactor(widget): rename field2807 to onTargetLeaveListener\n refactor(widget): rename field2908 to onTargetEnterListener\n refactor(widget): rename configListenerArgs to onVarTransmitListener\n refactor(widget): rename tableListenerArgs to onInvTransmitListener\n refactor(widget): rename skillListenerArgs to onStatTransmitListener\n refactor(widget): rename renderListener to onTimerListener\n refactor(widget): rename field2917 to onOpListener\n refactor(widget): rename mouseHoverListener to onMouseRepeatListener\n refactor(widget): rename field2899 to onClickListener\n refactor(widget): rename field2900 to onClickRepeatListener\n refactor(widget): rename field2901 to onReleaseListener\n refactor(widget): rename field2902 to onHoldListener\n refactor(widget): rename field2906 to onDragListener\n refactor(widget): rename field2907 to onDragCompleteListener\n refactor(widget): rename scrollListener to onScrollWheelListener\n refactor(widget): rename configTriggers to varTransmitTriggers\n refactor(widget): rename tableModTriggers to invTransmitTriggers\n refactor(widget): rename skillTriggers to statTransmitTriggers\n refactor(widget): rename selectedAction to targetVerb\n refactor(widget): rename field2895 to dragRenderBehavior\n refactor(widget): rename field2894 to dragDeadTime\n refactor(widget): rename field2817 to dragDeadZone\n refactor(widget): rename config to clickMask\n refactor(widget): rename name to opBase\n refactor(widget): rename field2866 to offsetX2d\n refactor(widget): rename field2867 to offsetY2d\n refactor(widget): rename field2919 to onChatTransmitListener\n refactor(widget): rename field2920 to onKeyListener\n refactor(widget): rename field2921 to onFriendTransmitListener\n refactor(widget): rename field2922 to onClanTransmitListener\n refactor(widget): rename field2923 to onMiscTransmitListener\n refactor(widget): rename field2924 to onDialogAbortListener\n refactor(widget): rename field2925 to onSubChangeListener\n refactor(widget): rename field2873 to onStockTransmitListener\n refactor(widget): rename field2820 to onCamFinishedListener\n refactor(widget): rename field2926 to onResizeListener\n refactor(widget): rename mouseActionsPresent to hasListener\n refactor(widget): rename field2951 to noScrollThrough\n fix: import correct field for click masks\n fix: import correct field for op base\n\nKamiel (6):\n Item price tooltip: use linebreak instead of comma\n Fix ranging potion showing invalid boost value\n Ground items: Only consume mouse clicks when a checkbox has been clicked\n Show remaining time on successful hunter traps\n Add raid party size varbit\n Replace raids points widget with custom overlay\n\nLotto (9):\n runelite-api: make InventoryItemQuery take in InventoryID\n runelite-api: add emote window widget info\n runelite-client: pass in z offset into renderActorOverlayImage\n runelite-client: extend overlay util to render Areas and LocalPoint\n runelite-client: add line wrapping to PanelComponent lines\n runelite-api: add sprite ids class\n runelite-client: add resource images to clue scroll plugin\n runelite-client: revamp clue scroll plugin\n runelite-client: remove old clue scroll enums\n\nLyn Levenick (2):\n Add notifications for NMZ power-up spawns\n Fix tray icon crash when clicked quickly on start\n\nMax Weber (10):\n itemstats: Support holy wrench effect\n configmanager: synchronize disk access\n itemstats: use EnergyStat instead of anonymous stat\n menumanager: Actually remove menu options\n injector: Allow <clinit> an <init> injection with multiple mixins on the same class\n deob: Always use / delimters in pool.Class\n injector: Allow assertions to be used in mixins\n mixins: Use assert in scriptvm\n runelite-client: Add ClientThread to aid in synchronizing with the client\n Ensure createItemSprite is called on the game thread\n\nSeth (4):\n info boxes: associate plugins to infoboxes\n info boxes: sort boxes by priority\n jewelrycharges: Add Teleport crystal(5)\n agility plugin: Add lap counter\n\nShaunDreclin (1):\n Add Silver sickle(b) to menu entry swapper plugin.\n\nSoyChai (4):\n Expand list of skill abbreviations for the !Lvl command\n Expand tests for and document the Experience API\n Add spicy stews to item stats plugin\n Extra documentation for the Stat and StatChange classes\n\nTomas Slusny (18):\n Add Cave Horror cannon spot\n Fix Lizardmen cannon spot plane\n Add support for points to ConfigManager\n Add support for getting real canvas dimensions\n Calculate overlay bounds also for dynamic overlays\n Create translated copy of OverlayBounds\n Improve caching of game-related variables\n Change multiple overlay lists to map\n Instance map improvements + moving\n Make unsetConfiguration non-blocking\n Disable overlay dragging mode on focus lost\n Remove not needed parent point and minimap orb\n Move tooltip to the right-bottom of the mouse\n Add null-check for overlays in OverlayRenderer\n Add getCanvasOffset to clientUI, fix screenshots\n Add formatNumber methods to StackFormatter\n Expand panels based on click event not isSelected\n Add null-check for Client to MenuManager\n\nUnmoon (1):\n Add Tithe Farm plugin\n\njamesahhh (1):\n Add antipoison and superantipoison timers (#1159)\n\nrune3132 (1):\n Additions to Jewellery count plugin\n
\n',image:"/img/blog/1.3.2-Release/overlays.gif"}}}]);
-//# sourceMappingURL=33.974f0cec.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[33],{309:function(e,n){e.exports={title:"1.3.2 Release",description:"Movable overlays, revamped clue scoll plugin, and tithe farm plugin",author:"Adam",body:'Movable overlay support is finally here! This allows you to move any RuneLite\nOverlay to any position on the screen. Hold alt to do so. There are 4 (or 5 on\nresizable) "snap corners" provided where, if you move an overlay to a snap\ncorner, the client will dynamically place the overlay to not draw on top of\nother overlays. Thanks to @deathbeam for this\nfeature.
\n
\nThe clue scroll plugin has been rewritten, and now supports all clue types.\nThanks to @devLotto for their work on this.
\n \n
\nA tithe farm plugin was added by @Unmoon , which tracks plant growth stages and state.
\n
\nThe agility plugin now has an additional lap counter overlay by @sethtroll :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe instance map plugin maps now look the same as the ingame minimap \nMouse tooltips were moved to the bottom right corner of the mouse, and are now\nhidden when the game has a tooltip open. \nFixed slayer points and streak being lost on restart \nA kingdom of Miscellania plugin has been added to show you your support, and\noptionally warn if it is unpopular \nThe raids points interface has been replaced with an overlay that also\nincludes party size. As with the other overlays, this is now movable. \nAntipoison and superantipoision were added to the timers plugin \nAdd holy wrench effect to itemstats plugin \nSort infoboxes by plugin and priority \nAdd Silver sickle(b) to menu swapper plugin \nExpand list of skill abbreviations for the !lvl command \nAdd spicey stew to item stats plugin \nAdd cave horror cannon spot \nFix lizardmen cannon spot \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (14):\n config manager: check for invalid keynames in loadFromFile\n config manager: add get and set configuration methods for objects\n Add movable overlay support\n travis: remove oracle-java8-installer as it broke and use the oraclejdk travis ships, which is new enough now\n feed plugin: make scheduled method public\n wsservice: remove sessions on close or error\n instance map plugin: rewrite to use client minimap code\n runescape-client: export varc related classes/fields\n Add varc api accessors, and tooltip varclient\n mouse highlight plugin: hide tooltips when the client is showing tooltips\n xp globes: move expire check to a scheduled method\n cluescroll overlay: set priority to low\n agility lap overlay: set priority to low\n slayer plugin: load points and streak on login and startup\n\nCharlie Waters (2):\n Fix clue scroll plugin game object query for world overlay\n Fix some clue solutions\n\nInfinitay (4):\n Added Kingdom of Miscellania plugin\n Added daily task indicators plugin\n Fixed checkCanCollectEssence method\n Disabled plugin by default - Hopefully will encourage users seeking this feature to configure it to their liking. For example, if ironman, disable herb box.\n\nJoshua Filby (50):\n refactor: rename widgetSettings to clientVarps\n refactor: rename settings to serverVarps\n refactor: remove unnecessary Client#getSettings(), use Client#getVarps()\n fix: hook clientVarps instead of settings\n refactor: rename get/set settings to get/set varp\n refactor(widget): rename method4463 to decodeListener\n refactor(widget): rename method4464 to decodeTransmitList\n refactor(widget): rename field2898 to onLoadListener\n refactor(widget): rename mouseEnterListener to onMouseOverListener\n refactor(widget): rename mouseExitListener to onMouseLeaveListener\n refactor(widget): rename field2807 to onTargetLeaveListener\n refactor(widget): rename field2908 to onTargetEnterListener\n refactor(widget): rename configListenerArgs to onVarTransmitListener\n refactor(widget): rename tableListenerArgs to onInvTransmitListener\n refactor(widget): rename skillListenerArgs to onStatTransmitListener\n refactor(widget): rename renderListener to onTimerListener\n refactor(widget): rename field2917 to onOpListener\n refactor(widget): rename mouseHoverListener to onMouseRepeatListener\n refactor(widget): rename field2899 to onClickListener\n refactor(widget): rename field2900 to onClickRepeatListener\n refactor(widget): rename field2901 to onReleaseListener\n refactor(widget): rename field2902 to onHoldListener\n refactor(widget): rename field2906 to onDragListener\n refactor(widget): rename field2907 to onDragCompleteListener\n refactor(widget): rename scrollListener to onScrollWheelListener\n refactor(widget): rename configTriggers to varTransmitTriggers\n refactor(widget): rename tableModTriggers to invTransmitTriggers\n refactor(widget): rename skillTriggers to statTransmitTriggers\n refactor(widget): rename selectedAction to targetVerb\n refactor(widget): rename field2895 to dragRenderBehavior\n refactor(widget): rename field2894 to dragDeadTime\n refactor(widget): rename field2817 to dragDeadZone\n refactor(widget): rename config to clickMask\n refactor(widget): rename name to opBase\n refactor(widget): rename field2866 to offsetX2d\n refactor(widget): rename field2867 to offsetY2d\n refactor(widget): rename field2919 to onChatTransmitListener\n refactor(widget): rename field2920 to onKeyListener\n refactor(widget): rename field2921 to onFriendTransmitListener\n refactor(widget): rename field2922 to onClanTransmitListener\n refactor(widget): rename field2923 to onMiscTransmitListener\n refactor(widget): rename field2924 to onDialogAbortListener\n refactor(widget): rename field2925 to onSubChangeListener\n refactor(widget): rename field2873 to onStockTransmitListener\n refactor(widget): rename field2820 to onCamFinishedListener\n refactor(widget): rename field2926 to onResizeListener\n refactor(widget): rename mouseActionsPresent to hasListener\n refactor(widget): rename field2951 to noScrollThrough\n fix: import correct field for click masks\n fix: import correct field for op base\n\nKamiel (6):\n Item price tooltip: use linebreak instead of comma\n Fix ranging potion showing invalid boost value\n Ground items: Only consume mouse clicks when a checkbox has been clicked\n Show remaining time on successful hunter traps\n Add raid party size varbit\n Replace raids points widget with custom overlay\n\nLotto (9):\n runelite-api: make InventoryItemQuery take in InventoryID\n runelite-api: add emote window widget info\n runelite-client: pass in z offset into renderActorOverlayImage\n runelite-client: extend overlay util to render Areas and LocalPoint\n runelite-client: add line wrapping to PanelComponent lines\n runelite-api: add sprite ids class\n runelite-client: add resource images to clue scroll plugin\n runelite-client: revamp clue scroll plugin\n runelite-client: remove old clue scroll enums\n\nLyn Levenick (2):\n Add notifications for NMZ power-up spawns\n Fix tray icon crash when clicked quickly on start\n\nMax Weber (10):\n itemstats: Support holy wrench effect\n configmanager: synchronize disk access\n itemstats: use EnergyStat instead of anonymous stat\n menumanager: Actually remove menu options\n injector: Allow <clinit> an <init> injection with multiple mixins on the same class\n deob: Always use / delimters in pool.Class\n injector: Allow assertions to be used in mixins\n mixins: Use assert in scriptvm\n runelite-client: Add ClientThread to aid in synchronizing with the client\n Ensure createItemSprite is called on the game thread\n\nSeth (4):\n info boxes: associate plugins to infoboxes\n info boxes: sort boxes by priority\n jewelrycharges: Add Teleport crystal(5)\n agility plugin: Add lap counter\n\nShaunDreclin (1):\n Add Silver sickle(b) to menu entry swapper plugin.\n\nSoyChai (4):\n Expand list of skill abbreviations for the !Lvl command\n Expand tests for and document the Experience API\n Add spicy stews to item stats plugin\n Extra documentation for the Stat and StatChange classes\n\nTomas Slusny (18):\n Add Cave Horror cannon spot\n Fix Lizardmen cannon spot plane\n Add support for points to ConfigManager\n Add support for getting real canvas dimensions\n Calculate overlay bounds also for dynamic overlays\n Create translated copy of OverlayBounds\n Improve caching of game-related variables\n Change multiple overlay lists to map\n Instance map improvements + moving\n Make unsetConfiguration non-blocking\n Disable overlay dragging mode on focus lost\n Remove not needed parent point and minimap orb\n Move tooltip to the right-bottom of the mouse\n Add null-check for overlays in OverlayRenderer\n Add getCanvasOffset to clientUI, fix screenshots\n Add formatNumber methods to StackFormatter\n Expand panels based on click event not isSelected\n Add null-check for Client to MenuManager\n\nUnmoon (1):\n Add Tithe Farm plugin\n\njamesahhh (1):\n Add antipoison and superantipoison timers (#1159)\n\nrune3132 (1):\n Additions to Jewellery count plugin\n
\n',image:"/img/blog/1.3.2-Release/overlays.gif"}}}]);
+//# sourceMappingURL=33.4bc5dbd3.chunk.js.map
\ No newline at end of file
diff --git a/static/js/33.974f0cec.chunk.js.map b/static/js/33.4bc5dbd3.chunk.js.map
similarity index 99%
rename from static/js/33.974f0cec.chunk.js.map
rename to static/js/33.4bc5dbd3.chunk.js.map
index f200b493b..ade071929 100644
--- a/static/js/33.974f0cec.chunk.js.map
+++ b/static/js/33.4bc5dbd3.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-03-29-00-00-1.3.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sEAAsE,OAAS,OAAO,KAAO,8+TAA0hU,MAAQ","file":"static/js/33.974f0cec.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.2 Release\",\"description\":\"Movable overlays, revamped clue scoll plugin, and tithe farm plugin\",\"author\":\"Adam\",\"body\":\"Movable overlay support is finally here! This allows you to move any RuneLite\\nOverlay to any position on the screen. Hold alt to do so. There are 4 (or 5 on\\nresizable) "snap corners" provided where, if you move an overlay to a snap\\ncorner, the client will dynamically place the overlay to not draw on top of\\nother overlays. Thanks to @deathbeam for this\\nfeature.
\\n
\\nThe clue scroll plugin has been rewritten, and now supports all clue types.\\nThanks to @devLotto for their work on this.
\\n \\n
\\nA tithe farm plugin was added by @Unmoon , which tracks plant growth stages and state.
\\n
\\nThe agility plugin now has an additional lap counter overlay by @sethtroll :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe instance map plugin maps now look the same as the ingame minimap \\nMouse tooltips were moved to the bottom right corner of the mouse, and are now\\nhidden when the game has a tooltip open. \\nFixed slayer points and streak being lost on restart \\nA kingdom of Miscellania plugin has been added to show you your support, and\\noptionally warn if it is unpopular \\nThe raids points interface has been replaced with an overlay that also\\nincludes party size. As with the other overlays, this is now movable. \\nAntipoison and superantipoision were added to the timers plugin \\nAdd holy wrench effect to itemstats plugin \\nSort infoboxes by plugin and priority \\nAdd Silver sickle(b) to menu swapper plugin \\nExpand list of skill abbreviations for the !lvl command \\nAdd spicey stew to item stats plugin \\nAdd cave horror cannon spot \\nFix lizardmen cannon spot \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (14):\\n config manager: check for invalid keynames in loadFromFile\\n config manager: add get and set configuration methods for objects\\n Add movable overlay support\\n travis: remove oracle-java8-installer as it broke and use the oraclejdk travis ships, which is new enough now\\n feed plugin: make scheduled method public\\n wsservice: remove sessions on close or error\\n instance map plugin: rewrite to use client minimap code\\n runescape-client: export varc related classes/fields\\n Add varc api accessors, and tooltip varclient\\n mouse highlight plugin: hide tooltips when the client is showing tooltips\\n xp globes: move expire check to a scheduled method\\n cluescroll overlay: set priority to low\\n agility lap overlay: set priority to low\\n slayer plugin: load points and streak on login and startup\\n\\nCharlie Waters (2):\\n Fix clue scroll plugin game object query for world overlay\\n Fix some clue solutions\\n\\nInfinitay (4):\\n Added Kingdom of Miscellania plugin\\n Added daily task indicators plugin\\n Fixed checkCanCollectEssence method\\n Disabled plugin by default - Hopefully will encourage users seeking this feature to configure it to their liking. For example, if ironman, disable herb box.\\n\\nJoshua Filby (50):\\n refactor: rename widgetSettings to clientVarps\\n refactor: rename settings to serverVarps\\n refactor: remove unnecessary Client#getSettings(), use Client#getVarps()\\n fix: hook clientVarps instead of settings\\n refactor: rename get/set settings to get/set varp\\n refactor(widget): rename method4463 to decodeListener\\n refactor(widget): rename method4464 to decodeTransmitList\\n refactor(widget): rename field2898 to onLoadListener\\n refactor(widget): rename mouseEnterListener to onMouseOverListener\\n refactor(widget): rename mouseExitListener to onMouseLeaveListener\\n refactor(widget): rename field2807 to onTargetLeaveListener\\n refactor(widget): rename field2908 to onTargetEnterListener\\n refactor(widget): rename configListenerArgs to onVarTransmitListener\\n refactor(widget): rename tableListenerArgs to onInvTransmitListener\\n refactor(widget): rename skillListenerArgs to onStatTransmitListener\\n refactor(widget): rename renderListener to onTimerListener\\n refactor(widget): rename field2917 to onOpListener\\n refactor(widget): rename mouseHoverListener to onMouseRepeatListener\\n refactor(widget): rename field2899 to onClickListener\\n refactor(widget): rename field2900 to onClickRepeatListener\\n refactor(widget): rename field2901 to onReleaseListener\\n refactor(widget): rename field2902 to onHoldListener\\n refactor(widget): rename field2906 to onDragListener\\n refactor(widget): rename field2907 to onDragCompleteListener\\n refactor(widget): rename scrollListener to onScrollWheelListener\\n refactor(widget): rename configTriggers to varTransmitTriggers\\n refactor(widget): rename tableModTriggers to invTransmitTriggers\\n refactor(widget): rename skillTriggers to statTransmitTriggers\\n refactor(widget): rename selectedAction to targetVerb\\n refactor(widget): rename field2895 to dragRenderBehavior\\n refactor(widget): rename field2894 to dragDeadTime\\n refactor(widget): rename field2817 to dragDeadZone\\n refactor(widget): rename config to clickMask\\n refactor(widget): rename name to opBase\\n refactor(widget): rename field2866 to offsetX2d\\n refactor(widget): rename field2867 to offsetY2d\\n refactor(widget): rename field2919 to onChatTransmitListener\\n refactor(widget): rename field2920 to onKeyListener\\n refactor(widget): rename field2921 to onFriendTransmitListener\\n refactor(widget): rename field2922 to onClanTransmitListener\\n refactor(widget): rename field2923 to onMiscTransmitListener\\n refactor(widget): rename field2924 to onDialogAbortListener\\n refactor(widget): rename field2925 to onSubChangeListener\\n refactor(widget): rename field2873 to onStockTransmitListener\\n refactor(widget): rename field2820 to onCamFinishedListener\\n refactor(widget): rename field2926 to onResizeListener\\n refactor(widget): rename mouseActionsPresent to hasListener\\n refactor(widget): rename field2951 to noScrollThrough\\n fix: import correct field for click masks\\n fix: import correct field for op base\\n\\nKamiel (6):\\n Item price tooltip: use linebreak instead of comma\\n Fix ranging potion showing invalid boost value\\n Ground items: Only consume mouse clicks when a checkbox has been clicked\\n Show remaining time on successful hunter traps\\n Add raid party size varbit\\n Replace raids points widget with custom overlay\\n\\nLotto (9):\\n runelite-api: make InventoryItemQuery take in InventoryID\\n runelite-api: add emote window widget info\\n runelite-client: pass in z offset into renderActorOverlayImage\\n runelite-client: extend overlay util to render Areas and LocalPoint\\n runelite-client: add line wrapping to PanelComponent lines\\n runelite-api: add sprite ids class\\n runelite-client: add resource images to clue scroll plugin\\n runelite-client: revamp clue scroll plugin\\n runelite-client: remove old clue scroll enums\\n\\nLyn Levenick (2):\\n Add notifications for NMZ power-up spawns\\n Fix tray icon crash when clicked quickly on start\\n\\nMax Weber (10):\\n itemstats: Support holy wrench effect\\n configmanager: synchronize disk access\\n itemstats: use EnergyStat instead of anonymous stat\\n menumanager: Actually remove menu options\\n injector: Allow <clinit> an <init> injection with multiple mixins on the same class\\n deob: Always use / delimters in pool.Class\\n injector: Allow assertions to be used in mixins\\n mixins: Use assert in scriptvm\\n runelite-client: Add ClientThread to aid in synchronizing with the client\\n Ensure createItemSprite is called on the game thread\\n\\nSeth (4):\\n info boxes: associate plugins to infoboxes\\n info boxes: sort boxes by priority\\n jewelrycharges: Add Teleport crystal(5)\\n agility plugin: Add lap counter\\n\\nShaunDreclin (1):\\n Add Silver sickle(b) to menu entry swapper plugin.\\n\\nSoyChai (4):\\n Expand list of skill abbreviations for the !Lvl command\\n Expand tests for and document the Experience API\\n Add spicy stews to item stats plugin\\n Extra documentation for the Stat and StatChange classes\\n\\nTomas Slusny (18):\\n Add Cave Horror cannon spot\\n Fix Lizardmen cannon spot plane\\n Add support for points to ConfigManager\\n Add support for getting real canvas dimensions\\n Calculate overlay bounds also for dynamic overlays\\n Create translated copy of OverlayBounds\\n Improve caching of game-related variables\\n Change multiple overlay lists to map\\n Instance map improvements + moving\\n Make unsetConfiguration non-blocking\\n Disable overlay dragging mode on focus lost\\n Remove not needed parent point and minimap orb\\n Move tooltip to the right-bottom of the mouse\\n Add null-check for overlays in OverlayRenderer\\n Add getCanvasOffset to clientUI, fix screenshots\\n Add formatNumber methods to StackFormatter\\n Expand panels based on click event not isSelected\\n Add null-check for Client to MenuManager\\n\\nUnmoon (1):\\n Add Tithe Farm plugin\\n\\njamesahhh (1):\\n Add antipoison and superantipoison timers (#1159)\\n\\nrune3132 (1):\\n Additions to Jewellery count plugin\\n
\\n\",\"image\":\"/img/blog/1.3.2-Release/overlays.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-03-29-00-00-1.3.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,sEAAsE,OAAS,OAAO,KAAO,8+TAA0hU,MAAQ","file":"static/js/33.4bc5dbd3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.2 Release\",\"description\":\"Movable overlays, revamped clue scoll plugin, and tithe farm plugin\",\"author\":\"Adam\",\"body\":\"Movable overlay support is finally here! This allows you to move any RuneLite\\nOverlay to any position on the screen. Hold alt to do so. There are 4 (or 5 on\\nresizable) "snap corners" provided where, if you move an overlay to a snap\\ncorner, the client will dynamically place the overlay to not draw on top of\\nother overlays. Thanks to @deathbeam for this\\nfeature.
\\n
\\nThe clue scroll plugin has been rewritten, and now supports all clue types.\\nThanks to @devLotto for their work on this.
\\n \\n
\\nA tithe farm plugin was added by @Unmoon , which tracks plant growth stages and state.
\\n
\\nThe agility plugin now has an additional lap counter overlay by @sethtroll :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe instance map plugin maps now look the same as the ingame minimap \\nMouse tooltips were moved to the bottom right corner of the mouse, and are now\\nhidden when the game has a tooltip open. \\nFixed slayer points and streak being lost on restart \\nA kingdom of Miscellania plugin has been added to show you your support, and\\noptionally warn if it is unpopular \\nThe raids points interface has been replaced with an overlay that also\\nincludes party size. As with the other overlays, this is now movable. \\nAntipoison and superantipoision were added to the timers plugin \\nAdd holy wrench effect to itemstats plugin \\nSort infoboxes by plugin and priority \\nAdd Silver sickle(b) to menu swapper plugin \\nExpand list of skill abbreviations for the !lvl command \\nAdd spicey stew to item stats plugin \\nAdd cave horror cannon spot \\nFix lizardmen cannon spot \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (14):\\n config manager: check for invalid keynames in loadFromFile\\n config manager: add get and set configuration methods for objects\\n Add movable overlay support\\n travis: remove oracle-java8-installer as it broke and use the oraclejdk travis ships, which is new enough now\\n feed plugin: make scheduled method public\\n wsservice: remove sessions on close or error\\n instance map plugin: rewrite to use client minimap code\\n runescape-client: export varc related classes/fields\\n Add varc api accessors, and tooltip varclient\\n mouse highlight plugin: hide tooltips when the client is showing tooltips\\n xp globes: move expire check to a scheduled method\\n cluescroll overlay: set priority to low\\n agility lap overlay: set priority to low\\n slayer plugin: load points and streak on login and startup\\n\\nCharlie Waters (2):\\n Fix clue scroll plugin game object query for world overlay\\n Fix some clue solutions\\n\\nInfinitay (4):\\n Added Kingdom of Miscellania plugin\\n Added daily task indicators plugin\\n Fixed checkCanCollectEssence method\\n Disabled plugin by default - Hopefully will encourage users seeking this feature to configure it to their liking. For example, if ironman, disable herb box.\\n\\nJoshua Filby (50):\\n refactor: rename widgetSettings to clientVarps\\n refactor: rename settings to serverVarps\\n refactor: remove unnecessary Client#getSettings(), use Client#getVarps()\\n fix: hook clientVarps instead of settings\\n refactor: rename get/set settings to get/set varp\\n refactor(widget): rename method4463 to decodeListener\\n refactor(widget): rename method4464 to decodeTransmitList\\n refactor(widget): rename field2898 to onLoadListener\\n refactor(widget): rename mouseEnterListener to onMouseOverListener\\n refactor(widget): rename mouseExitListener to onMouseLeaveListener\\n refactor(widget): rename field2807 to onTargetLeaveListener\\n refactor(widget): rename field2908 to onTargetEnterListener\\n refactor(widget): rename configListenerArgs to onVarTransmitListener\\n refactor(widget): rename tableListenerArgs to onInvTransmitListener\\n refactor(widget): rename skillListenerArgs to onStatTransmitListener\\n refactor(widget): rename renderListener to onTimerListener\\n refactor(widget): rename field2917 to onOpListener\\n refactor(widget): rename mouseHoverListener to onMouseRepeatListener\\n refactor(widget): rename field2899 to onClickListener\\n refactor(widget): rename field2900 to onClickRepeatListener\\n refactor(widget): rename field2901 to onReleaseListener\\n refactor(widget): rename field2902 to onHoldListener\\n refactor(widget): rename field2906 to onDragListener\\n refactor(widget): rename field2907 to onDragCompleteListener\\n refactor(widget): rename scrollListener to onScrollWheelListener\\n refactor(widget): rename configTriggers to varTransmitTriggers\\n refactor(widget): rename tableModTriggers to invTransmitTriggers\\n refactor(widget): rename skillTriggers to statTransmitTriggers\\n refactor(widget): rename selectedAction to targetVerb\\n refactor(widget): rename field2895 to dragRenderBehavior\\n refactor(widget): rename field2894 to dragDeadTime\\n refactor(widget): rename field2817 to dragDeadZone\\n refactor(widget): rename config to clickMask\\n refactor(widget): rename name to opBase\\n refactor(widget): rename field2866 to offsetX2d\\n refactor(widget): rename field2867 to offsetY2d\\n refactor(widget): rename field2919 to onChatTransmitListener\\n refactor(widget): rename field2920 to onKeyListener\\n refactor(widget): rename field2921 to onFriendTransmitListener\\n refactor(widget): rename field2922 to onClanTransmitListener\\n refactor(widget): rename field2923 to onMiscTransmitListener\\n refactor(widget): rename field2924 to onDialogAbortListener\\n refactor(widget): rename field2925 to onSubChangeListener\\n refactor(widget): rename field2873 to onStockTransmitListener\\n refactor(widget): rename field2820 to onCamFinishedListener\\n refactor(widget): rename field2926 to onResizeListener\\n refactor(widget): rename mouseActionsPresent to hasListener\\n refactor(widget): rename field2951 to noScrollThrough\\n fix: import correct field for click masks\\n fix: import correct field for op base\\n\\nKamiel (6):\\n Item price tooltip: use linebreak instead of comma\\n Fix ranging potion showing invalid boost value\\n Ground items: Only consume mouse clicks when a checkbox has been clicked\\n Show remaining time on successful hunter traps\\n Add raid party size varbit\\n Replace raids points widget with custom overlay\\n\\nLotto (9):\\n runelite-api: make InventoryItemQuery take in InventoryID\\n runelite-api: add emote window widget info\\n runelite-client: pass in z offset into renderActorOverlayImage\\n runelite-client: extend overlay util to render Areas and LocalPoint\\n runelite-client: add line wrapping to PanelComponent lines\\n runelite-api: add sprite ids class\\n runelite-client: add resource images to clue scroll plugin\\n runelite-client: revamp clue scroll plugin\\n runelite-client: remove old clue scroll enums\\n\\nLyn Levenick (2):\\n Add notifications for NMZ power-up spawns\\n Fix tray icon crash when clicked quickly on start\\n\\nMax Weber (10):\\n itemstats: Support holy wrench effect\\n configmanager: synchronize disk access\\n itemstats: use EnergyStat instead of anonymous stat\\n menumanager: Actually remove menu options\\n injector: Allow <clinit> an <init> injection with multiple mixins on the same class\\n deob: Always use / delimters in pool.Class\\n injector: Allow assertions to be used in mixins\\n mixins: Use assert in scriptvm\\n runelite-client: Add ClientThread to aid in synchronizing with the client\\n Ensure createItemSprite is called on the game thread\\n\\nSeth (4):\\n info boxes: associate plugins to infoboxes\\n info boxes: sort boxes by priority\\n jewelrycharges: Add Teleport crystal(5)\\n agility plugin: Add lap counter\\n\\nShaunDreclin (1):\\n Add Silver sickle(b) to menu entry swapper plugin.\\n\\nSoyChai (4):\\n Expand list of skill abbreviations for the !Lvl command\\n Expand tests for and document the Experience API\\n Add spicy stews to item stats plugin\\n Extra documentation for the Stat and StatChange classes\\n\\nTomas Slusny (18):\\n Add Cave Horror cannon spot\\n Fix Lizardmen cannon spot plane\\n Add support for points to ConfigManager\\n Add support for getting real canvas dimensions\\n Calculate overlay bounds also for dynamic overlays\\n Create translated copy of OverlayBounds\\n Improve caching of game-related variables\\n Change multiple overlay lists to map\\n Instance map improvements + moving\\n Make unsetConfiguration non-blocking\\n Disable overlay dragging mode on focus lost\\n Remove not needed parent point and minimap orb\\n Move tooltip to the right-bottom of the mouse\\n Add null-check for overlays in OverlayRenderer\\n Add getCanvasOffset to clientUI, fix screenshots\\n Add formatNumber methods to StackFormatter\\n Expand panels based on click event not isSelected\\n Add null-check for Client to MenuManager\\n\\nUnmoon (1):\\n Add Tithe Farm plugin\\n\\njamesahhh (1):\\n Add antipoison and superantipoison timers (#1159)\\n\\nrune3132 (1):\\n Additions to Jewellery count plugin\\n
\\n\",\"image\":\"/img/blog/1.3.2-Release/overlays.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/34.74fe9ed1.chunk.js b/static/js/34.6287f55b.chunk.js
similarity index 98%
rename from static/js/34.74fe9ed1.chunk.js
rename to static/js/34.6287f55b.chunk.js
index 96f510d47..0ae972ca4 100644
--- a/static/js/34.74fe9ed1.chunk.js
+++ b/static/js/34.6287f55b.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[34],{309:function(e,n){e.exports={title:"1.3.3 Release",description:"Bank tags, item shift click configuration, and improved player indicators",author:"Adam",body:'Bank tags have been added, which allow tagging items in the bank which can later\nbe searched on. Thanks to @devdennis for this,\nand @abextm for the input dialog work.
\n
\nYou may now also customize the shift click option of any item in the inventory.\nRight click the inventory and select "Configure", then select the option on the\nitem you want to use for shift click. Thanks to\n@Kamielvf for this!
\n
\nThe player indicator plugin can now render players clan ranks next to their\nnames and also show friends, teammates, and clan members in the right click menu.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix prayer reoder plugin not always reodering prayers since the last update \nDisable kingdom of misc plugin by default \nAdd last destination for spiritual fairy tree to menu swapper plugin \nAllow configuring gp thresholds for ground items highlighting \nAdd options to disable mouse tooltips on interfaces and in chatbox \nFix nmz plugin informing you your absorption is low immediately after entering\nnmz \nRequire shift to be held for npc tag option to be visibile \nFix overlays drawing over the minimap area in fixed mode \nMove titlebar buttons to side bar when custom chrome is disabled \nAdd option to enable the small font on all of the overlays \nFix grounditems showing items as Members only when hopping from f2p to p2p \nAdd fishing spots at Mount Quidamortem \nAdd turquoise slayer helmet to the slayer plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (21):\n cache: split color palette code into its own class\n cache: add and compute hsl in underlay\n cache: add and compute hsl in overlay\n cache: add post to object loader\n cache: rewrite map image dumper with logic from client\n ground items overlay: use a loop\n Add item layer changed event\n ground items: use item layer changed event\n Add maven-jar-plugin 3.0.2 to plugin management\n overlay renderer: use copyonwritelist for overlays\n overlay renderer: clip above scene and under widgets to viewport on fixed\n perspective: use viewport offset in get2DGeometry\n Revert "Merge pull request #1154 from deathbeam/team-member-names"\n clanchat plugin: change cache to expire after write\n Add clan member manager to cache clanmember ranks, use in clanchat plugin\n Move clanmember icon logic to clanmanager\n clanmanager: expose way to get bufferedimages for clan icons\n player indicator overlay: render clan rank next to names\n player indicators plugin: change color of menus\n bank tag plugin: use chatbox input manager\n Change MenuEntry type to int\n\nDennis (7):\n refactor method1721 to runWidgetOnLoadListener\n fix widget loaded event\n expose integer node fields\n expose widget flags\n expose widget actions\n add show menu option nine widget config\n add bank tags plugin\n\nInfinitay (1):\n Disabled kingdom plugin by default, and it\'s options\n\nKamiel (6):\n Menu entry swapper: Swap last destination for spiritual fairy tree\n runescape-client: export getShiftClickActionIndex\n Add event for ItemComposition post()\n Add shift click customization to menu swapper plugin\n Add MenuOpened event\n Change shift-click customization behaviour\n\nMax Weber (6):\n ScriptEvent > ScriptCallbackEvent\n Expose methods to execute scripts\n cache: Allow scripts to start with comments\n Mixins: Give scripts a log.debug callback\n Allow assembly and loading of new scripts\n Add ChatboxInputManager to provide a RuneScape styled input box\n\nMorgan Lewis (4):\n Add configuration options for ground item plugin\n Add names from widgetInfo to the Widget Inspector\n Add options to disable mouse tooltip on interfaces and chatbox\n Fix challenge answer for Nurse Wooned clue\n\nSeth (6):\n nmz plugin: reset absorption notification when not in NMZ\n impling plugin: Move minimap overlay into it\'s own overlay\n agility plugin: Add region check to lap counter\n npc indicator: add shift right click to add tag option\n agility plugin: remove duplicate gamestate event\n ground item overlay: Fix boxes appearing very small with small font\n\nShaunDreclin (2):\n Fix capitalization of \'Black demon\' in npc_health.json\n Highlight current region in Location devtool\n\nTomas Slusny (24):\n Move loading of session before starting plugins\n Move viewport check below gamestate and CTP\n Save overlay data after resetting position\n Move title toolbar buttons to sidebar in native\n Improve ground items plugin\n Color the hidden items gray when in highlight mode\n Reduce the amount of temporary objects in items\n Invalidate ground items cache properly\n Invalidate item manager cache on hopping and login\n Use provider for client in item manager\n Add option for enabling small font\n Add support for drawing player team\'s names\n Add mappings and api for DMM player names\n Use built-in name rendering in player indicators\n Merge clan chat and player indicators plugin\n Always remove tags from player.getName()\n Add DMM name drawing opcodes to cache\n Add clan changed hook\n Properly invalidate clan ranks and names\n Add clan changed hook\n Add support for drawing player team\'s names\n Add mappings for DMM player names\n Add raids fishing spot\n Cache all ground items and then check their state\n\nWooxSolo (1):\n Add chunk borders and map square borders to devtools\n\nrune3132 (1):\n Added the turquoise slayer helmet to the slayer plugin\n
\n',image:"/img/blog/1.3.3-Release/banktags.png"}}}]);
-//# sourceMappingURL=34.74fe9ed1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[34],{310:function(e,n){e.exports={title:"1.3.3 Release",description:"Bank tags, item shift click configuration, and improved player indicators",author:"Adam",body:'Bank tags have been added, which allow tagging items in the bank which can later\nbe searched on. Thanks to @devdennis for this,\nand @abextm for the input dialog work.
\n
\nYou may now also customize the shift click option of any item in the inventory.\nRight click the inventory and select "Configure", then select the option on the\nitem you want to use for shift click. Thanks to\n@Kamielvf for this!
\n
\nThe player indicator plugin can now render players clan ranks next to their\nnames and also show friends, teammates, and clan members in the right click menu.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix prayer reoder plugin not always reodering prayers since the last update \nDisable kingdom of misc plugin by default \nAdd last destination for spiritual fairy tree to menu swapper plugin \nAllow configuring gp thresholds for ground items highlighting \nAdd options to disable mouse tooltips on interfaces and in chatbox \nFix nmz plugin informing you your absorption is low immediately after entering\nnmz \nRequire shift to be held for npc tag option to be visibile \nFix overlays drawing over the minimap area in fixed mode \nMove titlebar buttons to side bar when custom chrome is disabled \nAdd option to enable the small font on all of the overlays \nFix grounditems showing items as Members only when hopping from f2p to p2p \nAdd fishing spots at Mount Quidamortem \nAdd turquoise slayer helmet to the slayer plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (21):\n cache: split color palette code into its own class\n cache: add and compute hsl in underlay\n cache: add and compute hsl in overlay\n cache: add post to object loader\n cache: rewrite map image dumper with logic from client\n ground items overlay: use a loop\n Add item layer changed event\n ground items: use item layer changed event\n Add maven-jar-plugin 3.0.2 to plugin management\n overlay renderer: use copyonwritelist for overlays\n overlay renderer: clip above scene and under widgets to viewport on fixed\n perspective: use viewport offset in get2DGeometry\n Revert "Merge pull request #1154 from deathbeam/team-member-names"\n clanchat plugin: change cache to expire after write\n Add clan member manager to cache clanmember ranks, use in clanchat plugin\n Move clanmember icon logic to clanmanager\n clanmanager: expose way to get bufferedimages for clan icons\n player indicator overlay: render clan rank next to names\n player indicators plugin: change color of menus\n bank tag plugin: use chatbox input manager\n Change MenuEntry type to int\n\nDennis (7):\n refactor method1721 to runWidgetOnLoadListener\n fix widget loaded event\n expose integer node fields\n expose widget flags\n expose widget actions\n add show menu option nine widget config\n add bank tags plugin\n\nInfinitay (1):\n Disabled kingdom plugin by default, and it\'s options\n\nKamiel (6):\n Menu entry swapper: Swap last destination for spiritual fairy tree\n runescape-client: export getShiftClickActionIndex\n Add event for ItemComposition post()\n Add shift click customization to menu swapper plugin\n Add MenuOpened event\n Change shift-click customization behaviour\n\nMax Weber (6):\n ScriptEvent > ScriptCallbackEvent\n Expose methods to execute scripts\n cache: Allow scripts to start with comments\n Mixins: Give scripts a log.debug callback\n Allow assembly and loading of new scripts\n Add ChatboxInputManager to provide a RuneScape styled input box\n\nMorgan Lewis (4):\n Add configuration options for ground item plugin\n Add names from widgetInfo to the Widget Inspector\n Add options to disable mouse tooltip on interfaces and chatbox\n Fix challenge answer for Nurse Wooned clue\n\nSeth (6):\n nmz plugin: reset absorption notification when not in NMZ\n impling plugin: Move minimap overlay into it\'s own overlay\n agility plugin: Add region check to lap counter\n npc indicator: add shift right click to add tag option\n agility plugin: remove duplicate gamestate event\n ground item overlay: Fix boxes appearing very small with small font\n\nShaunDreclin (2):\n Fix capitalization of \'Black demon\' in npc_health.json\n Highlight current region in Location devtool\n\nTomas Slusny (24):\n Move loading of session before starting plugins\n Move viewport check below gamestate and CTP\n Save overlay data after resetting position\n Move title toolbar buttons to sidebar in native\n Improve ground items plugin\n Color the hidden items gray when in highlight mode\n Reduce the amount of temporary objects in items\n Invalidate ground items cache properly\n Invalidate item manager cache on hopping and login\n Use provider for client in item manager\n Add option for enabling small font\n Add support for drawing player team\'s names\n Add mappings and api for DMM player names\n Use built-in name rendering in player indicators\n Merge clan chat and player indicators plugin\n Always remove tags from player.getName()\n Add DMM name drawing opcodes to cache\n Add clan changed hook\n Properly invalidate clan ranks and names\n Add clan changed hook\n Add support for drawing player team\'s names\n Add mappings for DMM player names\n Add raids fishing spot\n Cache all ground items and then check their state\n\nWooxSolo (1):\n Add chunk borders and map square borders to devtools\n\nrune3132 (1):\n Added the turquoise slayer helmet to the slayer plugin\n
\n',image:"/img/blog/1.3.3-Release/banktags.png"}}}]);
+//# sourceMappingURL=34.6287f55b.chunk.js.map
\ No newline at end of file
diff --git a/static/js/34.74fe9ed1.chunk.js.map b/static/js/34.6287f55b.chunk.js.map
similarity index 99%
rename from static/js/34.74fe9ed1.chunk.js.map
rename to static/js/34.6287f55b.chunk.js.map
index 5618edfa7..4ec875b20 100644
--- a/static/js/34.74fe9ed1.chunk.js.map
+++ b/static/js/34.6287f55b.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-04-05-00-00-1.3.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,kzMAA00M,MAAQ","file":"static/js/34.74fe9ed1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.3 Release\",\"description\":\"Bank tags, item shift click configuration, and improved player indicators\",\"author\":\"Adam\",\"body\":\"Bank tags have been added, which allow tagging items in the bank which can later\\nbe searched on. Thanks to @devdennis for this,\\nand @abextm for the input dialog work.
\\n
\\nYou may now also customize the shift click option of any item in the inventory.\\nRight click the inventory and select "Configure", then select the option on the\\nitem you want to use for shift click. Thanks to\\n@Kamielvf for this!
\\n
\\nThe player indicator plugin can now render players clan ranks next to their\\nnames and also show friends, teammates, and clan members in the right click menu.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix prayer reoder plugin not always reodering prayers since the last update \\nDisable kingdom of misc plugin by default \\nAdd last destination for spiritual fairy tree to menu swapper plugin \\nAllow configuring gp thresholds for ground items highlighting \\nAdd options to disable mouse tooltips on interfaces and in chatbox \\nFix nmz plugin informing you your absorption is low immediately after entering\\nnmz \\nRequire shift to be held for npc tag option to be visibile \\nFix overlays drawing over the minimap area in fixed mode \\nMove titlebar buttons to side bar when custom chrome is disabled \\nAdd option to enable the small font on all of the overlays \\nFix grounditems showing items as Members only when hopping from f2p to p2p \\nAdd fishing spots at Mount Quidamortem \\nAdd turquoise slayer helmet to the slayer plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (21):\\n cache: split color palette code into its own class\\n cache: add and compute hsl in underlay\\n cache: add and compute hsl in overlay\\n cache: add post to object loader\\n cache: rewrite map image dumper with logic from client\\n ground items overlay: use a loop\\n Add item layer changed event\\n ground items: use item layer changed event\\n Add maven-jar-plugin 3.0.2 to plugin management\\n overlay renderer: use copyonwritelist for overlays\\n overlay renderer: clip above scene and under widgets to viewport on fixed\\n perspective: use viewport offset in get2DGeometry\\n Revert "Merge pull request #1154 from deathbeam/team-member-names"\\n clanchat plugin: change cache to expire after write\\n Add clan member manager to cache clanmember ranks, use in clanchat plugin\\n Move clanmember icon logic to clanmanager\\n clanmanager: expose way to get bufferedimages for clan icons\\n player indicator overlay: render clan rank next to names\\n player indicators plugin: change color of menus\\n bank tag plugin: use chatbox input manager\\n Change MenuEntry type to int\\n\\nDennis (7):\\n refactor method1721 to runWidgetOnLoadListener\\n fix widget loaded event\\n expose integer node fields\\n expose widget flags\\n expose widget actions\\n add show menu option nine widget config\\n add bank tags plugin\\n\\nInfinitay (1):\\n Disabled kingdom plugin by default, and it's options\\n\\nKamiel (6):\\n Menu entry swapper: Swap last destination for spiritual fairy tree\\n runescape-client: export getShiftClickActionIndex\\n Add event for ItemComposition post()\\n Add shift click customization to menu swapper plugin\\n Add MenuOpened event\\n Change shift-click customization behaviour\\n\\nMax Weber (6):\\n ScriptEvent > ScriptCallbackEvent\\n Expose methods to execute scripts\\n cache: Allow scripts to start with comments\\n Mixins: Give scripts a log.debug callback\\n Allow assembly and loading of new scripts\\n Add ChatboxInputManager to provide a RuneScape styled input box\\n\\nMorgan Lewis (4):\\n Add configuration options for ground item plugin\\n Add names from widgetInfo to the Widget Inspector\\n Add options to disable mouse tooltip on interfaces and chatbox\\n Fix challenge answer for Nurse Wooned clue\\n\\nSeth (6):\\n nmz plugin: reset absorption notification when not in NMZ\\n impling plugin: Move minimap overlay into it's own overlay\\n agility plugin: Add region check to lap counter\\n npc indicator: add shift right click to add tag option\\n agility plugin: remove duplicate gamestate event\\n ground item overlay: Fix boxes appearing very small with small font\\n\\nShaunDreclin (2):\\n Fix capitalization of 'Black demon' in npc_health.json\\n Highlight current region in Location devtool\\n\\nTomas Slusny (24):\\n Move loading of session before starting plugins\\n Move viewport check below gamestate and CTP\\n Save overlay data after resetting position\\n Move title toolbar buttons to sidebar in native\\n Improve ground items plugin\\n Color the hidden items gray when in highlight mode\\n Reduce the amount of temporary objects in items\\n Invalidate ground items cache properly\\n Invalidate item manager cache on hopping and login\\n Use provider for client in item manager\\n Add option for enabling small font\\n Add support for drawing player team's names\\n Add mappings and api for DMM player names\\n Use built-in name rendering in player indicators\\n Merge clan chat and player indicators plugin\\n Always remove tags from player.getName()\\n Add DMM name drawing opcodes to cache\\n Add clan changed hook\\n Properly invalidate clan ranks and names\\n Add clan changed hook\\n Add support for drawing player team's names\\n Add mappings for DMM player names\\n Add raids fishing spot\\n Cache all ground items and then check their state\\n\\nWooxSolo (1):\\n Add chunk borders and map square borders to devtools\\n\\nrune3132 (1):\\n Added the turquoise slayer helmet to the slayer plugin\\n
\\n\",\"image\":\"/img/blog/1.3.3-Release/banktags.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-04-05-00-00-1.3.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4EAA4E,OAAS,OAAO,KAAO,kzMAA00M,MAAQ","file":"static/js/34.6287f55b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.3 Release\",\"description\":\"Bank tags, item shift click configuration, and improved player indicators\",\"author\":\"Adam\",\"body\":\"Bank tags have been added, which allow tagging items in the bank which can later\\nbe searched on. Thanks to @devdennis for this,\\nand @abextm for the input dialog work.
\\n
\\nYou may now also customize the shift click option of any item in the inventory.\\nRight click the inventory and select "Configure", then select the option on the\\nitem you want to use for shift click. Thanks to\\n@Kamielvf for this!
\\n
\\nThe player indicator plugin can now render players clan ranks next to their\\nnames and also show friends, teammates, and clan members in the right click menu.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix prayer reoder plugin not always reodering prayers since the last update \\nDisable kingdom of misc plugin by default \\nAdd last destination for spiritual fairy tree to menu swapper plugin \\nAllow configuring gp thresholds for ground items highlighting \\nAdd options to disable mouse tooltips on interfaces and in chatbox \\nFix nmz plugin informing you your absorption is low immediately after entering\\nnmz \\nRequire shift to be held for npc tag option to be visibile \\nFix overlays drawing over the minimap area in fixed mode \\nMove titlebar buttons to side bar when custom chrome is disabled \\nAdd option to enable the small font on all of the overlays \\nFix grounditems showing items as Members only when hopping from f2p to p2p \\nAdd fishing spots at Mount Quidamortem \\nAdd turquoise slayer helmet to the slayer plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (21):\\n cache: split color palette code into its own class\\n cache: add and compute hsl in underlay\\n cache: add and compute hsl in overlay\\n cache: add post to object loader\\n cache: rewrite map image dumper with logic from client\\n ground items overlay: use a loop\\n Add item layer changed event\\n ground items: use item layer changed event\\n Add maven-jar-plugin 3.0.2 to plugin management\\n overlay renderer: use copyonwritelist for overlays\\n overlay renderer: clip above scene and under widgets to viewport on fixed\\n perspective: use viewport offset in get2DGeometry\\n Revert "Merge pull request #1154 from deathbeam/team-member-names"\\n clanchat plugin: change cache to expire after write\\n Add clan member manager to cache clanmember ranks, use in clanchat plugin\\n Move clanmember icon logic to clanmanager\\n clanmanager: expose way to get bufferedimages for clan icons\\n player indicator overlay: render clan rank next to names\\n player indicators plugin: change color of menus\\n bank tag plugin: use chatbox input manager\\n Change MenuEntry type to int\\n\\nDennis (7):\\n refactor method1721 to runWidgetOnLoadListener\\n fix widget loaded event\\n expose integer node fields\\n expose widget flags\\n expose widget actions\\n add show menu option nine widget config\\n add bank tags plugin\\n\\nInfinitay (1):\\n Disabled kingdom plugin by default, and it's options\\n\\nKamiel (6):\\n Menu entry swapper: Swap last destination for spiritual fairy tree\\n runescape-client: export getShiftClickActionIndex\\n Add event for ItemComposition post()\\n Add shift click customization to menu swapper plugin\\n Add MenuOpened event\\n Change shift-click customization behaviour\\n\\nMax Weber (6):\\n ScriptEvent > ScriptCallbackEvent\\n Expose methods to execute scripts\\n cache: Allow scripts to start with comments\\n Mixins: Give scripts a log.debug callback\\n Allow assembly and loading of new scripts\\n Add ChatboxInputManager to provide a RuneScape styled input box\\n\\nMorgan Lewis (4):\\n Add configuration options for ground item plugin\\n Add names from widgetInfo to the Widget Inspector\\n Add options to disable mouse tooltip on interfaces and chatbox\\n Fix challenge answer for Nurse Wooned clue\\n\\nSeth (6):\\n nmz plugin: reset absorption notification when not in NMZ\\n impling plugin: Move minimap overlay into it's own overlay\\n agility plugin: Add region check to lap counter\\n npc indicator: add shift right click to add tag option\\n agility plugin: remove duplicate gamestate event\\n ground item overlay: Fix boxes appearing very small with small font\\n\\nShaunDreclin (2):\\n Fix capitalization of 'Black demon' in npc_health.json\\n Highlight current region in Location devtool\\n\\nTomas Slusny (24):\\n Move loading of session before starting plugins\\n Move viewport check below gamestate and CTP\\n Save overlay data after resetting position\\n Move title toolbar buttons to sidebar in native\\n Improve ground items plugin\\n Color the hidden items gray when in highlight mode\\n Reduce the amount of temporary objects in items\\n Invalidate ground items cache properly\\n Invalidate item manager cache on hopping and login\\n Use provider for client in item manager\\n Add option for enabling small font\\n Add support for drawing player team's names\\n Add mappings and api for DMM player names\\n Use built-in name rendering in player indicators\\n Merge clan chat and player indicators plugin\\n Always remove tags from player.getName()\\n Add DMM name drawing opcodes to cache\\n Add clan changed hook\\n Properly invalidate clan ranks and names\\n Add clan changed hook\\n Add support for drawing player team's names\\n Add mappings for DMM player names\\n Add raids fishing spot\\n Cache all ground items and then check their state\\n\\nWooxSolo (1):\\n Add chunk borders and map square borders to devtools\\n\\nrune3132 (1):\\n Added the turquoise slayer helmet to the slayer plugin\\n
\\n\",\"image\":\"/img/blog/1.3.3-Release/banktags.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/35.83304680.chunk.js b/static/js/35.679eca3f.chunk.js
similarity index 98%
rename from static/js/35.83304680.chunk.js
rename to static/js/35.679eca3f.chunk.js
index a032ccc13..4915b085b 100644
--- a/static/js/35.83304680.chunk.js
+++ b/static/js/35.679eca3f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[35],{310:function(e,n){e.exports={title:"1.3.4 Release",description:"Smooth animations, easier HiScore lookups, and smarter Abyss runs",author:"Soy",body:'Animation smoothing is here to showcase the bleeding edge of oldschool visuals.\nPlayers, NPCs, and environmental objects can now be interpolated (or \'tweened\')\nto animate at higher framerates. Thanks to\n@DevDennis for bringing this eye candy to life.
\n \n \n
\nHiScore lookups can now be accessed from many more right-click menus, including\nin the chatbox, your friends list, from private messages, in the clan chat\nsidebar, and on the raiding party menu (for members with at least a kick-rank).\n@Kamielvf worked on this quality of life change,\nbig thanks to him.
\n
\nThe Dark Mage in the Abyss can now be highlighted whenever your inventory\ncontains a degraded pouch in need of repairs. Props to\n@jaeger25 for looking after our forgetful\nrunecrafters.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdded healing values for 30+ missing foods; most importantly, easter eggs! \nMenu entry swapper: updated the Travel option to include balloons and\nFremennik boats, and added a new Chase option for cats who love rat-hunting.\nPickpocket swapping is now limited to H.A.M. members only, due to unintended\nthieving balance issues (eg. with blackjacking). \nRemoved the Pyramid Plunder plugin because\nwe don\'t need it any more .\nGood Jagex. \nRenamed the Attack Indicators plugin to Attack Styles, and added better\ncontrol over when the indicator appears. \nAdded a toggle for displaying skilling session stats. \nUpdated our overlay text to use the current oldschool font, complete with\nslashed 0\'s. \nFixed several clue scroll helpers which pointed to wrong spots, suggested\nthe wrong dance emote, or contained typos. \nHunter plugin: fix bug related to setting traps and walking in the same tick. \nFixed report button not returning to normal when the plugin was disabled. \nFixed the bank tag search forgetting to match item placeholders. \nFixed the screenshot plugin crashing on certain dialogs, like grabbing a\nhammer from a Motherlode crate. \n \nEnjoy!
\n~ Soy
\nNew commits \nWe had 19 contributors this release!
\nAdam (15):\n deobfuscator: add fernflower dependency\n runescape-client: refactor item composition int2 -> placeholderId\n runescape-client: refactor item composition int3 -> placeholderTemplateId\n runelite-api: add idEquals to inventory item query\n player indicators: add config for recoloring menu and showing clan rank\n indicators plugin: fix not always identifying menus by type\n runescape-client: item comp team -> shiftClickIndex\n runescape-client: item comp int1 -> team\n runescape-client: field3671 -> params\n runelite-client: remove old plugin classloader\n runelite-client: remove old Plugin.file too\n pluginmanager: don\'t store plugin enabled/disabled state in config\n runescape-client: export hintArrowOffsetX/Y/Z\n Add animation smoothing plugin\n xp tracker plugin: don\'t throw from startUp if unable to fetch worlds\n\nDennis (3):\n runelite-api: expose item composition placeholder ids\n runelite-client: fix bank tags search for placeholder items\n runelite-client: only update the actions if the item id matches\n\nFatalWaffles (6):\n Fixed typo for lighthouse clue\n Fix mess hall emote clue\n Fix "JIG" emote clues\n Fix errors with emote clues (#1312)\n Update worldpoint for map clue 2713\n Fix manor, swamp and lumber yard clue wordpoints (#1356)\n\nGriffin Quarles (2):\n Update README.md\n Update CONTRIBUTING.md\n\nJeremy Plsek (1):\n itemprices plugin: fix noted items not showing ge\n\nKamiel (3):\n Reset report button text to default when plugin is disabled\n Add HiScore lookup to right click menus\n Update the runescape font to match current OSRS font\n\nLevi (1):\n Average actions left between last 10 XP drops (#1323)\n\nLevi Schuck (2):\n Lumbridge npcs have some bad compositions and return null in the dev\n tools.\n Reset XP on log-in of another character / mode\n\nLotto (1):\n cluescroll-plugin: remove duplicate anagram answers\n\nMatt Jaeger (1):\n Highlight dark mage NPC in the center of the abyss when inventory\n contains a degraded pouch\n\nMorgan Lewis (1):\n Add small clarification to Account Plugin tooltip\n\nRune Nielsen (2):\n Fixed misspelling in clue and added missing clue (#1274)\n Added UGTHANKI_KEBAB_1885 to itemstats plugin (#1263)\n\nSeptron (2):\n Add player index to api\n Add hint arrows to api\n\nSeth (1):\n skill sessions: Add a toggle for displaying session stats\n\nSoyChai (12):\n Add healing values (+14) for pumpkins and easter eggs\n itemstats: Add anchovies (+1), fruit battas (+11), and missing (sliced)\n fruits (+2) including peaches (+8)\n itemstats: Fix errant healing stats for sweetcorn variants\n itemstats: Add Dorgeshuun foods with wiki-claimed healing values\n itemstats: Add chocolatey milk (+4) and giant carp (+6)\n banktags: Adjust dialog text to match Withdraw-X dialog\n screenshot: Fix ArrayIndexOutOfBounds errors caused by unsafe parsing of\n level-up widget\n screenshot: Add documentation for primary methods\n screenshot: Define more accurate method names and access levels\n attackstyles: Rename Attack Indicators plugin to Attack Styles\n attackstyles: Add a toggle to Always show style\n attackstyles: Simplify config descriptions\n\nTheLonelyDev (1):\n menu swapper: add Fly, Rellekka travel options, and Chase\n\nTomas Slusny (4):\n Save text configuration value on enter\n Swap pickpocket only on H.A.M. members\n Revert "Reset XP on log-in of another character / mode"\n Remove pyramid plunder plugin\n\nWooxSolo (3):\n Fix Actor.getWorldLocation to use pathX/pathY instead of getX/getY\n Update game tick event to run after packets have been processed\n hunter plugin: fix setting trap and walking at once\n\npsikoi (1):\n Add a null check to avoid a NullPointerException when the query returns\n null.\n
\n',image:"/img/blog/1.3.4-Release/animsmoothing1.gif"}}}]);
-//# sourceMappingURL=35.83304680.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[35],{311:function(e,n){e.exports={title:"1.3.4 Release",description:"Smooth animations, easier HiScore lookups, and smarter Abyss runs",author:"Soy",body:'Animation smoothing is here to showcase the bleeding edge of oldschool visuals.\nPlayers, NPCs, and environmental objects can now be interpolated (or \'tweened\')\nto animate at higher framerates. Thanks to\n@DevDennis for bringing this eye candy to life.
\n \n \n
\nHiScore lookups can now be accessed from many more right-click menus, including\nin the chatbox, your friends list, from private messages, in the clan chat\nsidebar, and on the raiding party menu (for members with at least a kick-rank).\n@Kamielvf worked on this quality of life change,\nbig thanks to him.
\n
\nThe Dark Mage in the Abyss can now be highlighted whenever your inventory\ncontains a degraded pouch in need of repairs. Props to\n@jaeger25 for looking after our forgetful\nrunecrafters.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdded healing values for 30+ missing foods; most importantly, easter eggs! \nMenu entry swapper: updated the Travel option to include balloons and\nFremennik boats, and added a new Chase option for cats who love rat-hunting.\nPickpocket swapping is now limited to H.A.M. members only, due to unintended\nthieving balance issues (eg. with blackjacking). \nRemoved the Pyramid Plunder plugin because\nwe don\'t need it any more .\nGood Jagex. \nRenamed the Attack Indicators plugin to Attack Styles, and added better\ncontrol over when the indicator appears. \nAdded a toggle for displaying skilling session stats. \nUpdated our overlay text to use the current oldschool font, complete with\nslashed 0\'s. \nFixed several clue scroll helpers which pointed to wrong spots, suggested\nthe wrong dance emote, or contained typos. \nHunter plugin: fix bug related to setting traps and walking in the same tick. \nFixed report button not returning to normal when the plugin was disabled. \nFixed the bank tag search forgetting to match item placeholders. \nFixed the screenshot plugin crashing on certain dialogs, like grabbing a\nhammer from a Motherlode crate. \n \nEnjoy!
\n~ Soy
\nNew commits \nWe had 19 contributors this release!
\nAdam (15):\n deobfuscator: add fernflower dependency\n runescape-client: refactor item composition int2 -> placeholderId\n runescape-client: refactor item composition int3 -> placeholderTemplateId\n runelite-api: add idEquals to inventory item query\n player indicators: add config for recoloring menu and showing clan rank\n indicators plugin: fix not always identifying menus by type\n runescape-client: item comp team -> shiftClickIndex\n runescape-client: item comp int1 -> team\n runescape-client: field3671 -> params\n runelite-client: remove old plugin classloader\n runelite-client: remove old Plugin.file too\n pluginmanager: don\'t store plugin enabled/disabled state in config\n runescape-client: export hintArrowOffsetX/Y/Z\n Add animation smoothing plugin\n xp tracker plugin: don\'t throw from startUp if unable to fetch worlds\n\nDennis (3):\n runelite-api: expose item composition placeholder ids\n runelite-client: fix bank tags search for placeholder items\n runelite-client: only update the actions if the item id matches\n\nFatalWaffles (6):\n Fixed typo for lighthouse clue\n Fix mess hall emote clue\n Fix "JIG" emote clues\n Fix errors with emote clues (#1312)\n Update worldpoint for map clue 2713\n Fix manor, swamp and lumber yard clue wordpoints (#1356)\n\nGriffin Quarles (2):\n Update README.md\n Update CONTRIBUTING.md\n\nJeremy Plsek (1):\n itemprices plugin: fix noted items not showing ge\n\nKamiel (3):\n Reset report button text to default when plugin is disabled\n Add HiScore lookup to right click menus\n Update the runescape font to match current OSRS font\n\nLevi (1):\n Average actions left between last 10 XP drops (#1323)\n\nLevi Schuck (2):\n Lumbridge npcs have some bad compositions and return null in the dev\n tools.\n Reset XP on log-in of another character / mode\n\nLotto (1):\n cluescroll-plugin: remove duplicate anagram answers\n\nMatt Jaeger (1):\n Highlight dark mage NPC in the center of the abyss when inventory\n contains a degraded pouch\n\nMorgan Lewis (1):\n Add small clarification to Account Plugin tooltip\n\nRune Nielsen (2):\n Fixed misspelling in clue and added missing clue (#1274)\n Added UGTHANKI_KEBAB_1885 to itemstats plugin (#1263)\n\nSeptron (2):\n Add player index to api\n Add hint arrows to api\n\nSeth (1):\n skill sessions: Add a toggle for displaying session stats\n\nSoyChai (12):\n Add healing values (+14) for pumpkins and easter eggs\n itemstats: Add anchovies (+1), fruit battas (+11), and missing (sliced)\n fruits (+2) including peaches (+8)\n itemstats: Fix errant healing stats for sweetcorn variants\n itemstats: Add Dorgeshuun foods with wiki-claimed healing values\n itemstats: Add chocolatey milk (+4) and giant carp (+6)\n banktags: Adjust dialog text to match Withdraw-X dialog\n screenshot: Fix ArrayIndexOutOfBounds errors caused by unsafe parsing of\n level-up widget\n screenshot: Add documentation for primary methods\n screenshot: Define more accurate method names and access levels\n attackstyles: Rename Attack Indicators plugin to Attack Styles\n attackstyles: Add a toggle to Always show style\n attackstyles: Simplify config descriptions\n\nTheLonelyDev (1):\n menu swapper: add Fly, Rellekka travel options, and Chase\n\nTomas Slusny (4):\n Save text configuration value on enter\n Swap pickpocket only on H.A.M. members\n Revert "Reset XP on log-in of another character / mode"\n Remove pyramid plunder plugin\n\nWooxSolo (3):\n Fix Actor.getWorldLocation to use pathX/pathY instead of getX/getY\n Update game tick event to run after packets have been processed\n hunter plugin: fix setting trap and walking at once\n\npsikoi (1):\n Add a null check to avoid a NullPointerException when the query returns\n null.\n
\n',image:"/img/blog/1.3.4-Release/animsmoothing1.gif"}}}]);
+//# sourceMappingURL=35.679eca3f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/35.83304680.chunk.js.map b/static/js/35.679eca3f.chunk.js.map
similarity index 99%
rename from static/js/35.83304680.chunk.js.map
rename to static/js/35.679eca3f.chunk.js.map
index 93a7c0ebf..1b9f0d350 100644
--- a/static/js/35.83304680.chunk.js.map
+++ b/static/js/35.679eca3f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-04-12-00-00-1.3.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oEAAoE,OAAS,MAAM,KAAO,o3NAA05N,MAAQ","file":"static/js/35.83304680.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.4 Release\",\"description\":\"Smooth animations, easier HiScore lookups, and smarter Abyss runs\",\"author\":\"Soy\",\"body\":\"Animation smoothing is here to showcase the bleeding edge of oldschool visuals.\\nPlayers, NPCs, and environmental objects can now be interpolated (or 'tweened')\\nto animate at higher framerates. Thanks to\\n@DevDennis for bringing this eye candy to life.
\\n \\n \\n
\\nHiScore lookups can now be accessed from many more right-click menus, including\\nin the chatbox, your friends list, from private messages, in the clan chat\\nsidebar, and on the raiding party menu (for members with at least a kick-rank).\\n@Kamielvf worked on this quality of life change,\\nbig thanks to him.
\\n
\\nThe Dark Mage in the Abyss can now be highlighted whenever your inventory\\ncontains a degraded pouch in need of repairs. Props to\\n@jaeger25 for looking after our forgetful\\nrunecrafters.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdded healing values for 30+ missing foods; most importantly, easter eggs! \\nMenu entry swapper: updated the Travel option to include balloons and\\nFremennik boats, and added a new Chase option for cats who love rat-hunting.\\nPickpocket swapping is now limited to H.A.M. members only, due to unintended\\nthieving balance issues (eg. with blackjacking). \\nRemoved the Pyramid Plunder plugin because\\nwe don't need it any more .\\nGood Jagex. \\nRenamed the Attack Indicators plugin to Attack Styles, and added better\\ncontrol over when the indicator appears. \\nAdded a toggle for displaying skilling session stats. \\nUpdated our overlay text to use the current oldschool font, complete with\\nslashed 0's. \\nFixed several clue scroll helpers which pointed to wrong spots, suggested\\nthe wrong dance emote, or contained typos. \\nHunter plugin: fix bug related to setting traps and walking in the same tick. \\nFixed report button not returning to normal when the plugin was disabled. \\nFixed the bank tag search forgetting to match item placeholders. \\nFixed the screenshot plugin crashing on certain dialogs, like grabbing a\\nhammer from a Motherlode crate. \\n \\nEnjoy!
\\n~ Soy
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (15):\\n deobfuscator: add fernflower dependency\\n runescape-client: refactor item composition int2 -> placeholderId\\n runescape-client: refactor item composition int3 -> placeholderTemplateId\\n runelite-api: add idEquals to inventory item query\\n player indicators: add config for recoloring menu and showing clan rank\\n indicators plugin: fix not always identifying menus by type\\n runescape-client: item comp team -> shiftClickIndex\\n runescape-client: item comp int1 -> team\\n runescape-client: field3671 -> params\\n runelite-client: remove old plugin classloader\\n runelite-client: remove old Plugin.file too\\n pluginmanager: don't store plugin enabled/disabled state in config\\n runescape-client: export hintArrowOffsetX/Y/Z\\n Add animation smoothing plugin\\n xp tracker plugin: don't throw from startUp if unable to fetch worlds\\n\\nDennis (3):\\n runelite-api: expose item composition placeholder ids\\n runelite-client: fix bank tags search for placeholder items\\n runelite-client: only update the actions if the item id matches\\n\\nFatalWaffles (6):\\n Fixed typo for lighthouse clue\\n Fix mess hall emote clue\\n Fix "JIG" emote clues\\n Fix errors with emote clues (#1312)\\n Update worldpoint for map clue 2713\\n Fix manor, swamp and lumber yard clue wordpoints (#1356)\\n\\nGriffin Quarles (2):\\n Update README.md\\n Update CONTRIBUTING.md\\n\\nJeremy Plsek (1):\\n itemprices plugin: fix noted items not showing ge\\n\\nKamiel (3):\\n Reset report button text to default when plugin is disabled\\n Add HiScore lookup to right click menus\\n Update the runescape font to match current OSRS font\\n\\nLevi (1):\\n Average actions left between last 10 XP drops (#1323)\\n\\nLevi Schuck (2):\\n Lumbridge npcs have some bad compositions and return null in the dev\\n tools.\\n Reset XP on log-in of another character / mode\\n\\nLotto (1):\\n cluescroll-plugin: remove duplicate anagram answers\\n\\nMatt Jaeger (1):\\n Highlight dark mage NPC in the center of the abyss when inventory\\n contains a degraded pouch\\n\\nMorgan Lewis (1):\\n Add small clarification to Account Plugin tooltip\\n\\nRune Nielsen (2):\\n Fixed misspelling in clue and added missing clue (#1274)\\n Added UGTHANKI_KEBAB_1885 to itemstats plugin (#1263)\\n\\nSeptron (2):\\n Add player index to api\\n Add hint arrows to api\\n\\nSeth (1):\\n skill sessions: Add a toggle for displaying session stats\\n\\nSoyChai (12):\\n Add healing values (+14) for pumpkins and easter eggs\\n itemstats: Add anchovies (+1), fruit battas (+11), and missing (sliced)\\n fruits (+2) including peaches (+8)\\n itemstats: Fix errant healing stats for sweetcorn variants\\n itemstats: Add Dorgeshuun foods with wiki-claimed healing values\\n itemstats: Add chocolatey milk (+4) and giant carp (+6)\\n banktags: Adjust dialog text to match Withdraw-X dialog\\n screenshot: Fix ArrayIndexOutOfBounds errors caused by unsafe parsing of\\n level-up widget\\n screenshot: Add documentation for primary methods\\n screenshot: Define more accurate method names and access levels\\n attackstyles: Rename Attack Indicators plugin to Attack Styles\\n attackstyles: Add a toggle to Always show style\\n attackstyles: Simplify config descriptions\\n\\nTheLonelyDev (1):\\n menu swapper: add Fly, Rellekka travel options, and Chase\\n\\nTomas Slusny (4):\\n Save text configuration value on enter\\n Swap pickpocket only on H.A.M. members\\n Revert "Reset XP on log-in of another character / mode"\\n Remove pyramid plunder plugin\\n\\nWooxSolo (3):\\n Fix Actor.getWorldLocation to use pathX/pathY instead of getX/getY\\n Update game tick event to run after packets have been processed\\n hunter plugin: fix setting trap and walking at once\\n\\npsikoi (1):\\n Add a null check to avoid a NullPointerException when the query returns\\n null.\\n
\\n\",\"image\":\"/img/blog/1.3.4-Release/animsmoothing1.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-04-12-00-00-1.3.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oEAAoE,OAAS,MAAM,KAAO,o3NAA05N,MAAQ","file":"static/js/35.679eca3f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.4 Release\",\"description\":\"Smooth animations, easier HiScore lookups, and smarter Abyss runs\",\"author\":\"Soy\",\"body\":\"Animation smoothing is here to showcase the bleeding edge of oldschool visuals.\\nPlayers, NPCs, and environmental objects can now be interpolated (or 'tweened')\\nto animate at higher framerates. Thanks to\\n@DevDennis for bringing this eye candy to life.
\\n \\n \\n
\\nHiScore lookups can now be accessed from many more right-click menus, including\\nin the chatbox, your friends list, from private messages, in the clan chat\\nsidebar, and on the raiding party menu (for members with at least a kick-rank).\\n@Kamielvf worked on this quality of life change,\\nbig thanks to him.
\\n
\\nThe Dark Mage in the Abyss can now be highlighted whenever your inventory\\ncontains a degraded pouch in need of repairs. Props to\\n@jaeger25 for looking after our forgetful\\nrunecrafters.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdded healing values for 30+ missing foods; most importantly, easter eggs! \\nMenu entry swapper: updated the Travel option to include balloons and\\nFremennik boats, and added a new Chase option for cats who love rat-hunting.\\nPickpocket swapping is now limited to H.A.M. members only, due to unintended\\nthieving balance issues (eg. with blackjacking). \\nRemoved the Pyramid Plunder plugin because\\nwe don't need it any more .\\nGood Jagex. \\nRenamed the Attack Indicators plugin to Attack Styles, and added better\\ncontrol over when the indicator appears. \\nAdded a toggle for displaying skilling session stats. \\nUpdated our overlay text to use the current oldschool font, complete with\\nslashed 0's. \\nFixed several clue scroll helpers which pointed to wrong spots, suggested\\nthe wrong dance emote, or contained typos. \\nHunter plugin: fix bug related to setting traps and walking in the same tick. \\nFixed report button not returning to normal when the plugin was disabled. \\nFixed the bank tag search forgetting to match item placeholders. \\nFixed the screenshot plugin crashing on certain dialogs, like grabbing a\\nhammer from a Motherlode crate. \\n \\nEnjoy!
\\n~ Soy
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (15):\\n deobfuscator: add fernflower dependency\\n runescape-client: refactor item composition int2 -> placeholderId\\n runescape-client: refactor item composition int3 -> placeholderTemplateId\\n runelite-api: add idEquals to inventory item query\\n player indicators: add config for recoloring menu and showing clan rank\\n indicators plugin: fix not always identifying menus by type\\n runescape-client: item comp team -> shiftClickIndex\\n runescape-client: item comp int1 -> team\\n runescape-client: field3671 -> params\\n runelite-client: remove old plugin classloader\\n runelite-client: remove old Plugin.file too\\n pluginmanager: don't store plugin enabled/disabled state in config\\n runescape-client: export hintArrowOffsetX/Y/Z\\n Add animation smoothing plugin\\n xp tracker plugin: don't throw from startUp if unable to fetch worlds\\n\\nDennis (3):\\n runelite-api: expose item composition placeholder ids\\n runelite-client: fix bank tags search for placeholder items\\n runelite-client: only update the actions if the item id matches\\n\\nFatalWaffles (6):\\n Fixed typo for lighthouse clue\\n Fix mess hall emote clue\\n Fix "JIG" emote clues\\n Fix errors with emote clues (#1312)\\n Update worldpoint for map clue 2713\\n Fix manor, swamp and lumber yard clue wordpoints (#1356)\\n\\nGriffin Quarles (2):\\n Update README.md\\n Update CONTRIBUTING.md\\n\\nJeremy Plsek (1):\\n itemprices plugin: fix noted items not showing ge\\n\\nKamiel (3):\\n Reset report button text to default when plugin is disabled\\n Add HiScore lookup to right click menus\\n Update the runescape font to match current OSRS font\\n\\nLevi (1):\\n Average actions left between last 10 XP drops (#1323)\\n\\nLevi Schuck (2):\\n Lumbridge npcs have some bad compositions and return null in the dev\\n tools.\\n Reset XP on log-in of another character / mode\\n\\nLotto (1):\\n cluescroll-plugin: remove duplicate anagram answers\\n\\nMatt Jaeger (1):\\n Highlight dark mage NPC in the center of the abyss when inventory\\n contains a degraded pouch\\n\\nMorgan Lewis (1):\\n Add small clarification to Account Plugin tooltip\\n\\nRune Nielsen (2):\\n Fixed misspelling in clue and added missing clue (#1274)\\n Added UGTHANKI_KEBAB_1885 to itemstats plugin (#1263)\\n\\nSeptron (2):\\n Add player index to api\\n Add hint arrows to api\\n\\nSeth (1):\\n skill sessions: Add a toggle for displaying session stats\\n\\nSoyChai (12):\\n Add healing values (+14) for pumpkins and easter eggs\\n itemstats: Add anchovies (+1), fruit battas (+11), and missing (sliced)\\n fruits (+2) including peaches (+8)\\n itemstats: Fix errant healing stats for sweetcorn variants\\n itemstats: Add Dorgeshuun foods with wiki-claimed healing values\\n itemstats: Add chocolatey milk (+4) and giant carp (+6)\\n banktags: Adjust dialog text to match Withdraw-X dialog\\n screenshot: Fix ArrayIndexOutOfBounds errors caused by unsafe parsing of\\n level-up widget\\n screenshot: Add documentation for primary methods\\n screenshot: Define more accurate method names and access levels\\n attackstyles: Rename Attack Indicators plugin to Attack Styles\\n attackstyles: Add a toggle to Always show style\\n attackstyles: Simplify config descriptions\\n\\nTheLonelyDev (1):\\n menu swapper: add Fly, Rellekka travel options, and Chase\\n\\nTomas Slusny (4):\\n Save text configuration value on enter\\n Swap pickpocket only on H.A.M. members\\n Revert "Reset XP on log-in of another character / mode"\\n Remove pyramid plunder plugin\\n\\nWooxSolo (3):\\n Fix Actor.getWorldLocation to use pathX/pathY instead of getX/getY\\n Update game tick event to run after packets have been processed\\n hunter plugin: fix setting trap and walking at once\\n\\npsikoi (1):\\n Add a null check to avoid a NullPointerException when the query returns\\n null.\\n
\\n\",\"image\":\"/img/blog/1.3.4-Release/animsmoothing1.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/36.d771183e.chunk.js b/static/js/36.d48b689a.chunk.js
similarity index 98%
rename from static/js/36.d771183e.chunk.js
rename to static/js/36.d48b689a.chunk.js
index 150cb8fc0..69920e325 100644
--- a/static/js/36.d771183e.chunk.js
+++ b/static/js/36.d48b689a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[36],{311:function(e,n){e.exports={title:"1.3.5 Release",description:"Web XP tracker, Clue scroll arrows, improved HiScore lookup, clue & bug fixes",author:"Kamielvf",body:'The new Web XP Tracker can now easily be accessed from within the client, simply click the \'Open xp tracker\' button or right click on one of the skill panels.\nShare your gains with your friends and clanmates!
\n
\nThanks to @deathbeam the clue scrolls will now point out the location, npc or object you have to go to for your current step when you are in the area!
\n
\nThe motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig .
\n
\nThe HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.
\n
\nNPCs can now be tagged with either their hull or their tile, this makes it easy to see where you have to click to interact with the tagged NPC. @raqes
\nFor a list of all changes, see the list below.
\nEnjoy!
\n~ Kamiel
\nNew commits \nWe had 33 contributors this release!
\nAdam (17):\n wsservice: move log messages to debug\n item stats: add raids combat potions\n item stats: fix sara brew\n item stats: fix zammy brew\n geplugin: add alt-click to bank items and bank inventory\n slayer plugin: add several missing slayer tasks\n Use built in player index field\n bank value plugin: make calculator more testable\n Fix bank value overflow\n Add deferred eventbus for posting events on the next tick\n Add item container changed event\n runelite-api: add events for actor spawning and despawning\n screenshot plugin: create screenshot folder on startup\n screenshot plugin: remove unused import\n ge search panel: show "No results found" if search is empty, clear on empty lookup\n worldpoint: add dx/dy/dz methods\n Add Angle and Direction\n\nAdenKenny (1):\n Add challenge answer to Clocktower clue\n\nBart van Helvert (1):\n More accurately draw tile indicators\n\nDennis (1):\n fix bank placeholder release option\n\nFatalWaffles (7):\n Fix worldpoint for mausoleum\n Add 2nd emote for mausoleum clue\n Fix barb agil and digsite emote clues\n Fix referee cryptic clue\n Fix & add emote clues.\n Add "Teleport to Abyss" to Menu Entry Swapper\n Fix fight arena pub emote clue\n\nGamer1120 (1):\n TRISTESSAS_TRAGEDY spelling error\n\nHypoxiaOSRS (1):\n Fix shilo village and white wolf mountain hard clues\n\nhaakonrp (1):\n menu swapper: swap reset on dismantled traps and lay on expired traps\n\nJack (1):\n Fix XP Drop plugin recolouring ALL drops whenever a combat prayer is enabled\n\nJeremy Plsek (1):\n tooltips: hug edge of screen instead of jumping\n\nKamiel (6):\n Remove tags from highscore lookup\n Set herbiboar and mlm overlays to draw ABOVE_SCENE\n Move herbiboar minimap overlay to its own class\n Fix cat chasing menu entry swap\n Show grand exchange offer type on cancelled state\n Change menuOpened from FieldHook to Hook\n\nLars \xd8rnlo (3):\n Add upgraded sack to varbits (5556)\n Some quality of life changes to the Motherlode Mine Plugin.\n Added option that allows a player to see the number of gems found during the current mining session.\n\nLotto (7):\n hiscore: lookup local player on double-click\n hiscore: display levels above 99 in the panel\n hiscore panel: fix clue/lms/bh breakage\n hiscore panel: fix total level breakage\n Revert "hiscore panel: fix total level breakage"\n hiscore panel: fix not displaying total level correctly\n cluescrolls: fix confusing solution text for Luthas\n\nMarcus Ramse (2):\n Fix worldToMiniMap for locations outside of range\n Change brother name color when killed\n\nMorgan Lewis (1):\n Add object and location to a Ardougne armour shop clue\n\nNuno Rodrigues (1):\n Fishing Plugin: Add new Lure fishing spots at Barbarian Village, Fix Karamja Spots\n\nOShadowz (2):\n imp plugin: fix magpie impling name and spelling\n imp plugin: add config option to display impling names on minimap\n\nOcelot (1):\n clue scroll plugin: fix various clues with incorrect steps\n\nRaqes (1):\n npc tag plugin: add option for highlight type and drawing names\n\nRichard Goodman (1):\n Add more POH minimap overlays\n\nSeth (1):\n ge plugin: Display spent price instead of original offer price\n\nShaunDreclin (2):\n slayer plugin: add slayer target highlighting\n Fix UnsupportedOperationException error in Slayer plugin\n\nSoyChai (1):\n api: Add 1461 labelled sprites to SpriteId\n\nTomas Slusny (14):\n Add link to web XP tracker to XP panel\n Apply small font option only to dynamic overlays\n Change magic imbue timer to 12 seconds\n Swap also dismantle/reset on box traps\n Universal warning message support in config\n Make condition for H.A.M. pickpockets lowercase\n Add clue hint arrows for clues\n Set default offset to center of tile for arrows\n Do not reuse HttpUrl.builder for building xp urls\n Remove "cast bloom" swapping and make teleport off\n Move reordering of items after shift-click\n Hide clue scroll interface when no clue present\n Fix layer of MotherlodeOverlay\n Centralize setting of hint arrows for clues\n\nTrees (1):\n Refactor FriendManager + Name\n\nTunnelsnake52 (1):\n Fix Dance a jig under Shantay\'s Awning coords\n\nTyler Bochard (2):\n Reduce player indicators overlay priority to MED\n Prevent artifacts in stretched fixed mode\n\nraqes (1):\n Alphabetize the config entries of the menu entry swapper plugin.\n\nnshusa (1):\n Refactored some variables in NPCComposition\n\nnuno (2):\n Add Corsair Cove net fishing spot\n hunter plugin: fix salamander net display\n\nrichardbadman (1):\n Fixes easy clue\n\nrune3132 (4):\n Adds individual clue counts to highscore plugin\n jewellery count plugin: add ring of recoil breaking notification\n clue plugin: order map clues after type and id\n clue plugin: fix/add various clues\n\nwinterdaze (1):\n fix prayer enhance duration\n
\n',image:"/img/blog/1.3.5-Release/web-xp-tracker.png"}}}]);
-//# sourceMappingURL=36.d771183e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[36],{312:function(e,n){e.exports={title:"1.3.5 Release",description:"Web XP tracker, Clue scroll arrows, improved HiScore lookup, clue & bug fixes",author:"Kamielvf",body:'The new Web XP Tracker can now easily be accessed from within the client, simply click the \'Open xp tracker\' button or right click on one of the skill panels.\nShare your gains with your friends and clanmates!
\n
\nThanks to @deathbeam the clue scrolls will now point out the location, npc or object you have to go to for your current step when you are in the area!
\n
\nThe motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig .
\n
\nThe HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.
\n
\nNPCs can now be tagged with either their hull or their tile, this makes it easy to see where you have to click to interact with the tagged NPC. @raqes
\nFor a list of all changes, see the list below.
\nEnjoy!
\n~ Kamiel
\nNew commits \nWe had 33 contributors this release!
\nAdam (17):\n wsservice: move log messages to debug\n item stats: add raids combat potions\n item stats: fix sara brew\n item stats: fix zammy brew\n geplugin: add alt-click to bank items and bank inventory\n slayer plugin: add several missing slayer tasks\n Use built in player index field\n bank value plugin: make calculator more testable\n Fix bank value overflow\n Add deferred eventbus for posting events on the next tick\n Add item container changed event\n runelite-api: add events for actor spawning and despawning\n screenshot plugin: create screenshot folder on startup\n screenshot plugin: remove unused import\n ge search panel: show "No results found" if search is empty, clear on empty lookup\n worldpoint: add dx/dy/dz methods\n Add Angle and Direction\n\nAdenKenny (1):\n Add challenge answer to Clocktower clue\n\nBart van Helvert (1):\n More accurately draw tile indicators\n\nDennis (1):\n fix bank placeholder release option\n\nFatalWaffles (7):\n Fix worldpoint for mausoleum\n Add 2nd emote for mausoleum clue\n Fix barb agil and digsite emote clues\n Fix referee cryptic clue\n Fix & add emote clues.\n Add "Teleport to Abyss" to Menu Entry Swapper\n Fix fight arena pub emote clue\n\nGamer1120 (1):\n TRISTESSAS_TRAGEDY spelling error\n\nHypoxiaOSRS (1):\n Fix shilo village and white wolf mountain hard clues\n\nhaakonrp (1):\n menu swapper: swap reset on dismantled traps and lay on expired traps\n\nJack (1):\n Fix XP Drop plugin recolouring ALL drops whenever a combat prayer is enabled\n\nJeremy Plsek (1):\n tooltips: hug edge of screen instead of jumping\n\nKamiel (6):\n Remove tags from highscore lookup\n Set herbiboar and mlm overlays to draw ABOVE_SCENE\n Move herbiboar minimap overlay to its own class\n Fix cat chasing menu entry swap\n Show grand exchange offer type on cancelled state\n Change menuOpened from FieldHook to Hook\n\nLars \xd8rnlo (3):\n Add upgraded sack to varbits (5556)\n Some quality of life changes to the Motherlode Mine Plugin.\n Added option that allows a player to see the number of gems found during the current mining session.\n\nLotto (7):\n hiscore: lookup local player on double-click\n hiscore: display levels above 99 in the panel\n hiscore panel: fix clue/lms/bh breakage\n hiscore panel: fix total level breakage\n Revert "hiscore panel: fix total level breakage"\n hiscore panel: fix not displaying total level correctly\n cluescrolls: fix confusing solution text for Luthas\n\nMarcus Ramse (2):\n Fix worldToMiniMap for locations outside of range\n Change brother name color when killed\n\nMorgan Lewis (1):\n Add object and location to a Ardougne armour shop clue\n\nNuno Rodrigues (1):\n Fishing Plugin: Add new Lure fishing spots at Barbarian Village, Fix Karamja Spots\n\nOShadowz (2):\n imp plugin: fix magpie impling name and spelling\n imp plugin: add config option to display impling names on minimap\n\nOcelot (1):\n clue scroll plugin: fix various clues with incorrect steps\n\nRaqes (1):\n npc tag plugin: add option for highlight type and drawing names\n\nRichard Goodman (1):\n Add more POH minimap overlays\n\nSeth (1):\n ge plugin: Display spent price instead of original offer price\n\nShaunDreclin (2):\n slayer plugin: add slayer target highlighting\n Fix UnsupportedOperationException error in Slayer plugin\n\nSoyChai (1):\n api: Add 1461 labelled sprites to SpriteId\n\nTomas Slusny (14):\n Add link to web XP tracker to XP panel\n Apply small font option only to dynamic overlays\n Change magic imbue timer to 12 seconds\n Swap also dismantle/reset on box traps\n Universal warning message support in config\n Make condition for H.A.M. pickpockets lowercase\n Add clue hint arrows for clues\n Set default offset to center of tile for arrows\n Do not reuse HttpUrl.builder for building xp urls\n Remove "cast bloom" swapping and make teleport off\n Move reordering of items after shift-click\n Hide clue scroll interface when no clue present\n Fix layer of MotherlodeOverlay\n Centralize setting of hint arrows for clues\n\nTrees (1):\n Refactor FriendManager + Name\n\nTunnelsnake52 (1):\n Fix Dance a jig under Shantay\'s Awning coords\n\nTyler Bochard (2):\n Reduce player indicators overlay priority to MED\n Prevent artifacts in stretched fixed mode\n\nraqes (1):\n Alphabetize the config entries of the menu entry swapper plugin.\n\nnshusa (1):\n Refactored some variables in NPCComposition\n\nnuno (2):\n Add Corsair Cove net fishing spot\n hunter plugin: fix salamander net display\n\nrichardbadman (1):\n Fixes easy clue\n\nrune3132 (4):\n Adds individual clue counts to highscore plugin\n jewellery count plugin: add ring of recoil breaking notification\n clue plugin: order map clues after type and id\n clue plugin: fix/add various clues\n\nwinterdaze (1):\n fix prayer enhance duration\n
\n',image:"/img/blog/1.3.5-Release/web-xp-tracker.png"}}}]);
+//# sourceMappingURL=36.d48b689a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/36.d771183e.chunk.js.map b/static/js/36.d48b689a.chunk.js.map
similarity index 99%
rename from static/js/36.d771183e.chunk.js.map
rename to static/js/36.d48b689a.chunk.js.map
index 0bda99afe..6fea02173 100644
--- a/static/js/36.d771183e.chunk.js.map
+++ b/static/js/36.d48b689a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-04-19-00-00-1.3.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gFAAgF,OAAS,WAAW,KAAO,snNAAkpN,MAAQ","file":"static/js/36.d771183e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.5 Release\",\"description\":\"Web XP tracker, Clue scroll arrows, improved HiScore lookup, clue & bug fixes\",\"author\":\"Kamielvf\",\"body\":\"The new Web XP Tracker can now easily be accessed from within the client, simply click the 'Open xp tracker' button or right click on one of the skill panels.\\nShare your gains with your friends and clanmates!
\\n
\\nThanks to @deathbeam the clue scrolls will now point out the location, npc or object you have to go to for your current step when you are in the area!
\\n
\\nThe motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig .
\\n
\\nThe HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.
\\n
\\nNPCs can now be tagged with either their hull or their tile, this makes it easy to see where you have to click to interact with the tagged NPC. @raqes
\\nFor a list of all changes, see the list below.
\\nEnjoy!
\\n~ Kamiel
\\nNew commits \\nWe had 33 contributors this release!
\\nAdam (17):\\n wsservice: move log messages to debug\\n item stats: add raids combat potions\\n item stats: fix sara brew\\n item stats: fix zammy brew\\n geplugin: add alt-click to bank items and bank inventory\\n slayer plugin: add several missing slayer tasks\\n Use built in player index field\\n bank value plugin: make calculator more testable\\n Fix bank value overflow\\n Add deferred eventbus for posting events on the next tick\\n Add item container changed event\\n runelite-api: add events for actor spawning and despawning\\n screenshot plugin: create screenshot folder on startup\\n screenshot plugin: remove unused import\\n ge search panel: show "No results found" if search is empty, clear on empty lookup\\n worldpoint: add dx/dy/dz methods\\n Add Angle and Direction\\n\\nAdenKenny (1):\\n Add challenge answer to Clocktower clue\\n\\nBart van Helvert (1):\\n More accurately draw tile indicators\\n\\nDennis (1):\\n fix bank placeholder release option\\n\\nFatalWaffles (7):\\n Fix worldpoint for mausoleum\\n Add 2nd emote for mausoleum clue\\n Fix barb agil and digsite emote clues\\n Fix referee cryptic clue\\n Fix & add emote clues.\\n Add "Teleport to Abyss" to Menu Entry Swapper\\n Fix fight arena pub emote clue\\n\\nGamer1120 (1):\\n TRISTESSAS_TRAGEDY spelling error\\n\\nHypoxiaOSRS (1):\\n Fix shilo village and white wolf mountain hard clues\\n\\nhaakonrp (1):\\n menu swapper: swap reset on dismantled traps and lay on expired traps\\n\\nJack (1):\\n Fix XP Drop plugin recolouring ALL drops whenever a combat prayer is enabled\\n\\nJeremy Plsek (1):\\n tooltips: hug edge of screen instead of jumping\\n\\nKamiel (6):\\n Remove tags from highscore lookup\\n Set herbiboar and mlm overlays to draw ABOVE_SCENE\\n Move herbiboar minimap overlay to its own class\\n Fix cat chasing menu entry swap\\n Show grand exchange offer type on cancelled state\\n Change menuOpened from FieldHook to Hook\\n\\nLars Ørnlo (3):\\n Add upgraded sack to varbits (5556)\\n Some quality of life changes to the Motherlode Mine Plugin.\\n Added option that allows a player to see the number of gems found during the current mining session.\\n\\nLotto (7):\\n hiscore: lookup local player on double-click\\n hiscore: display levels above 99 in the panel\\n hiscore panel: fix clue/lms/bh breakage\\n hiscore panel: fix total level breakage\\n Revert "hiscore panel: fix total level breakage"\\n hiscore panel: fix not displaying total level correctly\\n cluescrolls: fix confusing solution text for Luthas\\n\\nMarcus Ramse (2):\\n Fix worldToMiniMap for locations outside of range\\n Change brother name color when killed\\n\\nMorgan Lewis (1):\\n Add object and location to a Ardougne armour shop clue\\n\\nNuno Rodrigues (1):\\n Fishing Plugin: Add new Lure fishing spots at Barbarian Village, Fix Karamja Spots\\n\\nOShadowz (2):\\n imp plugin: fix magpie impling name and spelling\\n imp plugin: add config option to display impling names on minimap\\n\\nOcelot (1):\\n clue scroll plugin: fix various clues with incorrect steps\\n\\nRaqes (1):\\n npc tag plugin: add option for highlight type and drawing names\\n\\nRichard Goodman (1):\\n Add more POH minimap overlays\\n\\nSeth (1):\\n ge plugin: Display spent price instead of original offer price\\n\\nShaunDreclin (2):\\n slayer plugin: add slayer target highlighting\\n Fix UnsupportedOperationException error in Slayer plugin\\n\\nSoyChai (1):\\n api: Add 1461 labelled sprites to SpriteId\\n\\nTomas Slusny (14):\\n Add link to web XP tracker to XP panel\\n Apply small font option only to dynamic overlays\\n Change magic imbue timer to 12 seconds\\n Swap also dismantle/reset on box traps\\n Universal warning message support in config\\n Make condition for H.A.M. pickpockets lowercase\\n Add clue hint arrows for clues\\n Set default offset to center of tile for arrows\\n Do not reuse HttpUrl.builder for building xp urls\\n Remove "cast bloom" swapping and make teleport off\\n Move reordering of items after shift-click\\n Hide clue scroll interface when no clue present\\n Fix layer of MotherlodeOverlay\\n Centralize setting of hint arrows for clues\\n\\nTrees (1):\\n Refactor FriendManager + Name\\n\\nTunnelsnake52 (1):\\n Fix Dance a jig under Shantay's Awning coords\\n\\nTyler Bochard (2):\\n Reduce player indicators overlay priority to MED\\n Prevent artifacts in stretched fixed mode\\n\\nraqes (1):\\n Alphabetize the config entries of the menu entry swapper plugin.\\n\\nnshusa (1):\\n Refactored some variables in NPCComposition\\n\\nnuno (2):\\n Add Corsair Cove net fishing spot\\n hunter plugin: fix salamander net display\\n\\nrichardbadman (1):\\n Fixes easy clue\\n\\nrune3132 (4):\\n Adds individual clue counts to highscore plugin\\n jewellery count plugin: add ring of recoil breaking notification\\n clue plugin: order map clues after type and id\\n clue plugin: fix/add various clues\\n\\nwinterdaze (1):\\n fix prayer enhance duration\\n
\\n\",\"image\":\"/img/blog/1.3.5-Release/web-xp-tracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-04-19-00-00-1.3.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gFAAgF,OAAS,WAAW,KAAO,snNAAkpN,MAAQ","file":"static/js/36.d48b689a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.5 Release\",\"description\":\"Web XP tracker, Clue scroll arrows, improved HiScore lookup, clue & bug fixes\",\"author\":\"Kamielvf\",\"body\":\"The new Web XP Tracker can now easily be accessed from within the client, simply click the 'Open xp tracker' button or right click on one of the skill panels.\\nShare your gains with your friends and clanmates!
\\n
\\nThanks to @deathbeam the clue scrolls will now point out the location, npc or object you have to go to for your current step when you are in the area!
\\n
\\nThe motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig .
\\n
\\nThe HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.
\\n
\\nNPCs can now be tagged with either their hull or their tile, this makes it easy to see where you have to click to interact with the tagged NPC. @raqes
\\nFor a list of all changes, see the list below.
\\nEnjoy!
\\n~ Kamiel
\\nNew commits \\nWe had 33 contributors this release!
\\nAdam (17):\\n wsservice: move log messages to debug\\n item stats: add raids combat potions\\n item stats: fix sara brew\\n item stats: fix zammy brew\\n geplugin: add alt-click to bank items and bank inventory\\n slayer plugin: add several missing slayer tasks\\n Use built in player index field\\n bank value plugin: make calculator more testable\\n Fix bank value overflow\\n Add deferred eventbus for posting events on the next tick\\n Add item container changed event\\n runelite-api: add events for actor spawning and despawning\\n screenshot plugin: create screenshot folder on startup\\n screenshot plugin: remove unused import\\n ge search panel: show "No results found" if search is empty, clear on empty lookup\\n worldpoint: add dx/dy/dz methods\\n Add Angle and Direction\\n\\nAdenKenny (1):\\n Add challenge answer to Clocktower clue\\n\\nBart van Helvert (1):\\n More accurately draw tile indicators\\n\\nDennis (1):\\n fix bank placeholder release option\\n\\nFatalWaffles (7):\\n Fix worldpoint for mausoleum\\n Add 2nd emote for mausoleum clue\\n Fix barb agil and digsite emote clues\\n Fix referee cryptic clue\\n Fix & add emote clues.\\n Add "Teleport to Abyss" to Menu Entry Swapper\\n Fix fight arena pub emote clue\\n\\nGamer1120 (1):\\n TRISTESSAS_TRAGEDY spelling error\\n\\nHypoxiaOSRS (1):\\n Fix shilo village and white wolf mountain hard clues\\n\\nhaakonrp (1):\\n menu swapper: swap reset on dismantled traps and lay on expired traps\\n\\nJack (1):\\n Fix XP Drop plugin recolouring ALL drops whenever a combat prayer is enabled\\n\\nJeremy Plsek (1):\\n tooltips: hug edge of screen instead of jumping\\n\\nKamiel (6):\\n Remove tags from highscore lookup\\n Set herbiboar and mlm overlays to draw ABOVE_SCENE\\n Move herbiboar minimap overlay to its own class\\n Fix cat chasing menu entry swap\\n Show grand exchange offer type on cancelled state\\n Change menuOpened from FieldHook to Hook\\n\\nLars Ørnlo (3):\\n Add upgraded sack to varbits (5556)\\n Some quality of life changes to the Motherlode Mine Plugin.\\n Added option that allows a player to see the number of gems found during the current mining session.\\n\\nLotto (7):\\n hiscore: lookup local player on double-click\\n hiscore: display levels above 99 in the panel\\n hiscore panel: fix clue/lms/bh breakage\\n hiscore panel: fix total level breakage\\n Revert "hiscore panel: fix total level breakage"\\n hiscore panel: fix not displaying total level correctly\\n cluescrolls: fix confusing solution text for Luthas\\n\\nMarcus Ramse (2):\\n Fix worldToMiniMap for locations outside of range\\n Change brother name color when killed\\n\\nMorgan Lewis (1):\\n Add object and location to a Ardougne armour shop clue\\n\\nNuno Rodrigues (1):\\n Fishing Plugin: Add new Lure fishing spots at Barbarian Village, Fix Karamja Spots\\n\\nOShadowz (2):\\n imp plugin: fix magpie impling name and spelling\\n imp plugin: add config option to display impling names on minimap\\n\\nOcelot (1):\\n clue scroll plugin: fix various clues with incorrect steps\\n\\nRaqes (1):\\n npc tag plugin: add option for highlight type and drawing names\\n\\nRichard Goodman (1):\\n Add more POH minimap overlays\\n\\nSeth (1):\\n ge plugin: Display spent price instead of original offer price\\n\\nShaunDreclin (2):\\n slayer plugin: add slayer target highlighting\\n Fix UnsupportedOperationException error in Slayer plugin\\n\\nSoyChai (1):\\n api: Add 1461 labelled sprites to SpriteId\\n\\nTomas Slusny (14):\\n Add link to web XP tracker to XP panel\\n Apply small font option only to dynamic overlays\\n Change magic imbue timer to 12 seconds\\n Swap also dismantle/reset on box traps\\n Universal warning message support in config\\n Make condition for H.A.M. pickpockets lowercase\\n Add clue hint arrows for clues\\n Set default offset to center of tile for arrows\\n Do not reuse HttpUrl.builder for building xp urls\\n Remove "cast bloom" swapping and make teleport off\\n Move reordering of items after shift-click\\n Hide clue scroll interface when no clue present\\n Fix layer of MotherlodeOverlay\\n Centralize setting of hint arrows for clues\\n\\nTrees (1):\\n Refactor FriendManager + Name\\n\\nTunnelsnake52 (1):\\n Fix Dance a jig under Shantay's Awning coords\\n\\nTyler Bochard (2):\\n Reduce player indicators overlay priority to MED\\n Prevent artifacts in stretched fixed mode\\n\\nraqes (1):\\n Alphabetize the config entries of the menu entry swapper plugin.\\n\\nnshusa (1):\\n Refactored some variables in NPCComposition\\n\\nnuno (2):\\n Add Corsair Cove net fishing spot\\n hunter plugin: fix salamander net display\\n\\nrichardbadman (1):\\n Fixes easy clue\\n\\nrune3132 (4):\\n Adds individual clue counts to highscore plugin\\n jewellery count plugin: add ring of recoil breaking notification\\n clue plugin: order map clues after type and id\\n clue plugin: fix/add various clues\\n\\nwinterdaze (1):\\n fix prayer enhance duration\\n
\\n\",\"image\":\"/img/blog/1.3.5-Release/web-xp-tracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/37.46a84afa.chunk.js b/static/js/37.8f07be97.chunk.js
similarity index 98%
rename from static/js/37.46a84afa.chunk.js
rename to static/js/37.8f07be97.chunk.js
index 37996936c..1c4db7b87 100644
--- a/static/js/37.46a84afa.chunk.js
+++ b/static/js/37.8f07be97.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[37],{312:function(e,n){e.exports={title:"1.3.6 Release",description:"Tile marking, clue bugfixes, and entity hider",author:"Adam",body:'A tile marker plugin has been added which allows you to highlight arbitrary\ntiles by holding shift and selecting "Mark". The markers are saved with your\nclient settings, and work even in instances.
\n
\nAgility shortcuts throughout the game are now highlighted, and the agility\nplugin now highlights marks of grace:
\n
\nA fairy ring location plugin was added which tells you the location fairy rings\nare configured to:
\n
\nAn entity hider plugin was added which lets you hide other players and npcs from\nview.
\n
\nThere has been a large effort to fix and correct all of the clues from the\ncluescroll plugin. I expect a few more releases before it is solid, but it\nshould no longer point at random objects anymore.
\nThere are also several smaller improvements and bug fixes, including:
\n\nOpponent info should no longer sometimes show "null" for opponent name \nThe infoboxes now have a configurable wrap limit, and can be configured to\nstack verically instead. \nSupport for slayer braclets have been added to the slayer plugin \nThe MLM plugin now only shows veins on the same floor as you are \nFix notes plugin to textwrap \nAdd kingdom of misc. to screenshot plugin \nThe length XP globes are shown is now configurable \nFix client resizing itself when the plugin panel is collapsed and the client\nis maximized \nColor HP xp drops when praying too if XP drops are split \n"Actions Left" has been added to XP globes \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (22):\n ge plugin: use query runner for bank query\n perspective: use LOCAL_COORD_BITS in getTileHeight and document that parameters are local coords\n Remove unnecessary groupdIds that are equivalent to the parents\n Rename runelite api artifact to runelite-api\n Rename runescape api artifact to runescape-api\n Change pushingpixels groupId to be under net/runelite\n Update cache-server test to use cache 165 too\n overlay renderer: fix npe when client is null\n devtools: show instance location information\n Add ground marker plugin\n tile mixin: don\'t fire itemlayer change events when loading regions\n update check service: set a lower connect timeout\n Add command executed event\n runescape-client: rename pendingVarbitChanges/Count\n devtools plugin: add commands to get and set varbits\n idle notifier plugin: use wildcard import for animation ids\n runelite config: add position to config items\n infobox overlay: Configure the amount of boxes per row\n npc mixin: transform npc in getName/getCombatLevel/getId\n npc indicators: fix npe building npcs\n Revert "Merge pull request #1886 from deathbeam/cleanup-sidebar"\n xp tracker service: fix deadlock acquiring connections\n\nCas van Dongen (1):\n Slayer plugin: Added support for slayer bracelets.\n\nGabriel (2):\n Fix and add a few medium clue steps\n Fix anagram, cryptic and emote medium clues (#1876)\n\nGamer1120 (1):\n Only render mining spots on same floor in MLM. Fixes #1642\n\nGrant Dellar (1):\n Change JEditorPane to JTextArea\n\nHypoxiaOSRS (3):\n screenshot plugin: add Kingdom screenshot\n Add rune and addy dragon slayer icons (#1725)\n Fix gnome agility arena emote clue\n\nH\xe5kon Rosseland Paulsen (1):\n xpglobes: add duration of xp orbs in config\n\nInfinitay (2):\n kingdom plugin: only show favour when in kingdom\n Add fairy ring plugin\n\nJeremy Plsek (5):\n clientui: don\'t update size if already maximized\n geplugin: create input listener class\n geplugin: replace default action when pressing alt\n stretched mode: pass extended modifiers on click\n Highlight agility shortcuts\n\nJeroen (2):\n Added an idle notification for when crushing infernal eels.\n Add support for colored HP xp drops if XP drops are split and a combat prayer is active\n\nJerwuQu (1):\n Allow customization of barrows brother location colors\n\nJordan Atwood (1):\n Fix Canifis emote clue\n\nKamiel (4):\n Change regen meter arc position and size to match with orb background\n Draw player indicator clan icon further away from player name\n Add VarClientStr to api and rename VarClient to VarClientInt\n Change ground marker plugin to use selected region tile coords instead of basing them off of mouse location\n\nLevi Schuck (1):\n Sort Fishing spots by distance from camera\n\nLotto (2):\n cluescroll-plugin: group item variants + display when to unequip items\n Add entity hider plugin\n\nMantautas Jurksa (2):\n cluescroll plugin: remove tags from clue text\n Fix barbarian chest and abbot langley clue steps\n\nReasel (1):\n Add dropdown for font style for in-game overlays\n\nRheon-D (1):\n agility plugin: add highlighting for marks of grace\n\nRune Nielsen (3):\n Clue plugin: fix easy and medium cryptic and emote clues (#1726)\n IdleNotifierPlugin: Add big net fishing\n IdleNotifier: Add infernal harpoon\n\nSamlof (1):\n Add more travel menu swap options and claim slime swap\n\nSeth (3):\n overlay util: remove white outline on minimap dots\n barrows overlay: Reorder enum to match in game overlay/use full name\n barrows overlay: Replace existing slain brother overlay with our own\n\nSomeZer0 (1):\n Fix spirit tree cryptic clue step\n\nTomas Slusny (8):\n Add back support for regular overload (NMZ)\n Stronger visual indicators for MLM sack\n Do not use object world locations\n Make ObjectClueScroll extend LocationClueScroll\n Fix runelite-client shading\n Remove unnecessary code from GroundMarkerPlugin\n Fix herbiboar performance/blinking\n Cleanup sidebar expanding/closing\n\nTrees (1):\n Add Sacred Eels and Barehand Fishing (#1857)\n\nValmir Memeti (1):\n Add "Actions left" for Xp globes\n\nWooxSolo (2):\n Fix cannon cannonball count\n Fix 2 emote clues\n
\n',image:"/img/blog/1.3.6-Release/tilemarker.gif"}}}]);
-//# sourceMappingURL=37.46a84afa.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[37],{313:function(e,n){e.exports={title:"1.3.6 Release",description:"Tile marking, clue bugfixes, and entity hider",author:"Adam",body:'A tile marker plugin has been added which allows you to highlight arbitrary\ntiles by holding shift and selecting "Mark". The markers are saved with your\nclient settings, and work even in instances.
\n
\nAgility shortcuts throughout the game are now highlighted, and the agility\nplugin now highlights marks of grace:
\n
\nA fairy ring location plugin was added which tells you the location fairy rings\nare configured to:
\n
\nAn entity hider plugin was added which lets you hide other players and npcs from\nview.
\n
\nThere has been a large effort to fix and correct all of the clues from the\ncluescroll plugin. I expect a few more releases before it is solid, but it\nshould no longer point at random objects anymore.
\nThere are also several smaller improvements and bug fixes, including:
\n\nOpponent info should no longer sometimes show "null" for opponent name \nThe infoboxes now have a configurable wrap limit, and can be configured to\nstack verically instead. \nSupport for slayer braclets have been added to the slayer plugin \nThe MLM plugin now only shows veins on the same floor as you are \nFix notes plugin to textwrap \nAdd kingdom of misc. to screenshot plugin \nThe length XP globes are shown is now configurable \nFix client resizing itself when the plugin panel is collapsed and the client\nis maximized \nColor HP xp drops when praying too if XP drops are split \n"Actions Left" has been added to XP globes \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (22):\n ge plugin: use query runner for bank query\n perspective: use LOCAL_COORD_BITS in getTileHeight and document that parameters are local coords\n Remove unnecessary groupdIds that are equivalent to the parents\n Rename runelite api artifact to runelite-api\n Rename runescape api artifact to runescape-api\n Change pushingpixels groupId to be under net/runelite\n Update cache-server test to use cache 165 too\n overlay renderer: fix npe when client is null\n devtools: show instance location information\n Add ground marker plugin\n tile mixin: don\'t fire itemlayer change events when loading regions\n update check service: set a lower connect timeout\n Add command executed event\n runescape-client: rename pendingVarbitChanges/Count\n devtools plugin: add commands to get and set varbits\n idle notifier plugin: use wildcard import for animation ids\n runelite config: add position to config items\n infobox overlay: Configure the amount of boxes per row\n npc mixin: transform npc in getName/getCombatLevel/getId\n npc indicators: fix npe building npcs\n Revert "Merge pull request #1886 from deathbeam/cleanup-sidebar"\n xp tracker service: fix deadlock acquiring connections\n\nCas van Dongen (1):\n Slayer plugin: Added support for slayer bracelets.\n\nGabriel (2):\n Fix and add a few medium clue steps\n Fix anagram, cryptic and emote medium clues (#1876)\n\nGamer1120 (1):\n Only render mining spots on same floor in MLM. Fixes #1642\n\nGrant Dellar (1):\n Change JEditorPane to JTextArea\n\nHypoxiaOSRS (3):\n screenshot plugin: add Kingdom screenshot\n Add rune and addy dragon slayer icons (#1725)\n Fix gnome agility arena emote clue\n\nH\xe5kon Rosseland Paulsen (1):\n xpglobes: add duration of xp orbs in config\n\nInfinitay (2):\n kingdom plugin: only show favour when in kingdom\n Add fairy ring plugin\n\nJeremy Plsek (5):\n clientui: don\'t update size if already maximized\n geplugin: create input listener class\n geplugin: replace default action when pressing alt\n stretched mode: pass extended modifiers on click\n Highlight agility shortcuts\n\nJeroen (2):\n Added an idle notification for when crushing infernal eels.\n Add support for colored HP xp drops if XP drops are split and a combat prayer is active\n\nJerwuQu (1):\n Allow customization of barrows brother location colors\n\nJordan Atwood (1):\n Fix Canifis emote clue\n\nKamiel (4):\n Change regen meter arc position and size to match with orb background\n Draw player indicator clan icon further away from player name\n Add VarClientStr to api and rename VarClient to VarClientInt\n Change ground marker plugin to use selected region tile coords instead of basing them off of mouse location\n\nLevi Schuck (1):\n Sort Fishing spots by distance from camera\n\nLotto (2):\n cluescroll-plugin: group item variants + display when to unequip items\n Add entity hider plugin\n\nMantautas Jurksa (2):\n cluescroll plugin: remove tags from clue text\n Fix barbarian chest and abbot langley clue steps\n\nReasel (1):\n Add dropdown for font style for in-game overlays\n\nRheon-D (1):\n agility plugin: add highlighting for marks of grace\n\nRune Nielsen (3):\n Clue plugin: fix easy and medium cryptic and emote clues (#1726)\n IdleNotifierPlugin: Add big net fishing\n IdleNotifier: Add infernal harpoon\n\nSamlof (1):\n Add more travel menu swap options and claim slime swap\n\nSeth (3):\n overlay util: remove white outline on minimap dots\n barrows overlay: Reorder enum to match in game overlay/use full name\n barrows overlay: Replace existing slain brother overlay with our own\n\nSomeZer0 (1):\n Fix spirit tree cryptic clue step\n\nTomas Slusny (8):\n Add back support for regular overload (NMZ)\n Stronger visual indicators for MLM sack\n Do not use object world locations\n Make ObjectClueScroll extend LocationClueScroll\n Fix runelite-client shading\n Remove unnecessary code from GroundMarkerPlugin\n Fix herbiboar performance/blinking\n Cleanup sidebar expanding/closing\n\nTrees (1):\n Add Sacred Eels and Barehand Fishing (#1857)\n\nValmir Memeti (1):\n Add "Actions left" for Xp globes\n\nWooxSolo (2):\n Fix cannon cannonball count\n Fix 2 emote clues\n
\n',image:"/img/blog/1.3.6-Release/tilemarker.gif"}}}]);
+//# sourceMappingURL=37.8f07be97.chunk.js.map
\ No newline at end of file
diff --git a/static/js/37.46a84afa.chunk.js.map b/static/js/37.8f07be97.chunk.js.map
similarity index 99%
rename from static/js/37.46a84afa.chunk.js.map
rename to static/js/37.8f07be97.chunk.js.map
index 4a2131cea..2cc9560b2 100644
--- a/static/js/37.46a84afa.chunk.js.map
+++ b/static/js/37.8f07be97.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-04-26-00-00-1.3.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gDAAgD,OAAS,OAAO,KAAO,06MAAq7M,MAAQ","file":"static/js/37.46a84afa.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.6 Release\",\"description\":\"Tile marking, clue bugfixes, and entity hider\",\"author\":\"Adam\",\"body\":\"A tile marker plugin has been added which allows you to highlight arbitrary\\ntiles by holding shift and selecting "Mark". The markers are saved with your\\nclient settings, and work even in instances.
\\n
\\nAgility shortcuts throughout the game are now highlighted, and the agility\\nplugin now highlights marks of grace:
\\n
\\nA fairy ring location plugin was added which tells you the location fairy rings\\nare configured to:
\\n
\\nAn entity hider plugin was added which lets you hide other players and npcs from\\nview.
\\n
\\nThere has been a large effort to fix and correct all of the clues from the\\ncluescroll plugin. I expect a few more releases before it is solid, but it\\nshould no longer point at random objects anymore.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nOpponent info should no longer sometimes show "null" for opponent name \\nThe infoboxes now have a configurable wrap limit, and can be configured to\\nstack verically instead. \\nSupport for slayer braclets have been added to the slayer plugin \\nThe MLM plugin now only shows veins on the same floor as you are \\nFix notes plugin to textwrap \\nAdd kingdom of misc. to screenshot plugin \\nThe length XP globes are shown is now configurable \\nFix client resizing itself when the plugin panel is collapsed and the client\\nis maximized \\nColor HP xp drops when praying too if XP drops are split \\n"Actions Left" has been added to XP globes \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (22):\\n ge plugin: use query runner for bank query\\n perspective: use LOCAL_COORD_BITS in getTileHeight and document that parameters are local coords\\n Remove unnecessary groupdIds that are equivalent to the parents\\n Rename runelite api artifact to runelite-api\\n Rename runescape api artifact to runescape-api\\n Change pushingpixels groupId to be under net/runelite\\n Update cache-server test to use cache 165 too\\n overlay renderer: fix npe when client is null\\n devtools: show instance location information\\n Add ground marker plugin\\n tile mixin: don't fire itemlayer change events when loading regions\\n update check service: set a lower connect timeout\\n Add command executed event\\n runescape-client: rename pendingVarbitChanges/Count\\n devtools plugin: add commands to get and set varbits\\n idle notifier plugin: use wildcard import for animation ids\\n runelite config: add position to config items\\n infobox overlay: Configure the amount of boxes per row\\n npc mixin: transform npc in getName/getCombatLevel/getId\\n npc indicators: fix npe building npcs\\n Revert "Merge pull request #1886 from deathbeam/cleanup-sidebar"\\n xp tracker service: fix deadlock acquiring connections\\n\\nCas van Dongen (1):\\n Slayer plugin: Added support for slayer bracelets.\\n\\nGabriel (2):\\n Fix and add a few medium clue steps\\n Fix anagram, cryptic and emote medium clues (#1876)\\n\\nGamer1120 (1):\\n Only render mining spots on same floor in MLM. Fixes #1642\\n\\nGrant Dellar (1):\\n Change JEditorPane to JTextArea\\n\\nHypoxiaOSRS (3):\\n screenshot plugin: add Kingdom screenshot\\n Add rune and addy dragon slayer icons (#1725)\\n Fix gnome agility arena emote clue\\n\\nHåkon Rosseland Paulsen (1):\\n xpglobes: add duration of xp orbs in config\\n\\nInfinitay (2):\\n kingdom plugin: only show favour when in kingdom\\n Add fairy ring plugin\\n\\nJeremy Plsek (5):\\n clientui: don't update size if already maximized\\n geplugin: create input listener class\\n geplugin: replace default action when pressing alt\\n stretched mode: pass extended modifiers on click\\n Highlight agility shortcuts\\n\\nJeroen (2):\\n Added an idle notification for when crushing infernal eels.\\n Add support for colored HP xp drops if XP drops are split and a combat prayer is active\\n\\nJerwuQu (1):\\n Allow customization of barrows brother location colors\\n\\nJordan Atwood (1):\\n Fix Canifis emote clue\\n\\nKamiel (4):\\n Change regen meter arc position and size to match with orb background\\n Draw player indicator clan icon further away from player name\\n Add VarClientStr to api and rename VarClient to VarClientInt\\n Change ground marker plugin to use selected region tile coords instead of basing them off of mouse location\\n\\nLevi Schuck (1):\\n Sort Fishing spots by distance from camera\\n\\nLotto (2):\\n cluescroll-plugin: group item variants + display when to unequip items\\n Add entity hider plugin\\n\\nMantautas Jurksa (2):\\n cluescroll plugin: remove tags from clue text\\n Fix barbarian chest and abbot langley clue steps\\n\\nReasel (1):\\n Add dropdown for font style for in-game overlays\\n\\nRheon-D (1):\\n agility plugin: add highlighting for marks of grace\\n\\nRune Nielsen (3):\\n Clue plugin: fix easy and medium cryptic and emote clues (#1726)\\n IdleNotifierPlugin: Add big net fishing\\n IdleNotifier: Add infernal harpoon\\n\\nSamlof (1):\\n Add more travel menu swap options and claim slime swap\\n\\nSeth (3):\\n overlay util: remove white outline on minimap dots\\n barrows overlay: Reorder enum to match in game overlay/use full name\\n barrows overlay: Replace existing slain brother overlay with our own\\n\\nSomeZer0 (1):\\n Fix spirit tree cryptic clue step\\n\\nTomas Slusny (8):\\n Add back support for regular overload (NMZ)\\n Stronger visual indicators for MLM sack\\n Do not use object world locations\\n Make ObjectClueScroll extend LocationClueScroll\\n Fix runelite-client shading\\n Remove unnecessary code from GroundMarkerPlugin\\n Fix herbiboar performance/blinking\\n Cleanup sidebar expanding/closing\\n\\nTrees (1):\\n Add Sacred Eels and Barehand Fishing (#1857)\\n\\nValmir Memeti (1):\\n Add "Actions left" for Xp globes\\n\\nWooxSolo (2):\\n Fix cannon cannonball count\\n Fix 2 emote clues\\n
\\n\",\"image\":\"/img/blog/1.3.6-Release/tilemarker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-04-26-00-00-1.3.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gDAAgD,OAAS,OAAO,KAAO,06MAAq7M,MAAQ","file":"static/js/37.8f07be97.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.6 Release\",\"description\":\"Tile marking, clue bugfixes, and entity hider\",\"author\":\"Adam\",\"body\":\"A tile marker plugin has been added which allows you to highlight arbitrary\\ntiles by holding shift and selecting "Mark". The markers are saved with your\\nclient settings, and work even in instances.
\\n
\\nAgility shortcuts throughout the game are now highlighted, and the agility\\nplugin now highlights marks of grace:
\\n
\\nA fairy ring location plugin was added which tells you the location fairy rings\\nare configured to:
\\n
\\nAn entity hider plugin was added which lets you hide other players and npcs from\\nview.
\\n
\\nThere has been a large effort to fix and correct all of the clues from the\\ncluescroll plugin. I expect a few more releases before it is solid, but it\\nshould no longer point at random objects anymore.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nOpponent info should no longer sometimes show "null" for opponent name \\nThe infoboxes now have a configurable wrap limit, and can be configured to\\nstack verically instead. \\nSupport for slayer braclets have been added to the slayer plugin \\nThe MLM plugin now only shows veins on the same floor as you are \\nFix notes plugin to textwrap \\nAdd kingdom of misc. to screenshot plugin \\nThe length XP globes are shown is now configurable \\nFix client resizing itself when the plugin panel is collapsed and the client\\nis maximized \\nColor HP xp drops when praying too if XP drops are split \\n"Actions Left" has been added to XP globes \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (22):\\n ge plugin: use query runner for bank query\\n perspective: use LOCAL_COORD_BITS in getTileHeight and document that parameters are local coords\\n Remove unnecessary groupdIds that are equivalent to the parents\\n Rename runelite api artifact to runelite-api\\n Rename runescape api artifact to runescape-api\\n Change pushingpixels groupId to be under net/runelite\\n Update cache-server test to use cache 165 too\\n overlay renderer: fix npe when client is null\\n devtools: show instance location information\\n Add ground marker plugin\\n tile mixin: don't fire itemlayer change events when loading regions\\n update check service: set a lower connect timeout\\n Add command executed event\\n runescape-client: rename pendingVarbitChanges/Count\\n devtools plugin: add commands to get and set varbits\\n idle notifier plugin: use wildcard import for animation ids\\n runelite config: add position to config items\\n infobox overlay: Configure the amount of boxes per row\\n npc mixin: transform npc in getName/getCombatLevel/getId\\n npc indicators: fix npe building npcs\\n Revert "Merge pull request #1886 from deathbeam/cleanup-sidebar"\\n xp tracker service: fix deadlock acquiring connections\\n\\nCas van Dongen (1):\\n Slayer plugin: Added support for slayer bracelets.\\n\\nGabriel (2):\\n Fix and add a few medium clue steps\\n Fix anagram, cryptic and emote medium clues (#1876)\\n\\nGamer1120 (1):\\n Only render mining spots on same floor in MLM. Fixes #1642\\n\\nGrant Dellar (1):\\n Change JEditorPane to JTextArea\\n\\nHypoxiaOSRS (3):\\n screenshot plugin: add Kingdom screenshot\\n Add rune and addy dragon slayer icons (#1725)\\n Fix gnome agility arena emote clue\\n\\nHåkon Rosseland Paulsen (1):\\n xpglobes: add duration of xp orbs in config\\n\\nInfinitay (2):\\n kingdom plugin: only show favour when in kingdom\\n Add fairy ring plugin\\n\\nJeremy Plsek (5):\\n clientui: don't update size if already maximized\\n geplugin: create input listener class\\n geplugin: replace default action when pressing alt\\n stretched mode: pass extended modifiers on click\\n Highlight agility shortcuts\\n\\nJeroen (2):\\n Added an idle notification for when crushing infernal eels.\\n Add support for colored HP xp drops if XP drops are split and a combat prayer is active\\n\\nJerwuQu (1):\\n Allow customization of barrows brother location colors\\n\\nJordan Atwood (1):\\n Fix Canifis emote clue\\n\\nKamiel (4):\\n Change regen meter arc position and size to match with orb background\\n Draw player indicator clan icon further away from player name\\n Add VarClientStr to api and rename VarClient to VarClientInt\\n Change ground marker plugin to use selected region tile coords instead of basing them off of mouse location\\n\\nLevi Schuck (1):\\n Sort Fishing spots by distance from camera\\n\\nLotto (2):\\n cluescroll-plugin: group item variants + display when to unequip items\\n Add entity hider plugin\\n\\nMantautas Jurksa (2):\\n cluescroll plugin: remove tags from clue text\\n Fix barbarian chest and abbot langley clue steps\\n\\nReasel (1):\\n Add dropdown for font style for in-game overlays\\n\\nRheon-D (1):\\n agility plugin: add highlighting for marks of grace\\n\\nRune Nielsen (3):\\n Clue plugin: fix easy and medium cryptic and emote clues (#1726)\\n IdleNotifierPlugin: Add big net fishing\\n IdleNotifier: Add infernal harpoon\\n\\nSamlof (1):\\n Add more travel menu swap options and claim slime swap\\n\\nSeth (3):\\n overlay util: remove white outline on minimap dots\\n barrows overlay: Reorder enum to match in game overlay/use full name\\n barrows overlay: Replace existing slain brother overlay with our own\\n\\nSomeZer0 (1):\\n Fix spirit tree cryptic clue step\\n\\nTomas Slusny (8):\\n Add back support for regular overload (NMZ)\\n Stronger visual indicators for MLM sack\\n Do not use object world locations\\n Make ObjectClueScroll extend LocationClueScroll\\n Fix runelite-client shading\\n Remove unnecessary code from GroundMarkerPlugin\\n Fix herbiboar performance/blinking\\n Cleanup sidebar expanding/closing\\n\\nTrees (1):\\n Add Sacred Eels and Barehand Fishing (#1857)\\n\\nValmir Memeti (1):\\n Add "Actions left" for Xp globes\\n\\nWooxSolo (2):\\n Fix cannon cannonball count\\n Fix 2 emote clues\\n
\\n\",\"image\":\"/img/blog/1.3.6-Release/tilemarker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/38.e089d5ec.chunk.js b/static/js/38.839a3a9f.chunk.js
similarity index 98%
rename from static/js/38.e089d5ec.chunk.js
rename to static/js/38.839a3a9f.chunk.js
index f4edd1e54..dc669d2b4 100644
--- a/static/js/38.e089d5ec.chunk.js
+++ b/static/js/38.839a3a9f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[38],{313:function(e,n){e.exports={title:"1.3.7 Release",description:"Farming plugin, demonic gorilla plugin, and cerberus plugin",author:"Adam",body:'This release adds a farming tracker plugin, which keeps track of what time your\ncrops were planted and will notify you after a time when it would be fully\ngrown. Thanks to @abextm and\n@NotFoxtrot for their work on this over the\nlast few weeks.
\n
\n@WooxSolo contributed a demonic gorilla plugin,\nwhich counts the attacks against you so you can tell when it will switch attack\nstyles. After it switches, the new style is displayed.
\n
\nA Cerberus plugin has been added, from\n@deathbeam which shows the ghost order.
\n
\nAlso, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe cannonball count plugin tracks the count correctly again \nThe side toolbar can now be hidden via a button in the menu bar, or ctrl+f11 \nThere is now a toggle for highlighting agility shortcuts \nA vengeance other timer has been added \nThe XP orbs stay on screen while hovered \nThird age tools added to idle notifier \nXP tracker "actions left" no longer rounds down, and doesn\'t get confused by\nhopping accounts anymore \nScreenshots can now be taken with the "insert" key \nAdd ability to disable low HP and prayer notifications \nAdd skill progress bar to hiscore panel \nAdd stat change indicator to boosts plugin when indicators are selected \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 25 contributors this release!
\nAdam (22):\n update check: set read timeout on socket, move off of request thread\n item controller: remove all synchronous fetching\n item service: move overflow of pending lookups log message to debug\n ws service: optimize session storage\n Revert "Fix cannon cannonball count"\n runelite: fix check for client before requesting itemmanager\n runelite: add --disable-update-check\n account service: fix not setting autoincrement on user id\n runescape-client: export changedSkills and changedSkillsCount\n runelite-api: add VisibleForDevtools annotation for methods only visible for use in devtools\n devtools: add addxp\n runelite-api: add headicon enum\n demonic gorilla plugin: use headicon api\n http-service: fix sql2o statement leak\n Add maven-compiler-plugin to plugin management\n devtools: post xp changed event too\n runescape-client: export world map related symbols\n Use only southermost ghost wave for cerb plugin\n scripts: update comand script from live\n scripts: update options panel rebuilder from live\n scripts: apply zoom limits to options panel rebuilder\n scripts: apply command callback to command script\n\nBrandon Kase (2):\n Adjust stomp dragon-axe clue location\n Add missing comma to hard cryptic\n\nDennis (1):\n fix prayer reorder shutdown\n\nFatalWaffles (1):\n Fix Beckon in Digsite location\n\nGrant (1):\n Add Agility shortcut highlight toggle\n\nHydrox6 (2):\n Add Vengeance Other indicator\n Reorder Timer configuration options\n\nJeroen (1):\n XpGlobe now stays on screen while hovered over it.\n\nJordan (1):\n Add Zeah Altar elite map clue (#2283)\n\nJordan Atwood (5):\n Add missing Pyramid emote clue item\n Fix Shayzien command tent emote clue\n Fix hard cryptic clue\n Allow "degree" and "minute" in coordinate clues\n Use British floor numbering in clue scroll hints\n\nKamiel (6):\n Expose Actor animation and actionFrame to API\n Add anim command to developer tools\n Expose Actor graphic and spotAnimFrame to API\n Add gfx command to developer tools\n Add logger command to change the logger level\n Add 3rd Age Axe and 3rd Age Pickaxe animations to Idle Notifier\n\nLevi (2):\n Refactor overlay renderer screenshot code into a draw manager\n xp tracker: rewrite tracking datastructures\n\nLotto (1):\n cluescrolls: support any type of ring of dueling in emote clues\n\nMaiddog (3):\n clues: fix spotted cape not being detected\n clues: change npc name check to nameEquals\n Fix various clue objects and locations.\n\nMantautas Jurksa (1):\n Fix master fire cape emote clue\n\nMarcus Heine (1):\n Enable screenshotting with INSERT\n\nMax Weber (17):\n Initialize ItemManager to a complete state\n Allow ClientThread to re-run invokeLater-ed methods\n Allow ItemManager to be ran off the client thread\n Use ItemManager in KourendLibraryPlugin\n Use ItemManager in GrandExchangePlugin\n cache: Name ObjectDefiniton\'s varpID and configID correctly\n Add various animation IDs\n Add UsernameChanged event\n Add WorldPoint::getRegionID\n Allow PluginPanels to opt-out of the scrollbar\n Add FarmingTracker plugin\n configmanager: Allow multiple delimiters\n Add missing U+00A0 NO-BREAK SPACE character\n Rename Setting to VarPlayer\n Merge Varcs into Client::getVar\n Rename SettingsTracker\n farmingtracker: Prevent saving when teleporting\n\nMorgan Lewis (1):\n Add support for mapping parameter names\n\nNotFoxtrot (2):\n Fix cryptic elite clue: Father Aereck\n Fix master clue emote: Entrana church\n\nReasel (1):\n Add ability to disable HP and Prayer notifications (#2007)\n\nRprrr (2):\n screenshot plugin: fix exception when taking screenshots on login\n Fixes #2146 (Brother Tranquility \'talk-to\' & \'\'transport\' option swap w/Menu Swapper plugin)\n\nSamuel Beresford (1):\n Adds skill progress bar to hiscore panel Matches existing progress bar (look&feel) as xp tracker\n\nSeth (6):\n boosts overlay: move next change text to display at the top\n boosts plugin: Add stat change indicator when indicators are selected\n opponent info: reduce padding size\n clue scroll: add toggle for hint arrows\n clue scroll: fix easy clue\n farming panel: reset progress bar background\n\nSoyChai (5):\n Correct misspellings of "transparent"\n Add underscores to minigame names in WidgetInfo\n agilityplugin: Rename plugin package to agility\n reportbutton: Double frequency of time updates to avoid skipping seconds\n discord: Display skill icons in Discord while training\n\nTomas Slusny (10):\n Agility plugin small code cleanup\n Do not draw text on top of Mark Of Grace\n Add support for hiding the sidebar\n Fix clue requiring platebody, but wanting legs\n Remove unused imports in ClientUI (#2061)\n Reset clues based on item ID\n Reset clue on unknown clues\n Add Cerberus plugin\n Verify game\'s minimum size\n Add mappings for currentLoginField\n\nWooxSolo (12):\n Add rectangle support to config\n Remember screen position after closing and reopening\n Add ability to lock client to screen\n runescape-client: export hitsplatValues and applyActorHitsplat\n runelite-api: add hitsplat applied event\n runelite-api: export collision data\n runelite-api: add line of sight algorithm\n runelite-api: add WorldArea\n devtools: add line of sight and valid moves\n Add demonic gorilla plugin\n cannon plugin: fix cannonball count when loading and firing on the same tick\n cannon plugin: add granite cannonball to unload check\n\noplosthee (1):\n Add toggle for drawing overhead player names to PlayerIndicators plugin\n\nu6077743 (1):\n Improved low hp notif. by considering nmz absorption, 2210\n
\n',image:"/img/blog/1.3.7-Release/farming.png"}}}]);
-//# sourceMappingURL=38.e089d5ec.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[38],{314:function(e,n){e.exports={title:"1.3.7 Release",description:"Farming plugin, demonic gorilla plugin, and cerberus plugin",author:"Adam",body:'This release adds a farming tracker plugin, which keeps track of what time your\ncrops were planted and will notify you after a time when it would be fully\ngrown. Thanks to @abextm and\n@NotFoxtrot for their work on this over the\nlast few weeks.
\n
\n@WooxSolo contributed a demonic gorilla plugin,\nwhich counts the attacks against you so you can tell when it will switch attack\nstyles. After it switches, the new style is displayed.
\n
\nA Cerberus plugin has been added, from\n@deathbeam which shows the ghost order.
\n
\nAlso, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe cannonball count plugin tracks the count correctly again \nThe side toolbar can now be hidden via a button in the menu bar, or ctrl+f11 \nThere is now a toggle for highlighting agility shortcuts \nA vengeance other timer has been added \nThe XP orbs stay on screen while hovered \nThird age tools added to idle notifier \nXP tracker "actions left" no longer rounds down, and doesn\'t get confused by\nhopping accounts anymore \nScreenshots can now be taken with the "insert" key \nAdd ability to disable low HP and prayer notifications \nAdd skill progress bar to hiscore panel \nAdd stat change indicator to boosts plugin when indicators are selected \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 25 contributors this release!
\nAdam (22):\n update check: set read timeout on socket, move off of request thread\n item controller: remove all synchronous fetching\n item service: move overflow of pending lookups log message to debug\n ws service: optimize session storage\n Revert "Fix cannon cannonball count"\n runelite: fix check for client before requesting itemmanager\n runelite: add --disable-update-check\n account service: fix not setting autoincrement on user id\n runescape-client: export changedSkills and changedSkillsCount\n runelite-api: add VisibleForDevtools annotation for methods only visible for use in devtools\n devtools: add addxp\n runelite-api: add headicon enum\n demonic gorilla plugin: use headicon api\n http-service: fix sql2o statement leak\n Add maven-compiler-plugin to plugin management\n devtools: post xp changed event too\n runescape-client: export world map related symbols\n Use only southermost ghost wave for cerb plugin\n scripts: update comand script from live\n scripts: update options panel rebuilder from live\n scripts: apply zoom limits to options panel rebuilder\n scripts: apply command callback to command script\n\nBrandon Kase (2):\n Adjust stomp dragon-axe clue location\n Add missing comma to hard cryptic\n\nDennis (1):\n fix prayer reorder shutdown\n\nFatalWaffles (1):\n Fix Beckon in Digsite location\n\nGrant (1):\n Add Agility shortcut highlight toggle\n\nHydrox6 (2):\n Add Vengeance Other indicator\n Reorder Timer configuration options\n\nJeroen (1):\n XpGlobe now stays on screen while hovered over it.\n\nJordan (1):\n Add Zeah Altar elite map clue (#2283)\n\nJordan Atwood (5):\n Add missing Pyramid emote clue item\n Fix Shayzien command tent emote clue\n Fix hard cryptic clue\n Allow "degree" and "minute" in coordinate clues\n Use British floor numbering in clue scroll hints\n\nKamiel (6):\n Expose Actor animation and actionFrame to API\n Add anim command to developer tools\n Expose Actor graphic and spotAnimFrame to API\n Add gfx command to developer tools\n Add logger command to change the logger level\n Add 3rd Age Axe and 3rd Age Pickaxe animations to Idle Notifier\n\nLevi (2):\n Refactor overlay renderer screenshot code into a draw manager\n xp tracker: rewrite tracking datastructures\n\nLotto (1):\n cluescrolls: support any type of ring of dueling in emote clues\n\nMaiddog (3):\n clues: fix spotted cape not being detected\n clues: change npc name check to nameEquals\n Fix various clue objects and locations.\n\nMantautas Jurksa (1):\n Fix master fire cape emote clue\n\nMarcus Heine (1):\n Enable screenshotting with INSERT\n\nMax Weber (17):\n Initialize ItemManager to a complete state\n Allow ClientThread to re-run invokeLater-ed methods\n Allow ItemManager to be ran off the client thread\n Use ItemManager in KourendLibraryPlugin\n Use ItemManager in GrandExchangePlugin\n cache: Name ObjectDefiniton\'s varpID and configID correctly\n Add various animation IDs\n Add UsernameChanged event\n Add WorldPoint::getRegionID\n Allow PluginPanels to opt-out of the scrollbar\n Add FarmingTracker plugin\n configmanager: Allow multiple delimiters\n Add missing U+00A0 NO-BREAK SPACE character\n Rename Setting to VarPlayer\n Merge Varcs into Client::getVar\n Rename SettingsTracker\n farmingtracker: Prevent saving when teleporting\n\nMorgan Lewis (1):\n Add support for mapping parameter names\n\nNotFoxtrot (2):\n Fix cryptic elite clue: Father Aereck\n Fix master clue emote: Entrana church\n\nReasel (1):\n Add ability to disable HP and Prayer notifications (#2007)\n\nRprrr (2):\n screenshot plugin: fix exception when taking screenshots on login\n Fixes #2146 (Brother Tranquility \'talk-to\' & \'\'transport\' option swap w/Menu Swapper plugin)\n\nSamuel Beresford (1):\n Adds skill progress bar to hiscore panel Matches existing progress bar (look&feel) as xp tracker\n\nSeth (6):\n boosts overlay: move next change text to display at the top\n boosts plugin: Add stat change indicator when indicators are selected\n opponent info: reduce padding size\n clue scroll: add toggle for hint arrows\n clue scroll: fix easy clue\n farming panel: reset progress bar background\n\nSoyChai (5):\n Correct misspellings of "transparent"\n Add underscores to minigame names in WidgetInfo\n agilityplugin: Rename plugin package to agility\n reportbutton: Double frequency of time updates to avoid skipping seconds\n discord: Display skill icons in Discord while training\n\nTomas Slusny (10):\n Agility plugin small code cleanup\n Do not draw text on top of Mark Of Grace\n Add support for hiding the sidebar\n Fix clue requiring platebody, but wanting legs\n Remove unused imports in ClientUI (#2061)\n Reset clues based on item ID\n Reset clue on unknown clues\n Add Cerberus plugin\n Verify game\'s minimum size\n Add mappings for currentLoginField\n\nWooxSolo (12):\n Add rectangle support to config\n Remember screen position after closing and reopening\n Add ability to lock client to screen\n runescape-client: export hitsplatValues and applyActorHitsplat\n runelite-api: add hitsplat applied event\n runelite-api: export collision data\n runelite-api: add line of sight algorithm\n runelite-api: add WorldArea\n devtools: add line of sight and valid moves\n Add demonic gorilla plugin\n cannon plugin: fix cannonball count when loading and firing on the same tick\n cannon plugin: add granite cannonball to unload check\n\noplosthee (1):\n Add toggle for drawing overhead player names to PlayerIndicators plugin\n\nu6077743 (1):\n Improved low hp notif. by considering nmz absorption, 2210\n
\n',image:"/img/blog/1.3.7-Release/farming.png"}}}]);
+//# sourceMappingURL=38.839a3a9f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/38.e089d5ec.chunk.js.map b/static/js/38.839a3a9f.chunk.js.map
similarity index 99%
rename from static/js/38.e089d5ec.chunk.js.map
rename to static/js/38.839a3a9f.chunk.js.map
index 71bf4e84c..66d4c29b6 100644
--- a/static/js/38.e089d5ec.chunk.js.map
+++ b/static/js/38.839a3a9f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-03-00-00-1.3.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8DAA8D,OAAS,OAAO,KAAO,knQAA8oQ,MAAQ","file":"static/js/38.e089d5ec.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.7 Release\",\"description\":\"Farming plugin, demonic gorilla plugin, and cerberus plugin\",\"author\":\"Adam\",\"body\":\"This release adds a farming tracker plugin, which keeps track of what time your\\ncrops were planted and will notify you after a time when it would be fully\\ngrown. Thanks to @abextm and\\n@NotFoxtrot for their work on this over the\\nlast few weeks.
\\n
\\n@WooxSolo contributed a demonic gorilla plugin,\\nwhich counts the attacks against you so you can tell when it will switch attack\\nstyles. After it switches, the new style is displayed.
\\n
\\nA Cerberus plugin has been added, from\\n@deathbeam which shows the ghost order.
\\n
\\nAlso, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe cannonball count plugin tracks the count correctly again \\nThe side toolbar can now be hidden via a button in the menu bar, or ctrl+f11 \\nThere is now a toggle for highlighting agility shortcuts \\nA vengeance other timer has been added \\nThe XP orbs stay on screen while hovered \\nThird age tools added to idle notifier \\nXP tracker "actions left" no longer rounds down, and doesn't get confused by\\nhopping accounts anymore \\nScreenshots can now be taken with the "insert" key \\nAdd ability to disable low HP and prayer notifications \\nAdd skill progress bar to hiscore panel \\nAdd stat change indicator to boosts plugin when indicators are selected \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 25 contributors this release!
\\nAdam (22):\\n update check: set read timeout on socket, move off of request thread\\n item controller: remove all synchronous fetching\\n item service: move overflow of pending lookups log message to debug\\n ws service: optimize session storage\\n Revert "Fix cannon cannonball count"\\n runelite: fix check for client before requesting itemmanager\\n runelite: add --disable-update-check\\n account service: fix not setting autoincrement on user id\\n runescape-client: export changedSkills and changedSkillsCount\\n runelite-api: add VisibleForDevtools annotation for methods only visible for use in devtools\\n devtools: add addxp\\n runelite-api: add headicon enum\\n demonic gorilla plugin: use headicon api\\n http-service: fix sql2o statement leak\\n Add maven-compiler-plugin to plugin management\\n devtools: post xp changed event too\\n runescape-client: export world map related symbols\\n Use only southermost ghost wave for cerb plugin\\n scripts: update comand script from live\\n scripts: update options panel rebuilder from live\\n scripts: apply zoom limits to options panel rebuilder\\n scripts: apply command callback to command script\\n\\nBrandon Kase (2):\\n Adjust stomp dragon-axe clue location\\n Add missing comma to hard cryptic\\n\\nDennis (1):\\n fix prayer reorder shutdown\\n\\nFatalWaffles (1):\\n Fix Beckon in Digsite location\\n\\nGrant (1):\\n Add Agility shortcut highlight toggle\\n\\nHydrox6 (2):\\n Add Vengeance Other indicator\\n Reorder Timer configuration options\\n\\nJeroen (1):\\n XpGlobe now stays on screen while hovered over it.\\n\\nJordan (1):\\n Add Zeah Altar elite map clue (#2283)\\n\\nJordan Atwood (5):\\n Add missing Pyramid emote clue item\\n Fix Shayzien command tent emote clue\\n Fix hard cryptic clue\\n Allow "degree" and "minute" in coordinate clues\\n Use British floor numbering in clue scroll hints\\n\\nKamiel (6):\\n Expose Actor animation and actionFrame to API\\n Add anim command to developer tools\\n Expose Actor graphic and spotAnimFrame to API\\n Add gfx command to developer tools\\n Add logger command to change the logger level\\n Add 3rd Age Axe and 3rd Age Pickaxe animations to Idle Notifier\\n\\nLevi (2):\\n Refactor overlay renderer screenshot code into a draw manager\\n xp tracker: rewrite tracking datastructures\\n\\nLotto (1):\\n cluescrolls: support any type of ring of dueling in emote clues\\n\\nMaiddog (3):\\n clues: fix spotted cape not being detected\\n clues: change npc name check to nameEquals\\n Fix various clue objects and locations.\\n\\nMantautas Jurksa (1):\\n Fix master fire cape emote clue\\n\\nMarcus Heine (1):\\n Enable screenshotting with INSERT\\n\\nMax Weber (17):\\n Initialize ItemManager to a complete state\\n Allow ClientThread to re-run invokeLater-ed methods\\n Allow ItemManager to be ran off the client thread\\n Use ItemManager in KourendLibraryPlugin\\n Use ItemManager in GrandExchangePlugin\\n cache: Name ObjectDefiniton's varpID and configID correctly\\n Add various animation IDs\\n Add UsernameChanged event\\n Add WorldPoint::getRegionID\\n Allow PluginPanels to opt-out of the scrollbar\\n Add FarmingTracker plugin\\n configmanager: Allow multiple delimiters\\n Add missing U+00A0 NO-BREAK SPACE character\\n Rename Setting to VarPlayer\\n Merge Varcs into Client::getVar\\n Rename SettingsTracker\\n farmingtracker: Prevent saving when teleporting\\n\\nMorgan Lewis (1):\\n Add support for mapping parameter names\\n\\nNotFoxtrot (2):\\n Fix cryptic elite clue: Father Aereck\\n Fix master clue emote: Entrana church\\n\\nReasel (1):\\n Add ability to disable HP and Prayer notifications (#2007)\\n\\nRprrr (2):\\n screenshot plugin: fix exception when taking screenshots on login\\n Fixes #2146 (Brother Tranquility 'talk-to' & ''transport' option swap w/Menu Swapper plugin)\\n\\nSamuel Beresford (1):\\n Adds skill progress bar to hiscore panel Matches existing progress bar (look&feel) as xp tracker\\n\\nSeth (6):\\n boosts overlay: move next change text to display at the top\\n boosts plugin: Add stat change indicator when indicators are selected\\n opponent info: reduce padding size\\n clue scroll: add toggle for hint arrows\\n clue scroll: fix easy clue\\n farming panel: reset progress bar background\\n\\nSoyChai (5):\\n Correct misspellings of "transparent"\\n Add underscores to minigame names in WidgetInfo\\n agilityplugin: Rename plugin package to agility\\n reportbutton: Double frequency of time updates to avoid skipping seconds\\n discord: Display skill icons in Discord while training\\n\\nTomas Slusny (10):\\n Agility plugin small code cleanup\\n Do not draw text on top of Mark Of Grace\\n Add support for hiding the sidebar\\n Fix clue requiring platebody, but wanting legs\\n Remove unused imports in ClientUI (#2061)\\n Reset clues based on item ID\\n Reset clue on unknown clues\\n Add Cerberus plugin\\n Verify game's minimum size\\n Add mappings for currentLoginField\\n\\nWooxSolo (12):\\n Add rectangle support to config\\n Remember screen position after closing and reopening\\n Add ability to lock client to screen\\n runescape-client: export hitsplatValues and applyActorHitsplat\\n runelite-api: add hitsplat applied event\\n runelite-api: export collision data\\n runelite-api: add line of sight algorithm\\n runelite-api: add WorldArea\\n devtools: add line of sight and valid moves\\n Add demonic gorilla plugin\\n cannon plugin: fix cannonball count when loading and firing on the same tick\\n cannon plugin: add granite cannonball to unload check\\n\\noplosthee (1):\\n Add toggle for drawing overhead player names to PlayerIndicators plugin\\n\\nu6077743 (1):\\n Improved low hp notif. by considering nmz absorption, 2210\\n
\\n\",\"image\":\"/img/blog/1.3.7-Release/farming.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-03-00-00-1.3.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8DAA8D,OAAS,OAAO,KAAO,knQAA8oQ,MAAQ","file":"static/js/38.839a3a9f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.7 Release\",\"description\":\"Farming plugin, demonic gorilla plugin, and cerberus plugin\",\"author\":\"Adam\",\"body\":\"This release adds a farming tracker plugin, which keeps track of what time your\\ncrops were planted and will notify you after a time when it would be fully\\ngrown. Thanks to @abextm and\\n@NotFoxtrot for their work on this over the\\nlast few weeks.
\\n
\\n@WooxSolo contributed a demonic gorilla plugin,\\nwhich counts the attacks against you so you can tell when it will switch attack\\nstyles. After it switches, the new style is displayed.
\\n
\\nA Cerberus plugin has been added, from\\n@deathbeam which shows the ghost order.
\\n
\\nAlso, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe cannonball count plugin tracks the count correctly again \\nThe side toolbar can now be hidden via a button in the menu bar, or ctrl+f11 \\nThere is now a toggle for highlighting agility shortcuts \\nA vengeance other timer has been added \\nThe XP orbs stay on screen while hovered \\nThird age tools added to idle notifier \\nXP tracker "actions left" no longer rounds down, and doesn't get confused by\\nhopping accounts anymore \\nScreenshots can now be taken with the "insert" key \\nAdd ability to disable low HP and prayer notifications \\nAdd skill progress bar to hiscore panel \\nAdd stat change indicator to boosts plugin when indicators are selected \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 25 contributors this release!
\\nAdam (22):\\n update check: set read timeout on socket, move off of request thread\\n item controller: remove all synchronous fetching\\n item service: move overflow of pending lookups log message to debug\\n ws service: optimize session storage\\n Revert "Fix cannon cannonball count"\\n runelite: fix check for client before requesting itemmanager\\n runelite: add --disable-update-check\\n account service: fix not setting autoincrement on user id\\n runescape-client: export changedSkills and changedSkillsCount\\n runelite-api: add VisibleForDevtools annotation for methods only visible for use in devtools\\n devtools: add addxp\\n runelite-api: add headicon enum\\n demonic gorilla plugin: use headicon api\\n http-service: fix sql2o statement leak\\n Add maven-compiler-plugin to plugin management\\n devtools: post xp changed event too\\n runescape-client: export world map related symbols\\n Use only southermost ghost wave for cerb plugin\\n scripts: update comand script from live\\n scripts: update options panel rebuilder from live\\n scripts: apply zoom limits to options panel rebuilder\\n scripts: apply command callback to command script\\n\\nBrandon Kase (2):\\n Adjust stomp dragon-axe clue location\\n Add missing comma to hard cryptic\\n\\nDennis (1):\\n fix prayer reorder shutdown\\n\\nFatalWaffles (1):\\n Fix Beckon in Digsite location\\n\\nGrant (1):\\n Add Agility shortcut highlight toggle\\n\\nHydrox6 (2):\\n Add Vengeance Other indicator\\n Reorder Timer configuration options\\n\\nJeroen (1):\\n XpGlobe now stays on screen while hovered over it.\\n\\nJordan (1):\\n Add Zeah Altar elite map clue (#2283)\\n\\nJordan Atwood (5):\\n Add missing Pyramid emote clue item\\n Fix Shayzien command tent emote clue\\n Fix hard cryptic clue\\n Allow "degree" and "minute" in coordinate clues\\n Use British floor numbering in clue scroll hints\\n\\nKamiel (6):\\n Expose Actor animation and actionFrame to API\\n Add anim command to developer tools\\n Expose Actor graphic and spotAnimFrame to API\\n Add gfx command to developer tools\\n Add logger command to change the logger level\\n Add 3rd Age Axe and 3rd Age Pickaxe animations to Idle Notifier\\n\\nLevi (2):\\n Refactor overlay renderer screenshot code into a draw manager\\n xp tracker: rewrite tracking datastructures\\n\\nLotto (1):\\n cluescrolls: support any type of ring of dueling in emote clues\\n\\nMaiddog (3):\\n clues: fix spotted cape not being detected\\n clues: change npc name check to nameEquals\\n Fix various clue objects and locations.\\n\\nMantautas Jurksa (1):\\n Fix master fire cape emote clue\\n\\nMarcus Heine (1):\\n Enable screenshotting with INSERT\\n\\nMax Weber (17):\\n Initialize ItemManager to a complete state\\n Allow ClientThread to re-run invokeLater-ed methods\\n Allow ItemManager to be ran off the client thread\\n Use ItemManager in KourendLibraryPlugin\\n Use ItemManager in GrandExchangePlugin\\n cache: Name ObjectDefiniton's varpID and configID correctly\\n Add various animation IDs\\n Add UsernameChanged event\\n Add WorldPoint::getRegionID\\n Allow PluginPanels to opt-out of the scrollbar\\n Add FarmingTracker plugin\\n configmanager: Allow multiple delimiters\\n Add missing U+00A0 NO-BREAK SPACE character\\n Rename Setting to VarPlayer\\n Merge Varcs into Client::getVar\\n Rename SettingsTracker\\n farmingtracker: Prevent saving when teleporting\\n\\nMorgan Lewis (1):\\n Add support for mapping parameter names\\n\\nNotFoxtrot (2):\\n Fix cryptic elite clue: Father Aereck\\n Fix master clue emote: Entrana church\\n\\nReasel (1):\\n Add ability to disable HP and Prayer notifications (#2007)\\n\\nRprrr (2):\\n screenshot plugin: fix exception when taking screenshots on login\\n Fixes #2146 (Brother Tranquility 'talk-to' & ''transport' option swap w/Menu Swapper plugin)\\n\\nSamuel Beresford (1):\\n Adds skill progress bar to hiscore panel Matches existing progress bar (look&feel) as xp tracker\\n\\nSeth (6):\\n boosts overlay: move next change text to display at the top\\n boosts plugin: Add stat change indicator when indicators are selected\\n opponent info: reduce padding size\\n clue scroll: add toggle for hint arrows\\n clue scroll: fix easy clue\\n farming panel: reset progress bar background\\n\\nSoyChai (5):\\n Correct misspellings of "transparent"\\n Add underscores to minigame names in WidgetInfo\\n agilityplugin: Rename plugin package to agility\\n reportbutton: Double frequency of time updates to avoid skipping seconds\\n discord: Display skill icons in Discord while training\\n\\nTomas Slusny (10):\\n Agility plugin small code cleanup\\n Do not draw text on top of Mark Of Grace\\n Add support for hiding the sidebar\\n Fix clue requiring platebody, but wanting legs\\n Remove unused imports in ClientUI (#2061)\\n Reset clues based on item ID\\n Reset clue on unknown clues\\n Add Cerberus plugin\\n Verify game's minimum size\\n Add mappings for currentLoginField\\n\\nWooxSolo (12):\\n Add rectangle support to config\\n Remember screen position after closing and reopening\\n Add ability to lock client to screen\\n runescape-client: export hitsplatValues and applyActorHitsplat\\n runelite-api: add hitsplat applied event\\n runelite-api: export collision data\\n runelite-api: add line of sight algorithm\\n runelite-api: add WorldArea\\n devtools: add line of sight and valid moves\\n Add demonic gorilla plugin\\n cannon plugin: fix cannonball count when loading and firing on the same tick\\n cannon plugin: add granite cannonball to unload check\\n\\noplosthee (1):\\n Add toggle for drawing overhead player names to PlayerIndicators plugin\\n\\nu6077743 (1):\\n Improved low hp notif. by considering nmz absorption, 2210\\n
\\n\",\"image\":\"/img/blog/1.3.7-Release/farming.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/39.91594796.chunk.js b/static/js/39.8da57fab.chunk.js
similarity index 98%
rename from static/js/39.91594796.chunk.js
rename to static/js/39.8da57fab.chunk.js
index bbfeeaca6..607db617f 100644
--- a/static/js/39.91594796.chunk.js
+++ b/static/js/39.8da57fab.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[39],{314:function(e,n){e.exports={title:"1.3.8 Release",description:"World map clue overlay, friend notes, hot-cold helper, and special attack counter",author:"Adam",body:'Clue scroll locations are now shown on the in-game world map. Thanks to\n@MESLewis for his work on this over the past\nweeks.
\n
\nA friend notes plugin has been added which lets you associate notes to friends\non your friends list.
\n
\n@Eadgars-Ruse added a hot-cold helper to the\nclue plugin which helps you narrow down which location the clue is at each time\nyou check the orb. It marks the possible locations to dig on the map.
\nA special attack counter was added which counts draining special attacks done\nagainst certain bosses like the Corporeal Beast.
\n
\nA FPS plugin was added from @LeviSchuck which\ndisplays the current FPS, and allows you to configure a max FPS limit.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix agility plugin calculating laps to level when you level up on a lap \nAdd missing Rellekka fishing spots to fishing plugin \nXP globes mouseover now shows xp per hour \nFix date placement in screenshot with stretched fixed mode \nFix xp tracker sometimes showing negative XP \nFix bank tags to be case insensitive \nAdd Puro-Puro static spawn locations to imp plugin \nA chest price evaluator was added to the barrows plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 29 contributors this release!
\nAWarbear (4):\n Make farming tracker use english for dates by default (#2345)\n agility plugin: identify active course based on its region\n agility plugin: fix calculating laps to level when leveling up from a lap\n Move system tray icon to be created before the client requests focus\n\nAdam (17):\n impling plugin: use spawn events\n npc indicators: remove unnecessary tagged npcs list\n npc indicators: use events for highlighted npcs\n runelite-client: add tick counter\n demonic gollias: use tick counter\n mixins: inject get/set tick count\n runescape-client: refactor Nameable\n runescape-client: class304 -> FriendContainer\n runescape-client: class298 -> IgnoreContainer\n runescape-client: refactor FriendManager\n runescape-client: method1792 -> removeFriend\n runelite-api: expose Friend\n runelite-api: add nameable name change event\n injector: add method hooks\n Add removed friend event\n chatbox input manager: add support for character limit\n Add friend notes plugin\n\nAlex Kolpa (1):\n Ensure tile spawns on all planes are simulated (#2495)\n\nEadgars-Ruse (2):\n Add hot-cold clue scroll plugin\n Fix warmer/colder consideration for hot-cold plugin\n\nJeroen (1):\n Show missing fishing spots in Rellekka in overlay.\n\nJonathan (1):\n Add xp per hour to xp globes mouse-over tooltip\n\nJordan (2):\n Add all bracelets to Argdougne emote clue item requirement (#2417)\n Fix Sinclair Mansion emote clue (#2468)\n\nJordan Atwood (2):\n Fix "No boots" requirement in Mausoleum clue\n Fix Shadow dungeon emote clue location\n\nJoshua Filby (11):\n feat: add a way to get AccountType\n refactor: rename ScriptEvent#field787 to ScriptEvent#mouseX\n refactor: rename ScriptEvent#field780 to ScriptEvent#mouseY\n refactor: rename ScriptEvent#widget to ScriptEvent#source\n refactor: rename ScriptEvent#field779 to ScriptEvent#op\n refactor: rename ScriptEvent#field776 to ScriptEvent#target\n refactor: rename ScriptEvent#pressedKey to ScriptEvent#typedKeyCode\n refactor: rename ScriptEvent#typedKey to ScriptEvent#typedKeyChar\n refactor: rename ScriptEvent#objs to ScriptEvent#params\n refactor: rename ScriptEvent#string to ScriptEvent#opbase\n fix: import correct field\n\nKamiel (1):\n Add missing overhead icons to API\n\nLars \xd8rnlo (1):\n Add config option that enables/disables mouse tooltip on rune pouch however since information is already available on screen if rune pouch is enabled.\n\nLevi (1):\n FPS Plugin\n\nLevi Schuck (2):\n Fix negative total XP calculation when skill starts\n FPS plugin: fix startup not applying limits\n\nLotto (3):\n screenshotplugin: fix timestamp "button" not being stretched\n screenshotplugin: fix screenshot button ignoring displayDate setting\n screenshotplugin: fix Hunter levelup widget ignoring toggle\n\nMagic fTail (3):\n BossTimerPlugin: Add missing bosses (#2150)\n bank tag plugin: fix searching to be case insensitive\n HunterPlugin: Fix deadfall trap\n\nMaid Dog (2):\n Use Immenizz\'s in-game name\n Fix monastery clue position\n\nMantautas Jurksa (1):\n Add Puro-Puro static spawn locations\n\nMax Weber (6):\n runelite-client: Cleanup cli arguments\n runelite-client: Log uncaught exceptions\n method3836 > getSpriteAsSpritePixels\n Add SpriteManager to get sprites from the cache.\n runelite-client: Make notification options not mutually excusive\n Add Burgh de Rott map clue\n\nMorgan Lewis (7):\n runescape-client: export more world map related methods\n runescape-api: import world map methods\n Add world map api and mixin\n runelite-client: add world map overlay renderer\n runelite-client: add world map test plugin\n clue plugin: add world map overlay for clue location\n WorldMapOverlay: Add check for current plane\n\nRheon (1):\n Add spade req, fix item reqs for emote clues (#1753)\n\nShuhao Wu (1):\n Updated cryptic clue solution for Kalphite area\n\nSoyChai (2):\n demonicgorilla: Rename plugin to "Demonic Gorillas" with capital G\n demonicgorilla: Use proper inverse methods instead of the ! operator\n\nTomas Slusny (14):\n Option to only recolor right click menu on ground\n Add 2 new notifications modes (message, flash)\n Disable filtering on logback.xml\n Merge ImagePanelComponent with PanelComponent\n Update all overlays to support new PanelComponent\n Make ProgressPie follow component pattern\n Move the xp/hr in globes to new system\n Sanitize player indicators options\n Clear children in LocationOverlay\n Simplify component system\n Update plugins to use the new TitleComponent\n Add support for customizable gap and border\n Restore min width when keeping window size small\n Iron platelegs -> platebody for Draynor emote clue\n\nTyler Nichols (1):\n Update to Solution of speaking to Falo the Bard (#2352)\n\nWooxSolo (5):\n Add graphics object API\n Add graphics object created event\n Add graphics objects to devtools\n Add option to keep either window or client size\n Change WorldPoint::distanceTo to use chebyshev distance instead of euclidean distance\n\niguaan (1):\n correct hard entrana cryptic clue\n\nraqes (1):\n Add special attack counter\n\ntrimbe (3):\n Add missing Dorgesh-Kaan clue, fix dagganoth king cryptic\n item manager: change batch item price to accept a collection\n barrows plugin: add barrows chest price evaluator\n\nwa1id (1):\n Add Elite Map clue at Zul-andra (#2306)\n
\n',image:"/img/blog/1.3.8-Release/cluemap.png"}}}]);
-//# sourceMappingURL=39.91594796.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[39],{315:function(e,n){e.exports={title:"1.3.8 Release",description:"World map clue overlay, friend notes, hot-cold helper, and special attack counter",author:"Adam",body:'Clue scroll locations are now shown on the in-game world map. Thanks to\n@MESLewis for his work on this over the past\nweeks.
\n
\nA friend notes plugin has been added which lets you associate notes to friends\non your friends list.
\n
\n@Eadgars-Ruse added a hot-cold helper to the\nclue plugin which helps you narrow down which location the clue is at each time\nyou check the orb. It marks the possible locations to dig on the map.
\nA special attack counter was added which counts draining special attacks done\nagainst certain bosses like the Corporeal Beast.
\n
\nA FPS plugin was added from @LeviSchuck which\ndisplays the current FPS, and allows you to configure a max FPS limit.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix agility plugin calculating laps to level when you level up on a lap \nAdd missing Rellekka fishing spots to fishing plugin \nXP globes mouseover now shows xp per hour \nFix date placement in screenshot with stretched fixed mode \nFix xp tracker sometimes showing negative XP \nFix bank tags to be case insensitive \nAdd Puro-Puro static spawn locations to imp plugin \nA chest price evaluator was added to the barrows plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 29 contributors this release!
\nAWarbear (4):\n Make farming tracker use english for dates by default (#2345)\n agility plugin: identify active course based on its region\n agility plugin: fix calculating laps to level when leveling up from a lap\n Move system tray icon to be created before the client requests focus\n\nAdam (17):\n impling plugin: use spawn events\n npc indicators: remove unnecessary tagged npcs list\n npc indicators: use events for highlighted npcs\n runelite-client: add tick counter\n demonic gollias: use tick counter\n mixins: inject get/set tick count\n runescape-client: refactor Nameable\n runescape-client: class304 -> FriendContainer\n runescape-client: class298 -> IgnoreContainer\n runescape-client: refactor FriendManager\n runescape-client: method1792 -> removeFriend\n runelite-api: expose Friend\n runelite-api: add nameable name change event\n injector: add method hooks\n Add removed friend event\n chatbox input manager: add support for character limit\n Add friend notes plugin\n\nAlex Kolpa (1):\n Ensure tile spawns on all planes are simulated (#2495)\n\nEadgars-Ruse (2):\n Add hot-cold clue scroll plugin\n Fix warmer/colder consideration for hot-cold plugin\n\nJeroen (1):\n Show missing fishing spots in Rellekka in overlay.\n\nJonathan (1):\n Add xp per hour to xp globes mouse-over tooltip\n\nJordan (2):\n Add all bracelets to Argdougne emote clue item requirement (#2417)\n Fix Sinclair Mansion emote clue (#2468)\n\nJordan Atwood (2):\n Fix "No boots" requirement in Mausoleum clue\n Fix Shadow dungeon emote clue location\n\nJoshua Filby (11):\n feat: add a way to get AccountType\n refactor: rename ScriptEvent#field787 to ScriptEvent#mouseX\n refactor: rename ScriptEvent#field780 to ScriptEvent#mouseY\n refactor: rename ScriptEvent#widget to ScriptEvent#source\n refactor: rename ScriptEvent#field779 to ScriptEvent#op\n refactor: rename ScriptEvent#field776 to ScriptEvent#target\n refactor: rename ScriptEvent#pressedKey to ScriptEvent#typedKeyCode\n refactor: rename ScriptEvent#typedKey to ScriptEvent#typedKeyChar\n refactor: rename ScriptEvent#objs to ScriptEvent#params\n refactor: rename ScriptEvent#string to ScriptEvent#opbase\n fix: import correct field\n\nKamiel (1):\n Add missing overhead icons to API\n\nLars \xd8rnlo (1):\n Add config option that enables/disables mouse tooltip on rune pouch however since information is already available on screen if rune pouch is enabled.\n\nLevi (1):\n FPS Plugin\n\nLevi Schuck (2):\n Fix negative total XP calculation when skill starts\n FPS plugin: fix startup not applying limits\n\nLotto (3):\n screenshotplugin: fix timestamp "button" not being stretched\n screenshotplugin: fix screenshot button ignoring displayDate setting\n screenshotplugin: fix Hunter levelup widget ignoring toggle\n\nMagic fTail (3):\n BossTimerPlugin: Add missing bosses (#2150)\n bank tag plugin: fix searching to be case insensitive\n HunterPlugin: Fix deadfall trap\n\nMaid Dog (2):\n Use Immenizz\'s in-game name\n Fix monastery clue position\n\nMantautas Jurksa (1):\n Add Puro-Puro static spawn locations\n\nMax Weber (6):\n runelite-client: Cleanup cli arguments\n runelite-client: Log uncaught exceptions\n method3836 > getSpriteAsSpritePixels\n Add SpriteManager to get sprites from the cache.\n runelite-client: Make notification options not mutually excusive\n Add Burgh de Rott map clue\n\nMorgan Lewis (7):\n runescape-client: export more world map related methods\n runescape-api: import world map methods\n Add world map api and mixin\n runelite-client: add world map overlay renderer\n runelite-client: add world map test plugin\n clue plugin: add world map overlay for clue location\n WorldMapOverlay: Add check for current plane\n\nRheon (1):\n Add spade req, fix item reqs for emote clues (#1753)\n\nShuhao Wu (1):\n Updated cryptic clue solution for Kalphite area\n\nSoyChai (2):\n demonicgorilla: Rename plugin to "Demonic Gorillas" with capital G\n demonicgorilla: Use proper inverse methods instead of the ! operator\n\nTomas Slusny (14):\n Option to only recolor right click menu on ground\n Add 2 new notifications modes (message, flash)\n Disable filtering on logback.xml\n Merge ImagePanelComponent with PanelComponent\n Update all overlays to support new PanelComponent\n Make ProgressPie follow component pattern\n Move the xp/hr in globes to new system\n Sanitize player indicators options\n Clear children in LocationOverlay\n Simplify component system\n Update plugins to use the new TitleComponent\n Add support for customizable gap and border\n Restore min width when keeping window size small\n Iron platelegs -> platebody for Draynor emote clue\n\nTyler Nichols (1):\n Update to Solution of speaking to Falo the Bard (#2352)\n\nWooxSolo (5):\n Add graphics object API\n Add graphics object created event\n Add graphics objects to devtools\n Add option to keep either window or client size\n Change WorldPoint::distanceTo to use chebyshev distance instead of euclidean distance\n\niguaan (1):\n correct hard entrana cryptic clue\n\nraqes (1):\n Add special attack counter\n\ntrimbe (3):\n Add missing Dorgesh-Kaan clue, fix dagganoth king cryptic\n item manager: change batch item price to accept a collection\n barrows plugin: add barrows chest price evaluator\n\nwa1id (1):\n Add Elite Map clue at Zul-andra (#2306)\n
\n',image:"/img/blog/1.3.8-Release/cluemap.png"}}}]);
+//# sourceMappingURL=39.8da57fab.chunk.js.map
\ No newline at end of file
diff --git a/static/js/39.91594796.chunk.js.map b/static/js/39.8da57fab.chunk.js.map
similarity index 99%
rename from static/js/39.91594796.chunk.js.map
rename to static/js/39.8da57fab.chunk.js.map
index 8c1ef0fc5..691f623e2 100644
--- a/static/js/39.91594796.chunk.js.map
+++ b/static/js/39.8da57fab.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-10-00-00-1.3.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,whPAAkjP,MAAQ","file":"static/js/39.91594796.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.8 Release\",\"description\":\"World map clue overlay, friend notes, hot-cold helper, and special attack counter\",\"author\":\"Adam\",\"body\":\"Clue scroll locations are now shown on the in-game world map. Thanks to\\n@MESLewis for his work on this over the past\\nweeks.
\\n
\\nA friend notes plugin has been added which lets you associate notes to friends\\non your friends list.
\\n
\\n@Eadgars-Ruse added a hot-cold helper to the\\nclue plugin which helps you narrow down which location the clue is at each time\\nyou check the orb. It marks the possible locations to dig on the map.
\\nA special attack counter was added which counts draining special attacks done\\nagainst certain bosses like the Corporeal Beast.
\\n
\\nA FPS plugin was added from @LeviSchuck which\\ndisplays the current FPS, and allows you to configure a max FPS limit.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix agility plugin calculating laps to level when you level up on a lap \\nAdd missing Rellekka fishing spots to fishing plugin \\nXP globes mouseover now shows xp per hour \\nFix date placement in screenshot with stretched fixed mode \\nFix xp tracker sometimes showing negative XP \\nFix bank tags to be case insensitive \\nAdd Puro-Puro static spawn locations to imp plugin \\nA chest price evaluator was added to the barrows plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 29 contributors this release!
\\nAWarbear (4):\\n Make farming tracker use english for dates by default (#2345)\\n agility plugin: identify active course based on its region\\n agility plugin: fix calculating laps to level when leveling up from a lap\\n Move system tray icon to be created before the client requests focus\\n\\nAdam (17):\\n impling plugin: use spawn events\\n npc indicators: remove unnecessary tagged npcs list\\n npc indicators: use events for highlighted npcs\\n runelite-client: add tick counter\\n demonic gollias: use tick counter\\n mixins: inject get/set tick count\\n runescape-client: refactor Nameable\\n runescape-client: class304 -> FriendContainer\\n runescape-client: class298 -> IgnoreContainer\\n runescape-client: refactor FriendManager\\n runescape-client: method1792 -> removeFriend\\n runelite-api: expose Friend\\n runelite-api: add nameable name change event\\n injector: add method hooks\\n Add removed friend event\\n chatbox input manager: add support for character limit\\n Add friend notes plugin\\n\\nAlex Kolpa (1):\\n Ensure tile spawns on all planes are simulated (#2495)\\n\\nEadgars-Ruse (2):\\n Add hot-cold clue scroll plugin\\n Fix warmer/colder consideration for hot-cold plugin\\n\\nJeroen (1):\\n Show missing fishing spots in Rellekka in overlay.\\n\\nJonathan (1):\\n Add xp per hour to xp globes mouse-over tooltip\\n\\nJordan (2):\\n Add all bracelets to Argdougne emote clue item requirement (#2417)\\n Fix Sinclair Mansion emote clue (#2468)\\n\\nJordan Atwood (2):\\n Fix "No boots" requirement in Mausoleum clue\\n Fix Shadow dungeon emote clue location\\n\\nJoshua Filby (11):\\n feat: add a way to get AccountType\\n refactor: rename ScriptEvent#field787 to ScriptEvent#mouseX\\n refactor: rename ScriptEvent#field780 to ScriptEvent#mouseY\\n refactor: rename ScriptEvent#widget to ScriptEvent#source\\n refactor: rename ScriptEvent#field779 to ScriptEvent#op\\n refactor: rename ScriptEvent#field776 to ScriptEvent#target\\n refactor: rename ScriptEvent#pressedKey to ScriptEvent#typedKeyCode\\n refactor: rename ScriptEvent#typedKey to ScriptEvent#typedKeyChar\\n refactor: rename ScriptEvent#objs to ScriptEvent#params\\n refactor: rename ScriptEvent#string to ScriptEvent#opbase\\n fix: import correct field\\n\\nKamiel (1):\\n Add missing overhead icons to API\\n\\nLars Ørnlo (1):\\n Add config option that enables/disables mouse tooltip on rune pouch however since information is already available on screen if rune pouch is enabled.\\n\\nLevi (1):\\n FPS Plugin\\n\\nLevi Schuck (2):\\n Fix negative total XP calculation when skill starts\\n FPS plugin: fix startup not applying limits\\n\\nLotto (3):\\n screenshotplugin: fix timestamp "button" not being stretched\\n screenshotplugin: fix screenshot button ignoring displayDate setting\\n screenshotplugin: fix Hunter levelup widget ignoring toggle\\n\\nMagic fTail (3):\\n BossTimerPlugin: Add missing bosses (#2150)\\n bank tag plugin: fix searching to be case insensitive\\n HunterPlugin: Fix deadfall trap\\n\\nMaid Dog (2):\\n Use Immenizz's in-game name\\n Fix monastery clue position\\n\\nMantautas Jurksa (1):\\n Add Puro-Puro static spawn locations\\n\\nMax Weber (6):\\n runelite-client: Cleanup cli arguments\\n runelite-client: Log uncaught exceptions\\n method3836 > getSpriteAsSpritePixels\\n Add SpriteManager to get sprites from the cache.\\n runelite-client: Make notification options not mutually excusive\\n Add Burgh de Rott map clue\\n\\nMorgan Lewis (7):\\n runescape-client: export more world map related methods\\n runescape-api: import world map methods\\n Add world map api and mixin\\n runelite-client: add world map overlay renderer\\n runelite-client: add world map test plugin\\n clue plugin: add world map overlay for clue location\\n WorldMapOverlay: Add check for current plane\\n\\nRheon (1):\\n Add spade req, fix item reqs for emote clues (#1753)\\n\\nShuhao Wu (1):\\n Updated cryptic clue solution for Kalphite area\\n\\nSoyChai (2):\\n demonicgorilla: Rename plugin to "Demonic Gorillas" with capital G\\n demonicgorilla: Use proper inverse methods instead of the ! operator\\n\\nTomas Slusny (14):\\n Option to only recolor right click menu on ground\\n Add 2 new notifications modes (message, flash)\\n Disable filtering on logback.xml\\n Merge ImagePanelComponent with PanelComponent\\n Update all overlays to support new PanelComponent\\n Make ProgressPie follow component pattern\\n Move the xp/hr in globes to new system\\n Sanitize player indicators options\\n Clear children in LocationOverlay\\n Simplify component system\\n Update plugins to use the new TitleComponent\\n Add support for customizable gap and border\\n Restore min width when keeping window size small\\n Iron platelegs -> platebody for Draynor emote clue\\n\\nTyler Nichols (1):\\n Update to Solution of speaking to Falo the Bard (#2352)\\n\\nWooxSolo (5):\\n Add graphics object API\\n Add graphics object created event\\n Add graphics objects to devtools\\n Add option to keep either window or client size\\n Change WorldPoint::distanceTo to use chebyshev distance instead of euclidean distance\\n\\niguaan (1):\\n correct hard entrana cryptic clue\\n\\nraqes (1):\\n Add special attack counter\\n\\ntrimbe (3):\\n Add missing Dorgesh-Kaan clue, fix dagganoth king cryptic\\n item manager: change batch item price to accept a collection\\n barrows plugin: add barrows chest price evaluator\\n\\nwa1id (1):\\n Add Elite Map clue at Zul-andra (#2306)\\n
\\n\",\"image\":\"/img/blog/1.3.8-Release/cluemap.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-10-00-00-1.3.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,whPAAkjP,MAAQ","file":"static/js/39.8da57fab.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.8 Release\",\"description\":\"World map clue overlay, friend notes, hot-cold helper, and special attack counter\",\"author\":\"Adam\",\"body\":\"Clue scroll locations are now shown on the in-game world map. Thanks to\\n@MESLewis for his work on this over the past\\nweeks.
\\n
\\nA friend notes plugin has been added which lets you associate notes to friends\\non your friends list.
\\n
\\n@Eadgars-Ruse added a hot-cold helper to the\\nclue plugin which helps you narrow down which location the clue is at each time\\nyou check the orb. It marks the possible locations to dig on the map.
\\nA special attack counter was added which counts draining special attacks done\\nagainst certain bosses like the Corporeal Beast.
\\n
\\nA FPS plugin was added from @LeviSchuck which\\ndisplays the current FPS, and allows you to configure a max FPS limit.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix agility plugin calculating laps to level when you level up on a lap \\nAdd missing Rellekka fishing spots to fishing plugin \\nXP globes mouseover now shows xp per hour \\nFix date placement in screenshot with stretched fixed mode \\nFix xp tracker sometimes showing negative XP \\nFix bank tags to be case insensitive \\nAdd Puro-Puro static spawn locations to imp plugin \\nA chest price evaluator was added to the barrows plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 29 contributors this release!
\\nAWarbear (4):\\n Make farming tracker use english for dates by default (#2345)\\n agility plugin: identify active course based on its region\\n agility plugin: fix calculating laps to level when leveling up from a lap\\n Move system tray icon to be created before the client requests focus\\n\\nAdam (17):\\n impling plugin: use spawn events\\n npc indicators: remove unnecessary tagged npcs list\\n npc indicators: use events for highlighted npcs\\n runelite-client: add tick counter\\n demonic gollias: use tick counter\\n mixins: inject get/set tick count\\n runescape-client: refactor Nameable\\n runescape-client: class304 -> FriendContainer\\n runescape-client: class298 -> IgnoreContainer\\n runescape-client: refactor FriendManager\\n runescape-client: method1792 -> removeFriend\\n runelite-api: expose Friend\\n runelite-api: add nameable name change event\\n injector: add method hooks\\n Add removed friend event\\n chatbox input manager: add support for character limit\\n Add friend notes plugin\\n\\nAlex Kolpa (1):\\n Ensure tile spawns on all planes are simulated (#2495)\\n\\nEadgars-Ruse (2):\\n Add hot-cold clue scroll plugin\\n Fix warmer/colder consideration for hot-cold plugin\\n\\nJeroen (1):\\n Show missing fishing spots in Rellekka in overlay.\\n\\nJonathan (1):\\n Add xp per hour to xp globes mouse-over tooltip\\n\\nJordan (2):\\n Add all bracelets to Argdougne emote clue item requirement (#2417)\\n Fix Sinclair Mansion emote clue (#2468)\\n\\nJordan Atwood (2):\\n Fix "No boots" requirement in Mausoleum clue\\n Fix Shadow dungeon emote clue location\\n\\nJoshua Filby (11):\\n feat: add a way to get AccountType\\n refactor: rename ScriptEvent#field787 to ScriptEvent#mouseX\\n refactor: rename ScriptEvent#field780 to ScriptEvent#mouseY\\n refactor: rename ScriptEvent#widget to ScriptEvent#source\\n refactor: rename ScriptEvent#field779 to ScriptEvent#op\\n refactor: rename ScriptEvent#field776 to ScriptEvent#target\\n refactor: rename ScriptEvent#pressedKey to ScriptEvent#typedKeyCode\\n refactor: rename ScriptEvent#typedKey to ScriptEvent#typedKeyChar\\n refactor: rename ScriptEvent#objs to ScriptEvent#params\\n refactor: rename ScriptEvent#string to ScriptEvent#opbase\\n fix: import correct field\\n\\nKamiel (1):\\n Add missing overhead icons to API\\n\\nLars Ørnlo (1):\\n Add config option that enables/disables mouse tooltip on rune pouch however since information is already available on screen if rune pouch is enabled.\\n\\nLevi (1):\\n FPS Plugin\\n\\nLevi Schuck (2):\\n Fix negative total XP calculation when skill starts\\n FPS plugin: fix startup not applying limits\\n\\nLotto (3):\\n screenshotplugin: fix timestamp "button" not being stretched\\n screenshotplugin: fix screenshot button ignoring displayDate setting\\n screenshotplugin: fix Hunter levelup widget ignoring toggle\\n\\nMagic fTail (3):\\n BossTimerPlugin: Add missing bosses (#2150)\\n bank tag plugin: fix searching to be case insensitive\\n HunterPlugin: Fix deadfall trap\\n\\nMaid Dog (2):\\n Use Immenizz's in-game name\\n Fix monastery clue position\\n\\nMantautas Jurksa (1):\\n Add Puro-Puro static spawn locations\\n\\nMax Weber (6):\\n runelite-client: Cleanup cli arguments\\n runelite-client: Log uncaught exceptions\\n method3836 > getSpriteAsSpritePixels\\n Add SpriteManager to get sprites from the cache.\\n runelite-client: Make notification options not mutually excusive\\n Add Burgh de Rott map clue\\n\\nMorgan Lewis (7):\\n runescape-client: export more world map related methods\\n runescape-api: import world map methods\\n Add world map api and mixin\\n runelite-client: add world map overlay renderer\\n runelite-client: add world map test plugin\\n clue plugin: add world map overlay for clue location\\n WorldMapOverlay: Add check for current plane\\n\\nRheon (1):\\n Add spade req, fix item reqs for emote clues (#1753)\\n\\nShuhao Wu (1):\\n Updated cryptic clue solution for Kalphite area\\n\\nSoyChai (2):\\n demonicgorilla: Rename plugin to "Demonic Gorillas" with capital G\\n demonicgorilla: Use proper inverse methods instead of the ! operator\\n\\nTomas Slusny (14):\\n Option to only recolor right click menu on ground\\n Add 2 new notifications modes (message, flash)\\n Disable filtering on logback.xml\\n Merge ImagePanelComponent with PanelComponent\\n Update all overlays to support new PanelComponent\\n Make ProgressPie follow component pattern\\n Move the xp/hr in globes to new system\\n Sanitize player indicators options\\n Clear children in LocationOverlay\\n Simplify component system\\n Update plugins to use the new TitleComponent\\n Add support for customizable gap and border\\n Restore min width when keeping window size small\\n Iron platelegs -> platebody for Draynor emote clue\\n\\nTyler Nichols (1):\\n Update to Solution of speaking to Falo the Bard (#2352)\\n\\nWooxSolo (5):\\n Add graphics object API\\n Add graphics object created event\\n Add graphics objects to devtools\\n Add option to keep either window or client size\\n Change WorldPoint::distanceTo to use chebyshev distance instead of euclidean distance\\n\\niguaan (1):\\n correct hard entrana cryptic clue\\n\\nraqes (1):\\n Add special attack counter\\n\\ntrimbe (3):\\n Add missing Dorgesh-Kaan clue, fix dagganoth king cryptic\\n item manager: change batch item price to accept a collection\\n barrows plugin: add barrows chest price evaluator\\n\\nwa1id (1):\\n Add Elite Map clue at Zul-andra (#2306)\\n
\\n\",\"image\":\"/img/blog/1.3.8-Release/cluemap.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/4.19302058.chunk.js b/static/js/4.19302058.chunk.js
deleted file mode 100644
index ca6042ac2..000000000
--- a/static/js/4.19302058.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[4],Array(126).concat([function(e,t,i){"use strict";var n=i(0);var s=()=>Object(n.g)("section",{id:"footer"},Object(n.g)("div",{class:"content-section"},Object(n.g)("footer",null,Object(n.g)("hr",null),"Developed with ",Object(n.g)("i",{class:"fas fa-heart"})," and"," ",Object(n.g)("i",{class:"fas fa-coffee"})," using"," ",Object(n.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(n.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(n.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(n.g)("a",{href:"/atom.xml",class:"float-right"},Object(n.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:i,...a}=e;return a.class=a.class?"container "+a.class:"container",a.style={...a.style||{},maxWidth:i?"100%":""},Object(n.g)("div",Object.assign({},a,{id:"layout"}),t,Object(n.g)(s,null))}},function(e,t,i){"use strict";var n=i(0);var s=()=>Object(n.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(n.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(n.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(n.g)("div",{class:"fa-4x"},Object(n.g)("i",{class:"fas fa-spinner fa-spin"})))));t.a=e=>t=>class extends n.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const t=e(this.props);t instanceof Promise?t.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:i}=this.state;return i?Object(n.g)(s,null):Object(n.g)(t,e)}}},,function(e,t,i){"use strict";function n(e,t,i,n,s,a){var o=Math.round(Math.abs(e)/t);return a?o<=1?s:"in "+o+" "+i+"s":o<=1?n:o+" "+i+"s ago"}var s=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var t=Date.now()-e.getTime();if(Math.abs(t)<6e4)return"just now";for(var i=0;i{const n=s()(t);return e.set(n.id.toLowerCase(),()=>i(282)(`./${n.file}.md`).then(e=>({id:n.id,date:n.date,...e})))},new Map),o=e=>{const t=a.get(e.toLowerCase());return t?t():Promise.resolve({})},r=async()=>{const e=a.values();for(let t of e){const e=await t();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};t.a=a},function(e,t){e.exports=e=>{const t=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!t&&!t[1]&&!t[2]&&!t[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const i=t[1],n=t[2],s=i+t[3],a=(i+"-"+n).split("-");return{date:new Date(Date.UTC(parseInt(a[0],10),parseInt(a[1],10)-1,parseInt(a[2],10),parseInt(a[3],10),parseInt(a[4],10))),id:s,file:e}}},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=a,e.exports=s,s.id=136},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":[295,20],"./2017-12-21-00-00-1.2.10-Release.md":[296,21],"./2018-01-12-00-00-1.2.11-Release.md":[297,22],"./2018-01-18-00-00-1.2.12-Release.md":[298,23],"./2018-01-25-00-00-1.2.13-Release.md":[299,24],"./2018-02-01-00-00-1.2.14-Release.md":[300,25],"./2018-02-08-00-00-1.2.15-Release.md":[301,26],"./2018-02-15-00-00-1.2.16-Release.md":[302,27],"./2018-02-22-00-00-1.2.17-Release.md":[303,28],"./2018-03-01-00-00-1.2.18-Release.md":[304,29],"./2018-03-08-00-00-1.2.19-Release.md":[305,30],"./2018-03-15-00-00-1.3.0-Release.md":[306,31],"./2018-03-22-00-00-1.3.1-Release.md":[307,32],"./2018-03-29-00-00-1.3.2-Release.md":[308,33],"./2018-04-05-00-00-1.3.3-Release.md":[309,34],"./2018-04-12-00-00-1.3.4-Release.md":[310,35],"./2018-04-19-00-00-1.3.5-Release.md":[311,36],"./2018-04-26-00-00-1.3.6-Release.md":[312,37],"./2018-05-03-00-00-1.3.7-Release.md":[313,38],"./2018-05-10-00-00-1.3.8-Release.md":[314,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[315,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[316,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[317,42],"./2018-05-18-00-00-1.3.9-Release.md":[318,43],"./2018-05-24-00-00-1.4.0-Release.md":[319,44],"./2018-05-25-23-00-Phishing-Attempts.md":[320,45],"./2018-05-31-07-00-1.4.1-Release.md":[321,46],"./2018-06-07-07-00-1.4.2-Release.md":[322,47],"./2018-06-14-07-00-1.4.3-Release.md":[323,48],"./2018-06-21-07-00-1.4.4-Release.md":[324,49],"./2018-06-28-07-00-1.4.5-Release.md":[325,50],"./2018-07-05-07-00-1.4.6-Release.md":[326,51],"./2018-07-12-07-00-1.4.7-Release.md":[327,52],"./2018-07-19-07-00-1.4.8-Release.md":[328,53],"./2018-07-26-07-00-1.4.9-Release.md":[329,54],"./2018-08-02-10-00-1.4.10-Release.md":[330,55],"./2018-08-09-10-00-1.4.11-Release.md":[331,56],"./2018-08-16-10-00-1.4.12-Release.md":[332,57],"./2018-08-23-10-00-1.4.13-Release.md":[333,58],"./2018-08-30-10-00-1.4.15-Release.md":[334,59],"./2018-09-06-10-00-1.4.16-Release.md":[335,60],"./2018-09-13-10-00-1.4.17-Release.md":[336,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[337,62],"./2018-09-20-10-00-1.4.18-Release.md":[338,63],"./2018-09-27-10-00-1.4.19-Release.md":[339,64],"./2018-10-04-10-00-1.4.20-Release.md":[340,65],"./2018-10-11-10-00-1.4.21-Release.md":[341,66],"./2018-10-18-10-00-1.4.22-Release.md":[342,67],"./2018-10-25-10-00-1.4.23-Release.md":[343,68],"./2018-11-01-10-00-1.4.24-Release.md":[344,69],"./2018-11-08-10-00-1.4.25-Release.md":[345,70],"./2018-11-15-10-00-1.4.26-Release.md":[346,71],"./2018-11-16-12-00-1.5.0-Release.md":[347,72],"./2018-11-22-10-00-1.5.1-Release.md":[348,73],"./2018-11-29-10-00-1.5.2-Release.md":[349,74],"./2018-12-06-10-00-1.5.3-Release.md":[350,75],"./2018-12-13-10-00-1.5.4-Release.md":[351,76],"./2018-12-20-10-00-1.5.5-Release.md":[352,77],"./2019-01-03-10-00-1.5.6-Release.md":[353,78],"./2019-01-10-10-00-1.5.7-Release.md":[354,79],"./2019-01-17-10-00-1.5.8-Release.md":[355,80],"./2019-01-24-10-00-1.5.9-Release.md":[356,81],"./2019-01-31-10-00-1.5.10-Release.md":[357,82],"./2019-02-07-10-00-1.5.11-Release.md":[358,83],"./2019-02-14-10-00-1.5.12-Release.md":[359,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[360,85],"./2019-02-21-10-00-1.5.13-Release.md":[361,86],"./2019-02-28-10-00-1.5.14-Release.md":[362,87],"./2019-03-07-10-00-1.5.15-Release.md":[363,88],"./2019-03-14-10-00-1.5.16-Release.md":[364,89],"./2019-03-21-12-00-1.5.17-Release.md":[365,90],"./2019-03-28-10-00-1.5.18-Release.md":[366,91],"./2019-04-11-10-00-1.5.19-Release.md":[367,92],"./2019-04-18-10-00-1.5.20-Release.md":[368,93],"./2019-04-25-10-00-1.5.21-Release.md":[369,94],"./2019-05-03-10-00-1.5.22-Release.md":[370,95],"./2019-05-16-10-00-1.5.23-Release.md":[371,96],"./2019-05-30-10-00-1.5.25-Release.md":[372,97],"./2019-06-06-10-00-1.5.26-Release.md":[373,98],"./2019-06-20-10-00-1.5.27-Release.md":[374,99],"./2019-07-04-10-00-1.5.28-Release.md":[375,100],"./2019-07-18-10-00-1.5.29-Release.md":[376,101],"./2019-08-01-10-00-1.5.30-Release.md":[377,102],"./2019-08-15-10-00-1.5.31-Release.md":[378,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[379,104],"./2019-08-29-10-00-1.5.32-Release.md":[380,105],"./2019-09-12-10-00-1.5.33-Release.md":[381,106],"./2019-09-26-10-00-1.5.34-Release.md":[382,107],"./2019-10-02-10-00-1.5.35-Release.md":[383,108],"./2019-10-17-10-00-1.5.36-Release.md":[384,109],"./2019-10-30-10-00-1.5.37-Release.md":[385,110],"./2019-11-14-10-00-1.5.40-Release.md":[386,111],"./2019-11-28-10-00-1.5.42-Release.md":[387,112],"./2019-12-16-10-00-1.5.43-Release.md":[388,113],"./2019-12-19-10-00-1.6.0-Release.md":[389,114],"./2020-01-09-10-00-1.6.1-Release.md":[390,115],"./2020-01-16-10-00-1.6.2-Release.md":[391,116],"./2020-01-22-10-00-1.6.4-Release.md":[392,117],"./2020-01-29-10-00-1.6.5-Release.md":[393,118],"./2020-02-13-10-00-1.6.6-Release.md":[394,119],"./2020-02-27-10-00-1.6.8-Release.md":[395,120],"./2020-03-05-10-00-1.6.9-Release.md":[396,121],"./2020-03-26-10-00-1.6.10-Release.md":[397,122],"./2020-04-16-10-00-1.6.11-Release.md":[398,123],"./2020-05-01-10-00-1.6.13-Release.md":[399,124],"./2020-05-09-10-00-1.6.14-Release.md":[400,125],"./2020-05-28-10-00-1.6.17-Release.md":[401,126],"./2020-06-12-10-00-1.6.19-Release.md":[402,127],"./2020-06-18-10-00-1.6.20-Release.md":[403,128],"./2020-06-25-10-00-1.6.21-Release.md":[404,129],"./2020-07-16-10-00-1.6.22-Release.md":[405,130],"./2020-07-23-10-00-1.6.23-Release.md":[406,131],"./2020-08-26-10-00-1.6.25-Release.md":[407,132],"./2020-09-23-10-00-1.6.27-Release.md":[408,133],"./2020-10-07-10-00-1.6.28-Release.md":[409,134],"./2020-11-11-10-00-1.6.31-Release.md":[410,135],"./2020-12-02-10-00-1.6.33-Release.md":[411,136],"./2021-01-06-10-00-1.6.36-Release.md":[412,137],"./2021-01-27-10-00-1.6.38-Release.md":[413,138],"./2021-02-13-00-00-1.7.0-Release.md":[414,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[415,140],"./2021-03-24-10-00-1.7.3-Release.md":[416,141],"./2021-05-12-10-00-1.7.7-Release.md":[417,142],"./2021-05-28-10-00-1.7.10-Release.md":[418,143],"./2021-06-23-10-00-1.7.13-Release.md":[419,144],"./2021-07-14-10-00-1.7.16-Release.md":[420,145],"./2021-07-21-10-00-1.7.17-Release.md":[421,146],"./2021-09-06-10-00-1.7.22-Release.md":[422,147],"./2021-10-06-10-00-1.7.25-Release.md":[423,148],"./2021-10-28-19-00-1.8.0-Release.md":[424,149],"./2021-12-16-19-00-1.8.7-Release.md":[425,150],"./2022-03-09-19-00-1.8.13-Release.md":[426,151],"./2022-05-11-19-00-1.8.19-Release.md":[427,152],"./2022-06-17-19-00-1.8.24-Release.md":[428,153],"./2022-07-13-19-00-1.8.27-Release.md":[429,154],"./2022-08-21-19-00-1.8.31-Release.md":[430,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[431,156],"./2022-10-05-15-00-1.9.0-Release.md":[432,157],"./2022-12-07-15-00-1.9.5-Release.md":[433,158],"./2023-01-22-10-00-security-incident-jan21.md":[434,159],"./2023-02-18-15-00-1.9.11-Release.md":[435,160],"./2023-05-13-15-00-1.10.0-Release.md":[436,161],"./2023-07-01-15-00-1.10.6-Release.md":[437,162],"./2023-09-09-15-00-1.10.12-Release.md":[438,163],"./2023-11-05-10-00-1.10.15-Release.md":[439,164]};function s(e){if(!i.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],s=t[0];return i.e(t[1]).then((function(){return i.t(s,7)}))}s.keys=function(){return Object.keys(n)},s.id=282,e.exports=s},,,,,function(e,t,i){},function(e,t,i){"use strict";var n=i(0);i(131);t.a=e=>{let{image:t,title:i,description:s,link:a,linkAlt:o}=e;return Object(n.g)("div",{class:"col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-12 mb-2"},Object(n.g)("div",{class:"card"},Object(n.g)("img",{class:"card-img-top",alt:i,src:t,fetchpriority:"low"}),Object(n.g)("div",{class:"card-body"},Object(n.g)("h5",{class:"card-title"},a?Object(n.g)("a",{href:a,alt:o},i):i),Object(n.g)("p",{class:"card-text"},s))))}},function(e,t,i){"use strict";t.a=[{image:"/img/features/mousehighlight.png",title:"Action tooltips",description:"Displays tooltips for actions under your mouse cursor.",link:"https://github.com/runelite/runelite/wiki/Mouse-Tooltips"},{image:"/img/features/agility.png",title:"Agility",description:"Displays clickboxes for agility courses, and counts the number of laps you have done.",link:"https://github.com/runelite/runelite/wiki/Agility"},{image:"/img/features/kourend.png",title:"Arceuus Library",description:"Shows you where books are in the Arceuus Library.",link:"https://github.com/runelite/runelite/wiki/Kourend-Library"},{image:"/img/features/attackstyles.png",title:"Attack style",description:"Indicates your attack style and hides unwanted styles.",link:"https://github.com/runelite/runelite/wiki/Attack-Styles"},{image:"/img/features/bankeval.png",title:"Bank evaluator",description:"Displays your bank's total value based on GE and alch prices.",link:"https://github.com/runelite/runelite/wiki/Bank"},{image:"/img/features/banktags.png",title:"Bank tags",description:"Allows you to set searchable tags on items for your bank.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/tagtabs.png",title:"Bank Tag Tabs",description:"A tab on the left side of the bank to auto search the assigned tag when clicked.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/barbassault.png",title:"Barbarian Assault",description:"Displays a timer for the next change of horn commands.",link:"https://github.com/runelite/runelite/wiki/Barbarian-Assault"},{image:"/img/features/barrows.png",title:"Barrows",description:"Marks the location of brothers and shows puzzle answers",link:"https://github.com/runelite/runelite/wiki/Barrows-Brothers"},{image:"/img/features/blastfurnace.png",title:"Blast Furnace",description:"Shows your current bars/ores and marks the clickbox of the conveyor belt.",link:"https://github.com/runelite/runelite/wiki/Blast-Furnace"},{image:"/img/features/birdhouses.png",title:"Birdhouse Timers",description:"Displays birdhouses and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/cannontiles.png",title:"Cannon double hit spots",description:"Shows you where to position enemies for double cannonball hits.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/chatcolor.png",title:"Chat Color",description:"Configures chat colors for each type of message in transparent and non transparent chat.",link:"https://github.com/runelite/runelite/wiki/Chat-Color"},{image:"/img/features/chatcommands.png",title:"Chat commands",description:"Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.",link:"https://github.com/runelite/runelite/wiki/Chat-Commands"},{image:"/img/features/clanchat.png",title:"Clan chat",description:"Adds the sender's rank to clan chat messages.",link:"https://github.com/runelite/runelite/wiki/Clan-Chat"},{image:"/img/features/cluescroll.png",title:"Clue scroll helper",description:"Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.",link:"https://github.com/runelite/runelite/wiki/Clue-Scroll"},{image:"/img/features/moveableoverlay.png",title:"Custom overlay position",description:"Allows you to move RuneLite overlays to any position on the screen.",link:"https://github.com/runelite/runelite/wiki/General-Features#moving-overlays"},{image:"/img/features/daily.png",title:"Daily task indicators",description:"Notifies you on login what daily tasks you are able to complete.",link:"https://github.com/runelite/runelite/wiki/Daily-Task-Indicator"},{image:"/img/features/discord.png",title:"Discord integration",description:"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties",link:"https://github.com/runelite/runelite/wiki/Discord",home:!0},{image:"/img/features/cannon.png",title:"Dwarf multicannon",description:"Displays the number of cannonballs left in your cannon, along with common cannon spots.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/fairyringsearch.png",title:"Fairy Ring Filter",description:"Allows you to filter the fairy ring destination menu.",link:"https://github.com/runelite/runelite/wiki/Fairy-Rings"},{image:"/img/features/farmingtracker.png",title:"Farming Tracker",description:"Displays current farming patches and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/fishing.png",title:"Fishing",description:"Highlights fishing spots and tracks fishing stats.",link:"https://github.com/runelite/runelite/wiki/Fishing"},{image:"/img/features/gpu.png",title:"GPU",description:"Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.",link:"https://github.com/runelite/runelite/wiki/GPU",home:!0},{image:"/img/features/gesearch.png",title:"Grand Exchange lookup",description:"Quickly price-check any item on the Grand Exchange.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/ge.png",title:"Grand Exchange offers",description:"Lists your current Grand Exchange offers.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/grounditems.png",title:"Ground items",description:"Hides, highlights, and adds filterable price colors to dropped items.",link:"https://github.com/runelite/runelite/wiki/Ground-Items"},{image:"/img/features/herbiboar.png",title:"Herbiboar",description:"Highlights the path and objects to search at the end of the trail.",link:"https://github.com/runelite/runelite/wiki/Herbiboar"},{image:"/img/features/hunter.png",title:"Hunter",description:"Adds timers to hunter traps.",link:"https://github.com/runelite/runelite/wiki/Hunter"},{image:"/img/features/idle.png",title:"Idle notifications",description:"Sends system tray alerts when idle or about to be logged out.",link:"https://github.com/runelite/runelite/wiki/Idle-Notifier"},{image:"/img/features/imp.png",title:"Impling finder",description:"Highlights nearby implings on the minimap and on-screen.",link:"https://github.com/runelite/runelite/wiki/Implings"},{image:"/img/features/inventorytags.png",title:"Inventory Tags",description:"Allows you to assign group tags to inventory items.",link:"https://github.com/runelite/runelite/wiki/Inventory-Tags"},{image:"/img/features/inventoryviewer.png",title:"Inventory Viewer",description:"Displays an overlay of your current inventory.",link:"https://github.com/runelite/runelite/wiki/Inventory-Viewer"},{image:"/img/features/itemstats.png",title:"Item stats",description:"Displays information about food and potion effects.",link:"https://github.com/runelite/runelite/wiki/Item-Stats"},{image:"/img/features/jewellerycount.png",title:"Jewellery charges",description:"Displays the number of charges that your jewellery has.",link:"https://github.com/runelite/runelite/wiki/Item-Charges"},{image:"/img/features/lightboxsolver.png",title:"Light Box Puzzle Solver",description:"Solves light box puzzles during clue scrolls.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/loottracker.png",title:"Loot Tracker",description:"Shows kill count and drops with prices from monsters you kill.",link:"https://github.com/runelite/runelite/wiki/Loot-Tracker",home:!0},{image:"/img/features/lowdetail.png",title:"Low detail mode",description:"Enables low detail mode, removing some of the game's eye candy.",link:"https://github.com/runelite/runelite/wiki/Low-Detail"},{image:"/img/features/mta.png",title:"Mage Training Arena",description:"Overlays to assist in each of the MTA rooms.",link:"https://github.com/runelite/runelite/wiki/Mage-Training-Arena"},{image:"/img/features/menuswap.png",title:"Menu entry swapping",description:"Swaps the left-click actions of certain objects.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper"},{image:"/img/features/minimapdots.png",title:"Minimap dot customizer",description:"Customizes the color of minimap dots.",link:"https://github.com/runelite/runelite/wiki/Minimap"},{image:"/img/features/favor.png",title:"Miscellania favor",description:"Displays your current favor and treasury in the Kingdom of Miscellania.",link:"https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania"},{image:"/img/features/mlm.png",title:"Motherlode Mine",description:"Marks veins and rock obstacles in the Motherlode Mine.",link:"https://github.com/runelite/runelite/wiki/Motherlode-Mine"},{image:"/img/features/newsfeed.png",title:"News feed",description:"Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.",link:"https://github.com/runelite/runelite/wiki/News-Feed"},{image:"/img/features/nmz.png",title:"Nightmare Zone",description:"Displays NMZ points/absorption and notifies you about expiring potions.",link:"https://github.com/runelite/runelite/wiki/Nightmare-Zone"},{image:"/img/features/npctag.png",title:"NPC tagging",description:"Tags and keeps track of an NPC.",link:"https://github.com/runelite/runelite/wiki/NPC-Indicators"},{image:"/img/features/discordparty.png",title:"Party",description:"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location",link:"https://github.com/runelite/runelite/wiki/Party"},{image:"/img/features/playerindicators.png",title:"Player indicators",description:"Draws the names of friends, clan mates and yourself overhead.",link:"https://github.com/runelite/runelite/wiki/Player-Indicators"},{image:"/img/features/poh.png",title:"Player-owned houses",description:"Displays minimap icons and marks unlit/lit burners.",link:"https://github.com/runelite/runelite/wiki/Player-owned-House"},{image:"/img/features/prayerbar.png",title:"Prayer Bar",description:"Displays a prayer bar underneath your hitpoints bar.",link:"https://github.com/runelite/runelite/wiki/Prayer"},{image:"/img/features/puzzlebox.png",title:"Puzzle box solver",description:"Shows you where to click to solve puzzle boxes.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/raids.png",title:"Raid scouter",description:"Displays the current layout of raids and tracks the raid duration.",link:"https://github.com/runelite/runelite/wiki/Chambers-of-Xeric"},{image:"/img/features/regen.png",title:"Regen timers",description:"Tracks and displays the hitpoints & special attack regen timers.",link:"https://github.com/runelite/runelite/wiki/Regeneration-Meter"},{image:"/img/features/roguesden.png",title:"Rogues' Den",description:"Marks tiles and clickboxes to help you traverse the maze.",link:"https://github.com/runelite/runelite/wiki/Rogues%27-Den"},{image:"/img/features/abyss.png",title:"Runecraft",description:"Displays minimap icons and clickboxes for abyssal rifts.",link:"https://github.com/runelite/runelite/wiki/Runecraft"},{image:"/img/features/runepouch.png",title:"Rune pouch",description:"Shows what runes are currently in your rune pouch.",link:"https://github.com/runelite/runelite/wiki/Rune-Pouch"},{image:"/img/features/shiftclick.png",title:"Shift click configuration",description:"Allows you to change/set shift click actions on items.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click"},{image:"/img/features/statusbars.png",title:"Status Bars",description:"Shows health and prayer bars next to the inventory.",link:"https://github.com/runelite/runelite/wiki/Status-Bars"},{image:"/img/features/boosts.png",title:"Status widgets",description:"Shows boost timers, enemy HP, and other useful overlays.",home:!0},{image:"/img/features/stretchedfixed.png",title:"Stretched mode",description:"Stretches the game to the size of your window.",link:"https://github.com/runelite/runelite/wiki/Stretched-Mode"},{image:"/img/features/teamcapes.png",title:"Team cape overlay",description:"Displays team cape wearer counts.",link:"https://github.com/runelite/runelite/wiki/Team-Capes"},{image:"/img/features/tearsofguthix.png",title:"Tears of Guthix",description:"Displays the remaining time for streams of tears.",link:"https://github.com/runelite/runelite/wiki/Tears-Of-Guthix"},{image:"/img/features/tileindicators.png",title:"Tile indicator",description:"Marks the tile you last clicked on.",link:"https://github.com/runelite/runelite/wiki/Tile-Indicators"},{image:"/img/features/tithefarm.png",title:"Tithe Farm",description:"Displays timers for the farming patches within the Tithe farm minigame.",link:"https://github.com/runelite/runelite/wiki/Tithe-Farm"},{image:"/img/features/wcing.png",title:"Woodcutting",description:"Displays information about the logs you are cutting.",link:"https://github.com/runelite/runelite/wiki/Woodcutting"},{image:"/img/features/xpglobes.png",title:"XP globes",description:"Displays skill globes when you gain XP, with more detailed stats on hover.",link:"https://github.com/runelite/runelite/wiki/XP-Globes"},{image:"/img/features/xptracker.png",title:"XP Tracker",description:"Side panel displaying xp data for each skill you have trained.",link:"https://github.com/runelite/runelite/wiki/XP-Tracker"},{image:"/img/features/zoom.png",title:"Zoom unlimiter",description:"Allows you to zoom past the default camera distance limits.",link:"https://github.com/runelite/runelite/wiki/Camera"}]},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){"use strict";i.r(t);var n=i(0),s=(i(287),i(133),i(27)),a=i(288),o=i(126),r=i(11),l=i(69),c=i(21),u=i(18),d=i(33),m=i(129),g=i.n(m);var h=e=>{let{url:t,title:i,author:s,date:a}=e;return t&&Object(n.g)(n.b,null,Object(n.g)("h6",null,"Latest commit:"),Object(n.g)("a",{href:t},i)," ",Object(n.g)("span",{class:"text-muted"},"by ",Object(n.g)("a",{href:s.url?s.url:t},s.name,",")," ",g()(a)))};class p extends n.a{constructor(e){super(e),this.handleScroll=this.handleScroll.bind(this),this.state={interval:0}}handleScroll(){const e=document.getElementById("jumbo"),t=e.offsetTop+e.offsetHeight-document.getElementsByClassName("navbar")[0].offsetHeight,i=window.scrollY||window.pageYOffset||document.body.scrollTop;this.props.navbarDark?i>t&&this.props.makeNavbarDefault():i<=t&&this.props.makeNavbarDark()}componentDidMount(){this.setState({interval:setInterval(()=>{const{images:e,heroImage:t,nextHeroImage:i}=this.props,n=e.length,s=(t+1)%n,a=new Image;a.src=Object(l.a)(e[s]),a.onload=()=>i(n),this.setState({loadingHeroImg:a})},8e3)}),this.handleScroll(),document.addEventListener("scroll",this.handleScroll)}componentWillUnmount(){const{interval:e,loadingHeroImg:t}=this.state;clearInterval(e),t&&delete t.onload,this.props.makeNavbarDefault(),document.removeEventListener("scroll",this.handleScroll)}render(e){let{title:t,description:i,buttons:s,release:a,commit:o,playing:r,loggedIn:c,heroImage:m}=e,g=s.filter(e=>function(e){const t=navigator.platform.toLowerCase();return-1!==t.indexOf("os x")||-1!==t.indexOf("mac")?"macOS"===e:-1!==t.indexOf("win")?-1!==navigator.userAgent.indexOf("Win64")||-1!==navigator.userAgent.indexOf("WOW64")?"Windows64"===e:"Windows32"===e:-1!==t.indexOf("linux")&&(-1!==t.indexOf("x86_64")?"Linux64"===e:-1!==t.indexOf("i686")?"Linux32"===e:-1!==t.indexOf("armv8")||-1!==t.indexOf("aarch64")?"LinuxAarch64"===e:-1!==t.indexOf("arm")||-1!==t.indexOf("aarch32")?"LinuxAarch32"===e:"Linux32"===e)}(e.os));0===g.length&&(g=[s.find(e=>"all"===e.os)]);const p=g.length>1;return Object(n.g)("div",{class:"jumbotron jumbotron-fluid",style:{"--jumbotron-background":`url(${Object(l.a)(this.props.images[m])})`},id:"jumbo"},Object(n.g)("div",{class:"jumbotron-cell"},Object(n.g)("div",{class:"jumbotron-body"},Object(n.g)("div",{class:"jumbotron-header"},Object(n.g)("h1",null,"RUNELITE",Object(n.g)("span",null,".NET")),Object(n.g)("p",null,i),Object(n.g)("a",{id:"contribute",class:"btn",href:d.a.contribute},"Contribute"),Object(n.g)("div",{id:"download"},Object(n.g)("div",{class:"btn-group"},g.map(e=>{let{link:t,icon:i,text:s}=e;return Object(n.g)("a",{id:"direct-download-btn",class:"btn btn-primary",title:"Download for "+s.os+(s.arch?" ("+s.arch+")":""),href:t,native:!0,rel:"nofollow"},Object(n.g)("i",{class:i})," Download",p&&s.arch?" ("+s.arch+")":"")}),Object(n.g)("div",{class:"dropdown"},Object(n.g)("button",{class:"btn dropdown-toggle dropdown-toggle-split btn-primary"},Object(n.g)("span",{class:"sr-only"},"Toggle Dropdown")),Object(n.g)("div",{class:"dropdown-menu",style:{textShadow:"none"}},s.map(e=>{let{link:t,icon:i,text:s}=e;return Object(n.g)("a",{class:"dropdown-item",href:t,native:!0,rel:"nofollow"},Object(n.g)("i",{class:i})," Download for ",s.os," ",s.arch?" ("+s.arch+")":"")})))))),Object(n.g)("div",{class:"small"},Object(n.g)("h6",null,"Players:"),Object(u.f)(r)||"unknown"," online (",Object(u.f)(c)||"unknown"," in game)",Object(n.g)("h6",null,"Latest release:"),Object(n.g)("a",{href:"#news"},a||"unknown"),Object(n.g)(h,o)))))}}var f=Object(s.b)(e=>({navbarDark:e.app.navbarDark,heroImage:e.app.heroImage}),e=>Object(r.b)({makeNavbarDark:c.b,makeNavbarDefault:c.c,nextHeroImage:c.d},e))(p),b=i(134),R=i(48),k=i(7),w=i.n(k),y=i(289),v=i(70),O=i(46),j=i(8),x=i(5),S=i(127),D=i(4),C=i(1);function I(){return(I=Object.assign?Object.assign.bind():function(e){for(var t=1;t=e}));e.trackVisibility&&"undefined"===typeof t.isVisible&&(t.isVisible=a),null==(i=s.get(t.target))||i.forEach((function(e){e(a,t)}))}))}),e);n=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),i={id:t,observer:a,elements:s},M.set(t,i)}return i}(i),o=a.id,r=a.observer,l=a.elements,c=l.get(e)||[];return l.has(e)||l.set(e,c),c.push(t),r.observe(e),function(){c.splice(c.indexOf(t),1),0===c.length&&(l.delete(e),r.unobserve(e)),0===l.size&&(r.disconnect(),M.delete(o))}}var z=["children","as","triggerOnce","threshold","root","rootMargin","onChange","skip","trackVisibility","delay","initialInView","fallbackInView"];function B(e){return"function"!==typeof e.children}var V=function(e){var t,i;function n(t){var i;return(i=e.call(this,t)||this).node=null,i._unobserveCb=null,i.handleNode=function(e){i.node&&(i.unobserve(),e||i.props.triggerOnce||i.props.skip||i.setState({inView:!!i.props.initialInView,entry:void 0})),i.node=e||null,i.observeNode()},i.handleChange=function(e,t){e&&i.props.triggerOnce&&i.unobserve(),B(i.props)||i.setState({inView:e,entry:t}),i.props.onChange&&i.props.onChange(e,t)},i.state={inView:!!t.initialInView,entry:void 0},i}i=e,(t=n).prototype=Object.create(i.prototype),t.prototype.constructor=t,T(t,i);var s=n.prototype;return s.componentDidUpdate=function(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())},s.componentWillUnmount=function(){this.unobserve(),this.node=null},s.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,i=e.root,n=e.rootMargin,s=e.trackVisibility,a=e.delay,o=e.fallbackInView;this._unobserveCb=E(this.node,this.handleChange,{threshold:t,root:i,rootMargin:n,trackVisibility:s,delay:a},o)}},s.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},s.render=function(){if(!B(this.props)){var e=this.state,t=e.inView,i=e.entry;return this.props.children({inView:t,entry:i,ref:this.handleNode})}var n=this.props,s=n.children,a=n.as,o=function(e,t){if(null==e)return{};var i,n,s={},a=Object.keys(e);for(n=0;n=0||(s[i]=e[i]);return s}(n,z);return C.c(a||"div",I({ref:this.handleNode},o),s)},n}(C.a);t.default=Object(s.b)((e,t)=>({commit:Object(R.l)(e,t),release:Object(D.c)(e,t),sessionCount:Object(v.e)(e,t),loggedInCount:Object(v.d)(e,t)}),e=>Object(r.b)({fetchBootstrap:D.b,fetchCommits:R.b,fetchSessionCount:v.c,fetchLoggedInCount:v.b},e))(Object(S.a)(async e=>{let{fetchBootstrap:t,fetchCommits:i,fetchSessionCount:n,fetchLoggedInCount:s}=e;t().then(()=>i()),n(),s()})(e=>{let{commit:t,release:i,sessionCount:s,loggedInCount:r}=e;return Object(n.g)(o.a,null,Object(n.g)(O.a,{title:w.a.title+" - Open Source Old School RuneScape Client",description:w.a.description}),Object(n.g)("section",{id:"intro"},Object(n.g)(f,Object.assign({},w.a,{release:i,commit:t,playing:s,loggedIn:r}))),Object(n.g)("section",{id:"features-home"},Object(n.g)("div",{class:"content-section homepage"},Object(n.g)("h1",{class:"page-header"},"FEATURES"),Object(n.g)(j.a,{href:"/features",style:{color:"inherit"}},Object(n.g)("h4",{class:"right-header"},"SHOW ALL FEATURES")),Object(n.g)("div",{class:"row"},y.a.filter(e=>e.home).map(e=>Object(n.g)(a.a,Object.assign({key:e.title,linkAlt:"View on Wiki"},e)))))),Object(n.g)("section",{id:"news"},Object(n.g)("div",{class:"content-section homepage"},Object(n.g)("h1",{class:"page-header"},"LATEST NEWS"),Object(n.g)(j.a,{href:"/blog",style:{color:"inherit"}},Object(n.g)("h4",{class:"right-header"},"SHOW ALL NEWS")),Object(n.g)(V,null,e=>{let{inView:t,ref:i}=e;return Object(n.g)("div",{ref:i},t?Object(n.g)(x.a,{getComponent:()=>Object(b.c)().then(e=>{let{body:t}=e;return Object(n.g)("div",{class:"markdown-body news-page",dangerouslySetInnerHTML:{__html:t}})})}):null)}))))}))}])]);
-//# sourceMappingURL=4.19302058.chunk.js.map
\ No newline at end of file
diff --git a/static/js/4.19302058.chunk.js.map b/static/js/4.19302058.chunk.js.map
deleted file mode 100644
index b33c10b5b..000000000
--- a/static/js/4.19302058.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","components/feature.js","_data/features.js","components/commit.js","components/hero.js","../../src/observe.ts","../../src/InView.tsx","routes/home.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","md","Map","getBlog","post","get","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","Feature","image","title","description","link","linkAlt","alt","src","fetchpriority","home","Commit","url","author","Fragment","ago","Hero","handleScroll","bind","interval","jumbo","document","getElementById","fromTop","offsetTop","offsetHeight","getElementsByClassName","stop","window","scrollY","pageYOffset","body","scrollTop","navbarDark","makeNavbarDefault","makeNavbarDark","setInterval","images","heroImage","nextHeroImage","numImages","nextImageId","img","Image","getChristmasImage","onload","loadingHeroImg","addEventListener","componentWillUnmount","clearInterval","removeEventListener","buttons","release","commit","playing","loggedIn","downloadButtons","filter","button","osName","platform","navigator","indexOf","userAgent","isOsCorrect","os","find","showDetail","links","contribute","_ref2","icon","text","arch","native","rel","textShadow","_ref3","numberWithCommas","connect","app","dispatch","bindActionCreators","observerMap","RootIds","WeakMap","rootId","unsupportedValue","undefined","optionsToId","options","key","root","has","toString","observe","element","callback","fallbackInView","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","target","intersectionRatio","threshold","time","boundingClientRect","intersectionRect","rootBounds","_createObserver","instance","thresholds","elements","observer","entries","forEach","entry","_elements$get","inView","some","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","unobserve","size","disconnect","isPlainChildren","InView","_React$Component","_this","call","node","_unobserveCb","handleNode","triggerOnce","initialInView","observeNode","handleChange","onChange","_proto","prototype","componentDidUpdate","prevProps","rootMargin","delay","_this$props","_this$state","ref","_this$props2","as","_objectWithoutPropertiesLoose","_excluded","React","_extends","mapStateToProps","getLatestCommit","getLatestRelease","sessionCount","getSessionCount","loggedInCount","getLoggedInCount","fetchBootstrap","fetchCommits","fetchSessionCount","fetchLoggedInCount","_ref4","Meta","hero","Link","features","feature","Async","getComponent","dangerouslySetInnerHTML","__html"],"mappings":"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,GACvB,IAAIhG,EAAKiG,EAAsBD,GAC/B,OAAOE,EAAoBlG,GAE5B,SAASiG,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEL,EAAKE,GAAM,CACpC,IAAII,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,EAEP,OAAON,EAAIE,GAEZD,EAAejC,KAAO,WACrB,OAAOpD,OAAOoD,KAAKgC,IAEpBC,EAAehB,QAAUkB,EACzB7C,EAAOC,QAAU0C,EACjBA,EAAe/F,GAAK,K,gyECtKpB,IAAI8F,EAAM,CACT,iCAAkC,CACjC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAO/D,QAAQ8C,UAAU7C,MAAK,WAC7B,IAAIkE,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMhG,EAAKuG,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAIrE,MAAK,WACzC,OAAOgE,EAAoBM,EAAExG,EAAI,MAGnCsG,EAAoBxC,KAAO,WAC1B,OAAOpD,OAAOoD,KAAKgC,IAEpBQ,EAAoBtG,GAAK,IACzBoD,EAAOC,QAAUiD,G,mDCxlBjB,kBAuBeG,IApBCrG,IAAA,IAAC,MAAEsG,EAAK,MAAEC,EAAK,YAAEC,EAAW,KAAEC,EAAI,QAAEC,GAAS1G,EAAA,OAC3DL,YAAA,OAAKE,MAAM,sDACTF,YAAA,OAAKE,MAAM,QACTF,YAAA,OAAKE,MAAM,eAAe8G,IAAKJ,EAAOK,IAAKN,EAAOO,cAAc,QAChElH,YAAA,OAAKE,MAAM,aACTF,YAAA,MAAIE,MAAM,cACP4G,EACC9G,YAAA,KAAGG,KAAM2G,EAAME,IAAKD,GACjBH,GAGHA,GAGJ5G,YAAA,KAAGE,MAAM,aAAa2G,Q,6BCjBf,KACb,CACEF,MAAO,mCACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,4DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YACE,wFACFC,KAAM,qDAER,CACEH,MAAO,4BACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,iCACPC,MAAO,eACPC,YAAa,yDACbC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,iBACPC,YACE,gEACFC,KAAM,kDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,4DACbC,KAAM,uDAER,CACEH,MAAO,4BACPC,MAAO,gBACPC,YACE,mFACFC,KAAM,uDAER,CACEH,MAAO,gCACPC,MAAO,oBACPC,YAAa,yDACbC,KAAM,+DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,0DACbC,KAAM,8DAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,4EACFC,KAAM,2DAER,CACEH,MAAO,+BACPC,MAAO,mBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,0BACPC,YACE,kEACFC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,2FACFC,KAAM,wDAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,oFACFC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,gDACbC,KAAM,uDAER,CACEH,MAAO,+BACPC,MAAO,qBACPC,YACE,uEACFC,KAAM,yDAER,CACEH,MAAO,oCACPC,MAAO,0BACPC,YACE,sEACFC,KACE,8EAEJ,CACEH,MAAO,0BACPC,MAAO,wBACPC,YACE,mEACFC,KAAM,kEAER,CACEH,MAAO,4BACPC,MAAO,sBACPC,YACE,sHACFC,KAAM,oDACNK,MAAM,GAER,CACER,MAAO,2BACPC,MAAO,oBACPC,YACE,0FACFC,KAAM,oDAER,CACEH,MAAO,oCACPC,MAAO,oBACPC,YAAa,wDACbC,KAAM,yDAER,CACEH,MAAO,mCACPC,MAAO,kBACPC,YAAa,+DACbC,KAAM,2DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,qDACbC,KAAM,qDAER,CACEH,MAAO,wBACPC,MAAO,MACPC,YACE,uHACFC,KAAM,gDACNK,MAAM,GAER,CACER,MAAO,6BACPC,MAAO,wBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,uBACPC,MAAO,wBACPC,YAAa,4CACbC,KAAM,4DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,wEACFC,KAAM,0DAER,CACEH,MAAO,8BACPC,MAAO,YACPC,YACE,qEACFC,KAAM,uDAER,CACEH,MAAO,2BACPC,MAAO,SACPC,YAAa,+BACbC,KAAM,oDAER,CACEH,MAAO,yBACPC,MAAO,qBACPC,YACE,gEACFC,KAAM,2DAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YAAa,2DACbC,KAAM,sDAER,CACEH,MAAO,kCACPC,MAAO,iBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,oCACPC,MAAO,mBACPC,YAAa,iDACbC,KAAM,8DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,sDACbC,KAAM,wDAER,CACEH,MAAO,mCACPC,MAAO,oBACPC,YAAa,0DACbC,KAAM,0DAER,CACEH,MAAO,mCACPC,MAAO,0BACPC,YAAa,gDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,iEACFC,KAAM,yDACNK,MAAM,GAER,CACER,MAAO,8BACPC,MAAO,kBACPC,YACE,kEACFC,KAAM,wDAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,+CACbC,KAAM,iEAER,CACEH,MAAO,6BACPC,MAAO,sBACPC,YAAa,mDACbC,KAAM,gEAER,CACEH,MAAO,gCACPC,MAAO,yBACPC,YAAa,wCACbC,KAAM,qDAER,CACEH,MAAO,0BACPC,MAAO,oBACPC,YACE,0EACFC,KAAM,oEAER,CACEH,MAAO,wBACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,6DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,kGACFC,KAAM,uDAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YACE,0EACFC,KAAM,4DAER,CACEH,MAAO,2BACPC,MAAO,cACPC,YAAa,kCACbC,KAAM,4DAER,CACEH,MAAO,iCACPC,MAAO,QACPC,YACE,qHACFC,KAAM,mDAER,CACEH,MAAO,qCACPC,MAAO,oBACPC,YACE,gEACFC,KAAM,+DAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,sDACbC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,uDACbC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,qEACFC,KAAM,+DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,mEACFC,KAAM,gEAER,CACEH,MAAO,8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","file":"static/js/4.19302058.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t295,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t296,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t297,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t298,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t299,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t300,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t301,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t302,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t303,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t304,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t305,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t306,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t307,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t308,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t309,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t310,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t311,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t312,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t313,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t314,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t315,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t318,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t319,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t320,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t321,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t322,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t323,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t324,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t325,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t326,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t327,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t328,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t329,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t330,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t331,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t332,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t333,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t334,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t335,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t336,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t337,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t338,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t339,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t340,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t341,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t342,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t343,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t344,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t345,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t346,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t347,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t348,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t349,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t350,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t351,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t352,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t353,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t354,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t355,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t356,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t357,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t358,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t359,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t360,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t361,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t362,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t363,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t364,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t365,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t366,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t367,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t368,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t369,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t370,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t371,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t372,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t373,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t374,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t375,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t376,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t377,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t378,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t379,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t380,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t381,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t382,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t383,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t384,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t385,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t386,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t387,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t388,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t389,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t390,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t391,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t392,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t393,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t394,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t395,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t396,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t397,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t398,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t399,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t400,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t401,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t402,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t403,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t404,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t405,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t406,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t407,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t408,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t409,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t410,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t411,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t412,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t413,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t414,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t415,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t416,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t417,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t418,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t419,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t420,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t421,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t422,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t423,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t424,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t425,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t426,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t427,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t428,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t429,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t430,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t431,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t432,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t433,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t434,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t435,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t436,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t437,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t438,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t439,\n\t\t164\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 282;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n \n
\n
\n
\n
\n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n
{description}
\n
\n
\n
\n)\n\nexport default Feature\n","export default [\n {\n image: '/img/features/mousehighlight.png',\n title: 'Action tooltips',\n description: 'Displays tooltips for actions under your mouse cursor.',\n link: 'https://github.com/runelite/runelite/wiki/Mouse-Tooltips'\n },\n {\n image: '/img/features/agility.png',\n title: 'Agility',\n description:\n 'Displays clickboxes for agility courses, and counts the number of laps you have done.',\n link: 'https://github.com/runelite/runelite/wiki/Agility'\n },\n {\n image: '/img/features/kourend.png',\n title: 'Arceuus Library',\n description: 'Shows you where books are in the Arceuus Library.',\n link: 'https://github.com/runelite/runelite/wiki/Kourend-Library'\n },\n {\n image: '/img/features/attackstyles.png',\n title: 'Attack style',\n description: 'Indicates your attack style and hides unwanted styles.',\n link: 'https://github.com/runelite/runelite/wiki/Attack-Styles'\n },\n {\n image: '/img/features/bankeval.png',\n title: 'Bank evaluator',\n description:\n \"Displays your bank's total value based on GE and alch prices.\",\n link: 'https://github.com/runelite/runelite/wiki/Bank'\n },\n {\n image: '/img/features/banktags.png',\n title: 'Bank tags',\n description: 'Allows you to set searchable tags on items for your bank.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/tagtabs.png',\n title: 'Bank Tag Tabs',\n description:\n 'A tab on the left side of the bank to auto search the assigned tag when clicked.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/barbassault.png',\n title: 'Barbarian Assault',\n description: 'Displays a timer for the next change of horn commands.',\n link: 'https://github.com/runelite/runelite/wiki/Barbarian-Assault'\n },\n {\n image: '/img/features/barrows.png',\n title: 'Barrows',\n description: 'Marks the location of brothers and shows puzzle answers',\n link: 'https://github.com/runelite/runelite/wiki/Barrows-Brothers'\n },\n {\n image: '/img/features/blastfurnace.png',\n title: 'Blast Furnace',\n description:\n 'Shows your current bars/ores and marks the clickbox of the conveyor belt.',\n link: 'https://github.com/runelite/runelite/wiki/Blast-Furnace'\n },\n {\n image: '/img/features/birdhouses.png',\n title: 'Birdhouse Timers',\n description: 'Displays birdhouses and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/cannontiles.png',\n title: 'Cannon double hit spots',\n description:\n 'Shows you where to position enemies for double cannonball hits.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/chatcolor.png',\n title: 'Chat Color',\n description:\n 'Configures chat colors for each type of message in transparent and non transparent chat.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Color'\n },\n {\n image: '/img/features/chatcommands.png',\n title: 'Chat commands',\n description:\n 'Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Commands'\n },\n {\n image: '/img/features/clanchat.png',\n title: 'Clan chat',\n description: \"Adds the sender's rank to clan chat messages.\",\n link: 'https://github.com/runelite/runelite/wiki/Clan-Chat'\n },\n {\n image: '/img/features/cluescroll.png',\n title: 'Clue scroll helper',\n description:\n 'Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.',\n link: 'https://github.com/runelite/runelite/wiki/Clue-Scroll'\n },\n {\n image: '/img/features/moveableoverlay.png',\n title: 'Custom overlay position',\n description:\n 'Allows you to move RuneLite overlays to any position on the screen.',\n link:\n 'https://github.com/runelite/runelite/wiki/General-Features#moving-overlays'\n },\n {\n image: '/img/features/daily.png',\n title: 'Daily task indicators',\n description:\n 'Notifies you on login what daily tasks you are able to complete.',\n link: 'https://github.com/runelite/runelite/wiki/Daily-Task-Indicator'\n },\n {\n image: '/img/features/discord.png',\n title: 'Discord integration',\n description:\n \"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties\",\n link: 'https://github.com/runelite/runelite/wiki/Discord',\n home: true\n },\n {\n image: '/img/features/cannon.png',\n title: 'Dwarf multicannon',\n description:\n 'Displays the number of cannonballs left in your cannon, along with common cannon spots.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/fairyringsearch.png',\n title: 'Fairy Ring Filter',\n description: 'Allows you to filter the fairy ring destination menu.',\n link: 'https://github.com/runelite/runelite/wiki/Fairy-Rings'\n },\n {\n image: '/img/features/farmingtracker.png',\n title: 'Farming Tracker',\n description: 'Displays current farming patches and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/fishing.png',\n title: 'Fishing',\n description: 'Highlights fishing spots and tracks fishing stats.',\n link: 'https://github.com/runelite/runelite/wiki/Fishing'\n },\n {\n image: '/img/features/gpu.png',\n title: 'GPU',\n description:\n 'Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.',\n link: 'https://github.com/runelite/runelite/wiki/GPU',\n home: true\n },\n {\n image: '/img/features/gesearch.png',\n title: 'Grand Exchange lookup',\n description: 'Quickly price-check any item on the Grand Exchange.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/ge.png',\n title: 'Grand Exchange offers',\n description: 'Lists your current Grand Exchange offers.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/grounditems.png',\n title: 'Ground items',\n description:\n 'Hides, highlights, and adds filterable price colors to dropped items.',\n link: 'https://github.com/runelite/runelite/wiki/Ground-Items'\n },\n {\n image: '/img/features/herbiboar.png',\n title: 'Herbiboar',\n description:\n 'Highlights the path and objects to search at the end of the trail.',\n link: 'https://github.com/runelite/runelite/wiki/Herbiboar'\n },\n {\n image: '/img/features/hunter.png',\n title: 'Hunter',\n description: 'Adds timers to hunter traps.',\n link: 'https://github.com/runelite/runelite/wiki/Hunter'\n },\n {\n image: '/img/features/idle.png',\n title: 'Idle notifications',\n description:\n 'Sends system tray alerts when idle or about to be logged out.',\n link: 'https://github.com/runelite/runelite/wiki/Idle-Notifier'\n },\n {\n image: '/img/features/imp.png',\n title: 'Impling finder',\n description: 'Highlights nearby implings on the minimap and on-screen.',\n link: 'https://github.com/runelite/runelite/wiki/Implings'\n },\n {\n image: '/img/features/inventorytags.png',\n title: 'Inventory Tags',\n description: 'Allows you to assign group tags to inventory items.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Tags'\n },\n {\n image: '/img/features/inventoryviewer.png',\n title: 'Inventory Viewer',\n description: 'Displays an overlay of your current inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Viewer'\n },\n {\n image: '/img/features/itemstats.png',\n title: 'Item stats',\n description: 'Displays information about food and potion effects.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Stats'\n },\n {\n image: '/img/features/jewellerycount.png',\n title: 'Jewellery charges',\n description: 'Displays the number of charges that your jewellery has.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Charges'\n },\n {\n image: '/img/features/lightboxsolver.png',\n title: 'Light Box Puzzle Solver',\n description: 'Solves light box puzzles during clue scrolls.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/loottracker.png',\n title: 'Loot Tracker',\n description:\n 'Shows kill count and drops with prices from monsters you kill.',\n link: 'https://github.com/runelite/runelite/wiki/Loot-Tracker',\n home: true\n },\n {\n image: '/img/features/lowdetail.png',\n title: 'Low detail mode',\n description:\n \"Enables low detail mode, removing some of the game's eye candy.\",\n link: 'https://github.com/runelite/runelite/wiki/Low-Detail'\n },\n {\n image: '/img/features/mta.png',\n title: 'Mage Training Arena',\n description: 'Overlays to assist in each of the MTA rooms.',\n link: 'https://github.com/runelite/runelite/wiki/Mage-Training-Arena'\n },\n {\n image: '/img/features/menuswap.png',\n title: 'Menu entry swapping',\n description: 'Swaps the left-click actions of certain objects.',\n link: 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper'\n },\n {\n image: '/img/features/minimapdots.png',\n title: 'Minimap dot customizer',\n description: 'Customizes the color of minimap dots.',\n link: 'https://github.com/runelite/runelite/wiki/Minimap'\n },\n {\n image: '/img/features/favor.png',\n title: 'Miscellania favor',\n description:\n 'Displays your current favor and treasury in the Kingdom of Miscellania.',\n link: 'https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania'\n },\n {\n image: '/img/features/mlm.png',\n title: 'Motherlode Mine',\n description: 'Marks veins and rock obstacles in the Motherlode Mine.',\n link: 'https://github.com/runelite/runelite/wiki/Motherlode-Mine'\n },\n {\n image: '/img/features/newsfeed.png',\n title: 'News feed',\n description:\n 'Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.',\n link: 'https://github.com/runelite/runelite/wiki/News-Feed'\n },\n {\n image: '/img/features/nmz.png',\n title: 'Nightmare Zone',\n description:\n 'Displays NMZ points/absorption and notifies you about expiring potions.',\n link: 'https://github.com/runelite/runelite/wiki/Nightmare-Zone'\n },\n {\n image: '/img/features/npctag.png',\n title: 'NPC tagging',\n description: 'Tags and keeps track of an NPC.',\n link: 'https://github.com/runelite/runelite/wiki/NPC-Indicators'\n },\n {\n image: '/img/features/discordparty.png',\n title: 'Party',\n description:\n \"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location\",\n link: 'https://github.com/runelite/runelite/wiki/Party'\n },\n {\n image: '/img/features/playerindicators.png',\n title: 'Player indicators',\n description:\n 'Draws the names of friends, clan mates and yourself overhead.',\n link: 'https://github.com/runelite/runelite/wiki/Player-Indicators'\n },\n {\n image: '/img/features/poh.png',\n title: 'Player-owned houses',\n description: 'Displays minimap icons and marks unlit/lit burners.',\n link: 'https://github.com/runelite/runelite/wiki/Player-owned-House'\n },\n {\n image: '/img/features/prayerbar.png',\n title: 'Prayer Bar',\n description: 'Displays a prayer bar underneath your hitpoints bar.',\n link: 'https://github.com/runelite/runelite/wiki/Prayer'\n },\n {\n image: '/img/features/puzzlebox.png',\n title: 'Puzzle box solver',\n description: 'Shows you where to click to solve puzzle boxes.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/raids.png',\n title: 'Raid scouter',\n description:\n 'Displays the current layout of raids and tracks the raid duration.',\n link: 'https://github.com/runelite/runelite/wiki/Chambers-of-Xeric'\n },\n {\n image: '/img/features/regen.png',\n title: 'Regen timers',\n description:\n 'Tracks and displays the hitpoints & special attack regen timers.',\n link: 'https://github.com/runelite/runelite/wiki/Regeneration-Meter'\n },\n {\n image: '/img/features/roguesden.png',\n title: \"Rogues' Den\",\n description: 'Marks tiles and clickboxes to help you traverse the maze.',\n link: 'https://github.com/runelite/runelite/wiki/Rogues%27-Den'\n },\n {\n image: '/img/features/abyss.png',\n title: 'Runecraft',\n description: 'Displays minimap icons and clickboxes for abyssal rifts.',\n link: 'https://github.com/runelite/runelite/wiki/Runecraft'\n },\n {\n image: '/img/features/runepouch.png',\n title: 'Rune pouch',\n description: 'Shows what runes are currently in your rune pouch.',\n link: 'https://github.com/runelite/runelite/wiki/Rune-Pouch'\n },\n {\n image: '/img/features/shiftclick.png',\n title: 'Shift click configuration',\n description: 'Allows you to change/set shift click actions on items.',\n link:\n 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click'\n },\n {\n image: '/img/features/statusbars.png',\n title: 'Status Bars',\n description: 'Shows health and prayer bars next to the inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Status-Bars'\n },\n {\n image: '/img/features/boosts.png',\n title: 'Status widgets',\n description: 'Shows boost timers, enemy HP, and other useful overlays.',\n home: true\n },\n {\n image: '/img/features/stretchedfixed.png',\n title: 'Stretched mode',\n description: 'Stretches the game to the size of your window.',\n link: 'https://github.com/runelite/runelite/wiki/Stretched-Mode'\n },\n {\n image: '/img/features/teamcapes.png',\n title: 'Team cape overlay',\n description: 'Displays team cape wearer counts.',\n link: 'https://github.com/runelite/runelite/wiki/Team-Capes'\n },\n {\n image: '/img/features/tearsofguthix.png',\n title: 'Tears of Guthix',\n description: 'Displays the remaining time for streams of tears.',\n link: 'https://github.com/runelite/runelite/wiki/Tears-Of-Guthix'\n },\n {\n image: '/img/features/tileindicators.png',\n title: 'Tile indicator',\n description: 'Marks the tile you last clicked on.',\n link: 'https://github.com/runelite/runelite/wiki/Tile-Indicators'\n },\n {\n image: '/img/features/tithefarm.png',\n title: 'Tithe Farm',\n description:\n 'Displays timers for the farming patches within the Tithe farm minigame.',\n link: 'https://github.com/runelite/runelite/wiki/Tithe-Farm'\n },\n {\n image: '/img/features/wcing.png',\n title: 'Woodcutting',\n description: 'Displays information about the logs you are cutting.',\n link: 'https://github.com/runelite/runelite/wiki/Woodcutting'\n },\n {\n image: '/img/features/xpglobes.png',\n title: 'XP globes',\n description:\n 'Displays skill globes when you gain XP, with more detailed stats on hover.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Globes'\n },\n {\n image: '/img/features/xptracker.png',\n title: 'XP Tracker',\n description:\n 'Side panel displaying xp data for each skill you have trained.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Tracker'\n },\n {\n image: '/img/features/zoom.png',\n title: 'Zoom unlimiter',\n description: 'Allows you to zoom past the default camera distance limits.',\n link: 'https://github.com/runelite/runelite/wiki/Camera'\n }\n]\n","import { h, Fragment } from 'preact'\nimport ago from 's-ago'\n\nconst Commit = ({ url, title, author, date }) =>\n url && (\n \n Latest commit: \n {title} {' '}\n \n by {author.name}, {' '}\n {ago(date)}\n \n \n )\n\nexport default Commit\n","import { h, Component } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { getChristmasImage } from '../season'\nimport {\n makeNavbarDark,\n makeNavbarDefault,\n nextHeroImage\n} from '../modules/app'\nimport { numberWithCommas } from '../util'\nimport links from '../_data/links'\nimport Commit from './commit'\n\nfunction isOsCorrect(osName) {\n const platform = navigator.platform.toLowerCase()\n\n if (platform.indexOf('os x') !== -1 || platform.indexOf('mac') !== -1) {\n return osName === 'macOS'\n }\n\n if (platform.indexOf('win') !== -1) {\n if (\n navigator.userAgent.indexOf('Win64') !== -1 ||\n navigator.userAgent.indexOf('WOW64') !== -1\n ) {\n return osName === 'Windows64'\n } else {\n return osName === 'Windows32'\n }\n }\n\n if (platform.indexOf('linux') !== -1) {\n if (platform.indexOf('x86_64') !== -1) {\n return osName === 'Linux64'\n }\n\n if (platform.indexOf('i686') !== -1) {\n return osName === 'Linux32'\n }\n\n if (\n platform.indexOf('armv8') !== -1 ||\n platform.indexOf('aarch64') !== -1\n ) {\n return osName === 'LinuxAarch64'\n }\n\n if (platform.indexOf('arm') !== -1 || platform.indexOf('aarch32') !== -1) {\n return osName === 'LinuxAarch32'\n }\n\n return osName === 'Linux32'\n }\n\n return false\n}\n\nclass Hero extends Component {\n constructor(props) {\n super(props)\n this.handleScroll = this.handleScroll.bind(this)\n\n this.state = {\n interval: 0\n }\n }\n\n handleScroll() {\n const jumbo = document.getElementById('jumbo')\n const jumboBottom = jumbo.offsetTop + jumbo.offsetHeight\n const navbar = document.getElementsByClassName('navbar')[0]\n const fromTop = jumboBottom - navbar.offsetHeight\n const stop = window.scrollY || window.pageYOffset || document.body.scrollTop\n\n if (this.props.navbarDark) {\n if (stop > fromTop) {\n this.props.makeNavbarDefault()\n }\n } else {\n if (stop <= fromTop) {\n this.props.makeNavbarDark()\n }\n }\n }\n\n componentDidMount() {\n // Add background updater\n this.setState({\n interval: setInterval(() => {\n const { images, heroImage, nextHeroImage } = this.props\n const numImages = images.length\n const nextImageId = (heroImage + 1) % numImages\n const img = new Image()\n img.src = getChristmasImage(images[nextImageId])\n img.onload = () => nextHeroImage(numImages)\n\n this.setState({\n loadingHeroImg: img\n })\n }, 8000)\n })\n\n // Change navigation bar to fit hero\n this.handleScroll()\n\n // Add scroll listener for navigation bar\n document.addEventListener('scroll', this.handleScroll)\n }\n\n componentWillUnmount() {\n const { interval, loadingHeroImg } = this.state\n\n // Remove background updater\n clearInterval(interval)\n\n // onload will do some react lifecycle stuff. remove so that\n // component is not modified after its been removed from the DOM\n if (loadingHeroImg) {\n delete loadingHeroImg.onload\n }\n\n // Reset navigation bar\n this.props.makeNavbarDefault()\n\n // Remove scroll listener\n document.removeEventListener('scroll', this.handleScroll)\n }\n\n render({\n title,\n description,\n buttons,\n release,\n commit,\n playing,\n loggedIn,\n heroImage\n }) {\n let downloadButtons = buttons.filter(button => isOsCorrect(button.os))\n if (downloadButtons.length === 0) {\n downloadButtons = [buttons.find(button => button.os === 'all')]\n }\n const showDetail = downloadButtons.length > 1\n\n return (\n \n
\n
\n \n\n
\n
Players: \n {numberWithCommas(playing) || 'unknown'} online (\n {numberWithCommas(loggedIn) || 'unknown'} in game)\n
Latest release: \n
{release || 'unknown'} \n
\n
\n
\n
\n
\n )\n }\n}\n\nexport default connect(\n state => ({\n navbarDark: state.app.navbarDark,\n heroImage: state.app.heroImage\n }),\n dispatch =>\n bindActionCreators(\n { makeNavbarDark, makeNavbarDefault, nextHeroImage },\n dispatch\n )\n)(Hero)\n","import type { ObserverInstanceCallback } from './index';\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map>;\n }\n>();\n\nconst RootIds: WeakMap = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit['root']) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter((key) => options[key] !== undefined)\n .map((key) => {\n return `${key}_${\n key === 'root' ? getRootId(options.root) : options[key]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n let id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map>();\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === 'undefined' &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === 'number' ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n let callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from 'react';\nimport type { IntersectionObserverProps, PlainChildrenProps } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== 'function';\n}\n\n/**\n ## Render props\n\n To use the `` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n \n {({ inView, ref, entry }) => (\n \n
{`Header inside viewport ${inView}.`} \n \n )}\n \n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the ` `, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n console.log('Inview:', inView)}>\n Plain children are always rendered. Use onChange to monitor state. \n \n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n this.node = null;\n }\n\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n if (!isPlainChildren(this.props)) {\n const { inView, entry } = this.state;\n return this.props.children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n children,\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n\n return React.createElement(\n as || 'div',\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import { h } from 'preact'\nimport './home.scss'\nimport './blog.scss'\nimport { connect } from 'react-redux'\nimport Feature from '../components/feature'\nimport Layout from '../components/layout'\nimport Hero from '../components/hero'\nimport { latest } from '../blog'\nimport { fetchCommits, getLatestCommit } from '../modules/git'\nimport hero from '../_data/hero'\nimport features from '../_data/features'\nimport {\n fetchSessionCount,\n fetchLoggedInCount,\n getSessionCount,\n getLoggedInCount\n} from '../modules/session'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { Link } from 'preact-router'\nimport Async from '../components/async'\nimport prepare from '../components/prepare'\nimport { fetchBootstrap, getLatestRelease } from '../modules/bootstrap'\nimport { InView } from 'react-intersection-observer'\n\nconst Home = ({ commit, release, sessionCount, loggedInCount }) => (\n \n \n\n \n\n \n \n \n
\n \n \n\n
\n {features\n .filter(feature => feature.home)\n .map(feature => (\n \n ))}\n
\n
\n \n\n \n \n \n
\n \n \n\n
\n {({ inView, ref }) => (\n \n {inView ? (\n
\n latest().then(({ body }) => (\n
\n ))\n }\n />\n ) : null}\n \n )}\n \n
\n \n \n)\n\nconst mapStateToProps = (state, props) => ({\n commit: getLatestCommit(state, props),\n release: getLatestRelease(state, props),\n sessionCount: getSessionCount(state, props),\n loggedInCount: getLoggedInCount(state, props)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchCommits,\n fetchSessionCount,\n fetchLoggedInCount\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchCommits,\n fetchSessionCount,\n fetchLoggedInCount\n}) => {\n fetchBootstrap().then(() => fetchCommits())\n fetchSessionCount()\n fetchLoggedInCount()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Home))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/4.2a571157.chunk.js b/static/js/4.2a571157.chunk.js
new file mode 100644
index 000000000..a176ac3f0
--- /dev/null
+++ b/static/js/4.2a571157.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[4],Array(126).concat([function(e,t,i){"use strict";var n=i(0);var s=()=>Object(n.g)("section",{id:"footer"},Object(n.g)("div",{class:"content-section"},Object(n.g)("footer",null,Object(n.g)("hr",null),"Developed with ",Object(n.g)("i",{class:"fas fa-heart"})," and"," ",Object(n.g)("i",{class:"fas fa-coffee"})," using"," ",Object(n.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(n.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(n.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(n.g)("a",{href:"/atom.xml",class:"float-right"},Object(n.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:i,...a}=e;return a.class=a.class?"container "+a.class:"container",a.style={...a.style||{},maxWidth:i?"100%":""},Object(n.g)("div",Object.assign({},a,{id:"layout"}),t,Object(n.g)(s,null))}},function(e,t,i){"use strict";var n=i(0);var s=()=>Object(n.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(n.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(n.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(n.g)("div",{class:"fa-4x"},Object(n.g)("i",{class:"fas fa-spinner fa-spin"})))));t.a=e=>t=>class extends n.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const t=e(this.props);t instanceof Promise?t.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:i}=this.state;return i?Object(n.g)(s,null):Object(n.g)(t,e)}}},,function(e,t,i){"use strict";function n(e,t,i,n,s,a){var o=Math.round(Math.abs(e)/t);return a?o<=1?s:"in "+o+" "+i+"s":o<=1?n:o+" "+i+"s ago"}var s=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var t=Date.now()-e.getTime();if(Math.abs(t)<6e4)return"just now";for(var i=0;i{const n=s()(t);return e.set(n.id.toLowerCase(),()=>i(283)(`./${n.file}.md`).then(e=>({id:n.id,date:n.date,...e})))},new Map),o=e=>{const t=a.get(e.toLowerCase());return t?t():Promise.resolve({})},r=async()=>{const e=a.values();for(let t of e){const e=await t();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};t.a=a},function(e,t){e.exports=e=>{const t=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!t&&!t[1]&&!t[2]&&!t[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const i=t[1],n=t[2],s=i+t[3],a=(i+"-"+n).split("-");return{date:new Date(Date.UTC(parseInt(a[0],10),parseInt(a[1],10)-1,parseInt(a[2],10),parseInt(a[3],10),parseInt(a[4],10))),id:s,file:e}}},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281,"./2024-02-24-23-00-1.10.23-Release.md":282};function s(e){var t=a(e);return i(t)}function a(e){if(!i.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=a,e.exports=s,s.id=136},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":[296,20],"./2017-12-21-00-00-1.2.10-Release.md":[297,21],"./2018-01-12-00-00-1.2.11-Release.md":[298,22],"./2018-01-18-00-00-1.2.12-Release.md":[299,23],"./2018-01-25-00-00-1.2.13-Release.md":[300,24],"./2018-02-01-00-00-1.2.14-Release.md":[301,25],"./2018-02-08-00-00-1.2.15-Release.md":[302,26],"./2018-02-15-00-00-1.2.16-Release.md":[303,27],"./2018-02-22-00-00-1.2.17-Release.md":[304,28],"./2018-03-01-00-00-1.2.18-Release.md":[305,29],"./2018-03-08-00-00-1.2.19-Release.md":[306,30],"./2018-03-15-00-00-1.3.0-Release.md":[307,31],"./2018-03-22-00-00-1.3.1-Release.md":[308,32],"./2018-03-29-00-00-1.3.2-Release.md":[309,33],"./2018-04-05-00-00-1.3.3-Release.md":[310,34],"./2018-04-12-00-00-1.3.4-Release.md":[311,35],"./2018-04-19-00-00-1.3.5-Release.md":[312,36],"./2018-04-26-00-00-1.3.6-Release.md":[313,37],"./2018-05-03-00-00-1.3.7-Release.md":[314,38],"./2018-05-10-00-00-1.3.8-Release.md":[315,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[316,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[317,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[318,42],"./2018-05-18-00-00-1.3.9-Release.md":[319,43],"./2018-05-24-00-00-1.4.0-Release.md":[320,44],"./2018-05-25-23-00-Phishing-Attempts.md":[321,45],"./2018-05-31-07-00-1.4.1-Release.md":[322,46],"./2018-06-07-07-00-1.4.2-Release.md":[323,47],"./2018-06-14-07-00-1.4.3-Release.md":[324,48],"./2018-06-21-07-00-1.4.4-Release.md":[325,49],"./2018-06-28-07-00-1.4.5-Release.md":[326,50],"./2018-07-05-07-00-1.4.6-Release.md":[327,51],"./2018-07-12-07-00-1.4.7-Release.md":[328,52],"./2018-07-19-07-00-1.4.8-Release.md":[329,53],"./2018-07-26-07-00-1.4.9-Release.md":[330,54],"./2018-08-02-10-00-1.4.10-Release.md":[331,55],"./2018-08-09-10-00-1.4.11-Release.md":[332,56],"./2018-08-16-10-00-1.4.12-Release.md":[333,57],"./2018-08-23-10-00-1.4.13-Release.md":[334,58],"./2018-08-30-10-00-1.4.15-Release.md":[335,59],"./2018-09-06-10-00-1.4.16-Release.md":[336,60],"./2018-09-13-10-00-1.4.17-Release.md":[337,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[338,62],"./2018-09-20-10-00-1.4.18-Release.md":[339,63],"./2018-09-27-10-00-1.4.19-Release.md":[340,64],"./2018-10-04-10-00-1.4.20-Release.md":[341,65],"./2018-10-11-10-00-1.4.21-Release.md":[342,66],"./2018-10-18-10-00-1.4.22-Release.md":[343,67],"./2018-10-25-10-00-1.4.23-Release.md":[344,68],"./2018-11-01-10-00-1.4.24-Release.md":[345,69],"./2018-11-08-10-00-1.4.25-Release.md":[346,70],"./2018-11-15-10-00-1.4.26-Release.md":[347,71],"./2018-11-16-12-00-1.5.0-Release.md":[348,72],"./2018-11-22-10-00-1.5.1-Release.md":[349,73],"./2018-11-29-10-00-1.5.2-Release.md":[350,74],"./2018-12-06-10-00-1.5.3-Release.md":[351,75],"./2018-12-13-10-00-1.5.4-Release.md":[352,76],"./2018-12-20-10-00-1.5.5-Release.md":[353,77],"./2019-01-03-10-00-1.5.6-Release.md":[354,78],"./2019-01-10-10-00-1.5.7-Release.md":[355,79],"./2019-01-17-10-00-1.5.8-Release.md":[356,80],"./2019-01-24-10-00-1.5.9-Release.md":[357,81],"./2019-01-31-10-00-1.5.10-Release.md":[358,82],"./2019-02-07-10-00-1.5.11-Release.md":[359,83],"./2019-02-14-10-00-1.5.12-Release.md":[360,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[361,85],"./2019-02-21-10-00-1.5.13-Release.md":[362,86],"./2019-02-28-10-00-1.5.14-Release.md":[363,87],"./2019-03-07-10-00-1.5.15-Release.md":[364,88],"./2019-03-14-10-00-1.5.16-Release.md":[365,89],"./2019-03-21-12-00-1.5.17-Release.md":[366,90],"./2019-03-28-10-00-1.5.18-Release.md":[367,91],"./2019-04-11-10-00-1.5.19-Release.md":[368,92],"./2019-04-18-10-00-1.5.20-Release.md":[369,93],"./2019-04-25-10-00-1.5.21-Release.md":[370,94],"./2019-05-03-10-00-1.5.22-Release.md":[371,95],"./2019-05-16-10-00-1.5.23-Release.md":[372,96],"./2019-05-30-10-00-1.5.25-Release.md":[373,97],"./2019-06-06-10-00-1.5.26-Release.md":[374,98],"./2019-06-20-10-00-1.5.27-Release.md":[375,99],"./2019-07-04-10-00-1.5.28-Release.md":[376,100],"./2019-07-18-10-00-1.5.29-Release.md":[377,101],"./2019-08-01-10-00-1.5.30-Release.md":[378,102],"./2019-08-15-10-00-1.5.31-Release.md":[379,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[380,104],"./2019-08-29-10-00-1.5.32-Release.md":[381,105],"./2019-09-12-10-00-1.5.33-Release.md":[382,106],"./2019-09-26-10-00-1.5.34-Release.md":[383,107],"./2019-10-02-10-00-1.5.35-Release.md":[384,108],"./2019-10-17-10-00-1.5.36-Release.md":[385,109],"./2019-10-30-10-00-1.5.37-Release.md":[386,110],"./2019-11-14-10-00-1.5.40-Release.md":[387,111],"./2019-11-28-10-00-1.5.42-Release.md":[388,112],"./2019-12-16-10-00-1.5.43-Release.md":[389,113],"./2019-12-19-10-00-1.6.0-Release.md":[390,114],"./2020-01-09-10-00-1.6.1-Release.md":[391,115],"./2020-01-16-10-00-1.6.2-Release.md":[392,116],"./2020-01-22-10-00-1.6.4-Release.md":[393,117],"./2020-01-29-10-00-1.6.5-Release.md":[394,118],"./2020-02-13-10-00-1.6.6-Release.md":[395,119],"./2020-02-27-10-00-1.6.8-Release.md":[396,120],"./2020-03-05-10-00-1.6.9-Release.md":[397,121],"./2020-03-26-10-00-1.6.10-Release.md":[398,122],"./2020-04-16-10-00-1.6.11-Release.md":[399,123],"./2020-05-01-10-00-1.6.13-Release.md":[400,124],"./2020-05-09-10-00-1.6.14-Release.md":[401,125],"./2020-05-28-10-00-1.6.17-Release.md":[402,126],"./2020-06-12-10-00-1.6.19-Release.md":[403,127],"./2020-06-18-10-00-1.6.20-Release.md":[404,128],"./2020-06-25-10-00-1.6.21-Release.md":[405,129],"./2020-07-16-10-00-1.6.22-Release.md":[406,130],"./2020-07-23-10-00-1.6.23-Release.md":[407,131],"./2020-08-26-10-00-1.6.25-Release.md":[408,132],"./2020-09-23-10-00-1.6.27-Release.md":[409,133],"./2020-10-07-10-00-1.6.28-Release.md":[410,134],"./2020-11-11-10-00-1.6.31-Release.md":[411,135],"./2020-12-02-10-00-1.6.33-Release.md":[412,136],"./2021-01-06-10-00-1.6.36-Release.md":[413,137],"./2021-01-27-10-00-1.6.38-Release.md":[414,138],"./2021-02-13-00-00-1.7.0-Release.md":[415,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[416,140],"./2021-03-24-10-00-1.7.3-Release.md":[417,141],"./2021-05-12-10-00-1.7.7-Release.md":[418,142],"./2021-05-28-10-00-1.7.10-Release.md":[419,143],"./2021-06-23-10-00-1.7.13-Release.md":[420,144],"./2021-07-14-10-00-1.7.16-Release.md":[421,145],"./2021-07-21-10-00-1.7.17-Release.md":[422,146],"./2021-09-06-10-00-1.7.22-Release.md":[423,147],"./2021-10-06-10-00-1.7.25-Release.md":[424,148],"./2021-10-28-19-00-1.8.0-Release.md":[425,149],"./2021-12-16-19-00-1.8.7-Release.md":[426,150],"./2022-03-09-19-00-1.8.13-Release.md":[427,151],"./2022-05-11-19-00-1.8.19-Release.md":[428,152],"./2022-06-17-19-00-1.8.24-Release.md":[429,153],"./2022-07-13-19-00-1.8.27-Release.md":[430,154],"./2022-08-21-19-00-1.8.31-Release.md":[431,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[432,156],"./2022-10-05-15-00-1.9.0-Release.md":[433,157],"./2022-12-07-15-00-1.9.5-Release.md":[434,158],"./2023-01-22-10-00-security-incident-jan21.md":[435,159],"./2023-02-18-15-00-1.9.11-Release.md":[436,160],"./2023-05-13-15-00-1.10.0-Release.md":[437,161],"./2023-07-01-15-00-1.10.6-Release.md":[438,162],"./2023-09-09-15-00-1.10.12-Release.md":[439,163],"./2023-11-05-10-00-1.10.15-Release.md":[440,164],"./2024-02-24-23-00-1.10.23-Release.md":[441,165]};function s(e){if(!i.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],s=t[0];return i.e(t[1]).then((function(){return i.t(s,7)}))}s.keys=function(){return Object.keys(n)},s.id=283,e.exports=s},,,,,function(e,t,i){},function(e,t,i){"use strict";var n=i(0);i(131);t.a=e=>{let{image:t,title:i,description:s,link:a,linkAlt:o}=e;return Object(n.g)("div",{class:"col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-12 mb-2"},Object(n.g)("div",{class:"card"},Object(n.g)("img",{class:"card-img-top",alt:i,src:t,fetchpriority:"low"}),Object(n.g)("div",{class:"card-body"},Object(n.g)("h5",{class:"card-title"},a?Object(n.g)("a",{href:a,alt:o},i):i),Object(n.g)("p",{class:"card-text"},s))))}},function(e,t,i){"use strict";t.a=[{image:"/img/features/mousehighlight.png",title:"Action tooltips",description:"Displays tooltips for actions under your mouse cursor.",link:"https://github.com/runelite/runelite/wiki/Mouse-Tooltips"},{image:"/img/features/agility.png",title:"Agility",description:"Displays clickboxes for agility courses, and counts the number of laps you have done.",link:"https://github.com/runelite/runelite/wiki/Agility"},{image:"/img/features/kourend.png",title:"Arceuus Library",description:"Shows you where books are in the Arceuus Library.",link:"https://github.com/runelite/runelite/wiki/Kourend-Library"},{image:"/img/features/attackstyles.png",title:"Attack style",description:"Indicates your attack style and hides unwanted styles.",link:"https://github.com/runelite/runelite/wiki/Attack-Styles"},{image:"/img/features/bankeval.png",title:"Bank evaluator",description:"Displays your bank's total value based on GE and alch prices.",link:"https://github.com/runelite/runelite/wiki/Bank"},{image:"/img/features/banktags.png",title:"Bank tags",description:"Allows you to set searchable tags on items for your bank.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/tagtabs.png",title:"Bank Tag Tabs",description:"A tab on the left side of the bank to auto search the assigned tag when clicked.",link:"https://github.com/runelite/runelite/wiki/Bank-Tags"},{image:"/img/features/barbassault.png",title:"Barbarian Assault",description:"Displays a timer for the next change of horn commands.",link:"https://github.com/runelite/runelite/wiki/Barbarian-Assault"},{image:"/img/features/barrows.png",title:"Barrows",description:"Marks the location of brothers and shows puzzle answers",link:"https://github.com/runelite/runelite/wiki/Barrows-Brothers"},{image:"/img/features/blastfurnace.png",title:"Blast Furnace",description:"Shows your current bars/ores and marks the clickbox of the conveyor belt.",link:"https://github.com/runelite/runelite/wiki/Blast-Furnace"},{image:"/img/features/birdhouses.png",title:"Birdhouse Timers",description:"Displays birdhouses and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/cannontiles.png",title:"Cannon double hit spots",description:"Shows you where to position enemies for double cannonball hits.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/chatcolor.png",title:"Chat Color",description:"Configures chat colors for each type of message in transparent and non transparent chat.",link:"https://github.com/runelite/runelite/wiki/Chat-Color"},{image:"/img/features/chatcommands.png",title:"Chat commands",description:"Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.",link:"https://github.com/runelite/runelite/wiki/Chat-Commands"},{image:"/img/features/clanchat.png",title:"Clan chat",description:"Adds the sender's rank to clan chat messages.",link:"https://github.com/runelite/runelite/wiki/Clan-Chat"},{image:"/img/features/cluescroll.png",title:"Clue scroll helper",description:"Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.",link:"https://github.com/runelite/runelite/wiki/Clue-Scroll"},{image:"/img/features/moveableoverlay.png",title:"Custom overlay position",description:"Allows you to move RuneLite overlays to any position on the screen.",link:"https://github.com/runelite/runelite/wiki/General-Features#moving-overlays"},{image:"/img/features/daily.png",title:"Daily task indicators",description:"Notifies you on login what daily tasks you are able to complete.",link:"https://github.com/runelite/runelite/wiki/Daily-Task-Indicator"},{image:"/img/features/discord.png",title:"Discord integration",description:"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties",link:"https://github.com/runelite/runelite/wiki/Discord",home:!0},{image:"/img/features/cannon.png",title:"Dwarf multicannon",description:"Displays the number of cannonballs left in your cannon, along with common cannon spots.",link:"https://github.com/runelite/runelite/wiki/Cannon"},{image:"/img/features/fairyringsearch.png",title:"Fairy Ring Filter",description:"Allows you to filter the fairy ring destination menu.",link:"https://github.com/runelite/runelite/wiki/Fairy-Rings"},{image:"/img/features/farmingtracker.png",title:"Farming Tracker",description:"Displays current farming patches and approximate completion.",link:"https://github.com/runelite/runelite/wiki/Time-Tracking"},{image:"/img/features/fishing.png",title:"Fishing",description:"Highlights fishing spots and tracks fishing stats.",link:"https://github.com/runelite/runelite/wiki/Fishing"},{image:"/img/features/gpu.png",title:"GPU",description:"Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.",link:"https://github.com/runelite/runelite/wiki/GPU",home:!0},{image:"/img/features/gesearch.png",title:"Grand Exchange lookup",description:"Quickly price-check any item on the Grand Exchange.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/ge.png",title:"Grand Exchange offers",description:"Lists your current Grand Exchange offers.",link:"https://github.com/runelite/runelite/wiki/Grand-Exchange"},{image:"/img/features/grounditems.png",title:"Ground items",description:"Hides, highlights, and adds filterable price colors to dropped items.",link:"https://github.com/runelite/runelite/wiki/Ground-Items"},{image:"/img/features/herbiboar.png",title:"Herbiboar",description:"Highlights the path and objects to search at the end of the trail.",link:"https://github.com/runelite/runelite/wiki/Herbiboar"},{image:"/img/features/hunter.png",title:"Hunter",description:"Adds timers to hunter traps.",link:"https://github.com/runelite/runelite/wiki/Hunter"},{image:"/img/features/idle.png",title:"Idle notifications",description:"Sends system tray alerts when idle or about to be logged out.",link:"https://github.com/runelite/runelite/wiki/Idle-Notifier"},{image:"/img/features/imp.png",title:"Impling finder",description:"Highlights nearby implings on the minimap and on-screen.",link:"https://github.com/runelite/runelite/wiki/Implings"},{image:"/img/features/inventorytags.png",title:"Inventory Tags",description:"Allows you to assign group tags to inventory items.",link:"https://github.com/runelite/runelite/wiki/Inventory-Tags"},{image:"/img/features/inventoryviewer.png",title:"Inventory Viewer",description:"Displays an overlay of your current inventory.",link:"https://github.com/runelite/runelite/wiki/Inventory-Viewer"},{image:"/img/features/itemstats.png",title:"Item stats",description:"Displays information about food and potion effects.",link:"https://github.com/runelite/runelite/wiki/Item-Stats"},{image:"/img/features/jewellerycount.png",title:"Jewellery charges",description:"Displays the number of charges that your jewellery has.",link:"https://github.com/runelite/runelite/wiki/Item-Charges"},{image:"/img/features/lightboxsolver.png",title:"Light Box Puzzle Solver",description:"Solves light box puzzles during clue scrolls.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/loottracker.png",title:"Loot Tracker",description:"Shows kill count and drops with prices from monsters you kill.",link:"https://github.com/runelite/runelite/wiki/Loot-Tracker",home:!0},{image:"/img/features/lowdetail.png",title:"Low detail mode",description:"Enables low detail mode, removing some of the game's eye candy.",link:"https://github.com/runelite/runelite/wiki/Low-Detail"},{image:"/img/features/mta.png",title:"Mage Training Arena",description:"Overlays to assist in each of the MTA rooms.",link:"https://github.com/runelite/runelite/wiki/Mage-Training-Arena"},{image:"/img/features/menuswap.png",title:"Menu entry swapping",description:"Swaps the left-click actions of certain objects.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper"},{image:"/img/features/minimapdots.png",title:"Minimap dot customizer",description:"Customizes the color of minimap dots.",link:"https://github.com/runelite/runelite/wiki/Minimap"},{image:"/img/features/favor.png",title:"Miscellania favor",description:"Displays your current favor and treasury in the Kingdom of Miscellania.",link:"https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania"},{image:"/img/features/mlm.png",title:"Motherlode Mine",description:"Marks veins and rock obstacles in the Motherlode Mine.",link:"https://github.com/runelite/runelite/wiki/Motherlode-Mine"},{image:"/img/features/newsfeed.png",title:"News feed",description:"Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.",link:"https://github.com/runelite/runelite/wiki/News-Feed"},{image:"/img/features/nmz.png",title:"Nightmare Zone",description:"Displays NMZ points/absorption and notifies you about expiring potions.",link:"https://github.com/runelite/runelite/wiki/Nightmare-Zone"},{image:"/img/features/npctag.png",title:"NPC tagging",description:"Tags and keeps track of an NPC.",link:"https://github.com/runelite/runelite/wiki/NPC-Indicators"},{image:"/img/features/discordparty.png",title:"Party",description:"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location",link:"https://github.com/runelite/runelite/wiki/Party"},{image:"/img/features/playerindicators.png",title:"Player indicators",description:"Draws the names of friends, clan mates and yourself overhead.",link:"https://github.com/runelite/runelite/wiki/Player-Indicators"},{image:"/img/features/poh.png",title:"Player-owned houses",description:"Displays minimap icons and marks unlit/lit burners.",link:"https://github.com/runelite/runelite/wiki/Player-owned-House"},{image:"/img/features/prayerbar.png",title:"Prayer Bar",description:"Displays a prayer bar underneath your hitpoints bar.",link:"https://github.com/runelite/runelite/wiki/Prayer"},{image:"/img/features/puzzlebox.png",title:"Puzzle box solver",description:"Shows you where to click to solve puzzle boxes.",link:"https://github.com/runelite/runelite/wiki/Puzzle-Solver"},{image:"/img/features/raids.png",title:"Raid scouter",description:"Displays the current layout of raids and tracks the raid duration.",link:"https://github.com/runelite/runelite/wiki/Chambers-of-Xeric"},{image:"/img/features/regen.png",title:"Regen timers",description:"Tracks and displays the hitpoints & special attack regen timers.",link:"https://github.com/runelite/runelite/wiki/Regeneration-Meter"},{image:"/img/features/roguesden.png",title:"Rogues' Den",description:"Marks tiles and clickboxes to help you traverse the maze.",link:"https://github.com/runelite/runelite/wiki/Rogues%27-Den"},{image:"/img/features/abyss.png",title:"Runecraft",description:"Displays minimap icons and clickboxes for abyssal rifts.",link:"https://github.com/runelite/runelite/wiki/Runecraft"},{image:"/img/features/runepouch.png",title:"Rune pouch",description:"Shows what runes are currently in your rune pouch.",link:"https://github.com/runelite/runelite/wiki/Rune-Pouch"},{image:"/img/features/shiftclick.png",title:"Shift click configuration",description:"Allows you to change/set shift click actions on items.",link:"https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click"},{image:"/img/features/statusbars.png",title:"Status Bars",description:"Shows health and prayer bars next to the inventory.",link:"https://github.com/runelite/runelite/wiki/Status-Bars"},{image:"/img/features/boosts.png",title:"Status widgets",description:"Shows boost timers, enemy HP, and other useful overlays.",home:!0},{image:"/img/features/stretchedfixed.png",title:"Stretched mode",description:"Stretches the game to the size of your window.",link:"https://github.com/runelite/runelite/wiki/Stretched-Mode"},{image:"/img/features/teamcapes.png",title:"Team cape overlay",description:"Displays team cape wearer counts.",link:"https://github.com/runelite/runelite/wiki/Team-Capes"},{image:"/img/features/tearsofguthix.png",title:"Tears of Guthix",description:"Displays the remaining time for streams of tears.",link:"https://github.com/runelite/runelite/wiki/Tears-Of-Guthix"},{image:"/img/features/tileindicators.png",title:"Tile indicator",description:"Marks the tile you last clicked on.",link:"https://github.com/runelite/runelite/wiki/Tile-Indicators"},{image:"/img/features/tithefarm.png",title:"Tithe Farm",description:"Displays timers for the farming patches within the Tithe farm minigame.",link:"https://github.com/runelite/runelite/wiki/Tithe-Farm"},{image:"/img/features/wcing.png",title:"Woodcutting",description:"Displays information about the logs you are cutting.",link:"https://github.com/runelite/runelite/wiki/Woodcutting"},{image:"/img/features/xpglobes.png",title:"XP globes",description:"Displays skill globes when you gain XP, with more detailed stats on hover.",link:"https://github.com/runelite/runelite/wiki/XP-Globes"},{image:"/img/features/xptracker.png",title:"XP Tracker",description:"Side panel displaying xp data for each skill you have trained.",link:"https://github.com/runelite/runelite/wiki/XP-Tracker"},{image:"/img/features/zoom.png",title:"Zoom unlimiter",description:"Allows you to zoom past the default camera distance limits.",link:"https://github.com/runelite/runelite/wiki/Camera"}]},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){"use strict";i.r(t);var n=i(0),s=(i(288),i(133),i(27)),a=i(289),o=i(126),r=i(11),l=i(69),c=i(21),u=i(18),d=i(33),m=i(129),g=i.n(m);var h=e=>{let{url:t,title:i,author:s,date:a}=e;return t&&Object(n.g)(n.b,null,Object(n.g)("h6",null,"Latest commit:"),Object(n.g)("a",{href:t},i)," ",Object(n.g)("span",{class:"text-muted"},"by ",Object(n.g)("a",{href:s.url?s.url:t},s.name,",")," ",g()(a)))};class p extends n.a{constructor(e){super(e),this.handleScroll=this.handleScroll.bind(this),this.state={interval:0}}handleScroll(){const e=document.getElementById("jumbo"),t=e.offsetTop+e.offsetHeight-document.getElementsByClassName("navbar")[0].offsetHeight,i=window.scrollY||window.pageYOffset||document.body.scrollTop;this.props.navbarDark?i>t&&this.props.makeNavbarDefault():i<=t&&this.props.makeNavbarDark()}componentDidMount(){this.setState({interval:setInterval(()=>{const{images:e,heroImage:t,nextHeroImage:i}=this.props,n=e.length,s=(t+1)%n,a=new Image;a.src=Object(l.a)(e[s]),a.onload=()=>i(n),this.setState({loadingHeroImg:a})},8e3)}),this.handleScroll(),document.addEventListener("scroll",this.handleScroll)}componentWillUnmount(){const{interval:e,loadingHeroImg:t}=this.state;clearInterval(e),t&&delete t.onload,this.props.makeNavbarDefault(),document.removeEventListener("scroll",this.handleScroll)}render(e){let{title:t,description:i,buttons:s,release:a,commit:o,playing:r,loggedIn:c,heroImage:m}=e,g=s.filter(e=>function(e){const t=navigator.platform.toLowerCase();return-1!==t.indexOf("os x")||-1!==t.indexOf("mac")?"macOS"===e:-1!==t.indexOf("win")?-1!==navigator.userAgent.indexOf("Win64")||-1!==navigator.userAgent.indexOf("WOW64")?"Windows64"===e:"Windows32"===e:-1!==t.indexOf("linux")&&(-1!==t.indexOf("x86_64")?"Linux64"===e:-1!==t.indexOf("i686")?"Linux32"===e:-1!==t.indexOf("armv8")||-1!==t.indexOf("aarch64")?"LinuxAarch64"===e:-1!==t.indexOf("arm")||-1!==t.indexOf("aarch32")?"LinuxAarch32"===e:"Linux32"===e)}(e.os));0===g.length&&(g=[s.find(e=>"all"===e.os)]);const p=g.length>1;return Object(n.g)("div",{class:"jumbotron jumbotron-fluid",style:{"--jumbotron-background":`url(${Object(l.a)(this.props.images[m])})`},id:"jumbo"},Object(n.g)("div",{class:"jumbotron-cell"},Object(n.g)("div",{class:"jumbotron-body"},Object(n.g)("div",{class:"jumbotron-header"},Object(n.g)("h1",null,"RUNELITE",Object(n.g)("span",null,".NET")),Object(n.g)("p",null,i),Object(n.g)("a",{id:"contribute",class:"btn",href:d.a.contribute},"Contribute"),Object(n.g)("div",{id:"download"},Object(n.g)("div",{class:"btn-group"},g.map(e=>{let{link:t,icon:i,text:s}=e;return Object(n.g)("a",{id:"direct-download-btn",class:"btn btn-primary",title:"Download for "+s.os+(s.arch?" ("+s.arch+")":""),href:t,native:!0,rel:"nofollow"},Object(n.g)("i",{class:i})," Download",p&&s.arch?" ("+s.arch+")":"")}),Object(n.g)("div",{class:"dropdown"},Object(n.g)("button",{class:"btn dropdown-toggle dropdown-toggle-split btn-primary"},Object(n.g)("span",{class:"sr-only"},"Toggle Dropdown")),Object(n.g)("div",{class:"dropdown-menu",style:{textShadow:"none"}},s.map(e=>{let{link:t,icon:i,text:s}=e;return Object(n.g)("a",{class:"dropdown-item",href:t,native:!0,rel:"nofollow"},Object(n.g)("i",{class:i})," Download for ",s.os," ",s.arch?" ("+s.arch+")":"")})))))),Object(n.g)("div",{class:"small"},Object(n.g)("h6",null,"Players:"),Object(u.f)(r)||"unknown"," online (",Object(u.f)(c)||"unknown"," in game)",Object(n.g)("h6",null,"Latest release:"),Object(n.g)("a",{href:"#news"},a||"unknown"),Object(n.g)(h,o)))))}}var f=Object(s.b)(e=>({navbarDark:e.app.navbarDark,heroImage:e.app.heroImage}),e=>Object(r.b)({makeNavbarDark:c.b,makeNavbarDefault:c.c,nextHeroImage:c.d},e))(p),b=i(134),R=i(48),k=i(7),w=i.n(k),y=i(290),v=i(70),O=i(46),j=i(8),x=i(5),S=i(127),D=i(4),C=i(1);function I(){return(I=Object.assign?Object.assign.bind():function(e){for(var t=1;t=e}));e.trackVisibility&&"undefined"===typeof t.isVisible&&(t.isVisible=a),null==(i=s.get(t.target))||i.forEach((function(e){e(a,t)}))}))}),e);n=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),i={id:t,observer:a,elements:s},M.set(t,i)}return i}(i),o=a.id,r=a.observer,l=a.elements,c=l.get(e)||[];return l.has(e)||l.set(e,c),c.push(t),r.observe(e),function(){c.splice(c.indexOf(t),1),0===c.length&&(l.delete(e),r.unobserve(e)),0===l.size&&(r.disconnect(),M.delete(o))}}var z=["children","as","triggerOnce","threshold","root","rootMargin","onChange","skip","trackVisibility","delay","initialInView","fallbackInView"];function B(e){return"function"!==typeof e.children}var V=function(e){var t,i;function n(t){var i;return(i=e.call(this,t)||this).node=null,i._unobserveCb=null,i.handleNode=function(e){i.node&&(i.unobserve(),e||i.props.triggerOnce||i.props.skip||i.setState({inView:!!i.props.initialInView,entry:void 0})),i.node=e||null,i.observeNode()},i.handleChange=function(e,t){e&&i.props.triggerOnce&&i.unobserve(),B(i.props)||i.setState({inView:e,entry:t}),i.props.onChange&&i.props.onChange(e,t)},i.state={inView:!!t.initialInView,entry:void 0},i}i=e,(t=n).prototype=Object.create(i.prototype),t.prototype.constructor=t,T(t,i);var s=n.prototype;return s.componentDidUpdate=function(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())},s.componentWillUnmount=function(){this.unobserve(),this.node=null},s.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,i=e.root,n=e.rootMargin,s=e.trackVisibility,a=e.delay,o=e.fallbackInView;this._unobserveCb=E(this.node,this.handleChange,{threshold:t,root:i,rootMargin:n,trackVisibility:s,delay:a},o)}},s.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},s.render=function(){if(!B(this.props)){var e=this.state,t=e.inView,i=e.entry;return this.props.children({inView:t,entry:i,ref:this.handleNode})}var n=this.props,s=n.children,a=n.as,o=function(e,t){if(null==e)return{};var i,n,s={},a=Object.keys(e);for(n=0;n=0||(s[i]=e[i]);return s}(n,z);return C.c(a||"div",I({ref:this.handleNode},o),s)},n}(C.a);t.default=Object(s.b)((e,t)=>({commit:Object(R.l)(e,t),release:Object(D.c)(e,t),sessionCount:Object(v.e)(e,t),loggedInCount:Object(v.d)(e,t)}),e=>Object(r.b)({fetchBootstrap:D.b,fetchCommits:R.b,fetchSessionCount:v.c,fetchLoggedInCount:v.b},e))(Object(S.a)(async e=>{let{fetchBootstrap:t,fetchCommits:i,fetchSessionCount:n,fetchLoggedInCount:s}=e;t().then(()=>i()),n(),s()})(e=>{let{commit:t,release:i,sessionCount:s,loggedInCount:r}=e;return Object(n.g)(o.a,null,Object(n.g)(O.a,{title:w.a.title+" - Open Source Old School RuneScape Client",description:w.a.description}),Object(n.g)("section",{id:"intro"},Object(n.g)(f,Object.assign({},w.a,{release:i,commit:t,playing:s,loggedIn:r}))),Object(n.g)("section",{id:"features-home"},Object(n.g)("div",{class:"content-section homepage"},Object(n.g)("h1",{class:"page-header"},"FEATURES"),Object(n.g)(j.a,{href:"/features",style:{color:"inherit"}},Object(n.g)("h4",{class:"right-header"},"SHOW ALL FEATURES")),Object(n.g)("div",{class:"row"},y.a.filter(e=>e.home).map(e=>Object(n.g)(a.a,Object.assign({key:e.title,linkAlt:"View on Wiki"},e)))))),Object(n.g)("section",{id:"news"},Object(n.g)("div",{class:"content-section homepage"},Object(n.g)("h1",{class:"page-header"},"LATEST NEWS"),Object(n.g)(j.a,{href:"/blog",style:{color:"inherit"}},Object(n.g)("h4",{class:"right-header"},"SHOW ALL NEWS")),Object(n.g)(V,null,e=>{let{inView:t,ref:i}=e;return Object(n.g)("div",{ref:i},t?Object(n.g)(x.a,{getComponent:()=>Object(b.c)().then(e=>{let{body:t}=e;return Object(n.g)("div",{class:"markdown-body news-page",dangerouslySetInnerHTML:{__html:t}})})}):null)}))))}))}])]);
+//# sourceMappingURL=4.2a571157.chunk.js.map
\ No newline at end of file
diff --git a/static/js/4.2a571157.chunk.js.map b/static/js/4.2a571157.chunk.js.map
new file mode 100644
index 000000000..9e898a946
--- /dev/null
+++ b/static/js/4.2a571157.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","components/feature.js","_data/features.js","components/commit.js","components/hero.js","../../src/observe.ts","../../src/InView.tsx","routes/home.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","md","Map","getBlog","post","get","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","Feature","image","title","description","link","linkAlt","alt","src","fetchpriority","home","Commit","url","author","Fragment","ago","Hero","handleScroll","bind","interval","jumbo","document","getElementById","fromTop","offsetTop","offsetHeight","getElementsByClassName","stop","window","scrollY","pageYOffset","body","scrollTop","navbarDark","makeNavbarDefault","makeNavbarDark","setInterval","images","heroImage","nextHeroImage","numImages","nextImageId","img","Image","getChristmasImage","onload","loadingHeroImg","addEventListener","componentWillUnmount","clearInterval","removeEventListener","buttons","release","commit","playing","loggedIn","downloadButtons","filter","button","osName","platform","navigator","indexOf","userAgent","isOsCorrect","os","find","showDetail","links","contribute","_ref2","icon","text","arch","native","rel","textShadow","_ref3","numberWithCommas","connect","app","dispatch","bindActionCreators","observerMap","RootIds","WeakMap","rootId","unsupportedValue","undefined","optionsToId","options","key","root","has","toString","observe","element","callback","fallbackInView","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","target","intersectionRatio","threshold","time","boundingClientRect","intersectionRect","rootBounds","_createObserver","instance","thresholds","elements","observer","entries","forEach","entry","_elements$get","inView","some","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","unobserve","size","disconnect","isPlainChildren","InView","_React$Component","_this","call","node","_unobserveCb","handleNode","triggerOnce","initialInView","observeNode","handleChange","onChange","_proto","prototype","componentDidUpdate","prevProps","rootMargin","delay","_this$props","_this$state","ref","_this$props2","as","_objectWithoutPropertiesLoose","_excluded","React","_extends","mapStateToProps","getLatestCommit","getLatestRelease","sessionCount","getSessionCount","loggedInCount","getLoggedInCount","fetchBootstrap","fetchCommits","fetchSessionCount","fetchLoggedInCount","_ref4","Meta","hero","Link","features","feature","Async","getComponent","dangerouslySetInnerHTML","__html"],"mappings":"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C,SAASC,EAAeC,GACvB,IAAIhG,EAAKiG,EAAsBD,GAC/B,OAAOE,EAAoBlG,GAE5B,SAASiG,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEL,EAAKE,GAAM,CACpC,IAAII,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,EAEP,OAAON,EAAIE,GAEZD,EAAejC,KAAO,WACrB,OAAOpD,OAAOoD,KAAKgC,IAEpBC,EAAehB,QAAUkB,EACzB7C,EAAOC,QAAU0C,EACjBA,EAAe/F,GAAK,K,gzECvKpB,IAAI8F,EAAM,CACT,iCAAkC,CACjC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAO/D,QAAQ8C,UAAU7C,MAAK,WAC7B,IAAIkE,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMhG,EAAKuG,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAIrE,MAAK,WACzC,OAAOgE,EAAoBM,EAAExG,EAAI,MAGnCsG,EAAoBxC,KAAO,WAC1B,OAAOpD,OAAOoD,KAAKgC,IAEpBQ,EAAoBtG,GAAK,IACzBoD,EAAOC,QAAUiD,G,mDC5lBjB,kBAuBeG,IApBCrG,IAAA,IAAC,MAAEsG,EAAK,MAAEC,EAAK,YAAEC,EAAW,KAAEC,EAAI,QAAEC,GAAS1G,EAAA,OAC3DL,YAAA,OAAKE,MAAM,sDACTF,YAAA,OAAKE,MAAM,QACTF,YAAA,OAAKE,MAAM,eAAe8G,IAAKJ,EAAOK,IAAKN,EAAOO,cAAc,QAChElH,YAAA,OAAKE,MAAM,aACTF,YAAA,MAAIE,MAAM,cACP4G,EACC9G,YAAA,KAAGG,KAAM2G,EAAME,IAAKD,GACjBH,GAGHA,GAGJ5G,YAAA,KAAGE,MAAM,aAAa2G,Q,6BCjBf,KACb,CACEF,MAAO,mCACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,4DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YACE,wFACFC,KAAM,qDAER,CACEH,MAAO,4BACPC,MAAO,kBACPC,YAAa,oDACbC,KAAM,6DAER,CACEH,MAAO,iCACPC,MAAO,eACPC,YAAa,yDACbC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,iBACPC,YACE,gEACFC,KAAM,kDAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,4DACbC,KAAM,uDAER,CACEH,MAAO,4BACPC,MAAO,gBACPC,YACE,mFACFC,KAAM,uDAER,CACEH,MAAO,gCACPC,MAAO,oBACPC,YAAa,yDACbC,KAAM,+DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,0DACbC,KAAM,8DAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,4EACFC,KAAM,2DAER,CACEH,MAAO,+BACPC,MAAO,mBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,0BACPC,YACE,kEACFC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YACE,2FACFC,KAAM,wDAER,CACEH,MAAO,iCACPC,MAAO,gBACPC,YACE,oFACFC,KAAM,2DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YAAa,gDACbC,KAAM,uDAER,CACEH,MAAO,+BACPC,MAAO,qBACPC,YACE,uEACFC,KAAM,yDAER,CACEH,MAAO,oCACPC,MAAO,0BACPC,YACE,sEACFC,KACE,8EAEJ,CACEH,MAAO,0BACPC,MAAO,wBACPC,YACE,mEACFC,KAAM,kEAER,CACEH,MAAO,4BACPC,MAAO,sBACPC,YACE,sHACFC,KAAM,oDACNK,MAAM,GAER,CACER,MAAO,2BACPC,MAAO,oBACPC,YACE,0FACFC,KAAM,oDAER,CACEH,MAAO,oCACPC,MAAO,oBACPC,YAAa,wDACbC,KAAM,yDAER,CACEH,MAAO,mCACPC,MAAO,kBACPC,YAAa,+DACbC,KAAM,2DAER,CACEH,MAAO,4BACPC,MAAO,UACPC,YAAa,qDACbC,KAAM,qDAER,CACEH,MAAO,wBACPC,MAAO,MACPC,YACE,uHACFC,KAAM,gDACNK,MAAM,GAER,CACER,MAAO,6BACPC,MAAO,wBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,uBACPC,MAAO,wBACPC,YAAa,4CACbC,KAAM,4DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,wEACFC,KAAM,0DAER,CACEH,MAAO,8BACPC,MAAO,YACPC,YACE,qEACFC,KAAM,uDAER,CACEH,MAAO,2BACPC,MAAO,SACPC,YAAa,+BACbC,KAAM,oDAER,CACEH,MAAO,yBACPC,MAAO,qBACPC,YACE,gEACFC,KAAM,2DAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YAAa,2DACbC,KAAM,sDAER,CACEH,MAAO,kCACPC,MAAO,iBACPC,YAAa,sDACbC,KAAM,4DAER,CACEH,MAAO,oCACPC,MAAO,mBACPC,YAAa,iDACbC,KAAM,8DAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,sDACbC,KAAM,wDAER,CACEH,MAAO,mCACPC,MAAO,oBACPC,YAAa,0DACbC,KAAM,0DAER,CACEH,MAAO,mCACPC,MAAO,0BACPC,YAAa,gDACbC,KAAM,2DAER,CACEH,MAAO,gCACPC,MAAO,eACPC,YACE,iEACFC,KAAM,yDACNK,MAAM,GAER,CACER,MAAO,8BACPC,MAAO,kBACPC,YACE,kEACFC,KAAM,wDAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,+CACbC,KAAM,iEAER,CACEH,MAAO,6BACPC,MAAO,sBACPC,YAAa,mDACbC,KAAM,gEAER,CACEH,MAAO,gCACPC,MAAO,yBACPC,YAAa,wCACbC,KAAM,qDAER,CACEH,MAAO,0BACPC,MAAO,oBACPC,YACE,0EACFC,KAAM,oEAER,CACEH,MAAO,wBACPC,MAAO,kBACPC,YAAa,yDACbC,KAAM,6DAER,CACEH,MAAO,6BACPC,MAAO,YACPC,YACE,kGACFC,KAAM,uDAER,CACEH,MAAO,wBACPC,MAAO,iBACPC,YACE,0EACFC,KAAM,4DAER,CACEH,MAAO,2BACPC,MAAO,cACPC,YAAa,kCACbC,KAAM,4DAER,CACEH,MAAO,iCACPC,MAAO,QACPC,YACE,qHACFC,KAAM,mDAER,CACEH,MAAO,qCACPC,MAAO,oBACPC,YACE,gEACFC,KAAM,+DAER,CACEH,MAAO,wBACPC,MAAO,sBACPC,YAAa,sDACbC,KAAM,gEAER,CACEH,MAAO,8BACPC,MAAO,aACPC,YAAa,uDACbC,KAAM,oDAER,CACEH,MAAO,8BACPC,MAAO,oBACPC,YAAa,kDACbC,KAAM,2DAER,CACEH,MAAO,0BACPC,MAAO,eACPC,YACE,qEACFC,KAAM,+DAER,CACEH,MAAO,0BACPC,MAAO,eACPC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","file":"static/js/4.2a571157.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281,\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": 282\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t296,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t297,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t298,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t299,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t300,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t301,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t302,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t303,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t304,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t305,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t306,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t307,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t308,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t309,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t310,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t311,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t312,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t313,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t314,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t315,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t319,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t320,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t321,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t322,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t323,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t324,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t325,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t326,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t327,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t328,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t329,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t330,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t331,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t332,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t333,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t334,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t335,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t336,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t337,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t338,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t339,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t340,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t341,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t342,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t343,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t344,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t345,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t346,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t347,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t348,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t349,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t350,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t351,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t352,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t353,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t354,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t355,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t356,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t357,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t358,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t359,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t360,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t361,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t362,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t363,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t364,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t365,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t366,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t367,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t368,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t369,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t370,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t371,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t372,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t373,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t374,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t375,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t376,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t377,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t378,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t379,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t380,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t381,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t382,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t383,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t384,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t385,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t386,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t387,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t388,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t389,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t390,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t391,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t392,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t393,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t394,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t395,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t396,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t397,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t398,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t399,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t400,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t401,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t402,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t403,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t404,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t405,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t406,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t407,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t408,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t409,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t410,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t411,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t412,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t413,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t414,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t415,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t416,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t417,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t418,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t419,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t420,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t421,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t422,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t423,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t424,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t425,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t426,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t427,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t428,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t429,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t430,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t431,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t432,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t433,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t434,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t435,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t436,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t437,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t438,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t439,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t440,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t441,\n\t\t165\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 283;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n \n
\n
\n
\n
\n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n
{description}
\n
\n
\n
\n)\n\nexport default Feature\n","export default [\n {\n image: '/img/features/mousehighlight.png',\n title: 'Action tooltips',\n description: 'Displays tooltips for actions under your mouse cursor.',\n link: 'https://github.com/runelite/runelite/wiki/Mouse-Tooltips'\n },\n {\n image: '/img/features/agility.png',\n title: 'Agility',\n description:\n 'Displays clickboxes for agility courses, and counts the number of laps you have done.',\n link: 'https://github.com/runelite/runelite/wiki/Agility'\n },\n {\n image: '/img/features/kourend.png',\n title: 'Arceuus Library',\n description: 'Shows you where books are in the Arceuus Library.',\n link: 'https://github.com/runelite/runelite/wiki/Kourend-Library'\n },\n {\n image: '/img/features/attackstyles.png',\n title: 'Attack style',\n description: 'Indicates your attack style and hides unwanted styles.',\n link: 'https://github.com/runelite/runelite/wiki/Attack-Styles'\n },\n {\n image: '/img/features/bankeval.png',\n title: 'Bank evaluator',\n description:\n \"Displays your bank's total value based on GE and alch prices.\",\n link: 'https://github.com/runelite/runelite/wiki/Bank'\n },\n {\n image: '/img/features/banktags.png',\n title: 'Bank tags',\n description: 'Allows you to set searchable tags on items for your bank.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/tagtabs.png',\n title: 'Bank Tag Tabs',\n description:\n 'A tab on the left side of the bank to auto search the assigned tag when clicked.',\n link: 'https://github.com/runelite/runelite/wiki/Bank-Tags'\n },\n {\n image: '/img/features/barbassault.png',\n title: 'Barbarian Assault',\n description: 'Displays a timer for the next change of horn commands.',\n link: 'https://github.com/runelite/runelite/wiki/Barbarian-Assault'\n },\n {\n image: '/img/features/barrows.png',\n title: 'Barrows',\n description: 'Marks the location of brothers and shows puzzle answers',\n link: 'https://github.com/runelite/runelite/wiki/Barrows-Brothers'\n },\n {\n image: '/img/features/blastfurnace.png',\n title: 'Blast Furnace',\n description:\n 'Shows your current bars/ores and marks the clickbox of the conveyor belt.',\n link: 'https://github.com/runelite/runelite/wiki/Blast-Furnace'\n },\n {\n image: '/img/features/birdhouses.png',\n title: 'Birdhouse Timers',\n description: 'Displays birdhouses and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/cannontiles.png',\n title: 'Cannon double hit spots',\n description:\n 'Shows you where to position enemies for double cannonball hits.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/chatcolor.png',\n title: 'Chat Color',\n description:\n 'Configures chat colors for each type of message in transparent and non transparent chat.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Color'\n },\n {\n image: '/img/features/chatcommands.png',\n title: 'Chat commands',\n description:\n 'Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.',\n link: 'https://github.com/runelite/runelite/wiki/Chat-Commands'\n },\n {\n image: '/img/features/clanchat.png',\n title: 'Clan chat',\n description: \"Adds the sender's rank to clan chat messages.\",\n link: 'https://github.com/runelite/runelite/wiki/Clan-Chat'\n },\n {\n image: '/img/features/cluescroll.png',\n title: 'Clue scroll helper',\n description:\n 'Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.',\n link: 'https://github.com/runelite/runelite/wiki/Clue-Scroll'\n },\n {\n image: '/img/features/moveableoverlay.png',\n title: 'Custom overlay position',\n description:\n 'Allows you to move RuneLite overlays to any position on the screen.',\n link:\n 'https://github.com/runelite/runelite/wiki/General-Features#moving-overlays'\n },\n {\n image: '/img/features/daily.png',\n title: 'Daily task indicators',\n description:\n 'Notifies you on login what daily tasks you are able to complete.',\n link: 'https://github.com/runelite/runelite/wiki/Daily-Task-Indicator'\n },\n {\n image: '/img/features/discord.png',\n title: 'Discord integration',\n description:\n \"Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties\",\n link: 'https://github.com/runelite/runelite/wiki/Discord',\n home: true\n },\n {\n image: '/img/features/cannon.png',\n title: 'Dwarf multicannon',\n description:\n 'Displays the number of cannonballs left in your cannon, along with common cannon spots.',\n link: 'https://github.com/runelite/runelite/wiki/Cannon'\n },\n {\n image: '/img/features/fairyringsearch.png',\n title: 'Fairy Ring Filter',\n description: 'Allows you to filter the fairy ring destination menu.',\n link: 'https://github.com/runelite/runelite/wiki/Fairy-Rings'\n },\n {\n image: '/img/features/farmingtracker.png',\n title: 'Farming Tracker',\n description: 'Displays current farming patches and approximate completion.',\n link: 'https://github.com/runelite/runelite/wiki/Time-Tracking'\n },\n {\n image: '/img/features/fishing.png',\n title: 'Fishing',\n description: 'Highlights fishing spots and tracks fishing stats.',\n link: 'https://github.com/runelite/runelite/wiki/Fishing'\n },\n {\n image: '/img/features/gpu.png',\n title: 'GPU',\n description:\n 'Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.',\n link: 'https://github.com/runelite/runelite/wiki/GPU',\n home: true\n },\n {\n image: '/img/features/gesearch.png',\n title: 'Grand Exchange lookup',\n description: 'Quickly price-check any item on the Grand Exchange.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/ge.png',\n title: 'Grand Exchange offers',\n description: 'Lists your current Grand Exchange offers.',\n link: 'https://github.com/runelite/runelite/wiki/Grand-Exchange'\n },\n {\n image: '/img/features/grounditems.png',\n title: 'Ground items',\n description:\n 'Hides, highlights, and adds filterable price colors to dropped items.',\n link: 'https://github.com/runelite/runelite/wiki/Ground-Items'\n },\n {\n image: '/img/features/herbiboar.png',\n title: 'Herbiboar',\n description:\n 'Highlights the path and objects to search at the end of the trail.',\n link: 'https://github.com/runelite/runelite/wiki/Herbiboar'\n },\n {\n image: '/img/features/hunter.png',\n title: 'Hunter',\n description: 'Adds timers to hunter traps.',\n link: 'https://github.com/runelite/runelite/wiki/Hunter'\n },\n {\n image: '/img/features/idle.png',\n title: 'Idle notifications',\n description:\n 'Sends system tray alerts when idle or about to be logged out.',\n link: 'https://github.com/runelite/runelite/wiki/Idle-Notifier'\n },\n {\n image: '/img/features/imp.png',\n title: 'Impling finder',\n description: 'Highlights nearby implings on the minimap and on-screen.',\n link: 'https://github.com/runelite/runelite/wiki/Implings'\n },\n {\n image: '/img/features/inventorytags.png',\n title: 'Inventory Tags',\n description: 'Allows you to assign group tags to inventory items.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Tags'\n },\n {\n image: '/img/features/inventoryviewer.png',\n title: 'Inventory Viewer',\n description: 'Displays an overlay of your current inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Inventory-Viewer'\n },\n {\n image: '/img/features/itemstats.png',\n title: 'Item stats',\n description: 'Displays information about food and potion effects.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Stats'\n },\n {\n image: '/img/features/jewellerycount.png',\n title: 'Jewellery charges',\n description: 'Displays the number of charges that your jewellery has.',\n link: 'https://github.com/runelite/runelite/wiki/Item-Charges'\n },\n {\n image: '/img/features/lightboxsolver.png',\n title: 'Light Box Puzzle Solver',\n description: 'Solves light box puzzles during clue scrolls.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/loottracker.png',\n title: 'Loot Tracker',\n description:\n 'Shows kill count and drops with prices from monsters you kill.',\n link: 'https://github.com/runelite/runelite/wiki/Loot-Tracker',\n home: true\n },\n {\n image: '/img/features/lowdetail.png',\n title: 'Low detail mode',\n description:\n \"Enables low detail mode, removing some of the game's eye candy.\",\n link: 'https://github.com/runelite/runelite/wiki/Low-Detail'\n },\n {\n image: '/img/features/mta.png',\n title: 'Mage Training Arena',\n description: 'Overlays to assist in each of the MTA rooms.',\n link: 'https://github.com/runelite/runelite/wiki/Mage-Training-Arena'\n },\n {\n image: '/img/features/menuswap.png',\n title: 'Menu entry swapping',\n description: 'Swaps the left-click actions of certain objects.',\n link: 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper'\n },\n {\n image: '/img/features/minimapdots.png',\n title: 'Minimap dot customizer',\n description: 'Customizes the color of minimap dots.',\n link: 'https://github.com/runelite/runelite/wiki/Minimap'\n },\n {\n image: '/img/features/favor.png',\n title: 'Miscellania favor',\n description:\n 'Displays your current favor and treasury in the Kingdom of Miscellania.',\n link: 'https://github.com/runelite/runelite/wiki/Kingdom-of-Miscellania'\n },\n {\n image: '/img/features/mlm.png',\n title: 'Motherlode Mine',\n description: 'Marks veins and rock obstacles in the Motherlode Mine.',\n link: 'https://github.com/runelite/runelite/wiki/Motherlode-Mine'\n },\n {\n image: '/img/features/newsfeed.png',\n title: 'News feed',\n description:\n 'Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.',\n link: 'https://github.com/runelite/runelite/wiki/News-Feed'\n },\n {\n image: '/img/features/nmz.png',\n title: 'Nightmare Zone',\n description:\n 'Displays NMZ points/absorption and notifies you about expiring potions.',\n link: 'https://github.com/runelite/runelite/wiki/Nightmare-Zone'\n },\n {\n image: '/img/features/npctag.png',\n title: 'NPC tagging',\n description: 'Tags and keeps track of an NPC.',\n link: 'https://github.com/runelite/runelite/wiki/NPC-Indicators'\n },\n {\n image: '/img/features/discordparty.png',\n title: 'Party',\n description:\n \"Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location\",\n link: 'https://github.com/runelite/runelite/wiki/Party'\n },\n {\n image: '/img/features/playerindicators.png',\n title: 'Player indicators',\n description:\n 'Draws the names of friends, clan mates and yourself overhead.',\n link: 'https://github.com/runelite/runelite/wiki/Player-Indicators'\n },\n {\n image: '/img/features/poh.png',\n title: 'Player-owned houses',\n description: 'Displays minimap icons and marks unlit/lit burners.',\n link: 'https://github.com/runelite/runelite/wiki/Player-owned-House'\n },\n {\n image: '/img/features/prayerbar.png',\n title: 'Prayer Bar',\n description: 'Displays a prayer bar underneath your hitpoints bar.',\n link: 'https://github.com/runelite/runelite/wiki/Prayer'\n },\n {\n image: '/img/features/puzzlebox.png',\n title: 'Puzzle box solver',\n description: 'Shows you where to click to solve puzzle boxes.',\n link: 'https://github.com/runelite/runelite/wiki/Puzzle-Solver'\n },\n {\n image: '/img/features/raids.png',\n title: 'Raid scouter',\n description:\n 'Displays the current layout of raids and tracks the raid duration.',\n link: 'https://github.com/runelite/runelite/wiki/Chambers-of-Xeric'\n },\n {\n image: '/img/features/regen.png',\n title: 'Regen timers',\n description:\n 'Tracks and displays the hitpoints & special attack regen timers.',\n link: 'https://github.com/runelite/runelite/wiki/Regeneration-Meter'\n },\n {\n image: '/img/features/roguesden.png',\n title: \"Rogues' Den\",\n description: 'Marks tiles and clickboxes to help you traverse the maze.',\n link: 'https://github.com/runelite/runelite/wiki/Rogues%27-Den'\n },\n {\n image: '/img/features/abyss.png',\n title: 'Runecraft',\n description: 'Displays minimap icons and clickboxes for abyssal rifts.',\n link: 'https://github.com/runelite/runelite/wiki/Runecraft'\n },\n {\n image: '/img/features/runepouch.png',\n title: 'Rune pouch',\n description: 'Shows what runes are currently in your rune pouch.',\n link: 'https://github.com/runelite/runelite/wiki/Rune-Pouch'\n },\n {\n image: '/img/features/shiftclick.png',\n title: 'Shift click configuration',\n description: 'Allows you to change/set shift click actions on items.',\n link:\n 'https://github.com/runelite/runelite/wiki/Menu-Entry-Swapper#customizable-shift-click'\n },\n {\n image: '/img/features/statusbars.png',\n title: 'Status Bars',\n description: 'Shows health and prayer bars next to the inventory.',\n link: 'https://github.com/runelite/runelite/wiki/Status-Bars'\n },\n {\n image: '/img/features/boosts.png',\n title: 'Status widgets',\n description: 'Shows boost timers, enemy HP, and other useful overlays.',\n home: true\n },\n {\n image: '/img/features/stretchedfixed.png',\n title: 'Stretched mode',\n description: 'Stretches the game to the size of your window.',\n link: 'https://github.com/runelite/runelite/wiki/Stretched-Mode'\n },\n {\n image: '/img/features/teamcapes.png',\n title: 'Team cape overlay',\n description: 'Displays team cape wearer counts.',\n link: 'https://github.com/runelite/runelite/wiki/Team-Capes'\n },\n {\n image: '/img/features/tearsofguthix.png',\n title: 'Tears of Guthix',\n description: 'Displays the remaining time for streams of tears.',\n link: 'https://github.com/runelite/runelite/wiki/Tears-Of-Guthix'\n },\n {\n image: '/img/features/tileindicators.png',\n title: 'Tile indicator',\n description: 'Marks the tile you last clicked on.',\n link: 'https://github.com/runelite/runelite/wiki/Tile-Indicators'\n },\n {\n image: '/img/features/tithefarm.png',\n title: 'Tithe Farm',\n description:\n 'Displays timers for the farming patches within the Tithe farm minigame.',\n link: 'https://github.com/runelite/runelite/wiki/Tithe-Farm'\n },\n {\n image: '/img/features/wcing.png',\n title: 'Woodcutting',\n description: 'Displays information about the logs you are cutting.',\n link: 'https://github.com/runelite/runelite/wiki/Woodcutting'\n },\n {\n image: '/img/features/xpglobes.png',\n title: 'XP globes',\n description:\n 'Displays skill globes when you gain XP, with more detailed stats on hover.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Globes'\n },\n {\n image: '/img/features/xptracker.png',\n title: 'XP Tracker',\n description:\n 'Side panel displaying xp data for each skill you have trained.',\n link: 'https://github.com/runelite/runelite/wiki/XP-Tracker'\n },\n {\n image: '/img/features/zoom.png',\n title: 'Zoom unlimiter',\n description: 'Allows you to zoom past the default camera distance limits.',\n link: 'https://github.com/runelite/runelite/wiki/Camera'\n }\n]\n","import { h, Fragment } from 'preact'\nimport ago from 's-ago'\n\nconst Commit = ({ url, title, author, date }) =>\n url && (\n \n Latest commit: \n {title} {' '}\n \n by {author.name}, {' '}\n {ago(date)}\n \n \n )\n\nexport default Commit\n","import { h, Component } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { getChristmasImage } from '../season'\nimport {\n makeNavbarDark,\n makeNavbarDefault,\n nextHeroImage\n} from '../modules/app'\nimport { numberWithCommas } from '../util'\nimport links from '../_data/links'\nimport Commit from './commit'\n\nfunction isOsCorrect(osName) {\n const platform = navigator.platform.toLowerCase()\n\n if (platform.indexOf('os x') !== -1 || platform.indexOf('mac') !== -1) {\n return osName === 'macOS'\n }\n\n if (platform.indexOf('win') !== -1) {\n if (\n navigator.userAgent.indexOf('Win64') !== -1 ||\n navigator.userAgent.indexOf('WOW64') !== -1\n ) {\n return osName === 'Windows64'\n } else {\n return osName === 'Windows32'\n }\n }\n\n if (platform.indexOf('linux') !== -1) {\n if (platform.indexOf('x86_64') !== -1) {\n return osName === 'Linux64'\n }\n\n if (platform.indexOf('i686') !== -1) {\n return osName === 'Linux32'\n }\n\n if (\n platform.indexOf('armv8') !== -1 ||\n platform.indexOf('aarch64') !== -1\n ) {\n return osName === 'LinuxAarch64'\n }\n\n if (platform.indexOf('arm') !== -1 || platform.indexOf('aarch32') !== -1) {\n return osName === 'LinuxAarch32'\n }\n\n return osName === 'Linux32'\n }\n\n return false\n}\n\nclass Hero extends Component {\n constructor(props) {\n super(props)\n this.handleScroll = this.handleScroll.bind(this)\n\n this.state = {\n interval: 0\n }\n }\n\n handleScroll() {\n const jumbo = document.getElementById('jumbo')\n const jumboBottom = jumbo.offsetTop + jumbo.offsetHeight\n const navbar = document.getElementsByClassName('navbar')[0]\n const fromTop = jumboBottom - navbar.offsetHeight\n const stop = window.scrollY || window.pageYOffset || document.body.scrollTop\n\n if (this.props.navbarDark) {\n if (stop > fromTop) {\n this.props.makeNavbarDefault()\n }\n } else {\n if (stop <= fromTop) {\n this.props.makeNavbarDark()\n }\n }\n }\n\n componentDidMount() {\n // Add background updater\n this.setState({\n interval: setInterval(() => {\n const { images, heroImage, nextHeroImage } = this.props\n const numImages = images.length\n const nextImageId = (heroImage + 1) % numImages\n const img = new Image()\n img.src = getChristmasImage(images[nextImageId])\n img.onload = () => nextHeroImage(numImages)\n\n this.setState({\n loadingHeroImg: img\n })\n }, 8000)\n })\n\n // Change navigation bar to fit hero\n this.handleScroll()\n\n // Add scroll listener for navigation bar\n document.addEventListener('scroll', this.handleScroll)\n }\n\n componentWillUnmount() {\n const { interval, loadingHeroImg } = this.state\n\n // Remove background updater\n clearInterval(interval)\n\n // onload will do some react lifecycle stuff. remove so that\n // component is not modified after its been removed from the DOM\n if (loadingHeroImg) {\n delete loadingHeroImg.onload\n }\n\n // Reset navigation bar\n this.props.makeNavbarDefault()\n\n // Remove scroll listener\n document.removeEventListener('scroll', this.handleScroll)\n }\n\n render({\n title,\n description,\n buttons,\n release,\n commit,\n playing,\n loggedIn,\n heroImage\n }) {\n let downloadButtons = buttons.filter(button => isOsCorrect(button.os))\n if (downloadButtons.length === 0) {\n downloadButtons = [buttons.find(button => button.os === 'all')]\n }\n const showDetail = downloadButtons.length > 1\n\n return (\n \n
\n
\n \n\n
\n
Players: \n {numberWithCommas(playing) || 'unknown'} online (\n {numberWithCommas(loggedIn) || 'unknown'} in game)\n
Latest release: \n
{release || 'unknown'} \n
\n
\n
\n
\n
\n )\n }\n}\n\nexport default connect(\n state => ({\n navbarDark: state.app.navbarDark,\n heroImage: state.app.heroImage\n }),\n dispatch =>\n bindActionCreators(\n { makeNavbarDark, makeNavbarDefault, nextHeroImage },\n dispatch\n )\n)(Hero)\n","import type { ObserverInstanceCallback } from './index';\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map>;\n }\n>();\n\nconst RootIds: WeakMap = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit['root']) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter((key) => options[key] !== undefined)\n .map((key) => {\n return `${key}_${\n key === 'root' ? getRootId(options.root) : options[key]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n let id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map>();\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === 'undefined' &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === 'number' ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n let callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from 'react';\nimport type { IntersectionObserverProps, PlainChildrenProps } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== 'function';\n}\n\n/**\n ## Render props\n\n To use the `` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n \n {({ inView, ref, entry }) => (\n \n
{`Header inside viewport ${inView}.`} \n \n )}\n \n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the ` `, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n console.log('Inview:', inView)}>\n Plain children are always rendered. Use onChange to monitor state. \n \n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n this.node = null;\n }\n\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n if (!isPlainChildren(this.props)) {\n const { inView, entry } = this.state;\n return this.props.children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n children,\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n\n return React.createElement(\n as || 'div',\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import { h } from 'preact'\nimport './home.scss'\nimport './blog.scss'\nimport { connect } from 'react-redux'\nimport Feature from '../components/feature'\nimport Layout from '../components/layout'\nimport Hero from '../components/hero'\nimport { latest } from '../blog'\nimport { fetchCommits, getLatestCommit } from '../modules/git'\nimport hero from '../_data/hero'\nimport features from '../_data/features'\nimport {\n fetchSessionCount,\n fetchLoggedInCount,\n getSessionCount,\n getLoggedInCount\n} from '../modules/session'\nimport Meta from '../components/meta'\nimport { bindActionCreators } from 'redux'\nimport { Link } from 'preact-router'\nimport Async from '../components/async'\nimport prepare from '../components/prepare'\nimport { fetchBootstrap, getLatestRelease } from '../modules/bootstrap'\nimport { InView } from 'react-intersection-observer'\n\nconst Home = ({ commit, release, sessionCount, loggedInCount }) => (\n \n \n\n \n\n \n \n \n
\n \n \n\n
\n {features\n .filter(feature => feature.home)\n .map(feature => (\n \n ))}\n
\n
\n \n\n \n \n \n
\n \n \n\n
\n {({ inView, ref }) => (\n \n {inView ? (\n
\n latest().then(({ body }) => (\n
\n ))\n }\n />\n ) : null}\n \n )}\n \n
\n \n \n)\n\nconst mapStateToProps = (state, props) => ({\n commit: getLatestCommit(state, props),\n release: getLatestRelease(state, props),\n sessionCount: getSessionCount(state, props),\n loggedInCount: getLoggedInCount(state, props)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchCommits,\n fetchSessionCount,\n fetchLoggedInCount\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchCommits,\n fetchSessionCount,\n fetchLoggedInCount\n}) => {\n fetchBootstrap().then(() => fetchCommits())\n fetchSessionCount()\n fetchLoggedInCount()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Home))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/40.22dc398d.chunk.js b/static/js/40.289e5137.chunk.js
similarity index 94%
rename from static/js/40.22dc398d.chunk.js
rename to static/js/40.289e5137.chunk.js
index 056d4c0db..66a705240 100644
--- a/static/js/40.22dc398d.chunk.js
+++ b/static/js/40.289e5137.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[40],{315:function(e,t){e.exports={title:"RuneLite threatened to shutdown",description:"RuneLite threatened to shutdown",author:"Adam",body:"I have just finished having a discussion with Mod Mat K, who is threatening\nlegal action against RuneLite for copyright infringement if it is not shut down\nby the end of the week.
\nI inquired specifically what parts of RuneLite violate Jagex's copyright so that\nI could take it down, and even offered to close source the project, but MMK\ninsisted that the entire project must be shut down, and gave no specifics about\nthe copyright infringement claims, and only said legal action would be taken.
\nI was also informed that they were "working on" shutting down both OSB and\nKonduit, and that I was the "first" to be contacted.
\nRuneLite is certainly in a grey area to my knowledge of copyright law. I have no\nissue working with Jagex to remove parts of it from the public eye if requested.\nI would also have no issue shutting down the entire client if all 3rd party\nclients were banned. However, I do have an issue with shutting down the entire\nclient while OSBuddy is allowed to operate.
\nWhile I agree that RuneLite does threaten the integrity of the game, what\nthreatens it even more is that I have to buy OSBuddy in order to gain the same\ncompetitive advantages of other players in game. RuneLite exists to try and\nlevel the playing field as to who can develop on the client, of which I think it\nhas done well.
\nJagex, please work with me here instead of singling us out. We love the game,\nand have great respect for you, but this is not an acceptable way of dealing\nwith the third party clients.
\nIf anyone within the community happens to be a (copyright) lawyer, please\ncontact me.
\n- Adam
\n"}}}]);
-//# sourceMappingURL=40.22dc398d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[40],{316:function(e,t){e.exports={title:"RuneLite threatened to shutdown",description:"RuneLite threatened to shutdown",author:"Adam",body:"I have just finished having a discussion with Mod Mat K, who is threatening\nlegal action against RuneLite for copyright infringement if it is not shut down\nby the end of the week.
\nI inquired specifically what parts of RuneLite violate Jagex's copyright so that\nI could take it down, and even offered to close source the project, but MMK\ninsisted that the entire project must be shut down, and gave no specifics about\nthe copyright infringement claims, and only said legal action would be taken.
\nI was also informed that they were "working on" shutting down both OSB and\nKonduit, and that I was the "first" to be contacted.
\nRuneLite is certainly in a grey area to my knowledge of copyright law. I have no\nissue working with Jagex to remove parts of it from the public eye if requested.\nI would also have no issue shutting down the entire client if all 3rd party\nclients were banned. However, I do have an issue with shutting down the entire\nclient while OSBuddy is allowed to operate.
\nWhile I agree that RuneLite does threaten the integrity of the game, what\nthreatens it even more is that I have to buy OSBuddy in order to gain the same\ncompetitive advantages of other players in game. RuneLite exists to try and\nlevel the playing field as to who can develop on the client, of which I think it\nhas done well.
\nJagex, please work with me here instead of singling us out. We love the game,\nand have great respect for you, but this is not an acceptable way of dealing\nwith the third party clients.
\nIf anyone within the community happens to be a (copyright) lawyer, please\ncontact me.
\n- Adam
\n"}}}]);
+//# sourceMappingURL=40.289e5137.chunk.js.map
\ No newline at end of file
diff --git a/static/js/40.22dc398d.chunk.js.map b/static/js/40.289e5137.chunk.js.map
similarity index 97%
rename from static/js/40.22dc398d.chunk.js.map
rename to static/js/40.289e5137.chunk.js.map
index 93c40342d..bb8dfcf1d 100644
--- a/static/js/40.22dc398d.chunk.js.map
+++ b/static/js/40.289e5137.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-15-00-00-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,kCAAkC,YAAc,kCAAkC,OAAS,OAAO,KAAO","file":"static/js/40.22dc398d.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown\",\"description\":\"RuneLite threatened to shutdown\",\"author\":\"Adam\",\"body\":\"I have just finished having a discussion with Mod Mat K, who is threatening\\nlegal action against RuneLite for copyright infringement if it is not shut down\\nby the end of the week.
\\nI inquired specifically what parts of RuneLite violate Jagex's copyright so that\\nI could take it down, and even offered to close source the project, but MMK\\ninsisted that the entire project must be shut down, and gave no specifics about\\nthe copyright infringement claims, and only said legal action would be taken.
\\nI was also informed that they were "working on" shutting down both OSB and\\nKonduit, and that I was the "first" to be contacted.
\\nRuneLite is certainly in a grey area to my knowledge of copyright law. I have no\\nissue working with Jagex to remove parts of it from the public eye if requested.\\nI would also have no issue shutting down the entire client if all 3rd party\\nclients were banned. However, I do have an issue with shutting down the entire\\nclient while OSBuddy is allowed to operate.
\\nWhile I agree that RuneLite does threaten the integrity of the game, what\\nthreatens it even more is that I have to buy OSBuddy in order to gain the same\\ncompetitive advantages of other players in game. RuneLite exists to try and\\nlevel the playing field as to who can develop on the client, of which I think it\\nhas done well.
\\nJagex, please work with me here instead of singling us out. We love the game,\\nand have great respect for you, but this is not an acceptable way of dealing\\nwith the third party clients.
\\nIf anyone within the community happens to be a (copyright) lawyer, please\\ncontact me.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-15-00-00-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,kCAAkC,YAAc,kCAAkC,OAAS,OAAO,KAAO","file":"static/js/40.289e5137.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown\",\"description\":\"RuneLite threatened to shutdown\",\"author\":\"Adam\",\"body\":\"I have just finished having a discussion with Mod Mat K, who is threatening\\nlegal action against RuneLite for copyright infringement if it is not shut down\\nby the end of the week.
\\nI inquired specifically what parts of RuneLite violate Jagex's copyright so that\\nI could take it down, and even offered to close source the project, but MMK\\ninsisted that the entire project must be shut down, and gave no specifics about\\nthe copyright infringement claims, and only said legal action would be taken.
\\nI was also informed that they were "working on" shutting down both OSB and\\nKonduit, and that I was the "first" to be contacted.
\\nRuneLite is certainly in a grey area to my knowledge of copyright law. I have no\\nissue working with Jagex to remove parts of it from the public eye if requested.\\nI would also have no issue shutting down the entire client if all 3rd party\\nclients were banned. However, I do have an issue with shutting down the entire\\nclient while OSBuddy is allowed to operate.
\\nWhile I agree that RuneLite does threaten the integrity of the game, what\\nthreatens it even more is that I have to buy OSBuddy in order to gain the same\\ncompetitive advantages of other players in game. RuneLite exists to try and\\nlevel the playing field as to who can develop on the client, of which I think it\\nhas done well.
\\nJagex, please work with me here instead of singling us out. We love the game,\\nand have great respect for you, but this is not an acceptable way of dealing\\nwith the third party clients.
\\nIf anyone within the community happens to be a (copyright) lawyer, please\\ncontact me.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/41.684f7351.chunk.js b/static/js/41.dbab91f6.chunk.js
similarity index 95%
rename from static/js/41.684f7351.chunk.js
rename to static/js/41.dbab91f6.chunk.js
index c6daab8e1..a890cdee5 100644
--- a/static/js/41.684f7351.chunk.js
+++ b/static/js/41.dbab91f6.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[41],{316:function(e,t){e.exports={title:"RuneLite threatened to shutdown - Update",description:"RuneLite threatened to shutdown - Update",author:"Adam",body:'First off, I would like to thank everyone in the community showing so much\nsupport for RuneLite. What Jagex did was clearly a great injustice.
\nIt is unfortunate the only way I seem to be able to have any meaningful\ndiscussion with Jagex is via loud blog posts.
\nI have read the Third Party Client\nUpdate \nand it contains some new details to me. Specifically, the "sharing\nof tools used to deobfuscate Old School RuneScape code, and then re-publishing\nsaid code.".
\nSo, I have stripped the aforementioned tools and RuneScape client from GitHub. I\nwill be removing the other distributions off of the server shortly.
\nUnfortunately this means now RuneLite will be only partially-open source.\nRuneLite is BSD-2 licensed and the license permits me to do this. This will\nhinder new contributions some in that they cannot learn of and create new APIs\nfor client access, but we already have a well established API which can be used\nin the majority of cases.
\nI don\'t really agree with some of the reasoning behind this, bots have existed\nbefore RuneLite existed, and I\'m sure some of them have a better knowledge of\nthe game than I do, but if it must be taken down, then okay.
\nRegarding "The conversation with RuneLite is part of the long-term strategy and\napproach for all 3rd party clients and the future of our own official client.",\nas started in the initial post, I have no problem shutting down\nRuneLite if all third party clients are to be shut down. But I will not shut it\ndown with the other clients still running.
\nJagex, if you have objections to any other aspect of RuneLite, I would prefer if\nyou contacted me and told me about it, instead of threatening me to take down the\nentire project. I have no problem working with you to address any concerns.
\nThere is a large portion of RuneLite code that Jagex definitely has no claim over,\nand it belongs to me, and to the many contributors to the project, and I think\nit is wrong for you to claim it must all be removed.
\n- Adam
\n'}}}]);
-//# sourceMappingURL=41.684f7351.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[41],{317:function(e,t){e.exports={title:"RuneLite threatened to shutdown - Update",description:"RuneLite threatened to shutdown - Update",author:"Adam",body:'First off, I would like to thank everyone in the community showing so much\nsupport for RuneLite. What Jagex did was clearly a great injustice.
\nIt is unfortunate the only way I seem to be able to have any meaningful\ndiscussion with Jagex is via loud blog posts.
\nI have read the Third Party Client\nUpdate \nand it contains some new details to me. Specifically, the "sharing\nof tools used to deobfuscate Old School RuneScape code, and then re-publishing\nsaid code.".
\nSo, I have stripped the aforementioned tools and RuneScape client from GitHub. I\nwill be removing the other distributions off of the server shortly.
\nUnfortunately this means now RuneLite will be only partially-open source.\nRuneLite is BSD-2 licensed and the license permits me to do this. This will\nhinder new contributions some in that they cannot learn of and create new APIs\nfor client access, but we already have a well established API which can be used\nin the majority of cases.
\nI don\'t really agree with some of the reasoning behind this, bots have existed\nbefore RuneLite existed, and I\'m sure some of them have a better knowledge of\nthe game than I do, but if it must be taken down, then okay.
\nRegarding "The conversation with RuneLite is part of the long-term strategy and\napproach for all 3rd party clients and the future of our own official client.",\nas started in the initial post, I have no problem shutting down\nRuneLite if all third party clients are to be shut down. But I will not shut it\ndown with the other clients still running.
\nJagex, if you have objections to any other aspect of RuneLite, I would prefer if\nyou contacted me and told me about it, instead of threatening me to take down the\nentire project. I have no problem working with you to address any concerns.
\nThere is a large portion of RuneLite code that Jagex definitely has no claim over,\nand it belongs to me, and to the many contributors to the project, and I think\nit is wrong for you to claim it must all be removed.
\n- Adam
\n'}}}]);
+//# sourceMappingURL=41.dbab91f6.chunk.js.map
\ No newline at end of file
diff --git a/static/js/41.684f7351.chunk.js.map b/static/js/41.dbab91f6.chunk.js.map
similarity index 97%
rename from static/js/41.684f7351.chunk.js.map
rename to static/js/41.dbab91f6.chunk.js.map
index b047c6954..79487c53c 100644
--- a/static/js/41.684f7351.chunk.js.map
+++ b/static/js/41.dbab91f6.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,2CAA2C,YAAc,2CAA2C,OAAS,OAAO,KAAO","file":"static/js/41.684f7351.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown - Update\",\"description\":\"RuneLite threatened to shutdown - Update\",\"author\":\"Adam\",\"body\":\"First off, I would like to thank everyone in the community showing so much\\nsupport for RuneLite. What Jagex did was clearly a great injustice.
\\nIt is unfortunate the only way I seem to be able to have any meaningful\\ndiscussion with Jagex is via loud blog posts.
\\nI have read the Third Party Client\\nUpdate \\nand it contains some new details to me. Specifically, the "sharing\\nof tools used to deobfuscate Old School RuneScape code, and then re-publishing\\nsaid code.".
\\nSo, I have stripped the aforementioned tools and RuneScape client from GitHub. I\\nwill be removing the other distributions off of the server shortly.
\\nUnfortunately this means now RuneLite will be only partially-open source.\\nRuneLite is BSD-2 licensed and the license permits me to do this. This will\\nhinder new contributions some in that they cannot learn of and create new APIs\\nfor client access, but we already have a well established API which can be used\\nin the majority of cases.
\\nI don't really agree with some of the reasoning behind this, bots have existed\\nbefore RuneLite existed, and I'm sure some of them have a better knowledge of\\nthe game than I do, but if it must be taken down, then okay.
\\nRegarding "The conversation with RuneLite is part of the long-term strategy and\\napproach for all 3rd party clients and the future of our own official client.",\\nas started in the initial post, I have no problem shutting down\\nRuneLite if all third party clients are to be shut down. But I will not shut it\\ndown with the other clients still running.
\\nJagex, if you have objections to any other aspect of RuneLite, I would prefer if\\nyou contacted me and told me about it, instead of threatening me to take down the\\nentire project. I have no problem working with you to address any concerns.
\\nThere is a large portion of RuneLite code that Jagex definitely has no claim over,\\nand it belongs to me, and to the many contributors to the project, and I think\\nit is wrong for you to claim it must all be removed.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,2CAA2C,YAAc,2CAA2C,OAAS,OAAO,KAAO","file":"static/js/41.dbab91f6.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown - Update\",\"description\":\"RuneLite threatened to shutdown - Update\",\"author\":\"Adam\",\"body\":\"First off, I would like to thank everyone in the community showing so much\\nsupport for RuneLite. What Jagex did was clearly a great injustice.
\\nIt is unfortunate the only way I seem to be able to have any meaningful\\ndiscussion with Jagex is via loud blog posts.
\\nI have read the Third Party Client\\nUpdate \\nand it contains some new details to me. Specifically, the "sharing\\nof tools used to deobfuscate Old School RuneScape code, and then re-publishing\\nsaid code.".
\\nSo, I have stripped the aforementioned tools and RuneScape client from GitHub. I\\nwill be removing the other distributions off of the server shortly.
\\nUnfortunately this means now RuneLite will be only partially-open source.\\nRuneLite is BSD-2 licensed and the license permits me to do this. This will\\nhinder new contributions some in that they cannot learn of and create new APIs\\nfor client access, but we already have a well established API which can be used\\nin the majority of cases.
\\nI don't really agree with some of the reasoning behind this, bots have existed\\nbefore RuneLite existed, and I'm sure some of them have a better knowledge of\\nthe game than I do, but if it must be taken down, then okay.
\\nRegarding "The conversation with RuneLite is part of the long-term strategy and\\napproach for all 3rd party clients and the future of our own official client.",\\nas started in the initial post, I have no problem shutting down\\nRuneLite if all third party clients are to be shut down. But I will not shut it\\ndown with the other clients still running.
\\nJagex, if you have objections to any other aspect of RuneLite, I would prefer if\\nyou contacted me and told me about it, instead of threatening me to take down the\\nentire project. I have no problem working with you to address any concerns.
\\nThere is a large portion of RuneLite code that Jagex definitely has no claim over,\\nand it belongs to me, and to the many contributors to the project, and I think\\nit is wrong for you to claim it must all be removed.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/42.59d80493.chunk.js b/static/js/42.b8d53b47.chunk.js
similarity index 91%
rename from static/js/42.59d80493.chunk.js
rename to static/js/42.b8d53b47.chunk.js
index 9180f80df..09de67e39 100644
--- a/static/js/42.59d80493.chunk.js
+++ b/static/js/42.b8d53b47.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[42],{317:function(e,t){e.exports={title:"RuneLite threatened to shutdown - Update 2",description:"RuneLite threatened to shutdown - Update 2",author:"Adam",body:"I have just finished speaking to MMK. I have agreed on a 1-2 day halt on\ndevelopment pending further discussion, and I have closed sourced the\ndeobfuscator and the deobfuscated RuneScape client. RuneLite is allowed to\noperate during this time.
\nThe new OSBuddy API that has been announced is also a nice step forward. The two\nclients become not too dissimilar at that point, both with a closed API\nimplementation.
\nWhat this means for developers is you must rely on our exposed API and are no\nlonger able to extend or modify it. This limits development some certainly but\nit is what we must do.
\nThe closed sourced components are both build-time and update-time tools, and are\nnot artifacts shipped to the end user. So, the level of difficulty required for\nsomeone to independently prove that a given build of RuneLite is safe (eg. not\ngoing to hack you) is approximately the same as before, and still certainly very\npossible.
\nHopefully it gets better from here...
\n- Adam
\n"}}}]);
-//# sourceMappingURL=42.59d80493.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[42],{318:function(e,t){e.exports={title:"RuneLite threatened to shutdown - Update 2",description:"RuneLite threatened to shutdown - Update 2",author:"Adam",body:"I have just finished speaking to MMK. I have agreed on a 1-2 day halt on\ndevelopment pending further discussion, and I have closed sourced the\ndeobfuscator and the deobfuscated RuneScape client. RuneLite is allowed to\noperate during this time.
\nThe new OSBuddy API that has been announced is also a nice step forward. The two\nclients become not too dissimilar at that point, both with a closed API\nimplementation.
\nWhat this means for developers is you must rely on our exposed API and are no\nlonger able to extend or modify it. This limits development some certainly but\nit is what we must do.
\nThe closed sourced components are both build-time and update-time tools, and are\nnot artifacts shipped to the end user. So, the level of difficulty required for\nsomeone to independently prove that a given build of RuneLite is safe (eg. not\ngoing to hack you) is approximately the same as before, and still certainly very\npossible.
\nHopefully it gets better from here...
\n- Adam
\n"}}}]);
+//# sourceMappingURL=42.b8d53b47.chunk.js.map
\ No newline at end of file
diff --git a/static/js/42.59d80493.chunk.js.map b/static/js/42.b8d53b47.chunk.js.map
similarity index 95%
rename from static/js/42.59d80493.chunk.js.map
rename to static/js/42.b8d53b47.chunk.js.map
index de8734ca9..1e3117a13 100644
--- a/static/js/42.59d80493.chunk.js.map
+++ b/static/js/42.b8d53b47.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,6CAA6C,YAAc,6CAA6C,OAAS,OAAO,KAAO","file":"static/js/42.59d80493.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown - Update 2\",\"description\":\"RuneLite threatened to shutdown - Update 2\",\"author\":\"Adam\",\"body\":\"I have just finished speaking to MMK. I have agreed on a 1-2 day halt on\\ndevelopment pending further discussion, and I have closed sourced the\\ndeobfuscator and the deobfuscated RuneScape client. RuneLite is allowed to\\noperate during this time.
\\nThe new OSBuddy API that has been announced is also a nice step forward. The two\\nclients become not too dissimilar at that point, both with a closed API\\nimplementation.
\\nWhat this means for developers is you must rely on our exposed API and are no\\nlonger able to extend or modify it. This limits development some certainly but\\nit is what we must do.
\\nThe closed sourced components are both build-time and update-time tools, and are\\nnot artifacts shipped to the end user. So, the level of difficulty required for\\nsomeone to independently prove that a given build of RuneLite is safe (eg. not\\ngoing to hack you) is approximately the same as before, and still certainly very\\npossible.
\\nHopefully it gets better from here...
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,6CAA6C,YAAc,6CAA6C,OAAS,OAAO,KAAO","file":"static/js/42.b8d53b47.chunk.js","sourcesContent":["module.exports = {\"title\":\"RuneLite threatened to shutdown - Update 2\",\"description\":\"RuneLite threatened to shutdown - Update 2\",\"author\":\"Adam\",\"body\":\"I have just finished speaking to MMK. I have agreed on a 1-2 day halt on\\ndevelopment pending further discussion, and I have closed sourced the\\ndeobfuscator and the deobfuscated RuneScape client. RuneLite is allowed to\\noperate during this time.
\\nThe new OSBuddy API that has been announced is also a nice step forward. The two\\nclients become not too dissimilar at that point, both with a closed API\\nimplementation.
\\nWhat this means for developers is you must rely on our exposed API and are no\\nlonger able to extend or modify it. This limits development some certainly but\\nit is what we must do.
\\nThe closed sourced components are both build-time and update-time tools, and are\\nnot artifacts shipped to the end user. So, the level of difficulty required for\\nsomeone to independently prove that a given build of RuneLite is safe (eg. not\\ngoing to hack you) is approximately the same as before, and still certainly very\\npossible.
\\nHopefully it gets better from here...
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/43.f101e7d4.chunk.js b/static/js/43.2da9e0a2.chunk.js
similarity index 98%
rename from static/js/43.f101e7d4.chunk.js
rename to static/js/43.2da9e0a2.chunk.js
index de2d41791..77ab870e8 100644
--- a/static/js/43.f101e7d4.chunk.js
+++ b/static/js/43.2da9e0a2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[43],{318:function(e,n){e.exports={title:"1.3.9 Release",description:"Hot/cold world map improvements, skill calculator, and anti-drag plugin",author:"Adam",body:'I have been given the go ahead to continue on with RuneLite development by MMK,\nso here is release 1.3.9.
\nI have had to move most of my tools to be internal to\nthe project, and it is taking some time. We will probably be able to begin\naccepting PRs again in full force sometime this weekend.
\nHot/cold clue locations are now shown on the world map, and fairy ring teleport\nicons now have a tooltip showing the fairy ring code. Contributed by\n@deathbeam and\n@MESLewis respectively.
\n
\n@Kruithne has added a skill calculator plugin.
\n
\nAn anti-drag plugin has been added from\n@devdennis . It lets you configure the "drag\ndelay" which can help prevent you from dragging items you meant to click on.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe opponent info plugin now displays approximate players hitpoints instead of\na percentage \nShow GE and high alch prices on shop items when examined \nMade existing config option for higlighting marks of grace also affect overlay\ncolor \nAdd trap obstacles to agility plugin \nFix motherlode mine plugin when it is enabled when inside of the mine \nMitigate a rare crash in the official client at certain areas ingame \nAdd a tooltip font type configuration option \nAuto complete hiscore lookups based on friends, clan members, and players \n \nAlso thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\nclue fixes.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\nAdam (20):\n agility plugin: use immutableset\n slayer plugin: move widget inventory check to game tick\n runelite-api: expose friends\n runelite-mixins: fix setting menu preventing menu add event from being fired\n friend notes plugin: only add menu entry after "Message"\n agility plugin: fix exception if obstacle is off screen\n runelite-api: add getWorldType()\n runelite-client: add hiscore manager\n opponent info: use player hitpoints from hiscores\n item controller: don\'t return duplicate items in bulk lookup\n http-service: optimize bulk item price lookup\n http-service: lombok item api\n item manager: cache no price when unable to batch lookup\n injector: support field hooks prior to field being changed\n runelite-mixins: fire npc despawn event before composition is nulled\n runelite-mixins: wrap drawTileUnderlay in try/catch\n Revert "fix: Hide vanilla raid points box when inside chambers of xeric"\n speccounter plugin: fix kalphite queen spelling\n Update pom and README to reflect changes to project structure\n Remove distribution management\n\nAlex Kolpa (2):\n Fix typo cryptic clue\n Check player position on state change\n\nDennis (1):\n runelite-client: add anti drag plugin\n\nDimitris Karittevlis (1):\n shows ge and high alch prices for shop items that are examined\n\nHSJ-OSRS (1):\n Make existing config options for highlighting marks of grace also affect the overlay color\n\nHashes (1):\n Fix ProgressBar percentage displaying (#2609)\n\nJeremy Plsek (2):\n agility plugin: add trap obstacle overlay\n overlayutil: reset stroke for renderpolygon\n\nJordan Atwood (4):\n Fix wording/locations of kill x elite cryptic clues (#2628)\n Fix Warrior\'s guild emote clue\n Use British floor numbering in cipher clues\n Fix Gypsy Aris cryptic clue\n\nKamiel (1):\n fix: Hide vanilla raid points box when inside chambers of xeric\n\nKruithne (1):\n Implement Skill Calculator plug-in\n\nLars \xd8rnlo (1):\n Motherlode Mine - Region check on plugin startup\n\nMax Weber (10):\n http-api: print a more helpful error message when resources are not filtered\n Make VarbitChanged only fire once, after everything has settled\n runelite-api: Annotate Perspective methods with `@Nonnull`\n groundmarkers: Fix NPE in drawTile\n kourendlibrary: Fix for rev 170 menu code\n runelite-api: Update ID files\n cache: Strip tags from java names\n Rename varcs > varCInts\n Rename varcstrings > varCStrings\n Revert #2530 "Make VarbitChanged only fire once..."\n\nMorgan Lewis (2):\n Fix world map overlay to draw pixel perfect on the World Map\n Add tooltip and custom icon to World Map fairy ring destinations\n\nReasel (1):\n runelite-client: add tooltip font type dropdown\n\nSebastiaan Holthuis (1):\n Add " fps" after the number of FPS\n\nShuhao Wu (1):\n Fix "Clap in the magic axe" master clue. (#2685)\n\nTomas Slusny (13):\n Improve ProgressBarComponent to support %/FULL\n Update opponent info to use PanelComponent\n Add ItemLayer height to GroundItems overlay\n Fix World Map widget check in Hooks.java\n Reset Fight Cave plugin prayer background color\n Merge clearMapPoint with resetClue\n Improve performance of ClueScrollWorldMapPoint\n Move Hot/Cold message logic to HotColdClue\n Add support for map for hot/cold clues\n Do not floor percentage in progress bars\n Fix updating of Hot/Cold clue\n Reset clue overlay preferred size each render\n Calculate child preferred size based on max size\n\nTzZek (1):\n Add Elf Area Obstacles\n\nUnknown (1):\n Add Overlay for Silver Jewelry to Slayer Plugin\n\npettenge (1):\n hiscore plugin: autocomplete name lookup based on friends, clan members, and players\n\ntrimbe (1):\n Fix hot cold location south of gnome stronghold\n\nypperlig (1):\n Clear previous image components in fight caves overlay\n
\n',image:"/img/blog/1.3.9-Release/hotcold.png"}}}]);
-//# sourceMappingURL=43.f101e7d4.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[43],{319:function(e,n){e.exports={title:"1.3.9 Release",description:"Hot/cold world map improvements, skill calculator, and anti-drag plugin",author:"Adam",body:'I have been given the go ahead to continue on with RuneLite development by MMK,\nso here is release 1.3.9.
\nI have had to move most of my tools to be internal to\nthe project, and it is taking some time. We will probably be able to begin\naccepting PRs again in full force sometime this weekend.
\nHot/cold clue locations are now shown on the world map, and fairy ring teleport\nicons now have a tooltip showing the fairy ring code. Contributed by\n@deathbeam and\n@MESLewis respectively.
\n
\n@Kruithne has added a skill calculator plugin.
\n
\nAn anti-drag plugin has been added from\n@devdennis . It lets you configure the "drag\ndelay" which can help prevent you from dragging items you meant to click on.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe opponent info plugin now displays approximate players hitpoints instead of\na percentage \nShow GE and high alch prices on shop items when examined \nMade existing config option for higlighting marks of grace also affect overlay\ncolor \nAdd trap obstacles to agility plugin \nFix motherlode mine plugin when it is enabled when inside of the mine \nMitigate a rare crash in the official client at certain areas ingame \nAdd a tooltip font type configuration option \nAuto complete hiscore lookups based on friends, clan members, and players \n \nAlso thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\nclue fixes.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 22 contributors this release!
\nAdam (20):\n agility plugin: use immutableset\n slayer plugin: move widget inventory check to game tick\n runelite-api: expose friends\n runelite-mixins: fix setting menu preventing menu add event from being fired\n friend notes plugin: only add menu entry after "Message"\n agility plugin: fix exception if obstacle is off screen\n runelite-api: add getWorldType()\n runelite-client: add hiscore manager\n opponent info: use player hitpoints from hiscores\n item controller: don\'t return duplicate items in bulk lookup\n http-service: optimize bulk item price lookup\n http-service: lombok item api\n item manager: cache no price when unable to batch lookup\n injector: support field hooks prior to field being changed\n runelite-mixins: fire npc despawn event before composition is nulled\n runelite-mixins: wrap drawTileUnderlay in try/catch\n Revert "fix: Hide vanilla raid points box when inside chambers of xeric"\n speccounter plugin: fix kalphite queen spelling\n Update pom and README to reflect changes to project structure\n Remove distribution management\n\nAlex Kolpa (2):\n Fix typo cryptic clue\n Check player position on state change\n\nDennis (1):\n runelite-client: add anti drag plugin\n\nDimitris Karittevlis (1):\n shows ge and high alch prices for shop items that are examined\n\nHSJ-OSRS (1):\n Make existing config options for highlighting marks of grace also affect the overlay color\n\nHashes (1):\n Fix ProgressBar percentage displaying (#2609)\n\nJeremy Plsek (2):\n agility plugin: add trap obstacle overlay\n overlayutil: reset stroke for renderpolygon\n\nJordan Atwood (4):\n Fix wording/locations of kill x elite cryptic clues (#2628)\n Fix Warrior\'s guild emote clue\n Use British floor numbering in cipher clues\n Fix Gypsy Aris cryptic clue\n\nKamiel (1):\n fix: Hide vanilla raid points box when inside chambers of xeric\n\nKruithne (1):\n Implement Skill Calculator plug-in\n\nLars \xd8rnlo (1):\n Motherlode Mine - Region check on plugin startup\n\nMax Weber (10):\n http-api: print a more helpful error message when resources are not filtered\n Make VarbitChanged only fire once, after everything has settled\n runelite-api: Annotate Perspective methods with `@Nonnull`\n groundmarkers: Fix NPE in drawTile\n kourendlibrary: Fix for rev 170 menu code\n runelite-api: Update ID files\n cache: Strip tags from java names\n Rename varcs > varCInts\n Rename varcstrings > varCStrings\n Revert #2530 "Make VarbitChanged only fire once..."\n\nMorgan Lewis (2):\n Fix world map overlay to draw pixel perfect on the World Map\n Add tooltip and custom icon to World Map fairy ring destinations\n\nReasel (1):\n runelite-client: add tooltip font type dropdown\n\nSebastiaan Holthuis (1):\n Add " fps" after the number of FPS\n\nShuhao Wu (1):\n Fix "Clap in the magic axe" master clue. (#2685)\n\nTomas Slusny (13):\n Improve ProgressBarComponent to support %/FULL\n Update opponent info to use PanelComponent\n Add ItemLayer height to GroundItems overlay\n Fix World Map widget check in Hooks.java\n Reset Fight Cave plugin prayer background color\n Merge clearMapPoint with resetClue\n Improve performance of ClueScrollWorldMapPoint\n Move Hot/Cold message logic to HotColdClue\n Add support for map for hot/cold clues\n Do not floor percentage in progress bars\n Fix updating of Hot/Cold clue\n Reset clue overlay preferred size each render\n Calculate child preferred size based on max size\n\nTzZek (1):\n Add Elf Area Obstacles\n\nUnknown (1):\n Add Overlay for Silver Jewelry to Slayer Plugin\n\npettenge (1):\n hiscore plugin: autocomplete name lookup based on friends, clan members, and players\n\ntrimbe (1):\n Fix hot cold location south of gnome stronghold\n\nypperlig (1):\n Clear previous image components in fight caves overlay\n
\n',image:"/img/blog/1.3.9-Release/hotcold.png"}}}]);
+//# sourceMappingURL=43.2da9e0a2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/43.f101e7d4.chunk.js.map b/static/js/43.2da9e0a2.chunk.js.map
similarity index 99%
rename from static/js/43.f101e7d4.chunk.js.map
rename to static/js/43.2da9e0a2.chunk.js.map
index 6b66fc2ca..3d87e0914 100644
--- a/static/js/43.f101e7d4.chunk.js.map
+++ b/static/js/43.2da9e0a2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-18-00-00-1.3.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,0EAA0E,OAAS,OAAO,KAAO,qnMAAgpM,MAAQ","file":"static/js/43.f101e7d4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.9 Release\",\"description\":\"Hot/cold world map improvements, skill calculator, and anti-drag plugin\",\"author\":\"Adam\",\"body\":\"I have been given the go ahead to continue on with RuneLite development by MMK,\\nso here is release 1.3.9.
\\nI have had to move most of my tools to be internal to\\nthe project, and it is taking some time. We will probably be able to begin\\naccepting PRs again in full force sometime this weekend.
\\nHot/cold clue locations are now shown on the world map, and fairy ring teleport\\nicons now have a tooltip showing the fairy ring code. Contributed by\\n@deathbeam and\\n@MESLewis respectively.
\\n
\\n@Kruithne has added a skill calculator plugin.
\\n
\\nAn anti-drag plugin has been added from\\n@devdennis . It lets you configure the "drag\\ndelay" which can help prevent you from dragging items you meant to click on.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe opponent info plugin now displays approximate players hitpoints instead of\\na percentage \\nShow GE and high alch prices on shop items when examined \\nMade existing config option for higlighting marks of grace also affect overlay\\ncolor \\nAdd trap obstacles to agility plugin \\nFix motherlode mine plugin when it is enabled when inside of the mine \\nMitigate a rare crash in the official client at certain areas ingame \\nAdd a tooltip font type configuration option \\nAuto complete hiscore lookups based on friends, clan members, and players \\n \\nAlso thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\\nclue fixes.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\nAdam (20):\\n agility plugin: use immutableset\\n slayer plugin: move widget inventory check to game tick\\n runelite-api: expose friends\\n runelite-mixins: fix setting menu preventing menu add event from being fired\\n friend notes plugin: only add menu entry after "Message"\\n agility plugin: fix exception if obstacle is off screen\\n runelite-api: add getWorldType()\\n runelite-client: add hiscore manager\\n opponent info: use player hitpoints from hiscores\\n item controller: don't return duplicate items in bulk lookup\\n http-service: optimize bulk item price lookup\\n http-service: lombok item api\\n item manager: cache no price when unable to batch lookup\\n injector: support field hooks prior to field being changed\\n runelite-mixins: fire npc despawn event before composition is nulled\\n runelite-mixins: wrap drawTileUnderlay in try/catch\\n Revert "fix: Hide vanilla raid points box when inside chambers of xeric"\\n speccounter plugin: fix kalphite queen spelling\\n Update pom and README to reflect changes to project structure\\n Remove distribution management\\n\\nAlex Kolpa (2):\\n Fix typo cryptic clue\\n Check player position on state change\\n\\nDennis (1):\\n runelite-client: add anti drag plugin\\n\\nDimitris Karittevlis (1):\\n shows ge and high alch prices for shop items that are examined\\n\\nHSJ-OSRS (1):\\n Make existing config options for highlighting marks of grace also affect the overlay color\\n\\nHashes (1):\\n Fix ProgressBar percentage displaying (#2609)\\n\\nJeremy Plsek (2):\\n agility plugin: add trap obstacle overlay\\n overlayutil: reset stroke for renderpolygon\\n\\nJordan Atwood (4):\\n Fix wording/locations of kill x elite cryptic clues (#2628)\\n Fix Warrior's guild emote clue\\n Use British floor numbering in cipher clues\\n Fix Gypsy Aris cryptic clue\\n\\nKamiel (1):\\n fix: Hide vanilla raid points box when inside chambers of xeric\\n\\nKruithne (1):\\n Implement Skill Calculator plug-in\\n\\nLars Ørnlo (1):\\n Motherlode Mine - Region check on plugin startup\\n\\nMax Weber (10):\\n http-api: print a more helpful error message when resources are not filtered\\n Make VarbitChanged only fire once, after everything has settled\\n runelite-api: Annotate Perspective methods with `@Nonnull`\\n groundmarkers: Fix NPE in drawTile\\n kourendlibrary: Fix for rev 170 menu code\\n runelite-api: Update ID files\\n cache: Strip tags from java names\\n Rename varcs > varCInts\\n Rename varcstrings > varCStrings\\n Revert #2530 "Make VarbitChanged only fire once..."\\n\\nMorgan Lewis (2):\\n Fix world map overlay to draw pixel perfect on the World Map\\n Add tooltip and custom icon to World Map fairy ring destinations\\n\\nReasel (1):\\n runelite-client: add tooltip font type dropdown\\n\\nSebastiaan Holthuis (1):\\n Add " fps" after the number of FPS\\n\\nShuhao Wu (1):\\n Fix "Clap in the magic axe" master clue. (#2685)\\n\\nTomas Slusny (13):\\n Improve ProgressBarComponent to support %/FULL\\n Update opponent info to use PanelComponent\\n Add ItemLayer height to GroundItems overlay\\n Fix World Map widget check in Hooks.java\\n Reset Fight Cave plugin prayer background color\\n Merge clearMapPoint with resetClue\\n Improve performance of ClueScrollWorldMapPoint\\n Move Hot/Cold message logic to HotColdClue\\n Add support for map for hot/cold clues\\n Do not floor percentage in progress bars\\n Fix updating of Hot/Cold clue\\n Reset clue overlay preferred size each render\\n Calculate child preferred size based on max size\\n\\nTzZek (1):\\n Add Elf Area Obstacles\\n\\nUnknown (1):\\n Add Overlay for Silver Jewelry to Slayer Plugin\\n\\npettenge (1):\\n hiscore plugin: autocomplete name lookup based on friends, clan members, and players\\n\\ntrimbe (1):\\n Fix hot cold location south of gnome stronghold\\n\\nypperlig (1):\\n Clear previous image components in fight caves overlay\\n
\\n\",\"image\":\"/img/blog/1.3.9-Release/hotcold.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-18-00-00-1.3.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,0EAA0E,OAAS,OAAO,KAAO,qnMAAgpM,MAAQ","file":"static/js/43.2da9e0a2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.3.9 Release\",\"description\":\"Hot/cold world map improvements, skill calculator, and anti-drag plugin\",\"author\":\"Adam\",\"body\":\"I have been given the go ahead to continue on with RuneLite development by MMK,\\nso here is release 1.3.9.
\\nI have had to move most of my tools to be internal to\\nthe project, and it is taking some time. We will probably be able to begin\\naccepting PRs again in full force sometime this weekend.
\\nHot/cold clue locations are now shown on the world map, and fairy ring teleport\\nicons now have a tooltip showing the fairy ring code. Contributed by\\n@deathbeam and\\n@MESLewis respectively.
\\n
\\n@Kruithne has added a skill calculator plugin.
\\n
\\nAn anti-drag plugin has been added from\\n@devdennis . It lets you configure the "drag\\ndelay" which can help prevent you from dragging items you meant to click on.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe opponent info plugin now displays approximate players hitpoints instead of\\na percentage \\nShow GE and high alch prices on shop items when examined \\nMade existing config option for higlighting marks of grace also affect overlay\\ncolor \\nAdd trap obstacles to agility plugin \\nFix motherlode mine plugin when it is enabled when inside of the mine \\nMitigate a rare crash in the official client at certain areas ingame \\nAdd a tooltip font type configuration option \\nAuto complete hiscore lookups based on friends, clan members, and players \\n \\nAlso thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\\nclue fixes.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 22 contributors this release!
\\nAdam (20):\\n agility plugin: use immutableset\\n slayer plugin: move widget inventory check to game tick\\n runelite-api: expose friends\\n runelite-mixins: fix setting menu preventing menu add event from being fired\\n friend notes plugin: only add menu entry after "Message"\\n agility plugin: fix exception if obstacle is off screen\\n runelite-api: add getWorldType()\\n runelite-client: add hiscore manager\\n opponent info: use player hitpoints from hiscores\\n item controller: don't return duplicate items in bulk lookup\\n http-service: optimize bulk item price lookup\\n http-service: lombok item api\\n item manager: cache no price when unable to batch lookup\\n injector: support field hooks prior to field being changed\\n runelite-mixins: fire npc despawn event before composition is nulled\\n runelite-mixins: wrap drawTileUnderlay in try/catch\\n Revert "fix: Hide vanilla raid points box when inside chambers of xeric"\\n speccounter plugin: fix kalphite queen spelling\\n Update pom and README to reflect changes to project structure\\n Remove distribution management\\n\\nAlex Kolpa (2):\\n Fix typo cryptic clue\\n Check player position on state change\\n\\nDennis (1):\\n runelite-client: add anti drag plugin\\n\\nDimitris Karittevlis (1):\\n shows ge and high alch prices for shop items that are examined\\n\\nHSJ-OSRS (1):\\n Make existing config options for highlighting marks of grace also affect the overlay color\\n\\nHashes (1):\\n Fix ProgressBar percentage displaying (#2609)\\n\\nJeremy Plsek (2):\\n agility plugin: add trap obstacle overlay\\n overlayutil: reset stroke for renderpolygon\\n\\nJordan Atwood (4):\\n Fix wording/locations of kill x elite cryptic clues (#2628)\\n Fix Warrior's guild emote clue\\n Use British floor numbering in cipher clues\\n Fix Gypsy Aris cryptic clue\\n\\nKamiel (1):\\n fix: Hide vanilla raid points box when inside chambers of xeric\\n\\nKruithne (1):\\n Implement Skill Calculator plug-in\\n\\nLars Ørnlo (1):\\n Motherlode Mine - Region check on plugin startup\\n\\nMax Weber (10):\\n http-api: print a more helpful error message when resources are not filtered\\n Make VarbitChanged only fire once, after everything has settled\\n runelite-api: Annotate Perspective methods with `@Nonnull`\\n groundmarkers: Fix NPE in drawTile\\n kourendlibrary: Fix for rev 170 menu code\\n runelite-api: Update ID files\\n cache: Strip tags from java names\\n Rename varcs > varCInts\\n Rename varcstrings > varCStrings\\n Revert #2530 "Make VarbitChanged only fire once..."\\n\\nMorgan Lewis (2):\\n Fix world map overlay to draw pixel perfect on the World Map\\n Add tooltip and custom icon to World Map fairy ring destinations\\n\\nReasel (1):\\n runelite-client: add tooltip font type dropdown\\n\\nSebastiaan Holthuis (1):\\n Add " fps" after the number of FPS\\n\\nShuhao Wu (1):\\n Fix "Clap in the magic axe" master clue. (#2685)\\n\\nTomas Slusny (13):\\n Improve ProgressBarComponent to support %/FULL\\n Update opponent info to use PanelComponent\\n Add ItemLayer height to GroundItems overlay\\n Fix World Map widget check in Hooks.java\\n Reset Fight Cave plugin prayer background color\\n Merge clearMapPoint with resetClue\\n Improve performance of ClueScrollWorldMapPoint\\n Move Hot/Cold message logic to HotColdClue\\n Add support for map for hot/cold clues\\n Do not floor percentage in progress bars\\n Fix updating of Hot/Cold clue\\n Reset clue overlay preferred size each render\\n Calculate child preferred size based on max size\\n\\nTzZek (1):\\n Add Elf Area Obstacles\\n\\nUnknown (1):\\n Add Overlay for Silver Jewelry to Slayer Plugin\\n\\npettenge (1):\\n hiscore plugin: autocomplete name lookup based on friends, clan members, and players\\n\\ntrimbe (1):\\n Fix hot cold location south of gnome stronghold\\n\\nypperlig (1):\\n Clear previous image components in fight caves overlay\\n
\\n\",\"image\":\"/img/blog/1.3.9-Release/hotcold.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/44.e67021d4.chunk.js b/static/js/44.531fa158.chunk.js
similarity index 98%
rename from static/js/44.e67021d4.chunk.js
rename to static/js/44.531fa158.chunk.js
index 22571b898..11fb879f1 100644
--- a/static/js/44.e67021d4.chunk.js
+++ b/static/js/44.531fa158.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[44],{319:function(e,n){e.exports={title:"1.4.0 Release",description:"Obsidian theme, 05/10 interface styles, and screen markers",author:"Adam",body:'The new Obsidian theme has been released, which re-skins the client UI and most\nof the plugin panel intefaces. Thanks to @psikoi \nwho has been working on this for the last month.
\n
\n
\n
\n
\nAn interface style plugin was added to allow switching the 2005 or 2010 game\nframes.
\n
\n
\nA screenmarker plugin was added to mark areas on the screen.
\n
\nSupport for level goals has been added, that loads the XP/level goals from the\nVanilla goals interface and displays it in XP tracker.
\n
\nThe world map plugin now shows all teleport locations, and detailed requirements\nfor all agility obstacles.
\n
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix agility plugin to not show obstacles in Vespula\'s raid room \nFix impling plugin incorrectly showing imps after a world hop (1.3.9.1) \nAdd Corsair Cove fishing spots to fishing plugin \nAdd Gu\'Tanoth bridge obstacles to agility plugin \nImprove performance of stretched fixed mode by utilizing volatile images \nCheck inventory for required emote clue items too \nAdd gem rocks to mining calculator \nFix plugin toolbar tooltips \nFix low detail mode sometimes causing game sounds to not load \nChange the anti-drag plugin to only work with shift held \nFix slayer bracelet charges not updating when there is only one charge left \nAdd commas to ground item quantities \nAdd Burgh de Rott fishing spots to fishing plugin \nFix bounds for west bookcases in the Kourend Library (1.3.9.1) \nAdd teak garden bench to construction calculator \nA notification and timer were added to the agility plugin for the agility\narena \nXP boosts for bones have been corrected in the skill calculator \nFarming, fishing, herblore, and hunter have been expanded on in the skill\ncalculator \n \nAdditionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\nAtwood.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAbex (1):\n interfacestyles: Run on game thread (#3129)\n\nAdam (21):\n Update substance to 8.0.02\n Bump to 1.4.0-SNAPSHOT\n runescape-api: add sprite related imports for interface style plugin\n runelite-api: add sprite override api\n runelite-api: add widget positioned event\n Add interface styles plugin\n runelite-client: fix usage of npc despawn event\n agility plugin: limit obstacles to agility pyramid regions\n modelviewer: begin work on tile shapes\n Revert "Delay setting of low detail mode"\n low detail plugin: apply low detail on startup if on login screen\n runelite-mixins: fix hasHintArrow\n runelite-api: expand hint arrow api\n Revert "Fix early stop of player lookup in HiScores (#3035)"\n hiscore panel: wrap lookup in a runnable exception logger\n hiscore panel: clear tooltips when clearing levels\n hiscore panel: pass result to detailsHtml and remove reduncant null check\n hiscore panel: remove duplicate getExperience\n runelite-client: add detached overlay position\n runelite-client: add screen markers plugin\n screen marker panel: fix toggling hide/show\n\nAlex Kolpa (5):\n Clear plugin skill tracking on reset\n Add agility arena notifier\n Add agility arena timer\n Don\'t show experience progress for unranked skills\n Change AgilityArenaTimer contact to GitHub account (#3121)\n\nJoel (1):\n Add missing Corsair Cove fishing spots (#3096)\n\nJordan Atwood (2):\n Add puzzle box indicator to Drunken Dwarf clue\n Add Gu\'Tanoth bridge obstacles\n\nJouni Pikkarainen (1):\n Fixed typo in a cryptic clue solution\n\nLevi Schuck (2):\n Fix til next level time for low xp amounts\n Switch to safer division method without floats Use custom formatter since LocalTime.toString rolls over the amount of days.\n\nLotto (5):\n entityhider: don\'t hide npcs by default\n client: use Image instead of BufferedImage\n stretchedfixedmode: use volatile image instead of buffered image\n emoteclues: change symbols to \u2713 and \u2717\n emoteclues: display when item is in inventory\n\nMagic fTail (2):\n Fix edgeville monastery emote clue scroll (#2909)\n Add missing Port Sarim and Ape Toll fishing spots (#2837)\n\nMax Weber (5):\n Cleanup FarmingTracker panels\n Add VarC events\n Allow get/setVarbitValue to operate on arbitrary varp sets\n devtools: Replace Var tracker with Var Inspector\n varinspector: Lazily initialize var arrays\n\nMorgan Lewis (4):\n WorldMap: Add teleport destinations for spells and jewellery\n WorldMapPointManager: Fix concurrent modification exception\n WorldMap: Add agility shortcut level requirements\n WorldMap: Fix jewellery item name loading bugs\n\nRheon-D (1):\n Fix friend note not displaying due to color tags\n\nRuben (3):\n Restore Plugin Toolbar Button Tooltips (#2833)\n Add Gem rocks to mining calculator plugin (#2907)\n Add mouse hover changes to various ui elements\n\nRuben Amendoeira (22):\n Restyled the client frame\n Added custom components + moved/rewrote some\n Grand Exchange Plugin redesign\n Hiscore Plugin redesign\n Kourend Library Plugin slight design tweak\n News Feed Plugin slight design tweak\n Notes Plugin slight design tweak\n Configs slight design tweak\n Exp trackers plugin redesign\n Info panel redesign\n Farming plugin panel redesign\n Plugin side toolbar design tweak\n Skilling Calculators Plugin design tweak\n SetOpaque performance fix\n Fix Config search bar focus\n Moved the new text selection colors globally\n Removed unused styling on JComboBox\n Fixed exp tracker pop-up in the progress bar\n Recolour config names to white\n Expanded SkillIconManager to include smaller versions\n Added/Changed custom UI components\n Skill Calc plugin redesign\n\nSeth (1):\n impling plugin: fix impling list not clearing on hopping worlds\n\nSoyChai (1):\n Friend notes plugin: Add documentation and increase code readability (#2714)\n\nTomas Slusny (7):\n Delay setting of low detail mode\n Change Anti-Drag plugin to work only with SHIFT\n Fix access levels in XpStateSingle\n Add Varps for player experience goals\n Add support for player experience goals to tracker\n Add support for preferredSize to OverlayRenderer\n Change ScreenMarkers to use OverlayRenderer\n\nUnknown (1):\n Change string to match for slayer bracelet\n\nWilliam Metcalf (1):\n Add commas to ground item quantities\n\nWooxSolo (1):\n Add RSTileMixin.getGroundItems and RSNPCMixin.getTransformedComposition\n\nXavier Bergeron (1):\n Fix early stop of player lookup in HiScores (#3035)\n\nraqes (1):\n Fix 2005 interface container alignment, add scrollbar and spellbooks\n\nshmeeps (1):\n Add Burgh de Rott fishing spots to fishing overlays (#3132)\n\ntrimbe (1):\n Fix bounds for west bookcases in Kourend library (#2875)\n\nuser35557 (1):\n Clue Scrolls: fix dark warrior fortress clue coordinates (#3083)\n\nwa1id (1):\n Add teak garden bench to construction calculator.\n
\n',image:"/img/blog/1.4.0-Release/obsidian1.png"}}}]);
-//# sourceMappingURL=44.e67021d4.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[44],{320:function(e,n){e.exports={title:"1.4.0 Release",description:"Obsidian theme, 05/10 interface styles, and screen markers",author:"Adam",body:'The new Obsidian theme has been released, which re-skins the client UI and most\nof the plugin panel intefaces. Thanks to @psikoi \nwho has been working on this for the last month.
\n
\n
\n
\n
\nAn interface style plugin was added to allow switching the 2005 or 2010 game\nframes.
\n
\n
\nA screenmarker plugin was added to mark areas on the screen.
\n
\nSupport for level goals has been added, that loads the XP/level goals from the\nVanilla goals interface and displays it in XP tracker.
\n
\nThe world map plugin now shows all teleport locations, and detailed requirements\nfor all agility obstacles.
\n
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix agility plugin to not show obstacles in Vespula\'s raid room \nFix impling plugin incorrectly showing imps after a world hop (1.3.9.1) \nAdd Corsair Cove fishing spots to fishing plugin \nAdd Gu\'Tanoth bridge obstacles to agility plugin \nImprove performance of stretched fixed mode by utilizing volatile images \nCheck inventory for required emote clue items too \nAdd gem rocks to mining calculator \nFix plugin toolbar tooltips \nFix low detail mode sometimes causing game sounds to not load \nChange the anti-drag plugin to only work with shift held \nFix slayer bracelet charges not updating when there is only one charge left \nAdd commas to ground item quantities \nAdd Burgh de Rott fishing spots to fishing plugin \nFix bounds for west bookcases in the Kourend Library (1.3.9.1) \nAdd teak garden bench to construction calculator \nA notification and timer were added to the agility plugin for the agility\narena \nXP boosts for bones have been corrected in the skill calculator \nFarming, fishing, herblore, and hunter have been expanded on in the skill\ncalculator \n \nAdditionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\nAtwood.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAbex (1):\n interfacestyles: Run on game thread (#3129)\n\nAdam (21):\n Update substance to 8.0.02\n Bump to 1.4.0-SNAPSHOT\n runescape-api: add sprite related imports for interface style plugin\n runelite-api: add sprite override api\n runelite-api: add widget positioned event\n Add interface styles plugin\n runelite-client: fix usage of npc despawn event\n agility plugin: limit obstacles to agility pyramid regions\n modelviewer: begin work on tile shapes\n Revert "Delay setting of low detail mode"\n low detail plugin: apply low detail on startup if on login screen\n runelite-mixins: fix hasHintArrow\n runelite-api: expand hint arrow api\n Revert "Fix early stop of player lookup in HiScores (#3035)"\n hiscore panel: wrap lookup in a runnable exception logger\n hiscore panel: clear tooltips when clearing levels\n hiscore panel: pass result to detailsHtml and remove reduncant null check\n hiscore panel: remove duplicate getExperience\n runelite-client: add detached overlay position\n runelite-client: add screen markers plugin\n screen marker panel: fix toggling hide/show\n\nAlex Kolpa (5):\n Clear plugin skill tracking on reset\n Add agility arena notifier\n Add agility arena timer\n Don\'t show experience progress for unranked skills\n Change AgilityArenaTimer contact to GitHub account (#3121)\n\nJoel (1):\n Add missing Corsair Cove fishing spots (#3096)\n\nJordan Atwood (2):\n Add puzzle box indicator to Drunken Dwarf clue\n Add Gu\'Tanoth bridge obstacles\n\nJouni Pikkarainen (1):\n Fixed typo in a cryptic clue solution\n\nLevi Schuck (2):\n Fix til next level time for low xp amounts\n Switch to safer division method without floats Use custom formatter since LocalTime.toString rolls over the amount of days.\n\nLotto (5):\n entityhider: don\'t hide npcs by default\n client: use Image instead of BufferedImage\n stretchedfixedmode: use volatile image instead of buffered image\n emoteclues: change symbols to \u2713 and \u2717\n emoteclues: display when item is in inventory\n\nMagic fTail (2):\n Fix edgeville monastery emote clue scroll (#2909)\n Add missing Port Sarim and Ape Toll fishing spots (#2837)\n\nMax Weber (5):\n Cleanup FarmingTracker panels\n Add VarC events\n Allow get/setVarbitValue to operate on arbitrary varp sets\n devtools: Replace Var tracker with Var Inspector\n varinspector: Lazily initialize var arrays\n\nMorgan Lewis (4):\n WorldMap: Add teleport destinations for spells and jewellery\n WorldMapPointManager: Fix concurrent modification exception\n WorldMap: Add agility shortcut level requirements\n WorldMap: Fix jewellery item name loading bugs\n\nRheon-D (1):\n Fix friend note not displaying due to color tags\n\nRuben (3):\n Restore Plugin Toolbar Button Tooltips (#2833)\n Add Gem rocks to mining calculator plugin (#2907)\n Add mouse hover changes to various ui elements\n\nRuben Amendoeira (22):\n Restyled the client frame\n Added custom components + moved/rewrote some\n Grand Exchange Plugin redesign\n Hiscore Plugin redesign\n Kourend Library Plugin slight design tweak\n News Feed Plugin slight design tweak\n Notes Plugin slight design tweak\n Configs slight design tweak\n Exp trackers plugin redesign\n Info panel redesign\n Farming plugin panel redesign\n Plugin side toolbar design tweak\n Skilling Calculators Plugin design tweak\n SetOpaque performance fix\n Fix Config search bar focus\n Moved the new text selection colors globally\n Removed unused styling on JComboBox\n Fixed exp tracker pop-up in the progress bar\n Recolour config names to white\n Expanded SkillIconManager to include smaller versions\n Added/Changed custom UI components\n Skill Calc plugin redesign\n\nSeth (1):\n impling plugin: fix impling list not clearing on hopping worlds\n\nSoyChai (1):\n Friend notes plugin: Add documentation and increase code readability (#2714)\n\nTomas Slusny (7):\n Delay setting of low detail mode\n Change Anti-Drag plugin to work only with SHIFT\n Fix access levels in XpStateSingle\n Add Varps for player experience goals\n Add support for player experience goals to tracker\n Add support for preferredSize to OverlayRenderer\n Change ScreenMarkers to use OverlayRenderer\n\nUnknown (1):\n Change string to match for slayer bracelet\n\nWilliam Metcalf (1):\n Add commas to ground item quantities\n\nWooxSolo (1):\n Add RSTileMixin.getGroundItems and RSNPCMixin.getTransformedComposition\n\nXavier Bergeron (1):\n Fix early stop of player lookup in HiScores (#3035)\n\nraqes (1):\n Fix 2005 interface container alignment, add scrollbar and spellbooks\n\nshmeeps (1):\n Add Burgh de Rott fishing spots to fishing overlays (#3132)\n\ntrimbe (1):\n Fix bounds for west bookcases in Kourend library (#2875)\n\nuser35557 (1):\n Clue Scrolls: fix dark warrior fortress clue coordinates (#3083)\n\nwa1id (1):\n Add teak garden bench to construction calculator.\n
\n',image:"/img/blog/1.4.0-Release/obsidian1.png"}}}]);
+//# sourceMappingURL=44.531fa158.chunk.js.map
\ No newline at end of file
diff --git a/static/js/44.e67021d4.chunk.js.map b/static/js/44.531fa158.chunk.js.map
similarity index 99%
rename from static/js/44.e67021d4.chunk.js.map
rename to static/js/44.531fa158.chunk.js.map
index 76b6ca5ff..861398b09 100644
--- a/static/js/44.e67021d4.chunk.js.map
+++ b/static/js/44.531fa158.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-24-00-00-1.4.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,6DAA6D,OAAS,OAAO,KAAO,0jQAAylQ,MAAQ","file":"static/js/44.e67021d4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.0 Release\",\"description\":\"Obsidian theme, 05/10 interface styles, and screen markers\",\"author\":\"Adam\",\"body\":\"The new Obsidian theme has been released, which re-skins the client UI and most\\nof the plugin panel intefaces. Thanks to @psikoi \\nwho has been working on this for the last month.
\\n
\\n
\\n
\\n
\\nAn interface style plugin was added to allow switching the 2005 or 2010 game\\nframes.
\\n
\\n
\\nA screenmarker plugin was added to mark areas on the screen.
\\n
\\nSupport for level goals has been added, that loads the XP/level goals from the\\nVanilla goals interface and displays it in XP tracker.
\\n
\\nThe world map plugin now shows all teleport locations, and detailed requirements\\nfor all agility obstacles.
\\n
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix agility plugin to not show obstacles in Vespula's raid room \\nFix impling plugin incorrectly showing imps after a world hop (1.3.9.1) \\nAdd Corsair Cove fishing spots to fishing plugin \\nAdd Gu'Tanoth bridge obstacles to agility plugin \\nImprove performance of stretched fixed mode by utilizing volatile images \\nCheck inventory for required emote clue items too \\nAdd gem rocks to mining calculator \\nFix plugin toolbar tooltips \\nFix low detail mode sometimes causing game sounds to not load \\nChange the anti-drag plugin to only work with shift held \\nFix slayer bracelet charges not updating when there is only one charge left \\nAdd commas to ground item quantities \\nAdd Burgh de Rott fishing spots to fishing plugin \\nFix bounds for west bookcases in the Kourend Library (1.3.9.1) \\nAdd teak garden bench to construction calculator \\nA notification and timer were added to the agility plugin for the agility\\narena \\nXP boosts for bones have been corrected in the skill calculator \\nFarming, fishing, herblore, and hunter have been expanded on in the skill\\ncalculator \\n \\nAdditionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\\nAtwood.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAbex (1):\\n interfacestyles: Run on game thread (#3129)\\n\\nAdam (21):\\n Update substance to 8.0.02\\n Bump to 1.4.0-SNAPSHOT\\n runescape-api: add sprite related imports for interface style plugin\\n runelite-api: add sprite override api\\n runelite-api: add widget positioned event\\n Add interface styles plugin\\n runelite-client: fix usage of npc despawn event\\n agility plugin: limit obstacles to agility pyramid regions\\n modelviewer: begin work on tile shapes\\n Revert "Delay setting of low detail mode"\\n low detail plugin: apply low detail on startup if on login screen\\n runelite-mixins: fix hasHintArrow\\n runelite-api: expand hint arrow api\\n Revert "Fix early stop of player lookup in HiScores (#3035)"\\n hiscore panel: wrap lookup in a runnable exception logger\\n hiscore panel: clear tooltips when clearing levels\\n hiscore panel: pass result to detailsHtml and remove reduncant null check\\n hiscore panel: remove duplicate getExperience\\n runelite-client: add detached overlay position\\n runelite-client: add screen markers plugin\\n screen marker panel: fix toggling hide/show\\n\\nAlex Kolpa (5):\\n Clear plugin skill tracking on reset\\n Add agility arena notifier\\n Add agility arena timer\\n Don't show experience progress for unranked skills\\n Change AgilityArenaTimer contact to GitHub account (#3121)\\n\\nJoel (1):\\n Add missing Corsair Cove fishing spots (#3096)\\n\\nJordan Atwood (2):\\n Add puzzle box indicator to Drunken Dwarf clue\\n Add Gu'Tanoth bridge obstacles\\n\\nJouni Pikkarainen (1):\\n Fixed typo in a cryptic clue solution\\n\\nLevi Schuck (2):\\n Fix til next level time for low xp amounts\\n Switch to safer division method without floats Use custom formatter since LocalTime.toString rolls over the amount of days.\\n\\nLotto (5):\\n entityhider: don't hide npcs by default\\n client: use Image instead of BufferedImage\\n stretchedfixedmode: use volatile image instead of buffered image\\n emoteclues: change symbols to ✓ and ✗\\n emoteclues: display when item is in inventory\\n\\nMagic fTail (2):\\n Fix edgeville monastery emote clue scroll (#2909)\\n Add missing Port Sarim and Ape Toll fishing spots (#2837)\\n\\nMax Weber (5):\\n Cleanup FarmingTracker panels\\n Add VarC events\\n Allow get/setVarbitValue to operate on arbitrary varp sets\\n devtools: Replace Var tracker with Var Inspector\\n varinspector: Lazily initialize var arrays\\n\\nMorgan Lewis (4):\\n WorldMap: Add teleport destinations for spells and jewellery\\n WorldMapPointManager: Fix concurrent modification exception\\n WorldMap: Add agility shortcut level requirements\\n WorldMap: Fix jewellery item name loading bugs\\n\\nRheon-D (1):\\n Fix friend note not displaying due to color tags\\n\\nRuben (3):\\n Restore Plugin Toolbar Button Tooltips (#2833)\\n Add Gem rocks to mining calculator plugin (#2907)\\n Add mouse hover changes to various ui elements\\n\\nRuben Amendoeira (22):\\n Restyled the client frame\\n Added custom components + moved/rewrote some\\n Grand Exchange Plugin redesign\\n Hiscore Plugin redesign\\n Kourend Library Plugin slight design tweak\\n News Feed Plugin slight design tweak\\n Notes Plugin slight design tweak\\n Configs slight design tweak\\n Exp trackers plugin redesign\\n Info panel redesign\\n Farming plugin panel redesign\\n Plugin side toolbar design tweak\\n Skilling Calculators Plugin design tweak\\n SetOpaque performance fix\\n Fix Config search bar focus\\n Moved the new text selection colors globally\\n Removed unused styling on JComboBox\\n Fixed exp tracker pop-up in the progress bar\\n Recolour config names to white\\n Expanded SkillIconManager to include smaller versions\\n Added/Changed custom UI components\\n Skill Calc plugin redesign\\n\\nSeth (1):\\n impling plugin: fix impling list not clearing on hopping worlds\\n\\nSoyChai (1):\\n Friend notes plugin: Add documentation and increase code readability (#2714)\\n\\nTomas Slusny (7):\\n Delay setting of low detail mode\\n Change Anti-Drag plugin to work only with SHIFT\\n Fix access levels in XpStateSingle\\n Add Varps for player experience goals\\n Add support for player experience goals to tracker\\n Add support for preferredSize to OverlayRenderer\\n Change ScreenMarkers to use OverlayRenderer\\n\\nUnknown (1):\\n Change string to match for slayer bracelet\\n\\nWilliam Metcalf (1):\\n Add commas to ground item quantities\\n\\nWooxSolo (1):\\n Add RSTileMixin.getGroundItems and RSNPCMixin.getTransformedComposition\\n\\nXavier Bergeron (1):\\n Fix early stop of player lookup in HiScores (#3035)\\n\\nraqes (1):\\n Fix 2005 interface container alignment, add scrollbar and spellbooks\\n\\nshmeeps (1):\\n Add Burgh de Rott fishing spots to fishing overlays (#3132)\\n\\ntrimbe (1):\\n Fix bounds for west bookcases in Kourend library (#2875)\\n\\nuser35557 (1):\\n Clue Scrolls: fix dark warrior fortress clue coordinates (#3083)\\n\\nwa1id (1):\\n Add teak garden bench to construction calculator.\\n
\\n\",\"image\":\"/img/blog/1.4.0-Release/obsidian1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-24-00-00-1.4.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,6DAA6D,OAAS,OAAO,KAAO,0jQAAylQ,MAAQ","file":"static/js/44.531fa158.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.0 Release\",\"description\":\"Obsidian theme, 05/10 interface styles, and screen markers\",\"author\":\"Adam\",\"body\":\"The new Obsidian theme has been released, which re-skins the client UI and most\\nof the plugin panel intefaces. Thanks to @psikoi \\nwho has been working on this for the last month.
\\n
\\n
\\n
\\n
\\nAn interface style plugin was added to allow switching the 2005 or 2010 game\\nframes.
\\n
\\n
\\nA screenmarker plugin was added to mark areas on the screen.
\\n
\\nSupport for level goals has been added, that loads the XP/level goals from the\\nVanilla goals interface and displays it in XP tracker.
\\n
\\nThe world map plugin now shows all teleport locations, and detailed requirements\\nfor all agility obstacles.
\\n
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix agility plugin to not show obstacles in Vespula's raid room \\nFix impling plugin incorrectly showing imps after a world hop (1.3.9.1) \\nAdd Corsair Cove fishing spots to fishing plugin \\nAdd Gu'Tanoth bridge obstacles to agility plugin \\nImprove performance of stretched fixed mode by utilizing volatile images \\nCheck inventory for required emote clue items too \\nAdd gem rocks to mining calculator \\nFix plugin toolbar tooltips \\nFix low detail mode sometimes causing game sounds to not load \\nChange the anti-drag plugin to only work with shift held \\nFix slayer bracelet charges not updating when there is only one charge left \\nAdd commas to ground item quantities \\nAdd Burgh de Rott fishing spots to fishing plugin \\nFix bounds for west bookcases in the Kourend Library (1.3.9.1) \\nAdd teak garden bench to construction calculator \\nA notification and timer were added to the agility plugin for the agility\\narena \\nXP boosts for bones have been corrected in the skill calculator \\nFarming, fishing, herblore, and hunter have been expanded on in the skill\\ncalculator \\n \\nAdditionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\\nAtwood.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAbex (1):\\n interfacestyles: Run on game thread (#3129)\\n\\nAdam (21):\\n Update substance to 8.0.02\\n Bump to 1.4.0-SNAPSHOT\\n runescape-api: add sprite related imports for interface style plugin\\n runelite-api: add sprite override api\\n runelite-api: add widget positioned event\\n Add interface styles plugin\\n runelite-client: fix usage of npc despawn event\\n agility plugin: limit obstacles to agility pyramid regions\\n modelviewer: begin work on tile shapes\\n Revert "Delay setting of low detail mode"\\n low detail plugin: apply low detail on startup if on login screen\\n runelite-mixins: fix hasHintArrow\\n runelite-api: expand hint arrow api\\n Revert "Fix early stop of player lookup in HiScores (#3035)"\\n hiscore panel: wrap lookup in a runnable exception logger\\n hiscore panel: clear tooltips when clearing levels\\n hiscore panel: pass result to detailsHtml and remove reduncant null check\\n hiscore panel: remove duplicate getExperience\\n runelite-client: add detached overlay position\\n runelite-client: add screen markers plugin\\n screen marker panel: fix toggling hide/show\\n\\nAlex Kolpa (5):\\n Clear plugin skill tracking on reset\\n Add agility arena notifier\\n Add agility arena timer\\n Don't show experience progress for unranked skills\\n Change AgilityArenaTimer contact to GitHub account (#3121)\\n\\nJoel (1):\\n Add missing Corsair Cove fishing spots (#3096)\\n\\nJordan Atwood (2):\\n Add puzzle box indicator to Drunken Dwarf clue\\n Add Gu'Tanoth bridge obstacles\\n\\nJouni Pikkarainen (1):\\n Fixed typo in a cryptic clue solution\\n\\nLevi Schuck (2):\\n Fix til next level time for low xp amounts\\n Switch to safer division method without floats Use custom formatter since LocalTime.toString rolls over the amount of days.\\n\\nLotto (5):\\n entityhider: don't hide npcs by default\\n client: use Image instead of BufferedImage\\n stretchedfixedmode: use volatile image instead of buffered image\\n emoteclues: change symbols to ✓ and ✗\\n emoteclues: display when item is in inventory\\n\\nMagic fTail (2):\\n Fix edgeville monastery emote clue scroll (#2909)\\n Add missing Port Sarim and Ape Toll fishing spots (#2837)\\n\\nMax Weber (5):\\n Cleanup FarmingTracker panels\\n Add VarC events\\n Allow get/setVarbitValue to operate on arbitrary varp sets\\n devtools: Replace Var tracker with Var Inspector\\n varinspector: Lazily initialize var arrays\\n\\nMorgan Lewis (4):\\n WorldMap: Add teleport destinations for spells and jewellery\\n WorldMapPointManager: Fix concurrent modification exception\\n WorldMap: Add agility shortcut level requirements\\n WorldMap: Fix jewellery item name loading bugs\\n\\nRheon-D (1):\\n Fix friend note not displaying due to color tags\\n\\nRuben (3):\\n Restore Plugin Toolbar Button Tooltips (#2833)\\n Add Gem rocks to mining calculator plugin (#2907)\\n Add mouse hover changes to various ui elements\\n\\nRuben Amendoeira (22):\\n Restyled the client frame\\n Added custom components + moved/rewrote some\\n Grand Exchange Plugin redesign\\n Hiscore Plugin redesign\\n Kourend Library Plugin slight design tweak\\n News Feed Plugin slight design tweak\\n Notes Plugin slight design tweak\\n Configs slight design tweak\\n Exp trackers plugin redesign\\n Info panel redesign\\n Farming plugin panel redesign\\n Plugin side toolbar design tweak\\n Skilling Calculators Plugin design tweak\\n SetOpaque performance fix\\n Fix Config search bar focus\\n Moved the new text selection colors globally\\n Removed unused styling on JComboBox\\n Fixed exp tracker pop-up in the progress bar\\n Recolour config names to white\\n Expanded SkillIconManager to include smaller versions\\n Added/Changed custom UI components\\n Skill Calc plugin redesign\\n\\nSeth (1):\\n impling plugin: fix impling list not clearing on hopping worlds\\n\\nSoyChai (1):\\n Friend notes plugin: Add documentation and increase code readability (#2714)\\n\\nTomas Slusny (7):\\n Delay setting of low detail mode\\n Change Anti-Drag plugin to work only with SHIFT\\n Fix access levels in XpStateSingle\\n Add Varps for player experience goals\\n Add support for player experience goals to tracker\\n Add support for preferredSize to OverlayRenderer\\n Change ScreenMarkers to use OverlayRenderer\\n\\nUnknown (1):\\n Change string to match for slayer bracelet\\n\\nWilliam Metcalf (1):\\n Add commas to ground item quantities\\n\\nWooxSolo (1):\\n Add RSTileMixin.getGroundItems and RSNPCMixin.getTransformedComposition\\n\\nXavier Bergeron (1):\\n Fix early stop of player lookup in HiScores (#3035)\\n\\nraqes (1):\\n Fix 2005 interface container alignment, add scrollbar and spellbooks\\n\\nshmeeps (1):\\n Add Burgh de Rott fishing spots to fishing overlays (#3132)\\n\\ntrimbe (1):\\n Fix bounds for west bookcases in Kourend library (#2875)\\n\\nuser35557 (1):\\n Clue Scrolls: fix dark warrior fortress clue coordinates (#3083)\\n\\nwa1id (1):\\n Add teak garden bench to construction calculator.\\n
\\n\",\"image\":\"/img/blog/1.4.0-Release/obsidian1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/45.09873871.chunk.js b/static/js/45.cc95fa42.chunk.js
similarity index 87%
rename from static/js/45.09873871.chunk.js
rename to static/js/45.cc95fa42.chunk.js
index f93ea1c32..5643e59e9 100644
--- a/static/js/45.09873871.chunk.js
+++ b/static/js/45.cc95fa42.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[45],{320:function(e,n){e.exports={title:"Phishing attempts",description:"Phishing attempts",author:"Adam",body:"Lately there have been an increase in people advertising malicious websites\nimpersonating runelite.net, which will instead hack you. It looks like this has\nbeen mostly in Twitch chat.
\nThis is a reminder the only safe download is from runelite.net. The checksums\nfor the download are available from the official github, and the Windows binary\nis digitally signed by Alexander Henne.
\nI sent an abuse report to one of their providers, NameCheap, over 24 hours\nago... but it does not seem to be very effective. If anyone here happens to work\nat NameCheap NOC contact me.
\n- Adam
\n"}}}]);
-//# sourceMappingURL=45.09873871.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[45],{321:function(e,n){e.exports={title:"Phishing attempts",description:"Phishing attempts",author:"Adam",body:"Lately there have been an increase in people advertising malicious websites\nimpersonating runelite.net, which will instead hack you. It looks like this has\nbeen mostly in Twitch chat.
\nThis is a reminder the only safe download is from runelite.net. The checksums\nfor the download are available from the official github, and the Windows binary\nis digitally signed by Alexander Henne.
\nI sent an abuse report to one of their providers, NameCheap, over 24 hours\nago... but it does not seem to be very effective. If anyone here happens to work\nat NameCheap NOC contact me.
\n- Adam
\n"}}}]);
+//# sourceMappingURL=45.cc95fa42.chunk.js.map
\ No newline at end of file
diff --git a/static/js/45.09873871.chunk.js.map b/static/js/45.cc95fa42.chunk.js.map
similarity index 93%
rename from static/js/45.09873871.chunk.js.map
rename to static/js/45.cc95fa42.chunk.js.map
index c33c76145..020f63793 100644
--- a/static/js/45.09873871.chunk.js.map
+++ b/static/js/45.cc95fa42.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-25-23-00-Phishing-Attempts.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,oBAAoB,YAAc,oBAAoB,OAAS,OAAO,KAAO","file":"static/js/45.09873871.chunk.js","sourcesContent":["module.exports = {\"title\":\"Phishing attempts\",\"description\":\"Phishing attempts\",\"author\":\"Adam\",\"body\":\"Lately there have been an increase in people advertising malicious websites\\nimpersonating runelite.net, which will instead hack you. It looks like this has\\nbeen mostly in Twitch chat.
\\nThis is a reminder the only safe download is from runelite.net. The checksums\\nfor the download are available from the official github, and the Windows binary\\nis digitally signed by Alexander Henne.
\\nI sent an abuse report to one of their providers, NameCheap, over 24 hours\\nago... but it does not seem to be very effective. If anyone here happens to work\\nat NameCheap NOC contact me.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-25-23-00-Phishing-Attempts.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,oBAAoB,YAAc,oBAAoB,OAAS,OAAO,KAAO","file":"static/js/45.cc95fa42.chunk.js","sourcesContent":["module.exports = {\"title\":\"Phishing attempts\",\"description\":\"Phishing attempts\",\"author\":\"Adam\",\"body\":\"Lately there have been an increase in people advertising malicious websites\\nimpersonating runelite.net, which will instead hack you. It looks like this has\\nbeen mostly in Twitch chat.
\\nThis is a reminder the only safe download is from runelite.net. The checksums\\nfor the download are available from the official github, and the Windows binary\\nis digitally signed by Alexander Henne.
\\nI sent an abuse report to one of their providers, NameCheap, over 24 hours\\nago... but it does not seem to be very effective. If anyone here happens to work\\nat NameCheap NOC contact me.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/46.ef1721e9.chunk.js b/static/js/46.d3fffe47.chunk.js
similarity index 98%
rename from static/js/46.ef1721e9.chunk.js
rename to static/js/46.d3fffe47.chunk.js
index cdde4c036..a7546d959 100644
--- a/static/js/46.ef1721e9.chunk.js
+++ b/static/js/46.d3fffe47.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[46],{321:function(e,n){e.exports={title:"1.4.1 Release",description:"Chat recolor, redwood tree markers, and grand exchange notifications",author:"Adam",body:'First, lately there have been several targeted phishing attacks against\nRuneLite, including targeted ad buys on both Google and Reddit. If in doubt,\ncross reference the site with the official GitHub and Discord. The main tell is\nthe official Windows download is an executable digitally signed by Alexander\nHenne, and not a .jar. We can generally get these sites taken down, but it\nusually takes some time to do so.
\nNow for the update:
\nChat color for each chat type (public, private, clan, trade, etc.) are now\nconfigurable in the "Chat Colors" configuratrion.
\n
\nThe woodcutting plugin now can overlay redwood tree locations.
\n
\nThe grand exchange plugin can now notify you when something buys or sells.
\n
\nAlso a special thanks to @Matthew Steglinski who\ncontributed Javadoc for 155\nfiles in the API. This greatly\nimproves our published Javadoc .
\nScreen markers can now be assigned names, making it easy to save and reuse them\nlater without having to re-add and position them. Existing screen markers will\nneed to be deleted and readded.
\nFull screen mode was added and is toggleable in RuneLite settings.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix hiscore lookup autocomplete \nFix hiscore and GE lookups getting stuck when given invalid input \nImprove boss timer spawn timers by start them when the NPC despawns instead of\nat the beginning of the death animation \nAdd miscellaneous and scroll teleports to the world map plugin \nSkill calculator now turns actions that will become available before target\nlevel orange \nThe bank evaluator plugin now includes the price of untradeable items\ntradeable versions \nOptimize clickbox calculation code \nFix Vet\'ion boss timer and add KQ boss timer \nAdd option to swap "interact" with "empty" on birdhouses \nUpdate menu swapper to support multiple fairy ring defaults \nFix slayer plugin to work with NPC contact \nAdd Bandit Camp fishing spot to fishing plugin \nFix MLM plugin when it is started/stopped from within the MLM \nFix UI responsiveness when closing skill calculator \nAdd Limestone attack stone to skill calc \nReset gorillas in demonic gorilla plugin on startup and world hop \nAdd gilded altar to idle notifier \nAdd wine making to idle notifier \nAdd option to swap minecart menu option to travel from GE to Keldagrim \nAdd bar dispenser clickbox overlay to blast furnace plugin \nShow clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\nplugin \n \nAdditionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (30):\n pom: set updatePolicy always for runelite snapshots\n pom: remove tomcat deploy execution\n hiscore panel: properly error if result is null\n ge search panel: catch cache load exception from search returning null\n Revert "boss timers: improve accuracy of boss respawn timer"\n boss timers plugin: change to use npc despawn event\n agility plugin: fix exception on reconnect\n poh plugin: fix exception when tile for burner is not fully visible\n Remove actor death event, use despawn event instead\n woodcutting plugin: timeout woodcutting sessions\n woodcutting plugin: show redwood trees\n world map plugin: merge jewellery teleports and magic teleports\n world map plugin: add misc teleports\n skill calculator: lombok some of UIActionSlot\n skill calculator: turn indicators orange for actions that will become available before target\n screen marker overlay: stop if preferred size is null\n antidrag: reset drag when focus is lost\n runelite-client: add ItemMapping to map untradeable items to tradeable versions\n item manager: use item mapping\n item manager: cache unable to look up on unsuccessful bulk lookup too\n runelite-client: update bank calculation and barrows calculation to use item mapping\n runelite-api: optimize ChatMessageType.of()\n config manager: fix resetting configuration items with no default value\n config panel: allow color configs with no value\n runelite-client: add chat color config\n runelite-client: remove chat color config from plugins\n Revert "perspective: use viewport offset in get2DGeometry"\n perspective: use viewport offset for offsetting rectangle in get2DGeometry\n runelite-api: use lombok constructors for Vertex/Triangle\n perspective: optimize clickbox generation\n\nAlexsuperfly (3):\n boss timers: improve accuracy of boss respawn timer\n boss timers: fix Vet\'ion timer to start after 2nd phase death\n boss timers: add KQ to boss list\n\nBeefaloKing (1):\n Stretched Fixed Mode Plugin: Add Integer Scaling option (#2863)\n\nEadgars-Ruse (2):\n Change hot/cold overlay to only show outline of dig area (#3166)\n Fix coordinates for venenatis hot cold clue (#3212)\n\nEthan (5):\n Exclude ironmen from daily herb box notifications\n Add option to swap "interact" with "empty" on birdhouses\n Update menu swapper to support multiple fairy ring defaults\n Add teleport scroll locations to map\n Add notifications to Grand Exchange plugin\n\nHydrox6 (1):\n Fix items with no Grand Exchange Price using Store Price for the right click menu instead of High Alchemy value\n\nIguaan (2):\n slayer plugin: read bracelet charges directly from chat message\n slayerplugin: fix current task regex and new task via npc contact regex\n\nJeremy Plsek (1):\n enqueue most post/put/delete requests\n\nJordan Atwood (6):\n Allow imbued Ring of Wealth for emote clue (#3230)\n Fix location for West Ardougne emote clue (#3231)\n Fix Grand Tree mushrooms clue\n Improve Yanille anvil room map clue location\n Add Wilderness Bandit Camp fishing spot\n Fix Iban\'s Temple emote clue\n\nKelvin (1):\n Use single DynamicGridLayout for XPTracker stats (#3432)\n\nKruithne (1):\n skill calculator: allow XP values up to 200,000,000 rather than 188,884,740\n\nLars (3):\n Motherlode Mine - Startup / shutdown bugs (#3124)\n XpInfoBox - Remove min/max experience check (#3397)\n Use screenmarker name not ID for displaying it (#3423)\n\nMagic fTail (3):\n BossTimerPlugin: Find bosses based on id instead of name\n More accurate respawn timers\n MenuEntrySwapper: Reorder config items to alphabetical order\n\nMaiddog (1):\n Fix typo in Pyramid Plunder emote clue (#3419)\n\nMatthew Steglinski (6):\n runelite-api: Add missing documentation\n Fix ArrayIndexOutOfBoundsException when an empty command is typed\n devtools: Add camera position overlay\n devtools: Add base, local, and region coordinates to LocationOverlay\n grandexchange: Format \'Price each\' value for items in additional information layout\n Add local player death event\n\nMorgan Lewis (3):\n Clue Scroll Plugin: Add wording to direct users to world map\n Dev-tools: Add location overlay to show world map position\n Remove WorldMapOverlayTest Plugin\n\nRuben Amendoeira (6):\n Hiscore auto-complete fix\n Skill calcs performance improvement\n Refactor ClientUI using CardLayout\n Remove feed refresh button\n Add top margin to the XP tracker error panel (#3343)\n Add naming to screenmarkers\n\nSimon Landry (1):\n Add Boiler to Dorgesh-Kaan obstacles IDs (#3437)\n\nTomas Slusny (11):\n Unify NPC highlighting color settings\n Use NpcSpawned and despawned for getting cacheNpc\n Move private methods at bottom of NPC plugin\n Add support for fullscreen mode\n Change default PluginPanel layout to DynamicGrid\n Change config TextField to TextArea\n Move highlighted/hidden to top\n Store markers based on epoch millis\n Properly set preferredSize of navContainer\n Add Limestone attack stone to skill calc\n Update Lombok to 1.16.22\n\nTzZek (1):\n Add making wines to idle notifications (#3441)\n\nWooxSolo (1):\n Reset gorillas in demonic gorilla plugin on startup and world hop\n\ndrivfe (1):\n screen markers: fix for confirm dialog appearing behind main UI window\n\niguaan (3):\n idlenotifier: add support for gilded altar\n timers: use correct capitalisation for antifire in settings\n slayerplugin: fixed bracelet charge counter\n\niskarky (1):\n Swap menu entry for minecart travel from GE to Keldagrim\n\nshmeeps (2):\n Capitalize world map configuration names (#3301)\n Account for slightly different dimensions of first and second/third floors (#3249)\n\nypperlig (1):\n blast furance plugin: add bar dispenser to clickbox overlay\n
\n',image:"/img/blog/1.4.1-Release/chatcolors.png"}}}]);
-//# sourceMappingURL=46.ef1721e9.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[46],{322:function(e,n){e.exports={title:"1.4.1 Release",description:"Chat recolor, redwood tree markers, and grand exchange notifications",author:"Adam",body:'First, lately there have been several targeted phishing attacks against\nRuneLite, including targeted ad buys on both Google and Reddit. If in doubt,\ncross reference the site with the official GitHub and Discord. The main tell is\nthe official Windows download is an executable digitally signed by Alexander\nHenne, and not a .jar. We can generally get these sites taken down, but it\nusually takes some time to do so.
\nNow for the update:
\nChat color for each chat type (public, private, clan, trade, etc.) are now\nconfigurable in the "Chat Colors" configuratrion.
\n
\nThe woodcutting plugin now can overlay redwood tree locations.
\n
\nThe grand exchange plugin can now notify you when something buys or sells.
\n
\nAlso a special thanks to @Matthew Steglinski who\ncontributed Javadoc for 155\nfiles in the API. This greatly\nimproves our published Javadoc .
\nScreen markers can now be assigned names, making it easy to save and reuse them\nlater without having to re-add and position them. Existing screen markers will\nneed to be deleted and readded.
\nFull screen mode was added and is toggleable in RuneLite settings.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix hiscore lookup autocomplete \nFix hiscore and GE lookups getting stuck when given invalid input \nImprove boss timer spawn timers by start them when the NPC despawns instead of\nat the beginning of the death animation \nAdd miscellaneous and scroll teleports to the world map plugin \nSkill calculator now turns actions that will become available before target\nlevel orange \nThe bank evaluator plugin now includes the price of untradeable items\ntradeable versions \nOptimize clickbox calculation code \nFix Vet\'ion boss timer and add KQ boss timer \nAdd option to swap "interact" with "empty" on birdhouses \nUpdate menu swapper to support multiple fairy ring defaults \nFix slayer plugin to work with NPC contact \nAdd Bandit Camp fishing spot to fishing plugin \nFix MLM plugin when it is started/stopped from within the MLM \nFix UI responsiveness when closing skill calculator \nAdd Limestone attack stone to skill calc \nReset gorillas in demonic gorilla plugin on startup and world hop \nAdd gilded altar to idle notifier \nAdd wine making to idle notifier \nAdd option to swap minecart menu option to travel from GE to Keldagrim \nAdd bar dispenser clickbox overlay to blast furnace plugin \nShow clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\nplugin \n \nAdditionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (30):\n pom: set updatePolicy always for runelite snapshots\n pom: remove tomcat deploy execution\n hiscore panel: properly error if result is null\n ge search panel: catch cache load exception from search returning null\n Revert "boss timers: improve accuracy of boss respawn timer"\n boss timers plugin: change to use npc despawn event\n agility plugin: fix exception on reconnect\n poh plugin: fix exception when tile for burner is not fully visible\n Remove actor death event, use despawn event instead\n woodcutting plugin: timeout woodcutting sessions\n woodcutting plugin: show redwood trees\n world map plugin: merge jewellery teleports and magic teleports\n world map plugin: add misc teleports\n skill calculator: lombok some of UIActionSlot\n skill calculator: turn indicators orange for actions that will become available before target\n screen marker overlay: stop if preferred size is null\n antidrag: reset drag when focus is lost\n runelite-client: add ItemMapping to map untradeable items to tradeable versions\n item manager: use item mapping\n item manager: cache unable to look up on unsuccessful bulk lookup too\n runelite-client: update bank calculation and barrows calculation to use item mapping\n runelite-api: optimize ChatMessageType.of()\n config manager: fix resetting configuration items with no default value\n config panel: allow color configs with no value\n runelite-client: add chat color config\n runelite-client: remove chat color config from plugins\n Revert "perspective: use viewport offset in get2DGeometry"\n perspective: use viewport offset for offsetting rectangle in get2DGeometry\n runelite-api: use lombok constructors for Vertex/Triangle\n perspective: optimize clickbox generation\n\nAlexsuperfly (3):\n boss timers: improve accuracy of boss respawn timer\n boss timers: fix Vet\'ion timer to start after 2nd phase death\n boss timers: add KQ to boss list\n\nBeefaloKing (1):\n Stretched Fixed Mode Plugin: Add Integer Scaling option (#2863)\n\nEadgars-Ruse (2):\n Change hot/cold overlay to only show outline of dig area (#3166)\n Fix coordinates for venenatis hot cold clue (#3212)\n\nEthan (5):\n Exclude ironmen from daily herb box notifications\n Add option to swap "interact" with "empty" on birdhouses\n Update menu swapper to support multiple fairy ring defaults\n Add teleport scroll locations to map\n Add notifications to Grand Exchange plugin\n\nHydrox6 (1):\n Fix items with no Grand Exchange Price using Store Price for the right click menu instead of High Alchemy value\n\nIguaan (2):\n slayer plugin: read bracelet charges directly from chat message\n slayerplugin: fix current task regex and new task via npc contact regex\n\nJeremy Plsek (1):\n enqueue most post/put/delete requests\n\nJordan Atwood (6):\n Allow imbued Ring of Wealth for emote clue (#3230)\n Fix location for West Ardougne emote clue (#3231)\n Fix Grand Tree mushrooms clue\n Improve Yanille anvil room map clue location\n Add Wilderness Bandit Camp fishing spot\n Fix Iban\'s Temple emote clue\n\nKelvin (1):\n Use single DynamicGridLayout for XPTracker stats (#3432)\n\nKruithne (1):\n skill calculator: allow XP values up to 200,000,000 rather than 188,884,740\n\nLars (3):\n Motherlode Mine - Startup / shutdown bugs (#3124)\n XpInfoBox - Remove min/max experience check (#3397)\n Use screenmarker name not ID for displaying it (#3423)\n\nMagic fTail (3):\n BossTimerPlugin: Find bosses based on id instead of name\n More accurate respawn timers\n MenuEntrySwapper: Reorder config items to alphabetical order\n\nMaiddog (1):\n Fix typo in Pyramid Plunder emote clue (#3419)\n\nMatthew Steglinski (6):\n runelite-api: Add missing documentation\n Fix ArrayIndexOutOfBoundsException when an empty command is typed\n devtools: Add camera position overlay\n devtools: Add base, local, and region coordinates to LocationOverlay\n grandexchange: Format \'Price each\' value for items in additional information layout\n Add local player death event\n\nMorgan Lewis (3):\n Clue Scroll Plugin: Add wording to direct users to world map\n Dev-tools: Add location overlay to show world map position\n Remove WorldMapOverlayTest Plugin\n\nRuben Amendoeira (6):\n Hiscore auto-complete fix\n Skill calcs performance improvement\n Refactor ClientUI using CardLayout\n Remove feed refresh button\n Add top margin to the XP tracker error panel (#3343)\n Add naming to screenmarkers\n\nSimon Landry (1):\n Add Boiler to Dorgesh-Kaan obstacles IDs (#3437)\n\nTomas Slusny (11):\n Unify NPC highlighting color settings\n Use NpcSpawned and despawned for getting cacheNpc\n Move private methods at bottom of NPC plugin\n Add support for fullscreen mode\n Change default PluginPanel layout to DynamicGrid\n Change config TextField to TextArea\n Move highlighted/hidden to top\n Store markers based on epoch millis\n Properly set preferredSize of navContainer\n Add Limestone attack stone to skill calc\n Update Lombok to 1.16.22\n\nTzZek (1):\n Add making wines to idle notifications (#3441)\n\nWooxSolo (1):\n Reset gorillas in demonic gorilla plugin on startup and world hop\n\ndrivfe (1):\n screen markers: fix for confirm dialog appearing behind main UI window\n\niguaan (3):\n idlenotifier: add support for gilded altar\n timers: use correct capitalisation for antifire in settings\n slayerplugin: fixed bracelet charge counter\n\niskarky (1):\n Swap menu entry for minecart travel from GE to Keldagrim\n\nshmeeps (2):\n Capitalize world map configuration names (#3301)\n Account for slightly different dimensions of first and second/third floors (#3249)\n\nypperlig (1):\n blast furance plugin: add bar dispenser to clickbox overlay\n
\n',image:"/img/blog/1.4.1-Release/chatcolors.png"}}}]);
+//# sourceMappingURL=46.d3fffe47.chunk.js.map
\ No newline at end of file
diff --git a/static/js/46.ef1721e9.chunk.js.map b/static/js/46.d3fffe47.chunk.js.map
similarity index 99%
rename from static/js/46.ef1721e9.chunk.js.map
rename to static/js/46.d3fffe47.chunk.js.map
index f05d30e7c..2bee130a7 100644
--- a/static/js/46.ef1721e9.chunk.js.map
+++ b/static/js/46.d3fffe47.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-05-31-07-00-1.4.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uEAAuE,OAAS,OAAO,KAAO,i+SAA8/S,MAAQ","file":"static/js/46.ef1721e9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.1 Release\",\"description\":\"Chat recolor, redwood tree markers, and grand exchange notifications\",\"author\":\"Adam\",\"body\":\"First, lately there have been several targeted phishing attacks against\\nRuneLite, including targeted ad buys on both Google and Reddit. If in doubt,\\ncross reference the site with the official GitHub and Discord. The main tell is\\nthe official Windows download is an executable digitally signed by Alexander\\nHenne, and not a .jar. We can generally get these sites taken down, but it\\nusually takes some time to do so.
\\nNow for the update:
\\nChat color for each chat type (public, private, clan, trade, etc.) are now\\nconfigurable in the "Chat Colors" configuratrion.
\\n
\\nThe woodcutting plugin now can overlay redwood tree locations.
\\n
\\nThe grand exchange plugin can now notify you when something buys or sells.
\\n
\\nAlso a special thanks to @Matthew Steglinski who\\ncontributed Javadoc for 155\\nfiles in the API. This greatly\\nimproves our published Javadoc .
\\nScreen markers can now be assigned names, making it easy to save and reuse them\\nlater without having to re-add and position them. Existing screen markers will\\nneed to be deleted and readded.
\\nFull screen mode was added and is toggleable in RuneLite settings.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix hiscore lookup autocomplete \\nFix hiscore and GE lookups getting stuck when given invalid input \\nImprove boss timer spawn timers by start them when the NPC despawns instead of\\nat the beginning of the death animation \\nAdd miscellaneous and scroll teleports to the world map plugin \\nSkill calculator now turns actions that will become available before target\\nlevel orange \\nThe bank evaluator plugin now includes the price of untradeable items\\ntradeable versions \\nOptimize clickbox calculation code \\nFix Vet'ion boss timer and add KQ boss timer \\nAdd option to swap "interact" with "empty" on birdhouses \\nUpdate menu swapper to support multiple fairy ring defaults \\nFix slayer plugin to work with NPC contact \\nAdd Bandit Camp fishing spot to fishing plugin \\nFix MLM plugin when it is started/stopped from within the MLM \\nFix UI responsiveness when closing skill calculator \\nAdd Limestone attack stone to skill calc \\nReset gorillas in demonic gorilla plugin on startup and world hop \\nAdd gilded altar to idle notifier \\nAdd wine making to idle notifier \\nAdd option to swap minecart menu option to travel from GE to Keldagrim \\nAdd bar dispenser clickbox overlay to blast furnace plugin \\nShow clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\\nplugin \\n \\nAdditionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (30):\\n pom: set updatePolicy always for runelite snapshots\\n pom: remove tomcat deploy execution\\n hiscore panel: properly error if result is null\\n ge search panel: catch cache load exception from search returning null\\n Revert "boss timers: improve accuracy of boss respawn timer"\\n boss timers plugin: change to use npc despawn event\\n agility plugin: fix exception on reconnect\\n poh plugin: fix exception when tile for burner is not fully visible\\n Remove actor death event, use despawn event instead\\n woodcutting plugin: timeout woodcutting sessions\\n woodcutting plugin: show redwood trees\\n world map plugin: merge jewellery teleports and magic teleports\\n world map plugin: add misc teleports\\n skill calculator: lombok some of UIActionSlot\\n skill calculator: turn indicators orange for actions that will become available before target\\n screen marker overlay: stop if preferred size is null\\n antidrag: reset drag when focus is lost\\n runelite-client: add ItemMapping to map untradeable items to tradeable versions\\n item manager: use item mapping\\n item manager: cache unable to look up on unsuccessful bulk lookup too\\n runelite-client: update bank calculation and barrows calculation to use item mapping\\n runelite-api: optimize ChatMessageType.of()\\n config manager: fix resetting configuration items with no default value\\n config panel: allow color configs with no value\\n runelite-client: add chat color config\\n runelite-client: remove chat color config from plugins\\n Revert "perspective: use viewport offset in get2DGeometry"\\n perspective: use viewport offset for offsetting rectangle in get2DGeometry\\n runelite-api: use lombok constructors for Vertex/Triangle\\n perspective: optimize clickbox generation\\n\\nAlexsuperfly (3):\\n boss timers: improve accuracy of boss respawn timer\\n boss timers: fix Vet'ion timer to start after 2nd phase death\\n boss timers: add KQ to boss list\\n\\nBeefaloKing (1):\\n Stretched Fixed Mode Plugin: Add Integer Scaling option (#2863)\\n\\nEadgars-Ruse (2):\\n Change hot/cold overlay to only show outline of dig area (#3166)\\n Fix coordinates for venenatis hot cold clue (#3212)\\n\\nEthan (5):\\n Exclude ironmen from daily herb box notifications\\n Add option to swap "interact" with "empty" on birdhouses\\n Update menu swapper to support multiple fairy ring defaults\\n Add teleport scroll locations to map\\n Add notifications to Grand Exchange plugin\\n\\nHydrox6 (1):\\n Fix items with no Grand Exchange Price using Store Price for the right click menu instead of High Alchemy value\\n\\nIguaan (2):\\n slayer plugin: read bracelet charges directly from chat message\\n slayerplugin: fix current task regex and new task via npc contact regex\\n\\nJeremy Plsek (1):\\n enqueue most post/put/delete requests\\n\\nJordan Atwood (6):\\n Allow imbued Ring of Wealth for emote clue (#3230)\\n Fix location for West Ardougne emote clue (#3231)\\n Fix Grand Tree mushrooms clue\\n Improve Yanille anvil room map clue location\\n Add Wilderness Bandit Camp fishing spot\\n Fix Iban's Temple emote clue\\n\\nKelvin (1):\\n Use single DynamicGridLayout for XPTracker stats (#3432)\\n\\nKruithne (1):\\n skill calculator: allow XP values up to 200,000,000 rather than 188,884,740\\n\\nLars (3):\\n Motherlode Mine - Startup / shutdown bugs (#3124)\\n XpInfoBox - Remove min/max experience check (#3397)\\n Use screenmarker name not ID for displaying it (#3423)\\n\\nMagic fTail (3):\\n BossTimerPlugin: Find bosses based on id instead of name\\n More accurate respawn timers\\n MenuEntrySwapper: Reorder config items to alphabetical order\\n\\nMaiddog (1):\\n Fix typo in Pyramid Plunder emote clue (#3419)\\n\\nMatthew Steglinski (6):\\n runelite-api: Add missing documentation\\n Fix ArrayIndexOutOfBoundsException when an empty command is typed\\n devtools: Add camera position overlay\\n devtools: Add base, local, and region coordinates to LocationOverlay\\n grandexchange: Format 'Price each' value for items in additional information layout\\n Add local player death event\\n\\nMorgan Lewis (3):\\n Clue Scroll Plugin: Add wording to direct users to world map\\n Dev-tools: Add location overlay to show world map position\\n Remove WorldMapOverlayTest Plugin\\n\\nRuben Amendoeira (6):\\n Hiscore auto-complete fix\\n Skill calcs performance improvement\\n Refactor ClientUI using CardLayout\\n Remove feed refresh button\\n Add top margin to the XP tracker error panel (#3343)\\n Add naming to screenmarkers\\n\\nSimon Landry (1):\\n Add Boiler to Dorgesh-Kaan obstacles IDs (#3437)\\n\\nTomas Slusny (11):\\n Unify NPC highlighting color settings\\n Use NpcSpawned and despawned for getting cacheNpc\\n Move private methods at bottom of NPC plugin\\n Add support for fullscreen mode\\n Change default PluginPanel layout to DynamicGrid\\n Change config TextField to TextArea\\n Move highlighted/hidden to top\\n Store markers based on epoch millis\\n Properly set preferredSize of navContainer\\n Add Limestone attack stone to skill calc\\n Update Lombok to 1.16.22\\n\\nTzZek (1):\\n Add making wines to idle notifications (#3441)\\n\\nWooxSolo (1):\\n Reset gorillas in demonic gorilla plugin on startup and world hop\\n\\ndrivfe (1):\\n screen markers: fix for confirm dialog appearing behind main UI window\\n\\niguaan (3):\\n idlenotifier: add support for gilded altar\\n timers: use correct capitalisation for antifire in settings\\n slayerplugin: fixed bracelet charge counter\\n\\niskarky (1):\\n Swap menu entry for minecart travel from GE to Keldagrim\\n\\nshmeeps (2):\\n Capitalize world map configuration names (#3301)\\n Account for slightly different dimensions of first and second/third floors (#3249)\\n\\nypperlig (1):\\n blast furance plugin: add bar dispenser to clickbox overlay\\n
\\n\",\"image\":\"/img/blog/1.4.1-Release/chatcolors.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-05-31-07-00-1.4.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uEAAuE,OAAS,OAAO,KAAO,i+SAA8/S,MAAQ","file":"static/js/46.d3fffe47.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.1 Release\",\"description\":\"Chat recolor, redwood tree markers, and grand exchange notifications\",\"author\":\"Adam\",\"body\":\"First, lately there have been several targeted phishing attacks against\\nRuneLite, including targeted ad buys on both Google and Reddit. If in doubt,\\ncross reference the site with the official GitHub and Discord. The main tell is\\nthe official Windows download is an executable digitally signed by Alexander\\nHenne, and not a .jar. We can generally get these sites taken down, but it\\nusually takes some time to do so.
\\nNow for the update:
\\nChat color for each chat type (public, private, clan, trade, etc.) are now\\nconfigurable in the "Chat Colors" configuratrion.
\\n
\\nThe woodcutting plugin now can overlay redwood tree locations.
\\n
\\nThe grand exchange plugin can now notify you when something buys or sells.
\\n
\\nAlso a special thanks to @Matthew Steglinski who\\ncontributed Javadoc for 155\\nfiles in the API. This greatly\\nimproves our published Javadoc .
\\nScreen markers can now be assigned names, making it easy to save and reuse them\\nlater without having to re-add and position them. Existing screen markers will\\nneed to be deleted and readded.
\\nFull screen mode was added and is toggleable in RuneLite settings.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix hiscore lookup autocomplete \\nFix hiscore and GE lookups getting stuck when given invalid input \\nImprove boss timer spawn timers by start them when the NPC despawns instead of\\nat the beginning of the death animation \\nAdd miscellaneous and scroll teleports to the world map plugin \\nSkill calculator now turns actions that will become available before target\\nlevel orange \\nThe bank evaluator plugin now includes the price of untradeable items\\ntradeable versions \\nOptimize clickbox calculation code \\nFix Vet'ion boss timer and add KQ boss timer \\nAdd option to swap "interact" with "empty" on birdhouses \\nUpdate menu swapper to support multiple fairy ring defaults \\nFix slayer plugin to work with NPC contact \\nAdd Bandit Camp fishing spot to fishing plugin \\nFix MLM plugin when it is started/stopped from within the MLM \\nFix UI responsiveness when closing skill calculator \\nAdd Limestone attack stone to skill calc \\nReset gorillas in demonic gorilla plugin on startup and world hop \\nAdd gilded altar to idle notifier \\nAdd wine making to idle notifier \\nAdd option to swap minecart menu option to travel from GE to Keldagrim \\nAdd bar dispenser clickbox overlay to blast furnace plugin \\nShow clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\\nplugin \\n \\nAdditionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (30):\\n pom: set updatePolicy always for runelite snapshots\\n pom: remove tomcat deploy execution\\n hiscore panel: properly error if result is null\\n ge search panel: catch cache load exception from search returning null\\n Revert "boss timers: improve accuracy of boss respawn timer"\\n boss timers plugin: change to use npc despawn event\\n agility plugin: fix exception on reconnect\\n poh plugin: fix exception when tile for burner is not fully visible\\n Remove actor death event, use despawn event instead\\n woodcutting plugin: timeout woodcutting sessions\\n woodcutting plugin: show redwood trees\\n world map plugin: merge jewellery teleports and magic teleports\\n world map plugin: add misc teleports\\n skill calculator: lombok some of UIActionSlot\\n skill calculator: turn indicators orange for actions that will become available before target\\n screen marker overlay: stop if preferred size is null\\n antidrag: reset drag when focus is lost\\n runelite-client: add ItemMapping to map untradeable items to tradeable versions\\n item manager: use item mapping\\n item manager: cache unable to look up on unsuccessful bulk lookup too\\n runelite-client: update bank calculation and barrows calculation to use item mapping\\n runelite-api: optimize ChatMessageType.of()\\n config manager: fix resetting configuration items with no default value\\n config panel: allow color configs with no value\\n runelite-client: add chat color config\\n runelite-client: remove chat color config from plugins\\n Revert "perspective: use viewport offset in get2DGeometry"\\n perspective: use viewport offset for offsetting rectangle in get2DGeometry\\n runelite-api: use lombok constructors for Vertex/Triangle\\n perspective: optimize clickbox generation\\n\\nAlexsuperfly (3):\\n boss timers: improve accuracy of boss respawn timer\\n boss timers: fix Vet'ion timer to start after 2nd phase death\\n boss timers: add KQ to boss list\\n\\nBeefaloKing (1):\\n Stretched Fixed Mode Plugin: Add Integer Scaling option (#2863)\\n\\nEadgars-Ruse (2):\\n Change hot/cold overlay to only show outline of dig area (#3166)\\n Fix coordinates for venenatis hot cold clue (#3212)\\n\\nEthan (5):\\n Exclude ironmen from daily herb box notifications\\n Add option to swap "interact" with "empty" on birdhouses\\n Update menu swapper to support multiple fairy ring defaults\\n Add teleport scroll locations to map\\n Add notifications to Grand Exchange plugin\\n\\nHydrox6 (1):\\n Fix items with no Grand Exchange Price using Store Price for the right click menu instead of High Alchemy value\\n\\nIguaan (2):\\n slayer plugin: read bracelet charges directly from chat message\\n slayerplugin: fix current task regex and new task via npc contact regex\\n\\nJeremy Plsek (1):\\n enqueue most post/put/delete requests\\n\\nJordan Atwood (6):\\n Allow imbued Ring of Wealth for emote clue (#3230)\\n Fix location for West Ardougne emote clue (#3231)\\n Fix Grand Tree mushrooms clue\\n Improve Yanille anvil room map clue location\\n Add Wilderness Bandit Camp fishing spot\\n Fix Iban's Temple emote clue\\n\\nKelvin (1):\\n Use single DynamicGridLayout for XPTracker stats (#3432)\\n\\nKruithne (1):\\n skill calculator: allow XP values up to 200,000,000 rather than 188,884,740\\n\\nLars (3):\\n Motherlode Mine - Startup / shutdown bugs (#3124)\\n XpInfoBox - Remove min/max experience check (#3397)\\n Use screenmarker name not ID for displaying it (#3423)\\n\\nMagic fTail (3):\\n BossTimerPlugin: Find bosses based on id instead of name\\n More accurate respawn timers\\n MenuEntrySwapper: Reorder config items to alphabetical order\\n\\nMaiddog (1):\\n Fix typo in Pyramid Plunder emote clue (#3419)\\n\\nMatthew Steglinski (6):\\n runelite-api: Add missing documentation\\n Fix ArrayIndexOutOfBoundsException when an empty command is typed\\n devtools: Add camera position overlay\\n devtools: Add base, local, and region coordinates to LocationOverlay\\n grandexchange: Format 'Price each' value for items in additional information layout\\n Add local player death event\\n\\nMorgan Lewis (3):\\n Clue Scroll Plugin: Add wording to direct users to world map\\n Dev-tools: Add location overlay to show world map position\\n Remove WorldMapOverlayTest Plugin\\n\\nRuben Amendoeira (6):\\n Hiscore auto-complete fix\\n Skill calcs performance improvement\\n Refactor ClientUI using CardLayout\\n Remove feed refresh button\\n Add top margin to the XP tracker error panel (#3343)\\n Add naming to screenmarkers\\n\\nSimon Landry (1):\\n Add Boiler to Dorgesh-Kaan obstacles IDs (#3437)\\n\\nTomas Slusny (11):\\n Unify NPC highlighting color settings\\n Use NpcSpawned and despawned for getting cacheNpc\\n Move private methods at bottom of NPC plugin\\n Add support for fullscreen mode\\n Change default PluginPanel layout to DynamicGrid\\n Change config TextField to TextArea\\n Move highlighted/hidden to top\\n Store markers based on epoch millis\\n Properly set preferredSize of navContainer\\n Add Limestone attack stone to skill calc\\n Update Lombok to 1.16.22\\n\\nTzZek (1):\\n Add making wines to idle notifications (#3441)\\n\\nWooxSolo (1):\\n Reset gorillas in demonic gorilla plugin on startup and world hop\\n\\ndrivfe (1):\\n screen markers: fix for confirm dialog appearing behind main UI window\\n\\niguaan (3):\\n idlenotifier: add support for gilded altar\\n timers: use correct capitalisation for antifire in settings\\n slayerplugin: fixed bracelet charge counter\\n\\niskarky (1):\\n Swap menu entry for minecart travel from GE to Keldagrim\\n\\nshmeeps (2):\\n Capitalize world map configuration names (#3301)\\n Account for slightly different dimensions of first and second/third floors (#3249)\\n\\nypperlig (1):\\n blast furance plugin: add bar dispenser to clickbox overlay\\n
\\n\",\"image\":\"/img/blog/1.4.1-Release/chatcolors.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/47.652b730a.chunk.js b/static/js/47.d81bb0fe.chunk.js
similarity index 98%
rename from static/js/47.652b730a.chunk.js
rename to static/js/47.d81bb0fe.chunk.js
index 060778528..a8247b7ae 100644
--- a/static/js/47.652b730a.chunk.js
+++ b/static/js/47.d81bb0fe.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[47],{322:function(e,n){e.exports={title:"1.4.2 Release",description:"Respawn timers, death indicator plugin, prayer indicators",author:"Adam",body:'The NPC indicators plugin now has an option to show respawn times for tagged\nNPCS. Thanks to @WooxSolo for his work on this.
\n
\n@DannysPVM added a death indicator plugin which\nremembers where you\'ve died last, and on what world.
\n
\nThe prayer flicking plugin was renamed to the prayer plugin - and now shows\nprayer indicator infoboxes, from @raqes .
\n
\nThe full screen mode added in last weeks update was removed as it is not working\nfor some users and getting their client stuck in a nonworking state. We may add\nit back in the future if we can make it work better.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe screenshot plugin now screenshots pvp kills and pet drops \nA \'Reset others\' option was added to the xp tracker panel \nA Charge timer was added \nFix Callisto and Venenatis boss timers from previous release \nFix regen plugin showing when orb is hidden \nAdded Zeah fishing spots to fishing plugin \nAdd dragonfire-charged items to untradeable item mappings \nFix expeditious bracelet charge tracking, which was broke last release \nAdd support for swapping all options on the house portal to the menu entry\nswapper \nShow RuneLite launcher version in the info panel \nAdd bake pie and string jewellery to idle notifier \nFix rare crash when drawing clickboxes \n \nAdditionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (25):\n perspective: do not remove culled faces from clickbox calculation\n chat color config: set default color for examine highlight\n Fix prayer enumation order back to the order the prayers are in game\n chat message manager: set default colors for examine\n hooks: move combat info callback to actor mixin\n Flag npc as dead when their health ratio hits 0\n runelite-client: update to use isDead\n pom: update rs.version\n runelite-mixins: once again reset menu on widget close\n Rename CONTRRIBUTING.md -> CONTRIBUTING.md\n Fix null names for quest objects in cryptic clues\n config invocation handler: fix setting config values to null\n config manager: support Instant\n runelite-client: add death indicator plugin\n config manager: only apply default config from methods which read configuration\n antidrag: remove unused config setter\n death indicators: only set death mark after respawning in a known respawn location\n death indicator: move location check to after respawn\n death indicator: use animation to detect death\n Revert "Merge pull request #3192 from deathbeam/add-support-for-fullscreen"\n clientui: reimport ExpandResizeType from fullscreen revert\n screenshot plugin: capitalize pet messages constant\n screenshot plugin: screenshot pvp kills\n info panel: use revision number from client\n npc scene overlay: fix respawn time\n\nEvan Sloan (1):\n Add reset others to XpPanel right click menu\n\nGert de Pagter (1):\n Use github issue templates\n\nHydrox6 (7):\n Add Charge Timer\n Fix Callisto and Venenatis Boss Timers using the incorrect ID\n Reorder updateConfig to match TimerConfig\n Add support for Clan Chat Info highlights for the Raids Plugin\n Add default highlight for Game Messages to fix Daily Task message colour\n Fix Charge timer showing with every teleport\n Remove Charge Timer when the effect ends\n\nInfinitay (1):\n Add hyperlinks to project layout in README (#3509)\n\nJeremy Plsek (1):\n regen plugin: don\'t show regen if widget is hidden\n\nJordan (2):\n Reword Dad hot-cold clue hint (#3513)\n Fix McGrubor and Cow pen hot-cold locations (#3603)\n\nJordan Atwood (3):\n Fix "The hand ain\'t listening." clue step\n Add missing Zeah fishing spots\n Fix Guard Vemmeldo anagram clue location\n\nJuuso Lapinlampi (1):\n Fix spelling of Taverley\n\nKamiel (1):\n Allow screenmarker resizing below base point\n\nLars (2):\n Fix typo in BarrowsPlugin (Spanwed to Spawned)\n Update tooltip for Grand Exchange Panel Icon to "Grand Exchange" (#3618)\n\nMagic fTail (2):\n Add dragonfire-charged armour item mappings\n screenshot plugin: screenshot receiving pet\n\nMax Weber (1):\n runelite-client: Require assertions when developer mode is on\n\nReasel (1):\n Add Tile location tooltip option to dev tools. Remove extra empty line.\n\nRuben Amendoeira (1):\n Remove Skill Calc unused code (#3568)\n\nSeth (1):\n slayer plugin: fix expeditious regex pattern\n\nSnakk (1):\n menu entry swapper: add options for house portal\n\nStanleyMole (1):\n Fix TzHaar and Castle Draken emote clues\n\nTomas Slusny (5):\n Change tithe farm to use PieComponent\n Change schedule to GameTick sub in Tithe plugin\n Cleanup RuneLite class (use Lombok)\n Add support for getting runelite launcher version\n Show RuneLite launcher version in info panel\n\nTrig (1):\n Fix "hosptial" anagram clue typo (#3600)\n\nTzZek (1):\n Add bake pie & string jewelry to idle notifier (#3486)\n\nWooxSolo (5):\n Fix remember screen bounds for KEEP_GAME_SIZE\n Move frame to right screen border when expanding large window\n Fix Jarvis infinite loop\n perspective: fix getCanvasTileAreaPoly for even number sizes\n npc indicators: add respawn timer\n\npsikoi (2):\n Add Icon Material Tab + Hover effects\n Refactor plugin panels for new Icon Tabs\n\nraqes (2):\n Rename Prayer Flicking plugin to Prayer\n Add prayer indicators to prayer plugin\n\nshmeeps (1):\n Use chat messages for GE notifications (#3492)\n\nypperlig (1):\n Change tickrate for giant seaweed from 10 to 5\n
\n',image:"/img/blog/1.4.2-Release/respawn.png"}}}]);
-//# sourceMappingURL=47.652b730a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[47],{323:function(e,n){e.exports={title:"1.4.2 Release",description:"Respawn timers, death indicator plugin, prayer indicators",author:"Adam",body:'The NPC indicators plugin now has an option to show respawn times for tagged\nNPCS. Thanks to @WooxSolo for his work on this.
\n
\n@DannysPVM added a death indicator plugin which\nremembers where you\'ve died last, and on what world.
\n
\nThe prayer flicking plugin was renamed to the prayer plugin - and now shows\nprayer indicator infoboxes, from @raqes .
\n
\nThe full screen mode added in last weeks update was removed as it is not working\nfor some users and getting their client stuck in a nonworking state. We may add\nit back in the future if we can make it work better.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe screenshot plugin now screenshots pvp kills and pet drops \nA \'Reset others\' option was added to the xp tracker panel \nA Charge timer was added \nFix Callisto and Venenatis boss timers from previous release \nFix regen plugin showing when orb is hidden \nAdded Zeah fishing spots to fishing plugin \nAdd dragonfire-charged items to untradeable item mappings \nFix expeditious bracelet charge tracking, which was broke last release \nAdd support for swapping all options on the house portal to the menu entry\nswapper \nShow RuneLite launcher version in the info panel \nAdd bake pie and string jewellery to idle notifier \nFix rare crash when drawing clickboxes \n \nAdditionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (25):\n perspective: do not remove culled faces from clickbox calculation\n chat color config: set default color for examine highlight\n Fix prayer enumation order back to the order the prayers are in game\n chat message manager: set default colors for examine\n hooks: move combat info callback to actor mixin\n Flag npc as dead when their health ratio hits 0\n runelite-client: update to use isDead\n pom: update rs.version\n runelite-mixins: once again reset menu on widget close\n Rename CONTRRIBUTING.md -> CONTRIBUTING.md\n Fix null names for quest objects in cryptic clues\n config invocation handler: fix setting config values to null\n config manager: support Instant\n runelite-client: add death indicator plugin\n config manager: only apply default config from methods which read configuration\n antidrag: remove unused config setter\n death indicators: only set death mark after respawning in a known respawn location\n death indicator: move location check to after respawn\n death indicator: use animation to detect death\n Revert "Merge pull request #3192 from deathbeam/add-support-for-fullscreen"\n clientui: reimport ExpandResizeType from fullscreen revert\n screenshot plugin: capitalize pet messages constant\n screenshot plugin: screenshot pvp kills\n info panel: use revision number from client\n npc scene overlay: fix respawn time\n\nEvan Sloan (1):\n Add reset others to XpPanel right click menu\n\nGert de Pagter (1):\n Use github issue templates\n\nHydrox6 (7):\n Add Charge Timer\n Fix Callisto and Venenatis Boss Timers using the incorrect ID\n Reorder updateConfig to match TimerConfig\n Add support for Clan Chat Info highlights for the Raids Plugin\n Add default highlight for Game Messages to fix Daily Task message colour\n Fix Charge timer showing with every teleport\n Remove Charge Timer when the effect ends\n\nInfinitay (1):\n Add hyperlinks to project layout in README (#3509)\n\nJeremy Plsek (1):\n regen plugin: don\'t show regen if widget is hidden\n\nJordan (2):\n Reword Dad hot-cold clue hint (#3513)\n Fix McGrubor and Cow pen hot-cold locations (#3603)\n\nJordan Atwood (3):\n Fix "The hand ain\'t listening." clue step\n Add missing Zeah fishing spots\n Fix Guard Vemmeldo anagram clue location\n\nJuuso Lapinlampi (1):\n Fix spelling of Taverley\n\nKamiel (1):\n Allow screenmarker resizing below base point\n\nLars (2):\n Fix typo in BarrowsPlugin (Spanwed to Spawned)\n Update tooltip for Grand Exchange Panel Icon to "Grand Exchange" (#3618)\n\nMagic fTail (2):\n Add dragonfire-charged armour item mappings\n screenshot plugin: screenshot receiving pet\n\nMax Weber (1):\n runelite-client: Require assertions when developer mode is on\n\nReasel (1):\n Add Tile location tooltip option to dev tools. Remove extra empty line.\n\nRuben Amendoeira (1):\n Remove Skill Calc unused code (#3568)\n\nSeth (1):\n slayer plugin: fix expeditious regex pattern\n\nSnakk (1):\n menu entry swapper: add options for house portal\n\nStanleyMole (1):\n Fix TzHaar and Castle Draken emote clues\n\nTomas Slusny (5):\n Change tithe farm to use PieComponent\n Change schedule to GameTick sub in Tithe plugin\n Cleanup RuneLite class (use Lombok)\n Add support for getting runelite launcher version\n Show RuneLite launcher version in info panel\n\nTrig (1):\n Fix "hosptial" anagram clue typo (#3600)\n\nTzZek (1):\n Add bake pie & string jewelry to idle notifier (#3486)\n\nWooxSolo (5):\n Fix remember screen bounds for KEEP_GAME_SIZE\n Move frame to right screen border when expanding large window\n Fix Jarvis infinite loop\n perspective: fix getCanvasTileAreaPoly for even number sizes\n npc indicators: add respawn timer\n\npsikoi (2):\n Add Icon Material Tab + Hover effects\n Refactor plugin panels for new Icon Tabs\n\nraqes (2):\n Rename Prayer Flicking plugin to Prayer\n Add prayer indicators to prayer plugin\n\nshmeeps (1):\n Use chat messages for GE notifications (#3492)\n\nypperlig (1):\n Change tickrate for giant seaweed from 10 to 5\n
\n',image:"/img/blog/1.4.2-Release/respawn.png"}}}]);
+//# sourceMappingURL=47.d81bb0fe.chunk.js.map
\ No newline at end of file
diff --git a/static/js/47.652b730a.chunk.js.map b/static/js/47.d81bb0fe.chunk.js.map
similarity index 99%
rename from static/js/47.652b730a.chunk.js.map
rename to static/js/47.d81bb0fe.chunk.js.map
index b1edc2c02..7f7c2e45f 100644
--- a/static/js/47.652b730a.chunk.js.map
+++ b/static/js/47.d81bb0fe.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-06-07-07-00-1.4.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4DAA4D,OAAS,OAAO,KAAO,k2MAA23M,MAAQ","file":"static/js/47.652b730a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.2 Release\",\"description\":\"Respawn timers, death indicator plugin, prayer indicators\",\"author\":\"Adam\",\"body\":\"The NPC indicators plugin now has an option to show respawn times for tagged\\nNPCS. Thanks to @WooxSolo for his work on this.
\\n
\\n@DannysPVM added a death indicator plugin which\\nremembers where you've died last, and on what world.
\\n
\\nThe prayer flicking plugin was renamed to the prayer plugin - and now shows\\nprayer indicator infoboxes, from @raqes .
\\n
\\nThe full screen mode added in last weeks update was removed as it is not working\\nfor some users and getting their client stuck in a nonworking state. We may add\\nit back in the future if we can make it work better.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe screenshot plugin now screenshots pvp kills and pet drops \\nA 'Reset others' option was added to the xp tracker panel \\nA Charge timer was added \\nFix Callisto and Venenatis boss timers from previous release \\nFix regen plugin showing when orb is hidden \\nAdded Zeah fishing spots to fishing plugin \\nAdd dragonfire-charged items to untradeable item mappings \\nFix expeditious bracelet charge tracking, which was broke last release \\nAdd support for swapping all options on the house portal to the menu entry\\nswapper \\nShow RuneLite launcher version in the info panel \\nAdd bake pie and string jewellery to idle notifier \\nFix rare crash when drawing clickboxes \\n \\nAdditionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (25):\\n perspective: do not remove culled faces from clickbox calculation\\n chat color config: set default color for examine highlight\\n Fix prayer enumation order back to the order the prayers are in game\\n chat message manager: set default colors for examine\\n hooks: move combat info callback to actor mixin\\n Flag npc as dead when their health ratio hits 0\\n runelite-client: update to use isDead\\n pom: update rs.version\\n runelite-mixins: once again reset menu on widget close\\n Rename CONTRRIBUTING.md -> CONTRIBUTING.md\\n Fix null names for quest objects in cryptic clues\\n config invocation handler: fix setting config values to null\\n config manager: support Instant\\n runelite-client: add death indicator plugin\\n config manager: only apply default config from methods which read configuration\\n antidrag: remove unused config setter\\n death indicators: only set death mark after respawning in a known respawn location\\n death indicator: move location check to after respawn\\n death indicator: use animation to detect death\\n Revert "Merge pull request #3192 from deathbeam/add-support-for-fullscreen"\\n clientui: reimport ExpandResizeType from fullscreen revert\\n screenshot plugin: capitalize pet messages constant\\n screenshot plugin: screenshot pvp kills\\n info panel: use revision number from client\\n npc scene overlay: fix respawn time\\n\\nEvan Sloan (1):\\n Add reset others to XpPanel right click menu\\n\\nGert de Pagter (1):\\n Use github issue templates\\n\\nHydrox6 (7):\\n Add Charge Timer\\n Fix Callisto and Venenatis Boss Timers using the incorrect ID\\n Reorder updateConfig to match TimerConfig\\n Add support for Clan Chat Info highlights for the Raids Plugin\\n Add default highlight for Game Messages to fix Daily Task message colour\\n Fix Charge timer showing with every teleport\\n Remove Charge Timer when the effect ends\\n\\nInfinitay (1):\\n Add hyperlinks to project layout in README (#3509)\\n\\nJeremy Plsek (1):\\n regen plugin: don't show regen if widget is hidden\\n\\nJordan (2):\\n Reword Dad hot-cold clue hint (#3513)\\n Fix McGrubor and Cow pen hot-cold locations (#3603)\\n\\nJordan Atwood (3):\\n Fix "The hand ain't listening." clue step\\n Add missing Zeah fishing spots\\n Fix Guard Vemmeldo anagram clue location\\n\\nJuuso Lapinlampi (1):\\n Fix spelling of Taverley\\n\\nKamiel (1):\\n Allow screenmarker resizing below base point\\n\\nLars (2):\\n Fix typo in BarrowsPlugin (Spanwed to Spawned)\\n Update tooltip for Grand Exchange Panel Icon to "Grand Exchange" (#3618)\\n\\nMagic fTail (2):\\n Add dragonfire-charged armour item mappings\\n screenshot plugin: screenshot receiving pet\\n\\nMax Weber (1):\\n runelite-client: Require assertions when developer mode is on\\n\\nReasel (1):\\n Add Tile location tooltip option to dev tools. Remove extra empty line.\\n\\nRuben Amendoeira (1):\\n Remove Skill Calc unused code (#3568)\\n\\nSeth (1):\\n slayer plugin: fix expeditious regex pattern\\n\\nSnakk (1):\\n menu entry swapper: add options for house portal\\n\\nStanleyMole (1):\\n Fix TzHaar and Castle Draken emote clues\\n\\nTomas Slusny (5):\\n Change tithe farm to use PieComponent\\n Change schedule to GameTick sub in Tithe plugin\\n Cleanup RuneLite class (use Lombok)\\n Add support for getting runelite launcher version\\n Show RuneLite launcher version in info panel\\n\\nTrig (1):\\n Fix "hosptial" anagram clue typo (#3600)\\n\\nTzZek (1):\\n Add bake pie & string jewelry to idle notifier (#3486)\\n\\nWooxSolo (5):\\n Fix remember screen bounds for KEEP_GAME_SIZE\\n Move frame to right screen border when expanding large window\\n Fix Jarvis infinite loop\\n perspective: fix getCanvasTileAreaPoly for even number sizes\\n npc indicators: add respawn timer\\n\\npsikoi (2):\\n Add Icon Material Tab + Hover effects\\n Refactor plugin panels for new Icon Tabs\\n\\nraqes (2):\\n Rename Prayer Flicking plugin to Prayer\\n Add prayer indicators to prayer plugin\\n\\nshmeeps (1):\\n Use chat messages for GE notifications (#3492)\\n\\nypperlig (1):\\n Change tickrate for giant seaweed from 10 to 5\\n
\\n\",\"image\":\"/img/blog/1.4.2-Release/respawn.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-06-07-07-00-1.4.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4DAA4D,OAAS,OAAO,KAAO,k2MAA23M,MAAQ","file":"static/js/47.d81bb0fe.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.2 Release\",\"description\":\"Respawn timers, death indicator plugin, prayer indicators\",\"author\":\"Adam\",\"body\":\"The NPC indicators plugin now has an option to show respawn times for tagged\\nNPCS. Thanks to @WooxSolo for his work on this.
\\n
\\n@DannysPVM added a death indicator plugin which\\nremembers where you've died last, and on what world.
\\n
\\nThe prayer flicking plugin was renamed to the prayer plugin - and now shows\\nprayer indicator infoboxes, from @raqes .
\\n
\\nThe full screen mode added in last weeks update was removed as it is not working\\nfor some users and getting their client stuck in a nonworking state. We may add\\nit back in the future if we can make it work better.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe screenshot plugin now screenshots pvp kills and pet drops \\nA 'Reset others' option was added to the xp tracker panel \\nA Charge timer was added \\nFix Callisto and Venenatis boss timers from previous release \\nFix regen plugin showing when orb is hidden \\nAdded Zeah fishing spots to fishing plugin \\nAdd dragonfire-charged items to untradeable item mappings \\nFix expeditious bracelet charge tracking, which was broke last release \\nAdd support for swapping all options on the house portal to the menu entry\\nswapper \\nShow RuneLite launcher version in the info panel \\nAdd bake pie and string jewellery to idle notifier \\nFix rare crash when drawing clickboxes \\n \\nAdditionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (25):\\n perspective: do not remove culled faces from clickbox calculation\\n chat color config: set default color for examine highlight\\n Fix prayer enumation order back to the order the prayers are in game\\n chat message manager: set default colors for examine\\n hooks: move combat info callback to actor mixin\\n Flag npc as dead when their health ratio hits 0\\n runelite-client: update to use isDead\\n pom: update rs.version\\n runelite-mixins: once again reset menu on widget close\\n Rename CONTRRIBUTING.md -> CONTRIBUTING.md\\n Fix null names for quest objects in cryptic clues\\n config invocation handler: fix setting config values to null\\n config manager: support Instant\\n runelite-client: add death indicator plugin\\n config manager: only apply default config from methods which read configuration\\n antidrag: remove unused config setter\\n death indicators: only set death mark after respawning in a known respawn location\\n death indicator: move location check to after respawn\\n death indicator: use animation to detect death\\n Revert "Merge pull request #3192 from deathbeam/add-support-for-fullscreen"\\n clientui: reimport ExpandResizeType from fullscreen revert\\n screenshot plugin: capitalize pet messages constant\\n screenshot plugin: screenshot pvp kills\\n info panel: use revision number from client\\n npc scene overlay: fix respawn time\\n\\nEvan Sloan (1):\\n Add reset others to XpPanel right click menu\\n\\nGert de Pagter (1):\\n Use github issue templates\\n\\nHydrox6 (7):\\n Add Charge Timer\\n Fix Callisto and Venenatis Boss Timers using the incorrect ID\\n Reorder updateConfig to match TimerConfig\\n Add support for Clan Chat Info highlights for the Raids Plugin\\n Add default highlight for Game Messages to fix Daily Task message colour\\n Fix Charge timer showing with every teleport\\n Remove Charge Timer when the effect ends\\n\\nInfinitay (1):\\n Add hyperlinks to project layout in README (#3509)\\n\\nJeremy Plsek (1):\\n regen plugin: don't show regen if widget is hidden\\n\\nJordan (2):\\n Reword Dad hot-cold clue hint (#3513)\\n Fix McGrubor and Cow pen hot-cold locations (#3603)\\n\\nJordan Atwood (3):\\n Fix "The hand ain't listening." clue step\\n Add missing Zeah fishing spots\\n Fix Guard Vemmeldo anagram clue location\\n\\nJuuso Lapinlampi (1):\\n Fix spelling of Taverley\\n\\nKamiel (1):\\n Allow screenmarker resizing below base point\\n\\nLars (2):\\n Fix typo in BarrowsPlugin (Spanwed to Spawned)\\n Update tooltip for Grand Exchange Panel Icon to "Grand Exchange" (#3618)\\n\\nMagic fTail (2):\\n Add dragonfire-charged armour item mappings\\n screenshot plugin: screenshot receiving pet\\n\\nMax Weber (1):\\n runelite-client: Require assertions when developer mode is on\\n\\nReasel (1):\\n Add Tile location tooltip option to dev tools. Remove extra empty line.\\n\\nRuben Amendoeira (1):\\n Remove Skill Calc unused code (#3568)\\n\\nSeth (1):\\n slayer plugin: fix expeditious regex pattern\\n\\nSnakk (1):\\n menu entry swapper: add options for house portal\\n\\nStanleyMole (1):\\n Fix TzHaar and Castle Draken emote clues\\n\\nTomas Slusny (5):\\n Change tithe farm to use PieComponent\\n Change schedule to GameTick sub in Tithe plugin\\n Cleanup RuneLite class (use Lombok)\\n Add support for getting runelite launcher version\\n Show RuneLite launcher version in info panel\\n\\nTrig (1):\\n Fix "hosptial" anagram clue typo (#3600)\\n\\nTzZek (1):\\n Add bake pie & string jewelry to idle notifier (#3486)\\n\\nWooxSolo (5):\\n Fix remember screen bounds for KEEP_GAME_SIZE\\n Move frame to right screen border when expanding large window\\n Fix Jarvis infinite loop\\n perspective: fix getCanvasTileAreaPoly for even number sizes\\n npc indicators: add respawn timer\\n\\npsikoi (2):\\n Add Icon Material Tab + Hover effects\\n Refactor plugin panels for new Icon Tabs\\n\\nraqes (2):\\n Rename Prayer Flicking plugin to Prayer\\n Add prayer indicators to prayer plugin\\n\\nshmeeps (1):\\n Use chat messages for GE notifications (#3492)\\n\\nypperlig (1):\\n Change tickrate for giant seaweed from 10 to 5\\n
\\n\",\"image\":\"/img/blog/1.4.2-Release/respawn.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/48.24d23ccb.chunk.js b/static/js/48.b019f3c5.chunk.js
similarity index 97%
rename from static/js/48.24d23ccb.chunk.js
rename to static/js/48.b019f3c5.chunk.js
index de5ed08b5..859cda2e5 100644
--- a/static/js/48.24d23ccb.chunk.js
+++ b/static/js/48.b019f3c5.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[48],{323:function(n,e){n.exports={title:"1.4.3 Release",description:"Blast mine plugin, chat highlights and notifications, and resizable infoboxes",author:"Adam",body:'A blast mine plugin was added which keeps track of lit dynamite charges, as well\nas which stage the rock is in.
\n
\nA chat notifications plugin was added which can underscore your name when spoken\nin public chat, as well as optionally send you notifications for trade, duel,\nand other chat messages.
\n
\n
\nA Crystal Math Labs plugin was added which, when enabled, automatically updates\nyour stats on CML whenever you log out.
\nThere are also several smaller improvements and bug fixes, including:
\n\nctrl+w and backspace can now be used to delete the last word and the entire\nline from the chatbox input, respectively \nAdd public chat friend name color in chat color config \nThe boosts plugin can now notify you when your boost gets low \nAdd Isafdar and Jatizso fishing spots to fishing plugin \nRemove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled \nAdd fungicide spray to item stats plugin \nThe ground items plugin can now grey hidden items from the take menu \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (13):\n xtea plugin: batch xteas on gamestate change event\n Remove map region changed event\n Add gson to dependency management\n Update gson to 2.8.5\n http-service: import spring boot dependencies in dependency management\n travis: remove old secrets\n travis: remove old discord notification [ci skip]\n Add public chat friend name color in chat color config\n Fix genie cryptic clue to display proper requirements\n overlay renderer: bound overlays position to viewport at render time instead of at config load time\n runelite-api: add setVar for setting varclientstr\n item controller: expose bulk item prices\n chat commands: alow clearing words and chat with ctrl w/backspace\n\nArman (1):\n Adds notification when boost gets low\n\nChris Jimenez (1):\n Small contributing.md clarification\n\nHydrox6 (7):\n Fix "Clan Channel Name" typo, fix capitalisation (#3671)\n Make Color config options show their colour instead of "Pick a color" (#3583)\n [chat-color] Add support for Public Chat from Mods\n Clean up the Examine Colour loading\n Fix JColorChooser text not updating properly\n Fix NMZ points overlay appearing in the KBD instance lair\n runelite-client: add chat notifications plugin\n\nJordan Atwood (1):\n Add Jatizso fishing spots to fishing plugin\n\nMarshall Briggs (1):\n Remove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled\n\nMax Weber (6):\n runelite-api: Correct actor documentation\n runelite-client: Don\'t fail on invalid config values.\n runelite-client: add detached camera devtool\n runelite-client: Make OverlayManager thread safe\n runelite-client: Use an ArrayList to store overlays\n runelite-client: Allow new screenmarkers to be created\n\nMitchell Kovacs (4):\n Reworked Jewellery Charge to item charge.\n item charges: add charge warning threshold color configuration\n Moved the watering can overlay from tithe farming plugin to item charge plugin.\n Add counter for fungicide spray #3727\n\nSieBrum (1):\n Add CrystalMathLabs plugin\n\nTim Granata (1):\n Add Isafdar dense forest agility boxes north of Tyras Camp (#3731)\n\nTimmy-Jim (2):\n Move BAKED_POTATO to 4 HP healing food (#3724)\n Add Isafdar fishing spots\n\nTomas Slusny (14):\n Remove auto-expanding from PanelComponent\n Show GE and HA only when showing both prices\n Add mappings for isTradeable to ItemComposition\n Add option to always draw untradeable items\n Remove 4th invalid state from ground boxes\n Add full item name clickboxes\n Add highlight > value, merge hide < ge and ha\n Split OverlayRenderer logic to OverlayManager\n Make plugins work with new OverlayManager\n Add support for wrapping to PanelComponent\n Add support for preferred location to Panel\n Change InfoBoxOverlay to use PanelComponent\n Change the default size of infoboxes to be smaller\n Add support for configurable infobox size\n\nUnmoon (1):\n Add blast mine plugin\n\nWooxSolo (1):\n Fix demonic gorilla overlay position on fixed screen\n\ndrivfe (1):\n Fix combined action slot not updating when an input field was changed\n
\n',image:"/img/blog/1.4.3-Release/blastmine.png"}}}]);
-//# sourceMappingURL=48.24d23ccb.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[48],{324:function(n,e){n.exports={title:"1.4.3 Release",description:"Blast mine plugin, chat highlights and notifications, and resizable infoboxes",author:"Adam",body:'A blast mine plugin was added which keeps track of lit dynamite charges, as well\nas which stage the rock is in.
\n
\nA chat notifications plugin was added which can underscore your name when spoken\nin public chat, as well as optionally send you notifications for trade, duel,\nand other chat messages.
\n
\n
\nA Crystal Math Labs plugin was added which, when enabled, automatically updates\nyour stats on CML whenever you log out.
\nThere are also several smaller improvements and bug fixes, including:
\n\nctrl+w and backspace can now be used to delete the last word and the entire\nline from the chatbox input, respectively \nAdd public chat friend name color in chat color config \nThe boosts plugin can now notify you when your boost gets low \nAdd Isafdar and Jatizso fishing spots to fishing plugin \nRemove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled \nAdd fungicide spray to item stats plugin \nThe ground items plugin can now grey hidden items from the take menu \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (13):\n xtea plugin: batch xteas on gamestate change event\n Remove map region changed event\n Add gson to dependency management\n Update gson to 2.8.5\n http-service: import spring boot dependencies in dependency management\n travis: remove old secrets\n travis: remove old discord notification [ci skip]\n Add public chat friend name color in chat color config\n Fix genie cryptic clue to display proper requirements\n overlay renderer: bound overlays position to viewport at render time instead of at config load time\n runelite-api: add setVar for setting varclientstr\n item controller: expose bulk item prices\n chat commands: alow clearing words and chat with ctrl w/backspace\n\nArman (1):\n Adds notification when boost gets low\n\nChris Jimenez (1):\n Small contributing.md clarification\n\nHydrox6 (7):\n Fix "Clan Channel Name" typo, fix capitalisation (#3671)\n Make Color config options show their colour instead of "Pick a color" (#3583)\n [chat-color] Add support for Public Chat from Mods\n Clean up the Examine Colour loading\n Fix JColorChooser text not updating properly\n Fix NMZ points overlay appearing in the KBD instance lair\n runelite-client: add chat notifications plugin\n\nJordan Atwood (1):\n Add Jatizso fishing spots to fishing plugin\n\nMarshall Briggs (1):\n Remove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled\n\nMax Weber (6):\n runelite-api: Correct actor documentation\n runelite-client: Don\'t fail on invalid config values.\n runelite-client: add detached camera devtool\n runelite-client: Make OverlayManager thread safe\n runelite-client: Use an ArrayList to store overlays\n runelite-client: Allow new screenmarkers to be created\n\nMitchell Kovacs (4):\n Reworked Jewellery Charge to item charge.\n item charges: add charge warning threshold color configuration\n Moved the watering can overlay from tithe farming plugin to item charge plugin.\n Add counter for fungicide spray #3727\n\nSieBrum (1):\n Add CrystalMathLabs plugin\n\nTim Granata (1):\n Add Isafdar dense forest agility boxes north of Tyras Camp (#3731)\n\nTimmy-Jim (2):\n Move BAKED_POTATO to 4 HP healing food (#3724)\n Add Isafdar fishing spots\n\nTomas Slusny (14):\n Remove auto-expanding from PanelComponent\n Show GE and HA only when showing both prices\n Add mappings for isTradeable to ItemComposition\n Add option to always draw untradeable items\n Remove 4th invalid state from ground boxes\n Add full item name clickboxes\n Add highlight > value, merge hide < ge and ha\n Split OverlayRenderer logic to OverlayManager\n Make plugins work with new OverlayManager\n Add support for wrapping to PanelComponent\n Add support for preferred location to Panel\n Change InfoBoxOverlay to use PanelComponent\n Change the default size of infoboxes to be smaller\n Add support for configurable infobox size\n\nUnmoon (1):\n Add blast mine plugin\n\nWooxSolo (1):\n Fix demonic gorilla overlay position on fixed screen\n\ndrivfe (1):\n Fix combined action slot not updating when an input field was changed\n
\n',image:"/img/blog/1.4.3-Release/blastmine.png"}}}]);
+//# sourceMappingURL=48.b019f3c5.chunk.js.map
\ No newline at end of file
diff --git a/static/js/48.24d23ccb.chunk.js.map b/static/js/48.b019f3c5.chunk.js.map
similarity index 98%
rename from static/js/48.24d23ccb.chunk.js.map
rename to static/js/48.b019f3c5.chunk.js.map
index 0d6608747..4a95d1315 100644
--- a/static/js/48.24d23ccb.chunk.js.map
+++ b/static/js/48.b019f3c5.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-06-14-07-00-1.4.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gFAAgF,OAAS,OAAO,KAAO,ksJAAqsJ,MAAQ","file":"static/js/48.24d23ccb.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.3 Release\",\"description\":\"Blast mine plugin, chat highlights and notifications, and resizable infoboxes\",\"author\":\"Adam\",\"body\":\"A blast mine plugin was added which keeps track of lit dynamite charges, as well\\nas which stage the rock is in.
\\n
\\nA chat notifications plugin was added which can underscore your name when spoken\\nin public chat, as well as optionally send you notifications for trade, duel,\\nand other chat messages.
\\n
\\n
\\nA Crystal Math Labs plugin was added which, when enabled, automatically updates\\nyour stats on CML whenever you log out.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nctrl+w and backspace can now be used to delete the last word and the entire\\nline from the chatbox input, respectively \\nAdd public chat friend name color in chat color config \\nThe boosts plugin can now notify you when your boost gets low \\nAdd Isafdar and Jatizso fishing spots to fishing plugin \\nRemove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled \\nAdd fungicide spray to item stats plugin \\nThe ground items plugin can now grey hidden items from the take menu \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (13):\\n xtea plugin: batch xteas on gamestate change event\\n Remove map region changed event\\n Add gson to dependency management\\n Update gson to 2.8.5\\n http-service: import spring boot dependencies in dependency management\\n travis: remove old secrets\\n travis: remove old discord notification [ci skip]\\n Add public chat friend name color in chat color config\\n Fix genie cryptic clue to display proper requirements\\n overlay renderer: bound overlays position to viewport at render time instead of at config load time\\n runelite-api: add setVar for setting varclientstr\\n item controller: expose bulk item prices\\n chat commands: alow clearing words and chat with ctrl w/backspace\\n\\nArman (1):\\n Adds notification when boost gets low\\n\\nChris Jimenez (1):\\n Small contributing.md clarification\\n\\nHydrox6 (7):\\n Fix "Clan Channel Name" typo, fix capitalisation (#3671)\\n Make Color config options show their colour instead of "Pick a color" (#3583)\\n [chat-color] Add support for Public Chat from Mods\\n Clean up the Examine Colour loading\\n Fix JColorChooser text not updating properly\\n Fix NMZ points overlay appearing in the KBD instance lair\\n runelite-client: add chat notifications plugin\\n\\nJordan Atwood (1):\\n Add Jatizso fishing spots to fishing plugin\\n\\nMarshall Briggs (1):\\n Remove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled\\n\\nMax Weber (6):\\n runelite-api: Correct actor documentation\\n runelite-client: Don't fail on invalid config values.\\n runelite-client: add detached camera devtool\\n runelite-client: Make OverlayManager thread safe\\n runelite-client: Use an ArrayList to store overlays\\n runelite-client: Allow new screenmarkers to be created\\n\\nMitchell Kovacs (4):\\n Reworked Jewellery Charge to item charge.\\n item charges: add charge warning threshold color configuration\\n Moved the watering can overlay from tithe farming plugin to item charge plugin.\\n Add counter for fungicide spray #3727\\n\\nSieBrum (1):\\n Add CrystalMathLabs plugin\\n\\nTim Granata (1):\\n Add Isafdar dense forest agility boxes north of Tyras Camp (#3731)\\n\\nTimmy-Jim (2):\\n Move BAKED_POTATO to 4 HP healing food (#3724)\\n Add Isafdar fishing spots\\n\\nTomas Slusny (14):\\n Remove auto-expanding from PanelComponent\\n Show GE and HA only when showing both prices\\n Add mappings for isTradeable to ItemComposition\\n Add option to always draw untradeable items\\n Remove 4th invalid state from ground boxes\\n Add full item name clickboxes\\n Add highlight > value, merge hide < ge and ha\\n Split OverlayRenderer logic to OverlayManager\\n Make plugins work with new OverlayManager\\n Add support for wrapping to PanelComponent\\n Add support for preferred location to Panel\\n Change InfoBoxOverlay to use PanelComponent\\n Change the default size of infoboxes to be smaller\\n Add support for configurable infobox size\\n\\nUnmoon (1):\\n Add blast mine plugin\\n\\nWooxSolo (1):\\n Fix demonic gorilla overlay position on fixed screen\\n\\ndrivfe (1):\\n Fix combined action slot not updating when an input field was changed\\n
\\n\",\"image\":\"/img/blog/1.4.3-Release/blastmine.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-06-14-07-00-1.4.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gFAAgF,OAAS,OAAO,KAAO,ksJAAqsJ,MAAQ","file":"static/js/48.b019f3c5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.3 Release\",\"description\":\"Blast mine plugin, chat highlights and notifications, and resizable infoboxes\",\"author\":\"Adam\",\"body\":\"A blast mine plugin was added which keeps track of lit dynamite charges, as well\\nas which stage the rock is in.
\\n
\\nA chat notifications plugin was added which can underscore your name when spoken\\nin public chat, as well as optionally send you notifications for trade, duel,\\nand other chat messages.
\\n
\\n
\\nA Crystal Math Labs plugin was added which, when enabled, automatically updates\\nyour stats on CML whenever you log out.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nctrl+w and backspace can now be used to delete the last word and the entire\\nline from the chatbox input, respectively \\nAdd public chat friend name color in chat color config \\nThe boosts plugin can now notify you when your boost gets low \\nAdd Isafdar and Jatizso fishing spots to fishing plugin \\nRemove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled \\nAdd fungicide spray to item stats plugin \\nThe ground items plugin can now grey hidden items from the take menu \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (13):\\n xtea plugin: batch xteas on gamestate change event\\n Remove map region changed event\\n Add gson to dependency management\\n Update gson to 2.8.5\\n http-service: import spring boot dependencies in dependency management\\n travis: remove old secrets\\n travis: remove old discord notification [ci skip]\\n Add public chat friend name color in chat color config\\n Fix genie cryptic clue to display proper requirements\\n overlay renderer: bound overlays position to viewport at render time instead of at config load time\\n runelite-api: add setVar for setting varclientstr\\n item controller: expose bulk item prices\\n chat commands: alow clearing words and chat with ctrl w/backspace\\n\\nArman (1):\\n Adds notification when boost gets low\\n\\nChris Jimenez (1):\\n Small contributing.md clarification\\n\\nHydrox6 (7):\\n Fix "Clan Channel Name" typo, fix capitalisation (#3671)\\n Make Color config options show their colour instead of "Pick a color" (#3583)\\n [chat-color] Add support for Public Chat from Mods\\n Clean up the Examine Colour loading\\n Fix JColorChooser text not updating properly\\n Fix NMZ points overlay appearing in the KBD instance lair\\n runelite-client: add chat notifications plugin\\n\\nJordan Atwood (1):\\n Add Jatizso fishing spots to fishing plugin\\n\\nMarshall Briggs (1):\\n Remove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled\\n\\nMax Weber (6):\\n runelite-api: Correct actor documentation\\n runelite-client: Don't fail on invalid config values.\\n runelite-client: add detached camera devtool\\n runelite-client: Make OverlayManager thread safe\\n runelite-client: Use an ArrayList to store overlays\\n runelite-client: Allow new screenmarkers to be created\\n\\nMitchell Kovacs (4):\\n Reworked Jewellery Charge to item charge.\\n item charges: add charge warning threshold color configuration\\n Moved the watering can overlay from tithe farming plugin to item charge plugin.\\n Add counter for fungicide spray #3727\\n\\nSieBrum (1):\\n Add CrystalMathLabs plugin\\n\\nTim Granata (1):\\n Add Isafdar dense forest agility boxes north of Tyras Camp (#3731)\\n\\nTimmy-Jim (2):\\n Move BAKED_POTATO to 4 HP healing food (#3724)\\n Add Isafdar fishing spots\\n\\nTomas Slusny (14):\\n Remove auto-expanding from PanelComponent\\n Show GE and HA only when showing both prices\\n Add mappings for isTradeable to ItemComposition\\n Add option to always draw untradeable items\\n Remove 4th invalid state from ground boxes\\n Add full item name clickboxes\\n Add highlight > value, merge hide < ge and ha\\n Split OverlayRenderer logic to OverlayManager\\n Make plugins work with new OverlayManager\\n Add support for wrapping to PanelComponent\\n Add support for preferred location to Panel\\n Change InfoBoxOverlay to use PanelComponent\\n Change the default size of infoboxes to be smaller\\n Add support for configurable infobox size\\n\\nUnmoon (1):\\n Add blast mine plugin\\n\\nWooxSolo (1):\\n Fix demonic gorilla overlay position on fixed screen\\n\\ndrivfe (1):\\n Fix combined action slot not updating when an input field was changed\\n
\\n\",\"image\":\"/img/blog/1.4.3-Release/blastmine.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/49.ac29e79f.chunk.js b/static/js/49.35120d66.chunk.js
similarity index 98%
rename from static/js/49.ac29e79f.chunk.js
rename to static/js/49.35120d66.chunk.js
index 027020b68..990d3b9d2 100644
--- a/static/js/49.ac29e79f.chunk.js
+++ b/static/js/49.35120d66.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[49],{324:function(e,n){e.exports={title:"1.4.4 Release",description:"Mage training arena plugin, prayer potion indicator, and preserve prayer tracking",author:"Adam",body:'A Mage Training Arena was added from\n@Jasper Ketelaar which can solve\ntelekinetic mazes, and deduce alchemy room rotations from discovery of items in\nit.
\n
\nThe prayer plugin now indicates when you can drink a prayer potion to get the\nfull effect by flashing the prayer orb. It also has a new tooltip which shows\nyour current prayer bonus and approximation on how much longer your prayer\npoints will last.
\n
\nThe boosts plugin now takes into account the preserve prayer when showing when\nthe next stat drain takes place.
\nThe grand exchange plugin can now show the "actively traded" OSBuddy price on\nthe grand exchange interface now, if enabled.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix infobox overlay resetting its position after each client restart. \nAdd dodgy necklace charge counter and notification to item charges plugin \nFix attack styles plugin not correctly hiding staff of the dead defence style \nMade tagging NPCs no longer interrupt actions \nHide Kourend Library navigation button when not in the library \nFix Shilo Village stepping stones agilty marker \nAdd option to highlight tiles under ground items \nRe-add ability to show hidden items on right click menu, with a toggle this\ntime \nAdded a link to the wiki to the info panel \nMore clue fixes \nFix icons of onyx items in skill calculator \n \nEnjoy!
\n- Adam
\nNew commits \n4th8 (1):\n skill calculator: fix item id for some zenyte and onyx items\n\nAdam (20):\n Revert " Fix NMZ points overlay appearing in the KBD instance lair"\n ground items: default highlight over value to 0\n ground items: rename highlight > value key to reset the defaults\n ground items: don\'t recolor menu if hidden\n ground items: remove unnecessary copy of collected ground items\n examine plugin: update object examine id unpacking\n runelite-client: close properties input stream\n world map plugin: add missing break after agility shortcuts/tooltips case\n overlay util: mark explicit fallthrough in transformPosition\n demonic gorillas plugin: remove unused variable\n config invocation handler: replace args with literal null\n screenshot plugin: fix unsafe multithreaded usage of DateFormat\n runelite-client: remove various redundant null checks\n timers plugin: fix sotd timer removal logic\n prayer plugin: add dose indicator\n runelite-client: use new bulk item price api\n http-service: crawl tradable item prices instead of queueing on demand\n item charges plugin: add dodgy necklace\n attack styles: add defensive casting to weapon types for staffs\n http-service: switch json serializer to jackson\n\nAeonLucid (1):\n ge plugin: add OSB actively traded price\n\nAlexsuperfly (1):\n Preserve prayer tracking in boost timer (#3530)\n\nHarry (1):\n Improve and cleanup code in runelite-client (#3859)\n\nJasper Ketelaar (1):\n runelite-client: add mage training arena plugin\n\nJonathan Beaudoin (1):\n Add tooltip to absorption panel\n\nJordan Atwood (8):\n Add Staff of the Dead timer\n Prevent NPC tagging from interrupting actions\n Fix ancient cavern emote clue location\n Fix south-of-mausoleum hot-cold clue location\n Fix Slayer Tower emote clue\n Fix Al Kharid mine hot-cold clue location\n Fix South of Jiggig hot-cold clue location\n Fix stepping stone object IDs east of Shilo Village\n\nLars (1):\n CONTRIBUTING.md - Provide link to coding conventions\n\nMatthew Smith (1):\n Toggle confirmation on exit (#3834)\n\nMax Weber (6):\n runelite-client: Test Overlay equality\n runelite-client: Prevent recursion when chat notifier notifies to chat\n cache: consolidate ID class printing and split ObjectID\n Update autogenerated ID files\n runelite-client: remove unused import in DemonicGorillaOverlay\n kourendlibrary: Hide navbutton when not in the library\n\nSeth (2):\n agilityShortcutLocation: Fix shilo village agility marker\n configPanel: remove tooltips for JTextArea\n\nTememexas (1):\n Add option to highlight tiles under ground items (#3895)\n\nTomas Slusny (16):\n Disable camera zoom by default\n Use Object.equals for Overlays\n Fix overlay collection modification checks\n Consider anything with GE > 0 as tradeable too\n Ignore highlights when value is set to 0 (disable)\n Make hidden items color configurable\n Reduce code duplicity in resetOverlay method\n Fix loading of core overlay properties\n Mark InfoboxOverlay as singleton\n Fix UnsupportedOperationException in ground items\n Change ground items box size from 6 px to 8 px\n Reload overlay settings on plugin change\n Disable OSB prices by default\n Fix ground item swapped price values\n Optional support for recoloring right-click menu\n Fix ground marker plugin layer\n\npsikoi (2):\n Added boolean onSelectedEvent to Material Tabs\n Refactor Hiscore EndPoints to Material Tab\n\nraqes (1):\n Add wiki link to info panel\n
\n',image:"/img/blog/1.4.4-Release/mta.png"}}}]);
-//# sourceMappingURL=49.ac29e79f.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[49],{325:function(e,n){e.exports={title:"1.4.4 Release",description:"Mage training arena plugin, prayer potion indicator, and preserve prayer tracking",author:"Adam",body:'A Mage Training Arena was added from\n@Jasper Ketelaar which can solve\ntelekinetic mazes, and deduce alchemy room rotations from discovery of items in\nit.
\n
\nThe prayer plugin now indicates when you can drink a prayer potion to get the\nfull effect by flashing the prayer orb. It also has a new tooltip which shows\nyour current prayer bonus and approximation on how much longer your prayer\npoints will last.
\n
\nThe boosts plugin now takes into account the preserve prayer when showing when\nthe next stat drain takes place.
\nThe grand exchange plugin can now show the "actively traded" OSBuddy price on\nthe grand exchange interface now, if enabled.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix infobox overlay resetting its position after each client restart. \nAdd dodgy necklace charge counter and notification to item charges plugin \nFix attack styles plugin not correctly hiding staff of the dead defence style \nMade tagging NPCs no longer interrupt actions \nHide Kourend Library navigation button when not in the library \nFix Shilo Village stepping stones agilty marker \nAdd option to highlight tiles under ground items \nRe-add ability to show hidden items on right click menu, with a toggle this\ntime \nAdded a link to the wiki to the info panel \nMore clue fixes \nFix icons of onyx items in skill calculator \n \nEnjoy!
\n- Adam
\nNew commits \n4th8 (1):\n skill calculator: fix item id for some zenyte and onyx items\n\nAdam (20):\n Revert " Fix NMZ points overlay appearing in the KBD instance lair"\n ground items: default highlight over value to 0\n ground items: rename highlight > value key to reset the defaults\n ground items: don\'t recolor menu if hidden\n ground items: remove unnecessary copy of collected ground items\n examine plugin: update object examine id unpacking\n runelite-client: close properties input stream\n world map plugin: add missing break after agility shortcuts/tooltips case\n overlay util: mark explicit fallthrough in transformPosition\n demonic gorillas plugin: remove unused variable\n config invocation handler: replace args with literal null\n screenshot plugin: fix unsafe multithreaded usage of DateFormat\n runelite-client: remove various redundant null checks\n timers plugin: fix sotd timer removal logic\n prayer plugin: add dose indicator\n runelite-client: use new bulk item price api\n http-service: crawl tradable item prices instead of queueing on demand\n item charges plugin: add dodgy necklace\n attack styles: add defensive casting to weapon types for staffs\n http-service: switch json serializer to jackson\n\nAeonLucid (1):\n ge plugin: add OSB actively traded price\n\nAlexsuperfly (1):\n Preserve prayer tracking in boost timer (#3530)\n\nHarry (1):\n Improve and cleanup code in runelite-client (#3859)\n\nJasper Ketelaar (1):\n runelite-client: add mage training arena plugin\n\nJonathan Beaudoin (1):\n Add tooltip to absorption panel\n\nJordan Atwood (8):\n Add Staff of the Dead timer\n Prevent NPC tagging from interrupting actions\n Fix ancient cavern emote clue location\n Fix south-of-mausoleum hot-cold clue location\n Fix Slayer Tower emote clue\n Fix Al Kharid mine hot-cold clue location\n Fix South of Jiggig hot-cold clue location\n Fix stepping stone object IDs east of Shilo Village\n\nLars (1):\n CONTRIBUTING.md - Provide link to coding conventions\n\nMatthew Smith (1):\n Toggle confirmation on exit (#3834)\n\nMax Weber (6):\n runelite-client: Test Overlay equality\n runelite-client: Prevent recursion when chat notifier notifies to chat\n cache: consolidate ID class printing and split ObjectID\n Update autogenerated ID files\n runelite-client: remove unused import in DemonicGorillaOverlay\n kourendlibrary: Hide navbutton when not in the library\n\nSeth (2):\n agilityShortcutLocation: Fix shilo village agility marker\n configPanel: remove tooltips for JTextArea\n\nTememexas (1):\n Add option to highlight tiles under ground items (#3895)\n\nTomas Slusny (16):\n Disable camera zoom by default\n Use Object.equals for Overlays\n Fix overlay collection modification checks\n Consider anything with GE > 0 as tradeable too\n Ignore highlights when value is set to 0 (disable)\n Make hidden items color configurable\n Reduce code duplicity in resetOverlay method\n Fix loading of core overlay properties\n Mark InfoboxOverlay as singleton\n Fix UnsupportedOperationException in ground items\n Change ground items box size from 6 px to 8 px\n Reload overlay settings on plugin change\n Disable OSB prices by default\n Fix ground item swapped price values\n Optional support for recoloring right-click menu\n Fix ground marker plugin layer\n\npsikoi (2):\n Added boolean onSelectedEvent to Material Tabs\n Refactor Hiscore EndPoints to Material Tab\n\nraqes (1):\n Add wiki link to info panel\n
\n',image:"/img/blog/1.4.4-Release/mta.png"}}}]);
+//# sourceMappingURL=49.35120d66.chunk.js.map
\ No newline at end of file
diff --git a/static/js/49.ac29e79f.chunk.js.map b/static/js/49.35120d66.chunk.js.map
similarity index 98%
rename from static/js/49.ac29e79f.chunk.js.map
rename to static/js/49.35120d66.chunk.js.map
index c4caf55d8..379b542ea 100644
--- a/static/js/49.ac29e79f.chunk.js.map
+++ b/static/js/49.35120d66.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-06-21-07-00-1.4.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,4/KAA6gL,MAAQ","file":"static/js/49.ac29e79f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.4 Release\",\"description\":\"Mage training arena plugin, prayer potion indicator, and preserve prayer tracking\",\"author\":\"Adam\",\"body\":\"A Mage Training Arena was added from\\n@Jasper Ketelaar which can solve\\ntelekinetic mazes, and deduce alchemy room rotations from discovery of items in\\nit.
\\n
\\nThe prayer plugin now indicates when you can drink a prayer potion to get the\\nfull effect by flashing the prayer orb. It also has a new tooltip which shows\\nyour current prayer bonus and approximation on how much longer your prayer\\npoints will last.
\\n
\\nThe boosts plugin now takes into account the preserve prayer when showing when\\nthe next stat drain takes place.
\\nThe grand exchange plugin can now show the "actively traded" OSBuddy price on\\nthe grand exchange interface now, if enabled.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix infobox overlay resetting its position after each client restart. \\nAdd dodgy necklace charge counter and notification to item charges plugin \\nFix attack styles plugin not correctly hiding staff of the dead defence style \\nMade tagging NPCs no longer interrupt actions \\nHide Kourend Library navigation button when not in the library \\nFix Shilo Village stepping stones agilty marker \\nAdd option to highlight tiles under ground items \\nRe-add ability to show hidden items on right click menu, with a toggle this\\ntime \\nAdded a link to the wiki to the info panel \\nMore clue fixes \\nFix icons of onyx items in skill calculator \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n4th8 (1):\\n skill calculator: fix item id for some zenyte and onyx items\\n\\nAdam (20):\\n Revert " Fix NMZ points overlay appearing in the KBD instance lair"\\n ground items: default highlight over value to 0\\n ground items: rename highlight > value key to reset the defaults\\n ground items: don't recolor menu if hidden\\n ground items: remove unnecessary copy of collected ground items\\n examine plugin: update object examine id unpacking\\n runelite-client: close properties input stream\\n world map plugin: add missing break after agility shortcuts/tooltips case\\n overlay util: mark explicit fallthrough in transformPosition\\n demonic gorillas plugin: remove unused variable\\n config invocation handler: replace args with literal null\\n screenshot plugin: fix unsafe multithreaded usage of DateFormat\\n runelite-client: remove various redundant null checks\\n timers plugin: fix sotd timer removal logic\\n prayer plugin: add dose indicator\\n runelite-client: use new bulk item price api\\n http-service: crawl tradable item prices instead of queueing on demand\\n item charges plugin: add dodgy necklace\\n attack styles: add defensive casting to weapon types for staffs\\n http-service: switch json serializer to jackson\\n\\nAeonLucid (1):\\n ge plugin: add OSB actively traded price\\n\\nAlexsuperfly (1):\\n Preserve prayer tracking in boost timer (#3530)\\n\\nHarry (1):\\n Improve and cleanup code in runelite-client (#3859)\\n\\nJasper Ketelaar (1):\\n runelite-client: add mage training arena plugin\\n\\nJonathan Beaudoin (1):\\n Add tooltip to absorption panel\\n\\nJordan Atwood (8):\\n Add Staff of the Dead timer\\n Prevent NPC tagging from interrupting actions\\n Fix ancient cavern emote clue location\\n Fix south-of-mausoleum hot-cold clue location\\n Fix Slayer Tower emote clue\\n Fix Al Kharid mine hot-cold clue location\\n Fix South of Jiggig hot-cold clue location\\n Fix stepping stone object IDs east of Shilo Village\\n\\nLars (1):\\n CONTRIBUTING.md - Provide link to coding conventions\\n\\nMatthew Smith (1):\\n Toggle confirmation on exit (#3834)\\n\\nMax Weber (6):\\n runelite-client: Test Overlay equality\\n runelite-client: Prevent recursion when chat notifier notifies to chat\\n cache: consolidate ID class printing and split ObjectID\\n Update autogenerated ID files\\n runelite-client: remove unused import in DemonicGorillaOverlay\\n kourendlibrary: Hide navbutton when not in the library\\n\\nSeth (2):\\n agilityShortcutLocation: Fix shilo village agility marker\\n configPanel: remove tooltips for JTextArea\\n\\nTememexas (1):\\n Add option to highlight tiles under ground items (#3895)\\n\\nTomas Slusny (16):\\n Disable camera zoom by default\\n Use Object.equals for Overlays\\n Fix overlay collection modification checks\\n Consider anything with GE > 0 as tradeable too\\n Ignore highlights when value is set to 0 (disable)\\n Make hidden items color configurable\\n Reduce code duplicity in resetOverlay method\\n Fix loading of core overlay properties\\n Mark InfoboxOverlay as singleton\\n Fix UnsupportedOperationException in ground items\\n Change ground items box size from 6 px to 8 px\\n Reload overlay settings on plugin change\\n Disable OSB prices by default\\n Fix ground item swapped price values\\n Optional support for recoloring right-click menu\\n Fix ground marker plugin layer\\n\\npsikoi (2):\\n Added boolean onSelectedEvent to Material Tabs\\n Refactor Hiscore EndPoints to Material Tab\\n\\nraqes (1):\\n Add wiki link to info panel\\n
\\n\",\"image\":\"/img/blog/1.4.4-Release/mta.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-06-21-07-00-1.4.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,4/KAA6gL,MAAQ","file":"static/js/49.35120d66.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.4 Release\",\"description\":\"Mage training arena plugin, prayer potion indicator, and preserve prayer tracking\",\"author\":\"Adam\",\"body\":\"A Mage Training Arena was added from\\n@Jasper Ketelaar which can solve\\ntelekinetic mazes, and deduce alchemy room rotations from discovery of items in\\nit.
\\n
\\nThe prayer plugin now indicates when you can drink a prayer potion to get the\\nfull effect by flashing the prayer orb. It also has a new tooltip which shows\\nyour current prayer bonus and approximation on how much longer your prayer\\npoints will last.
\\n
\\nThe boosts plugin now takes into account the preserve prayer when showing when\\nthe next stat drain takes place.
\\nThe grand exchange plugin can now show the "actively traded" OSBuddy price on\\nthe grand exchange interface now, if enabled.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix infobox overlay resetting its position after each client restart. \\nAdd dodgy necklace charge counter and notification to item charges plugin \\nFix attack styles plugin not correctly hiding staff of the dead defence style \\nMade tagging NPCs no longer interrupt actions \\nHide Kourend Library navigation button when not in the library \\nFix Shilo Village stepping stones agilty marker \\nAdd option to highlight tiles under ground items \\nRe-add ability to show hidden items on right click menu, with a toggle this\\ntime \\nAdded a link to the wiki to the info panel \\nMore clue fixes \\nFix icons of onyx items in skill calculator \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n4th8 (1):\\n skill calculator: fix item id for some zenyte and onyx items\\n\\nAdam (20):\\n Revert " Fix NMZ points overlay appearing in the KBD instance lair"\\n ground items: default highlight over value to 0\\n ground items: rename highlight > value key to reset the defaults\\n ground items: don't recolor menu if hidden\\n ground items: remove unnecessary copy of collected ground items\\n examine plugin: update object examine id unpacking\\n runelite-client: close properties input stream\\n world map plugin: add missing break after agility shortcuts/tooltips case\\n overlay util: mark explicit fallthrough in transformPosition\\n demonic gorillas plugin: remove unused variable\\n config invocation handler: replace args with literal null\\n screenshot plugin: fix unsafe multithreaded usage of DateFormat\\n runelite-client: remove various redundant null checks\\n timers plugin: fix sotd timer removal logic\\n prayer plugin: add dose indicator\\n runelite-client: use new bulk item price api\\n http-service: crawl tradable item prices instead of queueing on demand\\n item charges plugin: add dodgy necklace\\n attack styles: add defensive casting to weapon types for staffs\\n http-service: switch json serializer to jackson\\n\\nAeonLucid (1):\\n ge plugin: add OSB actively traded price\\n\\nAlexsuperfly (1):\\n Preserve prayer tracking in boost timer (#3530)\\n\\nHarry (1):\\n Improve and cleanup code in runelite-client (#3859)\\n\\nJasper Ketelaar (1):\\n runelite-client: add mage training arena plugin\\n\\nJonathan Beaudoin (1):\\n Add tooltip to absorption panel\\n\\nJordan Atwood (8):\\n Add Staff of the Dead timer\\n Prevent NPC tagging from interrupting actions\\n Fix ancient cavern emote clue location\\n Fix south-of-mausoleum hot-cold clue location\\n Fix Slayer Tower emote clue\\n Fix Al Kharid mine hot-cold clue location\\n Fix South of Jiggig hot-cold clue location\\n Fix stepping stone object IDs east of Shilo Village\\n\\nLars (1):\\n CONTRIBUTING.md - Provide link to coding conventions\\n\\nMatthew Smith (1):\\n Toggle confirmation on exit (#3834)\\n\\nMax Weber (6):\\n runelite-client: Test Overlay equality\\n runelite-client: Prevent recursion when chat notifier notifies to chat\\n cache: consolidate ID class printing and split ObjectID\\n Update autogenerated ID files\\n runelite-client: remove unused import in DemonicGorillaOverlay\\n kourendlibrary: Hide navbutton when not in the library\\n\\nSeth (2):\\n agilityShortcutLocation: Fix shilo village agility marker\\n configPanel: remove tooltips for JTextArea\\n\\nTememexas (1):\\n Add option to highlight tiles under ground items (#3895)\\n\\nTomas Slusny (16):\\n Disable camera zoom by default\\n Use Object.equals for Overlays\\n Fix overlay collection modification checks\\n Consider anything with GE > 0 as tradeable too\\n Ignore highlights when value is set to 0 (disable)\\n Make hidden items color configurable\\n Reduce code duplicity in resetOverlay method\\n Fix loading of core overlay properties\\n Mark InfoboxOverlay as singleton\\n Fix UnsupportedOperationException in ground items\\n Change ground items box size from 6 px to 8 px\\n Reload overlay settings on plugin change\\n Disable OSB prices by default\\n Fix ground item swapped price values\\n Optional support for recoloring right-click menu\\n Fix ground marker plugin layer\\n\\npsikoi (2):\\n Added boolean onSelectedEvent to Material Tabs\\n Refactor Hiscore EndPoints to Material Tab\\n\\nraqes (1):\\n Add wiki link to info panel\\n
\\n\",\"image\":\"/img/blog/1.4.4-Release/mta.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/5.34d07528.chunk.js b/static/js/5.34d07528.chunk.js
deleted file mode 100644
index 1fd7d23fb..000000000
--- a/static/js/5.34d07528.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[5],Array(126).concat([function(e,n,a){"use strict";var t=a(0);var s=()=>Object(t.g)("section",{id:"footer"},Object(t.g)("div",{class:"content-section"},Object(t.g)("footer",null,Object(t.g)("hr",null),"Developed with ",Object(t.g)("i",{class:"fas fa-heart"})," and"," ",Object(t.g)("i",{class:"fas fa-coffee"})," using"," ",Object(t.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(t.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(t.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(t.g)("a",{href:"/atom.xml",class:"float-right"},Object(t.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));n.a=e=>{let{children:n,fullWidth:a,...d}=e;return d.class=d.class?"container "+d.class:"container",d.style={...d.style||{},maxWidth:a?"100%":""},Object(t.g)("div",Object.assign({},d,{id:"layout"}),n,Object(t.g)(s,null))}},,,function(e,n,a){"use strict";function t(e,n,a,t,s,d){var l=Math.round(Math.abs(e)/n);return d?l<=1?s:"in "+l+" "+a+"s":l<=1?t:l+" "+a+"s ago"}var s=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var n=Date.now()-e.getTime();if(Math.abs(n)<6e4)return"just now";for(var a=0;a{const t=s()(n);return e.set(t.id.toLowerCase(),()=>a(282)(`./${t.file}.md`).then(e=>({id:t.id,date:t.date,...e})))},new Map),l=e=>{const n=d.get(e.toLowerCase());return n?n():Promise.resolve({})},m=async()=>{const e=d.values();for(let n of e){const e=await n();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};n.a=d},function(e,n){e.exports=e=>{const n=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!n&&!n[1]&&!n[2]&&!n[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const a=n[1],t=n[2],s=a+n[3],d=(a+"-"+t).split("-");return{date:new Date(Date.UTC(parseInt(d[0],10),parseInt(d[1],10)-1,parseInt(d[2],10),parseInt(d[3],10),parseInt(d[4],10))),id:s,file:e}}},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281};function s(e){var n=d(e);return a(n)}function d(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=d,e.exports=s,s.id=136},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":[295,20],"./2017-12-21-00-00-1.2.10-Release.md":[296,21],"./2018-01-12-00-00-1.2.11-Release.md":[297,22],"./2018-01-18-00-00-1.2.12-Release.md":[298,23],"./2018-01-25-00-00-1.2.13-Release.md":[299,24],"./2018-02-01-00-00-1.2.14-Release.md":[300,25],"./2018-02-08-00-00-1.2.15-Release.md":[301,26],"./2018-02-15-00-00-1.2.16-Release.md":[302,27],"./2018-02-22-00-00-1.2.17-Release.md":[303,28],"./2018-03-01-00-00-1.2.18-Release.md":[304,29],"./2018-03-08-00-00-1.2.19-Release.md":[305,30],"./2018-03-15-00-00-1.3.0-Release.md":[306,31],"./2018-03-22-00-00-1.3.1-Release.md":[307,32],"./2018-03-29-00-00-1.3.2-Release.md":[308,33],"./2018-04-05-00-00-1.3.3-Release.md":[309,34],"./2018-04-12-00-00-1.3.4-Release.md":[310,35],"./2018-04-19-00-00-1.3.5-Release.md":[311,36],"./2018-04-26-00-00-1.3.6-Release.md":[312,37],"./2018-05-03-00-00-1.3.7-Release.md":[313,38],"./2018-05-10-00-00-1.3.8-Release.md":[314,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[315,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[316,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[317,42],"./2018-05-18-00-00-1.3.9-Release.md":[318,43],"./2018-05-24-00-00-1.4.0-Release.md":[319,44],"./2018-05-25-23-00-Phishing-Attempts.md":[320,45],"./2018-05-31-07-00-1.4.1-Release.md":[321,46],"./2018-06-07-07-00-1.4.2-Release.md":[322,47],"./2018-06-14-07-00-1.4.3-Release.md":[323,48],"./2018-06-21-07-00-1.4.4-Release.md":[324,49],"./2018-06-28-07-00-1.4.5-Release.md":[325,50],"./2018-07-05-07-00-1.4.6-Release.md":[326,51],"./2018-07-12-07-00-1.4.7-Release.md":[327,52],"./2018-07-19-07-00-1.4.8-Release.md":[328,53],"./2018-07-26-07-00-1.4.9-Release.md":[329,54],"./2018-08-02-10-00-1.4.10-Release.md":[330,55],"./2018-08-09-10-00-1.4.11-Release.md":[331,56],"./2018-08-16-10-00-1.4.12-Release.md":[332,57],"./2018-08-23-10-00-1.4.13-Release.md":[333,58],"./2018-08-30-10-00-1.4.15-Release.md":[334,59],"./2018-09-06-10-00-1.4.16-Release.md":[335,60],"./2018-09-13-10-00-1.4.17-Release.md":[336,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[337,62],"./2018-09-20-10-00-1.4.18-Release.md":[338,63],"./2018-09-27-10-00-1.4.19-Release.md":[339,64],"./2018-10-04-10-00-1.4.20-Release.md":[340,65],"./2018-10-11-10-00-1.4.21-Release.md":[341,66],"./2018-10-18-10-00-1.4.22-Release.md":[342,67],"./2018-10-25-10-00-1.4.23-Release.md":[343,68],"./2018-11-01-10-00-1.4.24-Release.md":[344,69],"./2018-11-08-10-00-1.4.25-Release.md":[345,70],"./2018-11-15-10-00-1.4.26-Release.md":[346,71],"./2018-11-16-12-00-1.5.0-Release.md":[347,72],"./2018-11-22-10-00-1.5.1-Release.md":[348,73],"./2018-11-29-10-00-1.5.2-Release.md":[349,74],"./2018-12-06-10-00-1.5.3-Release.md":[350,75],"./2018-12-13-10-00-1.5.4-Release.md":[351,76],"./2018-12-20-10-00-1.5.5-Release.md":[352,77],"./2019-01-03-10-00-1.5.6-Release.md":[353,78],"./2019-01-10-10-00-1.5.7-Release.md":[354,79],"./2019-01-17-10-00-1.5.8-Release.md":[355,80],"./2019-01-24-10-00-1.5.9-Release.md":[356,81],"./2019-01-31-10-00-1.5.10-Release.md":[357,82],"./2019-02-07-10-00-1.5.11-Release.md":[358,83],"./2019-02-14-10-00-1.5.12-Release.md":[359,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[360,85],"./2019-02-21-10-00-1.5.13-Release.md":[361,86],"./2019-02-28-10-00-1.5.14-Release.md":[362,87],"./2019-03-07-10-00-1.5.15-Release.md":[363,88],"./2019-03-14-10-00-1.5.16-Release.md":[364,89],"./2019-03-21-12-00-1.5.17-Release.md":[365,90],"./2019-03-28-10-00-1.5.18-Release.md":[366,91],"./2019-04-11-10-00-1.5.19-Release.md":[367,92],"./2019-04-18-10-00-1.5.20-Release.md":[368,93],"./2019-04-25-10-00-1.5.21-Release.md":[369,94],"./2019-05-03-10-00-1.5.22-Release.md":[370,95],"./2019-05-16-10-00-1.5.23-Release.md":[371,96],"./2019-05-30-10-00-1.5.25-Release.md":[372,97],"./2019-06-06-10-00-1.5.26-Release.md":[373,98],"./2019-06-20-10-00-1.5.27-Release.md":[374,99],"./2019-07-04-10-00-1.5.28-Release.md":[375,100],"./2019-07-18-10-00-1.5.29-Release.md":[376,101],"./2019-08-01-10-00-1.5.30-Release.md":[377,102],"./2019-08-15-10-00-1.5.31-Release.md":[378,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[379,104],"./2019-08-29-10-00-1.5.32-Release.md":[380,105],"./2019-09-12-10-00-1.5.33-Release.md":[381,106],"./2019-09-26-10-00-1.5.34-Release.md":[382,107],"./2019-10-02-10-00-1.5.35-Release.md":[383,108],"./2019-10-17-10-00-1.5.36-Release.md":[384,109],"./2019-10-30-10-00-1.5.37-Release.md":[385,110],"./2019-11-14-10-00-1.5.40-Release.md":[386,111],"./2019-11-28-10-00-1.5.42-Release.md":[387,112],"./2019-12-16-10-00-1.5.43-Release.md":[388,113],"./2019-12-19-10-00-1.6.0-Release.md":[389,114],"./2020-01-09-10-00-1.6.1-Release.md":[390,115],"./2020-01-16-10-00-1.6.2-Release.md":[391,116],"./2020-01-22-10-00-1.6.4-Release.md":[392,117],"./2020-01-29-10-00-1.6.5-Release.md":[393,118],"./2020-02-13-10-00-1.6.6-Release.md":[394,119],"./2020-02-27-10-00-1.6.8-Release.md":[395,120],"./2020-03-05-10-00-1.6.9-Release.md":[396,121],"./2020-03-26-10-00-1.6.10-Release.md":[397,122],"./2020-04-16-10-00-1.6.11-Release.md":[398,123],"./2020-05-01-10-00-1.6.13-Release.md":[399,124],"./2020-05-09-10-00-1.6.14-Release.md":[400,125],"./2020-05-28-10-00-1.6.17-Release.md":[401,126],"./2020-06-12-10-00-1.6.19-Release.md":[402,127],"./2020-06-18-10-00-1.6.20-Release.md":[403,128],"./2020-06-25-10-00-1.6.21-Release.md":[404,129],"./2020-07-16-10-00-1.6.22-Release.md":[405,130],"./2020-07-23-10-00-1.6.23-Release.md":[406,131],"./2020-08-26-10-00-1.6.25-Release.md":[407,132],"./2020-09-23-10-00-1.6.27-Release.md":[408,133],"./2020-10-07-10-00-1.6.28-Release.md":[409,134],"./2020-11-11-10-00-1.6.31-Release.md":[410,135],"./2020-12-02-10-00-1.6.33-Release.md":[411,136],"./2021-01-06-10-00-1.6.36-Release.md":[412,137],"./2021-01-27-10-00-1.6.38-Release.md":[413,138],"./2021-02-13-00-00-1.7.0-Release.md":[414,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[415,140],"./2021-03-24-10-00-1.7.3-Release.md":[416,141],"./2021-05-12-10-00-1.7.7-Release.md":[417,142],"./2021-05-28-10-00-1.7.10-Release.md":[418,143],"./2021-06-23-10-00-1.7.13-Release.md":[419,144],"./2021-07-14-10-00-1.7.16-Release.md":[420,145],"./2021-07-21-10-00-1.7.17-Release.md":[421,146],"./2021-09-06-10-00-1.7.22-Release.md":[422,147],"./2021-10-06-10-00-1.7.25-Release.md":[423,148],"./2021-10-28-19-00-1.8.0-Release.md":[424,149],"./2021-12-16-19-00-1.8.7-Release.md":[425,150],"./2022-03-09-19-00-1.8.13-Release.md":[426,151],"./2022-05-11-19-00-1.8.19-Release.md":[427,152],"./2022-06-17-19-00-1.8.24-Release.md":[428,153],"./2022-07-13-19-00-1.8.27-Release.md":[429,154],"./2022-08-21-19-00-1.8.31-Release.md":[430,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[431,156],"./2022-10-05-15-00-1.9.0-Release.md":[432,157],"./2022-12-07-15-00-1.9.5-Release.md":[433,158],"./2023-01-22-10-00-security-incident-jan21.md":[434,159],"./2023-02-18-15-00-1.9.11-Release.md":[435,160],"./2023-05-13-15-00-1.10.0-Release.md":[436,161],"./2023-07-01-15-00-1.10.6-Release.md":[437,162],"./2023-09-09-15-00-1.10.12-Release.md":[438,163],"./2023-11-05-10-00-1.10.15-Release.md":[439,164]};function s(e){if(!a.o(t,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=t[e],s=n[0];return a.e(n[1]).then((function(){return a.t(s,7)}))}s.keys=function(){return Object.keys(t)},s.id=282,e.exports=s},,,,,,,,function(e,n,a){"use strict";var t=a(0);n.a=e=>{let{tagName:n,html:a}=e;return Object(t.g)(n,{dangerouslySetInnerHTML:{__html:a}})}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,n,a){"use strict";a.r(n);var t=a(0),s=a(129),d=a.n(s),l=a(126),m=a(134),o=a(7),R=a.n(o),i=a(46),c=a(5),u=a(47),f=(a(133),a(290));const r=e=>{let{date:n,title:a,description:s,author:m,body:o,image:c}=e;return o?Object(t.g)(l.a,null,Object(t.g)(i.a,{title:`${a} - ${R.a.title}`,description:s,author:m,image:c,type:"article"}),Object(t.g)("section",{id:"blog"},Object(t.g)("div",{class:"content-section"},Object(t.g)("div",{class:"page-header"},Object(t.g)("h1",null,a),Object(t.g)("p",{class:"text-muted"},Object(t.g)("span",{title:n},d()(n))," by ",m)),Object(t.g)("div",{class:"markdown-body news-page"},Object(t.g)(f.a,{tagName:"div",html:o}))))):Object(t.g)(u.a,null)};n.default=e=>{let{id:n}=e;return Object(t.g)(c.a,{getComponent:()=>Object(m.b)(n).then(r)})}}])]);
-//# sourceMappingURL=5.34d07528.chunk.js.map
\ No newline at end of file
diff --git a/static/js/5.34d07528.chunk.js.map b/static/js/5.34d07528.chunk.js.map
deleted file mode 100644
index 67dbb0e5e..000000000
--- a/static/js/5.34d07528.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","components/inner-html-helper.js","routes/blog-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","then","md","Map","getBlog","post","get","Promise","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","InnerHTMLHelper","tagName","html","dangerouslySetInnerHTML","__html","buildPost","title","description","author","body","image","Meta","hero","type","ago","NotFound","BlogShow","_ref2","Async","getComponent"],"mappings":"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ACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAOlB,QAAQC,UAAUP,MAAK,WAC7B,IAAI4B,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMzE,EAAKgF,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAI/B,MAAK,WACzC,OAAO0B,EAAoBM,EAAEjF,EAAI,MAGnC+E,EAAoB1C,KAAO,WAC1B,OAAO3B,OAAO2B,KAAKkC,IAEpBQ,EAAoB/E,GAAK,IACzB2B,EAAOC,QAAUmD,G,oCCxlBjB,WAKeG,IAHS9E,IAAA,IAAC,QAAE+E,EAAO,KAAEC,GAAMhF,EAAA,OACxCL,YAAEoF,EAAS,CAAEE,wBAAyB,CAAEC,OAAQF,O,0LCHlD,+GAWA,MAAMG,EAAYnF,IAAwD,IAAvD,KAAEyB,EAAI,MAAE2D,EAAK,YAAEC,EAAW,OAAEC,EAAM,KAAEC,EAAI,MAAEC,GAAOxF,EAClE,OAAKuF,EAKH5F,YAACI,IAAM,KACLJ,YAAC8F,IAAI,CACHL,MAAQ,GAAEA,OAAWM,IAAKN,QAC1BC,YAAaA,EACbC,OAAQA,EACRE,MAAOA,EACPG,KAAM,YAERhG,YAAA,WAASC,GAAG,QACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAKyF,GACLzF,YAAA,KAAGE,MAAM,cACPF,YAAA,QAAMyF,MAAO3D,GAAOmE,IAAInE,IAAa,OAAK6D,IAI9C3F,YAAA,OAAKE,MAAM,2BACTF,YAACmF,IAAe,CAACC,QAAQ,MAAMC,KAAMO,QAtBtC5F,YAACkG,IAAQ,OAkCLC,UAJEC,IAAA,IAAC,GAAEnG,GAAImG,EAAA,OACtBpG,YAACqG,IAAK,CAACC,aAAcA,IAAMjD,YAAQpD,GAAIiD,KAAKsC","file":"static/js/5.34d07528.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t295,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t296,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t297,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t298,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t299,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t300,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t301,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t302,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t303,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t304,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t305,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t306,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t307,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t308,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t309,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t310,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t311,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t312,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t313,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t314,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t315,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t318,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t319,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t320,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t321,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t322,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t323,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t324,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t325,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t326,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t327,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t328,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t329,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t330,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t331,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t332,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t333,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t334,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t335,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t336,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t337,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t338,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t339,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t340,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t341,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t342,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t343,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t344,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t345,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t346,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t347,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t348,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t349,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t350,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t351,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t352,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t353,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t354,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t355,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t356,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t357,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t358,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t359,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t360,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t361,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t362,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t363,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t364,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t365,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t366,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t367,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t368,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t369,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t370,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t371,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t372,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t373,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t374,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t375,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t376,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t377,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t378,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t379,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t380,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t381,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t382,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t383,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t384,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t385,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t386,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t387,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t388,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t389,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t390,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t391,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t392,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t393,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t394,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t395,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t396,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t397,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t398,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t399,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t400,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t401,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t402,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t403,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t404,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t405,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t406,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t407,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t408,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t409,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t410,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t411,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t412,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t413,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t414,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t415,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t416,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t417,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t418,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t419,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t420,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t421,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t422,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t423,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t424,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t425,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t426,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t427,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t428,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t429,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t430,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t431,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t432,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t433,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t434,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t435,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t436,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t437,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t438,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t439,\n\t\t164\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 282;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\n\nconst InnerHTMLHelper = ({ tagName, html }) =>\n h(tagName, { dangerouslySetInnerHTML: { __html: html } })\n\nexport default InnerHTMLHelper\n","import { h } from 'preact'\nimport ago from 's-ago'\nimport Layout from '../components/layout'\nimport { getBlog } from '../blog'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport Async from '../components/async'\nimport NotFound from '../components/not-found'\nimport './blog.scss'\nimport InnerHTMLHelper from '../components/inner-html-helper'\n\nconst buildPost = ({ date, title, description, author, body, image }) => {\n if (!body) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nconst BlogShow = ({ id }) => (\n getBlog(id).then(buildPost)} />\n)\n\nexport default BlogShow\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/5.7be7893a.chunk.js b/static/js/5.7be7893a.chunk.js
new file mode 100644
index 000000000..e9074d527
--- /dev/null
+++ b/static/js/5.7be7893a.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[5],Array(126).concat([function(e,n,a){"use strict";var t=a(0);var s=()=>Object(t.g)("section",{id:"footer"},Object(t.g)("div",{class:"content-section"},Object(t.g)("footer",null,Object(t.g)("hr",null),"Developed with ",Object(t.g)("i",{class:"fas fa-heart"})," and"," ",Object(t.g)("i",{class:"fas fa-coffee"})," using"," ",Object(t.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(t.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(t.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(t.g)("a",{href:"/atom.xml",class:"float-right"},Object(t.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));n.a=e=>{let{children:n,fullWidth:a,...d}=e;return d.class=d.class?"container "+d.class:"container",d.style={...d.style||{},maxWidth:a?"100%":""},Object(t.g)("div",Object.assign({},d,{id:"layout"}),n,Object(t.g)(s,null))}},,,function(e,n,a){"use strict";function t(e,n,a,t,s,d){var l=Math.round(Math.abs(e)/n);return d?l<=1?s:"in "+l+" "+a+"s":l<=1?t:l+" "+a+"s ago"}var s=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var n=Date.now()-e.getTime();if(Math.abs(n)<6e4)return"just now";for(var a=0;a{const t=s()(n);return e.set(t.id.toLowerCase(),()=>a(283)(`./${t.file}.md`).then(e=>({id:t.id,date:t.date,...e})))},new Map),l=e=>{const n=d.get(e.toLowerCase());return n?n():Promise.resolve({})},m=async()=>{const e=d.values();for(let n of e){const e=await n();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};n.a=d},function(e,n){e.exports=e=>{const n=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!n&&!n[1]&&!n[2]&&!n[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const a=n[1],t=n[2],s=a+n[3],d=(a+"-"+t).split("-");return{date:new Date(Date.UTC(parseInt(d[0],10),parseInt(d[1],10)-1,parseInt(d[2],10),parseInt(d[3],10),parseInt(d[4],10))),id:s,file:e}}},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281,"./2024-02-24-23-00-1.10.23-Release.md":282};function s(e){var n=d(e);return a(n)}function d(e){if(!a.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=d,e.exports=s,s.id=136},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":[296,20],"./2017-12-21-00-00-1.2.10-Release.md":[297,21],"./2018-01-12-00-00-1.2.11-Release.md":[298,22],"./2018-01-18-00-00-1.2.12-Release.md":[299,23],"./2018-01-25-00-00-1.2.13-Release.md":[300,24],"./2018-02-01-00-00-1.2.14-Release.md":[301,25],"./2018-02-08-00-00-1.2.15-Release.md":[302,26],"./2018-02-15-00-00-1.2.16-Release.md":[303,27],"./2018-02-22-00-00-1.2.17-Release.md":[304,28],"./2018-03-01-00-00-1.2.18-Release.md":[305,29],"./2018-03-08-00-00-1.2.19-Release.md":[306,30],"./2018-03-15-00-00-1.3.0-Release.md":[307,31],"./2018-03-22-00-00-1.3.1-Release.md":[308,32],"./2018-03-29-00-00-1.3.2-Release.md":[309,33],"./2018-04-05-00-00-1.3.3-Release.md":[310,34],"./2018-04-12-00-00-1.3.4-Release.md":[311,35],"./2018-04-19-00-00-1.3.5-Release.md":[312,36],"./2018-04-26-00-00-1.3.6-Release.md":[313,37],"./2018-05-03-00-00-1.3.7-Release.md":[314,38],"./2018-05-10-00-00-1.3.8-Release.md":[315,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[316,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[317,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[318,42],"./2018-05-18-00-00-1.3.9-Release.md":[319,43],"./2018-05-24-00-00-1.4.0-Release.md":[320,44],"./2018-05-25-23-00-Phishing-Attempts.md":[321,45],"./2018-05-31-07-00-1.4.1-Release.md":[322,46],"./2018-06-07-07-00-1.4.2-Release.md":[323,47],"./2018-06-14-07-00-1.4.3-Release.md":[324,48],"./2018-06-21-07-00-1.4.4-Release.md":[325,49],"./2018-06-28-07-00-1.4.5-Release.md":[326,50],"./2018-07-05-07-00-1.4.6-Release.md":[327,51],"./2018-07-12-07-00-1.4.7-Release.md":[328,52],"./2018-07-19-07-00-1.4.8-Release.md":[329,53],"./2018-07-26-07-00-1.4.9-Release.md":[330,54],"./2018-08-02-10-00-1.4.10-Release.md":[331,55],"./2018-08-09-10-00-1.4.11-Release.md":[332,56],"./2018-08-16-10-00-1.4.12-Release.md":[333,57],"./2018-08-23-10-00-1.4.13-Release.md":[334,58],"./2018-08-30-10-00-1.4.15-Release.md":[335,59],"./2018-09-06-10-00-1.4.16-Release.md":[336,60],"./2018-09-13-10-00-1.4.17-Release.md":[337,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[338,62],"./2018-09-20-10-00-1.4.18-Release.md":[339,63],"./2018-09-27-10-00-1.4.19-Release.md":[340,64],"./2018-10-04-10-00-1.4.20-Release.md":[341,65],"./2018-10-11-10-00-1.4.21-Release.md":[342,66],"./2018-10-18-10-00-1.4.22-Release.md":[343,67],"./2018-10-25-10-00-1.4.23-Release.md":[344,68],"./2018-11-01-10-00-1.4.24-Release.md":[345,69],"./2018-11-08-10-00-1.4.25-Release.md":[346,70],"./2018-11-15-10-00-1.4.26-Release.md":[347,71],"./2018-11-16-12-00-1.5.0-Release.md":[348,72],"./2018-11-22-10-00-1.5.1-Release.md":[349,73],"./2018-11-29-10-00-1.5.2-Release.md":[350,74],"./2018-12-06-10-00-1.5.3-Release.md":[351,75],"./2018-12-13-10-00-1.5.4-Release.md":[352,76],"./2018-12-20-10-00-1.5.5-Release.md":[353,77],"./2019-01-03-10-00-1.5.6-Release.md":[354,78],"./2019-01-10-10-00-1.5.7-Release.md":[355,79],"./2019-01-17-10-00-1.5.8-Release.md":[356,80],"./2019-01-24-10-00-1.5.9-Release.md":[357,81],"./2019-01-31-10-00-1.5.10-Release.md":[358,82],"./2019-02-07-10-00-1.5.11-Release.md":[359,83],"./2019-02-14-10-00-1.5.12-Release.md":[360,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[361,85],"./2019-02-21-10-00-1.5.13-Release.md":[362,86],"./2019-02-28-10-00-1.5.14-Release.md":[363,87],"./2019-03-07-10-00-1.5.15-Release.md":[364,88],"./2019-03-14-10-00-1.5.16-Release.md":[365,89],"./2019-03-21-12-00-1.5.17-Release.md":[366,90],"./2019-03-28-10-00-1.5.18-Release.md":[367,91],"./2019-04-11-10-00-1.5.19-Release.md":[368,92],"./2019-04-18-10-00-1.5.20-Release.md":[369,93],"./2019-04-25-10-00-1.5.21-Release.md":[370,94],"./2019-05-03-10-00-1.5.22-Release.md":[371,95],"./2019-05-16-10-00-1.5.23-Release.md":[372,96],"./2019-05-30-10-00-1.5.25-Release.md":[373,97],"./2019-06-06-10-00-1.5.26-Release.md":[374,98],"./2019-06-20-10-00-1.5.27-Release.md":[375,99],"./2019-07-04-10-00-1.5.28-Release.md":[376,100],"./2019-07-18-10-00-1.5.29-Release.md":[377,101],"./2019-08-01-10-00-1.5.30-Release.md":[378,102],"./2019-08-15-10-00-1.5.31-Release.md":[379,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[380,104],"./2019-08-29-10-00-1.5.32-Release.md":[381,105],"./2019-09-12-10-00-1.5.33-Release.md":[382,106],"./2019-09-26-10-00-1.5.34-Release.md":[383,107],"./2019-10-02-10-00-1.5.35-Release.md":[384,108],"./2019-10-17-10-00-1.5.36-Release.md":[385,109],"./2019-10-30-10-00-1.5.37-Release.md":[386,110],"./2019-11-14-10-00-1.5.40-Release.md":[387,111],"./2019-11-28-10-00-1.5.42-Release.md":[388,112],"./2019-12-16-10-00-1.5.43-Release.md":[389,113],"./2019-12-19-10-00-1.6.0-Release.md":[390,114],"./2020-01-09-10-00-1.6.1-Release.md":[391,115],"./2020-01-16-10-00-1.6.2-Release.md":[392,116],"./2020-01-22-10-00-1.6.4-Release.md":[393,117],"./2020-01-29-10-00-1.6.5-Release.md":[394,118],"./2020-02-13-10-00-1.6.6-Release.md":[395,119],"./2020-02-27-10-00-1.6.8-Release.md":[396,120],"./2020-03-05-10-00-1.6.9-Release.md":[397,121],"./2020-03-26-10-00-1.6.10-Release.md":[398,122],"./2020-04-16-10-00-1.6.11-Release.md":[399,123],"./2020-05-01-10-00-1.6.13-Release.md":[400,124],"./2020-05-09-10-00-1.6.14-Release.md":[401,125],"./2020-05-28-10-00-1.6.17-Release.md":[402,126],"./2020-06-12-10-00-1.6.19-Release.md":[403,127],"./2020-06-18-10-00-1.6.20-Release.md":[404,128],"./2020-06-25-10-00-1.6.21-Release.md":[405,129],"./2020-07-16-10-00-1.6.22-Release.md":[406,130],"./2020-07-23-10-00-1.6.23-Release.md":[407,131],"./2020-08-26-10-00-1.6.25-Release.md":[408,132],"./2020-09-23-10-00-1.6.27-Release.md":[409,133],"./2020-10-07-10-00-1.6.28-Release.md":[410,134],"./2020-11-11-10-00-1.6.31-Release.md":[411,135],"./2020-12-02-10-00-1.6.33-Release.md":[412,136],"./2021-01-06-10-00-1.6.36-Release.md":[413,137],"./2021-01-27-10-00-1.6.38-Release.md":[414,138],"./2021-02-13-00-00-1.7.0-Release.md":[415,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[416,140],"./2021-03-24-10-00-1.7.3-Release.md":[417,141],"./2021-05-12-10-00-1.7.7-Release.md":[418,142],"./2021-05-28-10-00-1.7.10-Release.md":[419,143],"./2021-06-23-10-00-1.7.13-Release.md":[420,144],"./2021-07-14-10-00-1.7.16-Release.md":[421,145],"./2021-07-21-10-00-1.7.17-Release.md":[422,146],"./2021-09-06-10-00-1.7.22-Release.md":[423,147],"./2021-10-06-10-00-1.7.25-Release.md":[424,148],"./2021-10-28-19-00-1.8.0-Release.md":[425,149],"./2021-12-16-19-00-1.8.7-Release.md":[426,150],"./2022-03-09-19-00-1.8.13-Release.md":[427,151],"./2022-05-11-19-00-1.8.19-Release.md":[428,152],"./2022-06-17-19-00-1.8.24-Release.md":[429,153],"./2022-07-13-19-00-1.8.27-Release.md":[430,154],"./2022-08-21-19-00-1.8.31-Release.md":[431,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[432,156],"./2022-10-05-15-00-1.9.0-Release.md":[433,157],"./2022-12-07-15-00-1.9.5-Release.md":[434,158],"./2023-01-22-10-00-security-incident-jan21.md":[435,159],"./2023-02-18-15-00-1.9.11-Release.md":[436,160],"./2023-05-13-15-00-1.10.0-Release.md":[437,161],"./2023-07-01-15-00-1.10.6-Release.md":[438,162],"./2023-09-09-15-00-1.10.12-Release.md":[439,163],"./2023-11-05-10-00-1.10.15-Release.md":[440,164],"./2024-02-24-23-00-1.10.23-Release.md":[441,165]};function s(e){if(!a.o(t,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=t[e],s=n[0];return a.e(n[1]).then((function(){return a.t(s,7)}))}s.keys=function(){return Object.keys(t)},s.id=283,e.exports=s},,,,,,,,function(e,n,a){"use strict";var t=a(0);n.a=e=>{let{tagName:n,html:a}=e;return Object(t.g)(n,{dangerouslySetInnerHTML:{__html:a}})}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,n,a){"use strict";a.r(n);var t=a(0),s=a(129),d=a.n(s),l=a(126),m=a(134),o=a(7),R=a.n(o),i=a(46),c=a(5),u=a(47),f=(a(133),a(291));const r=e=>{let{date:n,title:a,description:s,author:m,body:o,image:c}=e;return o?Object(t.g)(l.a,null,Object(t.g)(i.a,{title:`${a} - ${R.a.title}`,description:s,author:m,image:c,type:"article"}),Object(t.g)("section",{id:"blog"},Object(t.g)("div",{class:"content-section"},Object(t.g)("div",{class:"page-header"},Object(t.g)("h1",null,a),Object(t.g)("p",{class:"text-muted"},Object(t.g)("span",{title:n},d()(n))," by ",m)),Object(t.g)("div",{class:"markdown-body news-page"},Object(t.g)(f.a,{tagName:"div",html:o}))))):Object(t.g)(u.a,null)};n.default=e=>{let{id:n}=e;return Object(t.g)(c.a,{getComponent:()=>Object(m.b)(n).then(r)})}}])]);
+//# sourceMappingURL=5.7be7893a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/5.7be7893a.chunk.js.map b/static/js/5.7be7893a.chunk.js.map
new file mode 100644
index 000000000..3caa3a468
--- /dev/null
+++ b/static/js/5.7be7893a.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["components/footer.js","components/layout.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","components/inner-html-helper.js","routes/blog-show.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","then","md","Map","getBlog","post","get","Promise","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","InnerHTMLHelper","tagName","html","dangerouslySetInnerHTML","__html","buildPost","title","description","author","body","image","Meta","hero","type","ago","NotFound","BlogShow","_ref2","Async","getComponent"],"mappings":"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IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAOlB,QAAQC,UAAUP,MAAK,WAC7B,IAAI4B,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMzE,EAAKgF,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAI/B,MAAK,WACzC,OAAO0B,EAAoBM,EAAEjF,EAAI,MAGnC+E,EAAoB1C,KAAO,WAC1B,OAAO3B,OAAO2B,KAAKkC,IAEpBQ,EAAoB/E,GAAK,IACzB2B,EAAOC,QAAUmD,G,oCC5lBjB,WAKeG,IAHS9E,IAAA,IAAC,QAAE+E,EAAO,KAAEC,GAAMhF,EAAA,OACxCL,YAAEoF,EAAS,CAAEE,wBAAyB,CAAEC,OAAQF,O,2LCHlD,+GAWA,MAAMG,EAAYnF,IAAwD,IAAvD,KAAEyB,EAAI,MAAE2D,EAAK,YAAEC,EAAW,OAAEC,EAAM,KAAEC,EAAI,MAAEC,GAAOxF,EAClE,OAAKuF,EAKH5F,YAACI,IAAM,KACLJ,YAAC8F,IAAI,CACHL,MAAQ,GAAEA,OAAWM,IAAKN,QAC1BC,YAAaA,EACbC,OAAQA,EACRE,MAAOA,EACPG,KAAM,YAERhG,YAAA,WAASC,GAAG,QACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,UAAKyF,GACLzF,YAAA,KAAGE,MAAM,cACPF,YAAA,QAAMyF,MAAO3D,GAAOmE,IAAInE,IAAa,OAAK6D,IAI9C3F,YAAA,OAAKE,MAAM,2BACTF,YAACmF,IAAe,CAACC,QAAQ,MAAMC,KAAMO,QAtBtC5F,YAACkG,IAAQ,OAkCLC,UAJEC,IAAA,IAAC,GAAEnG,GAAImG,EAAA,OACtBpG,YAACqG,IAAK,CAACC,aAAcA,IAAMjD,YAAQpD,GAAIiD,KAAKsC","file":"static/js/5.7be7893a.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281,\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": 282\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t296,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t297,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t298,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t299,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t300,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t301,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t302,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t303,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t304,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t305,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t306,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t307,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t308,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t309,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t310,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t311,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t312,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t313,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t314,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t315,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t319,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t320,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t321,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t322,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t323,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t324,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t325,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t326,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t327,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t328,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t329,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t330,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t331,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t332,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t333,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t334,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t335,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t336,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t337,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t338,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t339,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t340,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t341,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t342,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t343,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t344,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t345,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t346,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t347,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t348,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t349,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t350,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t351,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t352,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t353,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t354,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t355,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t356,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t357,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t358,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t359,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t360,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t361,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t362,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t363,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t364,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t365,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t366,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t367,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t368,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t369,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t370,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t371,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t372,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t373,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t374,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t375,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t376,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t377,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t378,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t379,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t380,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t381,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t382,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t383,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t384,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t385,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t386,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t387,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t388,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t389,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t390,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t391,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t392,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t393,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t394,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t395,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t396,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t397,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t398,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t399,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t400,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t401,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t402,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t403,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t404,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t405,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t406,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t407,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t408,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t409,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t410,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t411,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t412,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t413,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t414,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t415,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t416,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t417,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t418,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t419,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t420,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t421,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t422,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t423,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t424,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t425,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t426,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t427,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t428,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t429,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t430,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t431,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t432,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t433,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t434,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t435,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t436,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t437,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t438,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t439,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t440,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t441,\n\t\t165\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 283;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\n\nconst InnerHTMLHelper = ({ tagName, html }) =>\n h(tagName, { dangerouslySetInnerHTML: { __html: html } })\n\nexport default InnerHTMLHelper\n","import { h } from 'preact'\nimport ago from 's-ago'\nimport Layout from '../components/layout'\nimport { getBlog } from '../blog'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport Async from '../components/async'\nimport NotFound from '../components/not-found'\nimport './blog.scss'\nimport InnerHTMLHelper from '../components/inner-html-helper'\n\nconst buildPost = ({ date, title, description, author, body, image }) => {\n if (!body) {\n return \n }\n\n return (\n \n \n \n \n )\n}\n\nconst BlogShow = ({ id }) => (\n getBlog(id).then(buildPost)} />\n)\n\nexport default BlogShow\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/50.b25e7a9a.chunk.js b/static/js/50.f3cdaa2a.chunk.js
similarity index 98%
rename from static/js/50.b25e7a9a.chunk.js
rename to static/js/50.f3cdaa2a.chunk.js
index 85d8129e8..99f126a34 100644
--- a/static/js/50.b25e7a9a.chunk.js
+++ b/static/js/50.f3cdaa2a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[50],{325:function(n,e){n.exports={title:"1.4.5 Release",description:"Inventory tags, opponent comparison, inventory viewer, and corporeal beast plugin",author:"Adam",body:'An inventory tag plugin was added which lets you tag items in your inventory,\nwhich then get outlined a specific color. Contributed by\n@kulers .
\n
\nThe opponent info plugin now has an option to show and compare the stats of an\nopponent you interact with. Contributed by\n@Nightfirecat .
\n
\nAn inventory viewer was added by @jplsek which lets\nyou overlay a view of your inventory:
\n
\nFinally, a corporeal beast plugin was added:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix animation smoother with interpolating rotation frames \nFix animation smoother to not smooth hellhound defence animation \nFix agility plugin to not reset arena timer when falling from obstacles \nFix fight cave plugin to work more reliably \nFix price of tentacle tridents \nAdd informative dialog for when the client is outdated due to game updates \nAdd configuration setting for chat commands clear chat keyboard shortcuts \nThe screenshot plugin now has a configurable hotkey for screenshots \nAdd Battle staffs to the idle notifier \nAdd !clues chat command \nAdd timer for stamina mixes \nAdd (slayer) assignment to menu swapper \nFix binding necklaces charges to reset when the necklace is destroyed \n \nEnjoy!
\n- Adam
\nNew commits \nAWPH-I (1):\n Add inventory viewer plugin\n\nAdam (20):\n runelite-client: add outdated dialog\n runescape-api: remove no longer used annotations\n Add logback-parent to dependency management and use a consistent slf4j version everywhere\n Add interface representing all callbacks the client does, and convert mixins to use it\n hooks: dispose graphics after using\n actor mixin: fix getInteracting when index is 65535\n Add interacting changed event\n chat message manager: set default colors for GAME messages\n Add corporeal beast plugin\n modelviewer: add basic animation support\n devtools: add transform command\n animation smoothing: do not interpolate to angle 0\n Revert "animation smoothing: do not interpolate to angle 0"\n animation smoothing: don\'t interpolate hellhound defence animation\n chat commands: add config setting for chat clear shortcuts\n cache: rename additional npc definition fields\n queries: replace some isHidden checks with isSelfHidden\n hiscore client: check response code of hiscore lookups\n opponent info: move interacting logic to plugin and use interacting changed event\n opponent info: add player comparison overlay\n\nDennis (1):\n animation smoothing: fix angle bounds for rotation\n\nHSJ-OSRS (2):\n Add battlestaff crafting to AnimationID\n Add battlestaff crafting to idle notifier\n\nJames (1):\n Show correct text for master clue command (#3989)\n\nJavaLeg (1):\n chat commands: add clues command\n\nJordan Atwood (3):\n Fix "West of Barbarian Village" hot-cold location\n Fix East of Brimhaven fruit tree hot-cold location\n timers plugin: Create timer for stamina mixes\n\nKamiel (1):\n npc indicators: fix consuming tag menu clicks on non-npcs\n\nMax Weber (4):\n runelite-client: Add Keybind class for configs to save and set hotkeys\n screenshot plugin: Allow hotkey to be changed from insert\n kourendlibrary: Make hiding the navbutton optional\n runelite-client: Add a equals implementation to Keybind\n\nNathen (1):\n Update library plugin encapsulation\n\nNathen Sample (1):\n Update prayer plugin encapsulation (#3962)\n\nScottMCarr (1):\n agility plugin: do not update arena timer when there is no hint arrow\n\nSu-Shing Chen (1):\n agilityShortcutLocation: Fix SE Karamja agility marker\n\nTomas Slusny (24):\n Center stretched fixed mode horizontally\n Move onActorHitsplat to mixins\n Move menuOpened to mixins\n Move updateNpcs call to mixins\n Move focusGained to mixins\n Move focusLost to mixins\n Move postItemComposition to mixins\n Move setMessage to mixins\n Move projectileMoved to mixins\n Move addChatMessage to mixins\n Move graphicsObjectCreated to mixins\n Move drawAboveOverheads call to mixins\n Move drawRegion call to mixins\n Move clientMainLoop to mixins\n Move menuActionHook to mixins\n Add documentation for Hooks\n Remove Age menu entry swapping\n Move shift-click config to top of menu swapper\n Update documentation for Callbacks interface\n Add new toBufferedOutline method to SpritePixels\n Add inventory tagging plugin\n Remove title from corp panel\n Make Fight Cave plugin more accurate\n Fix price of tentacle tridents\n\nTrees (1):\n Menu Swapper - Add Age/Assignment\n\nhoneyhoney (2):\n Added destroy item widgets\n Fixed binding necklace charges not being reset when necklace is destroyed\n
\n',image:"/img/blog/1.4.5-Release/inventorytags.png"}}}]);
-//# sourceMappingURL=50.b25e7a9a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[50],{326:function(n,e){n.exports={title:"1.4.5 Release",description:"Inventory tags, opponent comparison, inventory viewer, and corporeal beast plugin",author:"Adam",body:'An inventory tag plugin was added which lets you tag items in your inventory,\nwhich then get outlined a specific color. Contributed by\n@kulers .
\n
\nThe opponent info plugin now has an option to show and compare the stats of an\nopponent you interact with. Contributed by\n@Nightfirecat .
\n
\nAn inventory viewer was added by @jplsek which lets\nyou overlay a view of your inventory:
\n
\nFinally, a corporeal beast plugin was added:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix animation smoother with interpolating rotation frames \nFix animation smoother to not smooth hellhound defence animation \nFix agility plugin to not reset arena timer when falling from obstacles \nFix fight cave plugin to work more reliably \nFix price of tentacle tridents \nAdd informative dialog for when the client is outdated due to game updates \nAdd configuration setting for chat commands clear chat keyboard shortcuts \nThe screenshot plugin now has a configurable hotkey for screenshots \nAdd Battle staffs to the idle notifier \nAdd !clues chat command \nAdd timer for stamina mixes \nAdd (slayer) assignment to menu swapper \nFix binding necklaces charges to reset when the necklace is destroyed \n \nEnjoy!
\n- Adam
\nNew commits \nAWPH-I (1):\n Add inventory viewer plugin\n\nAdam (20):\n runelite-client: add outdated dialog\n runescape-api: remove no longer used annotations\n Add logback-parent to dependency management and use a consistent slf4j version everywhere\n Add interface representing all callbacks the client does, and convert mixins to use it\n hooks: dispose graphics after using\n actor mixin: fix getInteracting when index is 65535\n Add interacting changed event\n chat message manager: set default colors for GAME messages\n Add corporeal beast plugin\n modelviewer: add basic animation support\n devtools: add transform command\n animation smoothing: do not interpolate to angle 0\n Revert "animation smoothing: do not interpolate to angle 0"\n animation smoothing: don\'t interpolate hellhound defence animation\n chat commands: add config setting for chat clear shortcuts\n cache: rename additional npc definition fields\n queries: replace some isHidden checks with isSelfHidden\n hiscore client: check response code of hiscore lookups\n opponent info: move interacting logic to plugin and use interacting changed event\n opponent info: add player comparison overlay\n\nDennis (1):\n animation smoothing: fix angle bounds for rotation\n\nHSJ-OSRS (2):\n Add battlestaff crafting to AnimationID\n Add battlestaff crafting to idle notifier\n\nJames (1):\n Show correct text for master clue command (#3989)\n\nJavaLeg (1):\n chat commands: add clues command\n\nJordan Atwood (3):\n Fix "West of Barbarian Village" hot-cold location\n Fix East of Brimhaven fruit tree hot-cold location\n timers plugin: Create timer for stamina mixes\n\nKamiel (1):\n npc indicators: fix consuming tag menu clicks on non-npcs\n\nMax Weber (4):\n runelite-client: Add Keybind class for configs to save and set hotkeys\n screenshot plugin: Allow hotkey to be changed from insert\n kourendlibrary: Make hiding the navbutton optional\n runelite-client: Add a equals implementation to Keybind\n\nNathen (1):\n Update library plugin encapsulation\n\nNathen Sample (1):\n Update prayer plugin encapsulation (#3962)\n\nScottMCarr (1):\n agility plugin: do not update arena timer when there is no hint arrow\n\nSu-Shing Chen (1):\n agilityShortcutLocation: Fix SE Karamja agility marker\n\nTomas Slusny (24):\n Center stretched fixed mode horizontally\n Move onActorHitsplat to mixins\n Move menuOpened to mixins\n Move updateNpcs call to mixins\n Move focusGained to mixins\n Move focusLost to mixins\n Move postItemComposition to mixins\n Move setMessage to mixins\n Move projectileMoved to mixins\n Move addChatMessage to mixins\n Move graphicsObjectCreated to mixins\n Move drawAboveOverheads call to mixins\n Move drawRegion call to mixins\n Move clientMainLoop to mixins\n Move menuActionHook to mixins\n Add documentation for Hooks\n Remove Age menu entry swapping\n Move shift-click config to top of menu swapper\n Update documentation for Callbacks interface\n Add new toBufferedOutline method to SpritePixels\n Add inventory tagging plugin\n Remove title from corp panel\n Make Fight Cave plugin more accurate\n Fix price of tentacle tridents\n\nTrees (1):\n Menu Swapper - Add Age/Assignment\n\nhoneyhoney (2):\n Added destroy item widgets\n Fixed binding necklace charges not being reset when necklace is destroyed\n
\n',image:"/img/blog/1.4.5-Release/inventorytags.png"}}}]);
+//# sourceMappingURL=50.f3cdaa2a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/50.b25e7a9a.chunk.js.map b/static/js/50.f3cdaa2a.chunk.js.map
similarity index 98%
rename from static/js/50.b25e7a9a.chunk.js.map
rename to static/js/50.f3cdaa2a.chunk.js.map
index 792617a19..f404aadd4 100644
--- a/static/js/50.b25e7a9a.chunk.js.map
+++ b/static/js/50.f3cdaa2a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-06-28-07-00-1.4.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,i+KAAkgL,MAAQ","file":"static/js/50.b25e7a9a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.5 Release\",\"description\":\"Inventory tags, opponent comparison, inventory viewer, and corporeal beast plugin\",\"author\":\"Adam\",\"body\":\"An inventory tag plugin was added which lets you tag items in your inventory,\\nwhich then get outlined a specific color. Contributed by\\n@kulers .
\\n
\\nThe opponent info plugin now has an option to show and compare the stats of an\\nopponent you interact with. Contributed by\\n@Nightfirecat .
\\n
\\nAn inventory viewer was added by @jplsek which lets\\nyou overlay a view of your inventory:
\\n
\\nFinally, a corporeal beast plugin was added:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix animation smoother with interpolating rotation frames \\nFix animation smoother to not smooth hellhound defence animation \\nFix agility plugin to not reset arena timer when falling from obstacles \\nFix fight cave plugin to work more reliably \\nFix price of tentacle tridents \\nAdd informative dialog for when the client is outdated due to game updates \\nAdd configuration setting for chat commands clear chat keyboard shortcuts \\nThe screenshot plugin now has a configurable hotkey for screenshots \\nAdd Battle staffs to the idle notifier \\nAdd !clues chat command \\nAdd timer for stamina mixes \\nAdd (slayer) assignment to menu swapper \\nFix binding necklaces charges to reset when the necklace is destroyed \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAWPH-I (1):\\n Add inventory viewer plugin\\n\\nAdam (20):\\n runelite-client: add outdated dialog\\n runescape-api: remove no longer used annotations\\n Add logback-parent to dependency management and use a consistent slf4j version everywhere\\n Add interface representing all callbacks the client does, and convert mixins to use it\\n hooks: dispose graphics after using\\n actor mixin: fix getInteracting when index is 65535\\n Add interacting changed event\\n chat message manager: set default colors for GAME messages\\n Add corporeal beast plugin\\n modelviewer: add basic animation support\\n devtools: add transform command\\n animation smoothing: do not interpolate to angle 0\\n Revert "animation smoothing: do not interpolate to angle 0"\\n animation smoothing: don't interpolate hellhound defence animation\\n chat commands: add config setting for chat clear shortcuts\\n cache: rename additional npc definition fields\\n queries: replace some isHidden checks with isSelfHidden\\n hiscore client: check response code of hiscore lookups\\n opponent info: move interacting logic to plugin and use interacting changed event\\n opponent info: add player comparison overlay\\n\\nDennis (1):\\n animation smoothing: fix angle bounds for rotation\\n\\nHSJ-OSRS (2):\\n Add battlestaff crafting to AnimationID\\n Add battlestaff crafting to idle notifier\\n\\nJames (1):\\n Show correct text for master clue command (#3989)\\n\\nJavaLeg (1):\\n chat commands: add clues command\\n\\nJordan Atwood (3):\\n Fix "West of Barbarian Village" hot-cold location\\n Fix East of Brimhaven fruit tree hot-cold location\\n timers plugin: Create timer for stamina mixes\\n\\nKamiel (1):\\n npc indicators: fix consuming tag menu clicks on non-npcs\\n\\nMax Weber (4):\\n runelite-client: Add Keybind class for configs to save and set hotkeys\\n screenshot plugin: Allow hotkey to be changed from insert\\n kourendlibrary: Make hiding the navbutton optional\\n runelite-client: Add a equals implementation to Keybind\\n\\nNathen (1):\\n Update library plugin encapsulation\\n\\nNathen Sample (1):\\n Update prayer plugin encapsulation (#3962)\\n\\nScottMCarr (1):\\n agility plugin: do not update arena timer when there is no hint arrow\\n\\nSu-Shing Chen (1):\\n agilityShortcutLocation: Fix SE Karamja agility marker\\n\\nTomas Slusny (24):\\n Center stretched fixed mode horizontally\\n Move onActorHitsplat to mixins\\n Move menuOpened to mixins\\n Move updateNpcs call to mixins\\n Move focusGained to mixins\\n Move focusLost to mixins\\n Move postItemComposition to mixins\\n Move setMessage to mixins\\n Move projectileMoved to mixins\\n Move addChatMessage to mixins\\n Move graphicsObjectCreated to mixins\\n Move drawAboveOverheads call to mixins\\n Move drawRegion call to mixins\\n Move clientMainLoop to mixins\\n Move menuActionHook to mixins\\n Add documentation for Hooks\\n Remove Age menu entry swapping\\n Move shift-click config to top of menu swapper\\n Update documentation for Callbacks interface\\n Add new toBufferedOutline method to SpritePixels\\n Add inventory tagging plugin\\n Remove title from corp panel\\n Make Fight Cave plugin more accurate\\n Fix price of tentacle tridents\\n\\nTrees (1):\\n Menu Swapper - Add Age/Assignment\\n\\nhoneyhoney (2):\\n Added destroy item widgets\\n Fixed binding necklace charges not being reset when necklace is destroyed\\n
\\n\",\"image\":\"/img/blog/1.4.5-Release/inventorytags.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-06-28-07-00-1.4.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oFAAoF,OAAS,OAAO,KAAO,i+KAAkgL,MAAQ","file":"static/js/50.f3cdaa2a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.5 Release\",\"description\":\"Inventory tags, opponent comparison, inventory viewer, and corporeal beast plugin\",\"author\":\"Adam\",\"body\":\"An inventory tag plugin was added which lets you tag items in your inventory,\\nwhich then get outlined a specific color. Contributed by\\n@kulers .
\\n
\\nThe opponent info plugin now has an option to show and compare the stats of an\\nopponent you interact with. Contributed by\\n@Nightfirecat .
\\n
\\nAn inventory viewer was added by @jplsek which lets\\nyou overlay a view of your inventory:
\\n
\\nFinally, a corporeal beast plugin was added:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix animation smoother with interpolating rotation frames \\nFix animation smoother to not smooth hellhound defence animation \\nFix agility plugin to not reset arena timer when falling from obstacles \\nFix fight cave plugin to work more reliably \\nFix price of tentacle tridents \\nAdd informative dialog for when the client is outdated due to game updates \\nAdd configuration setting for chat commands clear chat keyboard shortcuts \\nThe screenshot plugin now has a configurable hotkey for screenshots \\nAdd Battle staffs to the idle notifier \\nAdd !clues chat command \\nAdd timer for stamina mixes \\nAdd (slayer) assignment to menu swapper \\nFix binding necklaces charges to reset when the necklace is destroyed \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAWPH-I (1):\\n Add inventory viewer plugin\\n\\nAdam (20):\\n runelite-client: add outdated dialog\\n runescape-api: remove no longer used annotations\\n Add logback-parent to dependency management and use a consistent slf4j version everywhere\\n Add interface representing all callbacks the client does, and convert mixins to use it\\n hooks: dispose graphics after using\\n actor mixin: fix getInteracting when index is 65535\\n Add interacting changed event\\n chat message manager: set default colors for GAME messages\\n Add corporeal beast plugin\\n modelviewer: add basic animation support\\n devtools: add transform command\\n animation smoothing: do not interpolate to angle 0\\n Revert "animation smoothing: do not interpolate to angle 0"\\n animation smoothing: don't interpolate hellhound defence animation\\n chat commands: add config setting for chat clear shortcuts\\n cache: rename additional npc definition fields\\n queries: replace some isHidden checks with isSelfHidden\\n hiscore client: check response code of hiscore lookups\\n opponent info: move interacting logic to plugin and use interacting changed event\\n opponent info: add player comparison overlay\\n\\nDennis (1):\\n animation smoothing: fix angle bounds for rotation\\n\\nHSJ-OSRS (2):\\n Add battlestaff crafting to AnimationID\\n Add battlestaff crafting to idle notifier\\n\\nJames (1):\\n Show correct text for master clue command (#3989)\\n\\nJavaLeg (1):\\n chat commands: add clues command\\n\\nJordan Atwood (3):\\n Fix "West of Barbarian Village" hot-cold location\\n Fix East of Brimhaven fruit tree hot-cold location\\n timers plugin: Create timer for stamina mixes\\n\\nKamiel (1):\\n npc indicators: fix consuming tag menu clicks on non-npcs\\n\\nMax Weber (4):\\n runelite-client: Add Keybind class for configs to save and set hotkeys\\n screenshot plugin: Allow hotkey to be changed from insert\\n kourendlibrary: Make hiding the navbutton optional\\n runelite-client: Add a equals implementation to Keybind\\n\\nNathen (1):\\n Update library plugin encapsulation\\n\\nNathen Sample (1):\\n Update prayer plugin encapsulation (#3962)\\n\\nScottMCarr (1):\\n agility plugin: do not update arena timer when there is no hint arrow\\n\\nSu-Shing Chen (1):\\n agilityShortcutLocation: Fix SE Karamja agility marker\\n\\nTomas Slusny (24):\\n Center stretched fixed mode horizontally\\n Move onActorHitsplat to mixins\\n Move menuOpened to mixins\\n Move updateNpcs call to mixins\\n Move focusGained to mixins\\n Move focusLost to mixins\\n Move postItemComposition to mixins\\n Move setMessage to mixins\\n Move projectileMoved to mixins\\n Move addChatMessage to mixins\\n Move graphicsObjectCreated to mixins\\n Move drawAboveOverheads call to mixins\\n Move drawRegion call to mixins\\n Move clientMainLoop to mixins\\n Move menuActionHook to mixins\\n Add documentation for Hooks\\n Remove Age menu entry swapping\\n Move shift-click config to top of menu swapper\\n Update documentation for Callbacks interface\\n Add new toBufferedOutline method to SpritePixels\\n Add inventory tagging plugin\\n Remove title from corp panel\\n Make Fight Cave plugin more accurate\\n Fix price of tentacle tridents\\n\\nTrees (1):\\n Menu Swapper - Add Age/Assignment\\n\\nhoneyhoney (2):\\n Added destroy item widgets\\n Fixed binding necklace charges not being reset when necklace is destroyed\\n
\\n\",\"image\":\"/img/blog/1.4.5-Release/inventorytags.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/51.460ed77f.chunk.js b/static/js/51.95af84ea.chunk.js
similarity index 98%
rename from static/js/51.460ed77f.chunk.js
rename to static/js/51.95af84ea.chunk.js
index 60f38d712..f9bdb3ba7 100644
--- a/static/js/51.460ed77f.chunk.js
+++ b/static/js/51.95af84ea.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[51],{326:function(n,e){n.exports={title:"1.4.6 Release",description:"Lightbox and Varrock Museum quiz solver, config panel tags and favorites, Discord bosses & minigames",author:"Tomas",body:'A lightbox solver plugin was added which tells you the pattern to solve lightboxes after\nobserving a few of the switches. Contributed by @Adam- .
\n
\nA helper for Varrock Museum Quiz was added as well that highlights correct answer to\nquestions in Varrock Museum basement. Thanks to @vikke1234 \nwho contributed this feature.
\n
\nThe configuration panel was significantly improved thanks to big contribution from\n@takuyakanbr . Some of the improvements are:
\n\nEach plugin now has a short description when hovered \nEach plugin now has tags that will make plugins easier to search for \nPlugins can now be pinned to the top of the panel (a new star icon was added next to each plugin name\nthat when clicked will pin the config option to top) \nSearch bar in configuration panel will now always stay on top \nEach configuration page for plugins now have back and on/off buttons at the top of panel \n \n \n \n \n
\nThanks to another awesome contribution from @PandahRS who spent\na lot of time manually mapping a lot of RuneScape surface to regions, the Discord plugin now has\na lot of new features, including display of city you are in, dungeon you are currently\nexploring, boss you are currently fighting and even minigame you are currently playing.
\nDue to privacy reasons, these new location-based features are disabled in any PVP scenario, such\nas PVP worlds, High Risk worlds, DMM and Seasonal DMM worlds.
\n \n
\nIn addition to the highlighted features, there have been several other improvements and bugfixes this release:
\n\n!total, !clues and !lvl commands now properly show ranks based on account types \nPlenty of new food types have been added to Item Stats plugin \nSOTD timer now properly works also for SOTL \nObstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin \nAl-Kharid lap counter has been fixed \nXP tracker now shows dots instead of commas to follow OSRS style of displaying numbers \nFishing plugin now supports all types of eels \nBug with inventory tagger plugin showing items with different models depending on the quantity\nincorrectly have been fixed \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 15 contributors this release!
\nAdam (8):\n runelite-api: make HashTable a generic\n Calculate and store widget parent id and position when the interfaces are rendered\n Revert "Add ironman status and AccountType to API"\n chat commands: fix to use exiting accounttype api\n agility plugin: fix Al Kharid lap counter\n puzzle solver: add lightbox solver\n chat commands: store kill counts in config\n Change Widget::parentId behavior to work again if the widget hasn\'t been drawn yet\n\nDamen (2):\n Fix Dark Crab req lvl in skill calculator (#4071)\n Prevent cannonball count conflicting with health bars (#2857)\n\nGamer1120 (1):\n Fix hiscore lookup for ironman in chat commands\n\nJHPinto (1):\n slayer plugin: move item count overlay checks to render\n\nJeremy Plsek (2):\n item manager: add item outline caching\n inventory tags: use item manager for outlines\n\nJordan (1):\n Ignore level goals which have been passed (#3805)\n\nJordan Atwood (17):\n item stats plugin: Add Edible seaweed\n chat color: Fix description typo\n Update Veng Other / Energy Transfer animation ID\n Add Vengeance Other graphic ID\n timers plugin: Check for Vengeance Other graphic\n item stats: Add missing RFD foods\n fishing plugin: Add cave eel and slimy eel spots\n agility plugin: Add Lumbridge swamp cave shortcuts\n item stats plugin: Add field ration\n grand exchange plugin: Fix error message typos\n grand exchange plugin: Clear render on empty string\n item stats plugin: Fix import ordering\n item stats plugin: Fix Zamorak brew stat changes\n skill calculator: Fix combined items with decimals\n item stats: Add negative attack bonus to wines\n clues: Fix Cap\'n Izzy No-Beard anagram clue\n agility plugin: Add pyramid entrance obstacles\n\nKamiel (1):\n screen-markers: fix graphical bug\n\nMagic fTail (1):\n AgilityPlugin: Add obstacles north of pirate ship (#4084)\n\nMax Weber (3):\n mixins: Don\'t show siblings in dynamic widget\'s child lists\n farmingtracker: Correct several patch timings\n itemstats: Add variable healing food\n\nNathen Sample (1):\n Represent decimals as .\'s not ,\'s (#4059)\n\nPandahRS (5):\n Make skilling activity configurable in Discord\n Add bosses to Discord plugin\n Add cities to Discord plugin\n Add dungeons to discord plugin\n Add minigames to Discord plugin\n\nTomas Slusny (7):\n Add ironman status and AccountType to API\n Make SOTD/SOTL timer use chat messsage\n Return preferredSize.width from TitleComponent\n Make !clues command respect account type\n Add logging of presence to DiscordService\n Make Discord plugin more extensible/support region\n Reset Discord state if now > updated + timeout\n\nViktor Horsmanheimo (2):\n Add widget IDs for the varrock museum quiz\n Add Varrock museum quiz solver\n\ntakuyakanbr (5):\n Add description and tags fields to PluginDescriptor\n config panel: change plugin search to use plugin name + tags\n config panel: add ability to pin plugins to the top\n config panel: keep search bar at the top while scrolling Add back and toggle buttons at the top of plugin configuration pages\n Replace fields in ConfigGroup with a single `value` field\n
\n',image:"/img/blog/1.4.6-Release/lightboxsolver.png"}}}]);
-//# sourceMappingURL=51.460ed77f.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[51],{327:function(n,e){n.exports={title:"1.4.6 Release",description:"Lightbox and Varrock Museum quiz solver, config panel tags and favorites, Discord bosses & minigames",author:"Tomas",body:'A lightbox solver plugin was added which tells you the pattern to solve lightboxes after\nobserving a few of the switches. Contributed by @Adam- .
\n
\nA helper for Varrock Museum Quiz was added as well that highlights correct answer to\nquestions in Varrock Museum basement. Thanks to @vikke1234 \nwho contributed this feature.
\n
\nThe configuration panel was significantly improved thanks to big contribution from\n@takuyakanbr . Some of the improvements are:
\n\nEach plugin now has a short description when hovered \nEach plugin now has tags that will make plugins easier to search for \nPlugins can now be pinned to the top of the panel (a new star icon was added next to each plugin name\nthat when clicked will pin the config option to top) \nSearch bar in configuration panel will now always stay on top \nEach configuration page for plugins now have back and on/off buttons at the top of panel \n \n \n \n \n
\nThanks to another awesome contribution from @PandahRS who spent\na lot of time manually mapping a lot of RuneScape surface to regions, the Discord plugin now has\na lot of new features, including display of city you are in, dungeon you are currently\nexploring, boss you are currently fighting and even minigame you are currently playing.
\nDue to privacy reasons, these new location-based features are disabled in any PVP scenario, such\nas PVP worlds, High Risk worlds, DMM and Seasonal DMM worlds.
\n \n
\nIn addition to the highlighted features, there have been several other improvements and bugfixes this release:
\n\n!total, !clues and !lvl commands now properly show ranks based on account types \nPlenty of new food types have been added to Item Stats plugin \nSOTD timer now properly works also for SOTL \nObstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin \nAl-Kharid lap counter has been fixed \nXP tracker now shows dots instead of commas to follow OSRS style of displaying numbers \nFishing plugin now supports all types of eels \nBug with inventory tagger plugin showing items with different models depending on the quantity\nincorrectly have been fixed \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 15 contributors this release!
\nAdam (8):\n runelite-api: make HashTable a generic\n Calculate and store widget parent id and position when the interfaces are rendered\n Revert "Add ironman status and AccountType to API"\n chat commands: fix to use exiting accounttype api\n agility plugin: fix Al Kharid lap counter\n puzzle solver: add lightbox solver\n chat commands: store kill counts in config\n Change Widget::parentId behavior to work again if the widget hasn\'t been drawn yet\n\nDamen (2):\n Fix Dark Crab req lvl in skill calculator (#4071)\n Prevent cannonball count conflicting with health bars (#2857)\n\nGamer1120 (1):\n Fix hiscore lookup for ironman in chat commands\n\nJHPinto (1):\n slayer plugin: move item count overlay checks to render\n\nJeremy Plsek (2):\n item manager: add item outline caching\n inventory tags: use item manager for outlines\n\nJordan (1):\n Ignore level goals which have been passed (#3805)\n\nJordan Atwood (17):\n item stats plugin: Add Edible seaweed\n chat color: Fix description typo\n Update Veng Other / Energy Transfer animation ID\n Add Vengeance Other graphic ID\n timers plugin: Check for Vengeance Other graphic\n item stats: Add missing RFD foods\n fishing plugin: Add cave eel and slimy eel spots\n agility plugin: Add Lumbridge swamp cave shortcuts\n item stats plugin: Add field ration\n grand exchange plugin: Fix error message typos\n grand exchange plugin: Clear render on empty string\n item stats plugin: Fix import ordering\n item stats plugin: Fix Zamorak brew stat changes\n skill calculator: Fix combined items with decimals\n item stats: Add negative attack bonus to wines\n clues: Fix Cap\'n Izzy No-Beard anagram clue\n agility plugin: Add pyramid entrance obstacles\n\nKamiel (1):\n screen-markers: fix graphical bug\n\nMagic fTail (1):\n AgilityPlugin: Add obstacles north of pirate ship (#4084)\n\nMax Weber (3):\n mixins: Don\'t show siblings in dynamic widget\'s child lists\n farmingtracker: Correct several patch timings\n itemstats: Add variable healing food\n\nNathen Sample (1):\n Represent decimals as .\'s not ,\'s (#4059)\n\nPandahRS (5):\n Make skilling activity configurable in Discord\n Add bosses to Discord plugin\n Add cities to Discord plugin\n Add dungeons to discord plugin\n Add minigames to Discord plugin\n\nTomas Slusny (7):\n Add ironman status and AccountType to API\n Make SOTD/SOTL timer use chat messsage\n Return preferredSize.width from TitleComponent\n Make !clues command respect account type\n Add logging of presence to DiscordService\n Make Discord plugin more extensible/support region\n Reset Discord state if now > updated + timeout\n\nViktor Horsmanheimo (2):\n Add widget IDs for the varrock museum quiz\n Add Varrock museum quiz solver\n\ntakuyakanbr (5):\n Add description and tags fields to PluginDescriptor\n config panel: change plugin search to use plugin name + tags\n config panel: add ability to pin plugins to the top\n config panel: keep search bar at the top while scrolling Add back and toggle buttons at the top of plugin configuration pages\n Replace fields in ConfigGroup with a single `value` field\n
\n',image:"/img/blog/1.4.6-Release/lightboxsolver.png"}}}]);
+//# sourceMappingURL=51.95af84ea.chunk.js.map
\ No newline at end of file
diff --git a/static/js/51.460ed77f.chunk.js.map b/static/js/51.95af84ea.chunk.js.map
similarity index 99%
rename from static/js/51.460ed77f.chunk.js.map
rename to static/js/51.95af84ea.chunk.js.map
index 10349c578..63b1617b2 100644
--- a/static/js/51.460ed77f.chunk.js.map
+++ b/static/js/51.95af84ea.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-07-05-07-00-1.4.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uGAAuG,OAAS,QAAQ,KAAO,umNAAypN,MAAQ","file":"static/js/51.460ed77f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.6 Release\",\"description\":\"Lightbox and Varrock Museum quiz solver, config panel tags and favorites, Discord bosses & minigames\",\"author\":\"Tomas\",\"body\":\"A lightbox solver plugin was added which tells you the pattern to solve lightboxes after\\nobserving a few of the switches. Contributed by @Adam- .
\\n
\\nA helper for Varrock Museum Quiz was added as well that highlights correct answer to\\nquestions in Varrock Museum basement. Thanks to @vikke1234 \\nwho contributed this feature.
\\n
\\nThe configuration panel was significantly improved thanks to big contribution from\\n@takuyakanbr . Some of the improvements are:
\\n\\nEach plugin now has a short description when hovered \\nEach plugin now has tags that will make plugins easier to search for \\nPlugins can now be pinned to the top of the panel (a new star icon was added next to each plugin name\\nthat when clicked will pin the config option to top) \\nSearch bar in configuration panel will now always stay on top \\nEach configuration page for plugins now have back and on/off buttons at the top of panel \\n \\n \\n \\n \\n
\\nThanks to another awesome contribution from @PandahRS who spent\\na lot of time manually mapping a lot of RuneScape surface to regions, the Discord plugin now has\\na lot of new features, including display of city you are in, dungeon you are currently\\nexploring, boss you are currently fighting and even minigame you are currently playing.
\\nDue to privacy reasons, these new location-based features are disabled in any PVP scenario, such\\nas PVP worlds, High Risk worlds, DMM and Seasonal DMM worlds.
\\n \\n
\\nIn addition to the highlighted features, there have been several other improvements and bugfixes this release:
\\n\\n!total, !clues and !lvl commands now properly show ranks based on account types \\nPlenty of new food types have been added to Item Stats plugin \\nSOTD timer now properly works also for SOTL \\nObstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin \\nAl-Kharid lap counter has been fixed \\nXP tracker now shows dots instead of commas to follow OSRS style of displaying numbers \\nFishing plugin now supports all types of eels \\nBug with inventory tagger plugin showing items with different models depending on the quantity\\nincorrectly have been fixed \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (8):\\n runelite-api: make HashTable a generic\\n Calculate and store widget parent id and position when the interfaces are rendered\\n Revert "Add ironman status and AccountType to API"\\n chat commands: fix to use exiting accounttype api\\n agility plugin: fix Al Kharid lap counter\\n puzzle solver: add lightbox solver\\n chat commands: store kill counts in config\\n Change Widget::parentId behavior to work again if the widget hasn't been drawn yet\\n\\nDamen (2):\\n Fix Dark Crab req lvl in skill calculator (#4071)\\n Prevent cannonball count conflicting with health bars (#2857)\\n\\nGamer1120 (1):\\n Fix hiscore lookup for ironman in chat commands\\n\\nJHPinto (1):\\n slayer plugin: move item count overlay checks to render\\n\\nJeremy Plsek (2):\\n item manager: add item outline caching\\n inventory tags: use item manager for outlines\\n\\nJordan (1):\\n Ignore level goals which have been passed (#3805)\\n\\nJordan Atwood (17):\\n item stats plugin: Add Edible seaweed\\n chat color: Fix description typo\\n Update Veng Other / Energy Transfer animation ID\\n Add Vengeance Other graphic ID\\n timers plugin: Check for Vengeance Other graphic\\n item stats: Add missing RFD foods\\n fishing plugin: Add cave eel and slimy eel spots\\n agility plugin: Add Lumbridge swamp cave shortcuts\\n item stats plugin: Add field ration\\n grand exchange plugin: Fix error message typos\\n grand exchange plugin: Clear render on empty string\\n item stats plugin: Fix import ordering\\n item stats plugin: Fix Zamorak brew stat changes\\n skill calculator: Fix combined items with decimals\\n item stats: Add negative attack bonus to wines\\n clues: Fix Cap'n Izzy No-Beard anagram clue\\n agility plugin: Add pyramid entrance obstacles\\n\\nKamiel (1):\\n screen-markers: fix graphical bug\\n\\nMagic fTail (1):\\n AgilityPlugin: Add obstacles north of pirate ship (#4084)\\n\\nMax Weber (3):\\n mixins: Don't show siblings in dynamic widget's child lists\\n farmingtracker: Correct several patch timings\\n itemstats: Add variable healing food\\n\\nNathen Sample (1):\\n Represent decimals as .'s not ,'s (#4059)\\n\\nPandahRS (5):\\n Make skilling activity configurable in Discord\\n Add bosses to Discord plugin\\n Add cities to Discord plugin\\n Add dungeons to discord plugin\\n Add minigames to Discord plugin\\n\\nTomas Slusny (7):\\n Add ironman status and AccountType to API\\n Make SOTD/SOTL timer use chat messsage\\n Return preferredSize.width from TitleComponent\\n Make !clues command respect account type\\n Add logging of presence to DiscordService\\n Make Discord plugin more extensible/support region\\n Reset Discord state if now > updated + timeout\\n\\nViktor Horsmanheimo (2):\\n Add widget IDs for the varrock museum quiz\\n Add Varrock museum quiz solver\\n\\ntakuyakanbr (5):\\n Add description and tags fields to PluginDescriptor\\n config panel: change plugin search to use plugin name + tags\\n config panel: add ability to pin plugins to the top\\n config panel: keep search bar at the top while scrolling Add back and toggle buttons at the top of plugin configuration pages\\n Replace fields in ConfigGroup with a single `value` field\\n
\\n\",\"image\":\"/img/blog/1.4.6-Release/lightboxsolver.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-07-05-07-00-1.4.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uGAAuG,OAAS,QAAQ,KAAO,umNAAypN,MAAQ","file":"static/js/51.95af84ea.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.6 Release\",\"description\":\"Lightbox and Varrock Museum quiz solver, config panel tags and favorites, Discord bosses & minigames\",\"author\":\"Tomas\",\"body\":\"A lightbox solver plugin was added which tells you the pattern to solve lightboxes after\\nobserving a few of the switches. Contributed by @Adam- .
\\n
\\nA helper for Varrock Museum Quiz was added as well that highlights correct answer to\\nquestions in Varrock Museum basement. Thanks to @vikke1234 \\nwho contributed this feature.
\\n
\\nThe configuration panel was significantly improved thanks to big contribution from\\n@takuyakanbr . Some of the improvements are:
\\n\\nEach plugin now has a short description when hovered \\nEach plugin now has tags that will make plugins easier to search for \\nPlugins can now be pinned to the top of the panel (a new star icon was added next to each plugin name\\nthat when clicked will pin the config option to top) \\nSearch bar in configuration panel will now always stay on top \\nEach configuration page for plugins now have back and on/off buttons at the top of panel \\n \\n \\n \\n \\n
\\nThanks to another awesome contribution from @PandahRS who spent\\na lot of time manually mapping a lot of RuneScape surface to regions, the Discord plugin now has\\na lot of new features, including display of city you are in, dungeon you are currently\\nexploring, boss you are currently fighting and even minigame you are currently playing.
\\nDue to privacy reasons, these new location-based features are disabled in any PVP scenario, such\\nas PVP worlds, High Risk worlds, DMM and Seasonal DMM worlds.
\\n \\n
\\nIn addition to the highlighted features, there have been several other improvements and bugfixes this release:
\\n\\n!total, !clues and !lvl commands now properly show ranks based on account types \\nPlenty of new food types have been added to Item Stats plugin \\nSOTD timer now properly works also for SOTL \\nObstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin \\nAl-Kharid lap counter has been fixed \\nXP tracker now shows dots instead of commas to follow OSRS style of displaying numbers \\nFishing plugin now supports all types of eels \\nBug with inventory tagger plugin showing items with different models depending on the quantity\\nincorrectly have been fixed \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (8):\\n runelite-api: make HashTable a generic\\n Calculate and store widget parent id and position when the interfaces are rendered\\n Revert "Add ironman status and AccountType to API"\\n chat commands: fix to use exiting accounttype api\\n agility plugin: fix Al Kharid lap counter\\n puzzle solver: add lightbox solver\\n chat commands: store kill counts in config\\n Change Widget::parentId behavior to work again if the widget hasn't been drawn yet\\n\\nDamen (2):\\n Fix Dark Crab req lvl in skill calculator (#4071)\\n Prevent cannonball count conflicting with health bars (#2857)\\n\\nGamer1120 (1):\\n Fix hiscore lookup for ironman in chat commands\\n\\nJHPinto (1):\\n slayer plugin: move item count overlay checks to render\\n\\nJeremy Plsek (2):\\n item manager: add item outline caching\\n inventory tags: use item manager for outlines\\n\\nJordan (1):\\n Ignore level goals which have been passed (#3805)\\n\\nJordan Atwood (17):\\n item stats plugin: Add Edible seaweed\\n chat color: Fix description typo\\n Update Veng Other / Energy Transfer animation ID\\n Add Vengeance Other graphic ID\\n timers plugin: Check for Vengeance Other graphic\\n item stats: Add missing RFD foods\\n fishing plugin: Add cave eel and slimy eel spots\\n agility plugin: Add Lumbridge swamp cave shortcuts\\n item stats plugin: Add field ration\\n grand exchange plugin: Fix error message typos\\n grand exchange plugin: Clear render on empty string\\n item stats plugin: Fix import ordering\\n item stats plugin: Fix Zamorak brew stat changes\\n skill calculator: Fix combined items with decimals\\n item stats: Add negative attack bonus to wines\\n clues: Fix Cap'n Izzy No-Beard anagram clue\\n agility plugin: Add pyramid entrance obstacles\\n\\nKamiel (1):\\n screen-markers: fix graphical bug\\n\\nMagic fTail (1):\\n AgilityPlugin: Add obstacles north of pirate ship (#4084)\\n\\nMax Weber (3):\\n mixins: Don't show siblings in dynamic widget's child lists\\n farmingtracker: Correct several patch timings\\n itemstats: Add variable healing food\\n\\nNathen Sample (1):\\n Represent decimals as .'s not ,'s (#4059)\\n\\nPandahRS (5):\\n Make skilling activity configurable in Discord\\n Add bosses to Discord plugin\\n Add cities to Discord plugin\\n Add dungeons to discord plugin\\n Add minigames to Discord plugin\\n\\nTomas Slusny (7):\\n Add ironman status and AccountType to API\\n Make SOTD/SOTL timer use chat messsage\\n Return preferredSize.width from TitleComponent\\n Make !clues command respect account type\\n Add logging of presence to DiscordService\\n Make Discord plugin more extensible/support region\\n Reset Discord state if now > updated + timeout\\n\\nViktor Horsmanheimo (2):\\n Add widget IDs for the varrock museum quiz\\n Add Varrock museum quiz solver\\n\\ntakuyakanbr (5):\\n Add description and tags fields to PluginDescriptor\\n config panel: change plugin search to use plugin name + tags\\n config panel: add ability to pin plugins to the top\\n config panel: keep search bar at the top while scrolling Add back and toggle buttons at the top of plugin configuration pages\\n Replace fields in ConfigGroup with a single `value` field\\n
\\n\",\"image\":\"/img/blog/1.4.6-Release/lightboxsolver.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/52.ddf280c1.chunk.js b/static/js/52.0a1bb2aa.chunk.js
similarity index 97%
rename from static/js/52.ddf280c1.chunk.js
rename to static/js/52.0a1bb2aa.chunk.js
index 16c9202b0..aa5797311 100644
--- a/static/js/52.ddf280c1.chunk.js
+++ b/static/js/52.0a1bb2aa.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[52],{327:function(n,e){n.exports={title:"1.4.7 Release",description:"Kill count command, prayer bars, and Tears of Guthix plugin",author:"Adam",body:'A kill count command was added which can share your kill count with other\nplayers who are also using RuneLite. The client must first observe you\ngetting a kill count message to record the kill count. It can not read\nthe kill counts off of the boss log in game yet, but maybe that will come soon.
\nNote that as the kill count data is sent from the client it is trusted and is not\ndifficult for someone to fake.
\n
\nThe prayer plugin now can show a prayer bar, below your hitpoints bar, showing\nhow much prayer you have left.
\n
\nA Tears of Guthix plugin was added which displays time remaining on the blue streams:
\n
\nThe special attack orb now indicates when you have special attack enabled.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd broad arrows to the fletching skill calculator \nXP drop plugin will now center text of XP if skill icons are hidden \nFix agility plugin counting laps on the agility pyramid \nThe runecraft plugin can now send a notification when rune pouches degrade \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (12):\n slayer plugin: don\'t lowercase task names\n slayer plugin: add spiritual creatures, and fix a few other tasks\n slayer plugin: move target highlight building to use events\n Add killcount command\n Add getVarpValue and setVarpValue to RSClientMixin and Client\n runecraft plugin: add positions for config options\n runelite-scripts: check length check in chatbox input\n runelite-client: add immediate event bus\n chat commands: fix kc command in friends chat\n plugin manager: register plugins with immediate event bus\n command manager: post events to immediate eventbus\n widgetid: update barrows interface ids\n\nForsco (1):\n Add broad arrows to fletching skill calc\n\nInfinitay (2):\n Add "getvarp", "setvarp", "getvarb", "setvarb" dev-tool chat commands\n Add stream progress overlay for Tears of Guthix\n\nIsha Dijcks (1):\n runecraft plugin: add a notification when a runepouch degrades\n\nJordan Atwood (9):\n clues: Fix SW-of-deserted-keep hot-cold location\n xp drop plugin: Move text to use hidden icon\'s space\n xp tracker plugin: Reduce visibilities\n xp tracker plugin: Remove WorldClient usages\n agility plugin: Remove unused variables and imports\n agility plugin: Reduce visibility of classes\n agility plugin: Fix course spellings\n agility plugin: Check for endpoints only when defined\n agility plugin: Add pyramid end point\n\nNathen Sample (1):\n Add prayer bonus for suffering R and RI\n\nOliver Atkinson (1):\n Fix #4101 - Add swap options for Decant\n\nTomas Slusny (11):\n Rename prayer tooltip option\n Add prayer bar to prayer plugin\n Add api mappings for oculus orb normal speed\n Set oculus speed to 36 (x3) in DevTools\n Add spec active indicator to spec orb\n Do not explode on illegal unicode chat in settings\n Fix "verxik" typo in ChatCommandsPlugin\n Add more !kc abbreviations\n Check if infobox can render in InfoBoxOverlay\n Add debuff/buff change indicators\n Add support for preserving boost indicators\n
\n',image:"/img/blog/1.4.7-Release/kc.png"}}}]);
-//# sourceMappingURL=52.ddf280c1.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[52],{328:function(n,e){n.exports={title:"1.4.7 Release",description:"Kill count command, prayer bars, and Tears of Guthix plugin",author:"Adam",body:'A kill count command was added which can share your kill count with other\nplayers who are also using RuneLite. The client must first observe you\ngetting a kill count message to record the kill count. It can not read\nthe kill counts off of the boss log in game yet, but maybe that will come soon.
\nNote that as the kill count data is sent from the client it is trusted and is not\ndifficult for someone to fake.
\n
\nThe prayer plugin now can show a prayer bar, below your hitpoints bar, showing\nhow much prayer you have left.
\n
\nA Tears of Guthix plugin was added which displays time remaining on the blue streams:
\n
\nThe special attack orb now indicates when you have special attack enabled.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd broad arrows to the fletching skill calculator \nXP drop plugin will now center text of XP if skill icons are hidden \nFix agility plugin counting laps on the agility pyramid \nThe runecraft plugin can now send a notification when rune pouches degrade \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (12):\n slayer plugin: don\'t lowercase task names\n slayer plugin: add spiritual creatures, and fix a few other tasks\n slayer plugin: move target highlight building to use events\n Add killcount command\n Add getVarpValue and setVarpValue to RSClientMixin and Client\n runecraft plugin: add positions for config options\n runelite-scripts: check length check in chatbox input\n runelite-client: add immediate event bus\n chat commands: fix kc command in friends chat\n plugin manager: register plugins with immediate event bus\n command manager: post events to immediate eventbus\n widgetid: update barrows interface ids\n\nForsco (1):\n Add broad arrows to fletching skill calc\n\nInfinitay (2):\n Add "getvarp", "setvarp", "getvarb", "setvarb" dev-tool chat commands\n Add stream progress overlay for Tears of Guthix\n\nIsha Dijcks (1):\n runecraft plugin: add a notification when a runepouch degrades\n\nJordan Atwood (9):\n clues: Fix SW-of-deserted-keep hot-cold location\n xp drop plugin: Move text to use hidden icon\'s space\n xp tracker plugin: Reduce visibilities\n xp tracker plugin: Remove WorldClient usages\n agility plugin: Remove unused variables and imports\n agility plugin: Reduce visibility of classes\n agility plugin: Fix course spellings\n agility plugin: Check for endpoints only when defined\n agility plugin: Add pyramid end point\n\nNathen Sample (1):\n Add prayer bonus for suffering R and RI\n\nOliver Atkinson (1):\n Fix #4101 - Add swap options for Decant\n\nTomas Slusny (11):\n Rename prayer tooltip option\n Add prayer bar to prayer plugin\n Add api mappings for oculus orb normal speed\n Set oculus speed to 36 (x3) in DevTools\n Add spec active indicator to spec orb\n Do not explode on illegal unicode chat in settings\n Fix "verxik" typo in ChatCommandsPlugin\n Add more !kc abbreviations\n Check if infobox can render in InfoBoxOverlay\n Add debuff/buff change indicators\n Add support for preserving boost indicators\n
\n',image:"/img/blog/1.4.7-Release/kc.png"}}}]);
+//# sourceMappingURL=52.0a1bb2aa.chunk.js.map
\ No newline at end of file
diff --git a/static/js/52.ddf280c1.chunk.js.map b/static/js/52.0a1bb2aa.chunk.js.map
similarity index 98%
rename from static/js/52.ddf280c1.chunk.js.map
rename to static/js/52.0a1bb2aa.chunk.js.map
index aa1e56c6d..82a9bd3e0 100644
--- a/static/js/52.ddf280c1.chunk.js.map
+++ b/static/js/52.0a1bb2aa.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-07-12-07-00-1.4.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8DAA8D,OAAS,OAAO,KAAO,0kHAAwlH,MAAQ","file":"static/js/52.ddf280c1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.7 Release\",\"description\":\"Kill count command, prayer bars, and Tears of Guthix plugin\",\"author\":\"Adam\",\"body\":\"A kill count command was added which can share your kill count with other\\nplayers who are also using RuneLite. The client must first observe you\\ngetting a kill count message to record the kill count. It can not read\\nthe kill counts off of the boss log in game yet, but maybe that will come soon.
\\nNote that as the kill count data is sent from the client it is trusted and is not\\ndifficult for someone to fake.
\\n
\\nThe prayer plugin now can show a prayer bar, below your hitpoints bar, showing\\nhow much prayer you have left.
\\n
\\nA Tears of Guthix plugin was added which displays time remaining on the blue streams:
\\n
\\nThe special attack orb now indicates when you have special attack enabled.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd broad arrows to the fletching skill calculator \\nXP drop plugin will now center text of XP if skill icons are hidden \\nFix agility plugin counting laps on the agility pyramid \\nThe runecraft plugin can now send a notification when rune pouches degrade \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (12):\\n slayer plugin: don't lowercase task names\\n slayer plugin: add spiritual creatures, and fix a few other tasks\\n slayer plugin: move target highlight building to use events\\n Add killcount command\\n Add getVarpValue and setVarpValue to RSClientMixin and Client\\n runecraft plugin: add positions for config options\\n runelite-scripts: check length check in chatbox input\\n runelite-client: add immediate event bus\\n chat commands: fix kc command in friends chat\\n plugin manager: register plugins with immediate event bus\\n command manager: post events to immediate eventbus\\n widgetid: update barrows interface ids\\n\\nForsco (1):\\n Add broad arrows to fletching skill calc\\n\\nInfinitay (2):\\n Add "getvarp", "setvarp", "getvarb", "setvarb" dev-tool chat commands\\n Add stream progress overlay for Tears of Guthix\\n\\nIsha Dijcks (1):\\n runecraft plugin: add a notification when a runepouch degrades\\n\\nJordan Atwood (9):\\n clues: Fix SW-of-deserted-keep hot-cold location\\n xp drop plugin: Move text to use hidden icon's space\\n xp tracker plugin: Reduce visibilities\\n xp tracker plugin: Remove WorldClient usages\\n agility plugin: Remove unused variables and imports\\n agility plugin: Reduce visibility of classes\\n agility plugin: Fix course spellings\\n agility plugin: Check for endpoints only when defined\\n agility plugin: Add pyramid end point\\n\\nNathen Sample (1):\\n Add prayer bonus for suffering R and RI\\n\\nOliver Atkinson (1):\\n Fix #4101 - Add swap options for Decant\\n\\nTomas Slusny (11):\\n Rename prayer tooltip option\\n Add prayer bar to prayer plugin\\n Add api mappings for oculus orb normal speed\\n Set oculus speed to 36 (x3) in DevTools\\n Add spec active indicator to spec orb\\n Do not explode on illegal unicode chat in settings\\n Fix "verxik" typo in ChatCommandsPlugin\\n Add more !kc abbreviations\\n Check if infobox can render in InfoBoxOverlay\\n Add debuff/buff change indicators\\n Add support for preserving boost indicators\\n
\\n\",\"image\":\"/img/blog/1.4.7-Release/kc.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-07-12-07-00-1.4.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8DAA8D,OAAS,OAAO,KAAO,0kHAAwlH,MAAQ","file":"static/js/52.0a1bb2aa.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.7 Release\",\"description\":\"Kill count command, prayer bars, and Tears of Guthix plugin\",\"author\":\"Adam\",\"body\":\"A kill count command was added which can share your kill count with other\\nplayers who are also using RuneLite. The client must first observe you\\ngetting a kill count message to record the kill count. It can not read\\nthe kill counts off of the boss log in game yet, but maybe that will come soon.
\\nNote that as the kill count data is sent from the client it is trusted and is not\\ndifficult for someone to fake.
\\n
\\nThe prayer plugin now can show a prayer bar, below your hitpoints bar, showing\\nhow much prayer you have left.
\\n
\\nA Tears of Guthix plugin was added which displays time remaining on the blue streams:
\\n
\\nThe special attack orb now indicates when you have special attack enabled.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd broad arrows to the fletching skill calculator \\nXP drop plugin will now center text of XP if skill icons are hidden \\nFix agility plugin counting laps on the agility pyramid \\nThe runecraft plugin can now send a notification when rune pouches degrade \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (12):\\n slayer plugin: don't lowercase task names\\n slayer plugin: add spiritual creatures, and fix a few other tasks\\n slayer plugin: move target highlight building to use events\\n Add killcount command\\n Add getVarpValue and setVarpValue to RSClientMixin and Client\\n runecraft plugin: add positions for config options\\n runelite-scripts: check length check in chatbox input\\n runelite-client: add immediate event bus\\n chat commands: fix kc command in friends chat\\n plugin manager: register plugins with immediate event bus\\n command manager: post events to immediate eventbus\\n widgetid: update barrows interface ids\\n\\nForsco (1):\\n Add broad arrows to fletching skill calc\\n\\nInfinitay (2):\\n Add "getvarp", "setvarp", "getvarb", "setvarb" dev-tool chat commands\\n Add stream progress overlay for Tears of Guthix\\n\\nIsha Dijcks (1):\\n runecraft plugin: add a notification when a runepouch degrades\\n\\nJordan Atwood (9):\\n clues: Fix SW-of-deserted-keep hot-cold location\\n xp drop plugin: Move text to use hidden icon's space\\n xp tracker plugin: Reduce visibilities\\n xp tracker plugin: Remove WorldClient usages\\n agility plugin: Remove unused variables and imports\\n agility plugin: Reduce visibility of classes\\n agility plugin: Fix course spellings\\n agility plugin: Check for endpoints only when defined\\n agility plugin: Add pyramid end point\\n\\nNathen Sample (1):\\n Add prayer bonus for suffering R and RI\\n\\nOliver Atkinson (1):\\n Fix #4101 - Add swap options for Decant\\n\\nTomas Slusny (11):\\n Rename prayer tooltip option\\n Add prayer bar to prayer plugin\\n Add api mappings for oculus orb normal speed\\n Set oculus speed to 36 (x3) in DevTools\\n Add spec active indicator to spec orb\\n Do not explode on illegal unicode chat in settings\\n Fix "verxik" typo in ChatCommandsPlugin\\n Add more !kc abbreviations\\n Check if infobox can render in InfoBoxOverlay\\n Add debuff/buff change indicators\\n Add support for preserving boost indicators\\n
\\n\",\"image\":\"/img/blog/1.4.7-Release/kc.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/53.c73057fb.chunk.js b/static/js/53.68ffec1a.chunk.js
similarity index 97%
rename from static/js/53.c73057fb.chunk.js
rename to static/js/53.68ffec1a.chunk.js
index 8b6513312..d83c7fa89 100644
--- a/static/js/53.c73057fb.chunk.js
+++ b/static/js/53.68ffec1a.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[53],{328:function(e,n){e.exports={title:"1.4.8 Release",description:"Fairy Ring search, XP tracker pausing and RoW !kc support",author:"Adam",body:'You can now filter through the Fairy Ring travel log while having the configure
interface open. (Contributed by @Abextm )
\n
\nThe XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck )
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nReading the Ring of Wealth boss log now updates the !kc command kill counts \nTheatre of Blood rewards are now automatically screenshotted \nHunter level-ups are now properly screenshotted \nScreenshots taken in Deadman mode now reside in separate directory \nThe King percival clue now also contains informations about nearest fairy ring \nAdded Mounted Mythical Cape to the skill calculator \nFix slayer plugin sometimes highlighting nonexistent NPCs \nFix bug with ground items not always showing ground items \nCacti in farming plugin now work correctly \nUntradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly \nFix alignment of xpdrops when sprites are configured to be hidden \nFix hiscore autocomplete when typing too quickly \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (28):\n Revert "command manager: post events to immediate eventbus"\n Revert "plugin manager: register plugins with immediate event bus"\n Revert "runelite-client: add immediate event bus"\n Add chatbox input listener and use for chatbox input event\n slayer plugin: fix parsing points and streaks with commas\n chat commands: add test\n chat commands: loosen regex for boss names\n runelite-scripts: add bank search script\n Add matches found to bank tag search dialog message\n chat commands: count barrows chests too\n screenshot plugin: move level up and quest screenshots to after widget load\n screenshot plugin: rename "raids" to "chambers of xeric"\n screenshot plugin: fix hunter level up screenshots\n config invocation handler: don\'t set config values if already set\n hiscore plugin: fix race with inserting next character with autocomplete\n slayer plugin: clear highlighted targets on login\n ground items: scan entire scene for items not just ones within range\n Add item spawn events\n grounditems: rewrite to use item spawn events\n region tile manager: send item spawns at plugin start\n agility plugin: use item events\n mta plugin: use item events\n Remove item layer changed event\n Remove MAZE_GUARDIAN_MOVING npc id\n prayer plugin: update zamorak robe itemids\n xp drop plugin: fix alignment of xpdrops when hiding skill icons\n xp drop plugin: add positions for config\n Add item despawn events when ground items is nulled\n\nAquivers (1):\n Add fairy ring information to King Percival clue #4344\n\nJHPinto (1):\n Slayer overlay use query idEquals, use consts (#4322)\n\nJordan (1):\n timers plugin: Use item and sprite IDs for timers\n\nJordan Atwood (5):\n screenshot plugin: Use separate directory for DMM\n text: Fix removeTags for isolated < and > chars\n timers plugin: Reduce visibilities\n Remove freeze timer on Vorkath Zombified spawn death\n clue scroll plugin: Remove useless null check\n\nLevi Schuck (2):\n Add dimming UI to progress bar\n Add feature to pause skill timers on logout or after idle period\n\nMagic fTail (5):\n Update dialog widget ids from game update\n chat commands: add raids pattern\n ScreenshotPlugin: fix naming of event\n chat commands: update boss kc from boss log\n screenshot plugin: capture ToB rewards\n\nMax Weber (8):\n farmingtracker: Fix cactus implementation\n cache: Relax label name constraints\n Rename Region to Scene\n runelite-api: Update autogenerated ID files to 171-7\n runelite-client: Allow ChatboxInputManager to callback early\n Add API to create new widgets\n runelite-client: Add fairy ring search to fairy ring plugin\n devtools: Show index on dynamic widgets in the tree\n\nQatell (1):\n Fixed objects of variable width and length from being positioned incorrectly on the map.\n\nTomas Slusny (5):\n Remove investigate menu entry swap\n Add Sanguinesti Staff to ItemMapping\n Add mapping for Scythe to ItemMappings\n Remove unused import from RSTileMixin\n Fix camels type in varrock museum quiz\n\nTyler Hardy (1):\n runelite-api: Add/Correct fairy ring panel widgets\n\nforsco (1):\n Add mythical cape and teak kitchen table to skill calc (#4341)\n
\n',image:"/img/blog/1.4.8-Release/fairy-ring-filter.png"}}}]);
-//# sourceMappingURL=53.c73057fb.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[53],{329:function(e,n){e.exports={title:"1.4.8 Release",description:"Fairy Ring search, XP tracker pausing and RoW !kc support",author:"Adam",body:'You can now filter through the Fairy Ring travel log while having the configure
interface open. (Contributed by @Abextm )
\n
\nThe XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck )
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nReading the Ring of Wealth boss log now updates the !kc command kill counts \nTheatre of Blood rewards are now automatically screenshotted \nHunter level-ups are now properly screenshotted \nScreenshots taken in Deadman mode now reside in separate directory \nThe King percival clue now also contains informations about nearest fairy ring \nAdded Mounted Mythical Cape to the skill calculator \nFix slayer plugin sometimes highlighting nonexistent NPCs \nFix bug with ground items not always showing ground items \nCacti in farming plugin now work correctly \nUntradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly \nFix alignment of xpdrops when sprites are configured to be hidden \nFix hiscore autocomplete when typing too quickly \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (28):\n Revert "command manager: post events to immediate eventbus"\n Revert "plugin manager: register plugins with immediate event bus"\n Revert "runelite-client: add immediate event bus"\n Add chatbox input listener and use for chatbox input event\n slayer plugin: fix parsing points and streaks with commas\n chat commands: add test\n chat commands: loosen regex for boss names\n runelite-scripts: add bank search script\n Add matches found to bank tag search dialog message\n chat commands: count barrows chests too\n screenshot plugin: move level up and quest screenshots to after widget load\n screenshot plugin: rename "raids" to "chambers of xeric"\n screenshot plugin: fix hunter level up screenshots\n config invocation handler: don\'t set config values if already set\n hiscore plugin: fix race with inserting next character with autocomplete\n slayer plugin: clear highlighted targets on login\n ground items: scan entire scene for items not just ones within range\n Add item spawn events\n grounditems: rewrite to use item spawn events\n region tile manager: send item spawns at plugin start\n agility plugin: use item events\n mta plugin: use item events\n Remove item layer changed event\n Remove MAZE_GUARDIAN_MOVING npc id\n prayer plugin: update zamorak robe itemids\n xp drop plugin: fix alignment of xpdrops when hiding skill icons\n xp drop plugin: add positions for config\n Add item despawn events when ground items is nulled\n\nAquivers (1):\n Add fairy ring information to King Percival clue #4344\n\nJHPinto (1):\n Slayer overlay use query idEquals, use consts (#4322)\n\nJordan (1):\n timers plugin: Use item and sprite IDs for timers\n\nJordan Atwood (5):\n screenshot plugin: Use separate directory for DMM\n text: Fix removeTags for isolated < and > chars\n timers plugin: Reduce visibilities\n Remove freeze timer on Vorkath Zombified spawn death\n clue scroll plugin: Remove useless null check\n\nLevi Schuck (2):\n Add dimming UI to progress bar\n Add feature to pause skill timers on logout or after idle period\n\nMagic fTail (5):\n Update dialog widget ids from game update\n chat commands: add raids pattern\n ScreenshotPlugin: fix naming of event\n chat commands: update boss kc from boss log\n screenshot plugin: capture ToB rewards\n\nMax Weber (8):\n farmingtracker: Fix cactus implementation\n cache: Relax label name constraints\n Rename Region to Scene\n runelite-api: Update autogenerated ID files to 171-7\n runelite-client: Allow ChatboxInputManager to callback early\n Add API to create new widgets\n runelite-client: Add fairy ring search to fairy ring plugin\n devtools: Show index on dynamic widgets in the tree\n\nQatell (1):\n Fixed objects of variable width and length from being positioned incorrectly on the map.\n\nTomas Slusny (5):\n Remove investigate menu entry swap\n Add Sanguinesti Staff to ItemMapping\n Add mapping for Scythe to ItemMappings\n Remove unused import from RSTileMixin\n Fix camels type in varrock museum quiz\n\nTyler Hardy (1):\n runelite-api: Add/Correct fairy ring panel widgets\n\nforsco (1):\n Add mythical cape and teak kitchen table to skill calc (#4341)\n
\n',image:"/img/blog/1.4.8-Release/fairy-ring-filter.png"}}}]);
+//# sourceMappingURL=53.68ffec1a.chunk.js.map
\ No newline at end of file
diff --git a/static/js/53.c73057fb.chunk.js.map b/static/js/53.68ffec1a.chunk.js.map
similarity index 98%
rename from static/js/53.c73057fb.chunk.js.map
rename to static/js/53.68ffec1a.chunk.js.map
index 68a7c13fb..277cb0fe2 100644
--- a/static/js/53.c73057fb.chunk.js.map
+++ b/static/js/53.68ffec1a.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-07-19-07-00-1.4.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4DAA4D,OAAS,OAAO,KAAO,u/JAA0gK,MAAQ","file":"static/js/53.c73057fb.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.8 Release\",\"description\":\"Fairy Ring search, XP tracker pausing and RoW !kc support\",\"author\":\"Adam\",\"body\":\"You can now filter through the Fairy Ring travel log while having the configure
interface open. (Contributed by @Abextm )
\\n
\\nThe XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck )
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nReading the Ring of Wealth boss log now updates the !kc command kill counts \\nTheatre of Blood rewards are now automatically screenshotted \\nHunter level-ups are now properly screenshotted \\nScreenshots taken in Deadman mode now reside in separate directory \\nThe King percival clue now also contains informations about nearest fairy ring \\nAdded Mounted Mythical Cape to the skill calculator \\nFix slayer plugin sometimes highlighting nonexistent NPCs \\nFix bug with ground items not always showing ground items \\nCacti in farming plugin now work correctly \\nUntradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly \\nFix alignment of xpdrops when sprites are configured to be hidden \\nFix hiscore autocomplete when typing too quickly \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (28):\\n Revert "command manager: post events to immediate eventbus"\\n Revert "plugin manager: register plugins with immediate event bus"\\n Revert "runelite-client: add immediate event bus"\\n Add chatbox input listener and use for chatbox input event\\n slayer plugin: fix parsing points and streaks with commas\\n chat commands: add test\\n chat commands: loosen regex for boss names\\n runelite-scripts: add bank search script\\n Add matches found to bank tag search dialog message\\n chat commands: count barrows chests too\\n screenshot plugin: move level up and quest screenshots to after widget load\\n screenshot plugin: rename "raids" to "chambers of xeric"\\n screenshot plugin: fix hunter level up screenshots\\n config invocation handler: don't set config values if already set\\n hiscore plugin: fix race with inserting next character with autocomplete\\n slayer plugin: clear highlighted targets on login\\n ground items: scan entire scene for items not just ones within range\\n Add item spawn events\\n grounditems: rewrite to use item spawn events\\n region tile manager: send item spawns at plugin start\\n agility plugin: use item events\\n mta plugin: use item events\\n Remove item layer changed event\\n Remove MAZE_GUARDIAN_MOVING npc id\\n prayer plugin: update zamorak robe itemids\\n xp drop plugin: fix alignment of xpdrops when hiding skill icons\\n xp drop plugin: add positions for config\\n Add item despawn events when ground items is nulled\\n\\nAquivers (1):\\n Add fairy ring information to King Percival clue #4344\\n\\nJHPinto (1):\\n Slayer overlay use query idEquals, use consts (#4322)\\n\\nJordan (1):\\n timers plugin: Use item and sprite IDs for timers\\n\\nJordan Atwood (5):\\n screenshot plugin: Use separate directory for DMM\\n text: Fix removeTags for isolated < and > chars\\n timers plugin: Reduce visibilities\\n Remove freeze timer on Vorkath Zombified spawn death\\n clue scroll plugin: Remove useless null check\\n\\nLevi Schuck (2):\\n Add dimming UI to progress bar\\n Add feature to pause skill timers on logout or after idle period\\n\\nMagic fTail (5):\\n Update dialog widget ids from game update\\n chat commands: add raids pattern\\n ScreenshotPlugin: fix naming of event\\n chat commands: update boss kc from boss log\\n screenshot plugin: capture ToB rewards\\n\\nMax Weber (8):\\n farmingtracker: Fix cactus implementation\\n cache: Relax label name constraints\\n Rename Region to Scene\\n runelite-api: Update autogenerated ID files to 171-7\\n runelite-client: Allow ChatboxInputManager to callback early\\n Add API to create new widgets\\n runelite-client: Add fairy ring search to fairy ring plugin\\n devtools: Show index on dynamic widgets in the tree\\n\\nQatell (1):\\n Fixed objects of variable width and length from being positioned incorrectly on the map.\\n\\nTomas Slusny (5):\\n Remove investigate menu entry swap\\n Add Sanguinesti Staff to ItemMapping\\n Add mapping for Scythe to ItemMappings\\n Remove unused import from RSTileMixin\\n Fix camels type in varrock museum quiz\\n\\nTyler Hardy (1):\\n runelite-api: Add/Correct fairy ring panel widgets\\n\\nforsco (1):\\n Add mythical cape and teak kitchen table to skill calc (#4341)\\n
\\n\",\"image\":\"/img/blog/1.4.8-Release/fairy-ring-filter.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-07-19-07-00-1.4.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4DAA4D,OAAS,OAAO,KAAO,u/JAA0gK,MAAQ","file":"static/js/53.68ffec1a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.8 Release\",\"description\":\"Fairy Ring search, XP tracker pausing and RoW !kc support\",\"author\":\"Adam\",\"body\":\"You can now filter through the Fairy Ring travel log while having the configure
interface open. (Contributed by @Abextm )
\\n
\\nThe XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck )
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nReading the Ring of Wealth boss log now updates the !kc command kill counts \\nTheatre of Blood rewards are now automatically screenshotted \\nHunter level-ups are now properly screenshotted \\nScreenshots taken in Deadman mode now reside in separate directory \\nThe King percival clue now also contains informations about nearest fairy ring \\nAdded Mounted Mythical Cape to the skill calculator \\nFix slayer plugin sometimes highlighting nonexistent NPCs \\nFix bug with ground items not always showing ground items \\nCacti in farming plugin now work correctly \\nUntradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly \\nFix alignment of xpdrops when sprites are configured to be hidden \\nFix hiscore autocomplete when typing too quickly \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (28):\\n Revert "command manager: post events to immediate eventbus"\\n Revert "plugin manager: register plugins with immediate event bus"\\n Revert "runelite-client: add immediate event bus"\\n Add chatbox input listener and use for chatbox input event\\n slayer plugin: fix parsing points and streaks with commas\\n chat commands: add test\\n chat commands: loosen regex for boss names\\n runelite-scripts: add bank search script\\n Add matches found to bank tag search dialog message\\n chat commands: count barrows chests too\\n screenshot plugin: move level up and quest screenshots to after widget load\\n screenshot plugin: rename "raids" to "chambers of xeric"\\n screenshot plugin: fix hunter level up screenshots\\n config invocation handler: don't set config values if already set\\n hiscore plugin: fix race with inserting next character with autocomplete\\n slayer plugin: clear highlighted targets on login\\n ground items: scan entire scene for items not just ones within range\\n Add item spawn events\\n grounditems: rewrite to use item spawn events\\n region tile manager: send item spawns at plugin start\\n agility plugin: use item events\\n mta plugin: use item events\\n Remove item layer changed event\\n Remove MAZE_GUARDIAN_MOVING npc id\\n prayer plugin: update zamorak robe itemids\\n xp drop plugin: fix alignment of xpdrops when hiding skill icons\\n xp drop plugin: add positions for config\\n Add item despawn events when ground items is nulled\\n\\nAquivers (1):\\n Add fairy ring information to King Percival clue #4344\\n\\nJHPinto (1):\\n Slayer overlay use query idEquals, use consts (#4322)\\n\\nJordan (1):\\n timers plugin: Use item and sprite IDs for timers\\n\\nJordan Atwood (5):\\n screenshot plugin: Use separate directory for DMM\\n text: Fix removeTags for isolated < and > chars\\n timers plugin: Reduce visibilities\\n Remove freeze timer on Vorkath Zombified spawn death\\n clue scroll plugin: Remove useless null check\\n\\nLevi Schuck (2):\\n Add dimming UI to progress bar\\n Add feature to pause skill timers on logout or after idle period\\n\\nMagic fTail (5):\\n Update dialog widget ids from game update\\n chat commands: add raids pattern\\n ScreenshotPlugin: fix naming of event\\n chat commands: update boss kc from boss log\\n screenshot plugin: capture ToB rewards\\n\\nMax Weber (8):\\n farmingtracker: Fix cactus implementation\\n cache: Relax label name constraints\\n Rename Region to Scene\\n runelite-api: Update autogenerated ID files to 171-7\\n runelite-client: Allow ChatboxInputManager to callback early\\n Add API to create new widgets\\n runelite-client: Add fairy ring search to fairy ring plugin\\n devtools: Show index on dynamic widgets in the tree\\n\\nQatell (1):\\n Fixed objects of variable width and length from being positioned incorrectly on the map.\\n\\nTomas Slusny (5):\\n Remove investigate menu entry swap\\n Add Sanguinesti Staff to ItemMapping\\n Add mapping for Scythe to ItemMappings\\n Remove unused import from RSTileMixin\\n Fix camels type in varrock museum quiz\\n\\nTyler Hardy (1):\\n runelite-api: Add/Correct fairy ring panel widgets\\n\\nforsco (1):\\n Add mythical cape and teak kitchen table to skill calc (#4341)\\n
\\n\",\"image\":\"/img/blog/1.4.8-Release/fairy-ring-filter.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/54.a0bb49d7.chunk.js b/static/js/54.dfb7d20f.chunk.js
similarity index 97%
rename from static/js/54.a0bb49d7.chunk.js
rename to static/js/54.dfb7d20f.chunk.js
index 78fdf2943..93464fa2e 100644
--- a/static/js/54.a0bb49d7.chunk.js
+++ b/static/js/54.dfb7d20f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[54],{329:function(e,n){e.exports={title:"1.4.9 Release",description:"Movable minimap and xptracker, achievement diary skill requirements, and bug fixes",author:"Adam",body:'The minimap and xp tracker can now be moved by holding alt:
\n
\nAn achievement diary plugin was added which shows skill requirements on each\ntask in the diaries:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix minimap overlays drawing on the minimap when it was hidden \nFix minimap plugin to be able to hide the minimap on \'bottom line\' side stones\narrangement \nFix !kc not working in private messages \nRewrite ge plugin alt+click search to work more reliably on more interfaces,\nsuch as the inventory when in the grand exchange. \nAdd abyssal sire stun timer \nFix opponent info plugin hiscore lookup on seasonal deadman worlds \nFix menaphite emote clue requirements \nFix XP tracker to no longer track skills while they are not being trained \nFix XP tracker to track past virtual level 126, up to 200m \nAdd "show exact value" option to bank value plugin \nMove banana plantation clue out of tree \nFix height of ground items \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (8):\n runelite-api: add fixed minimap widgets\n mixins: only update render parent of nested widget if widget would have been rendererd\n mixins: optimize widget isHidden and getParent\n perspective: account for minimap being hidden or moved in worldToMiniMap\n Add private message input event and add !kc to chatcommands for private messages\n Merge runelite-scripts into runelite-client\n Add achievement diary plugin\n cache: fix assembler to set correct switch table index\n\nBert De Geyter (1):\n Render abyss rift portals as soon as visible (#3841)\n\nJeremy Plsek (1):\n ge plugin: rewrite alt-click searching\n\nJohn Pettenger (1):\n timers plugin: add abyssal sire stun timer\n\nJordan Atwood (2):\n opponent info plugin: Fix SDMM hiscore lookup\n clues: Fix menaphite emote requirements\n\nJoshua Filby (1):\n fix: use the supplied actor to check against in isInteractingWith\n\nKamiel (1):\n perspective: fix regression caused by 2599db2\n\nLevi (2):\n Check for skill being trained while ticking change (#4469)\n Fix level 126 next goal to be max XP (200,000,000) instead of -1 xp\n\nMagic fTail (1):\n bank value plugin: add option to display exact value\n\nMax Weber (5):\n runelite-client: Consume hotkeys in HotkeyListener\n runelite-client: Handle releasing modifiers first correctly\n cluescrolls: Move banana plantation clue out of tree\n cluescrolls: Add description to map clues\n mixins: Don\'t post mouse events that have already been posted\n\nTimo van Veenendaal (2):\n Inventory viewer: make padding between items same as in inventory.\n Inventory viewer: Fix vertical spacing of items to match inventory.\n\nTomas Slusny (20):\n Add support for mod public chat to ChatCommands\n Add JMod clan member rank\n Add new WidgetIDs for minimap\n Use correct widget when hiding minimap\n Move private methods to bottom of minimap plugin\n Hide only inside of minimap but not logout\n Follow GitHub templates for bug report and issue (#4205)\n Move rs-client related classes to own package\n Allow RS loading classes to be used with Guice\n Inject and load RS client and applet through Guice\n Send launch properties around as bound constants\n Remove recursive dependency on RuneLite\n Properly load configuration when showing ClientUI\n Move Discord and EventBus after ClientUI\n Add support for resetting the detached overlays\n Use Overlay#getBounds for getting correct bounds\n Add experience tracker widget WidgetInfo\n Add support for RS movable widgets\n Update frame config when needed\n Propagate height to ground items\n\naquivers (1):\n Add more chat !kc abbreviations (#4372)\n
\n',image:"/img/blog/1.4.9-Release/movable-widgets.gif"}}}]);
-//# sourceMappingURL=54.a0bb49d7.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[54],{330:function(e,n){e.exports={title:"1.4.9 Release",description:"Movable minimap and xptracker, achievement diary skill requirements, and bug fixes",author:"Adam",body:'The minimap and xp tracker can now be moved by holding alt:
\n
\nAn achievement diary plugin was added which shows skill requirements on each\ntask in the diaries:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix minimap overlays drawing on the minimap when it was hidden \nFix minimap plugin to be able to hide the minimap on \'bottom line\' side stones\narrangement \nFix !kc not working in private messages \nRewrite ge plugin alt+click search to work more reliably on more interfaces,\nsuch as the inventory when in the grand exchange. \nAdd abyssal sire stun timer \nFix opponent info plugin hiscore lookup on seasonal deadman worlds \nFix menaphite emote clue requirements \nFix XP tracker to no longer track skills while they are not being trained \nFix XP tracker to track past virtual level 126, up to 200m \nAdd "show exact value" option to bank value plugin \nMove banana plantation clue out of tree \nFix height of ground items \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (8):\n runelite-api: add fixed minimap widgets\n mixins: only update render parent of nested widget if widget would have been rendererd\n mixins: optimize widget isHidden and getParent\n perspective: account for minimap being hidden or moved in worldToMiniMap\n Add private message input event and add !kc to chatcommands for private messages\n Merge runelite-scripts into runelite-client\n Add achievement diary plugin\n cache: fix assembler to set correct switch table index\n\nBert De Geyter (1):\n Render abyss rift portals as soon as visible (#3841)\n\nJeremy Plsek (1):\n ge plugin: rewrite alt-click searching\n\nJohn Pettenger (1):\n timers plugin: add abyssal sire stun timer\n\nJordan Atwood (2):\n opponent info plugin: Fix SDMM hiscore lookup\n clues: Fix menaphite emote requirements\n\nJoshua Filby (1):\n fix: use the supplied actor to check against in isInteractingWith\n\nKamiel (1):\n perspective: fix regression caused by 2599db2\n\nLevi (2):\n Check for skill being trained while ticking change (#4469)\n Fix level 126 next goal to be max XP (200,000,000) instead of -1 xp\n\nMagic fTail (1):\n bank value plugin: add option to display exact value\n\nMax Weber (5):\n runelite-client: Consume hotkeys in HotkeyListener\n runelite-client: Handle releasing modifiers first correctly\n cluescrolls: Move banana plantation clue out of tree\n cluescrolls: Add description to map clues\n mixins: Don\'t post mouse events that have already been posted\n\nTimo van Veenendaal (2):\n Inventory viewer: make padding between items same as in inventory.\n Inventory viewer: Fix vertical spacing of items to match inventory.\n\nTomas Slusny (20):\n Add support for mod public chat to ChatCommands\n Add JMod clan member rank\n Add new WidgetIDs for minimap\n Use correct widget when hiding minimap\n Move private methods to bottom of minimap plugin\n Hide only inside of minimap but not logout\n Follow GitHub templates for bug report and issue (#4205)\n Move rs-client related classes to own package\n Allow RS loading classes to be used with Guice\n Inject and load RS client and applet through Guice\n Send launch properties around as bound constants\n Remove recursive dependency on RuneLite\n Properly load configuration when showing ClientUI\n Move Discord and EventBus after ClientUI\n Add support for resetting the detached overlays\n Use Overlay#getBounds for getting correct bounds\n Add experience tracker widget WidgetInfo\n Add support for RS movable widgets\n Update frame config when needed\n Propagate height to ground items\n\naquivers (1):\n Add more chat !kc abbreviations (#4372)\n
\n',image:"/img/blog/1.4.9-Release/movable-widgets.gif"}}}]);
+//# sourceMappingURL=54.dfb7d20f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/54.a0bb49d7.chunk.js.map b/static/js/54.dfb7d20f.chunk.js.map
similarity index 98%
rename from static/js/54.a0bb49d7.chunk.js.map
rename to static/js/54.dfb7d20f.chunk.js.map
index 3e918380e..6d27916ff 100644
--- a/static/js/54.a0bb49d7.chunk.js.map
+++ b/static/js/54.dfb7d20f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-07-26-07-00-1.4.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,qFAAqF,OAAS,OAAO,KAAO,qlIAA0lI,MAAQ","file":"static/js/54.a0bb49d7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.9 Release\",\"description\":\"Movable minimap and xptracker, achievement diary skill requirements, and bug fixes\",\"author\":\"Adam\",\"body\":\"The minimap and xp tracker can now be moved by holding alt:
\\n
\\nAn achievement diary plugin was added which shows skill requirements on each\\ntask in the diaries:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix minimap overlays drawing on the minimap when it was hidden \\nFix minimap plugin to be able to hide the minimap on 'bottom line' side stones\\narrangement \\nFix !kc not working in private messages \\nRewrite ge plugin alt+click search to work more reliably on more interfaces,\\nsuch as the inventory when in the grand exchange. \\nAdd abyssal sire stun timer \\nFix opponent info plugin hiscore lookup on seasonal deadman worlds \\nFix menaphite emote clue requirements \\nFix XP tracker to no longer track skills while they are not being trained \\nFix XP tracker to track past virtual level 126, up to 200m \\nAdd "show exact value" option to bank value plugin \\nMove banana plantation clue out of tree \\nFix height of ground items \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (8):\\n runelite-api: add fixed minimap widgets\\n mixins: only update render parent of nested widget if widget would have been rendererd\\n mixins: optimize widget isHidden and getParent\\n perspective: account for minimap being hidden or moved in worldToMiniMap\\n Add private message input event and add !kc to chatcommands for private messages\\n Merge runelite-scripts into runelite-client\\n Add achievement diary plugin\\n cache: fix assembler to set correct switch table index\\n\\nBert De Geyter (1):\\n Render abyss rift portals as soon as visible (#3841)\\n\\nJeremy Plsek (1):\\n ge plugin: rewrite alt-click searching\\n\\nJohn Pettenger (1):\\n timers plugin: add abyssal sire stun timer\\n\\nJordan Atwood (2):\\n opponent info plugin: Fix SDMM hiscore lookup\\n clues: Fix menaphite emote requirements\\n\\nJoshua Filby (1):\\n fix: use the supplied actor to check against in isInteractingWith\\n\\nKamiel (1):\\n perspective: fix regression caused by 2599db2\\n\\nLevi (2):\\n Check for skill being trained while ticking change (#4469)\\n Fix level 126 next goal to be max XP (200,000,000) instead of -1 xp\\n\\nMagic fTail (1):\\n bank value plugin: add option to display exact value\\n\\nMax Weber (5):\\n runelite-client: Consume hotkeys in HotkeyListener\\n runelite-client: Handle releasing modifiers first correctly\\n cluescrolls: Move banana plantation clue out of tree\\n cluescrolls: Add description to map clues\\n mixins: Don't post mouse events that have already been posted\\n\\nTimo van Veenendaal (2):\\n Inventory viewer: make padding between items same as in inventory.\\n Inventory viewer: Fix vertical spacing of items to match inventory.\\n\\nTomas Slusny (20):\\n Add support for mod public chat to ChatCommands\\n Add JMod clan member rank\\n Add new WidgetIDs for minimap\\n Use correct widget when hiding minimap\\n Move private methods to bottom of minimap plugin\\n Hide only inside of minimap but not logout\\n Follow GitHub templates for bug report and issue (#4205)\\n Move rs-client related classes to own package\\n Allow RS loading classes to be used with Guice\\n Inject and load RS client and applet through Guice\\n Send launch properties around as bound constants\\n Remove recursive dependency on RuneLite\\n Properly load configuration when showing ClientUI\\n Move Discord and EventBus after ClientUI\\n Add support for resetting the detached overlays\\n Use Overlay#getBounds for getting correct bounds\\n Add experience tracker widget WidgetInfo\\n Add support for RS movable widgets\\n Update frame config when needed\\n Propagate height to ground items\\n\\naquivers (1):\\n Add more chat !kc abbreviations (#4372)\\n
\\n\",\"image\":\"/img/blog/1.4.9-Release/movable-widgets.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-07-26-07-00-1.4.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,qFAAqF,OAAS,OAAO,KAAO,qlIAA0lI,MAAQ","file":"static/js/54.dfb7d20f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.9 Release\",\"description\":\"Movable minimap and xptracker, achievement diary skill requirements, and bug fixes\",\"author\":\"Adam\",\"body\":\"The minimap and xp tracker can now be moved by holding alt:
\\n
\\nAn achievement diary plugin was added which shows skill requirements on each\\ntask in the diaries:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix minimap overlays drawing on the minimap when it was hidden \\nFix minimap plugin to be able to hide the minimap on 'bottom line' side stones\\narrangement \\nFix !kc not working in private messages \\nRewrite ge plugin alt+click search to work more reliably on more interfaces,\\nsuch as the inventory when in the grand exchange. \\nAdd abyssal sire stun timer \\nFix opponent info plugin hiscore lookup on seasonal deadman worlds \\nFix menaphite emote clue requirements \\nFix XP tracker to no longer track skills while they are not being trained \\nFix XP tracker to track past virtual level 126, up to 200m \\nAdd "show exact value" option to bank value plugin \\nMove banana plantation clue out of tree \\nFix height of ground items \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (8):\\n runelite-api: add fixed minimap widgets\\n mixins: only update render parent of nested widget if widget would have been rendererd\\n mixins: optimize widget isHidden and getParent\\n perspective: account for minimap being hidden or moved in worldToMiniMap\\n Add private message input event and add !kc to chatcommands for private messages\\n Merge runelite-scripts into runelite-client\\n Add achievement diary plugin\\n cache: fix assembler to set correct switch table index\\n\\nBert De Geyter (1):\\n Render abyss rift portals as soon as visible (#3841)\\n\\nJeremy Plsek (1):\\n ge plugin: rewrite alt-click searching\\n\\nJohn Pettenger (1):\\n timers plugin: add abyssal sire stun timer\\n\\nJordan Atwood (2):\\n opponent info plugin: Fix SDMM hiscore lookup\\n clues: Fix menaphite emote requirements\\n\\nJoshua Filby (1):\\n fix: use the supplied actor to check against in isInteractingWith\\n\\nKamiel (1):\\n perspective: fix regression caused by 2599db2\\n\\nLevi (2):\\n Check for skill being trained while ticking change (#4469)\\n Fix level 126 next goal to be max XP (200,000,000) instead of -1 xp\\n\\nMagic fTail (1):\\n bank value plugin: add option to display exact value\\n\\nMax Weber (5):\\n runelite-client: Consume hotkeys in HotkeyListener\\n runelite-client: Handle releasing modifiers first correctly\\n cluescrolls: Move banana plantation clue out of tree\\n cluescrolls: Add description to map clues\\n mixins: Don't post mouse events that have already been posted\\n\\nTimo van Veenendaal (2):\\n Inventory viewer: make padding between items same as in inventory.\\n Inventory viewer: Fix vertical spacing of items to match inventory.\\n\\nTomas Slusny (20):\\n Add support for mod public chat to ChatCommands\\n Add JMod clan member rank\\n Add new WidgetIDs for minimap\\n Use correct widget when hiding minimap\\n Move private methods to bottom of minimap plugin\\n Hide only inside of minimap but not logout\\n Follow GitHub templates for bug report and issue (#4205)\\n Move rs-client related classes to own package\\n Allow RS loading classes to be used with Guice\\n Inject and load RS client and applet through Guice\\n Send launch properties around as bound constants\\n Remove recursive dependency on RuneLite\\n Properly load configuration when showing ClientUI\\n Move Discord and EventBus after ClientUI\\n Add support for resetting the detached overlays\\n Use Overlay#getBounds for getting correct bounds\\n Add experience tracker widget WidgetInfo\\n Add support for RS movable widgets\\n Update frame config when needed\\n Propagate height to ground items\\n\\naquivers (1):\\n Add more chat !kc abbreviations (#4372)\\n
\\n\",\"image\":\"/img/blog/1.4.9-Release/movable-widgets.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/55.6a443bbe.chunk.js b/static/js/55.ffa78499.chunk.js
similarity index 98%
rename from static/js/55.6a443bbe.chunk.js
rename to static/js/55.ffa78499.chunk.js
index 1051e5a30..6d5a7aece 100644
--- a/static/js/55.6a443bbe.chunk.js
+++ b/static/js/55.ffa78499.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[55],{330:function(e,n){e.exports={title:"1.4.10 Release",description:"Loot tracker, minnows overlay, prayer bar flick helper and bug fixes",author:"Tomas",body:'A loot tracker plugin has been added which will be able to track your loot from:
\n\nMonsters \nBosses (like Vorkath and Zulrah) \nClue scrolls \nChambers of Xeric \nTheatre of Blood \nBarrows Brothers \nPlayers you PK (!) \n \nFor now, all these data will be tracked only per-session and not persisted and there is only per-kill view,\nbut we are planning to extend both these areas in future. This plugin is disabled by default, so make sure\nto enable it in settings under Loot tracker .
\nThis feature is result of hard work of @WooxSolo , @Adam- ,\n@TheStonedTurtle and @Psikoi , so thank you all for\nyour great work on it:
\n \n \n \n
\nSupport for minnows timers has been added to the Fishing plugin which displays a countdown until the minnow spot will\nmove. Thanks to @jkybtw who contributed this feature.
\n
\nThe flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\n@forsco :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nUngael (Vorkath) obstacles has been added to agility plugin \nMeyerditch obstacles has been added to agility plugin \nFairy ring clues will now warn about missing spade from inventory \nLumbridge swamp emote clue now shows correct location \nLoading of window sidebar has been fixed, now it should not mysteriously disappear anymore \nDig location for Barbarian Villag Hot&Cold clue is now correct \nIdle notifier now notify on crafting leather idle \nRequirement for slaying an Abyssal Demon corrected in Achievement Diary\nplugin \nFix tile overlay height when highlighting a tile next to the edge of a bridge \nAdd config for whether the killcount command is enabled \nFix minimap overlay dot overlay being slightly off \nCrafting leather has been added to the idle notifier \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 18 contributors this release!
\nAdam (12):\n perspective: fix worldToCanvas to convert from local to scene coords correctly\n Revert "perspective: fix worldToCanvas to convert from local to scene coords correctly"\n perspective: use less magic constants in getTileHeight\n Revert "perspective: fix regression caused by 2599db2"\n perspective: split tile height logic out of local to world\n perspective: fix getCanvasTileAreaPoly when getting tile next to a bridge\n perspective: fix checkstyle\n runelite-mixins: correct worldToCanvas arguments\n perspective: change worldToMinimap location calculation back\n fishing plugin: add minnows overlay\n fishing plugin: add position to config\n Add LootManager\n\nDevin (1):\n kourend library plugin: Use correct enum naming convention\n\nJacob McElroy (1):\n Fix dig location of the West Barbarian Village H/C clue (#4524)\n\nJaimy Smets (1):\n Add alternative dragon pickaxes to emote clue\n\nJordan Atwood (23):\n item charge plugin: Use constant for checked string\n timers plugin: Use constants for checked strings\n Add color utility class\n notifier: Use ColorUtil functions\n chat message manager: Use ColorUtil functions\n widget menu option: Use ColorUtil functions\n achievement diary plugin: Use ColorUtil functions\n boosts plugin: Use ColorUtil functions\n friend notes plugin: Use ColorUtil functions\n ground items plugin: Use ColorUtil functions\n inventory tags plugin: Use ColorUtil functions\n item prices plugin: Use ColorUtil functions\n item stats plugin: Use ColorUtil functions\n menu entry swapper plugin: Use ColorUtil functions\n player indicators plugin: Use ColorUtil functions\n puzzle solver plugin: Use ColorUtil functions\n rune pouch plugin: Use ColorUtil functions\n slayer plugin: Use ColorUtil functions\n achievement diary plugin: Fix Abyssal demon req\n achievement diary plugin: Fix Belladonna farming req\n achievement diary plugin: Fix waka canoe requirement\n clues: Fix Lumbridge swamp cave emote clue location\n agility: Add Ungael obstacles\n\nJuul Damen (1):\n Add missing killcount command config (#4489)\n\nKristian Welsh (1):\n overlay util: adjust renderMinimapLocation for newer worldToMinimap\n\nMagic fTail (3):\n TimerPlugin: Fix prayer enhance length\n Clarify wording of default log tracker message (#4602)\n Fix Theatre Of Blood InventoryID (#4608)\n\nMax Weber (5):\n mixins: Prevent runScript from being called recursively\n runelite-client: Rename ClientThread::invokeLater to invoke\n runelite-client: Always call done after changed in ChatboxInptutManager\n fairyring: Always run scripts outside of chatbox input callbacks\n runelite-client: Make hotkeys run on KeyPressed\n\nMichael Goodwin (3):\n Add Chambers Of Xeric and TOB inventories\n Add TOB varbits\n Add TOB widget ids\n\nMitch Barnett (1):\n Add Meyerditch to agility obstacles (#4538)\n\nSu-Shing Chen (1):\n Fix Assembler tests when autocrlf=true on Windows\n\nTomas Slusny (12):\n Fix loading of chat colors on startup\n Use consistent API and order for title and sides\n Add isTab property to title buttons\n Merge PluginToolbar and TitleToolbar together\n Add simple info log with startup time\n Properly use javax.inject.Provider\n Pack and show frame only after properties update\n Fix NPE when trying to draw null names\n Add null check for Perspective.getCanvasTextLoc\n Account for plane in TileObject canvas location\n Fix FontManagerTest package\n Fix getCanvasTileAreaPoly ArrayOutOfBounds\n\nWooxSolo (1):\n Add NPC death animations\n\naquivers (1):\n Add spade requirement reminder to fairy ring clues (#4585)\n\nforsco (1):\n Add flick helper to player bar (#3882)\n\npsikoi (1):\n Add loot tracker plugin\n\nrswindows10 (2):\n Add support for crafting leather idle notification (#4600)\n Remove comment regarding crafting leather (#4601)\n
\n',image:"/img/blog/1.4.10-Release/loottracker1.png"}}}]);
-//# sourceMappingURL=55.6a443bbe.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[55],{331:function(e,n){e.exports={title:"1.4.10 Release",description:"Loot tracker, minnows overlay, prayer bar flick helper and bug fixes",author:"Tomas",body:'A loot tracker plugin has been added which will be able to track your loot from:
\n\nMonsters \nBosses (like Vorkath and Zulrah) \nClue scrolls \nChambers of Xeric \nTheatre of Blood \nBarrows Brothers \nPlayers you PK (!) \n \nFor now, all these data will be tracked only per-session and not persisted and there is only per-kill view,\nbut we are planning to extend both these areas in future. This plugin is disabled by default, so make sure\nto enable it in settings under Loot tracker .
\nThis feature is result of hard work of @WooxSolo , @Adam- ,\n@TheStonedTurtle and @Psikoi , so thank you all for\nyour great work on it:
\n \n \n \n
\nSupport for minnows timers has been added to the Fishing plugin which displays a countdown until the minnow spot will\nmove. Thanks to @jkybtw who contributed this feature.
\n
\nThe flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\n@forsco :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nUngael (Vorkath) obstacles has been added to agility plugin \nMeyerditch obstacles has been added to agility plugin \nFairy ring clues will now warn about missing spade from inventory \nLumbridge swamp emote clue now shows correct location \nLoading of window sidebar has been fixed, now it should not mysteriously disappear anymore \nDig location for Barbarian Villag Hot&Cold clue is now correct \nIdle notifier now notify on crafting leather idle \nRequirement for slaying an Abyssal Demon corrected in Achievement Diary\nplugin \nFix tile overlay height when highlighting a tile next to the edge of a bridge \nAdd config for whether the killcount command is enabled \nFix minimap overlay dot overlay being slightly off \nCrafting leather has been added to the idle notifier \n \nEnjoy!
\n~ Tomas
\nNew commits \nWe had 18 contributors this release!
\nAdam (12):\n perspective: fix worldToCanvas to convert from local to scene coords correctly\n Revert "perspective: fix worldToCanvas to convert from local to scene coords correctly"\n perspective: use less magic constants in getTileHeight\n Revert "perspective: fix regression caused by 2599db2"\n perspective: split tile height logic out of local to world\n perspective: fix getCanvasTileAreaPoly when getting tile next to a bridge\n perspective: fix checkstyle\n runelite-mixins: correct worldToCanvas arguments\n perspective: change worldToMinimap location calculation back\n fishing plugin: add minnows overlay\n fishing plugin: add position to config\n Add LootManager\n\nDevin (1):\n kourend library plugin: Use correct enum naming convention\n\nJacob McElroy (1):\n Fix dig location of the West Barbarian Village H/C clue (#4524)\n\nJaimy Smets (1):\n Add alternative dragon pickaxes to emote clue\n\nJordan Atwood (23):\n item charge plugin: Use constant for checked string\n timers plugin: Use constants for checked strings\n Add color utility class\n notifier: Use ColorUtil functions\n chat message manager: Use ColorUtil functions\n widget menu option: Use ColorUtil functions\n achievement diary plugin: Use ColorUtil functions\n boosts plugin: Use ColorUtil functions\n friend notes plugin: Use ColorUtil functions\n ground items plugin: Use ColorUtil functions\n inventory tags plugin: Use ColorUtil functions\n item prices plugin: Use ColorUtil functions\n item stats plugin: Use ColorUtil functions\n menu entry swapper plugin: Use ColorUtil functions\n player indicators plugin: Use ColorUtil functions\n puzzle solver plugin: Use ColorUtil functions\n rune pouch plugin: Use ColorUtil functions\n slayer plugin: Use ColorUtil functions\n achievement diary plugin: Fix Abyssal demon req\n achievement diary plugin: Fix Belladonna farming req\n achievement diary plugin: Fix waka canoe requirement\n clues: Fix Lumbridge swamp cave emote clue location\n agility: Add Ungael obstacles\n\nJuul Damen (1):\n Add missing killcount command config (#4489)\n\nKristian Welsh (1):\n overlay util: adjust renderMinimapLocation for newer worldToMinimap\n\nMagic fTail (3):\n TimerPlugin: Fix prayer enhance length\n Clarify wording of default log tracker message (#4602)\n Fix Theatre Of Blood InventoryID (#4608)\n\nMax Weber (5):\n mixins: Prevent runScript from being called recursively\n runelite-client: Rename ClientThread::invokeLater to invoke\n runelite-client: Always call done after changed in ChatboxInptutManager\n fairyring: Always run scripts outside of chatbox input callbacks\n runelite-client: Make hotkeys run on KeyPressed\n\nMichael Goodwin (3):\n Add Chambers Of Xeric and TOB inventories\n Add TOB varbits\n Add TOB widget ids\n\nMitch Barnett (1):\n Add Meyerditch to agility obstacles (#4538)\n\nSu-Shing Chen (1):\n Fix Assembler tests when autocrlf=true on Windows\n\nTomas Slusny (12):\n Fix loading of chat colors on startup\n Use consistent API and order for title and sides\n Add isTab property to title buttons\n Merge PluginToolbar and TitleToolbar together\n Add simple info log with startup time\n Properly use javax.inject.Provider\n Pack and show frame only after properties update\n Fix NPE when trying to draw null names\n Add null check for Perspective.getCanvasTextLoc\n Account for plane in TileObject canvas location\n Fix FontManagerTest package\n Fix getCanvasTileAreaPoly ArrayOutOfBounds\n\nWooxSolo (1):\n Add NPC death animations\n\naquivers (1):\n Add spade requirement reminder to fairy ring clues (#4585)\n\nforsco (1):\n Add flick helper to player bar (#3882)\n\npsikoi (1):\n Add loot tracker plugin\n\nrswindows10 (2):\n Add support for crafting leather idle notification (#4600)\n Remove comment regarding crafting leather (#4601)\n
\n',image:"/img/blog/1.4.10-Release/loottracker1.png"}}}]);
+//# sourceMappingURL=55.ffa78499.chunk.js.map
\ No newline at end of file
diff --git a/static/js/55.6a443bbe.chunk.js.map b/static/js/55.ffa78499.chunk.js.map
similarity index 99%
rename from static/js/55.6a443bbe.chunk.js.map
rename to static/js/55.ffa78499.chunk.js.map
index 5f31bf9b0..f338bc4dc 100644
--- a/static/js/55.6a443bbe.chunk.js.map
+++ b/static/js/55.ffa78499.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-08-02-10-00-1.4.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uEAAuE,OAAS,QAAQ,KAAO,+/NAA2jO,MAAQ","file":"static/js/55.6a443bbe.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.10 Release\",\"description\":\"Loot tracker, minnows overlay, prayer bar flick helper and bug fixes\",\"author\":\"Tomas\",\"body\":\"A loot tracker plugin has been added which will be able to track your loot from:
\\n\\nMonsters \\nBosses (like Vorkath and Zulrah) \\nClue scrolls \\nChambers of Xeric \\nTheatre of Blood \\nBarrows Brothers \\nPlayers you PK (!) \\n \\nFor now, all these data will be tracked only per-session and not persisted and there is only per-kill view,\\nbut we are planning to extend both these areas in future. This plugin is disabled by default, so make sure\\nto enable it in settings under Loot tracker .
\\nThis feature is result of hard work of @WooxSolo , @Adam- ,\\n@TheStonedTurtle and @Psikoi , so thank you all for\\nyour great work on it:
\\n \\n \\n \\n
\\nSupport for minnows timers has been added to the Fishing plugin which displays a countdown until the minnow spot will\\nmove. Thanks to @jkybtw who contributed this feature.
\\n
\\nThe flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\\n@forsco :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUngael (Vorkath) obstacles has been added to agility plugin \\nMeyerditch obstacles has been added to agility plugin \\nFairy ring clues will now warn about missing spade from inventory \\nLumbridge swamp emote clue now shows correct location \\nLoading of window sidebar has been fixed, now it should not mysteriously disappear anymore \\nDig location for Barbarian Villag Hot&Cold clue is now correct \\nIdle notifier now notify on crafting leather idle \\nRequirement for slaying an Abyssal Demon corrected in Achievement Diary\\nplugin \\nFix tile overlay height when highlighting a tile next to the edge of a bridge \\nAdd config for whether the killcount command is enabled \\nFix minimap overlay dot overlay being slightly off \\nCrafting leather has been added to the idle notifier \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (12):\\n perspective: fix worldToCanvas to convert from local to scene coords correctly\\n Revert "perspective: fix worldToCanvas to convert from local to scene coords correctly"\\n perspective: use less magic constants in getTileHeight\\n Revert "perspective: fix regression caused by 2599db2"\\n perspective: split tile height logic out of local to world\\n perspective: fix getCanvasTileAreaPoly when getting tile next to a bridge\\n perspective: fix checkstyle\\n runelite-mixins: correct worldToCanvas arguments\\n perspective: change worldToMinimap location calculation back\\n fishing plugin: add minnows overlay\\n fishing plugin: add position to config\\n Add LootManager\\n\\nDevin (1):\\n kourend library plugin: Use correct enum naming convention\\n\\nJacob McElroy (1):\\n Fix dig location of the West Barbarian Village H/C clue (#4524)\\n\\nJaimy Smets (1):\\n Add alternative dragon pickaxes to emote clue\\n\\nJordan Atwood (23):\\n item charge plugin: Use constant for checked string\\n timers plugin: Use constants for checked strings\\n Add color utility class\\n notifier: Use ColorUtil functions\\n chat message manager: Use ColorUtil functions\\n widget menu option: Use ColorUtil functions\\n achievement diary plugin: Use ColorUtil functions\\n boosts plugin: Use ColorUtil functions\\n friend notes plugin: Use ColorUtil functions\\n ground items plugin: Use ColorUtil functions\\n inventory tags plugin: Use ColorUtil functions\\n item prices plugin: Use ColorUtil functions\\n item stats plugin: Use ColorUtil functions\\n menu entry swapper plugin: Use ColorUtil functions\\n player indicators plugin: Use ColorUtil functions\\n puzzle solver plugin: Use ColorUtil functions\\n rune pouch plugin: Use ColorUtil functions\\n slayer plugin: Use ColorUtil functions\\n achievement diary plugin: Fix Abyssal demon req\\n achievement diary plugin: Fix Belladonna farming req\\n achievement diary plugin: Fix waka canoe requirement\\n clues: Fix Lumbridge swamp cave emote clue location\\n agility: Add Ungael obstacles\\n\\nJuul Damen (1):\\n Add missing killcount command config (#4489)\\n\\nKristian Welsh (1):\\n overlay util: adjust renderMinimapLocation for newer worldToMinimap\\n\\nMagic fTail (3):\\n TimerPlugin: Fix prayer enhance length\\n Clarify wording of default log tracker message (#4602)\\n Fix Theatre Of Blood InventoryID (#4608)\\n\\nMax Weber (5):\\n mixins: Prevent runScript from being called recursively\\n runelite-client: Rename ClientThread::invokeLater to invoke\\n runelite-client: Always call done after changed in ChatboxInptutManager\\n fairyring: Always run scripts outside of chatbox input callbacks\\n runelite-client: Make hotkeys run on KeyPressed\\n\\nMichael Goodwin (3):\\n Add Chambers Of Xeric and TOB inventories\\n Add TOB varbits\\n Add TOB widget ids\\n\\nMitch Barnett (1):\\n Add Meyerditch to agility obstacles (#4538)\\n\\nSu-Shing Chen (1):\\n Fix Assembler tests when autocrlf=true on Windows\\n\\nTomas Slusny (12):\\n Fix loading of chat colors on startup\\n Use consistent API and order for title and sides\\n Add isTab property to title buttons\\n Merge PluginToolbar and TitleToolbar together\\n Add simple info log with startup time\\n Properly use javax.inject.Provider\\n Pack and show frame only after properties update\\n Fix NPE when trying to draw null names\\n Add null check for Perspective.getCanvasTextLoc\\n Account for plane in TileObject canvas location\\n Fix FontManagerTest package\\n Fix getCanvasTileAreaPoly ArrayOutOfBounds\\n\\nWooxSolo (1):\\n Add NPC death animations\\n\\naquivers (1):\\n Add spade requirement reminder to fairy ring clues (#4585)\\n\\nforsco (1):\\n Add flick helper to player bar (#3882)\\n\\npsikoi (1):\\n Add loot tracker plugin\\n\\nrswindows10 (2):\\n Add support for crafting leather idle notification (#4600)\\n Remove comment regarding crafting leather (#4601)\\n
\\n\",\"image\":\"/img/blog/1.4.10-Release/loottracker1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-08-02-10-00-1.4.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uEAAuE,OAAS,QAAQ,KAAO,+/NAA2jO,MAAQ","file":"static/js/55.ffa78499.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.10 Release\",\"description\":\"Loot tracker, minnows overlay, prayer bar flick helper and bug fixes\",\"author\":\"Tomas\",\"body\":\"A loot tracker plugin has been added which will be able to track your loot from:
\\n\\nMonsters \\nBosses (like Vorkath and Zulrah) \\nClue scrolls \\nChambers of Xeric \\nTheatre of Blood \\nBarrows Brothers \\nPlayers you PK (!) \\n \\nFor now, all these data will be tracked only per-session and not persisted and there is only per-kill view,\\nbut we are planning to extend both these areas in future. This plugin is disabled by default, so make sure\\nto enable it in settings under Loot tracker .
\\nThis feature is result of hard work of @WooxSolo , @Adam- ,\\n@TheStonedTurtle and @Psikoi , so thank you all for\\nyour great work on it:
\\n \\n \\n \\n
\\nSupport for minnows timers has been added to the Fishing plugin which displays a countdown until the minnow spot will\\nmove. Thanks to @jkybtw who contributed this feature.
\\n
\\nThe flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\\n@forsco :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUngael (Vorkath) obstacles has been added to agility plugin \\nMeyerditch obstacles has been added to agility plugin \\nFairy ring clues will now warn about missing spade from inventory \\nLumbridge swamp emote clue now shows correct location \\nLoading of window sidebar has been fixed, now it should not mysteriously disappear anymore \\nDig location for Barbarian Villag Hot&Cold clue is now correct \\nIdle notifier now notify on crafting leather idle \\nRequirement for slaying an Abyssal Demon corrected in Achievement Diary\\nplugin \\nFix tile overlay height when highlighting a tile next to the edge of a bridge \\nAdd config for whether the killcount command is enabled \\nFix minimap overlay dot overlay being slightly off \\nCrafting leather has been added to the idle notifier \\n \\nEnjoy!
\\n~ Tomas
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (12):\\n perspective: fix worldToCanvas to convert from local to scene coords correctly\\n Revert "perspective: fix worldToCanvas to convert from local to scene coords correctly"\\n perspective: use less magic constants in getTileHeight\\n Revert "perspective: fix regression caused by 2599db2"\\n perspective: split tile height logic out of local to world\\n perspective: fix getCanvasTileAreaPoly when getting tile next to a bridge\\n perspective: fix checkstyle\\n runelite-mixins: correct worldToCanvas arguments\\n perspective: change worldToMinimap location calculation back\\n fishing plugin: add minnows overlay\\n fishing plugin: add position to config\\n Add LootManager\\n\\nDevin (1):\\n kourend library plugin: Use correct enum naming convention\\n\\nJacob McElroy (1):\\n Fix dig location of the West Barbarian Village H/C clue (#4524)\\n\\nJaimy Smets (1):\\n Add alternative dragon pickaxes to emote clue\\n\\nJordan Atwood (23):\\n item charge plugin: Use constant for checked string\\n timers plugin: Use constants for checked strings\\n Add color utility class\\n notifier: Use ColorUtil functions\\n chat message manager: Use ColorUtil functions\\n widget menu option: Use ColorUtil functions\\n achievement diary plugin: Use ColorUtil functions\\n boosts plugin: Use ColorUtil functions\\n friend notes plugin: Use ColorUtil functions\\n ground items plugin: Use ColorUtil functions\\n inventory tags plugin: Use ColorUtil functions\\n item prices plugin: Use ColorUtil functions\\n item stats plugin: Use ColorUtil functions\\n menu entry swapper plugin: Use ColorUtil functions\\n player indicators plugin: Use ColorUtil functions\\n puzzle solver plugin: Use ColorUtil functions\\n rune pouch plugin: Use ColorUtil functions\\n slayer plugin: Use ColorUtil functions\\n achievement diary plugin: Fix Abyssal demon req\\n achievement diary plugin: Fix Belladonna farming req\\n achievement diary plugin: Fix waka canoe requirement\\n clues: Fix Lumbridge swamp cave emote clue location\\n agility: Add Ungael obstacles\\n\\nJuul Damen (1):\\n Add missing killcount command config (#4489)\\n\\nKristian Welsh (1):\\n overlay util: adjust renderMinimapLocation for newer worldToMinimap\\n\\nMagic fTail (3):\\n TimerPlugin: Fix prayer enhance length\\n Clarify wording of default log tracker message (#4602)\\n Fix Theatre Of Blood InventoryID (#4608)\\n\\nMax Weber (5):\\n mixins: Prevent runScript from being called recursively\\n runelite-client: Rename ClientThread::invokeLater to invoke\\n runelite-client: Always call done after changed in ChatboxInptutManager\\n fairyring: Always run scripts outside of chatbox input callbacks\\n runelite-client: Make hotkeys run on KeyPressed\\n\\nMichael Goodwin (3):\\n Add Chambers Of Xeric and TOB inventories\\n Add TOB varbits\\n Add TOB widget ids\\n\\nMitch Barnett (1):\\n Add Meyerditch to agility obstacles (#4538)\\n\\nSu-Shing Chen (1):\\n Fix Assembler tests when autocrlf=true on Windows\\n\\nTomas Slusny (12):\\n Fix loading of chat colors on startup\\n Use consistent API and order for title and sides\\n Add isTab property to title buttons\\n Merge PluginToolbar and TitleToolbar together\\n Add simple info log with startup time\\n Properly use javax.inject.Provider\\n Pack and show frame only after properties update\\n Fix NPE when trying to draw null names\\n Add null check for Perspective.getCanvasTextLoc\\n Account for plane in TileObject canvas location\\n Fix FontManagerTest package\\n Fix getCanvasTileAreaPoly ArrayOutOfBounds\\n\\nWooxSolo (1):\\n Add NPC death animations\\n\\naquivers (1):\\n Add spade requirement reminder to fairy ring clues (#4585)\\n\\nforsco (1):\\n Add flick helper to player bar (#3882)\\n\\npsikoi (1):\\n Add loot tracker plugin\\n\\nrswindows10 (2):\\n Add support for crafting leather idle notification (#4600)\\n Remove comment regarding crafting leather (#4601)\\n
\\n\",\"image\":\"/img/blog/1.4.10-Release/loottracker1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/56.6cb8827d.chunk.js b/static/js/56.585e372f.chunk.js
similarity index 97%
rename from static/js/56.6cb8827d.chunk.js
rename to static/js/56.585e372f.chunk.js
index a9bb3bfb1..5991897e8 100644
--- a/static/js/56.6cb8827d.chunk.js
+++ b/static/js/56.585e372f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[56],{331:function(e,n){e.exports={title:"1.4.11 Release",description:"Birdhouse timers, movable xp globes, and bug fixes",author:"Adam",body:'The farming plugin has been renamed to the timer plugin and now includes timers,\nstopwatches, and birdhouse timers. Thanks to\n@takuyakanbr for contributing this awesome\nfeature!
\n \n \n
\nThe RuneLite XP globes are now movable similar to other overlays:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd !cmb chat command \nAdd agility clickbox overlay to Werewolf course \nAdd tablet creation to idle notifier \nFix pest control and report button plugins which broke in the Monday game\nupdate \nFix screen shake interfering with vertical camera \nAdd option to raids plugin to show scouter interface throughout the raid \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (9):\n Disable zoom extender when a cache overlay fails to load\n Fix applying default config to session settings\n modelviewer: fix some incorrect gl usage, add error logging\n modelviewer: fix zfighting of models\n item manager: assert item composition access is done from client thread\n ge plugin: fix accessing item composition from executor thread\n config service: update key name too when setting config\n chat commands: add !cmb command\n scripts: update for game update\n\nBrady (2):\n Add missing shortcuts to trollheim (#4711)\n Move greater demon cannon spot to better location\n\nJaimy Smets (2):\n Add obstacles to Werewolf court\n Add tablet creation animation to idle notifier\n\nJordan Atwood (20):\n achievement diary plugin: Fix coal mining req\n chat commands plugin: Use consistent message check\n resources: Remove unused images\n SwingUtil: Fix grayscaleOffset to not modify alpha\n Add image utility class\n resources: Remove derivative images\n clan manager: Use Sprite IDs for rank badges\n plugins: Use shared clue arrow and reset images\n agility plugin: Use Item ID for arena timer\n clue scroll plugin: Use Item IDs for overlays\n death indicator plugin: Use Item IDs for overlays\n fight caves plugin: Use Sprite IDs for overlay images\n hiscores plugin: Remove duplicate skill icon images\n kingdom plugin: Use Item ID for overlay image\n puzzle solver plugin: Use Sprite ID for overlay image\n raids plugin: Use Sprite ID for raids timer\n screenshot plugin: Use Sprite ID for overlay image\n xp tracker plugin: Use shared image for icon\n ImageUtil: Add getResourceStreamFromClass method\n Remove unused @Slf4j annotations and imports\n\nKamiel (9):\n chat history: clear public chat when menu option is clicked\n item stats: fix tooltip not appearing when hovering over item\n menu entry swapper: fix last destination on arceuus fairy ring\n menu entry swapper: fix zanaris fairy ring not being recognized\n menu entry swapper: fix zanaris swap not working for PoH tree-ring combo\n player indicators: draw tile highlight on ABOVE_SCENE layer (#4629)\n Update chatbox widget IDs\n Update pest control widget IDs\n Update nightmare zone widget ID\n\nMagic fTail (1):\n Add pharaoh\'s sceptres, Toxic staff of the dead, tome of fire item maps\n\nMax Weber (4):\n mixins: Fix camera pitch relaxer not fully relaxing after a screen shake\n cache-client: Return failure to the handshake Future\n runelite-client: Make ItemManager\'s price update thread safe\n runelite-client: Always use the mapped price for items\n\nTomas Slusny (10):\n Add support for making XP globes moveable\n Use correct marker name when cancelling edit\n Add mappings for indexed script db\n Move isOverlayOutdated to IndexDatabase\n Account for linked item id, format tooltip\n Add Tournament world type\n Remove unnecessary headers from plugin panels\n Add null-check for game canvas\n Properly check for changing values in raids plugin\n Add setting to preserve scouter in raid\n\nc01dc0ffee (1):\n Make DeathIndicatorPlugin use LocalPlayerDeath (#4745)\n\ntakuyakanbr (4):\n Convert farming tracker to time tracking plugin\n time tracking: add bird house tracker\n time tracking: add clock panel\n time tracking: add overview tab\n
\n',image:"/img/blog/1.4.11-Release/timer1.png"}}}]);
-//# sourceMappingURL=56.6cb8827d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[56],{332:function(e,n){e.exports={title:"1.4.11 Release",description:"Birdhouse timers, movable xp globes, and bug fixes",author:"Adam",body:'The farming plugin has been renamed to the timer plugin and now includes timers,\nstopwatches, and birdhouse timers. Thanks to\n@takuyakanbr for contributing this awesome\nfeature!
\n \n \n
\nThe RuneLite XP globes are now movable similar to other overlays:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd !cmb chat command \nAdd agility clickbox overlay to Werewolf course \nAdd tablet creation to idle notifier \nFix pest control and report button plugins which broke in the Monday game\nupdate \nFix screen shake interfering with vertical camera \nAdd option to raids plugin to show scouter interface throughout the raid \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (9):\n Disable zoom extender when a cache overlay fails to load\n Fix applying default config to session settings\n modelviewer: fix some incorrect gl usage, add error logging\n modelviewer: fix zfighting of models\n item manager: assert item composition access is done from client thread\n ge plugin: fix accessing item composition from executor thread\n config service: update key name too when setting config\n chat commands: add !cmb command\n scripts: update for game update\n\nBrady (2):\n Add missing shortcuts to trollheim (#4711)\n Move greater demon cannon spot to better location\n\nJaimy Smets (2):\n Add obstacles to Werewolf court\n Add tablet creation animation to idle notifier\n\nJordan Atwood (20):\n achievement diary plugin: Fix coal mining req\n chat commands plugin: Use consistent message check\n resources: Remove unused images\n SwingUtil: Fix grayscaleOffset to not modify alpha\n Add image utility class\n resources: Remove derivative images\n clan manager: Use Sprite IDs for rank badges\n plugins: Use shared clue arrow and reset images\n agility plugin: Use Item ID for arena timer\n clue scroll plugin: Use Item IDs for overlays\n death indicator plugin: Use Item IDs for overlays\n fight caves plugin: Use Sprite IDs for overlay images\n hiscores plugin: Remove duplicate skill icon images\n kingdom plugin: Use Item ID for overlay image\n puzzle solver plugin: Use Sprite ID for overlay image\n raids plugin: Use Sprite ID for raids timer\n screenshot plugin: Use Sprite ID for overlay image\n xp tracker plugin: Use shared image for icon\n ImageUtil: Add getResourceStreamFromClass method\n Remove unused @Slf4j annotations and imports\n\nKamiel (9):\n chat history: clear public chat when menu option is clicked\n item stats: fix tooltip not appearing when hovering over item\n menu entry swapper: fix last destination on arceuus fairy ring\n menu entry swapper: fix zanaris fairy ring not being recognized\n menu entry swapper: fix zanaris swap not working for PoH tree-ring combo\n player indicators: draw tile highlight on ABOVE_SCENE layer (#4629)\n Update chatbox widget IDs\n Update pest control widget IDs\n Update nightmare zone widget ID\n\nMagic fTail (1):\n Add pharaoh\'s sceptres, Toxic staff of the dead, tome of fire item maps\n\nMax Weber (4):\n mixins: Fix camera pitch relaxer not fully relaxing after a screen shake\n cache-client: Return failure to the handshake Future\n runelite-client: Make ItemManager\'s price update thread safe\n runelite-client: Always use the mapped price for items\n\nTomas Slusny (10):\n Add support for making XP globes moveable\n Use correct marker name when cancelling edit\n Add mappings for indexed script db\n Move isOverlayOutdated to IndexDatabase\n Account for linked item id, format tooltip\n Add Tournament world type\n Remove unnecessary headers from plugin panels\n Add null-check for game canvas\n Properly check for changing values in raids plugin\n Add setting to preserve scouter in raid\n\nc01dc0ffee (1):\n Make DeathIndicatorPlugin use LocalPlayerDeath (#4745)\n\ntakuyakanbr (4):\n Convert farming tracker to time tracking plugin\n time tracking: add bird house tracker\n time tracking: add clock panel\n time tracking: add overview tab\n
\n',image:"/img/blog/1.4.11-Release/timer1.png"}}}]);
+//# sourceMappingURL=56.585e372f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/56.6cb8827d.chunk.js.map b/static/js/56.585e372f.chunk.js.map
similarity index 98%
rename from static/js/56.6cb8827d.chunk.js.map
rename to static/js/56.585e372f.chunk.js.map
index c92294ed7..9668e1709 100644
--- a/static/js/56.6cb8827d.chunk.js.map
+++ b/static/js/56.585e372f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-08-09-10-00-1.4.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qDAAqD,OAAS,OAAO,KAAO,ulJAA2mJ,MAAQ","file":"static/js/56.6cb8827d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.11 Release\",\"description\":\"Birdhouse timers, movable xp globes, and bug fixes\",\"author\":\"Adam\",\"body\":\"The farming plugin has been renamed to the timer plugin and now includes timers,\\nstopwatches, and birdhouse timers. Thanks to\\n@takuyakanbr for contributing this awesome\\nfeature!
\\n \\n \\n
\\nThe RuneLite XP globes are now movable similar to other overlays:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd !cmb chat command \\nAdd agility clickbox overlay to Werewolf course \\nAdd tablet creation to idle notifier \\nFix pest control and report button plugins which broke in the Monday game\\nupdate \\nFix screen shake interfering with vertical camera \\nAdd option to raids plugin to show scouter interface throughout the raid \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (9):\\n Disable zoom extender when a cache overlay fails to load\\n Fix applying default config to session settings\\n modelviewer: fix some incorrect gl usage, add error logging\\n modelviewer: fix zfighting of models\\n item manager: assert item composition access is done from client thread\\n ge plugin: fix accessing item composition from executor thread\\n config service: update key name too when setting config\\n chat commands: add !cmb command\\n scripts: update for game update\\n\\nBrady (2):\\n Add missing shortcuts to trollheim (#4711)\\n Move greater demon cannon spot to better location\\n\\nJaimy Smets (2):\\n Add obstacles to Werewolf court\\n Add tablet creation animation to idle notifier\\n\\nJordan Atwood (20):\\n achievement diary plugin: Fix coal mining req\\n chat commands plugin: Use consistent message check\\n resources: Remove unused images\\n SwingUtil: Fix grayscaleOffset to not modify alpha\\n Add image utility class\\n resources: Remove derivative images\\n clan manager: Use Sprite IDs for rank badges\\n plugins: Use shared clue arrow and reset images\\n agility plugin: Use Item ID for arena timer\\n clue scroll plugin: Use Item IDs for overlays\\n death indicator plugin: Use Item IDs for overlays\\n fight caves plugin: Use Sprite IDs for overlay images\\n hiscores plugin: Remove duplicate skill icon images\\n kingdom plugin: Use Item ID for overlay image\\n puzzle solver plugin: Use Sprite ID for overlay image\\n raids plugin: Use Sprite ID for raids timer\\n screenshot plugin: Use Sprite ID for overlay image\\n xp tracker plugin: Use shared image for icon\\n ImageUtil: Add getResourceStreamFromClass method\\n Remove unused @Slf4j annotations and imports\\n\\nKamiel (9):\\n chat history: clear public chat when menu option is clicked\\n item stats: fix tooltip not appearing when hovering over item\\n menu entry swapper: fix last destination on arceuus fairy ring\\n menu entry swapper: fix zanaris fairy ring not being recognized\\n menu entry swapper: fix zanaris swap not working for PoH tree-ring combo\\n player indicators: draw tile highlight on ABOVE_SCENE layer (#4629)\\n Update chatbox widget IDs\\n Update pest control widget IDs\\n Update nightmare zone widget ID\\n\\nMagic fTail (1):\\n Add pharaoh's sceptres, Toxic staff of the dead, tome of fire item maps\\n\\nMax Weber (4):\\n mixins: Fix camera pitch relaxer not fully relaxing after a screen shake\\n cache-client: Return failure to the handshake Future\\n runelite-client: Make ItemManager's price update thread safe\\n runelite-client: Always use the mapped price for items\\n\\nTomas Slusny (10):\\n Add support for making XP globes moveable\\n Use correct marker name when cancelling edit\\n Add mappings for indexed script db\\n Move isOverlayOutdated to IndexDatabase\\n Account for linked item id, format tooltip\\n Add Tournament world type\\n Remove unnecessary headers from plugin panels\\n Add null-check for game canvas\\n Properly check for changing values in raids plugin\\n Add setting to preserve scouter in raid\\n\\nc01dc0ffee (1):\\n Make DeathIndicatorPlugin use LocalPlayerDeath (#4745)\\n\\ntakuyakanbr (4):\\n Convert farming tracker to time tracking plugin\\n time tracking: add bird house tracker\\n time tracking: add clock panel\\n time tracking: add overview tab\\n
\\n\",\"image\":\"/img/blog/1.4.11-Release/timer1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-08-09-10-00-1.4.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qDAAqD,OAAS,OAAO,KAAO,ulJAA2mJ,MAAQ","file":"static/js/56.585e372f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.11 Release\",\"description\":\"Birdhouse timers, movable xp globes, and bug fixes\",\"author\":\"Adam\",\"body\":\"The farming plugin has been renamed to the timer plugin and now includes timers,\\nstopwatches, and birdhouse timers. Thanks to\\n@takuyakanbr for contributing this awesome\\nfeature!
\\n \\n \\n
\\nThe RuneLite XP globes are now movable similar to other overlays:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd !cmb chat command \\nAdd agility clickbox overlay to Werewolf course \\nAdd tablet creation to idle notifier \\nFix pest control and report button plugins which broke in the Monday game\\nupdate \\nFix screen shake interfering with vertical camera \\nAdd option to raids plugin to show scouter interface throughout the raid \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (9):\\n Disable zoom extender when a cache overlay fails to load\\n Fix applying default config to session settings\\n modelviewer: fix some incorrect gl usage, add error logging\\n modelviewer: fix zfighting of models\\n item manager: assert item composition access is done from client thread\\n ge plugin: fix accessing item composition from executor thread\\n config service: update key name too when setting config\\n chat commands: add !cmb command\\n scripts: update for game update\\n\\nBrady (2):\\n Add missing shortcuts to trollheim (#4711)\\n Move greater demon cannon spot to better location\\n\\nJaimy Smets (2):\\n Add obstacles to Werewolf court\\n Add tablet creation animation to idle notifier\\n\\nJordan Atwood (20):\\n achievement diary plugin: Fix coal mining req\\n chat commands plugin: Use consistent message check\\n resources: Remove unused images\\n SwingUtil: Fix grayscaleOffset to not modify alpha\\n Add image utility class\\n resources: Remove derivative images\\n clan manager: Use Sprite IDs for rank badges\\n plugins: Use shared clue arrow and reset images\\n agility plugin: Use Item ID for arena timer\\n clue scroll plugin: Use Item IDs for overlays\\n death indicator plugin: Use Item IDs for overlays\\n fight caves plugin: Use Sprite IDs for overlay images\\n hiscores plugin: Remove duplicate skill icon images\\n kingdom plugin: Use Item ID for overlay image\\n puzzle solver plugin: Use Sprite ID for overlay image\\n raids plugin: Use Sprite ID for raids timer\\n screenshot plugin: Use Sprite ID for overlay image\\n xp tracker plugin: Use shared image for icon\\n ImageUtil: Add getResourceStreamFromClass method\\n Remove unused @Slf4j annotations and imports\\n\\nKamiel (9):\\n chat history: clear public chat when menu option is clicked\\n item stats: fix tooltip not appearing when hovering over item\\n menu entry swapper: fix last destination on arceuus fairy ring\\n menu entry swapper: fix zanaris fairy ring not being recognized\\n menu entry swapper: fix zanaris swap not working for PoH tree-ring combo\\n player indicators: draw tile highlight on ABOVE_SCENE layer (#4629)\\n Update chatbox widget IDs\\n Update pest control widget IDs\\n Update nightmare zone widget ID\\n\\nMagic fTail (1):\\n Add pharaoh's sceptres, Toxic staff of the dead, tome of fire item maps\\n\\nMax Weber (4):\\n mixins: Fix camera pitch relaxer not fully relaxing after a screen shake\\n cache-client: Return failure to the handshake Future\\n runelite-client: Make ItemManager's price update thread safe\\n runelite-client: Always use the mapped price for items\\n\\nTomas Slusny (10):\\n Add support for making XP globes moveable\\n Use correct marker name when cancelling edit\\n Add mappings for indexed script db\\n Move isOverlayOutdated to IndexDatabase\\n Account for linked item id, format tooltip\\n Add Tournament world type\\n Remove unnecessary headers from plugin panels\\n Add null-check for game canvas\\n Properly check for changing values in raids plugin\\n Add setting to preserve scouter in raid\\n\\nc01dc0ffee (1):\\n Make DeathIndicatorPlugin use LocalPlayerDeath (#4745)\\n\\ntakuyakanbr (4):\\n Convert farming tracker to time tracking plugin\\n time tracking: add bird house tracker\\n time tracking: add clock panel\\n time tracking: add overview tab\\n
\\n\",\"image\":\"/img/blog/1.4.11-Release/timer1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/57.f3fd92e9.chunk.js b/static/js/57.4b832bb5.chunk.js
similarity index 97%
rename from static/js/57.f3fd92e9.chunk.js
rename to static/js/57.4b832bb5.chunk.js
index ba1c83036..647189b18 100644
--- a/static/js/57.f3fd92e9.chunk.js
+++ b/static/js/57.4b832bb5.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[57],{332:function(e,n){e.exports={title:"1.4.12 Release",description:"World hopper and WASD camera plugins",author:"Adam",body:'A world hopper plugin has been added to ease hopping. You can use the key\ncombination ctrl+shift+left/right, or right click a friend or clanmates name in\ngame and click Hop-to. There is also a plugin panel with the worlds listed which\ncan be double clicked.
\n \n
\nA WASD camera plugin was added which lets you use the WASD keys (or, any other\nkeys) instead of the arrow keys to control the camera. It is off by default and\nneeds to be enabled in the configuration panel. You must press Enter to chat\nwhen the plugin is enabled.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix puzzle box solver showing solution arrows \nFix player indicators plugin coloring entire menu option of other players \nAdd Wintertodt to Discord plugin activity \nAdd Woodcutting guild to Discord plugin activity \nFix SDMM normal spellbook freeze timers \nFix ancient freeze timers resetting on each animation \nFix Grotesque Guardian loot tracker \nFix seaweed patch times in the timer plugin \nFix Chambers of Xeric plugin to not add multiple timers \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (9):\n mixins: simplify acquiring client thread reference\n world service: split controller from service and add cache\n world controller: fix caching, move to scheduled method\n runescape-api: GameEngine doesn\'t extend KeyFocusListener\n timers plugin: don\'t reset freeze timers each animation\n Revert "player indicators plugin: Use ColorUtil functions"\n Add world load event\n cache: fix outputstream writeString to not write unicode strings\n runelite-client: add wasd camera plugin\n\nHeikki Jetsonen (2):\n DiscordPlugin: Add wintertodt Activity\n Cluescrolls: Added fairy ring to Kalphite Lair Entrance clue\n\nJordan Atwood (2):\n time tracking plugin: Fix timers header color\n timers plugin: Fix SDMM normal spellbook freezes\n\nKamiel (1):\n Update npc_health.json\n\nLotto (12):\n runelite-api: add world switcher widget info\n mixins: add world hopping mixin\n runelite-api: expose ChatPlayer.world\n runelite-api: make ClanMember extend ChatPlayer\n runelite-api: add total level api\n runelite-client: add world hopper plugin\n runescape-api: add Protect annotation\n clues: allow any imbued crystal bow for emote clue\n clues: add fairy ring to sinclair mansion clue solution\n fpsindicator: fix overlay disappearing when using stretched fixed mode\n fpsindicator: fix overlay being cut off outside the canvas\n fpsindicator: remove caching of fps strings\n\nMagic fTail (2):\n Fix Grotesque Guardian loot tracker\n Actually add special case for Grotesque Guardians\n\nMax Weber (2):\n Make the second argument of SpriteManager::getSprite work\n runelite-client: Don\'t consume keyReleased events\n\nSean Dewar (1):\n Fix Entangle timer description typo\n\nSoyChai (1):\n UI: Add a clear button (\xd7) to IconTextField (#3451)\n\nSquirrelHub (2):\n DiscordPlugin: Add Woodcutting Guild to Activities (#4813)\n Add Lumber Yard Fence to Agility Plugin (#4878)\n\nTomas Slusny (2):\n Fix adding of raid timer multiple times in Raids\n Fix FlatTextField unsafe swing access\n\npsikoi (1):\n Fix exp tracker UI margin incosistency\n\ntakuyakanbr (2):\n time tracking: add empty case to overview tab\n time tracking: fix detection of state for seaweed patches\n
\n',image:"/img/blog/1.4.12-Release/whop1.png"}}}]);
-//# sourceMappingURL=57.f3fd92e9.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[57],{333:function(e,n){e.exports={title:"1.4.12 Release",description:"World hopper and WASD camera plugins",author:"Adam",body:'A world hopper plugin has been added to ease hopping. You can use the key\ncombination ctrl+shift+left/right, or right click a friend or clanmates name in\ngame and click Hop-to. There is also a plugin panel with the worlds listed which\ncan be double clicked.
\n \n
\nA WASD camera plugin was added which lets you use the WASD keys (or, any other\nkeys) instead of the arrow keys to control the camera. It is off by default and\nneeds to be enabled in the configuration panel. You must press Enter to chat\nwhen the plugin is enabled.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix puzzle box solver showing solution arrows \nFix player indicators plugin coloring entire menu option of other players \nAdd Wintertodt to Discord plugin activity \nAdd Woodcutting guild to Discord plugin activity \nFix SDMM normal spellbook freeze timers \nFix ancient freeze timers resetting on each animation \nFix Grotesque Guardian loot tracker \nFix seaweed patch times in the timer plugin \nFix Chambers of Xeric plugin to not add multiple timers \n \nEnjoy!
\n- Adam
\nNew commits \nAdam (9):\n mixins: simplify acquiring client thread reference\n world service: split controller from service and add cache\n world controller: fix caching, move to scheduled method\n runescape-api: GameEngine doesn\'t extend KeyFocusListener\n timers plugin: don\'t reset freeze timers each animation\n Revert "player indicators plugin: Use ColorUtil functions"\n Add world load event\n cache: fix outputstream writeString to not write unicode strings\n runelite-client: add wasd camera plugin\n\nHeikki Jetsonen (2):\n DiscordPlugin: Add wintertodt Activity\n Cluescrolls: Added fairy ring to Kalphite Lair Entrance clue\n\nJordan Atwood (2):\n time tracking plugin: Fix timers header color\n timers plugin: Fix SDMM normal spellbook freezes\n\nKamiel (1):\n Update npc_health.json\n\nLotto (12):\n runelite-api: add world switcher widget info\n mixins: add world hopping mixin\n runelite-api: expose ChatPlayer.world\n runelite-api: make ClanMember extend ChatPlayer\n runelite-api: add total level api\n runelite-client: add world hopper plugin\n runescape-api: add Protect annotation\n clues: allow any imbued crystal bow for emote clue\n clues: add fairy ring to sinclair mansion clue solution\n fpsindicator: fix overlay disappearing when using stretched fixed mode\n fpsindicator: fix overlay being cut off outside the canvas\n fpsindicator: remove caching of fps strings\n\nMagic fTail (2):\n Fix Grotesque Guardian loot tracker\n Actually add special case for Grotesque Guardians\n\nMax Weber (2):\n Make the second argument of SpriteManager::getSprite work\n runelite-client: Don\'t consume keyReleased events\n\nSean Dewar (1):\n Fix Entangle timer description typo\n\nSoyChai (1):\n UI: Add a clear button (\xd7) to IconTextField (#3451)\n\nSquirrelHub (2):\n DiscordPlugin: Add Woodcutting Guild to Activities (#4813)\n Add Lumber Yard Fence to Agility Plugin (#4878)\n\nTomas Slusny (2):\n Fix adding of raid timer multiple times in Raids\n Fix FlatTextField unsafe swing access\n\npsikoi (1):\n Fix exp tracker UI margin incosistency\n\ntakuyakanbr (2):\n time tracking: add empty case to overview tab\n time tracking: fix detection of state for seaweed patches\n
\n',image:"/img/blog/1.4.12-Release/whop1.png"}}}]);
+//# sourceMappingURL=57.4b832bb5.chunk.js.map
\ No newline at end of file
diff --git a/static/js/57.f3fd92e9.chunk.js.map b/static/js/57.4b832bb5.chunk.js.map
similarity index 98%
rename from static/js/57.f3fd92e9.chunk.js.map
rename to static/js/57.4b832bb5.chunk.js.map
index 2e4a47abe..aa2e2f888 100644
--- a/static/js/57.f3fd92e9.chunk.js.map
+++ b/static/js/57.4b832bb5.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-08-16-10-00-1.4.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uCAAuC,OAAS,OAAO,KAAO,8qHAAgrH,MAAQ","file":"static/js/57.f3fd92e9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.12 Release\",\"description\":\"World hopper and WASD camera plugins\",\"author\":\"Adam\",\"body\":\"A world hopper plugin has been added to ease hopping. You can use the key\\ncombination ctrl+shift+left/right, or right click a friend or clanmates name in\\ngame and click Hop-to. There is also a plugin panel with the worlds listed which\\ncan be double clicked.
\\n \\n
\\nA WASD camera plugin was added which lets you use the WASD keys (or, any other\\nkeys) instead of the arrow keys to control the camera. It is off by default and\\nneeds to be enabled in the configuration panel. You must press Enter to chat\\nwhen the plugin is enabled.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix puzzle box solver showing solution arrows \\nFix player indicators plugin coloring entire menu option of other players \\nAdd Wintertodt to Discord plugin activity \\nAdd Woodcutting guild to Discord plugin activity \\nFix SDMM normal spellbook freeze timers \\nFix ancient freeze timers resetting on each animation \\nFix Grotesque Guardian loot tracker \\nFix seaweed patch times in the timer plugin \\nFix Chambers of Xeric plugin to not add multiple timers \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (9):\\n mixins: simplify acquiring client thread reference\\n world service: split controller from service and add cache\\n world controller: fix caching, move to scheduled method\\n runescape-api: GameEngine doesn't extend KeyFocusListener\\n timers plugin: don't reset freeze timers each animation\\n Revert "player indicators plugin: Use ColorUtil functions"\\n Add world load event\\n cache: fix outputstream writeString to not write unicode strings\\n runelite-client: add wasd camera plugin\\n\\nHeikki Jetsonen (2):\\n DiscordPlugin: Add wintertodt Activity\\n Cluescrolls: Added fairy ring to Kalphite Lair Entrance clue\\n\\nJordan Atwood (2):\\n time tracking plugin: Fix timers header color\\n timers plugin: Fix SDMM normal spellbook freezes\\n\\nKamiel (1):\\n Update npc_health.json\\n\\nLotto (12):\\n runelite-api: add world switcher widget info\\n mixins: add world hopping mixin\\n runelite-api: expose ChatPlayer.world\\n runelite-api: make ClanMember extend ChatPlayer\\n runelite-api: add total level api\\n runelite-client: add world hopper plugin\\n runescape-api: add Protect annotation\\n clues: allow any imbued crystal bow for emote clue\\n clues: add fairy ring to sinclair mansion clue solution\\n fpsindicator: fix overlay disappearing when using stretched fixed mode\\n fpsindicator: fix overlay being cut off outside the canvas\\n fpsindicator: remove caching of fps strings\\n\\nMagic fTail (2):\\n Fix Grotesque Guardian loot tracker\\n Actually add special case for Grotesque Guardians\\n\\nMax Weber (2):\\n Make the second argument of SpriteManager::getSprite work\\n runelite-client: Don't consume keyReleased events\\n\\nSean Dewar (1):\\n Fix Entangle timer description typo\\n\\nSoyChai (1):\\n UI: Add a clear button (×) to IconTextField (#3451)\\n\\nSquirrelHub (2):\\n DiscordPlugin: Add Woodcutting Guild to Activities (#4813)\\n Add Lumber Yard Fence to Agility Plugin (#4878)\\n\\nTomas Slusny (2):\\n Fix adding of raid timer multiple times in Raids\\n Fix FlatTextField unsafe swing access\\n\\npsikoi (1):\\n Fix exp tracker UI margin incosistency\\n\\ntakuyakanbr (2):\\n time tracking: add empty case to overview tab\\n time tracking: fix detection of state for seaweed patches\\n
\\n\",\"image\":\"/img/blog/1.4.12-Release/whop1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-08-16-10-00-1.4.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uCAAuC,OAAS,OAAO,KAAO,8qHAAgrH,MAAQ","file":"static/js/57.4b832bb5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.12 Release\",\"description\":\"World hopper and WASD camera plugins\",\"author\":\"Adam\",\"body\":\"A world hopper plugin has been added to ease hopping. You can use the key\\ncombination ctrl+shift+left/right, or right click a friend or clanmates name in\\ngame and click Hop-to. There is also a plugin panel with the worlds listed which\\ncan be double clicked.
\\n \\n
\\nA WASD camera plugin was added which lets you use the WASD keys (or, any other\\nkeys) instead of the arrow keys to control the camera. It is off by default and\\nneeds to be enabled in the configuration panel. You must press Enter to chat\\nwhen the plugin is enabled.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix puzzle box solver showing solution arrows \\nFix player indicators plugin coloring entire menu option of other players \\nAdd Wintertodt to Discord plugin activity \\nAdd Woodcutting guild to Discord plugin activity \\nFix SDMM normal spellbook freeze timers \\nFix ancient freeze timers resetting on each animation \\nFix Grotesque Guardian loot tracker \\nFix seaweed patch times in the timer plugin \\nFix Chambers of Xeric plugin to not add multiple timers \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (9):\\n mixins: simplify acquiring client thread reference\\n world service: split controller from service and add cache\\n world controller: fix caching, move to scheduled method\\n runescape-api: GameEngine doesn't extend KeyFocusListener\\n timers plugin: don't reset freeze timers each animation\\n Revert "player indicators plugin: Use ColorUtil functions"\\n Add world load event\\n cache: fix outputstream writeString to not write unicode strings\\n runelite-client: add wasd camera plugin\\n\\nHeikki Jetsonen (2):\\n DiscordPlugin: Add wintertodt Activity\\n Cluescrolls: Added fairy ring to Kalphite Lair Entrance clue\\n\\nJordan Atwood (2):\\n time tracking plugin: Fix timers header color\\n timers plugin: Fix SDMM normal spellbook freezes\\n\\nKamiel (1):\\n Update npc_health.json\\n\\nLotto (12):\\n runelite-api: add world switcher widget info\\n mixins: add world hopping mixin\\n runelite-api: expose ChatPlayer.world\\n runelite-api: make ClanMember extend ChatPlayer\\n runelite-api: add total level api\\n runelite-client: add world hopper plugin\\n runescape-api: add Protect annotation\\n clues: allow any imbued crystal bow for emote clue\\n clues: add fairy ring to sinclair mansion clue solution\\n fpsindicator: fix overlay disappearing when using stretched fixed mode\\n fpsindicator: fix overlay being cut off outside the canvas\\n fpsindicator: remove caching of fps strings\\n\\nMagic fTail (2):\\n Fix Grotesque Guardian loot tracker\\n Actually add special case for Grotesque Guardians\\n\\nMax Weber (2):\\n Make the second argument of SpriteManager::getSprite work\\n runelite-client: Don't consume keyReleased events\\n\\nSean Dewar (1):\\n Fix Entangle timer description typo\\n\\nSoyChai (1):\\n UI: Add a clear button (×) to IconTextField (#3451)\\n\\nSquirrelHub (2):\\n DiscordPlugin: Add Woodcutting Guild to Activities (#4813)\\n Add Lumber Yard Fence to Agility Plugin (#4878)\\n\\nTomas Slusny (2):\\n Fix adding of raid timer multiple times in Raids\\n Fix FlatTextField unsafe swing access\\n\\npsikoi (1):\\n Fix exp tracker UI margin incosistency\\n\\ntakuyakanbr (2):\\n time tracking: add empty case to overview tab\\n time tracking: fix detection of state for seaweed patches\\n
\\n\",\"image\":\"/img/blog/1.4.12-Release/whop1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/58.d3048dcd.chunk.js b/static/js/58.45fc0ac4.chunk.js
similarity index 98%
rename from static/js/58.d3048dcd.chunk.js
rename to static/js/58.45fc0ac4.chunk.js
index 7a386d138..73f1eb1a7 100644
--- a/static/js/58.d3048dcd.chunk.js
+++ b/static/js/58.45fc0ac4.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[58],{333:function(e,n){e.exports={title:"1.4.13 & 1.4.14 Release",description:"Small enhancements and world hopper, WASD camera plugin fixes",author:"Jordan",body:'Minimap icons have been added for wilderness obelisk teleports and achievement\ndiary set item teleports. Thanks to @raiyni for\ncontributing these icons.
\n \n \n \n
\nSeveral agility shortcuts and obstacles have been added to the agility shortcut\nhighlighter.
\n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe WASD plugin is now smarter at deciding when to block inputs to the game \nFix world hopper freezing client when trying to hop during times the game\nprevents you from hopping \nAdd option to Corporeal Beast plugin to make left click on the Dark Energey\ncore "Walk here" \nFix Corporal Beast plugin overlay sometimes not showing \nFix Brimhaven agility alrena timer from resetting whenever an obstacle makes\nyou fall to the ground floor \nFix GE plugin not to show the OSB actively traded price more reliably \nFix NPCs with empty names being highlighted in some cases \nFix Pest control plugin detecting shield status \nTime tracker stopwatches and timers now also accept more user-friendly time\nstrings, such as "01h30m15s" \nAdjusted Autumn and Winter Deadman Mode teleblock timers have been created in\nadvance of the upcoming DMM tournaments \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (16):\n wasd plugin: pass through shift and escape\n wasd plugin: disable key listener if not logged in\n wasd plugin: pass through ctrl, alt, and tab\n wasd plugin: allow input to chat dialogs\n wasd plugin: fix slash to talk\n wasd plugin: check chatbox input widget visibility to determine if a dialog is open\n wasd plugin: release same keychar as pressed when changing to typing mode\n wasd plugin: allow input to world map search when focused\n mixins: fix friend manager mixin to implement friend manager\n corp plugin: deprioritize attack option on dark energy core\n barrows plugin: fix double counting price of coins\n pest control plugin: move portal text overlay underneath progress bar\n pest control plugin: cleanup & lombokize\n corp plugin: fix losing track of corp when it spawns during loading\n agility plugin: fix brimhaven timer resetting when failing obstacles\n ge plugin: more reliably show actively traded price\n\nItsSebas (3):\n Add other side of Falador grapple wall highlight (#5028)\n Add missing agility shortcut near North River Salve (#5048)\n Add boss skill screenshots (#5030)\n\nJamy C (2):\n TimeTracking: Refactor time parsing and add tests (#5050)\n TimeTracking: Add support for intuitive time notations like "1h 30m 10s"\n\nJordan Atwood (3):\n Add CHAT_SCROLLBAR_ON_LEFT Varbit\n timers plugin: Add fall/winter DMM teleblock timers\n screenmarker plugin: Remove extra images\n\nLotto (1):\n worldhopper: fix spam in chatbox when trying to open switcher in bank\n\nMagic fTail (4):\n Add Bastion and Battlemage potions\n Fix KBD respawn timer\n Add debugging to npc highlighter plugin\n Change boss kill screenshot naming\n\nRobbie McLeod (1):\n Fix sidebar hotkey leaking into game client\n\nRon Young (4):\n Add wilderness obelisk teleport spots on map (#4937)\n Fix pest control shield state checks (#4977)\n Add ardougne cloak map teleport icons (#4998)\n Add Missing Achievement Diary Teleport Map Icons (#5027)\n\nSebastiaan (1):\n Add Fossil Island underwater agility obstacles (#5055)\n\nTomas Slusny (4):\n Omit empty strings in NPC indicators\n Add tests for parsing NPC list\n Make pressing BkSPACE with empty chat exit chat\n Remove unused Objects import in AgilityPlugin\n\nastaninger (1):\n Fix fire surge icon and remove redundant smithing entries (#4979)\n\ngandalfthegoat (1):\n add the fairy ring CKS to speak to Ulizius cryptic clue step\n\npsikoi (2):\n Add activity priority to world list\n Fix activity ordering incosistency\n\ntrimbe (1):\n wasd plugin: use clientscript to determine what input to block\n
\n',image:"/img/blog/1.4.13-Release/ardougne-cloak-teleport-icon.png"}}}]);
-//# sourceMappingURL=58.d3048dcd.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[58],{334:function(e,n){e.exports={title:"1.4.13 & 1.4.14 Release",description:"Small enhancements and world hopper, WASD camera plugin fixes",author:"Jordan",body:'Minimap icons have been added for wilderness obelisk teleports and achievement\ndiary set item teleports. Thanks to @raiyni for\ncontributing these icons.
\n \n \n \n
\nSeveral agility shortcuts and obstacles have been added to the agility shortcut\nhighlighter.
\n \n \n \n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe WASD plugin is now smarter at deciding when to block inputs to the game \nFix world hopper freezing client when trying to hop during times the game\nprevents you from hopping \nAdd option to Corporeal Beast plugin to make left click on the Dark Energey\ncore "Walk here" \nFix Corporal Beast plugin overlay sometimes not showing \nFix Brimhaven agility alrena timer from resetting whenever an obstacle makes\nyou fall to the ground floor \nFix GE plugin not to show the OSB actively traded price more reliably \nFix NPCs with empty names being highlighted in some cases \nFix Pest control plugin detecting shield status \nTime tracker stopwatches and timers now also accept more user-friendly time\nstrings, such as "01h30m15s" \nAdjusted Autumn and Winter Deadman Mode teleblock timers have been created in\nadvance of the upcoming DMM tournaments \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 15 contributors this release!
\nAdam (16):\n wasd plugin: pass through shift and escape\n wasd plugin: disable key listener if not logged in\n wasd plugin: pass through ctrl, alt, and tab\n wasd plugin: allow input to chat dialogs\n wasd plugin: fix slash to talk\n wasd plugin: check chatbox input widget visibility to determine if a dialog is open\n wasd plugin: release same keychar as pressed when changing to typing mode\n wasd plugin: allow input to world map search when focused\n mixins: fix friend manager mixin to implement friend manager\n corp plugin: deprioritize attack option on dark energy core\n barrows plugin: fix double counting price of coins\n pest control plugin: move portal text overlay underneath progress bar\n pest control plugin: cleanup & lombokize\n corp plugin: fix losing track of corp when it spawns during loading\n agility plugin: fix brimhaven timer resetting when failing obstacles\n ge plugin: more reliably show actively traded price\n\nItsSebas (3):\n Add other side of Falador grapple wall highlight (#5028)\n Add missing agility shortcut near North River Salve (#5048)\n Add boss skill screenshots (#5030)\n\nJamy C (2):\n TimeTracking: Refactor time parsing and add tests (#5050)\n TimeTracking: Add support for intuitive time notations like "1h 30m 10s"\n\nJordan Atwood (3):\n Add CHAT_SCROLLBAR_ON_LEFT Varbit\n timers plugin: Add fall/winter DMM teleblock timers\n screenmarker plugin: Remove extra images\n\nLotto (1):\n worldhopper: fix spam in chatbox when trying to open switcher in bank\n\nMagic fTail (4):\n Add Bastion and Battlemage potions\n Fix KBD respawn timer\n Add debugging to npc highlighter plugin\n Change boss kill screenshot naming\n\nRobbie McLeod (1):\n Fix sidebar hotkey leaking into game client\n\nRon Young (4):\n Add wilderness obelisk teleport spots on map (#4937)\n Fix pest control shield state checks (#4977)\n Add ardougne cloak map teleport icons (#4998)\n Add Missing Achievement Diary Teleport Map Icons (#5027)\n\nSebastiaan (1):\n Add Fossil Island underwater agility obstacles (#5055)\n\nTomas Slusny (4):\n Omit empty strings in NPC indicators\n Add tests for parsing NPC list\n Make pressing BkSPACE with empty chat exit chat\n Remove unused Objects import in AgilityPlugin\n\nastaninger (1):\n Fix fire surge icon and remove redundant smithing entries (#4979)\n\ngandalfthegoat (1):\n add the fairy ring CKS to speak to Ulizius cryptic clue step\n\npsikoi (2):\n Add activity priority to world list\n Fix activity ordering incosistency\n\ntrimbe (1):\n wasd plugin: use clientscript to determine what input to block\n
\n',image:"/img/blog/1.4.13-Release/ardougne-cloak-teleport-icon.png"}}}]);
+//# sourceMappingURL=58.45fc0ac4.chunk.js.map
\ No newline at end of file
diff --git a/static/js/58.d3048dcd.chunk.js.map b/static/js/58.45fc0ac4.chunk.js.map
similarity index 98%
rename from static/js/58.d3048dcd.chunk.js.map
rename to static/js/58.45fc0ac4.chunk.js.map
index 4f1f07997..98606a48f 100644
--- a/static/js/58.d3048dcd.chunk.js.map
+++ b/static/js/58.45fc0ac4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-08-23-10-00-1.4.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,gEAAgE,OAAS,SAAS,KAAO,8gKAAmjK,MAAQ","file":"static/js/58.d3048dcd.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.13 & 1.4.14 Release\",\"description\":\"Small enhancements and world hopper, WASD camera plugin fixes\",\"author\":\"Jordan\",\"body\":\"Minimap icons have been added for wilderness obelisk teleports and achievement\\ndiary set item teleports. Thanks to @raiyni for\\ncontributing these icons.
\\n \\n \\n \\n
\\nSeveral agility shortcuts and obstacles have been added to the agility shortcut\\nhighlighter.
\\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe WASD plugin is now smarter at deciding when to block inputs to the game \\nFix world hopper freezing client when trying to hop during times the game\\nprevents you from hopping \\nAdd option to Corporeal Beast plugin to make left click on the Dark Energey\\ncore "Walk here" \\nFix Corporal Beast plugin overlay sometimes not showing \\nFix Brimhaven agility alrena timer from resetting whenever an obstacle makes\\nyou fall to the ground floor \\nFix GE plugin not to show the OSB actively traded price more reliably \\nFix NPCs with empty names being highlighted in some cases \\nFix Pest control plugin detecting shield status \\nTime tracker stopwatches and timers now also accept more user-friendly time\\nstrings, such as "01h30m15s" \\nAdjusted Autumn and Winter Deadman Mode teleblock timers have been created in\\nadvance of the upcoming DMM tournaments \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (16):\\n wasd plugin: pass through shift and escape\\n wasd plugin: disable key listener if not logged in\\n wasd plugin: pass through ctrl, alt, and tab\\n wasd plugin: allow input to chat dialogs\\n wasd plugin: fix slash to talk\\n wasd plugin: check chatbox input widget visibility to determine if a dialog is open\\n wasd plugin: release same keychar as pressed when changing to typing mode\\n wasd plugin: allow input to world map search when focused\\n mixins: fix friend manager mixin to implement friend manager\\n corp plugin: deprioritize attack option on dark energy core\\n barrows plugin: fix double counting price of coins\\n pest control plugin: move portal text overlay underneath progress bar\\n pest control plugin: cleanup & lombokize\\n corp plugin: fix losing track of corp when it spawns during loading\\n agility plugin: fix brimhaven timer resetting when failing obstacles\\n ge plugin: more reliably show actively traded price\\n\\nItsSebas (3):\\n Add other side of Falador grapple wall highlight (#5028)\\n Add missing agility shortcut near North River Salve (#5048)\\n Add boss skill screenshots (#5030)\\n\\nJamy C (2):\\n TimeTracking: Refactor time parsing and add tests (#5050)\\n TimeTracking: Add support for intuitive time notations like "1h 30m 10s"\\n\\nJordan Atwood (3):\\n Add CHAT_SCROLLBAR_ON_LEFT Varbit\\n timers plugin: Add fall/winter DMM teleblock timers\\n screenmarker plugin: Remove extra images\\n\\nLotto (1):\\n worldhopper: fix spam in chatbox when trying to open switcher in bank\\n\\nMagic fTail (4):\\n Add Bastion and Battlemage potions\\n Fix KBD respawn timer\\n Add debugging to npc highlighter plugin\\n Change boss kill screenshot naming\\n\\nRobbie McLeod (1):\\n Fix sidebar hotkey leaking into game client\\n\\nRon Young (4):\\n Add wilderness obelisk teleport spots on map (#4937)\\n Fix pest control shield state checks (#4977)\\n Add ardougne cloak map teleport icons (#4998)\\n Add Missing Achievement Diary Teleport Map Icons (#5027)\\n\\nSebastiaan (1):\\n Add Fossil Island underwater agility obstacles (#5055)\\n\\nTomas Slusny (4):\\n Omit empty strings in NPC indicators\\n Add tests for parsing NPC list\\n Make pressing BkSPACE with empty chat exit chat\\n Remove unused Objects import in AgilityPlugin\\n\\nastaninger (1):\\n Fix fire surge icon and remove redundant smithing entries (#4979)\\n\\ngandalfthegoat (1):\\n add the fairy ring CKS to speak to Ulizius cryptic clue step\\n\\npsikoi (2):\\n Add activity priority to world list\\n Fix activity ordering incosistency\\n\\ntrimbe (1):\\n wasd plugin: use clientscript to determine what input to block\\n
\\n\",\"image\":\"/img/blog/1.4.13-Release/ardougne-cloak-teleport-icon.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-08-23-10-00-1.4.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,0BAA0B,YAAc,gEAAgE,OAAS,SAAS,KAAO,8gKAAmjK,MAAQ","file":"static/js/58.45fc0ac4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.13 & 1.4.14 Release\",\"description\":\"Small enhancements and world hopper, WASD camera plugin fixes\",\"author\":\"Jordan\",\"body\":\"Minimap icons have been added for wilderness obelisk teleports and achievement\\ndiary set item teleports. Thanks to @raiyni for\\ncontributing these icons.
\\n \\n \\n \\n
\\nSeveral agility shortcuts and obstacles have been added to the agility shortcut\\nhighlighter.
\\n \\n \\n \\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe WASD plugin is now smarter at deciding when to block inputs to the game \\nFix world hopper freezing client when trying to hop during times the game\\nprevents you from hopping \\nAdd option to Corporeal Beast plugin to make left click on the Dark Energey\\ncore "Walk here" \\nFix Corporal Beast plugin overlay sometimes not showing \\nFix Brimhaven agility alrena timer from resetting whenever an obstacle makes\\nyou fall to the ground floor \\nFix GE plugin not to show the OSB actively traded price more reliably \\nFix NPCs with empty names being highlighted in some cases \\nFix Pest control plugin detecting shield status \\nTime tracker stopwatches and timers now also accept more user-friendly time\\nstrings, such as "01h30m15s" \\nAdjusted Autumn and Winter Deadman Mode teleblock timers have been created in\\nadvance of the upcoming DMM tournaments \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (16):\\n wasd plugin: pass through shift and escape\\n wasd plugin: disable key listener if not logged in\\n wasd plugin: pass through ctrl, alt, and tab\\n wasd plugin: allow input to chat dialogs\\n wasd plugin: fix slash to talk\\n wasd plugin: check chatbox input widget visibility to determine if a dialog is open\\n wasd plugin: release same keychar as pressed when changing to typing mode\\n wasd plugin: allow input to world map search when focused\\n mixins: fix friend manager mixin to implement friend manager\\n corp plugin: deprioritize attack option on dark energy core\\n barrows plugin: fix double counting price of coins\\n pest control plugin: move portal text overlay underneath progress bar\\n pest control plugin: cleanup & lombokize\\n corp plugin: fix losing track of corp when it spawns during loading\\n agility plugin: fix brimhaven timer resetting when failing obstacles\\n ge plugin: more reliably show actively traded price\\n\\nItsSebas (3):\\n Add other side of Falador grapple wall highlight (#5028)\\n Add missing agility shortcut near North River Salve (#5048)\\n Add boss skill screenshots (#5030)\\n\\nJamy C (2):\\n TimeTracking: Refactor time parsing and add tests (#5050)\\n TimeTracking: Add support for intuitive time notations like "1h 30m 10s"\\n\\nJordan Atwood (3):\\n Add CHAT_SCROLLBAR_ON_LEFT Varbit\\n timers plugin: Add fall/winter DMM teleblock timers\\n screenmarker plugin: Remove extra images\\n\\nLotto (1):\\n worldhopper: fix spam in chatbox when trying to open switcher in bank\\n\\nMagic fTail (4):\\n Add Bastion and Battlemage potions\\n Fix KBD respawn timer\\n Add debugging to npc highlighter plugin\\n Change boss kill screenshot naming\\n\\nRobbie McLeod (1):\\n Fix sidebar hotkey leaking into game client\\n\\nRon Young (4):\\n Add wilderness obelisk teleport spots on map (#4937)\\n Fix pest control shield state checks (#4977)\\n Add ardougne cloak map teleport icons (#4998)\\n Add Missing Achievement Diary Teleport Map Icons (#5027)\\n\\nSebastiaan (1):\\n Add Fossil Island underwater agility obstacles (#5055)\\n\\nTomas Slusny (4):\\n Omit empty strings in NPC indicators\\n Add tests for parsing NPC list\\n Make pressing BkSPACE with empty chat exit chat\\n Remove unused Objects import in AgilityPlugin\\n\\nastaninger (1):\\n Fix fire surge icon and remove redundant smithing entries (#4979)\\n\\ngandalfthegoat (1):\\n add the fairy ring CKS to speak to Ulizius cryptic clue step\\n\\npsikoi (2):\\n Add activity priority to world list\\n Fix activity ordering incosistency\\n\\ntrimbe (1):\\n wasd plugin: use clientscript to determine what input to block\\n
\\n\",\"image\":\"/img/blog/1.4.13-Release/ardougne-cloak-teleport-icon.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/59.752b619c.chunk.js b/static/js/59.74306016.chunk.js
similarity index 97%
rename from static/js/59.752b619c.chunk.js
rename to static/js/59.74306016.chunk.js
index 2a06eb7bb..421bed871 100644
--- a/static/js/59.752b619c.chunk.js
+++ b/static/js/59.74306016.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[59],{334:function(e,n){e.exports={title:"1.4.15 Release",description:"Run energy plugin, friend list counter, team cape plugin improvements and hop-to in chat",author:"Tomas",body:'Run energy plugin was added thanks to @seandewar . This plugin will show tooltip with\nyour current weight, how much run time you have remaining and how much time it will take until your run energy fully\nregens. Also it has optional setting for displaying remaining run seconds instead of run percentage in the run energy\nbar.
\n \n
\nThanks to work of @forsco and @Adam- friend and ignore list\ncounter has been added, that will simply show max amount and used amount of friends/ignored players in the respective\ninterfaces.
\n
\n@ItsSebas improved team capes plugin interface to display team cape icons with counts\ninstead of text in panel. This new design should be more compact and less intrusive than old one (and also looks way\nbetter!).
\n
\nThe world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\n@Retoxified :
\n
\nLoose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\n@ItsSebas :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe idle notifier plugin has been significantly improved, now it should not throw false warnings while\nin combat or when doing activity that is using same animations as some of the animations that display\nidle warning \nBarrows kill count chat message will now properly update the !kc data \nTime tracking plugin now also has "Special patches" in the overview tab \nTeleblock timers are now removed on logout \nCorp plugin now has option to hide the damage overlay \n"Pause all" menu option has been added to XP tracker right-click menu \n \nEnjoy!
\n- Tomas
\nNew commits \nWe had 12 contributors this release!
\nAdam (9):\n Fix friend and ignore widget id changes\n http service: improve update detection logic\n runelite-api: add method for getting number of friends\n Add Ignore API\n runelite-client: add friend list plugin\n widget id: update bottom line stones widget ids\n woodcutting plugin: fix npe rendering redwood trees if axe is null\n Revert "Merge pull request #4568 from deathbeam/proper-shutdown"\n Update sprite ids and overrides\n\nDannysPVM (1):\n Add camera setters to Client.java and RSClient.java.\n\nKarolcz125 (1):\n Add LMS to ignored type in WorldHopper (#5139)\n\nMax Weber (1):\n Update Scripts to 2018-08-30-rev174\n\nMichael Goodwin (1):\n Fix Hot/Cold Nardah Genie Cave location\n\nRetoxified (1):\n Add Hop-To option in chat\n\nRobbe De Neve (2):\n Add special patches to overview tab\n Add pause all button to xp tracker (#5126)\n\nRon Young (2):\n corp: hide damage overlay\n Reduce world map icon sizes (#5086)\n\nRuneLite Cache-Code Autoupdater (3):\n Update Item IDs to 2018-08-30-rev174\n Update Object IDs to 2018-08-30-rev174\n Update Widget IDs to 2018-08-30-rev174\n\nSean Dewar (1):\n Add run energy plugin\n\nSebastiaan (2):\n Add Tree Gnome Village loose railing shortcut (#5093)\n Make teleblock timers disappear on logout/hop (#5090)\n\nSebastiaan Vanspauwen (1):\n Teamcapes plugin: Teamcape image instead of text (#5107)\n\nTomas Slusny (10):\n Add exports for GameEngine#shutDown\n Properly shutdown everything on window close\n Stop plugins on shutdown\n Reset idle timers when player clicks in-game\n Properly reset idle timers on logout and login\n Make animation idle remember last animating ID\n Make combat idle notifier use interacting changed\n Add idle notifier plugin tests\n Remove dupe PVP_HR entry in world hopper\n Fix setting of barrows kc from chat\n
\n',image:"/img/blog/1.4.15-Release/runenergy1.png"}}}]);
-//# sourceMappingURL=59.752b619c.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[59],{335:function(e,n){e.exports={title:"1.4.15 Release",description:"Run energy plugin, friend list counter, team cape plugin improvements and hop-to in chat",author:"Tomas",body:'Run energy plugin was added thanks to @seandewar . This plugin will show tooltip with\nyour current weight, how much run time you have remaining and how much time it will take until your run energy fully\nregens. Also it has optional setting for displaying remaining run seconds instead of run percentage in the run energy\nbar.
\n \n
\nThanks to work of @forsco and @Adam- friend and ignore list\ncounter has been added, that will simply show max amount and used amount of friends/ignored players in the respective\ninterfaces.
\n
\n@ItsSebas improved team capes plugin interface to display team cape icons with counts\ninstead of text in panel. This new design should be more compact and less intrusive than old one (and also looks way\nbetter!).
\n
\nThe world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\n@Retoxified :
\n
\nLoose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\n@ItsSebas :
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe idle notifier plugin has been significantly improved, now it should not throw false warnings while\nin combat or when doing activity that is using same animations as some of the animations that display\nidle warning \nBarrows kill count chat message will now properly update the !kc data \nTime tracking plugin now also has "Special patches" in the overview tab \nTeleblock timers are now removed on logout \nCorp plugin now has option to hide the damage overlay \n"Pause all" menu option has been added to XP tracker right-click menu \n \nEnjoy!
\n- Tomas
\nNew commits \nWe had 12 contributors this release!
\nAdam (9):\n Fix friend and ignore widget id changes\n http service: improve update detection logic\n runelite-api: add method for getting number of friends\n Add Ignore API\n runelite-client: add friend list plugin\n widget id: update bottom line stones widget ids\n woodcutting plugin: fix npe rendering redwood trees if axe is null\n Revert "Merge pull request #4568 from deathbeam/proper-shutdown"\n Update sprite ids and overrides\n\nDannysPVM (1):\n Add camera setters to Client.java and RSClient.java.\n\nKarolcz125 (1):\n Add LMS to ignored type in WorldHopper (#5139)\n\nMax Weber (1):\n Update Scripts to 2018-08-30-rev174\n\nMichael Goodwin (1):\n Fix Hot/Cold Nardah Genie Cave location\n\nRetoxified (1):\n Add Hop-To option in chat\n\nRobbe De Neve (2):\n Add special patches to overview tab\n Add pause all button to xp tracker (#5126)\n\nRon Young (2):\n corp: hide damage overlay\n Reduce world map icon sizes (#5086)\n\nRuneLite Cache-Code Autoupdater (3):\n Update Item IDs to 2018-08-30-rev174\n Update Object IDs to 2018-08-30-rev174\n Update Widget IDs to 2018-08-30-rev174\n\nSean Dewar (1):\n Add run energy plugin\n\nSebastiaan (2):\n Add Tree Gnome Village loose railing shortcut (#5093)\n Make teleblock timers disappear on logout/hop (#5090)\n\nSebastiaan Vanspauwen (1):\n Teamcapes plugin: Teamcape image instead of text (#5107)\n\nTomas Slusny (10):\n Add exports for GameEngine#shutDown\n Properly shutdown everything on window close\n Stop plugins on shutdown\n Reset idle timers when player clicks in-game\n Properly reset idle timers on logout and login\n Make animation idle remember last animating ID\n Make combat idle notifier use interacting changed\n Add idle notifier plugin tests\n Remove dupe PVP_HR entry in world hopper\n Fix setting of barrows kc from chat\n
\n',image:"/img/blog/1.4.15-Release/runenergy1.png"}}}]);
+//# sourceMappingURL=59.74306016.chunk.js.map
\ No newline at end of file
diff --git a/static/js/59.752b619c.chunk.js.map b/static/js/59.74306016.chunk.js.map
similarity index 98%
rename from static/js/59.752b619c.chunk.js.map
rename to static/js/59.74306016.chunk.js.map
index fb1382487..50de21245 100644
--- a/static/js/59.752b619c.chunk.js.map
+++ b/static/js/59.74306016.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-08-30-10-00-1.4.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2FAA2F,OAAS,QAAQ,KAAO,4jJAAwnJ,MAAQ","file":"static/js/59.752b619c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.15 Release\",\"description\":\"Run energy plugin, friend list counter, team cape plugin improvements and hop-to in chat\",\"author\":\"Tomas\",\"body\":\"Run energy plugin was added thanks to @seandewar . This plugin will show tooltip with\\nyour current weight, how much run time you have remaining and how much time it will take until your run energy fully\\nregens. Also it has optional setting for displaying remaining run seconds instead of run percentage in the run energy\\nbar.
\\n \\n
\\nThanks to work of @forsco and @Adam- friend and ignore list\\ncounter has been added, that will simply show max amount and used amount of friends/ignored players in the respective\\ninterfaces.
\\n
\\n@ItsSebas improved team capes plugin interface to display team cape icons with counts\\ninstead of text in panel. This new design should be more compact and less intrusive than old one (and also looks way\\nbetter!).
\\n
\\nThe world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\\n@Retoxified :
\\n
\\nLoose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\\n@ItsSebas :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe idle notifier plugin has been significantly improved, now it should not throw false warnings while\\nin combat or when doing activity that is using same animations as some of the animations that display\\nidle warning \\nBarrows kill count chat message will now properly update the !kc data \\nTime tracking plugin now also has "Special patches" in the overview tab \\nTeleblock timers are now removed on logout \\nCorp plugin now has option to hide the damage overlay \\n"Pause all" menu option has been added to XP tracker right-click menu \\n \\nEnjoy!
\\n- Tomas
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (9):\\n Fix friend and ignore widget id changes\\n http service: improve update detection logic\\n runelite-api: add method for getting number of friends\\n Add Ignore API\\n runelite-client: add friend list plugin\\n widget id: update bottom line stones widget ids\\n woodcutting plugin: fix npe rendering redwood trees if axe is null\\n Revert "Merge pull request #4568 from deathbeam/proper-shutdown"\\n Update sprite ids and overrides\\n\\nDannysPVM (1):\\n Add camera setters to Client.java and RSClient.java.\\n\\nKarolcz125 (1):\\n Add LMS to ignored type in WorldHopper (#5139)\\n\\nMax Weber (1):\\n Update Scripts to 2018-08-30-rev174\\n\\nMichael Goodwin (1):\\n Fix Hot/Cold Nardah Genie Cave location\\n\\nRetoxified (1):\\n Add Hop-To option in chat\\n\\nRobbe De Neve (2):\\n Add special patches to overview tab\\n Add pause all button to xp tracker (#5126)\\n\\nRon Young (2):\\n corp: hide damage overlay\\n Reduce world map icon sizes (#5086)\\n\\nRuneLite Cache-Code Autoupdater (3):\\n Update Item IDs to 2018-08-30-rev174\\n Update Object IDs to 2018-08-30-rev174\\n Update Widget IDs to 2018-08-30-rev174\\n\\nSean Dewar (1):\\n Add run energy plugin\\n\\nSebastiaan (2):\\n Add Tree Gnome Village loose railing shortcut (#5093)\\n Make teleblock timers disappear on logout/hop (#5090)\\n\\nSebastiaan Vanspauwen (1):\\n Teamcapes plugin: Teamcape image instead of text (#5107)\\n\\nTomas Slusny (10):\\n Add exports for GameEngine#shutDown\\n Properly shutdown everything on window close\\n Stop plugins on shutdown\\n Reset idle timers when player clicks in-game\\n Properly reset idle timers on logout and login\\n Make animation idle remember last animating ID\\n Make combat idle notifier use interacting changed\\n Add idle notifier plugin tests\\n Remove dupe PVP_HR entry in world hopper\\n Fix setting of barrows kc from chat\\n
\\n\",\"image\":\"/img/blog/1.4.15-Release/runenergy1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-08-30-10-00-1.4.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2FAA2F,OAAS,QAAQ,KAAO,4jJAAwnJ,MAAQ","file":"static/js/59.74306016.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.15 Release\",\"description\":\"Run energy plugin, friend list counter, team cape plugin improvements and hop-to in chat\",\"author\":\"Tomas\",\"body\":\"Run energy plugin was added thanks to @seandewar . This plugin will show tooltip with\\nyour current weight, how much run time you have remaining and how much time it will take until your run energy fully\\nregens. Also it has optional setting for displaying remaining run seconds instead of run percentage in the run energy\\nbar.
\\n \\n
\\nThanks to work of @forsco and @Adam- friend and ignore list\\ncounter has been added, that will simply show max amount and used amount of friends/ignored players in the respective\\ninterfaces.
\\n
\\n@ItsSebas improved team capes plugin interface to display team cape icons with counts\\ninstead of text in panel. This new design should be more compact and less intrusive than old one (and also looks way\\nbetter!).
\\n
\\nThe world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\\n@Retoxified :
\\n
\\nLoose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\\n@ItsSebas :
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe idle notifier plugin has been significantly improved, now it should not throw false warnings while\\nin combat or when doing activity that is using same animations as some of the animations that display\\nidle warning \\nBarrows kill count chat message will now properly update the !kc data \\nTime tracking plugin now also has "Special patches" in the overview tab \\nTeleblock timers are now removed on logout \\nCorp plugin now has option to hide the damage overlay \\n"Pause all" menu option has been added to XP tracker right-click menu \\n \\nEnjoy!
\\n- Tomas
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (9):\\n Fix friend and ignore widget id changes\\n http service: improve update detection logic\\n runelite-api: add method for getting number of friends\\n Add Ignore API\\n runelite-client: add friend list plugin\\n widget id: update bottom line stones widget ids\\n woodcutting plugin: fix npe rendering redwood trees if axe is null\\n Revert "Merge pull request #4568 from deathbeam/proper-shutdown"\\n Update sprite ids and overrides\\n\\nDannysPVM (1):\\n Add camera setters to Client.java and RSClient.java.\\n\\nKarolcz125 (1):\\n Add LMS to ignored type in WorldHopper (#5139)\\n\\nMax Weber (1):\\n Update Scripts to 2018-08-30-rev174\\n\\nMichael Goodwin (1):\\n Fix Hot/Cold Nardah Genie Cave location\\n\\nRetoxified (1):\\n Add Hop-To option in chat\\n\\nRobbe De Neve (2):\\n Add special patches to overview tab\\n Add pause all button to xp tracker (#5126)\\n\\nRon Young (2):\\n corp: hide damage overlay\\n Reduce world map icon sizes (#5086)\\n\\nRuneLite Cache-Code Autoupdater (3):\\n Update Item IDs to 2018-08-30-rev174\\n Update Object IDs to 2018-08-30-rev174\\n Update Widget IDs to 2018-08-30-rev174\\n\\nSean Dewar (1):\\n Add run energy plugin\\n\\nSebastiaan (2):\\n Add Tree Gnome Village loose railing shortcut (#5093)\\n Make teleblock timers disappear on logout/hop (#5090)\\n\\nSebastiaan Vanspauwen (1):\\n Teamcapes plugin: Teamcape image instead of text (#5107)\\n\\nTomas Slusny (10):\\n Add exports for GameEngine#shutDown\\n Properly shutdown everything on window close\\n Stop plugins on shutdown\\n Reset idle timers when player clicks in-game\\n Properly reset idle timers on logout and login\\n Make animation idle remember last animating ID\\n Make combat idle notifier use interacting changed\\n Add idle notifier plugin tests\\n Remove dupe PVP_HR entry in world hopper\\n Fix setting of barrows kc from chat\\n
\\n\",\"image\":\"/img/blog/1.4.15-Release/runenergy1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/6.2d82ff93.chunk.js b/static/js/6.2d82ff93.chunk.js
new file mode 100644
index 000000000..d878d9eaf
--- /dev/null
+++ b/static/js/6.2d82ff93.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[6],Array(126).concat([function(e,n,a){"use strict";var s=a(0);var t=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));n.a=e=>{let{children:n,fullWidth:a,...d}=e;return d.class=d.class?"container "+d.class:"container",d.style={...d.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},d,{id:"layout"}),n,Object(s.g)(t,null))}},,,function(e,n,a){"use strict";function s(e,n,a,s,t,d){var l=Math.round(Math.abs(e)/n);return d?l<=1?t:"in "+l+" "+a+"s":l<=1?s:l+" "+a+"s ago"}var t=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var n=Date.now()-e.getTime();if(Math.abs(n)<6e4)return"just now";for(var a=0;a{const s=t()(n);return e.set(s.id.toLowerCase(),()=>a(283)(`./${s.file}.md`).then(e=>({id:s.id,date:s.date,...e})))},new Map),l=e=>{const n=d.get(e.toLowerCase());return n?n():Promise.resolve({})},m=async()=>{const e=d.values();for(let n of e){const e=await n();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};n.a=d},function(e,n){e.exports=e=>{const n=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!n&&!n[1]&&!n[2]&&!n[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const a=n[1],s=n[2],t=a+n[3],d=(a+"-"+s).split("-");return{date:new Date(Date.UTC(parseInt(d[0],10),parseInt(d[1],10)-1,parseInt(d[2],10),parseInt(d[3],10),parseInt(d[4],10))),id:t,file:e}}},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281,"./2024-02-24-23-00-1.10.23-Release.md":282};function t(e){var n=d(e);return a(n)}function d(e){if(!a.o(s,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return s[e]}t.keys=function(){return Object.keys(s)},t.resolve=d,e.exports=t,t.id=136},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":[296,20],"./2017-12-21-00-00-1.2.10-Release.md":[297,21],"./2018-01-12-00-00-1.2.11-Release.md":[298,22],"./2018-01-18-00-00-1.2.12-Release.md":[299,23],"./2018-01-25-00-00-1.2.13-Release.md":[300,24],"./2018-02-01-00-00-1.2.14-Release.md":[301,25],"./2018-02-08-00-00-1.2.15-Release.md":[302,26],"./2018-02-15-00-00-1.2.16-Release.md":[303,27],"./2018-02-22-00-00-1.2.17-Release.md":[304,28],"./2018-03-01-00-00-1.2.18-Release.md":[305,29],"./2018-03-08-00-00-1.2.19-Release.md":[306,30],"./2018-03-15-00-00-1.3.0-Release.md":[307,31],"./2018-03-22-00-00-1.3.1-Release.md":[308,32],"./2018-03-29-00-00-1.3.2-Release.md":[309,33],"./2018-04-05-00-00-1.3.3-Release.md":[310,34],"./2018-04-12-00-00-1.3.4-Release.md":[311,35],"./2018-04-19-00-00-1.3.5-Release.md":[312,36],"./2018-04-26-00-00-1.3.6-Release.md":[313,37],"./2018-05-03-00-00-1.3.7-Release.md":[314,38],"./2018-05-10-00-00-1.3.8-Release.md":[315,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[316,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[317,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[318,42],"./2018-05-18-00-00-1.3.9-Release.md":[319,43],"./2018-05-24-00-00-1.4.0-Release.md":[320,44],"./2018-05-25-23-00-Phishing-Attempts.md":[321,45],"./2018-05-31-07-00-1.4.1-Release.md":[322,46],"./2018-06-07-07-00-1.4.2-Release.md":[323,47],"./2018-06-14-07-00-1.4.3-Release.md":[324,48],"./2018-06-21-07-00-1.4.4-Release.md":[325,49],"./2018-06-28-07-00-1.4.5-Release.md":[326,50],"./2018-07-05-07-00-1.4.6-Release.md":[327,51],"./2018-07-12-07-00-1.4.7-Release.md":[328,52],"./2018-07-19-07-00-1.4.8-Release.md":[329,53],"./2018-07-26-07-00-1.4.9-Release.md":[330,54],"./2018-08-02-10-00-1.4.10-Release.md":[331,55],"./2018-08-09-10-00-1.4.11-Release.md":[332,56],"./2018-08-16-10-00-1.4.12-Release.md":[333,57],"./2018-08-23-10-00-1.4.13-Release.md":[334,58],"./2018-08-30-10-00-1.4.15-Release.md":[335,59],"./2018-09-06-10-00-1.4.16-Release.md":[336,60],"./2018-09-13-10-00-1.4.17-Release.md":[337,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[338,62],"./2018-09-20-10-00-1.4.18-Release.md":[339,63],"./2018-09-27-10-00-1.4.19-Release.md":[340,64],"./2018-10-04-10-00-1.4.20-Release.md":[341,65],"./2018-10-11-10-00-1.4.21-Release.md":[342,66],"./2018-10-18-10-00-1.4.22-Release.md":[343,67],"./2018-10-25-10-00-1.4.23-Release.md":[344,68],"./2018-11-01-10-00-1.4.24-Release.md":[345,69],"./2018-11-08-10-00-1.4.25-Release.md":[346,70],"./2018-11-15-10-00-1.4.26-Release.md":[347,71],"./2018-11-16-12-00-1.5.0-Release.md":[348,72],"./2018-11-22-10-00-1.5.1-Release.md":[349,73],"./2018-11-29-10-00-1.5.2-Release.md":[350,74],"./2018-12-06-10-00-1.5.3-Release.md":[351,75],"./2018-12-13-10-00-1.5.4-Release.md":[352,76],"./2018-12-20-10-00-1.5.5-Release.md":[353,77],"./2019-01-03-10-00-1.5.6-Release.md":[354,78],"./2019-01-10-10-00-1.5.7-Release.md":[355,79],"./2019-01-17-10-00-1.5.8-Release.md":[356,80],"./2019-01-24-10-00-1.5.9-Release.md":[357,81],"./2019-01-31-10-00-1.5.10-Release.md":[358,82],"./2019-02-07-10-00-1.5.11-Release.md":[359,83],"./2019-02-14-10-00-1.5.12-Release.md":[360,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[361,85],"./2019-02-21-10-00-1.5.13-Release.md":[362,86],"./2019-02-28-10-00-1.5.14-Release.md":[363,87],"./2019-03-07-10-00-1.5.15-Release.md":[364,88],"./2019-03-14-10-00-1.5.16-Release.md":[365,89],"./2019-03-21-12-00-1.5.17-Release.md":[366,90],"./2019-03-28-10-00-1.5.18-Release.md":[367,91],"./2019-04-11-10-00-1.5.19-Release.md":[368,92],"./2019-04-18-10-00-1.5.20-Release.md":[369,93],"./2019-04-25-10-00-1.5.21-Release.md":[370,94],"./2019-05-03-10-00-1.5.22-Release.md":[371,95],"./2019-05-16-10-00-1.5.23-Release.md":[372,96],"./2019-05-30-10-00-1.5.25-Release.md":[373,97],"./2019-06-06-10-00-1.5.26-Release.md":[374,98],"./2019-06-20-10-00-1.5.27-Release.md":[375,99],"./2019-07-04-10-00-1.5.28-Release.md":[376,100],"./2019-07-18-10-00-1.5.29-Release.md":[377,101],"./2019-08-01-10-00-1.5.30-Release.md":[378,102],"./2019-08-15-10-00-1.5.31-Release.md":[379,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[380,104],"./2019-08-29-10-00-1.5.32-Release.md":[381,105],"./2019-09-12-10-00-1.5.33-Release.md":[382,106],"./2019-09-26-10-00-1.5.34-Release.md":[383,107],"./2019-10-02-10-00-1.5.35-Release.md":[384,108],"./2019-10-17-10-00-1.5.36-Release.md":[385,109],"./2019-10-30-10-00-1.5.37-Release.md":[386,110],"./2019-11-14-10-00-1.5.40-Release.md":[387,111],"./2019-11-28-10-00-1.5.42-Release.md":[388,112],"./2019-12-16-10-00-1.5.43-Release.md":[389,113],"./2019-12-19-10-00-1.6.0-Release.md":[390,114],"./2020-01-09-10-00-1.6.1-Release.md":[391,115],"./2020-01-16-10-00-1.6.2-Release.md":[392,116],"./2020-01-22-10-00-1.6.4-Release.md":[393,117],"./2020-01-29-10-00-1.6.5-Release.md":[394,118],"./2020-02-13-10-00-1.6.6-Release.md":[395,119],"./2020-02-27-10-00-1.6.8-Release.md":[396,120],"./2020-03-05-10-00-1.6.9-Release.md":[397,121],"./2020-03-26-10-00-1.6.10-Release.md":[398,122],"./2020-04-16-10-00-1.6.11-Release.md":[399,123],"./2020-05-01-10-00-1.6.13-Release.md":[400,124],"./2020-05-09-10-00-1.6.14-Release.md":[401,125],"./2020-05-28-10-00-1.6.17-Release.md":[402,126],"./2020-06-12-10-00-1.6.19-Release.md":[403,127],"./2020-06-18-10-00-1.6.20-Release.md":[404,128],"./2020-06-25-10-00-1.6.21-Release.md":[405,129],"./2020-07-16-10-00-1.6.22-Release.md":[406,130],"./2020-07-23-10-00-1.6.23-Release.md":[407,131],"./2020-08-26-10-00-1.6.25-Release.md":[408,132],"./2020-09-23-10-00-1.6.27-Release.md":[409,133],"./2020-10-07-10-00-1.6.28-Release.md":[410,134],"./2020-11-11-10-00-1.6.31-Release.md":[411,135],"./2020-12-02-10-00-1.6.33-Release.md":[412,136],"./2021-01-06-10-00-1.6.36-Release.md":[413,137],"./2021-01-27-10-00-1.6.38-Release.md":[414,138],"./2021-02-13-00-00-1.7.0-Release.md":[415,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[416,140],"./2021-03-24-10-00-1.7.3-Release.md":[417,141],"./2021-05-12-10-00-1.7.7-Release.md":[418,142],"./2021-05-28-10-00-1.7.10-Release.md":[419,143],"./2021-06-23-10-00-1.7.13-Release.md":[420,144],"./2021-07-14-10-00-1.7.16-Release.md":[421,145],"./2021-07-21-10-00-1.7.17-Release.md":[422,146],"./2021-09-06-10-00-1.7.22-Release.md":[423,147],"./2021-10-06-10-00-1.7.25-Release.md":[424,148],"./2021-10-28-19-00-1.8.0-Release.md":[425,149],"./2021-12-16-19-00-1.8.7-Release.md":[426,150],"./2022-03-09-19-00-1.8.13-Release.md":[427,151],"./2022-05-11-19-00-1.8.19-Release.md":[428,152],"./2022-06-17-19-00-1.8.24-Release.md":[429,153],"./2022-07-13-19-00-1.8.27-Release.md":[430,154],"./2022-08-21-19-00-1.8.31-Release.md":[431,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[432,156],"./2022-10-05-15-00-1.9.0-Release.md":[433,157],"./2022-12-07-15-00-1.9.5-Release.md":[434,158],"./2023-01-22-10-00-security-incident-jan21.md":[435,159],"./2023-02-18-15-00-1.9.11-Release.md":[436,160],"./2023-05-13-15-00-1.10.0-Release.md":[437,161],"./2023-07-01-15-00-1.10.6-Release.md":[438,162],"./2023-09-09-15-00-1.10.12-Release.md":[439,163],"./2023-11-05-10-00-1.10.15-Release.md":[440,164],"./2024-02-24-23-00-1.10.23-Release.md":[441,165]};function t(e){if(!a.o(s,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=s[e],t=n[0];return a.e(n[1]).then((function(){return a.t(t,7)}))}t.keys=function(){return Object.keys(s)},t.id=283,e.exports=t},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,n,a){"use strict";a.r(n);var s=a(0),t=a(129),d=a.n(t),l=a(126),m=a(134),o=a(7),R=a.n(o),i=a(46),c=a(8),u=a(5);a(133);n.default=()=>Object(s.g)(l.a,null,Object(s.g)(i.a,{title:"Blog - "+R.a.title,description:"Latest RuneLite news and updates"}),Object(s.g)("section",{id:"blog-list"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Blog"),Object(s.g)("ul",{class:"list-group"},Array.from(m.a.keys()).map(e=>Object(s.g)(u.a,{key:e,getComponent:()=>m.a.get(e)().then(e=>{let{id:n,date:a,title:t,description:l,author:m}=e;return Object(s.g)(c.a,{key:n,class:"list-group-item list-group-item-action flex-column align-items-start",activeClassName:"active",href:"/blog/show/"+n},Object(s.g)("div",{class:"d-flex w-100 justify-content-between"},Object(s.g)("h5",{class:"mb-1"},t||n),Object(s.g)("small",{class:"text-muted"},d()(a)," by ",m)),Object(s.g)("p",{class:"mb-1 text-muted"},l))})}))))))}])]);
+//# sourceMappingURL=6.2d82ff93.chunk.js.map
\ No newline at end of file
diff --git a/static/js/6.2d82ff93.chunk.js.map b/static/js/6.2d82ff93.chunk.js.map
new file mode 100644
index 000000000..c1c58ea8d
--- /dev/null
+++ b/static/js/6.2d82ff93.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["components/footer.js","components/layout.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","routes/blog.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","then","md","Map","getBlog","post","get","Promise","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","Blog","Meta","title","hero","description","Array","from","Async","key","getComponent","author","Link","activeClassName","ago"],"mappings":"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IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAOlB,QAAQC,UAAUP,MAAK,WAC7B,IAAI4B,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMzE,EAAKgF,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAI/B,MAAK,WACzC,OAAO0B,EAAoBM,EAAEjF,EAAI,MAGnC+E,EAAoB1C,KAAO,WAC1B,OAAO3B,OAAO2B,KAAKkC,IAEpBQ,EAAoB/E,GAAK,IACzB2B,EAAOC,QAAUmD,G,kMC5lBjB,mGAoDeG,UA1CFA,IACXnF,YAACI,IAAM,KACLJ,YAACoF,IAAI,CACHC,MAAQ,UAASC,IAAKD,MACtBE,YAAY,qCAGdvF,YAAA,WAASC,GAAG,aACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,QACxBF,YAAA,MAAIE,MAAM,cACPsF,MAAMC,KAAKrD,IAAKE,QAAQkC,IAAIvE,GAC3BD,YAAC0F,IAAK,CACJC,IAAK1F,EACL2F,aAAcA,IACZxD,IACGmB,IAAItD,EADPmC,GAEGc,KAAK7C,IAAA,IAAC,GAAEJ,EAAE,KAAE6B,EAAI,MAAEuD,EAAK,YAAEE,EAAW,OAAEM,GAAQxF,EAAA,OAC7CL,YAAC8F,IAAI,CACHH,IAAK1F,EACLC,MAAM,uEACN6F,gBAAgB,SAChB5F,KAAO,cAAaF,GAEpBD,YAAA,OAAKE,MAAM,wCACTF,YAAA,MAAIE,MAAM,QAAQmF,GAASpF,GAC3BD,YAAA,SAAOE,MAAM,cACV8F,IAAIlE,GAAM,OAAK+D,IAGpB7F,YAAA,KAAGE,MAAM,mBAAmBqF","file":"static/js/6.2d82ff93.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281,\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": 282\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t296,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t297,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t298,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t299,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t300,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t301,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t302,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t303,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t304,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t305,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t306,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t307,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t308,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t309,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t310,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t311,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t312,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t313,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t314,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t315,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t319,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t320,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t321,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t322,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t323,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t324,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t325,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t326,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t327,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t328,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t329,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t330,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t331,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t332,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t333,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t334,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t335,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t336,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t337,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t338,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t339,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t340,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t341,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t342,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t343,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t344,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t345,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t346,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t347,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t348,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t349,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t350,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t351,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t352,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t353,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t354,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t355,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t356,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t357,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t358,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t359,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t360,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t361,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t362,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t363,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t364,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t365,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t366,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t367,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t368,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t369,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t370,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t371,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t372,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t373,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t374,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t375,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t376,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t377,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t378,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t379,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t380,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t381,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t382,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t383,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t384,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t385,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t386,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t387,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t388,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t389,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t390,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t391,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t392,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t393,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t394,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t395,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t396,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t397,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t398,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t399,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t400,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t401,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t402,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t403,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t404,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t405,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t406,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t407,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t408,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t409,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t410,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t411,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t412,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t413,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t414,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t415,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t416,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t417,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t418,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t419,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t420,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t421,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t422,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t423,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t424,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t425,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t426,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t427,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t428,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t429,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t430,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t431,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t432,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t433,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t434,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t435,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t436,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t437,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t438,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t439,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t440,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t441,\n\t\t165\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 283;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport ago from 's-ago'\nimport Layout from '../components/layout'\nimport blog from '../blog'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { Link } from 'preact-router'\nimport Async from '../components/async'\nimport './blog.scss'\n\nconst Blog = () => (\n \n \n\n \n \n)\n\nexport default Blog\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/6.48faa19d.chunk.js b/static/js/6.48faa19d.chunk.js
deleted file mode 100644
index 2c34f7bd1..000000000
--- a/static/js/6.48faa19d.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[6],Array(126).concat([function(e,n,a){"use strict";var s=a(0);var t=()=>Object(s.g)("section",{id:"footer"},Object(s.g)("div",{class:"content-section"},Object(s.g)("footer",null,Object(s.g)("hr",null),"Developed with ",Object(s.g)("i",{class:"fas fa-heart"})," and"," ",Object(s.g)("i",{class:"fas fa-coffee"})," using"," ",Object(s.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(s.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(s.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(s.g)("a",{href:"/atom.xml",class:"float-right"},Object(s.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));n.a=e=>{let{children:n,fullWidth:a,...d}=e;return d.class=d.class?"container "+d.class:"container",d.style={...d.style||{},maxWidth:a?"100%":""},Object(s.g)("div",Object.assign({},d,{id:"layout"}),n,Object(s.g)(t,null))}},,,function(e,n,a){"use strict";function s(e,n,a,s,t,d){var l=Math.round(Math.abs(e)/n);return d?l<=1?t:"in "+l+" "+a+"s":l<=1?s:l+" "+a+"s ago"}var t=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var n=Date.now()-e.getTime();if(Math.abs(n)<6e4)return"just now";for(var a=0;a{const s=t()(n);return e.set(s.id.toLowerCase(),()=>a(282)(`./${s.file}.md`).then(e=>({id:s.id,date:s.date,...e})))},new Map),l=e=>{const n=d.get(e.toLowerCase());return n?n():Promise.resolve({})},m=async()=>{const e=d.values();for(let n of e){const e=await n();if(!e.hasOwnProperty("skip")||!e.skip)return e}return{}};n.a=d},function(e,n){e.exports=e=>{const n=(e=e.match(/([\w\d-.]+)\.md/)[1]).match(/^(\d{4}-\d{2}-\d{2})-(\d{2}-\d{2})(.*)/);if(!n&&!n[1]&&!n[2]&&!n[3])throw new Error("no ^YYYY-MM-DD-HH-mm date in blog filename");const a=n[1],s=n[2],t=a+n[3],d=(a+"-"+s).split("-");return{date:new Date(Date.UTC(parseInt(d[0],10),parseInt(d[1],10)-1,parseInt(d[2],10),parseInt(d[3],10),parseInt(d[4],10))),id:t,file:e}}},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":137,"./2017-12-21-00-00-1.2.10-Release.md":138,"./2018-01-12-00-00-1.2.11-Release.md":139,"./2018-01-18-00-00-1.2.12-Release.md":140,"./2018-01-25-00-00-1.2.13-Release.md":141,"./2018-02-01-00-00-1.2.14-Release.md":142,"./2018-02-08-00-00-1.2.15-Release.md":143,"./2018-02-15-00-00-1.2.16-Release.md":144,"./2018-02-22-00-00-1.2.17-Release.md":145,"./2018-03-01-00-00-1.2.18-Release.md":146,"./2018-03-08-00-00-1.2.19-Release.md":147,"./2018-03-15-00-00-1.3.0-Release.md":148,"./2018-03-22-00-00-1.3.1-Release.md":149,"./2018-03-29-00-00-1.3.2-Release.md":150,"./2018-04-05-00-00-1.3.3-Release.md":151,"./2018-04-12-00-00-1.3.4-Release.md":152,"./2018-04-19-00-00-1.3.5-Release.md":153,"./2018-04-26-00-00-1.3.6-Release.md":154,"./2018-05-03-00-00-1.3.7-Release.md":155,"./2018-05-10-00-00-1.3.8-Release.md":156,"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":157,"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":158,"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":159,"./2018-05-18-00-00-1.3.9-Release.md":160,"./2018-05-24-00-00-1.4.0-Release.md":161,"./2018-05-25-23-00-Phishing-Attempts.md":162,"./2018-05-31-07-00-1.4.1-Release.md":163,"./2018-06-07-07-00-1.4.2-Release.md":164,"./2018-06-14-07-00-1.4.3-Release.md":165,"./2018-06-21-07-00-1.4.4-Release.md":166,"./2018-06-28-07-00-1.4.5-Release.md":167,"./2018-07-05-07-00-1.4.6-Release.md":168,"./2018-07-12-07-00-1.4.7-Release.md":169,"./2018-07-19-07-00-1.4.8-Release.md":170,"./2018-07-26-07-00-1.4.9-Release.md":171,"./2018-08-02-10-00-1.4.10-Release.md":172,"./2018-08-09-10-00-1.4.11-Release.md":173,"./2018-08-16-10-00-1.4.12-Release.md":174,"./2018-08-23-10-00-1.4.13-Release.md":175,"./2018-08-30-10-00-1.4.15-Release.md":176,"./2018-09-06-10-00-1.4.16-Release.md":177,"./2018-09-13-10-00-1.4.17-Release.md":178,"./2018-09-18-21-00-Worldhopper-disabled.md":179,"./2018-09-20-10-00-1.4.18-Release.md":180,"./2018-09-27-10-00-1.4.19-Release.md":181,"./2018-10-04-10-00-1.4.20-Release.md":182,"./2018-10-11-10-00-1.4.21-Release.md":183,"./2018-10-18-10-00-1.4.22-Release.md":184,"./2018-10-25-10-00-1.4.23-Release.md":185,"./2018-11-01-10-00-1.4.24-Release.md":186,"./2018-11-08-10-00-1.4.25-Release.md":187,"./2018-11-15-10-00-1.4.26-Release.md":188,"./2018-11-16-12-00-1.5.0-Release.md":189,"./2018-11-22-10-00-1.5.1-Release.md":190,"./2018-11-29-10-00-1.5.2-Release.md":191,"./2018-12-06-10-00-1.5.3-Release.md":192,"./2018-12-13-10-00-1.5.4-Release.md":193,"./2018-12-20-10-00-1.5.5-Release.md":194,"./2019-01-03-10-00-1.5.6-Release.md":195,"./2019-01-10-10-00-1.5.7-Release.md":196,"./2019-01-17-10-00-1.5.8-Release.md":197,"./2019-01-24-10-00-1.5.9-Release.md":198,"./2019-01-31-10-00-1.5.10-Release.md":199,"./2019-02-07-10-00-1.5.11-Release.md":200,"./2019-02-14-10-00-1.5.12-Release.md":201,"./2019-02-16-16-00-Launcher-1.6.2-Release.md":202,"./2019-02-21-10-00-1.5.13-Release.md":203,"./2019-02-28-10-00-1.5.14-Release.md":204,"./2019-03-07-10-00-1.5.15-Release.md":205,"./2019-03-14-10-00-1.5.16-Release.md":206,"./2019-03-21-12-00-1.5.17-Release.md":207,"./2019-03-28-10-00-1.5.18-Release.md":208,"./2019-04-11-10-00-1.5.19-Release.md":209,"./2019-04-18-10-00-1.5.20-Release.md":210,"./2019-04-25-10-00-1.5.21-Release.md":211,"./2019-05-03-10-00-1.5.22-Release.md":212,"./2019-05-16-10-00-1.5.23-Release.md":213,"./2019-05-30-10-00-1.5.25-Release.md":214,"./2019-06-06-10-00-1.5.26-Release.md":215,"./2019-06-20-10-00-1.5.27-Release.md":216,"./2019-07-04-10-00-1.5.28-Release.md":217,"./2019-07-18-10-00-1.5.29-Release.md":218,"./2019-08-01-10-00-1.5.30-Release.md":219,"./2019-08-15-10-00-1.5.31-Release.md":220,"./2019-08-16-10-00-Launcher-Release-2.0.0.md":221,"./2019-08-29-10-00-1.5.32-Release.md":222,"./2019-09-12-10-00-1.5.33-Release.md":223,"./2019-09-26-10-00-1.5.34-Release.md":224,"./2019-10-02-10-00-1.5.35-Release.md":225,"./2019-10-17-10-00-1.5.36-Release.md":226,"./2019-10-30-10-00-1.5.37-Release.md":227,"./2019-11-14-10-00-1.5.40-Release.md":228,"./2019-11-28-10-00-1.5.42-Release.md":229,"./2019-12-16-10-00-1.5.43-Release.md":230,"./2019-12-19-10-00-1.6.0-Release.md":231,"./2020-01-09-10-00-1.6.1-Release.md":232,"./2020-01-16-10-00-1.6.2-Release.md":233,"./2020-01-22-10-00-1.6.4-Release.md":234,"./2020-01-29-10-00-1.6.5-Release.md":235,"./2020-02-13-10-00-1.6.6-Release.md":236,"./2020-02-27-10-00-1.6.8-Release.md":237,"./2020-03-05-10-00-1.6.9-Release.md":238,"./2020-03-26-10-00-1.6.10-Release.md":239,"./2020-04-16-10-00-1.6.11-Release.md":240,"./2020-05-01-10-00-1.6.13-Release.md":241,"./2020-05-09-10-00-1.6.14-Release.md":242,"./2020-05-28-10-00-1.6.17-Release.md":243,"./2020-06-12-10-00-1.6.19-Release.md":244,"./2020-06-18-10-00-1.6.20-Release.md":245,"./2020-06-25-10-00-1.6.21-Release.md":246,"./2020-07-16-10-00-1.6.22-Release.md":247,"./2020-07-23-10-00-1.6.23-Release.md":248,"./2020-08-26-10-00-1.6.25-Release.md":249,"./2020-09-23-10-00-1.6.27-Release.md":250,"./2020-10-07-10-00-1.6.28-Release.md":251,"./2020-11-11-10-00-1.6.31-Release.md":252,"./2020-12-02-10-00-1.6.33-Release.md":253,"./2021-01-06-10-00-1.6.36-Release.md":254,"./2021-01-27-10-00-1.6.38-Release.md":255,"./2021-02-13-00-00-1.7.0-Release.md":256,"./2021-03-08-20-00-Wiki-Ge-Partnership.md":257,"./2021-03-24-10-00-1.7.3-Release.md":258,"./2021-05-12-10-00-1.7.7-Release.md":259,"./2021-05-28-10-00-1.7.10-Release.md":260,"./2021-06-23-10-00-1.7.13-Release.md":261,"./2021-07-14-10-00-1.7.16-Release.md":262,"./2021-07-21-10-00-1.7.17-Release.md":263,"./2021-09-06-10-00-1.7.22-Release.md":264,"./2021-10-06-10-00-1.7.25-Release.md":265,"./2021-10-28-19-00-1.8.0-Release.md":266,"./2021-12-16-19-00-1.8.7-Release.md":267,"./2022-03-09-19-00-1.8.13-Release.md":268,"./2022-05-11-19-00-1.8.19-Release.md":269,"./2022-06-17-19-00-1.8.24-Release.md":270,"./2022-07-13-19-00-1.8.27-Release.md":271,"./2022-08-21-19-00-1.8.31-Release.md":272,"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":273,"./2022-10-05-15-00-1.9.0-Release.md":274,"./2022-12-07-15-00-1.9.5-Release.md":275,"./2023-01-22-10-00-security-incident-jan21.md":276,"./2023-02-18-15-00-1.9.11-Release.md":277,"./2023-05-13-15-00-1.10.0-Release.md":278,"./2023-07-01-15-00-1.10.6-Release.md":279,"./2023-09-09-15-00-1.10.12-Release.md":280,"./2023-11-05-10-00-1.10.15-Release.md":281};function t(e){var n=d(e);return a(n)}function d(e){if(!a.o(s,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return s[e]}t.keys=function(){return Object.keys(s)},t.resolve=d,e.exports=t,t.id=136},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n){},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":[295,20],"./2017-12-21-00-00-1.2.10-Release.md":[296,21],"./2018-01-12-00-00-1.2.11-Release.md":[297,22],"./2018-01-18-00-00-1.2.12-Release.md":[298,23],"./2018-01-25-00-00-1.2.13-Release.md":[299,24],"./2018-02-01-00-00-1.2.14-Release.md":[300,25],"./2018-02-08-00-00-1.2.15-Release.md":[301,26],"./2018-02-15-00-00-1.2.16-Release.md":[302,27],"./2018-02-22-00-00-1.2.17-Release.md":[303,28],"./2018-03-01-00-00-1.2.18-Release.md":[304,29],"./2018-03-08-00-00-1.2.19-Release.md":[305,30],"./2018-03-15-00-00-1.3.0-Release.md":[306,31],"./2018-03-22-00-00-1.3.1-Release.md":[307,32],"./2018-03-29-00-00-1.3.2-Release.md":[308,33],"./2018-04-05-00-00-1.3.3-Release.md":[309,34],"./2018-04-12-00-00-1.3.4-Release.md":[310,35],"./2018-04-19-00-00-1.3.5-Release.md":[311,36],"./2018-04-26-00-00-1.3.6-Release.md":[312,37],"./2018-05-03-00-00-1.3.7-Release.md":[313,38],"./2018-05-10-00-00-1.3.8-Release.md":[314,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[315,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[316,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[317,42],"./2018-05-18-00-00-1.3.9-Release.md":[318,43],"./2018-05-24-00-00-1.4.0-Release.md":[319,44],"./2018-05-25-23-00-Phishing-Attempts.md":[320,45],"./2018-05-31-07-00-1.4.1-Release.md":[321,46],"./2018-06-07-07-00-1.4.2-Release.md":[322,47],"./2018-06-14-07-00-1.4.3-Release.md":[323,48],"./2018-06-21-07-00-1.4.4-Release.md":[324,49],"./2018-06-28-07-00-1.4.5-Release.md":[325,50],"./2018-07-05-07-00-1.4.6-Release.md":[326,51],"./2018-07-12-07-00-1.4.7-Release.md":[327,52],"./2018-07-19-07-00-1.4.8-Release.md":[328,53],"./2018-07-26-07-00-1.4.9-Release.md":[329,54],"./2018-08-02-10-00-1.4.10-Release.md":[330,55],"./2018-08-09-10-00-1.4.11-Release.md":[331,56],"./2018-08-16-10-00-1.4.12-Release.md":[332,57],"./2018-08-23-10-00-1.4.13-Release.md":[333,58],"./2018-08-30-10-00-1.4.15-Release.md":[334,59],"./2018-09-06-10-00-1.4.16-Release.md":[335,60],"./2018-09-13-10-00-1.4.17-Release.md":[336,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[337,62],"./2018-09-20-10-00-1.4.18-Release.md":[338,63],"./2018-09-27-10-00-1.4.19-Release.md":[339,64],"./2018-10-04-10-00-1.4.20-Release.md":[340,65],"./2018-10-11-10-00-1.4.21-Release.md":[341,66],"./2018-10-18-10-00-1.4.22-Release.md":[342,67],"./2018-10-25-10-00-1.4.23-Release.md":[343,68],"./2018-11-01-10-00-1.4.24-Release.md":[344,69],"./2018-11-08-10-00-1.4.25-Release.md":[345,70],"./2018-11-15-10-00-1.4.26-Release.md":[346,71],"./2018-11-16-12-00-1.5.0-Release.md":[347,72],"./2018-11-22-10-00-1.5.1-Release.md":[348,73],"./2018-11-29-10-00-1.5.2-Release.md":[349,74],"./2018-12-06-10-00-1.5.3-Release.md":[350,75],"./2018-12-13-10-00-1.5.4-Release.md":[351,76],"./2018-12-20-10-00-1.5.5-Release.md":[352,77],"./2019-01-03-10-00-1.5.6-Release.md":[353,78],"./2019-01-10-10-00-1.5.7-Release.md":[354,79],"./2019-01-17-10-00-1.5.8-Release.md":[355,80],"./2019-01-24-10-00-1.5.9-Release.md":[356,81],"./2019-01-31-10-00-1.5.10-Release.md":[357,82],"./2019-02-07-10-00-1.5.11-Release.md":[358,83],"./2019-02-14-10-00-1.5.12-Release.md":[359,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[360,85],"./2019-02-21-10-00-1.5.13-Release.md":[361,86],"./2019-02-28-10-00-1.5.14-Release.md":[362,87],"./2019-03-07-10-00-1.5.15-Release.md":[363,88],"./2019-03-14-10-00-1.5.16-Release.md":[364,89],"./2019-03-21-12-00-1.5.17-Release.md":[365,90],"./2019-03-28-10-00-1.5.18-Release.md":[366,91],"./2019-04-11-10-00-1.5.19-Release.md":[367,92],"./2019-04-18-10-00-1.5.20-Release.md":[368,93],"./2019-04-25-10-00-1.5.21-Release.md":[369,94],"./2019-05-03-10-00-1.5.22-Release.md":[370,95],"./2019-05-16-10-00-1.5.23-Release.md":[371,96],"./2019-05-30-10-00-1.5.25-Release.md":[372,97],"./2019-06-06-10-00-1.5.26-Release.md":[373,98],"./2019-06-20-10-00-1.5.27-Release.md":[374,99],"./2019-07-04-10-00-1.5.28-Release.md":[375,100],"./2019-07-18-10-00-1.5.29-Release.md":[376,101],"./2019-08-01-10-00-1.5.30-Release.md":[377,102],"./2019-08-15-10-00-1.5.31-Release.md":[378,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[379,104],"./2019-08-29-10-00-1.5.32-Release.md":[380,105],"./2019-09-12-10-00-1.5.33-Release.md":[381,106],"./2019-09-26-10-00-1.5.34-Release.md":[382,107],"./2019-10-02-10-00-1.5.35-Release.md":[383,108],"./2019-10-17-10-00-1.5.36-Release.md":[384,109],"./2019-10-30-10-00-1.5.37-Release.md":[385,110],"./2019-11-14-10-00-1.5.40-Release.md":[386,111],"./2019-11-28-10-00-1.5.42-Release.md":[387,112],"./2019-12-16-10-00-1.5.43-Release.md":[388,113],"./2019-12-19-10-00-1.6.0-Release.md":[389,114],"./2020-01-09-10-00-1.6.1-Release.md":[390,115],"./2020-01-16-10-00-1.6.2-Release.md":[391,116],"./2020-01-22-10-00-1.6.4-Release.md":[392,117],"./2020-01-29-10-00-1.6.5-Release.md":[393,118],"./2020-02-13-10-00-1.6.6-Release.md":[394,119],"./2020-02-27-10-00-1.6.8-Release.md":[395,120],"./2020-03-05-10-00-1.6.9-Release.md":[396,121],"./2020-03-26-10-00-1.6.10-Release.md":[397,122],"./2020-04-16-10-00-1.6.11-Release.md":[398,123],"./2020-05-01-10-00-1.6.13-Release.md":[399,124],"./2020-05-09-10-00-1.6.14-Release.md":[400,125],"./2020-05-28-10-00-1.6.17-Release.md":[401,126],"./2020-06-12-10-00-1.6.19-Release.md":[402,127],"./2020-06-18-10-00-1.6.20-Release.md":[403,128],"./2020-06-25-10-00-1.6.21-Release.md":[404,129],"./2020-07-16-10-00-1.6.22-Release.md":[405,130],"./2020-07-23-10-00-1.6.23-Release.md":[406,131],"./2020-08-26-10-00-1.6.25-Release.md":[407,132],"./2020-09-23-10-00-1.6.27-Release.md":[408,133],"./2020-10-07-10-00-1.6.28-Release.md":[409,134],"./2020-11-11-10-00-1.6.31-Release.md":[410,135],"./2020-12-02-10-00-1.6.33-Release.md":[411,136],"./2021-01-06-10-00-1.6.36-Release.md":[412,137],"./2021-01-27-10-00-1.6.38-Release.md":[413,138],"./2021-02-13-00-00-1.7.0-Release.md":[414,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[415,140],"./2021-03-24-10-00-1.7.3-Release.md":[416,141],"./2021-05-12-10-00-1.7.7-Release.md":[417,142],"./2021-05-28-10-00-1.7.10-Release.md":[418,143],"./2021-06-23-10-00-1.7.13-Release.md":[419,144],"./2021-07-14-10-00-1.7.16-Release.md":[420,145],"./2021-07-21-10-00-1.7.17-Release.md":[421,146],"./2021-09-06-10-00-1.7.22-Release.md":[422,147],"./2021-10-06-10-00-1.7.25-Release.md":[423,148],"./2021-10-28-19-00-1.8.0-Release.md":[424,149],"./2021-12-16-19-00-1.8.7-Release.md":[425,150],"./2022-03-09-19-00-1.8.13-Release.md":[426,151],"./2022-05-11-19-00-1.8.19-Release.md":[427,152],"./2022-06-17-19-00-1.8.24-Release.md":[428,153],"./2022-07-13-19-00-1.8.27-Release.md":[429,154],"./2022-08-21-19-00-1.8.31-Release.md":[430,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[431,156],"./2022-10-05-15-00-1.9.0-Release.md":[432,157],"./2022-12-07-15-00-1.9.5-Release.md":[433,158],"./2023-01-22-10-00-security-incident-jan21.md":[434,159],"./2023-02-18-15-00-1.9.11-Release.md":[435,160],"./2023-05-13-15-00-1.10.0-Release.md":[436,161],"./2023-07-01-15-00-1.10.6-Release.md":[437,162],"./2023-09-09-15-00-1.10.12-Release.md":[438,163],"./2023-11-05-10-00-1.10.15-Release.md":[439,164]};function t(e){if(!a.o(s,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=s[e],t=n[0];return a.e(n[1]).then((function(){return a.t(t,7)}))}t.keys=function(){return Object.keys(s)},t.id=282,e.exports=t},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,n,a){"use strict";a.r(n);var s=a(0),t=a(129),d=a.n(t),l=a(126),m=a(134),o=a(7),R=a.n(o),i=a(46),c=a(8),u=a(5);a(133);n.default=()=>Object(s.g)(l.a,null,Object(s.g)(i.a,{title:"Blog - "+R.a.title,description:"Latest RuneLite news and updates"}),Object(s.g)("section",{id:"blog-list"},Object(s.g)("div",{class:"content-section"},Object(s.g)("h1",{class:"page-header"},"Blog"),Object(s.g)("ul",{class:"list-group"},Array.from(m.a.keys()).map(e=>Object(s.g)(u.a,{key:e,getComponent:()=>m.a.get(e)().then(e=>{let{id:n,date:a,title:t,description:l,author:m}=e;return Object(s.g)(c.a,{key:n,class:"list-group-item list-group-item-action flex-column align-items-start",activeClassName:"active",href:"/blog/show/"+n},Object(s.g)("div",{class:"d-flex w-100 justify-content-between"},Object(s.g)("h5",{class:"mb-1"},t||n),Object(s.g)("small",{class:"text-muted"},d()(a)," by ",m)),Object(s.g)("p",{class:"mb-1 text-muted"},l))})}))))))}])]);
-//# sourceMappingURL=6.48faa19d.chunk.js.map
\ No newline at end of file
diff --git a/static/js/6.48faa19d.chunk.js.map b/static/js/6.48faa19d.chunk.js.map
deleted file mode 100644
index 27172dcb6..000000000
--- a/static/js/6.48faa19d.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","../node_modules/s-ago/index.js","blog.js","parse-blog.js","../ /.md$","../ /^/.//.*/.md$/ groupOptions: {} namespace object","routes/blog.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","blog","require","keys","sort","reverse","reduce","memo","fileName","parsed","parseBlog","set","toLowerCase","resolver","file","then","md","Map","getBlog","post","get","Promise","resolve","latest","async","values","hasOwnProperty","skip","tokenizedFilename","match","Error","dateString","timeString","dateArray","split","UTC","parseInt","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","webpackAsyncContext","ids","t","Blog","Meta","title","hero","description","Array","from","Async","key","getComponent","author","Link","activeClassName","ago"],"mappings":"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ACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,wDAAyD,CACxD,IACA,IAED,+DAAgE,CAC/D,IACA,IAED,iEAAkE,CACjE,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,sCAAuC,CACtC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,+CAAgD,CAC/C,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,4CAA6C,CAC5C,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,4EAA6E,CAC5E,IACA,KAED,sCAAuC,CACtC,IACA,KAED,sCAAuC,CACtC,IACA,KAED,gDAAiD,CAChD,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,uCAAwC,CACvC,IACA,KAED,wCAAyC,CACxC,IACA,KAED,wCAAyC,CACxC,IACA,MAGF,SAASQ,EAAoBN,GAC5B,IAAIE,EAAoBC,EAAEL,EAAKE,GAC9B,OAAOlB,QAAQC,UAAUP,MAAK,WAC7B,IAAI4B,EAAI,IAAIb,MAAM,uBAAyBS,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,KAIR,IAAIG,EAAMT,EAAIE,GAAMzE,EAAKgF,EAAI,GAC7B,OAAOL,EAAoBE,EAAEG,EAAI,IAAI/B,MAAK,WACzC,OAAO0B,EAAoBM,EAAEjF,EAAI,MAGnC+E,EAAoB1C,KAAO,WAC1B,OAAO3B,OAAO2B,KAAKkC,IAEpBQ,EAAoB/E,GAAK,IACzB2B,EAAOC,QAAUmD,G,iMCxlBjB,mGAoDeG,UA1CFA,IACXnF,YAACI,IAAM,KACLJ,YAACoF,IAAI,CACHC,MAAQ,UAASC,IAAKD,MACtBE,YAAY,qCAGdvF,YAAA,WAASC,GAAG,aACVD,YAAA,OAAKE,MAAM,mBACTF,YAAA,MAAIE,MAAM,eAAc,QACxBF,YAAA,MAAIE,MAAM,cACPsF,MAAMC,KAAKrD,IAAKE,QAAQkC,IAAIvE,GAC3BD,YAAC0F,IAAK,CACJC,IAAK1F,EACL2F,aAAcA,IACZxD,IACGmB,IAAItD,EADPmC,GAEGc,KAAK7C,IAAA,IAAC,GAAEJ,EAAE,KAAE6B,EAAI,MAAEuD,EAAK,YAAEE,EAAW,OAAEM,GAAQxF,EAAA,OAC7CL,YAAC8F,IAAI,CACHH,IAAK1F,EACLC,MAAM,uEACN6F,gBAAgB,SAChB5F,KAAO,cAAaF,GAEpBD,YAAA,OAAKE,MAAM,wCACTF,YAAA,MAAIE,MAAM,QAAQmF,GAASpF,GAC3BD,YAAA,SAAOE,MAAM,cACV8F,IAAIlE,GAAM,OAAK+D,IAGpB7F,YAAA,KAAGE,MAAM,mBAAmBqF","file":"static/js/6.48faa19d.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import parseBlog from './parse-blog'\n\nconst blog = require\n .context('!null-loader!./_posts', false, /.md$/)\n .keys()\n .sort()\n .reverse()\n .reduce((memo, fileName) => {\n // Parse blog metadata\n const parsed = parseBlog(fileName)\n\n const resolver = () => {\n const mapper = md => {\n return {\n id: parsed.id,\n date: parsed.date,\n ...md\n }\n }\n\n return import(`!./markdown-loader!./_posts/${parsed.file}.md`).then(\n mapper\n )\n }\n\n return memo.set(parsed.id.toLowerCase(), resolver)\n }, new Map())\n\nexport const getBlog = id => {\n const post = blog.get(id.toLowerCase())\n\n if (post) {\n return post()\n }\n\n return Promise.resolve({})\n}\n\nexport const latest = async () => {\n const values = blog.values()\n\n for (let value of values) {\n const post = await value()\n\n if (post.hasOwnProperty('skip') && post.skip) {\n continue\n }\n\n return post\n }\n\n return {}\n}\n\nexport default blog\n","module.exports = file => {\n // Remove cd and extension\n file = file.match(/([\\w\\d-.]+)\\.md/)[1]\n\n // Extract year and path\n const tokenizedFilename = file.match(/^(\\d{4}-\\d{2}-\\d{2})-(\\d{2}-\\d{2})(.*)/)\n\n // Validation\n if (\n !tokenizedFilename &&\n !tokenizedFilename[1] &&\n !tokenizedFilename[2] &&\n !tokenizedFilename[3]\n ) {\n throw new Error('no ^YYYY-MM-DD-HH-mm date in blog filename')\n }\n\n // Extract date\n const dateString = tokenizedFilename[1]\n const timeString = tokenizedFilename[2]\n const title = tokenizedFilename[3]\n const id = dateString + title\n const dateTime = dateString + '-' + timeString\n const dateArray = dateTime.split('-')\n\n // Parse date\n const date = new Date(\n Date.UTC(\n // Year\n parseInt(dateArray[0], 10),\n // Month\n parseInt(dateArray[1], 10) - 1,\n // Day\n parseInt(dateArray[2], 10),\n // Hour\n parseInt(dateArray[3], 10),\n // Minute\n parseInt(dateArray[4], 10)\n )\n )\n\n return {\n date,\n id,\n file\n }\n}\n","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": 137,\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": 138,\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": 139,\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": 140,\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": 141,\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": 142,\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": 143,\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": 144,\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": 145,\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": 146,\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": 147,\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": 148,\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": 149,\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": 150,\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": 151,\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": 152,\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": 153,\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": 154,\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": 155,\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": 156,\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": 157,\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": 158,\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": 159,\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": 160,\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": 161,\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": 162,\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": 163,\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": 164,\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": 165,\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": 166,\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": 167,\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": 168,\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": 169,\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": 170,\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": 171,\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": 172,\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": 173,\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": 174,\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": 175,\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": 176,\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": 177,\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": 178,\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": 179,\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": 180,\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": 181,\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": 182,\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": 183,\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": 184,\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": 185,\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": 186,\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": 187,\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": 188,\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": 189,\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": 190,\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": 191,\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": 192,\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": 193,\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": 194,\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": 195,\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": 196,\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": 197,\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": 198,\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": 199,\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": 200,\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": 201,\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": 202,\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": 203,\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": 204,\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": 205,\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": 206,\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": 207,\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": 208,\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": 209,\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": 210,\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": 211,\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": 212,\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": 213,\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": 214,\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": 215,\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": 216,\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": 217,\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": 218,\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": 219,\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": 220,\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": 221,\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": 222,\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": 223,\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": 224,\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": 225,\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": 226,\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": 227,\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": 228,\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": 229,\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": 230,\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": 231,\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": 232,\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": 233,\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": 234,\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": 235,\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": 236,\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": 237,\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": 238,\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": 239,\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": 240,\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": 241,\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": 242,\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": 243,\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": 244,\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": 245,\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": 246,\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": 247,\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": 248,\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": 249,\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": 250,\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": 251,\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": 252,\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": 253,\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": 254,\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": 255,\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": 256,\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": 257,\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": 258,\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": 259,\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": 260,\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": 261,\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": 262,\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": 263,\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": 264,\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": 265,\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": 266,\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": 267,\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": 268,\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": 269,\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": 270,\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": 271,\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": 272,\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": 273,\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": 274,\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": 275,\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": 276,\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": 277,\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": 278,\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": 279,\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": 280,\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": 281\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 136;","var map = {\n\t\"./2017-12-13-00-00-New-Site.md\": [\n\t\t295,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t296,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t297,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t298,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t299,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t300,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t301,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t302,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t303,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t304,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t305,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t306,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t307,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t308,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t309,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t310,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t311,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t312,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t313,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t314,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t315,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t316,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t318,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t319,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t320,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t321,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t322,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t323,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t324,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t325,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t326,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t327,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t328,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t329,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t330,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t331,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t332,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t333,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t334,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t335,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t336,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t337,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t338,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t339,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t340,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t341,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t342,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t343,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t344,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t345,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t346,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t347,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t348,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t349,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t350,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t351,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t352,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t353,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t354,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t355,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t356,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t357,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t358,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t359,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t360,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t361,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t362,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t363,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t364,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t365,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t366,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t367,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t368,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t369,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t370,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t371,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t372,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t373,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t374,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t375,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t376,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t377,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t378,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t379,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t380,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t381,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t382,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t383,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t384,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t385,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t386,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t387,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t388,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t389,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t390,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t391,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t392,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t393,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t394,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t395,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t396,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t397,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t398,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t399,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t400,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t401,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t402,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t403,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t404,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t405,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t406,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t407,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t408,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t409,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t410,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t411,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t412,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t413,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t414,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t415,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t416,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t417,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t418,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t419,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t420,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t421,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t422,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t423,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t424,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t425,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t426,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t427,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t428,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t429,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t430,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t431,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t432,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t433,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t434,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t435,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t436,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t437,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t438,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t439,\n\t\t164\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 282;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport ago from 's-ago'\nimport Layout from '../components/layout'\nimport blog from '../blog'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { Link } from 'preact-router'\nimport Async from '../components/async'\nimport './blog.scss'\n\nconst Blog = () => (\n \n \n\n \n \n)\n\nexport default Blog\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/60.64f8d662.chunk.js b/static/js/60.a95c071f.chunk.js
similarity index 98%
rename from static/js/60.64f8d662.chunk.js
rename to static/js/60.a95c071f.chunk.js
index 4a0e5cd0f..ff5733783 100644
--- a/static/js/60.64f8d662.chunk.js
+++ b/static/js/60.a95c071f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[60],{335:function(e,n){e.exports={title:"1.4.16 Release",description:"Layoutable Runescape widgets, top-center snap point, and automatic bounty target hiscore lookup",author:"Jordan",body:'RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like\nRunelite overlays. Thanks to @Deathbeam for this feature!
\n
\nA top-center snap point has been added, and the XP Globes plugin has been set to use it by default,\nalso thanks to @Deathbeam .
\n
\nAn option has been added to the hiscore plugin to automatically look up bounty targets when they are\nassigned, thanks to @noelkeijzer .
\nThere are also several smaller improvements and bug fixes, including:
\n\nLoot tracker now behaves correctly when multiple enemies die on same tick,\nwhen player is despawned and when receiving Theatre of Blood drops \nSome common items have been added to the ground item plugin\'s hidden items list by default \nThe idle logout timer supports checking the logout timer when in combat \nThe dense essence idle animation has been fixed and will correctly trigger the idle notifier \nThe fossil island oxygen bar and pest control info widgets are now movable \nSome noisy plugin features have been disabled by default, or made to display only when in use \n"Trade-with" is now swapped also with the trade option of the menu entry swapper plugin \nFixed the magic training arena dragonstone hint arrow not being cleared \nPrayer and run orb tooltips no longer display when the minimap is hidden \nThe run energy tooltip now shows remaining energy when the orb shows run time remaining \nSome achievement diary requirements texts have been corrected \nVarious skill calculator entries have been re-ordered to come in level requirement order \nOurania teleport has been added to the skill calculator \nFixed binding necklace charge counter when checking a necklace with one charge \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (2):\n Revert "Make same-tick same-tile loot event fire once"\n loot manager: limit to one kill per location per tick\n\nCC007 (1):\n Fix locale not being applied for StackFormatterTest (#5216)\n\nMagic fTail (2):\n Fix dense essence idle animation\n Add support for combat idle 20 minute timer\n\nMax Weber (3):\n cache: Do not depend on Index insertion ordering\n cache: Properly produce `\\n` only on windows on jdk9+\n Import Widget::fontId\n\nMichael Goodwin (4):\n Make same-tick same-tile loot event fire once\n Check for player HP being 0 in player loot event\n Add common method for converting local to world point\n Check for correct ToB region when receiving loot\n\nNo\xebl Keijzer (1):\n Add automatic bounty hunter target lookup in HiScore plugin (#5193)\n\nSebastiaan Vanspauwen (1):\n WidgetOverlay: Make fossil island oxygen bar moveable (#5246)\n\nShaun Dreclin (4):\n Add clear button to var inspector devtool\n Add trade-with swap to menu entry swapper\n Fix ground markers getting set at wrong position\n Fix mta dragonstone hint arrow not clearing\n\nTomas Slusny (12):\n Make RuneScape widgets layoutable\n Take preferred position into account when ordering\n Add common hidden items to GroundItemsPlugin\n Disable blast furnace clickboxes by default\n Disable lit/unlit burner indicators by default\n Make KourendLibrary overlay show only on interact\n Show fishing overlays only when player can fish\n Show cannon spot overlay only with cannon\n Disable XP globes plugin by default\n Add TOP_CENTER snap corner to snap center viewport\n Make XP globes use TOP_CENTER snap point\n Fix sorting order of overlays\n\nUnmoon (3):\n Don\'t show prayer orb hover overlay if prayer orb is hidden\n Don\'t show run energy hover overlay if run energy orb is hidden\n Show run energy instead of time remaining if tooltip shows time remaining\n\nastaninger (7):\n Fix watchtower Achievment Diary requirement (#5218)\n Fix ape atoll Achievment Diary agility requirement (#5220)\n Properly order prayer skill calculator (#5290)\n Fix dragonstone necklace name in skill calculator (#5287)\n Order tiaras in RC skill calc by experience gained (#5288)\n Sort planks in construction guide by XP in skill calc (#5289)\n Add ourania teleport to skill calculator (#5285)\n\nltvill (1):\n Fix formatting of \'s in OSRS location names\n\noplosthee (1):\n runecraft: fix binding necklace regex\n\nraiyni (5):\n Widgets: add setItemId\n widget: add setItemQuantity\n widgets: setBorderThickness\n expose text shadowed\n Make pest control widgets layoutable\n
\n',image:"/img/blog/1.4.16-Release/layoutable-runescape-widgets.gif"}}}]);
-//# sourceMappingURL=60.64f8d662.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[60],{336:function(e,n){e.exports={title:"1.4.16 Release",description:"Layoutable Runescape widgets, top-center snap point, and automatic bounty target hiscore lookup",author:"Jordan",body:'RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like\nRunelite overlays. Thanks to @Deathbeam for this feature!
\n
\nA top-center snap point has been added, and the XP Globes plugin has been set to use it by default,\nalso thanks to @Deathbeam .
\n
\nAn option has been added to the hiscore plugin to automatically look up bounty targets when they are\nassigned, thanks to @noelkeijzer .
\nThere are also several smaller improvements and bug fixes, including:
\n\nLoot tracker now behaves correctly when multiple enemies die on same tick,\nwhen player is despawned and when receiving Theatre of Blood drops \nSome common items have been added to the ground item plugin\'s hidden items list by default \nThe idle logout timer supports checking the logout timer when in combat \nThe dense essence idle animation has been fixed and will correctly trigger the idle notifier \nThe fossil island oxygen bar and pest control info widgets are now movable \nSome noisy plugin features have been disabled by default, or made to display only when in use \n"Trade-with" is now swapped also with the trade option of the menu entry swapper plugin \nFixed the magic training arena dragonstone hint arrow not being cleared \nPrayer and run orb tooltips no longer display when the minimap is hidden \nThe run energy tooltip now shows remaining energy when the orb shows run time remaining \nSome achievement diary requirements texts have been corrected \nVarious skill calculator entries have been re-ordered to come in level requirement order \nOurania teleport has been added to the skill calculator \nFixed binding necklace charge counter when checking a necklace with one charge \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (2):\n Revert "Make same-tick same-tile loot event fire once"\n loot manager: limit to one kill per location per tick\n\nCC007 (1):\n Fix locale not being applied for StackFormatterTest (#5216)\n\nMagic fTail (2):\n Fix dense essence idle animation\n Add support for combat idle 20 minute timer\n\nMax Weber (3):\n cache: Do not depend on Index insertion ordering\n cache: Properly produce `\\n` only on windows on jdk9+\n Import Widget::fontId\n\nMichael Goodwin (4):\n Make same-tick same-tile loot event fire once\n Check for player HP being 0 in player loot event\n Add common method for converting local to world point\n Check for correct ToB region when receiving loot\n\nNo\xebl Keijzer (1):\n Add automatic bounty hunter target lookup in HiScore plugin (#5193)\n\nSebastiaan Vanspauwen (1):\n WidgetOverlay: Make fossil island oxygen bar moveable (#5246)\n\nShaun Dreclin (4):\n Add clear button to var inspector devtool\n Add trade-with swap to menu entry swapper\n Fix ground markers getting set at wrong position\n Fix mta dragonstone hint arrow not clearing\n\nTomas Slusny (12):\n Make RuneScape widgets layoutable\n Take preferred position into account when ordering\n Add common hidden items to GroundItemsPlugin\n Disable blast furnace clickboxes by default\n Disable lit/unlit burner indicators by default\n Make KourendLibrary overlay show only on interact\n Show fishing overlays only when player can fish\n Show cannon spot overlay only with cannon\n Disable XP globes plugin by default\n Add TOP_CENTER snap corner to snap center viewport\n Make XP globes use TOP_CENTER snap point\n Fix sorting order of overlays\n\nUnmoon (3):\n Don\'t show prayer orb hover overlay if prayer orb is hidden\n Don\'t show run energy hover overlay if run energy orb is hidden\n Show run energy instead of time remaining if tooltip shows time remaining\n\nastaninger (7):\n Fix watchtower Achievment Diary requirement (#5218)\n Fix ape atoll Achievment Diary agility requirement (#5220)\n Properly order prayer skill calculator (#5290)\n Fix dragonstone necklace name in skill calculator (#5287)\n Order tiaras in RC skill calc by experience gained (#5288)\n Sort planks in construction guide by XP in skill calc (#5289)\n Add ourania teleport to skill calculator (#5285)\n\nltvill (1):\n Fix formatting of \'s in OSRS location names\n\noplosthee (1):\n runecraft: fix binding necklace regex\n\nraiyni (5):\n Widgets: add setItemId\n widget: add setItemQuantity\n widgets: setBorderThickness\n expose text shadowed\n Make pest control widgets layoutable\n
\n',image:"/img/blog/1.4.16-Release/layoutable-runescape-widgets.gif"}}}]);
+//# sourceMappingURL=60.a95c071f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/60.64f8d662.chunk.js.map b/static/js/60.a95c071f.chunk.js.map
similarity index 98%
rename from static/js/60.64f8d662.chunk.js.map
rename to static/js/60.a95c071f.chunk.js.map
index 7d7fce418..5f72170b1 100644
--- a/static/js/60.64f8d662.chunk.js.map
+++ b/static/js/60.a95c071f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-09-06-10-00-1.4.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,kGAAkG,OAAS,SAAS,KAAO,8lKAAinK,MAAQ","file":"static/js/60.64f8d662.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.16 Release\",\"description\":\"Layoutable Runescape widgets, top-center snap point, and automatic bounty target hiscore lookup\",\"author\":\"Jordan\",\"body\":\"RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like\\nRunelite overlays. Thanks to @Deathbeam for this feature!
\\n
\\nA top-center snap point has been added, and the XP Globes plugin has been set to use it by default,\\nalso thanks to @Deathbeam .
\\n
\\nAn option has been added to the hiscore plugin to automatically look up bounty targets when they are\\nassigned, thanks to @noelkeijzer .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nLoot tracker now behaves correctly when multiple enemies die on same tick,\\nwhen player is despawned and when receiving Theatre of Blood drops \\nSome common items have been added to the ground item plugin's hidden items list by default \\nThe idle logout timer supports checking the logout timer when in combat \\nThe dense essence idle animation has been fixed and will correctly trigger the idle notifier \\nThe fossil island oxygen bar and pest control info widgets are now movable \\nSome noisy plugin features have been disabled by default, or made to display only when in use \\n"Trade-with" is now swapped also with the trade option of the menu entry swapper plugin \\nFixed the magic training arena dragonstone hint arrow not being cleared \\nPrayer and run orb tooltips no longer display when the minimap is hidden \\nThe run energy tooltip now shows remaining energy when the orb shows run time remaining \\nSome achievement diary requirements texts have been corrected \\nVarious skill calculator entries have been re-ordered to come in level requirement order \\nOurania teleport has been added to the skill calculator \\nFixed binding necklace charge counter when checking a necklace with one charge \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (2):\\n Revert "Make same-tick same-tile loot event fire once"\\n loot manager: limit to one kill per location per tick\\n\\nCC007 (1):\\n Fix locale not being applied for StackFormatterTest (#5216)\\n\\nMagic fTail (2):\\n Fix dense essence idle animation\\n Add support for combat idle 20 minute timer\\n\\nMax Weber (3):\\n cache: Do not depend on Index insertion ordering\\n cache: Properly produce `\\\\n` only on windows on jdk9+\\n Import Widget::fontId\\n\\nMichael Goodwin (4):\\n Make same-tick same-tile loot event fire once\\n Check for player HP being 0 in player loot event\\n Add common method for converting local to world point\\n Check for correct ToB region when receiving loot\\n\\nNoël Keijzer (1):\\n Add automatic bounty hunter target lookup in HiScore plugin (#5193)\\n\\nSebastiaan Vanspauwen (1):\\n WidgetOverlay: Make fossil island oxygen bar moveable (#5246)\\n\\nShaun Dreclin (4):\\n Add clear button to var inspector devtool\\n Add trade-with swap to menu entry swapper\\n Fix ground markers getting set at wrong position\\n Fix mta dragonstone hint arrow not clearing\\n\\nTomas Slusny (12):\\n Make RuneScape widgets layoutable\\n Take preferred position into account when ordering\\n Add common hidden items to GroundItemsPlugin\\n Disable blast furnace clickboxes by default\\n Disable lit/unlit burner indicators by default\\n Make KourendLibrary overlay show only on interact\\n Show fishing overlays only when player can fish\\n Show cannon spot overlay only with cannon\\n Disable XP globes plugin by default\\n Add TOP_CENTER snap corner to snap center viewport\\n Make XP globes use TOP_CENTER snap point\\n Fix sorting order of overlays\\n\\nUnmoon (3):\\n Don't show prayer orb hover overlay if prayer orb is hidden\\n Don't show run energy hover overlay if run energy orb is hidden\\n Show run energy instead of time remaining if tooltip shows time remaining\\n\\nastaninger (7):\\n Fix watchtower Achievment Diary requirement (#5218)\\n Fix ape atoll Achievment Diary agility requirement (#5220)\\n Properly order prayer skill calculator (#5290)\\n Fix dragonstone necklace name in skill calculator (#5287)\\n Order tiaras in RC skill calc by experience gained (#5288)\\n Sort planks in construction guide by XP in skill calc (#5289)\\n Add ourania teleport to skill calculator (#5285)\\n\\nltvill (1):\\n Fix formatting of 's in OSRS location names\\n\\noplosthee (1):\\n runecraft: fix binding necklace regex\\n\\nraiyni (5):\\n Widgets: add setItemId\\n widget: add setItemQuantity\\n widgets: setBorderThickness\\n expose text shadowed\\n Make pest control widgets layoutable\\n
\\n\",\"image\":\"/img/blog/1.4.16-Release/layoutable-runescape-widgets.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-09-06-10-00-1.4.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,kGAAkG,OAAS,SAAS,KAAO,8lKAAinK,MAAQ","file":"static/js/60.a95c071f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.16 Release\",\"description\":\"Layoutable Runescape widgets, top-center snap point, and automatic bounty target hiscore lookup\",\"author\":\"Jordan\",\"body\":\"RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like\\nRunelite overlays. Thanks to @Deathbeam for this feature!
\\n
\\nA top-center snap point has been added, and the XP Globes plugin has been set to use it by default,\\nalso thanks to @Deathbeam .
\\n
\\nAn option has been added to the hiscore plugin to automatically look up bounty targets when they are\\nassigned, thanks to @noelkeijzer .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nLoot tracker now behaves correctly when multiple enemies die on same tick,\\nwhen player is despawned and when receiving Theatre of Blood drops \\nSome common items have been added to the ground item plugin's hidden items list by default \\nThe idle logout timer supports checking the logout timer when in combat \\nThe dense essence idle animation has been fixed and will correctly trigger the idle notifier \\nThe fossil island oxygen bar and pest control info widgets are now movable \\nSome noisy plugin features have been disabled by default, or made to display only when in use \\n"Trade-with" is now swapped also with the trade option of the menu entry swapper plugin \\nFixed the magic training arena dragonstone hint arrow not being cleared \\nPrayer and run orb tooltips no longer display when the minimap is hidden \\nThe run energy tooltip now shows remaining energy when the orb shows run time remaining \\nSome achievement diary requirements texts have been corrected \\nVarious skill calculator entries have been re-ordered to come in level requirement order \\nOurania teleport has been added to the skill calculator \\nFixed binding necklace charge counter when checking a necklace with one charge \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (2):\\n Revert "Make same-tick same-tile loot event fire once"\\n loot manager: limit to one kill per location per tick\\n\\nCC007 (1):\\n Fix locale not being applied for StackFormatterTest (#5216)\\n\\nMagic fTail (2):\\n Fix dense essence idle animation\\n Add support for combat idle 20 minute timer\\n\\nMax Weber (3):\\n cache: Do not depend on Index insertion ordering\\n cache: Properly produce `\\\\n` only on windows on jdk9+\\n Import Widget::fontId\\n\\nMichael Goodwin (4):\\n Make same-tick same-tile loot event fire once\\n Check for player HP being 0 in player loot event\\n Add common method for converting local to world point\\n Check for correct ToB region when receiving loot\\n\\nNoël Keijzer (1):\\n Add automatic bounty hunter target lookup in HiScore plugin (#5193)\\n\\nSebastiaan Vanspauwen (1):\\n WidgetOverlay: Make fossil island oxygen bar moveable (#5246)\\n\\nShaun Dreclin (4):\\n Add clear button to var inspector devtool\\n Add trade-with swap to menu entry swapper\\n Fix ground markers getting set at wrong position\\n Fix mta dragonstone hint arrow not clearing\\n\\nTomas Slusny (12):\\n Make RuneScape widgets layoutable\\n Take preferred position into account when ordering\\n Add common hidden items to GroundItemsPlugin\\n Disable blast furnace clickboxes by default\\n Disable lit/unlit burner indicators by default\\n Make KourendLibrary overlay show only on interact\\n Show fishing overlays only when player can fish\\n Show cannon spot overlay only with cannon\\n Disable XP globes plugin by default\\n Add TOP_CENTER snap corner to snap center viewport\\n Make XP globes use TOP_CENTER snap point\\n Fix sorting order of overlays\\n\\nUnmoon (3):\\n Don't show prayer orb hover overlay if prayer orb is hidden\\n Don't show run energy hover overlay if run energy orb is hidden\\n Show run energy instead of time remaining if tooltip shows time remaining\\n\\nastaninger (7):\\n Fix watchtower Achievment Diary requirement (#5218)\\n Fix ape atoll Achievment Diary agility requirement (#5220)\\n Properly order prayer skill calculator (#5290)\\n Fix dragonstone necklace name in skill calculator (#5287)\\n Order tiaras in RC skill calc by experience gained (#5288)\\n Sort planks in construction guide by XP in skill calc (#5289)\\n Add ourania teleport to skill calculator (#5285)\\n\\nltvill (1):\\n Fix formatting of 's in OSRS location names\\n\\noplosthee (1):\\n runecraft: fix binding necklace regex\\n\\nraiyni (5):\\n Widgets: add setItemId\\n widget: add setItemQuantity\\n widgets: setBorderThickness\\n expose text shadowed\\n Make pest control widgets layoutable\\n
\\n\",\"image\":\"/img/blog/1.4.16-Release/layoutable-runescape-widgets.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/61.ae685cc5.chunk.js b/static/js/61.4d383c4e.chunk.js
similarity index 98%
rename from static/js/61.ae685cc5.chunk.js
rename to static/js/61.4d383c4e.chunk.js
index 664f0d16c..2888d43ab 100644
--- a/static/js/61.ae685cc5.chunk.js
+++ b/static/js/61.4d383c4e.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[61],{336:function(e,n){e.exports={title:"1.4.17 Release",description:"Loot tracker grouping, home and minigame cooldown timers, minigame and quest world map icons, and various bug fixes and enhancements",author:"Jordan",body:'The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click\nmenu has been added to view details of a specific NPC\'s loots. Thanks to\n@psikoi for this feature!
\n
\nHome and minigame teleports will now add a timer for their cooldowns.
\n
\nThe World Map plugin now displays tooltips for quest and minigame names, thanks to\n@johnhamilto and @MagicfTail .
\n \n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nThe Achievement Diary plugin has been fixed \nThe idle notifier now considers mouse clicks, not mouse movement, to determine when players are\nno longer idle for the Idle Notifier plugin \nFixed Fishing plugin inventory and equipment check \nThe Player-owned House plugin now displays the new Troll stronghold teleport portal \nThe farming tracker now tracks the Weiss herb patch \nThe bottom-right snap corner no longer moves when the collapsible chatbox is opened \nCutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin \nTime tracking tabs have been better ordered by priority \nThe vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\noverlay \nWizard\'s tower clue solutions now indicate the nearby fairy ring for convenience \nThe stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted \nWeiss and Troll stronghold basalt teleports and Kharedst\'s Memoirs teleports have been added to\nthe World Map plugin \nThe Ape Atoll Arceuus teleport location has been fixed in the World Map plugin \nDark crabs have been added to the Fishing plugin \nQuest screenshots now use a standardized naming format \nThe Chambers of Xeric party size overlay indicator is now hidden when raiding solo \nOgre bellows now display the number of charges they contain \nNPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion \nFixed 2005 interface swapper sprites for quest and spellbook icons \nThe clue scroll plugin now checks for sets across the user\'s inventory and equipped items \nUpon killing Grotesque Guardians, a timer is created showing the time until the instance closes \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (2):\n http-service: add caching for hiscore lookups\n http-api: use https for hiscore urls\n\nDamen (1):\n Add Grotesque Guardians instance close timer (#4338)\n\nJordan Atwood (8):\n interface styles plugin: Add more error handling\n Fix SpriteIDs from 2018/08/30 update\n clue scroll plugin: Check for sets across inventory and equipment\n timers plugin: Reset fields on shutdown\n Add home teleport animation and graphic definitions\n Add minigame teleport button widget info\n Add home teleport widget info\n timers plguin: Add teleport cooldown timers\n\nMack Bryan (3):\n Add ogre bellows to item charges plugin (#5323)\n Moved hot-cold dig location 3 tiles east into the correct range.\n Remove npc highlights on task completed message. (#5416)\n\nMagic fTail (3):\n Add Quest to quest screenshots\n WorldMapPlugin: Add tooltip to minigame icons\n Don\'t show party size in overlay when solo raiding\n\nMax Weber (7):\n diaryreqs: Update scrollbar with new length\n cache: name InterfaceDefinition fields\n cache: Disassemble CS1s\n runelite-api: Update widget field names\n cache: Store ID in ScriptLoader\n cache: add various world map related opcodes\n runelite-mixins: Add setter for varcint\n\nRon Young (1):\n Add missing widget types to WidgetType class (#5306)\n\nRuben Amendoeira (1):\n loot tracker: add view for grouping loot by npc/event\n\nSebastiaan Vanspauwen (6):\n Added Kurask Slayer Room Overlay\n Added Godwars Crossbow Shortcut\n Worldmap: Added Weiss and Troll Stronghold teleports\n Worldmap: Fixed Ape Atoll Arceuus Location\n Worldmap: Added Kharedst\'s Memoirs teleports\n Fishing: Added Dark Crab Overlay\n\nSpencer (1):\n Added fairy ring code to wizard tower clue solutions\n\nTomas Slusny (14):\n Make bottom-right snap corner not account for chatbox\n Fix fishing plugin inventory/equipment check\n Fix Achievment Diary widget ids\n Add Sacred Eeels cutting to idle notifier\n Make fishing overlays use hidden instead of manager\n Make cannon plugin use hidden instead of manager\n Make Kourend library use hidden field instead of manager\n Reorder time tracker tabs by priority\n Replace Tithe Farm overlay with layoutable widget\n Deprecate queries with already existing events\n Add mappings for mouse last pressed millis\n Use mouse/keyboard idle state properly in IdleNotifier\n Simulate ItemContainerChange events on plugin startup\n Remove unnecessary fishing spot configuration\n\ndavidyip50 (1):\n Add troll stronghold portal icon support to POH (#5404)\n\njohnhamilto (1):\n Add quest name tooltips to the world map (#5410)\n\noplosthee (1):\n Add Weiss herb patch to the farming tracker\n
\n',image:"/img/blog/1.4.17-Release/grouped-loot-tracker.gif"}}}]);
-//# sourceMappingURL=61.ae685cc5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[61],{337:function(e,n){e.exports={title:"1.4.17 Release",description:"Loot tracker grouping, home and minigame cooldown timers, minigame and quest world map icons, and various bug fixes and enhancements",author:"Jordan",body:'The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click\nmenu has been added to view details of a specific NPC\'s loots. Thanks to\n@psikoi for this feature!
\n
\nHome and minigame teleports will now add a timer for their cooldowns.
\n
\nThe World Map plugin now displays tooltips for quest and minigame names, thanks to\n@johnhamilto and @MagicfTail .
\n \n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nThe Achievement Diary plugin has been fixed \nThe idle notifier now considers mouse clicks, not mouse movement, to determine when players are\nno longer idle for the Idle Notifier plugin \nFixed Fishing plugin inventory and equipment check \nThe Player-owned House plugin now displays the new Troll stronghold teleport portal \nThe farming tracker now tracks the Weiss herb patch \nThe bottom-right snap corner no longer moves when the collapsible chatbox is opened \nCutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin \nTime tracking tabs have been better ordered by priority \nThe vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\noverlay \nWizard\'s tower clue solutions now indicate the nearby fairy ring for convenience \nThe stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted \nWeiss and Troll stronghold basalt teleports and Kharedst\'s Memoirs teleports have been added to\nthe World Map plugin \nThe Ape Atoll Arceuus teleport location has been fixed in the World Map plugin \nDark crabs have been added to the Fishing plugin \nQuest screenshots now use a standardized naming format \nThe Chambers of Xeric party size overlay indicator is now hidden when raiding solo \nOgre bellows now display the number of charges they contain \nNPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion \nFixed 2005 interface swapper sprites for quest and spellbook icons \nThe clue scroll plugin now checks for sets across the user\'s inventory and equipped items \nUpon killing Grotesque Guardians, a timer is created showing the time until the instance closes \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (2):\n http-service: add caching for hiscore lookups\n http-api: use https for hiscore urls\n\nDamen (1):\n Add Grotesque Guardians instance close timer (#4338)\n\nJordan Atwood (8):\n interface styles plugin: Add more error handling\n Fix SpriteIDs from 2018/08/30 update\n clue scroll plugin: Check for sets across inventory and equipment\n timers plugin: Reset fields on shutdown\n Add home teleport animation and graphic definitions\n Add minigame teleport button widget info\n Add home teleport widget info\n timers plguin: Add teleport cooldown timers\n\nMack Bryan (3):\n Add ogre bellows to item charges plugin (#5323)\n Moved hot-cold dig location 3 tiles east into the correct range.\n Remove npc highlights on task completed message. (#5416)\n\nMagic fTail (3):\n Add Quest to quest screenshots\n WorldMapPlugin: Add tooltip to minigame icons\n Don\'t show party size in overlay when solo raiding\n\nMax Weber (7):\n diaryreqs: Update scrollbar with new length\n cache: name InterfaceDefinition fields\n cache: Disassemble CS1s\n runelite-api: Update widget field names\n cache: Store ID in ScriptLoader\n cache: add various world map related opcodes\n runelite-mixins: Add setter for varcint\n\nRon Young (1):\n Add missing widget types to WidgetType class (#5306)\n\nRuben Amendoeira (1):\n loot tracker: add view for grouping loot by npc/event\n\nSebastiaan Vanspauwen (6):\n Added Kurask Slayer Room Overlay\n Added Godwars Crossbow Shortcut\n Worldmap: Added Weiss and Troll Stronghold teleports\n Worldmap: Fixed Ape Atoll Arceuus Location\n Worldmap: Added Kharedst\'s Memoirs teleports\n Fishing: Added Dark Crab Overlay\n\nSpencer (1):\n Added fairy ring code to wizard tower clue solutions\n\nTomas Slusny (14):\n Make bottom-right snap corner not account for chatbox\n Fix fishing plugin inventory/equipment check\n Fix Achievment Diary widget ids\n Add Sacred Eeels cutting to idle notifier\n Make fishing overlays use hidden instead of manager\n Make cannon plugin use hidden instead of manager\n Make Kourend library use hidden field instead of manager\n Reorder time tracker tabs by priority\n Replace Tithe Farm overlay with layoutable widget\n Deprecate queries with already existing events\n Add mappings for mouse last pressed millis\n Use mouse/keyboard idle state properly in IdleNotifier\n Simulate ItemContainerChange events on plugin startup\n Remove unnecessary fishing spot configuration\n\ndavidyip50 (1):\n Add troll stronghold portal icon support to POH (#5404)\n\njohnhamilto (1):\n Add quest name tooltips to the world map (#5410)\n\noplosthee (1):\n Add Weiss herb patch to the farming tracker\n
\n',image:"/img/blog/1.4.17-Release/grouped-loot-tracker.gif"}}}]);
+//# sourceMappingURL=61.4d383c4e.chunk.js.map
\ No newline at end of file
diff --git a/static/js/61.ae685cc5.chunk.js.map b/static/js/61.4d383c4e.chunk.js.map
similarity index 99%
rename from static/js/61.ae685cc5.chunk.js.map
rename to static/js/61.4d383c4e.chunk.js.map
index 96a02574d..bb6f17e03 100644
--- a/static/js/61.ae685cc5.chunk.js.map
+++ b/static/js/61.4d383c4e.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-09-13-10-00-1.4.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uIAAuI,OAAS,SAAS,KAAO,g2LAA43L,MAAQ","file":"static/js/61.ae685cc5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.17 Release\",\"description\":\"Loot tracker grouping, home and minigame cooldown timers, minigame and quest world map icons, and various bug fixes and enhancements\",\"author\":\"Jordan\",\"body\":\"The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click\\nmenu has been added to view details of a specific NPC's loots. Thanks to\\n@psikoi for this feature!
\\n
\\nHome and minigame teleports will now add a timer for their cooldowns.
\\n
\\nThe World Map plugin now displays tooltips for quest and minigame names, thanks to\\n@johnhamilto and @MagicfTail .
\\n \\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nThe Achievement Diary plugin has been fixed \\nThe idle notifier now considers mouse clicks, not mouse movement, to determine when players are\\nno longer idle for the Idle Notifier plugin \\nFixed Fishing plugin inventory and equipment check \\nThe Player-owned House plugin now displays the new Troll stronghold teleport portal \\nThe farming tracker now tracks the Weiss herb patch \\nThe bottom-right snap corner no longer moves when the collapsible chatbox is opened \\nCutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin \\nTime tracking tabs have been better ordered by priority \\nThe vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\\noverlay \\nWizard's tower clue solutions now indicate the nearby fairy ring for convenience \\nThe stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted \\nWeiss and Troll stronghold basalt teleports and Kharedst's Memoirs teleports have been added to\\nthe World Map plugin \\nThe Ape Atoll Arceuus teleport location has been fixed in the World Map plugin \\nDark crabs have been added to the Fishing plugin \\nQuest screenshots now use a standardized naming format \\nThe Chambers of Xeric party size overlay indicator is now hidden when raiding solo \\nOgre bellows now display the number of charges they contain \\nNPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion \\nFixed 2005 interface swapper sprites for quest and spellbook icons \\nThe clue scroll plugin now checks for sets across the user's inventory and equipped items \\nUpon killing Grotesque Guardians, a timer is created showing the time until the instance closes \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (2):\\n http-service: add caching for hiscore lookups\\n http-api: use https for hiscore urls\\n\\nDamen (1):\\n Add Grotesque Guardians instance close timer (#4338)\\n\\nJordan Atwood (8):\\n interface styles plugin: Add more error handling\\n Fix SpriteIDs from 2018/08/30 update\\n clue scroll plugin: Check for sets across inventory and equipment\\n timers plugin: Reset fields on shutdown\\n Add home teleport animation and graphic definitions\\n Add minigame teleport button widget info\\n Add home teleport widget info\\n timers plguin: Add teleport cooldown timers\\n\\nMack Bryan (3):\\n Add ogre bellows to item charges plugin (#5323)\\n Moved hot-cold dig location 3 tiles east into the correct range.\\n Remove npc highlights on task completed message. (#5416)\\n\\nMagic fTail (3):\\n Add Quest to quest screenshots\\n WorldMapPlugin: Add tooltip to minigame icons\\n Don't show party size in overlay when solo raiding\\n\\nMax Weber (7):\\n diaryreqs: Update scrollbar with new length\\n cache: name InterfaceDefinition fields\\n cache: Disassemble CS1s\\n runelite-api: Update widget field names\\n cache: Store ID in ScriptLoader\\n cache: add various world map related opcodes\\n runelite-mixins: Add setter for varcint\\n\\nRon Young (1):\\n Add missing widget types to WidgetType class (#5306)\\n\\nRuben Amendoeira (1):\\n loot tracker: add view for grouping loot by npc/event\\n\\nSebastiaan Vanspauwen (6):\\n Added Kurask Slayer Room Overlay\\n Added Godwars Crossbow Shortcut\\n Worldmap: Added Weiss and Troll Stronghold teleports\\n Worldmap: Fixed Ape Atoll Arceuus Location\\n Worldmap: Added Kharedst's Memoirs teleports\\n Fishing: Added Dark Crab Overlay\\n\\nSpencer (1):\\n Added fairy ring code to wizard tower clue solutions\\n\\nTomas Slusny (14):\\n Make bottom-right snap corner not account for chatbox\\n Fix fishing plugin inventory/equipment check\\n Fix Achievment Diary widget ids\\n Add Sacred Eeels cutting to idle notifier\\n Make fishing overlays use hidden instead of manager\\n Make cannon plugin use hidden instead of manager\\n Make Kourend library use hidden field instead of manager\\n Reorder time tracker tabs by priority\\n Replace Tithe Farm overlay with layoutable widget\\n Deprecate queries with already existing events\\n Add mappings for mouse last pressed millis\\n Use mouse/keyboard idle state properly in IdleNotifier\\n Simulate ItemContainerChange events on plugin startup\\n Remove unnecessary fishing spot configuration\\n\\ndavidyip50 (1):\\n Add troll stronghold portal icon support to POH (#5404)\\n\\njohnhamilto (1):\\n Add quest name tooltips to the world map (#5410)\\n\\noplosthee (1):\\n Add Weiss herb patch to the farming tracker\\n
\\n\",\"image\":\"/img/blog/1.4.17-Release/grouped-loot-tracker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-09-13-10-00-1.4.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uIAAuI,OAAS,SAAS,KAAO,g2LAA43L,MAAQ","file":"static/js/61.4d383c4e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.17 Release\",\"description\":\"Loot tracker grouping, home and minigame cooldown timers, minigame and quest world map icons, and various bug fixes and enhancements\",\"author\":\"Jordan\",\"body\":\"The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click\\nmenu has been added to view details of a specific NPC's loots. Thanks to\\n@psikoi for this feature!
\\n
\\nHome and minigame teleports will now add a timer for their cooldowns.
\\n
\\nThe World Map plugin now displays tooltips for quest and minigame names, thanks to\\n@johnhamilto and @MagicfTail .
\\n \\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nThe Achievement Diary plugin has been fixed \\nThe idle notifier now considers mouse clicks, not mouse movement, to determine when players are\\nno longer idle for the Idle Notifier plugin \\nFixed Fishing plugin inventory and equipment check \\nThe Player-owned House plugin now displays the new Troll stronghold teleport portal \\nThe farming tracker now tracks the Weiss herb patch \\nThe bottom-right snap corner no longer moves when the collapsible chatbox is opened \\nCutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin \\nTime tracking tabs have been better ordered by priority \\nThe vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\\noverlay \\nWizard's tower clue solutions now indicate the nearby fairy ring for convenience \\nThe stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted \\nWeiss and Troll stronghold basalt teleports and Kharedst's Memoirs teleports have been added to\\nthe World Map plugin \\nThe Ape Atoll Arceuus teleport location has been fixed in the World Map plugin \\nDark crabs have been added to the Fishing plugin \\nQuest screenshots now use a standardized naming format \\nThe Chambers of Xeric party size overlay indicator is now hidden when raiding solo \\nOgre bellows now display the number of charges they contain \\nNPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion \\nFixed 2005 interface swapper sprites for quest and spellbook icons \\nThe clue scroll plugin now checks for sets across the user's inventory and equipped items \\nUpon killing Grotesque Guardians, a timer is created showing the time until the instance closes \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (2):\\n http-service: add caching for hiscore lookups\\n http-api: use https for hiscore urls\\n\\nDamen (1):\\n Add Grotesque Guardians instance close timer (#4338)\\n\\nJordan Atwood (8):\\n interface styles plugin: Add more error handling\\n Fix SpriteIDs from 2018/08/30 update\\n clue scroll plugin: Check for sets across inventory and equipment\\n timers plugin: Reset fields on shutdown\\n Add home teleport animation and graphic definitions\\n Add minigame teleport button widget info\\n Add home teleport widget info\\n timers plguin: Add teleport cooldown timers\\n\\nMack Bryan (3):\\n Add ogre bellows to item charges plugin (#5323)\\n Moved hot-cold dig location 3 tiles east into the correct range.\\n Remove npc highlights on task completed message. (#5416)\\n\\nMagic fTail (3):\\n Add Quest to quest screenshots\\n WorldMapPlugin: Add tooltip to minigame icons\\n Don't show party size in overlay when solo raiding\\n\\nMax Weber (7):\\n diaryreqs: Update scrollbar with new length\\n cache: name InterfaceDefinition fields\\n cache: Disassemble CS1s\\n runelite-api: Update widget field names\\n cache: Store ID in ScriptLoader\\n cache: add various world map related opcodes\\n runelite-mixins: Add setter for varcint\\n\\nRon Young (1):\\n Add missing widget types to WidgetType class (#5306)\\n\\nRuben Amendoeira (1):\\n loot tracker: add view for grouping loot by npc/event\\n\\nSebastiaan Vanspauwen (6):\\n Added Kurask Slayer Room Overlay\\n Added Godwars Crossbow Shortcut\\n Worldmap: Added Weiss and Troll Stronghold teleports\\n Worldmap: Fixed Ape Atoll Arceuus Location\\n Worldmap: Added Kharedst's Memoirs teleports\\n Fishing: Added Dark Crab Overlay\\n\\nSpencer (1):\\n Added fairy ring code to wizard tower clue solutions\\n\\nTomas Slusny (14):\\n Make bottom-right snap corner not account for chatbox\\n Fix fishing plugin inventory/equipment check\\n Fix Achievment Diary widget ids\\n Add Sacred Eeels cutting to idle notifier\\n Make fishing overlays use hidden instead of manager\\n Make cannon plugin use hidden instead of manager\\n Make Kourend library use hidden field instead of manager\\n Reorder time tracker tabs by priority\\n Replace Tithe Farm overlay with layoutable widget\\n Deprecate queries with already existing events\\n Add mappings for mouse last pressed millis\\n Use mouse/keyboard idle state properly in IdleNotifier\\n Simulate ItemContainerChange events on plugin startup\\n Remove unnecessary fishing spot configuration\\n\\ndavidyip50 (1):\\n Add troll stronghold portal icon support to POH (#5404)\\n\\njohnhamilto (1):\\n Add quest name tooltips to the world map (#5410)\\n\\noplosthee (1):\\n Add Weiss herb patch to the farming tracker\\n
\\n\",\"image\":\"/img/blog/1.4.17-Release/grouped-loot-tracker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/62.9b82dd78.chunk.js b/static/js/62.91c466a6.chunk.js
similarity index 80%
rename from static/js/62.9b82dd78.chunk.js
rename to static/js/62.91c466a6.chunk.js
index f9c1b4b28..0732d2e75 100644
--- a/static/js/62.9b82dd78.chunk.js
+++ b/static/js/62.91c466a6.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[62],{337:function(e,t){e.exports={title:"World Hopper plugin disabled",description:"World Hopper plugin disabled",author:"Adam",body:"Jagex has requested we remove the world hopper plugin because it is getting\nflagged by their bot detection. It has been removed until we can sort out how to\nfix it with them. I do not know why our world hopper is being flagged and the\nworld hopper on other clients is not.
\n- Adam
\n"}}}]);
-//# sourceMappingURL=62.9b82dd78.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[62],{338:function(e,t){e.exports={title:"World Hopper plugin disabled",description:"World Hopper plugin disabled",author:"Adam",body:"Jagex has requested we remove the world hopper plugin because it is getting\nflagged by their bot detection. It has been removed until we can sort out how to\nfix it with them. I do not know why our world hopper is being flagged and the\nworld hopper on other clients is not.
\n- Adam
\n"}}}]);
+//# sourceMappingURL=62.91c466a6.chunk.js.map
\ No newline at end of file
diff --git a/static/js/62.9b82dd78.chunk.js.map b/static/js/62.91c466a6.chunk.js.map
similarity index 90%
rename from static/js/62.9b82dd78.chunk.js.map
rename to static/js/62.91c466a6.chunk.js.map
index 772b5a6bc..9a19e3edc 100644
--- a/static/js/62.9b82dd78.chunk.js.map
+++ b/static/js/62.91c466a6.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-09-18-21-00-Worldhopper-disabled.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,+BAA+B,YAAc,+BAA+B,OAAS,OAAO,KAAO","file":"static/js/62.9b82dd78.chunk.js","sourcesContent":["module.exports = {\"title\":\"World Hopper plugin disabled\",\"description\":\"World Hopper plugin disabled\",\"author\":\"Adam\",\"body\":\"Jagex has requested we remove the world hopper plugin because it is getting\\nflagged by their bot detection. It has been removed until we can sort out how to\\nfix it with them. I do not know why our world hopper is being flagged and the\\nworld hopper on other clients is not.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-09-18-21-00-Worldhopper-disabled.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,+BAA+B,YAAc,+BAA+B,OAAS,OAAO,KAAO","file":"static/js/62.91c466a6.chunk.js","sourcesContent":["module.exports = {\"title\":\"World Hopper plugin disabled\",\"description\":\"World Hopper plugin disabled\",\"author\":\"Adam\",\"body\":\"Jagex has requested we remove the world hopper plugin because it is getting\\nflagged by their bot detection. It has been removed until we can sort out how to\\nfix it with them. I do not know why our world hopper is being flagged and the\\nworld hopper on other clients is not.
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/63.6e5bc83b.chunk.js b/static/js/63.4fbd2eed.chunk.js
similarity index 97%
rename from static/js/63.6e5bc83b.chunk.js
rename to static/js/63.4fbd2eed.chunk.js
index 7c7c880dd..8bde3ba03 100644
--- a/static/js/63.6e5bc83b.chunk.js
+++ b/static/js/63.4fbd2eed.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[63],{338:function(e,n){e.exports={title:"1.4.18 Release",description:"Wintertodt plugin and virtual levels plugin",author:"Adam",body:'A Wintertodt plugin was added which shows your current activity and can be\nconfigured to notify you when you become idle. It also tracks points in your\ninventory from logs or kindling and displays it. Thanks to work from\n@jbfleischman for initially getting this\nstarted.
\n \n
\nA virtual levels plugin was added which shows virtual levels and virtual skill\ntotal on the skills tab. It is off by default. Thanks to @Joshua\nFilby and\n@Nightfirecat for their work on this.
\n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nAdd Fairy Ring AIQ to Mudskipper Point Clue \nColorize "Lookup" player menu entry if applicable \nFix Dwarf Cannon quest start location on the world map \nAdd notification for low fishing trawler activity \nAdd sand to Daily Notifications plugin \nAdd daily runes to Daily Notifications plugin \n \nRegarding the world hopper being\ndisabled , we\nhave fairly thoroughly reviewed other hopping implementations and can not find\nanything with the World Hopper action forcing that would differentiable on\nJagex\'s side. Based on the\nplugin history \nthe newest addition is the Hop-To chat option from pull\n#5125 which went into RuneLite\nrelease 1.4.15 on Aug 30. Because other clients do not have this feature, this\nis my first guess as to what the problem is.
\nI have asked Jagex to review if there were any issues with the world hopper\nprior to Aug 30. If not, we should be able to remove the chatbox Hop-to feature and\nreenable the plugin.
\nEnjoy!
\n- Adam
\nNew commits \nAdam (3):\n world hopper: disable world hopper plugin\n Add Wintertodt Plugin\n runelite-api: add queueChangedSkill for queueing a skill change event\n\nGary (1):\n Add Fairy Ring AIQ to Mudskipper Point Clue\n\nJordan Atwood (8):\n hiscore plugin: Colorize "Lookup" player menu entry\n Add world map surface selector and overview map widgets\n world map overlay: Render on ABOVE_WIDGETS layer\n world map overlay: Clip around widgets above map\n Centralize item (de)spawn log messages\n opponent info plugin: Fix possible onGameTick NPE\n clue scroll overlay: Show visible emote widget area\n Add Virtual Levels plugin\n\nLotto (1):\n entityhider: make hidden entities not occupy the tile they\'re on\n\nMax Weber (5):\n runescape-api: Update setWorldMapPositionTarget\'s name\n Worldmap: Fix Dwarf Cannon start location\n idlenotifier: Correctly warn about AFK kicking\n banktags: Don\'t use cs2 to add menu options\n Revert "Add camera setters to Client.java and RSClient.java."\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nSebastiaan Vanspauwen (2):\n MTA: Fixed alchemy\n BA plugin: widget overlay fix\n\nShaun Dreclin (1):\n Refactor daily task indicator plugin\n\nShaunDreclin (2):\n Add notification for low fishing trawler activity\n Add sand to daily task indicator\n\nTomas Slusny (5):\n Make HiscoreClient call the OSRS hiscore API directly\n Fix WorldMapPlugin\n Add option for displaying only last fished fish\n Add fishing spot display configuration\n Return null instead of IllegalArgumentException from hiscore\n\nastaninger (1):\n Add daily runes to Daily Notifications plugin (#5219)\n\nrbbi (1):\n Change skill calc checkboxes to radio buttons (#4373)\n
\n',image:"/img/blog/1.4.18-Release/wintertodt1.png"}}}]);
-//# sourceMappingURL=63.6e5bc83b.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[63],{339:function(e,n){e.exports={title:"1.4.18 Release",description:"Wintertodt plugin and virtual levels plugin",author:"Adam",body:'A Wintertodt plugin was added which shows your current activity and can be\nconfigured to notify you when you become idle. It also tracks points in your\ninventory from logs or kindling and displays it. Thanks to work from\n@jbfleischman for initially getting this\nstarted.
\n \n
\nA virtual levels plugin was added which shows virtual levels and virtual skill\ntotal on the skills tab. It is off by default. Thanks to @Joshua\nFilby and\n@Nightfirecat for their work on this.
\n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nAdd Fairy Ring AIQ to Mudskipper Point Clue \nColorize "Lookup" player menu entry if applicable \nFix Dwarf Cannon quest start location on the world map \nAdd notification for low fishing trawler activity \nAdd sand to Daily Notifications plugin \nAdd daily runes to Daily Notifications plugin \n \nRegarding the world hopper being\ndisabled , we\nhave fairly thoroughly reviewed other hopping implementations and can not find\nanything with the World Hopper action forcing that would differentiable on\nJagex\'s side. Based on the\nplugin history \nthe newest addition is the Hop-To chat option from pull\n#5125 which went into RuneLite\nrelease 1.4.15 on Aug 30. Because other clients do not have this feature, this\nis my first guess as to what the problem is.
\nI have asked Jagex to review if there were any issues with the world hopper\nprior to Aug 30. If not, we should be able to remove the chatbox Hop-to feature and\nreenable the plugin.
\nEnjoy!
\n- Adam
\nNew commits \nAdam (3):\n world hopper: disable world hopper plugin\n Add Wintertodt Plugin\n runelite-api: add queueChangedSkill for queueing a skill change event\n\nGary (1):\n Add Fairy Ring AIQ to Mudskipper Point Clue\n\nJordan Atwood (8):\n hiscore plugin: Colorize "Lookup" player menu entry\n Add world map surface selector and overview map widgets\n world map overlay: Render on ABOVE_WIDGETS layer\n world map overlay: Clip around widgets above map\n Centralize item (de)spawn log messages\n opponent info plugin: Fix possible onGameTick NPE\n clue scroll overlay: Show visible emote widget area\n Add Virtual Levels plugin\n\nLotto (1):\n entityhider: make hidden entities not occupy the tile they\'re on\n\nMax Weber (5):\n runescape-api: Update setWorldMapPositionTarget\'s name\n Worldmap: Fix Dwarf Cannon start location\n idlenotifier: Correctly warn about AFK kicking\n banktags: Don\'t use cs2 to add menu options\n Revert "Add camera setters to Client.java and RSClient.java."\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nSebastiaan Vanspauwen (2):\n MTA: Fixed alchemy\n BA plugin: widget overlay fix\n\nShaun Dreclin (1):\n Refactor daily task indicator plugin\n\nShaunDreclin (2):\n Add notification for low fishing trawler activity\n Add sand to daily task indicator\n\nTomas Slusny (5):\n Make HiscoreClient call the OSRS hiscore API directly\n Fix WorldMapPlugin\n Add option for displaying only last fished fish\n Add fishing spot display configuration\n Return null instead of IllegalArgumentException from hiscore\n\nastaninger (1):\n Add daily runes to Daily Notifications plugin (#5219)\n\nrbbi (1):\n Change skill calc checkboxes to radio buttons (#4373)\n
\n',image:"/img/blog/1.4.18-Release/wintertodt1.png"}}}]);
+//# sourceMappingURL=63.4fbd2eed.chunk.js.map
\ No newline at end of file
diff --git a/static/js/63.6e5bc83b.chunk.js.map b/static/js/63.4fbd2eed.chunk.js.map
similarity index 98%
rename from static/js/63.6e5bc83b.chunk.js.map
rename to static/js/63.4fbd2eed.chunk.js.map
index 62622f207..04bfc238a 100644
--- a/static/js/63.6e5bc83b.chunk.js.map
+++ b/static/js/63.4fbd2eed.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-09-20-10-00-1.4.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8CAA8C,OAAS,OAAO,KAAO,syIAAk1I,MAAQ","file":"static/js/63.6e5bc83b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.18 Release\",\"description\":\"Wintertodt plugin and virtual levels plugin\",\"author\":\"Adam\",\"body\":\"A Wintertodt plugin was added which shows your current activity and can be\\nconfigured to notify you when you become idle. It also tracks points in your\\ninventory from logs or kindling and displays it. Thanks to work from\\n@jbfleischman for initially getting this\\nstarted.
\\n \\n
\\nA virtual levels plugin was added which shows virtual levels and virtual skill\\ntotal on the skills tab. It is off by default. Thanks to @Joshua\\nFilby and\\n@Nightfirecat for their work on this.
\\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nAdd Fairy Ring AIQ to Mudskipper Point Clue \\nColorize "Lookup" player menu entry if applicable \\nFix Dwarf Cannon quest start location on the world map \\nAdd notification for low fishing trawler activity \\nAdd sand to Daily Notifications plugin \\nAdd daily runes to Daily Notifications plugin \\n \\nRegarding the world hopper being\\ndisabled , we\\nhave fairly thoroughly reviewed other hopping implementations and can not find\\nanything with the World Hopper action forcing that would differentiable on\\nJagex's side. Based on the\\nplugin history \\nthe newest addition is the Hop-To chat option from pull\\n#5125 which went into RuneLite\\nrelease 1.4.15 on Aug 30. Because other clients do not have this feature, this\\nis my first guess as to what the problem is.
\\nI have asked Jagex to review if there were any issues with the world hopper\\nprior to Aug 30. If not, we should be able to remove the chatbox Hop-to feature and\\nreenable the plugin.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (3):\\n world hopper: disable world hopper plugin\\n Add Wintertodt Plugin\\n runelite-api: add queueChangedSkill for queueing a skill change event\\n\\nGary (1):\\n Add Fairy Ring AIQ to Mudskipper Point Clue\\n\\nJordan Atwood (8):\\n hiscore plugin: Colorize "Lookup" player menu entry\\n Add world map surface selector and overview map widgets\\n world map overlay: Render on ABOVE_WIDGETS layer\\n world map overlay: Clip around widgets above map\\n Centralize item (de)spawn log messages\\n opponent info plugin: Fix possible onGameTick NPE\\n clue scroll overlay: Show visible emote widget area\\n Add Virtual Levels plugin\\n\\nLotto (1):\\n entityhider: make hidden entities not occupy the tile they're on\\n\\nMax Weber (5):\\n runescape-api: Update setWorldMapPositionTarget's name\\n Worldmap: Fix Dwarf Cannon start location\\n idlenotifier: Correctly warn about AFK kicking\\n banktags: Don't use cs2 to add menu options\\n Revert "Add camera setters to Client.java and RSClient.java."\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nSebastiaan Vanspauwen (2):\\n MTA: Fixed alchemy\\n BA plugin: widget overlay fix\\n\\nShaun Dreclin (1):\\n Refactor daily task indicator plugin\\n\\nShaunDreclin (2):\\n Add notification for low fishing trawler activity\\n Add sand to daily task indicator\\n\\nTomas Slusny (5):\\n Make HiscoreClient call the OSRS hiscore API directly\\n Fix WorldMapPlugin\\n Add option for displaying only last fished fish\\n Add fishing spot display configuration\\n Return null instead of IllegalArgumentException from hiscore\\n\\nastaninger (1):\\n Add daily runes to Daily Notifications plugin (#5219)\\n\\nrbbi (1):\\n Change skill calc checkboxes to radio buttons (#4373)\\n
\\n\",\"image\":\"/img/blog/1.4.18-Release/wintertodt1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-09-20-10-00-1.4.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,8CAA8C,OAAS,OAAO,KAAO,syIAAk1I,MAAQ","file":"static/js/63.4fbd2eed.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.18 Release\",\"description\":\"Wintertodt plugin and virtual levels plugin\",\"author\":\"Adam\",\"body\":\"A Wintertodt plugin was added which shows your current activity and can be\\nconfigured to notify you when you become idle. It also tracks points in your\\ninventory from logs or kindling and displays it. Thanks to work from\\n@jbfleischman for initially getting this\\nstarted.
\\n \\n
\\nA virtual levels plugin was added which shows virtual levels and virtual skill\\ntotal on the skills tab. It is off by default. Thanks to @Joshua\\nFilby and\\n@Nightfirecat for their work on this.
\\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nAdd Fairy Ring AIQ to Mudskipper Point Clue \\nColorize "Lookup" player menu entry if applicable \\nFix Dwarf Cannon quest start location on the world map \\nAdd notification for low fishing trawler activity \\nAdd sand to Daily Notifications plugin \\nAdd daily runes to Daily Notifications plugin \\n \\nRegarding the world hopper being\\ndisabled , we\\nhave fairly thoroughly reviewed other hopping implementations and can not find\\nanything with the World Hopper action forcing that would differentiable on\\nJagex's side. Based on the\\nplugin history \\nthe newest addition is the Hop-To chat option from pull\\n#5125 which went into RuneLite\\nrelease 1.4.15 on Aug 30. Because other clients do not have this feature, this\\nis my first guess as to what the problem is.
\\nI have asked Jagex to review if there were any issues with the world hopper\\nprior to Aug 30. If not, we should be able to remove the chatbox Hop-to feature and\\nreenable the plugin.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (3):\\n world hopper: disable world hopper plugin\\n Add Wintertodt Plugin\\n runelite-api: add queueChangedSkill for queueing a skill change event\\n\\nGary (1):\\n Add Fairy Ring AIQ to Mudskipper Point Clue\\n\\nJordan Atwood (8):\\n hiscore plugin: Colorize "Lookup" player menu entry\\n Add world map surface selector and overview map widgets\\n world map overlay: Render on ABOVE_WIDGETS layer\\n world map overlay: Clip around widgets above map\\n Centralize item (de)spawn log messages\\n opponent info plugin: Fix possible onGameTick NPE\\n clue scroll overlay: Show visible emote widget area\\n Add Virtual Levels plugin\\n\\nLotto (1):\\n entityhider: make hidden entities not occupy the tile they're on\\n\\nMax Weber (5):\\n runescape-api: Update setWorldMapPositionTarget's name\\n Worldmap: Fix Dwarf Cannon start location\\n idlenotifier: Correctly warn about AFK kicking\\n banktags: Don't use cs2 to add menu options\\n Revert "Add camera setters to Client.java and RSClient.java."\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nSebastiaan Vanspauwen (2):\\n MTA: Fixed alchemy\\n BA plugin: widget overlay fix\\n\\nShaun Dreclin (1):\\n Refactor daily task indicator plugin\\n\\nShaunDreclin (2):\\n Add notification for low fishing trawler activity\\n Add sand to daily task indicator\\n\\nTomas Slusny (5):\\n Make HiscoreClient call the OSRS hiscore API directly\\n Fix WorldMapPlugin\\n Add option for displaying only last fished fish\\n Add fishing spot display configuration\\n Return null instead of IllegalArgumentException from hiscore\\n\\nastaninger (1):\\n Add daily runes to Daily Notifications plugin (#5219)\\n\\nrbbi (1):\\n Change skill calc checkboxes to radio buttons (#4373)\\n
\\n\",\"image\":\"/img/blog/1.4.18-Release/wintertodt1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/64.f9c89aea.chunk.js b/static/js/64.26a47f7c.chunk.js
similarity index 98%
rename from static/js/64.f9c89aea.chunk.js
rename to static/js/64.26a47f7c.chunk.js
index dba7adb16..0cd82e37a 100644
--- a/static/js/64.f9c89aea.chunk.js
+++ b/static/js/64.26a47f7c.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[64],{339:function(n,e){n.exports={title:"1.4.19 Release",description:"Grand Exchange buy limits, Barbarian Assault game/wave duration timers",author:"Tomas",body:'Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x
\nin GE window for items with known buy limits. Thanks to @Asymons for this contribution.
\n
\nA timer for Barbarian Assault waves and full game was added to the Barbarian Assault plugin that will\nannounce the times in your chat thanks to @Jacoblairm .
\n \n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nDuplicated display of actively traded price in GE interface has been fixed \nTeleblock timers are now removed when entering safe zone/leaving wilderness \nSearch bar was added to the skill calculator plugin \nLittle boulder in Weiss was added to the agility plugin obstacle highlighting \nNotes plugin now supports undo and redo (with ctrl-z and ctrl-u) \nInstance map now has a close button in top-right corner \nNPC indicators now has support for highlighting the south-west tile for large NPCs \nIdle notifier now also supports idle notifications for low oxygen on Fossil Island \nCharged versions of the new wilderness weapons will now display their prices correctly \nWorld map clipping in fixed mode has been fixed \nMultiple world points for hot/cold clues has been centered and should not show the wrong destination anymore \nThe opponent info plugin now has a configuration option to always show opponent health in percent \nThe Discord plugin now has a configuration option to hide the "time elapsed" \nYou can now configure the prayer flick helper to show even when prayers are off \nFix loot tracker not grouping Barrows loots \n \nIn regards to the world hopper being disabled :\nAfter speaking with Jagex and other client developers, we think the chat message hop-to option is what is causing the issues. Jagex is allowing us to readd the world hopper without this feature in this release, and will let us know if it causes any further problems.
\nEnjoy!
\n- Tomas
\nNew commits \nWe had 24 contributors this release!
\nAdam (2):\n opponent info: add config opt to show health as percent\n xp tracker: limit to one update per 5 minutes\n\nAlessio (1):\n Add GE limits to Grand Exchange Plugin Search\n\nArthurTsvettsih (1):\n Add Undo Redo support for the Note plugin (#5606)\n\nBen Moyer (1):\n Reduce tab size in notes panel to 2 (#5599)\n\nJacob McElroy (2):\n Add barbarian assault game duration timer (#4590)\n Fix Fremennik Hot/Cold clue scroll dig location.\n\nJordan Atwood (6):\n Add IN_WILDERNESS Varbit\n Add PVP and Deadman widget info\n worldtype: Add PVP_WORLD_TYPES and isPvpWorld\n timers plugin: Reset Teleblock on entering safe zone\n slayer plugin: Add parsing for boss task assignments\n slayer plugin: Use boss pets as slayer icons\n\nJustin Barnyak (1):\n Change Prayerbar Color Scheme to be Colorblind Friendly\n\nMSAskew (1):\n Updated co-ordinates to match location suggested by user and cross-referenced with osrs wiki to confirm as there were two possibilities.\n\nMax Weber (1):\n devtools: Add Interacting arrow devtool\n\nMichael Goodwin (1):\n Fix HotColdLocation WorldPoint\n\nMike (1):\n Add option to disable time elapsed on discord activity (#5590)\n\nRobin Withes Linux (1):\n Lady of the lake clue scroll rename\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nShaun Dreclin (1):\n Add option to always show prayer flick helper\n\nTomas Slusny (4):\n Simplify checkbox checks in skill calc\n Fix GE OSB actively traded price races\n Cleanup skill calculator\n Move IconTextField common icons to IconTextField.Icon class\n\nUnknown (1):\n instancemap: add \'X\' button on the interface to close map\n\ndavidyip50 (1):\n Correct location of Kharazi Jungle Hot/Cold clue (#5610)\n\njohnhamilto (1):\n Add south-western tile indicator to NPC indicators (#5551)\n\nltvill (2):\n Hot/Cold clue West of Brimhaven location fix\n Hot/Cold clue near Fishing tutor location fix\n\npsikoi (1):\n Fix loot tracker box subtitle\n\nrbbi (1):\n Add searchbar suppor to Skill Calculator\n\nrobinwithes (2):\n Add little boulder from weiss into agility obstacles (#5636)\n Add oxygen alert to idle notifier (#5630)\n\nrune3132 (1):\n Add wilderness weapons item mappings\n\nsteffenhauge (1):\n Add Justiciar armor set prayer bonuses to the prayer plugin (#5651)\n\ntrimbe (1):\n Fix clipping in fixed mode for edge snapping map points\n
\n',image:"/img/blog/1.4.19-Release/buylimits.png"}}}]);
-//# sourceMappingURL=64.f9c89aea.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[64],{340:function(n,e){n.exports={title:"1.4.19 Release",description:"Grand Exchange buy limits, Barbarian Assault game/wave duration timers",author:"Tomas",body:'Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x
\nin GE window for items with known buy limits. Thanks to @Asymons for this contribution.
\n
\nA timer for Barbarian Assault waves and full game was added to the Barbarian Assault plugin that will\nannounce the times in your chat thanks to @Jacoblairm .
\n \n
\nThere are also numerous smaller improvements and bug fixes, including:
\n\nDuplicated display of actively traded price in GE interface has been fixed \nTeleblock timers are now removed when entering safe zone/leaving wilderness \nSearch bar was added to the skill calculator plugin \nLittle boulder in Weiss was added to the agility plugin obstacle highlighting \nNotes plugin now supports undo and redo (with ctrl-z and ctrl-u) \nInstance map now has a close button in top-right corner \nNPC indicators now has support for highlighting the south-west tile for large NPCs \nIdle notifier now also supports idle notifications for low oxygen on Fossil Island \nCharged versions of the new wilderness weapons will now display their prices correctly \nWorld map clipping in fixed mode has been fixed \nMultiple world points for hot/cold clues has been centered and should not show the wrong destination anymore \nThe opponent info plugin now has a configuration option to always show opponent health in percent \nThe Discord plugin now has a configuration option to hide the "time elapsed" \nYou can now configure the prayer flick helper to show even when prayers are off \nFix loot tracker not grouping Barrows loots \n \nIn regards to the world hopper being disabled :\nAfter speaking with Jagex and other client developers, we think the chat message hop-to option is what is causing the issues. Jagex is allowing us to readd the world hopper without this feature in this release, and will let us know if it causes any further problems.
\nEnjoy!
\n- Tomas
\nNew commits \nWe had 24 contributors this release!
\nAdam (2):\n opponent info: add config opt to show health as percent\n xp tracker: limit to one update per 5 minutes\n\nAlessio (1):\n Add GE limits to Grand Exchange Plugin Search\n\nArthurTsvettsih (1):\n Add Undo Redo support for the Note plugin (#5606)\n\nBen Moyer (1):\n Reduce tab size in notes panel to 2 (#5599)\n\nJacob McElroy (2):\n Add barbarian assault game duration timer (#4590)\n Fix Fremennik Hot/Cold clue scroll dig location.\n\nJordan Atwood (6):\n Add IN_WILDERNESS Varbit\n Add PVP and Deadman widget info\n worldtype: Add PVP_WORLD_TYPES and isPvpWorld\n timers plugin: Reset Teleblock on entering safe zone\n slayer plugin: Add parsing for boss task assignments\n slayer plugin: Use boss pets as slayer icons\n\nJustin Barnyak (1):\n Change Prayerbar Color Scheme to be Colorblind Friendly\n\nMSAskew (1):\n Updated co-ordinates to match location suggested by user and cross-referenced with osrs wiki to confirm as there were two possibilities.\n\nMax Weber (1):\n devtools: Add Interacting arrow devtool\n\nMichael Goodwin (1):\n Fix HotColdLocation WorldPoint\n\nMike (1):\n Add option to disable time elapsed on discord activity (#5590)\n\nRobin Withes Linux (1):\n Lady of the lake clue scroll rename\n\nRunelite auto updater (1):\n [maven-release-plugin] prepare for next development iteration\n\nShaun Dreclin (1):\n Add option to always show prayer flick helper\n\nTomas Slusny (4):\n Simplify checkbox checks in skill calc\n Fix GE OSB actively traded price races\n Cleanup skill calculator\n Move IconTextField common icons to IconTextField.Icon class\n\nUnknown (1):\n instancemap: add \'X\' button on the interface to close map\n\ndavidyip50 (1):\n Correct location of Kharazi Jungle Hot/Cold clue (#5610)\n\njohnhamilto (1):\n Add south-western tile indicator to NPC indicators (#5551)\n\nltvill (2):\n Hot/Cold clue West of Brimhaven location fix\n Hot/Cold clue near Fishing tutor location fix\n\npsikoi (1):\n Fix loot tracker box subtitle\n\nrbbi (1):\n Add searchbar suppor to Skill Calculator\n\nrobinwithes (2):\n Add little boulder from weiss into agility obstacles (#5636)\n Add oxygen alert to idle notifier (#5630)\n\nrune3132 (1):\n Add wilderness weapons item mappings\n\nsteffenhauge (1):\n Add Justiciar armor set prayer bonuses to the prayer plugin (#5651)\n\ntrimbe (1):\n Fix clipping in fixed mode for edge snapping map points\n
\n',image:"/img/blog/1.4.19-Release/buylimits.png"}}}]);
+//# sourceMappingURL=64.26a47f7c.chunk.js.map
\ No newline at end of file
diff --git a/static/js/64.f9c89aea.chunk.js.map b/static/js/64.26a47f7c.chunk.js.map
similarity index 98%
rename from static/js/64.f9c89aea.chunk.js.map
rename to static/js/64.26a47f7c.chunk.js.map
index 423e26c0a..4da6713c8 100644
--- a/static/js/64.f9c89aea.chunk.js.map
+++ b/static/js/64.26a47f7c.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-09-27-10-00-1.4.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yEAAyE,OAAS,QAAQ,KAAO,8kKAA0mK,MAAQ","file":"static/js/64.f9c89aea.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.19 Release\",\"description\":\"Grand Exchange buy limits, Barbarian Assault game/wave duration timers\",\"author\":\"Tomas\",\"body\":\"Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x
\\nin GE window for items with known buy limits. Thanks to @Asymons for this contribution.
\\n
\\nA timer for Barbarian Assault waves and full game was added to the Barbarian Assault plugin that will\\nannounce the times in your chat thanks to @Jacoblairm .
\\n \\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nDuplicated display of actively traded price in GE interface has been fixed \\nTeleblock timers are now removed when entering safe zone/leaving wilderness \\nSearch bar was added to the skill calculator plugin \\nLittle boulder in Weiss was added to the agility plugin obstacle highlighting \\nNotes plugin now supports undo and redo (with ctrl-z and ctrl-u) \\nInstance map now has a close button in top-right corner \\nNPC indicators now has support for highlighting the south-west tile for large NPCs \\nIdle notifier now also supports idle notifications for low oxygen on Fossil Island \\nCharged versions of the new wilderness weapons will now display their prices correctly \\nWorld map clipping in fixed mode has been fixed \\nMultiple world points for hot/cold clues has been centered and should not show the wrong destination anymore \\nThe opponent info plugin now has a configuration option to always show opponent health in percent \\nThe Discord plugin now has a configuration option to hide the "time elapsed" \\nYou can now configure the prayer flick helper to show even when prayers are off \\nFix loot tracker not grouping Barrows loots \\n \\nIn regards to the world hopper being disabled :\\nAfter speaking with Jagex and other client developers, we think the chat message hop-to option is what is causing the issues. Jagex is allowing us to readd the world hopper without this feature in this release, and will let us know if it causes any further problems.
\\nEnjoy!
\\n- Tomas
\\nNew commits \\nWe had 24 contributors this release!
\\nAdam (2):\\n opponent info: add config opt to show health as percent\\n xp tracker: limit to one update per 5 minutes\\n\\nAlessio (1):\\n Add GE limits to Grand Exchange Plugin Search\\n\\nArthurTsvettsih (1):\\n Add Undo Redo support for the Note plugin (#5606)\\n\\nBen Moyer (1):\\n Reduce tab size in notes panel to 2 (#5599)\\n\\nJacob McElroy (2):\\n Add barbarian assault game duration timer (#4590)\\n Fix Fremennik Hot/Cold clue scroll dig location.\\n\\nJordan Atwood (6):\\n Add IN_WILDERNESS Varbit\\n Add PVP and Deadman widget info\\n worldtype: Add PVP_WORLD_TYPES and isPvpWorld\\n timers plugin: Reset Teleblock on entering safe zone\\n slayer plugin: Add parsing for boss task assignments\\n slayer plugin: Use boss pets as slayer icons\\n\\nJustin Barnyak (1):\\n Change Prayerbar Color Scheme to be Colorblind Friendly\\n\\nMSAskew (1):\\n Updated co-ordinates to match location suggested by user and cross-referenced with osrs wiki to confirm as there were two possibilities.\\n\\nMax Weber (1):\\n devtools: Add Interacting arrow devtool\\n\\nMichael Goodwin (1):\\n Fix HotColdLocation WorldPoint\\n\\nMike (1):\\n Add option to disable time elapsed on discord activity (#5590)\\n\\nRobin Withes Linux (1):\\n Lady of the lake clue scroll rename\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nShaun Dreclin (1):\\n Add option to always show prayer flick helper\\n\\nTomas Slusny (4):\\n Simplify checkbox checks in skill calc\\n Fix GE OSB actively traded price races\\n Cleanup skill calculator\\n Move IconTextField common icons to IconTextField.Icon class\\n\\nUnknown (1):\\n instancemap: add 'X' button on the interface to close map\\n\\ndavidyip50 (1):\\n Correct location of Kharazi Jungle Hot/Cold clue (#5610)\\n\\njohnhamilto (1):\\n Add south-western tile indicator to NPC indicators (#5551)\\n\\nltvill (2):\\n Hot/Cold clue West of Brimhaven location fix\\n Hot/Cold clue near Fishing tutor location fix\\n\\npsikoi (1):\\n Fix loot tracker box subtitle\\n\\nrbbi (1):\\n Add searchbar suppor to Skill Calculator\\n\\nrobinwithes (2):\\n Add little boulder from weiss into agility obstacles (#5636)\\n Add oxygen alert to idle notifier (#5630)\\n\\nrune3132 (1):\\n Add wilderness weapons item mappings\\n\\nsteffenhauge (1):\\n Add Justiciar armor set prayer bonuses to the prayer plugin (#5651)\\n\\ntrimbe (1):\\n Fix clipping in fixed mode for edge snapping map points\\n
\\n\",\"image\":\"/img/blog/1.4.19-Release/buylimits.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-09-27-10-00-1.4.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yEAAyE,OAAS,QAAQ,KAAO,8kKAA0mK,MAAQ","file":"static/js/64.26a47f7c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.19 Release\",\"description\":\"Grand Exchange buy limits, Barbarian Assault game/wave duration timers\",\"author\":\"Tomas\",\"body\":\"Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x
\\nin GE window for items with known buy limits. Thanks to @Asymons for this contribution.
\\n
\\nA timer for Barbarian Assault waves and full game was added to the Barbarian Assault plugin that will\\nannounce the times in your chat thanks to @Jacoblairm .
\\n \\n
\\nThere are also numerous smaller improvements and bug fixes, including:
\\n\\nDuplicated display of actively traded price in GE interface has been fixed \\nTeleblock timers are now removed when entering safe zone/leaving wilderness \\nSearch bar was added to the skill calculator plugin \\nLittle boulder in Weiss was added to the agility plugin obstacle highlighting \\nNotes plugin now supports undo and redo (with ctrl-z and ctrl-u) \\nInstance map now has a close button in top-right corner \\nNPC indicators now has support for highlighting the south-west tile for large NPCs \\nIdle notifier now also supports idle notifications for low oxygen on Fossil Island \\nCharged versions of the new wilderness weapons will now display their prices correctly \\nWorld map clipping in fixed mode has been fixed \\nMultiple world points for hot/cold clues has been centered and should not show the wrong destination anymore \\nThe opponent info plugin now has a configuration option to always show opponent health in percent \\nThe Discord plugin now has a configuration option to hide the "time elapsed" \\nYou can now configure the prayer flick helper to show even when prayers are off \\nFix loot tracker not grouping Barrows loots \\n \\nIn regards to the world hopper being disabled :\\nAfter speaking with Jagex and other client developers, we think the chat message hop-to option is what is causing the issues. Jagex is allowing us to readd the world hopper without this feature in this release, and will let us know if it causes any further problems.
\\nEnjoy!
\\n- Tomas
\\nNew commits \\nWe had 24 contributors this release!
\\nAdam (2):\\n opponent info: add config opt to show health as percent\\n xp tracker: limit to one update per 5 minutes\\n\\nAlessio (1):\\n Add GE limits to Grand Exchange Plugin Search\\n\\nArthurTsvettsih (1):\\n Add Undo Redo support for the Note plugin (#5606)\\n\\nBen Moyer (1):\\n Reduce tab size in notes panel to 2 (#5599)\\n\\nJacob McElroy (2):\\n Add barbarian assault game duration timer (#4590)\\n Fix Fremennik Hot/Cold clue scroll dig location.\\n\\nJordan Atwood (6):\\n Add IN_WILDERNESS Varbit\\n Add PVP and Deadman widget info\\n worldtype: Add PVP_WORLD_TYPES and isPvpWorld\\n timers plugin: Reset Teleblock on entering safe zone\\n slayer plugin: Add parsing for boss task assignments\\n slayer plugin: Use boss pets as slayer icons\\n\\nJustin Barnyak (1):\\n Change Prayerbar Color Scheme to be Colorblind Friendly\\n\\nMSAskew (1):\\n Updated co-ordinates to match location suggested by user and cross-referenced with osrs wiki to confirm as there were two possibilities.\\n\\nMax Weber (1):\\n devtools: Add Interacting arrow devtool\\n\\nMichael Goodwin (1):\\n Fix HotColdLocation WorldPoint\\n\\nMike (1):\\n Add option to disable time elapsed on discord activity (#5590)\\n\\nRobin Withes Linux (1):\\n Lady of the lake clue scroll rename\\n\\nRunelite auto updater (1):\\n [maven-release-plugin] prepare for next development iteration\\n\\nShaun Dreclin (1):\\n Add option to always show prayer flick helper\\n\\nTomas Slusny (4):\\n Simplify checkbox checks in skill calc\\n Fix GE OSB actively traded price races\\n Cleanup skill calculator\\n Move IconTextField common icons to IconTextField.Icon class\\n\\nUnknown (1):\\n instancemap: add 'X' button on the interface to close map\\n\\ndavidyip50 (1):\\n Correct location of Kharazi Jungle Hot/Cold clue (#5610)\\n\\njohnhamilto (1):\\n Add south-western tile indicator to NPC indicators (#5551)\\n\\nltvill (2):\\n Hot/Cold clue West of Brimhaven location fix\\n Hot/Cold clue near Fishing tutor location fix\\n\\npsikoi (1):\\n Fix loot tracker box subtitle\\n\\nrbbi (1):\\n Add searchbar suppor to Skill Calculator\\n\\nrobinwithes (2):\\n Add little boulder from weiss into agility obstacles (#5636)\\n Add oxygen alert to idle notifier (#5630)\\n\\nrune3132 (1):\\n Add wilderness weapons item mappings\\n\\nsteffenhauge (1):\\n Add Justiciar armor set prayer bonuses to the prayer plugin (#5651)\\n\\ntrimbe (1):\\n Fix clipping in fixed mode for edge snapping map points\\n
\\n\",\"image\":\"/img/blog/1.4.19-Release/buylimits.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/65.9d86dbe2.chunk.js b/static/js/65.cb54375f.chunk.js
similarity index 98%
rename from static/js/65.9d86dbe2.chunk.js
rename to static/js/65.cb54375f.chunk.js
index 2233dfbd0..f9cae4414 100644
--- a/static/js/65.9d86dbe2.chunk.js
+++ b/static/js/65.cb54375f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[65],{340:function(e,n){e.exports={title:"1.4.20 Release",description:"Currently-hovered tile highlight, Control-locked zoom, and removed Runecrafting pouch counter",author:"Jordan",body:'The Tile Indicators plugin can now show your currently hovered tile. Thanks to\n@Deathbeam for this feature.
\n
\nThe Camera Zoom plugin can now require the Control key be held down to enable zooming via the scroll\nwheel. Thanks to @MagicfTail for this feature.
\nThe world map overlay has had its fairy ring icon changed to be easier on the eyes.
\n
\nThe Runecrafting plugin has had its pouch counter removed as the data we relied on to display that\ninformation was removed in last week\'s Runecrafting pouch emptying and filling update.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAn option has been added to hide XP globes and/or XP trackers for skills which have reached level\n99 \nA stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\nspell \nVarious clues have had their item requirements fixed \nThe idle notifier will notify you when you\'ve stopped collecting sand \nThe friends list counter now correctly displays the maximum friends list capacity for members \nObstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\nthe McGrubor\'s Woods railing \nThe raids scouting overlay is now hidden when on Olm\'s floor \nThe raids ending message default color has been improved \nItems examined within the clue scroll reward panel or smithing interface-as well as item\nplaceholders within the bank-will now display their price information \nTars, leather shields, and super antifire potions have been added to the skill calculator \nThe cannon spot for ice trolls has been improved via a slight adjustment \nTimers which no longer apply will now clear themselves upon death \nMap clues will now indicate in the clue overlay if you are missing a spade in your inventory \nA Karamja diary requirement has been corrected \nThe screenshot plugin can now take screenshots upon player death \nThe Salty Peter clue scroll now gives you a hint on his general direction (he may still wander\noutside of view of that spot, so be sure to look out for him!) \nThe slayer plugin now displays icons for all missing wilderness task monsters \nWilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\nmonsters \nThe 2010 interface style has had some icon locations adjusted to be better aligned \nChat commands now have more descriptive tooltips within the settings menu, indicating the exact\ntext needed to use the command \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAndre (2):\n Truncate NPC name instead of subtitle in Loot Tracker (#5740)\n Add option to hide both globes and xp tracker after 99 (#5741)\n\nChris Hranj (1):\n Update stamina potion timer to include shared stamina potions (#5750)\n\nChristopher O\'Hara (2):\n Fix amulet of glory item requirement for elite clue scroll\n Add sand collection to idle notifier\n\nForsco (1):\n Update membership days VarPlayer id\n\nJordan Atwood (6):\n player indicators plugin: Use ColorUtil functions\n wasd camera plugin: Use ColorUtil functions\n corp plugin: Fix settings description typo\n world map plugin: Update fairy ring icon\n agility plugin: Highlight Meiyerditch entrance obstacles\n Revert "Truncate NPC name instead of subtitle in Loot Tracker (#5740)"\n\nKamiel (2):\n Add default cc info chatcolor and change cc info highlight to red\n Make raids scout overlay not show at Olm (#5734)\n\nMagic fTail (3):\n Add option to require control to be held for zooming\n Add support for examine price to clue scroll reward\n Rename zoom handling script\n\nMax Weber (2):\n runelite-client: Don\'t duplicate chatbox input when widget ids are wrong\n cluescrolls: add bullroarer to items list for bullroarer clue\n\nRobbie McLeod (1):\n Add Tar to the Herblore Skill calculator\n\nRon Young (1):\n widget: expose drag methods (#5735)\n\nTomas Slusny (15):\n Properly name Perspective methods, remove unused\n Add mappings for checkClick, mouseCanvasHoverX/Y\n Add currently hovered tile to TileIndicators\n Remove pouch counter from Runecraft plugin\n Remove dupe strings from AnagramClue\n Remove dupe strings from CipherClue\n Make sprite and widget sprite overrides more flexible\n Make interface styles not replace entire override map\n Cleanup GE plugin code\n Make examine plugin work with placeholders\n Make examine work for smithing interface\n Export widget onLoadListener\n Fix BlastFurnace access levels and subscriber names\n Fix screenshot plugin access levels\n Fix special counter access levels and subscriber names\n\nbowlcutmullet (1):\n Use more optimal location for Jatizso Ice Trolls cannon spot (#5715)\n\njohnhamilto (1):\n Remove timers on local player death\n\nraiyni (1):\n Require spade on map dig clues\n\nrbbi (1):\n Add leather shields to the crafting calculator (#4331)\n\nrobinwithes (9):\n Add mcgrubor woods railing to agility plugin (#5705)\n Add super antifire to skill calculator (#5708)\n Fix achievement diary Brimhaven Dungeon requirement (#5706)\n Add option to take screenshot on local player death (#5711)\n Add location for Salty Peter clue scroll (#5730)\n Add chaos druids, bandits and magic axes to slayer plugin (#5759)\n Added ALL remaining missing wilderness tasks (#5760)\n Add support for parsing Wilderness assignment updates to slayer plugin (#5757)\n Add missing Weiss agility obstacles (#5785)\n\ntrimbe (3):\n Update location for terrorchick cage hot/cold\n Adjust tab icon offsets for 2010 interface style\n Chat Commands: Add hints to config description (#5747)\n
\n',image:"/img/blog/1.4.20-Release/tile-indicator-highlighted-tile.gif"}}}]);
-//# sourceMappingURL=65.9d86dbe2.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[65],{341:function(e,n){e.exports={title:"1.4.20 Release",description:"Currently-hovered tile highlight, Control-locked zoom, and removed Runecrafting pouch counter",author:"Jordan",body:'The Tile Indicators plugin can now show your currently hovered tile. Thanks to\n@Deathbeam for this feature.
\n
\nThe Camera Zoom plugin can now require the Control key be held down to enable zooming via the scroll\nwheel. Thanks to @MagicfTail for this feature.
\nThe world map overlay has had its fairy ring icon changed to be easier on the eyes.
\n
\nThe Runecrafting plugin has had its pouch counter removed as the data we relied on to display that\ninformation was removed in last week\'s Runecrafting pouch emptying and filling update.
\nThere are also several smaller improvements and bug fixes, including:
\n\nAn option has been added to hide XP globes and/or XP trackers for skills which have reached level\n99 \nA stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\nspell \nVarious clues have had their item requirements fixed \nThe idle notifier will notify you when you\'ve stopped collecting sand \nThe friends list counter now correctly displays the maximum friends list capacity for members \nObstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\nthe McGrubor\'s Woods railing \nThe raids scouting overlay is now hidden when on Olm\'s floor \nThe raids ending message default color has been improved \nItems examined within the clue scroll reward panel or smithing interface-as well as item\nplaceholders within the bank-will now display their price information \nTars, leather shields, and super antifire potions have been added to the skill calculator \nThe cannon spot for ice trolls has been improved via a slight adjustment \nTimers which no longer apply will now clear themselves upon death \nMap clues will now indicate in the clue overlay if you are missing a spade in your inventory \nA Karamja diary requirement has been corrected \nThe screenshot plugin can now take screenshots upon player death \nThe Salty Peter clue scroll now gives you a hint on his general direction (he may still wander\noutside of view of that spot, so be sure to look out for him!) \nThe slayer plugin now displays icons for all missing wilderness task monsters \nWilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\nmonsters \nThe 2010 interface style has had some icon locations adjusted to be better aligned \nChat commands now have more descriptive tooltips within the settings menu, indicating the exact\ntext needed to use the command \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAndre (2):\n Truncate NPC name instead of subtitle in Loot Tracker (#5740)\n Add option to hide both globes and xp tracker after 99 (#5741)\n\nChris Hranj (1):\n Update stamina potion timer to include shared stamina potions (#5750)\n\nChristopher O\'Hara (2):\n Fix amulet of glory item requirement for elite clue scroll\n Add sand collection to idle notifier\n\nForsco (1):\n Update membership days VarPlayer id\n\nJordan Atwood (6):\n player indicators plugin: Use ColorUtil functions\n wasd camera plugin: Use ColorUtil functions\n corp plugin: Fix settings description typo\n world map plugin: Update fairy ring icon\n agility plugin: Highlight Meiyerditch entrance obstacles\n Revert "Truncate NPC name instead of subtitle in Loot Tracker (#5740)"\n\nKamiel (2):\n Add default cc info chatcolor and change cc info highlight to red\n Make raids scout overlay not show at Olm (#5734)\n\nMagic fTail (3):\n Add option to require control to be held for zooming\n Add support for examine price to clue scroll reward\n Rename zoom handling script\n\nMax Weber (2):\n runelite-client: Don\'t duplicate chatbox input when widget ids are wrong\n cluescrolls: add bullroarer to items list for bullroarer clue\n\nRobbie McLeod (1):\n Add Tar to the Herblore Skill calculator\n\nRon Young (1):\n widget: expose drag methods (#5735)\n\nTomas Slusny (15):\n Properly name Perspective methods, remove unused\n Add mappings for checkClick, mouseCanvasHoverX/Y\n Add currently hovered tile to TileIndicators\n Remove pouch counter from Runecraft plugin\n Remove dupe strings from AnagramClue\n Remove dupe strings from CipherClue\n Make sprite and widget sprite overrides more flexible\n Make interface styles not replace entire override map\n Cleanup GE plugin code\n Make examine plugin work with placeholders\n Make examine work for smithing interface\n Export widget onLoadListener\n Fix BlastFurnace access levels and subscriber names\n Fix screenshot plugin access levels\n Fix special counter access levels and subscriber names\n\nbowlcutmullet (1):\n Use more optimal location for Jatizso Ice Trolls cannon spot (#5715)\n\njohnhamilto (1):\n Remove timers on local player death\n\nraiyni (1):\n Require spade on map dig clues\n\nrbbi (1):\n Add leather shields to the crafting calculator (#4331)\n\nrobinwithes (9):\n Add mcgrubor woods railing to agility plugin (#5705)\n Add super antifire to skill calculator (#5708)\n Fix achievement diary Brimhaven Dungeon requirement (#5706)\n Add option to take screenshot on local player death (#5711)\n Add location for Salty Peter clue scroll (#5730)\n Add chaos druids, bandits and magic axes to slayer plugin (#5759)\n Added ALL remaining missing wilderness tasks (#5760)\n Add support for parsing Wilderness assignment updates to slayer plugin (#5757)\n Add missing Weiss agility obstacles (#5785)\n\ntrimbe (3):\n Update location for terrorchick cage hot/cold\n Adjust tab icon offsets for 2010 interface style\n Chat Commands: Add hints to config description (#5747)\n
\n',image:"/img/blog/1.4.20-Release/tile-indicator-highlighted-tile.gif"}}}]);
+//# sourceMappingURL=65.cb54375f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/65.9d86dbe2.chunk.js.map b/static/js/65.cb54375f.chunk.js.map
similarity index 99%
rename from static/js/65.9d86dbe2.chunk.js.map
rename to static/js/65.cb54375f.chunk.js.map
index f01d4335e..d8e781e6d 100644
--- a/static/js/65.9d86dbe2.chunk.js.map
+++ b/static/js/65.cb54375f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-10-04-10-00-1.4.20-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gGAAgG,OAAS,SAAS,KAAO,kyMAAgzM,MAAQ","file":"static/js/65.9d86dbe2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.20 Release\",\"description\":\"Currently-hovered tile highlight, Control-locked zoom, and removed Runecrafting pouch counter\",\"author\":\"Jordan\",\"body\":\"The Tile Indicators plugin can now show your currently hovered tile. Thanks to\\n@Deathbeam for this feature.
\\n
\\nThe Camera Zoom plugin can now require the Control key be held down to enable zooming via the scroll\\nwheel. Thanks to @MagicfTail for this feature.
\\nThe world map overlay has had its fairy ring icon changed to be easier on the eyes.
\\n
\\nThe Runecrafting plugin has had its pouch counter removed as the data we relied on to display that\\ninformation was removed in last week's Runecrafting pouch emptying and filling update.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAn option has been added to hide XP globes and/or XP trackers for skills which have reached level\\n99 \\nA stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\\nspell \\nVarious clues have had their item requirements fixed \\nThe idle notifier will notify you when you've stopped collecting sand \\nThe friends list counter now correctly displays the maximum friends list capacity for members \\nObstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\\nthe McGrubor's Woods railing \\nThe raids scouting overlay is now hidden when on Olm's floor \\nThe raids ending message default color has been improved \\nItems examined within the clue scroll reward panel or smithing interface-as well as item\\nplaceholders within the bank-will now display their price information \\nTars, leather shields, and super antifire potions have been added to the skill calculator \\nThe cannon spot for ice trolls has been improved via a slight adjustment \\nTimers which no longer apply will now clear themselves upon death \\nMap clues will now indicate in the clue overlay if you are missing a spade in your inventory \\nA Karamja diary requirement has been corrected \\nThe screenshot plugin can now take screenshots upon player death \\nThe Salty Peter clue scroll now gives you a hint on his general direction (he may still wander\\noutside of view of that spot, so be sure to look out for him!) \\nThe slayer plugin now displays icons for all missing wilderness task monsters \\nWilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\\nmonsters \\nThe 2010 interface style has had some icon locations adjusted to be better aligned \\nChat commands now have more descriptive tooltips within the settings menu, indicating the exact\\ntext needed to use the command \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAndre (2):\\n Truncate NPC name instead of subtitle in Loot Tracker (#5740)\\n Add option to hide both globes and xp tracker after 99 (#5741)\\n\\nChris Hranj (1):\\n Update stamina potion timer to include shared stamina potions (#5750)\\n\\nChristopher O'Hara (2):\\n Fix amulet of glory item requirement for elite clue scroll\\n Add sand collection to idle notifier\\n\\nForsco (1):\\n Update membership days VarPlayer id\\n\\nJordan Atwood (6):\\n player indicators plugin: Use ColorUtil functions\\n wasd camera plugin: Use ColorUtil functions\\n corp plugin: Fix settings description typo\\n world map plugin: Update fairy ring icon\\n agility plugin: Highlight Meiyerditch entrance obstacles\\n Revert "Truncate NPC name instead of subtitle in Loot Tracker (#5740)"\\n\\nKamiel (2):\\n Add default cc info chatcolor and change cc info highlight to red\\n Make raids scout overlay not show at Olm (#5734)\\n\\nMagic fTail (3):\\n Add option to require control to be held for zooming\\n Add support for examine price to clue scroll reward\\n Rename zoom handling script\\n\\nMax Weber (2):\\n runelite-client: Don't duplicate chatbox input when widget ids are wrong\\n cluescrolls: add bullroarer to items list for bullroarer clue\\n\\nRobbie McLeod (1):\\n Add Tar to the Herblore Skill calculator\\n\\nRon Young (1):\\n widget: expose drag methods (#5735)\\n\\nTomas Slusny (15):\\n Properly name Perspective methods, remove unused\\n Add mappings for checkClick, mouseCanvasHoverX/Y\\n Add currently hovered tile to TileIndicators\\n Remove pouch counter from Runecraft plugin\\n Remove dupe strings from AnagramClue\\n Remove dupe strings from CipherClue\\n Make sprite and widget sprite overrides more flexible\\n Make interface styles not replace entire override map\\n Cleanup GE plugin code\\n Make examine plugin work with placeholders\\n Make examine work for smithing interface\\n Export widget onLoadListener\\n Fix BlastFurnace access levels and subscriber names\\n Fix screenshot plugin access levels\\n Fix special counter access levels and subscriber names\\n\\nbowlcutmullet (1):\\n Use more optimal location for Jatizso Ice Trolls cannon spot (#5715)\\n\\njohnhamilto (1):\\n Remove timers on local player death\\n\\nraiyni (1):\\n Require spade on map dig clues\\n\\nrbbi (1):\\n Add leather shields to the crafting calculator (#4331)\\n\\nrobinwithes (9):\\n Add mcgrubor woods railing to agility plugin (#5705)\\n Add super antifire to skill calculator (#5708)\\n Fix achievement diary Brimhaven Dungeon requirement (#5706)\\n Add option to take screenshot on local player death (#5711)\\n Add location for Salty Peter clue scroll (#5730)\\n Add chaos druids, bandits and magic axes to slayer plugin (#5759)\\n Added ALL remaining missing wilderness tasks (#5760)\\n Add support for parsing Wilderness assignment updates to slayer plugin (#5757)\\n Add missing Weiss agility obstacles (#5785)\\n\\ntrimbe (3):\\n Update location for terrorchick cage hot/cold\\n Adjust tab icon offsets for 2010 interface style\\n Chat Commands: Add hints to config description (#5747)\\n
\\n\",\"image\":\"/img/blog/1.4.20-Release/tile-indicator-highlighted-tile.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-10-04-10-00-1.4.20-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gGAAgG,OAAS,SAAS,KAAO,kyMAAgzM,MAAQ","file":"static/js/65.cb54375f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.20 Release\",\"description\":\"Currently-hovered tile highlight, Control-locked zoom, and removed Runecrafting pouch counter\",\"author\":\"Jordan\",\"body\":\"The Tile Indicators plugin can now show your currently hovered tile. Thanks to\\n@Deathbeam for this feature.
\\n
\\nThe Camera Zoom plugin can now require the Control key be held down to enable zooming via the scroll\\nwheel. Thanks to @MagicfTail for this feature.
\\nThe world map overlay has had its fairy ring icon changed to be easier on the eyes.
\\n
\\nThe Runecrafting plugin has had its pouch counter removed as the data we relied on to display that\\ninformation was removed in last week's Runecrafting pouch emptying and filling update.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAn option has been added to hide XP globes and/or XP trackers for skills which have reached level\\n99 \\nA stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\\nspell \\nVarious clues have had their item requirements fixed \\nThe idle notifier will notify you when you've stopped collecting sand \\nThe friends list counter now correctly displays the maximum friends list capacity for members \\nObstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\\nthe McGrubor's Woods railing \\nThe raids scouting overlay is now hidden when on Olm's floor \\nThe raids ending message default color has been improved \\nItems examined within the clue scroll reward panel or smithing interface-as well as item\\nplaceholders within the bank-will now display their price information \\nTars, leather shields, and super antifire potions have been added to the skill calculator \\nThe cannon spot for ice trolls has been improved via a slight adjustment \\nTimers which no longer apply will now clear themselves upon death \\nMap clues will now indicate in the clue overlay if you are missing a spade in your inventory \\nA Karamja diary requirement has been corrected \\nThe screenshot plugin can now take screenshots upon player death \\nThe Salty Peter clue scroll now gives you a hint on his general direction (he may still wander\\noutside of view of that spot, so be sure to look out for him!) \\nThe slayer plugin now displays icons for all missing wilderness task monsters \\nWilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\\nmonsters \\nThe 2010 interface style has had some icon locations adjusted to be better aligned \\nChat commands now have more descriptive tooltips within the settings menu, indicating the exact\\ntext needed to use the command \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAndre (2):\\n Truncate NPC name instead of subtitle in Loot Tracker (#5740)\\n Add option to hide both globes and xp tracker after 99 (#5741)\\n\\nChris Hranj (1):\\n Update stamina potion timer to include shared stamina potions (#5750)\\n\\nChristopher O'Hara (2):\\n Fix amulet of glory item requirement for elite clue scroll\\n Add sand collection to idle notifier\\n\\nForsco (1):\\n Update membership days VarPlayer id\\n\\nJordan Atwood (6):\\n player indicators plugin: Use ColorUtil functions\\n wasd camera plugin: Use ColorUtil functions\\n corp plugin: Fix settings description typo\\n world map plugin: Update fairy ring icon\\n agility plugin: Highlight Meiyerditch entrance obstacles\\n Revert "Truncate NPC name instead of subtitle in Loot Tracker (#5740)"\\n\\nKamiel (2):\\n Add default cc info chatcolor and change cc info highlight to red\\n Make raids scout overlay not show at Olm (#5734)\\n\\nMagic fTail (3):\\n Add option to require control to be held for zooming\\n Add support for examine price to clue scroll reward\\n Rename zoom handling script\\n\\nMax Weber (2):\\n runelite-client: Don't duplicate chatbox input when widget ids are wrong\\n cluescrolls: add bullroarer to items list for bullroarer clue\\n\\nRobbie McLeod (1):\\n Add Tar to the Herblore Skill calculator\\n\\nRon Young (1):\\n widget: expose drag methods (#5735)\\n\\nTomas Slusny (15):\\n Properly name Perspective methods, remove unused\\n Add mappings for checkClick, mouseCanvasHoverX/Y\\n Add currently hovered tile to TileIndicators\\n Remove pouch counter from Runecraft plugin\\n Remove dupe strings from AnagramClue\\n Remove dupe strings from CipherClue\\n Make sprite and widget sprite overrides more flexible\\n Make interface styles not replace entire override map\\n Cleanup GE plugin code\\n Make examine plugin work with placeholders\\n Make examine work for smithing interface\\n Export widget onLoadListener\\n Fix BlastFurnace access levels and subscriber names\\n Fix screenshot plugin access levels\\n Fix special counter access levels and subscriber names\\n\\nbowlcutmullet (1):\\n Use more optimal location for Jatizso Ice Trolls cannon spot (#5715)\\n\\njohnhamilto (1):\\n Remove timers on local player death\\n\\nraiyni (1):\\n Require spade on map dig clues\\n\\nrbbi (1):\\n Add leather shields to the crafting calculator (#4331)\\n\\nrobinwithes (9):\\n Add mcgrubor woods railing to agility plugin (#5705)\\n Add super antifire to skill calculator (#5708)\\n Fix achievement diary Brimhaven Dungeon requirement (#5706)\\n Add option to take screenshot on local player death (#5711)\\n Add location for Salty Peter clue scroll (#5730)\\n Add chaos druids, bandits and magic axes to slayer plugin (#5759)\\n Added ALL remaining missing wilderness tasks (#5760)\\n Add support for parsing Wilderness assignment updates to slayer plugin (#5757)\\n Add missing Weiss agility obstacles (#5785)\\n\\ntrimbe (3):\\n Update location for terrorchick cage hot/cold\\n Adjust tab icon offsets for 2010 interface style\\n Chat Commands: Add hints to config description (#5747)\\n
\\n\",\"image\":\"/img/blog/1.4.20-Release/tile-indicator-highlighted-tile.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/66.03d16c6a.chunk.js b/static/js/66.80a1530c.chunk.js
similarity index 98%
rename from static/js/66.03d16c6a.chunk.js
rename to static/js/66.80a1530c.chunk.js
index 6536cd196..0c8051754 100644
--- a/static/js/66.03d16c6a.chunk.js
+++ b/static/js/66.80a1530c.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[66],{341:function(e,n){e.exports={title:"1.4.21 Release",description:"Bank tag tabs, master clue 3-step cryptic solutions, partial grand exchange name searching, and various plugin visual improvements",author:"Jordan",body:'Bank tag tabs \nThanks to the tireless work of @raiyni , and supporting work from\n@deathbeam and @Abextm , we are proud\nto offer a new bank tag experience in bank tag tabs!
\n
\nAs indicated above, tabs can be created for any number of tags by clicking the "+" button in the\nupper-left-hand corner of the bank interface, and selecting these tabs will display items tagged\nwith that tab\'s tag. More information regarding its features and functionalities can be found by\nbrowsing the Bank Tags wiki\npage .
\nMaster clue 3-step cryptic solutions \nThe Clue Scroll plugin now displays solutions for master-level three step cryptic clues, removing\nsteps from the overlay as they are completed. Thanks to\n@Eadgars-ruse for submitting\n(and demonstrating in video form) this feature!
\n \n
\nGrand Exchange partial name searching \nThe Grand Exchange search panel and ingame !price
command now allow for partial name searching,\nyielding better results than before. Thanks to @Adam- for implementing\nthis enhancement.
\n
\nVisual improvements \nThanks to @Adam- , @Monsterxsync ,\n@psikoi , and\n@SebastiaanVanspauwen respectively, a number of plugins\nhave had their visuals updated, which can be seen below:
\n\nThe "To:" and "From:" in split private chat can now be recolored \nA toggle has been added to use default skill coloring for XP globe progress arcs \nXP globes\' progress bar has been changed into an overlay directly on the globe to save space \nA chatbox background image has been added to the 2005 interface style \n \n \n \n \n
\nThe Camera Zoom plugin has been disabled until we can fix it for the update today.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe percentage completion component of the XP tracker is now accurate to two decimal places \nThe 2010 interface style has had some tab icon offsets updated to be more accurate to the style \nCavaliers will now display their buy limit in the grand exchange plugin \nMouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed \nChat notification highlight words now ignore leading and trailing space for highlight terms \nRegen meters should now be more accurate for the beginning and end of a regen cycle \nOverlays snapped above chatbox will now be rendered when text input or chat dialogs are open \nAn option has been added to the boosts overlay to display in yellow when below the boost threshold \nNotifications have been added for highlighted ground items \nThe Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu \nThe Slayer plugin will now update when assigned a task through partner slayer \nThe NPC HP overlay has been updated to use a more accurate HP formula \nThe Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood \nThe newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter \nAn idle alert should no longer trigger after casting most Lunar spells \nA toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\nbeen added \nThe Kingdom of Miscellania completion state check has been corrected \nSeveral bank tag editing edge cases have been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 23 contributors this release!
\nAdam (7):\n feed controller: move feed result fetch to spring scheduler\n http service: return item names in price lookup\n http-api: modify ItemPrice to contain id/name instead of Item\n mixins: fix runelite message not being cleared on reused messages nodes\n chat message manager: add support for coloring to/from\n runelite-client: update for search api changes\n ge search: cap max results at 100\n\nBailey Townsend (1):\n Add buy limit for cavalier hats to GE plugin (#5855)\n\nEadgars-Ruse (2):\n Fix and improve cryptic clues\n Add solutions for 3 step cryptic master clues\n\nEric White (1):\n Increase XP tracker accuracy to 2 decimal places (#5845)\n\nGravitySalad (2):\n Add additional search tags for interface styles and pve plugins\n Change plugin search to include the plugin description\n\nJeremy Plsek (1):\n 2010 styles: Fix emotes and music tab offsets (#5884)\n\nJordan Atwood (1):\n mouse tooltips: Don\'t add a tooltip if another is present\n\nKamiel (3):\n Fix chat notification highlight words split regex (#5798)\n Change regen meter stroke end-cap style to CAP_BUTT\n Fix snapped overlays above chatbox not being rendered\n\nMagic fTail (3):\n Add support for making the boost colour yellow if below boost threshold\n Update osrs wiki link\n Stop CoX party size from showing before varb is loaded\n\nMarshall (1):\n Add highlighted ground item notifications (#3647)\n\nMax Weber (7):\n Add thread assertions to Widget\n WidgetInspector: run on client thread\n runelite-client: Make Widget::isHidden only run on client thread\n Add thread assertion to getVar(Varbits)\n runelite-client: Make getVar(Varbits) only run on the client thread\n fairyring: Don\'t loose scroll position\n timetracking: Show overview completion by tab, not implementation\n\nMonsterxsync (1):\n Add default skill coloring to XP globe arcs\n\nNathen Sample (4):\n Improve readability of stackformatter tests\n Add support for partner assignment to slayer plugin (#5782)\n Improve attack style plugin encapsulation (#5806)\n Improve BA plugin encapsulation (#5807)\n\nRon Young (9):\n Add bank-related widget ids, scripts and varbits\n Add script for managing current bank tab\n Add method for getting keys based on prefix from ConfigManager\n Add tag tabs to bank tags plugin\n More accurate NPC hp overlay when max hp is known (#5528)\n widget: expose setchildren (#5309)\n Don\'t update tags if interface is force closed\n Don\'t change the active tab if tags are being edited\n Don\'t assume bank title is the same as search str because it truncate...\n\nRuben Amendoeira (1):\n XP Globes - Move progress bar display from tooltip to globe (#5856)\n\nSebastiaan Vanspauwen (1):\n Interface plugin: Added 2005 chatbox\n\nTomas Slusny (15):\n Fix Raids plugin varbit access not happening on client thread\n Move map clue checking to MenuOptionClicked\n Skip empty spots in Loot Tracker when getting items\n Fix NPE in Miscellania plugin on DC\n Use NpcSpawned/Despawned events for checking clue NPCs\n Move clue inventory/equipment assignment to ItemContainerChanged\n Inverse findClueScroll conditions\n Do not set hint arrows for object clue scroll\n Correctly highlight ObjectClueScroll for single location\n Remove clue scroll timeout\n Add executor service logger that logs exceptions\n Remove unnecessary calls to RunnableExceptionLogger\n Add method for standardizing text input to Text\n Use TAG_SEARCH const instead of hardcoding "tag:" in Bank Tags\n Properly reset search when deleting active tag tab\n\nTyler Nichols (2):\n Remove unused variable "rank" in HiscorePanel (#5843)\n Do not show quantity value for items with no GE/HA value (#5850)\n\nforsco (4):\n Add new Al-Kharid palace agility shortcuts (#5800)\n Remove idle alerts from Lunar Spells shared animation (#5863)\n Fix spelling of Burthorpe Games Room in Discord Rich Presence (#5886)\n Correct Burthorpe spelling for Discord rich presence\n\nmikek2 (1):\n Add ultimate force notification trigger to NMZ plugin (#5790)\n\nrobinwithes (1):\n Fix NPE in Grand Exchange search caused by null entry (#5911)\n\ntrimbe (1):\n Kingdom Plugin: fix throne completion state check (#5874)\n
\n',image:"/img/blog/1.4.21-Release/bank-tag-tabs-intro.gif"}}}]);
-//# sourceMappingURL=66.03d16c6a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[66],{342:function(e,n){e.exports={title:"1.4.21 Release",description:"Bank tag tabs, master clue 3-step cryptic solutions, partial grand exchange name searching, and various plugin visual improvements",author:"Jordan",body:'Bank tag tabs \nThanks to the tireless work of @raiyni , and supporting work from\n@deathbeam and @Abextm , we are proud\nto offer a new bank tag experience in bank tag tabs!
\n
\nAs indicated above, tabs can be created for any number of tags by clicking the "+" button in the\nupper-left-hand corner of the bank interface, and selecting these tabs will display items tagged\nwith that tab\'s tag. More information regarding its features and functionalities can be found by\nbrowsing the Bank Tags wiki\npage .
\nMaster clue 3-step cryptic solutions \nThe Clue Scroll plugin now displays solutions for master-level three step cryptic clues, removing\nsteps from the overlay as they are completed. Thanks to\n@Eadgars-ruse for submitting\n(and demonstrating in video form) this feature!
\n \n
\nGrand Exchange partial name searching \nThe Grand Exchange search panel and ingame !price
command now allow for partial name searching,\nyielding better results than before. Thanks to @Adam- for implementing\nthis enhancement.
\n
\nVisual improvements \nThanks to @Adam- , @Monsterxsync ,\n@psikoi , and\n@SebastiaanVanspauwen respectively, a number of plugins\nhave had their visuals updated, which can be seen below:
\n\nThe "To:" and "From:" in split private chat can now be recolored \nA toggle has been added to use default skill coloring for XP globe progress arcs \nXP globes\' progress bar has been changed into an overlay directly on the globe to save space \nA chatbox background image has been added to the 2005 interface style \n \n \n \n \n
\nThe Camera Zoom plugin has been disabled until we can fix it for the update today.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe percentage completion component of the XP tracker is now accurate to two decimal places \nThe 2010 interface style has had some tab icon offsets updated to be more accurate to the style \nCavaliers will now display their buy limit in the grand exchange plugin \nMouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed \nChat notification highlight words now ignore leading and trailing space for highlight terms \nRegen meters should now be more accurate for the beginning and end of a regen cycle \nOverlays snapped above chatbox will now be rendered when text input or chat dialogs are open \nAn option has been added to the boosts overlay to display in yellow when below the boost threshold \nNotifications have been added for highlighted ground items \nThe Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu \nThe Slayer plugin will now update when assigned a task through partner slayer \nThe NPC HP overlay has been updated to use a more accurate HP formula \nThe Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood \nThe newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter \nAn idle alert should no longer trigger after casting most Lunar spells \nA toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\nbeen added \nThe Kingdom of Miscellania completion state check has been corrected \nSeveral bank tag editing edge cases have been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 23 contributors this release!
\nAdam (7):\n feed controller: move feed result fetch to spring scheduler\n http service: return item names in price lookup\n http-api: modify ItemPrice to contain id/name instead of Item\n mixins: fix runelite message not being cleared on reused messages nodes\n chat message manager: add support for coloring to/from\n runelite-client: update for search api changes\n ge search: cap max results at 100\n\nBailey Townsend (1):\n Add buy limit for cavalier hats to GE plugin (#5855)\n\nEadgars-Ruse (2):\n Fix and improve cryptic clues\n Add solutions for 3 step cryptic master clues\n\nEric White (1):\n Increase XP tracker accuracy to 2 decimal places (#5845)\n\nGravitySalad (2):\n Add additional search tags for interface styles and pve plugins\n Change plugin search to include the plugin description\n\nJeremy Plsek (1):\n 2010 styles: Fix emotes and music tab offsets (#5884)\n\nJordan Atwood (1):\n mouse tooltips: Don\'t add a tooltip if another is present\n\nKamiel (3):\n Fix chat notification highlight words split regex (#5798)\n Change regen meter stroke end-cap style to CAP_BUTT\n Fix snapped overlays above chatbox not being rendered\n\nMagic fTail (3):\n Add support for making the boost colour yellow if below boost threshold\n Update osrs wiki link\n Stop CoX party size from showing before varb is loaded\n\nMarshall (1):\n Add highlighted ground item notifications (#3647)\n\nMax Weber (7):\n Add thread assertions to Widget\n WidgetInspector: run on client thread\n runelite-client: Make Widget::isHidden only run on client thread\n Add thread assertion to getVar(Varbits)\n runelite-client: Make getVar(Varbits) only run on the client thread\n fairyring: Don\'t loose scroll position\n timetracking: Show overview completion by tab, not implementation\n\nMonsterxsync (1):\n Add default skill coloring to XP globe arcs\n\nNathen Sample (4):\n Improve readability of stackformatter tests\n Add support for partner assignment to slayer plugin (#5782)\n Improve attack style plugin encapsulation (#5806)\n Improve BA plugin encapsulation (#5807)\n\nRon Young (9):\n Add bank-related widget ids, scripts and varbits\n Add script for managing current bank tab\n Add method for getting keys based on prefix from ConfigManager\n Add tag tabs to bank tags plugin\n More accurate NPC hp overlay when max hp is known (#5528)\n widget: expose setchildren (#5309)\n Don\'t update tags if interface is force closed\n Don\'t change the active tab if tags are being edited\n Don\'t assume bank title is the same as search str because it truncate...\n\nRuben Amendoeira (1):\n XP Globes - Move progress bar display from tooltip to globe (#5856)\n\nSebastiaan Vanspauwen (1):\n Interface plugin: Added 2005 chatbox\n\nTomas Slusny (15):\n Fix Raids plugin varbit access not happening on client thread\n Move map clue checking to MenuOptionClicked\n Skip empty spots in Loot Tracker when getting items\n Fix NPE in Miscellania plugin on DC\n Use NpcSpawned/Despawned events for checking clue NPCs\n Move clue inventory/equipment assignment to ItemContainerChanged\n Inverse findClueScroll conditions\n Do not set hint arrows for object clue scroll\n Correctly highlight ObjectClueScroll for single location\n Remove clue scroll timeout\n Add executor service logger that logs exceptions\n Remove unnecessary calls to RunnableExceptionLogger\n Add method for standardizing text input to Text\n Use TAG_SEARCH const instead of hardcoding "tag:" in Bank Tags\n Properly reset search when deleting active tag tab\n\nTyler Nichols (2):\n Remove unused variable "rank" in HiscorePanel (#5843)\n Do not show quantity value for items with no GE/HA value (#5850)\n\nforsco (4):\n Add new Al-Kharid palace agility shortcuts (#5800)\n Remove idle alerts from Lunar Spells shared animation (#5863)\n Fix spelling of Burthorpe Games Room in Discord Rich Presence (#5886)\n Correct Burthorpe spelling for Discord rich presence\n\nmikek2 (1):\n Add ultimate force notification trigger to NMZ plugin (#5790)\n\nrobinwithes (1):\n Fix NPE in Grand Exchange search caused by null entry (#5911)\n\ntrimbe (1):\n Kingdom Plugin: fix throne completion state check (#5874)\n
\n',image:"/img/blog/1.4.21-Release/bank-tag-tabs-intro.gif"}}}]);
+//# sourceMappingURL=66.80a1530c.chunk.js.map
\ No newline at end of file
diff --git a/static/js/66.03d16c6a.chunk.js.map b/static/js/66.80a1530c.chunk.js.map
similarity index 99%
rename from static/js/66.03d16c6a.chunk.js.map
rename to static/js/66.80a1530c.chunk.js.map
index 17f364da9..acaf3ff55 100644
--- a/static/js/66.03d16c6a.chunk.js.map
+++ b/static/js/66.80a1530c.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-10-11-10-00-1.4.21-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qIAAqI,OAAS,SAAS,KAAO,0vTAAq1T,MAAQ","file":"static/js/66.03d16c6a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.21 Release\",\"description\":\"Bank tag tabs, master clue 3-step cryptic solutions, partial grand exchange name searching, and various plugin visual improvements\",\"author\":\"Jordan\",\"body\":\"Bank tag tabs \\nThanks to the tireless work of @raiyni , and supporting work from\\n@deathbeam and @Abextm , we are proud\\nto offer a new bank tag experience in bank tag tabs!
\\n
\\nAs indicated above, tabs can be created for any number of tags by clicking the "+" button in the\\nupper-left-hand corner of the bank interface, and selecting these tabs will display items tagged\\nwith that tab's tag. More information regarding its features and functionalities can be found by\\nbrowsing the Bank Tags wiki\\npage .
\\nMaster clue 3-step cryptic solutions \\nThe Clue Scroll plugin now displays solutions for master-level three step cryptic clues, removing\\nsteps from the overlay as they are completed. Thanks to\\n@Eadgars-ruse for submitting\\n(and demonstrating in video form) this feature!
\\n \\n
\\nGrand Exchange partial name searching \\nThe Grand Exchange search panel and ingame !price
command now allow for partial name searching,\\nyielding better results than before. Thanks to @Adam- for implementing\\nthis enhancement.
\\n
\\nVisual improvements \\nThanks to @Adam- , @Monsterxsync ,\\n@psikoi , and\\n@SebastiaanVanspauwen respectively, a number of plugins\\nhave had their visuals updated, which can be seen below:
\\n\\nThe "To:" and "From:" in split private chat can now be recolored \\nA toggle has been added to use default skill coloring for XP globe progress arcs \\nXP globes' progress bar has been changed into an overlay directly on the globe to save space \\nA chatbox background image has been added to the 2005 interface style \\n \\n \\n \\n \\n
\\nThe Camera Zoom plugin has been disabled until we can fix it for the update today.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe percentage completion component of the XP tracker is now accurate to two decimal places \\nThe 2010 interface style has had some tab icon offsets updated to be more accurate to the style \\nCavaliers will now display their buy limit in the grand exchange plugin \\nMouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed \\nChat notification highlight words now ignore leading and trailing space for highlight terms \\nRegen meters should now be more accurate for the beginning and end of a regen cycle \\nOverlays snapped above chatbox will now be rendered when text input or chat dialogs are open \\nAn option has been added to the boosts overlay to display in yellow when below the boost threshold \\nNotifications have been added for highlighted ground items \\nThe Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu \\nThe Slayer plugin will now update when assigned a task through partner slayer \\nThe NPC HP overlay has been updated to use a more accurate HP formula \\nThe Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood \\nThe newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter \\nAn idle alert should no longer trigger after casting most Lunar spells \\nA toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\\nbeen added \\nThe Kingdom of Miscellania completion state check has been corrected \\nSeveral bank tag editing edge cases have been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (7):\\n feed controller: move feed result fetch to spring scheduler\\n http service: return item names in price lookup\\n http-api: modify ItemPrice to contain id/name instead of Item\\n mixins: fix runelite message not being cleared on reused messages nodes\\n chat message manager: add support for coloring to/from\\n runelite-client: update for search api changes\\n ge search: cap max results at 100\\n\\nBailey Townsend (1):\\n Add buy limit for cavalier hats to GE plugin (#5855)\\n\\nEadgars-Ruse (2):\\n Fix and improve cryptic clues\\n Add solutions for 3 step cryptic master clues\\n\\nEric White (1):\\n Increase XP tracker accuracy to 2 decimal places (#5845)\\n\\nGravitySalad (2):\\n Add additional search tags for interface styles and pve plugins\\n Change plugin search to include the plugin description\\n\\nJeremy Plsek (1):\\n 2010 styles: Fix emotes and music tab offsets (#5884)\\n\\nJordan Atwood (1):\\n mouse tooltips: Don't add a tooltip if another is present\\n\\nKamiel (3):\\n Fix chat notification highlight words split regex (#5798)\\n Change regen meter stroke end-cap style to CAP_BUTT\\n Fix snapped overlays above chatbox not being rendered\\n\\nMagic fTail (3):\\n Add support for making the boost colour yellow if below boost threshold\\n Update osrs wiki link\\n Stop CoX party size from showing before varb is loaded\\n\\nMarshall (1):\\n Add highlighted ground item notifications (#3647)\\n\\nMax Weber (7):\\n Add thread assertions to Widget\\n WidgetInspector: run on client thread\\n runelite-client: Make Widget::isHidden only run on client thread\\n Add thread assertion to getVar(Varbits)\\n runelite-client: Make getVar(Varbits) only run on the client thread\\n fairyring: Don't loose scroll position\\n timetracking: Show overview completion by tab, not implementation\\n\\nMonsterxsync (1):\\n Add default skill coloring to XP globe arcs\\n\\nNathen Sample (4):\\n Improve readability of stackformatter tests\\n Add support for partner assignment to slayer plugin (#5782)\\n Improve attack style plugin encapsulation (#5806)\\n Improve BA plugin encapsulation (#5807)\\n\\nRon Young (9):\\n Add bank-related widget ids, scripts and varbits\\n Add script for managing current bank tab\\n Add method for getting keys based on prefix from ConfigManager\\n Add tag tabs to bank tags plugin\\n More accurate NPC hp overlay when max hp is known (#5528)\\n widget: expose setchildren (#5309)\\n Don't update tags if interface is force closed\\n Don't change the active tab if tags are being edited\\n Don't assume bank title is the same as search str because it truncate...\\n\\nRuben Amendoeira (1):\\n XP Globes - Move progress bar display from tooltip to globe (#5856)\\n\\nSebastiaan Vanspauwen (1):\\n Interface plugin: Added 2005 chatbox\\n\\nTomas Slusny (15):\\n Fix Raids plugin varbit access not happening on client thread\\n Move map clue checking to MenuOptionClicked\\n Skip empty spots in Loot Tracker when getting items\\n Fix NPE in Miscellania plugin on DC\\n Use NpcSpawned/Despawned events for checking clue NPCs\\n Move clue inventory/equipment assignment to ItemContainerChanged\\n Inverse findClueScroll conditions\\n Do not set hint arrows for object clue scroll\\n Correctly highlight ObjectClueScroll for single location\\n Remove clue scroll timeout\\n Add executor service logger that logs exceptions\\n Remove unnecessary calls to RunnableExceptionLogger\\n Add method for standardizing text input to Text\\n Use TAG_SEARCH const instead of hardcoding "tag:" in Bank Tags\\n Properly reset search when deleting active tag tab\\n\\nTyler Nichols (2):\\n Remove unused variable "rank" in HiscorePanel (#5843)\\n Do not show quantity value for items with no GE/HA value (#5850)\\n\\nforsco (4):\\n Add new Al-Kharid palace agility shortcuts (#5800)\\n Remove idle alerts from Lunar Spells shared animation (#5863)\\n Fix spelling of Burthorpe Games Room in Discord Rich Presence (#5886)\\n Correct Burthorpe spelling for Discord rich presence\\n\\nmikek2 (1):\\n Add ultimate force notification trigger to NMZ plugin (#5790)\\n\\nrobinwithes (1):\\n Fix NPE in Grand Exchange search caused by null entry (#5911)\\n\\ntrimbe (1):\\n Kingdom Plugin: fix throne completion state check (#5874)\\n
\\n\",\"image\":\"/img/blog/1.4.21-Release/bank-tag-tabs-intro.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-10-11-10-00-1.4.21-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qIAAqI,OAAS,SAAS,KAAO,0vTAAq1T,MAAQ","file":"static/js/66.80a1530c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.21 Release\",\"description\":\"Bank tag tabs, master clue 3-step cryptic solutions, partial grand exchange name searching, and various plugin visual improvements\",\"author\":\"Jordan\",\"body\":\"Bank tag tabs \\nThanks to the tireless work of @raiyni , and supporting work from\\n@deathbeam and @Abextm , we are proud\\nto offer a new bank tag experience in bank tag tabs!
\\n
\\nAs indicated above, tabs can be created for any number of tags by clicking the "+" button in the\\nupper-left-hand corner of the bank interface, and selecting these tabs will display items tagged\\nwith that tab's tag. More information regarding its features and functionalities can be found by\\nbrowsing the Bank Tags wiki\\npage .
\\nMaster clue 3-step cryptic solutions \\nThe Clue Scroll plugin now displays solutions for master-level three step cryptic clues, removing\\nsteps from the overlay as they are completed. Thanks to\\n@Eadgars-ruse for submitting\\n(and demonstrating in video form) this feature!
\\n \\n
\\nGrand Exchange partial name searching \\nThe Grand Exchange search panel and ingame !price
command now allow for partial name searching,\\nyielding better results than before. Thanks to @Adam- for implementing\\nthis enhancement.
\\n
\\nVisual improvements \\nThanks to @Adam- , @Monsterxsync ,\\n@psikoi , and\\n@SebastiaanVanspauwen respectively, a number of plugins\\nhave had their visuals updated, which can be seen below:
\\n\\nThe "To:" and "From:" in split private chat can now be recolored \\nA toggle has been added to use default skill coloring for XP globe progress arcs \\nXP globes' progress bar has been changed into an overlay directly on the globe to save space \\nA chatbox background image has been added to the 2005 interface style \\n \\n \\n \\n \\n
\\nThe Camera Zoom plugin has been disabled until we can fix it for the update today.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe percentage completion component of the XP tracker is now accurate to two decimal places \\nThe 2010 interface style has had some tab icon offsets updated to be more accurate to the style \\nCavaliers will now display their buy limit in the grand exchange plugin \\nMouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed \\nChat notification highlight words now ignore leading and trailing space for highlight terms \\nRegen meters should now be more accurate for the beginning and end of a regen cycle \\nOverlays snapped above chatbox will now be rendered when text input or chat dialogs are open \\nAn option has been added to the boosts overlay to display in yellow when below the boost threshold \\nNotifications have been added for highlighted ground items \\nThe Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu \\nThe Slayer plugin will now update when assigned a task through partner slayer \\nThe NPC HP overlay has been updated to use a more accurate HP formula \\nThe Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood \\nThe newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter \\nAn idle alert should no longer trigger after casting most Lunar spells \\nA toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\\nbeen added \\nThe Kingdom of Miscellania completion state check has been corrected \\nSeveral bank tag editing edge cases have been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 23 contributors this release!
\\nAdam (7):\\n feed controller: move feed result fetch to spring scheduler\\n http service: return item names in price lookup\\n http-api: modify ItemPrice to contain id/name instead of Item\\n mixins: fix runelite message not being cleared on reused messages nodes\\n chat message manager: add support for coloring to/from\\n runelite-client: update for search api changes\\n ge search: cap max results at 100\\n\\nBailey Townsend (1):\\n Add buy limit for cavalier hats to GE plugin (#5855)\\n\\nEadgars-Ruse (2):\\n Fix and improve cryptic clues\\n Add solutions for 3 step cryptic master clues\\n\\nEric White (1):\\n Increase XP tracker accuracy to 2 decimal places (#5845)\\n\\nGravitySalad (2):\\n Add additional search tags for interface styles and pve plugins\\n Change plugin search to include the plugin description\\n\\nJeremy Plsek (1):\\n 2010 styles: Fix emotes and music tab offsets (#5884)\\n\\nJordan Atwood (1):\\n mouse tooltips: Don't add a tooltip if another is present\\n\\nKamiel (3):\\n Fix chat notification highlight words split regex (#5798)\\n Change regen meter stroke end-cap style to CAP_BUTT\\n Fix snapped overlays above chatbox not being rendered\\n\\nMagic fTail (3):\\n Add support for making the boost colour yellow if below boost threshold\\n Update osrs wiki link\\n Stop CoX party size from showing before varb is loaded\\n\\nMarshall (1):\\n Add highlighted ground item notifications (#3647)\\n\\nMax Weber (7):\\n Add thread assertions to Widget\\n WidgetInspector: run on client thread\\n runelite-client: Make Widget::isHidden only run on client thread\\n Add thread assertion to getVar(Varbits)\\n runelite-client: Make getVar(Varbits) only run on the client thread\\n fairyring: Don't loose scroll position\\n timetracking: Show overview completion by tab, not implementation\\n\\nMonsterxsync (1):\\n Add default skill coloring to XP globe arcs\\n\\nNathen Sample (4):\\n Improve readability of stackformatter tests\\n Add support for partner assignment to slayer plugin (#5782)\\n Improve attack style plugin encapsulation (#5806)\\n Improve BA plugin encapsulation (#5807)\\n\\nRon Young (9):\\n Add bank-related widget ids, scripts and varbits\\n Add script for managing current bank tab\\n Add method for getting keys based on prefix from ConfigManager\\n Add tag tabs to bank tags plugin\\n More accurate NPC hp overlay when max hp is known (#5528)\\n widget: expose setchildren (#5309)\\n Don't update tags if interface is force closed\\n Don't change the active tab if tags are being edited\\n Don't assume bank title is the same as search str because it truncate...\\n\\nRuben Amendoeira (1):\\n XP Globes - Move progress bar display from tooltip to globe (#5856)\\n\\nSebastiaan Vanspauwen (1):\\n Interface plugin: Added 2005 chatbox\\n\\nTomas Slusny (15):\\n Fix Raids plugin varbit access not happening on client thread\\n Move map clue checking to MenuOptionClicked\\n Skip empty spots in Loot Tracker when getting items\\n Fix NPE in Miscellania plugin on DC\\n Use NpcSpawned/Despawned events for checking clue NPCs\\n Move clue inventory/equipment assignment to ItemContainerChanged\\n Inverse findClueScroll conditions\\n Do not set hint arrows for object clue scroll\\n Correctly highlight ObjectClueScroll for single location\\n Remove clue scroll timeout\\n Add executor service logger that logs exceptions\\n Remove unnecessary calls to RunnableExceptionLogger\\n Add method for standardizing text input to Text\\n Use TAG_SEARCH const instead of hardcoding "tag:" in Bank Tags\\n Properly reset search when deleting active tag tab\\n\\nTyler Nichols (2):\\n Remove unused variable "rank" in HiscorePanel (#5843)\\n Do not show quantity value for items with no GE/HA value (#5850)\\n\\nforsco (4):\\n Add new Al-Kharid palace agility shortcuts (#5800)\\n Remove idle alerts from Lunar Spells shared animation (#5863)\\n Fix spelling of Burthorpe Games Room in Discord Rich Presence (#5886)\\n Correct Burthorpe spelling for Discord rich presence\\n\\nmikek2 (1):\\n Add ultimate force notification trigger to NMZ plugin (#5790)\\n\\nrobinwithes (1):\\n Fix NPE in Grand Exchange search caused by null entry (#5911)\\n\\ntrimbe (1):\\n Kingdom Plugin: fix throne completion state check (#5874)\\n
\\n\",\"image\":\"/img/blog/1.4.21-Release/bank-tag-tabs-intro.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/67.9bc6f711.chunk.js b/static/js/67.8440ab78.chunk.js
similarity index 98%
rename from static/js/67.9bc6f711.chunk.js
rename to static/js/67.8440ab78.chunk.js
index 9b83c1f19..51f4a84f2 100644
--- a/static/js/67.9bc6f711.chunk.js
+++ b/static/js/67.8440ab78.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[67],{342:function(e,n){e.exports={title:"1.4.22 Release",description:"Recent clan chat listings, inventory/equipment tagging and tag tab export/import",author:"Jordan",body:'Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks\nto @raiyni for this feature.
\n
\nAn enhancement has been added to the bank tags feature to tag items in your inventory or equipment\ndirectly, also thanks to @raiyni .
\n
\nTag tabs can now be imported from and exported to the clipboard. After exporting tag tab from RuneLite,\nclipboard contents should look like this (this is mining tag tab with prospectors and d pick):
\nmining,12797,12020,12019,12016,12015,12014,12797,1712,1710\n
\nand you can view it online here .\nThanks to @deathbeam for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen \nMotherlode Mine and raiding have been added to the Discord plugin activity reporter \nPrivate messages received from player moderators are now properly recolored \nThe Chambers of Xeric scouting overlay now displays while at the nearby bank \nBank tag icons now display a higher quantity for stackable items \nBank searching (and thus bank tags) now allows for terms larger than 15 characters \nThe wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\nmoveable \nFixed some slayer plugin parsing bugs \nAn option has been added to the Bank Tags plugin to remember the last-opened tag tab \nAn option has been added to the Runelite settings to display your username in the window title \nSome bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added \nRunelite on OSX will now attempt to use terminal-notifier for better-quality notifications \nThe Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (2):\n Revert "Remove zoom plugin"\n clue plugin: fix spelling of Peksa\'s name\n\nBruno_ (1):\n Fix OSB price duplicationon delayed lookup (#5860)\n\nConnor S. Parks (1):\n DiscordPlugin: Add MLM\n\nFarmour (1):\n Add PRIVATE_MESSAGE_RECEIVED_MOD to chat recoloring (#5977)\n\nHydrox6 (1):\n Correctly reset widget.originalY in WidgetOverlay (#6004)\n\nJordan Atwood (3):\n time tracking: Remove deprecated config migration\n GameEventManager: Simulate Actor spawn events\n slayer: Add combat bracelet task update handling\n\nKamiel (2):\n Fix raid scout overlay not rendering at bank\n Add examine info to dev tools\n\nMagic fTail (1):\n Fix zoom after update\n\nMattias Cederlund (1):\n Fix ASGARNIA_MIAZRQA Hot-Cold clue location.\n\nNathen (1):\n Log if we fail to match clue text\n\nRon Young (11):\n Fix spellbook home teleport widget ids (#5928)\n ConfigManager: don\'t post an update if the values are the same (#5480)\n Add recent clan chats plugin\n Bank tags: add ability to tag inventory/equipment (#5988)\n Tag tabs: Add to existing tags instead of overwriting them from inv/eq (#6025)\n widget: expose itemQuantityMode (#6020)\n Tag tabs: show largest quantity icon (#6040)\n Relate worn weight reducing items to their inventory version\n Don\'t show recent clan chats with CC req popup (#6067)\n Don\'t limit bank search explicitly to 15 characters\n Don\'t fetch itemid of Change Icon menu option on tabs\n\nSebastiaanVanspauwen (1):\n WidgetOverlay: Make k/d counter moveable (#5829)\n\nTomas Slusny (34):\n Make bounty hunter stats widget layoutable\n Move raid scouter layout to title\n Correctly parse slayer task with the and breaks in npc name\n Do not reset equipment/inventory in clues croll plugin each tick\n Remove duplicate "Patches" from time track overview\n Add Gout Tuber heal info to Item Stats plugin\n Add option to remember last opened tag tab\n Fix cave kraken boss task name\n Add optional "the" when checking slayer task progress message\n Remove invalid properties from map on property load\n Use UTF-8 instead of ISO 8859-1 when loading/saving config\n Lock configuration file when writing to filesystem\n Reorder menu swaps again by name\n Add quick pass/travel/start menu entry swapping\n Disable bury and harpoon swaps by default\n Limit widget overlay bounds to parent\n Move ChatMessageManager#refreshAll to client thread\n Move local player hiscore type check to client thread\n Add option to choose interface (layoutable) overlay font\n Add toggle for displaying username in title\n Sort config panel options by name as well\n Add raiding activity to Discord plugin\n Make 3 step cryptic clues more robust (better splitting)\n Null-check location for multi-location clues\n Fix punctionation in "Fiendish cooks" cryptic clue\n Add ability to import/export tag tabs with clipboard\n Properly update 3 step cryptic clues on step completion\n Use terminal-notifier when available for OSX\n Unify calls for getting real item id for bank tag\n Make Zeah Mess Hall display layoutable\n Invoke GameEventManager events on ClientThread\n Clear hint arrow when switching 3 step NPCs\n Update active tag tab containing edited tag\n Filter > 0 when tagging inventory/equipment\n\nellscape (1):\n Mystic Mist Staff buy limit corrected from 6 to 8\n\nforsco (1):\n Remove switch case for swapQuick that would cause rest of swaps to be skipped (#6007)\n\nrobinwithes (4):\n Update slayer task based on VarPlayer value if available (#5989)\n Revert "Update slayer task based on VarPlayer value if available (#5989)"\n Add diamond bolts to the ge limits (#6042)\n Add lockpick requirement to magical axe hut clue (#6045)\n\ntrimbe (1):\n Fix lava maze dungeon cryptic clue\n
\n',image:"/img/blog/1.4.22-Release/recent-clan-chats-listing.png"}}}]);
-//# sourceMappingURL=67.9bc6f711.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[67],{343:function(e,n){e.exports={title:"1.4.22 Release",description:"Recent clan chat listings, inventory/equipment tagging and tag tab export/import",author:"Jordan",body:'Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks\nto @raiyni for this feature.
\n
\nAn enhancement has been added to the bank tags feature to tag items in your inventory or equipment\ndirectly, also thanks to @raiyni .
\n
\nTag tabs can now be imported from and exported to the clipboard. After exporting tag tab from RuneLite,\nclipboard contents should look like this (this is mining tag tab with prospectors and d pick):
\nmining,12797,12020,12019,12016,12015,12014,12797,1712,1710\n
\nand you can view it online here .\nThanks to @deathbeam for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen \nMotherlode Mine and raiding have been added to the Discord plugin activity reporter \nPrivate messages received from player moderators are now properly recolored \nThe Chambers of Xeric scouting overlay now displays while at the nearby bank \nBank tag icons now display a higher quantity for stackable items \nBank searching (and thus bank tags) now allows for terms larger than 15 characters \nThe wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\nmoveable \nFixed some slayer plugin parsing bugs \nAn option has been added to the Bank Tags plugin to remember the last-opened tag tab \nAn option has been added to the Runelite settings to display your username in the window title \nSome bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added \nRunelite on OSX will now attempt to use terminal-notifier for better-quality notifications \nThe Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (2):\n Revert "Remove zoom plugin"\n clue plugin: fix spelling of Peksa\'s name\n\nBruno_ (1):\n Fix OSB price duplicationon delayed lookup (#5860)\n\nConnor S. Parks (1):\n DiscordPlugin: Add MLM\n\nFarmour (1):\n Add PRIVATE_MESSAGE_RECEIVED_MOD to chat recoloring (#5977)\n\nHydrox6 (1):\n Correctly reset widget.originalY in WidgetOverlay (#6004)\n\nJordan Atwood (3):\n time tracking: Remove deprecated config migration\n GameEventManager: Simulate Actor spawn events\n slayer: Add combat bracelet task update handling\n\nKamiel (2):\n Fix raid scout overlay not rendering at bank\n Add examine info to dev tools\n\nMagic fTail (1):\n Fix zoom after update\n\nMattias Cederlund (1):\n Fix ASGARNIA_MIAZRQA Hot-Cold clue location.\n\nNathen (1):\n Log if we fail to match clue text\n\nRon Young (11):\n Fix spellbook home teleport widget ids (#5928)\n ConfigManager: don\'t post an update if the values are the same (#5480)\n Add recent clan chats plugin\n Bank tags: add ability to tag inventory/equipment (#5988)\n Tag tabs: Add to existing tags instead of overwriting them from inv/eq (#6025)\n widget: expose itemQuantityMode (#6020)\n Tag tabs: show largest quantity icon (#6040)\n Relate worn weight reducing items to their inventory version\n Don\'t show recent clan chats with CC req popup (#6067)\n Don\'t limit bank search explicitly to 15 characters\n Don\'t fetch itemid of Change Icon menu option on tabs\n\nSebastiaanVanspauwen (1):\n WidgetOverlay: Make k/d counter moveable (#5829)\n\nTomas Slusny (34):\n Make bounty hunter stats widget layoutable\n Move raid scouter layout to title\n Correctly parse slayer task with the and breaks in npc name\n Do not reset equipment/inventory in clues croll plugin each tick\n Remove duplicate "Patches" from time track overview\n Add Gout Tuber heal info to Item Stats plugin\n Add option to remember last opened tag tab\n Fix cave kraken boss task name\n Add optional "the" when checking slayer task progress message\n Remove invalid properties from map on property load\n Use UTF-8 instead of ISO 8859-1 when loading/saving config\n Lock configuration file when writing to filesystem\n Reorder menu swaps again by name\n Add quick pass/travel/start menu entry swapping\n Disable bury and harpoon swaps by default\n Limit widget overlay bounds to parent\n Move ChatMessageManager#refreshAll to client thread\n Move local player hiscore type check to client thread\n Add option to choose interface (layoutable) overlay font\n Add toggle for displaying username in title\n Sort config panel options by name as well\n Add raiding activity to Discord plugin\n Make 3 step cryptic clues more robust (better splitting)\n Null-check location for multi-location clues\n Fix punctionation in "Fiendish cooks" cryptic clue\n Add ability to import/export tag tabs with clipboard\n Properly update 3 step cryptic clues on step completion\n Use terminal-notifier when available for OSX\n Unify calls for getting real item id for bank tag\n Make Zeah Mess Hall display layoutable\n Invoke GameEventManager events on ClientThread\n Clear hint arrow when switching 3 step NPCs\n Update active tag tab containing edited tag\n Filter > 0 when tagging inventory/equipment\n\nellscape (1):\n Mystic Mist Staff buy limit corrected from 6 to 8\n\nforsco (1):\n Remove switch case for swapQuick that would cause rest of swaps to be skipped (#6007)\n\nrobinwithes (4):\n Update slayer task based on VarPlayer value if available (#5989)\n Revert "Update slayer task based on VarPlayer value if available (#5989)"\n Add diamond bolts to the ge limits (#6042)\n Add lockpick requirement to magical axe hut clue (#6045)\n\ntrimbe (1):\n Fix lava maze dungeon cryptic clue\n
\n',image:"/img/blog/1.4.22-Release/recent-clan-chats-listing.png"}}}]);
+//# sourceMappingURL=67.8440ab78.chunk.js.map
\ No newline at end of file
diff --git a/static/js/67.9bc6f711.chunk.js.map b/static/js/67.8440ab78.chunk.js.map
similarity index 99%
rename from static/js/67.9bc6f711.chunk.js.map
rename to static/js/67.8440ab78.chunk.js.map
index 5ad1893e6..b3aa07a6c 100644
--- a/static/js/67.9bc6f711.chunk.js.map
+++ b/static/js/67.8440ab78.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-10-18-10-00-1.4.22-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mFAAmF,OAAS,SAAS,KAAO,0tNAAyvN,MAAQ","file":"static/js/67.9bc6f711.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.22 Release\",\"description\":\"Recent clan chat listings, inventory/equipment tagging and tag tab export/import\",\"author\":\"Jordan\",\"body\":\"Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks\\nto @raiyni for this feature.
\\n
\\nAn enhancement has been added to the bank tags feature to tag items in your inventory or equipment\\ndirectly, also thanks to @raiyni .
\\n
\\nTag tabs can now be imported from and exported to the clipboard. After exporting tag tab from RuneLite,\\nclipboard contents should look like this (this is mining tag tab with prospectors and d pick):
\\nmining,12797,12020,12019,12016,12015,12014,12797,1712,1710\\n
\\nand you can view it online here .\\nThanks to @deathbeam for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen \\nMotherlode Mine and raiding have been added to the Discord plugin activity reporter \\nPrivate messages received from player moderators are now properly recolored \\nThe Chambers of Xeric scouting overlay now displays while at the nearby bank \\nBank tag icons now display a higher quantity for stackable items \\nBank searching (and thus bank tags) now allows for terms larger than 15 characters \\nThe wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\\nmoveable \\nFixed some slayer plugin parsing bugs \\nAn option has been added to the Bank Tags plugin to remember the last-opened tag tab \\nAn option has been added to the Runelite settings to display your username in the window title \\nSome bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added \\nRunelite on OSX will now attempt to use terminal-notifier for better-quality notifications \\nThe Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (2):\\n Revert "Remove zoom plugin"\\n clue plugin: fix spelling of Peksa's name\\n\\nBruno_ (1):\\n Fix OSB price duplicationon delayed lookup (#5860)\\n\\nConnor S. Parks (1):\\n DiscordPlugin: Add MLM\\n\\nFarmour (1):\\n Add PRIVATE_MESSAGE_RECEIVED_MOD to chat recoloring (#5977)\\n\\nHydrox6 (1):\\n Correctly reset widget.originalY in WidgetOverlay (#6004)\\n\\nJordan Atwood (3):\\n time tracking: Remove deprecated config migration\\n GameEventManager: Simulate Actor spawn events\\n slayer: Add combat bracelet task update handling\\n\\nKamiel (2):\\n Fix raid scout overlay not rendering at bank\\n Add examine info to dev tools\\n\\nMagic fTail (1):\\n Fix zoom after update\\n\\nMattias Cederlund (1):\\n Fix ASGARNIA_MIAZRQA Hot-Cold clue location.\\n\\nNathen (1):\\n Log if we fail to match clue text\\n\\nRon Young (11):\\n Fix spellbook home teleport widget ids (#5928)\\n ConfigManager: don't post an update if the values are the same (#5480)\\n Add recent clan chats plugin\\n Bank tags: add ability to tag inventory/equipment (#5988)\\n Tag tabs: Add to existing tags instead of overwriting them from inv/eq (#6025)\\n widget: expose itemQuantityMode (#6020)\\n Tag tabs: show largest quantity icon (#6040)\\n Relate worn weight reducing items to their inventory version\\n Don't show recent clan chats with CC req popup (#6067)\\n Don't limit bank search explicitly to 15 characters\\n Don't fetch itemid of Change Icon menu option on tabs\\n\\nSebastiaanVanspauwen (1):\\n WidgetOverlay: Make k/d counter moveable (#5829)\\n\\nTomas Slusny (34):\\n Make bounty hunter stats widget layoutable\\n Move raid scouter layout to title\\n Correctly parse slayer task with the and breaks in npc name\\n Do not reset equipment/inventory in clues croll plugin each tick\\n Remove duplicate "Patches" from time track overview\\n Add Gout Tuber heal info to Item Stats plugin\\n Add option to remember last opened tag tab\\n Fix cave kraken boss task name\\n Add optional "the" when checking slayer task progress message\\n Remove invalid properties from map on property load\\n Use UTF-8 instead of ISO 8859-1 when loading/saving config\\n Lock configuration file when writing to filesystem\\n Reorder menu swaps again by name\\n Add quick pass/travel/start menu entry swapping\\n Disable bury and harpoon swaps by default\\n Limit widget overlay bounds to parent\\n Move ChatMessageManager#refreshAll to client thread\\n Move local player hiscore type check to client thread\\n Add option to choose interface (layoutable) overlay font\\n Add toggle for displaying username in title\\n Sort config panel options by name as well\\n Add raiding activity to Discord plugin\\n Make 3 step cryptic clues more robust (better splitting)\\n Null-check location for multi-location clues\\n Fix punctionation in "Fiendish cooks" cryptic clue\\n Add ability to import/export tag tabs with clipboard\\n Properly update 3 step cryptic clues on step completion\\n Use terminal-notifier when available for OSX\\n Unify calls for getting real item id for bank tag\\n Make Zeah Mess Hall display layoutable\\n Invoke GameEventManager events on ClientThread\\n Clear hint arrow when switching 3 step NPCs\\n Update active tag tab containing edited tag\\n Filter > 0 when tagging inventory/equipment\\n\\nellscape (1):\\n Mystic Mist Staff buy limit corrected from 6 to 8\\n\\nforsco (1):\\n Remove switch case for swapQuick that would cause rest of swaps to be skipped (#6007)\\n\\nrobinwithes (4):\\n Update slayer task based on VarPlayer value if available (#5989)\\n Revert "Update slayer task based on VarPlayer value if available (#5989)"\\n Add diamond bolts to the ge limits (#6042)\\n Add lockpick requirement to magical axe hut clue (#6045)\\n\\ntrimbe (1):\\n Fix lava maze dungeon cryptic clue\\n
\\n\",\"image\":\"/img/blog/1.4.22-Release/recent-clan-chats-listing.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-10-18-10-00-1.4.22-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mFAAmF,OAAS,SAAS,KAAO,0tNAAyvN,MAAQ","file":"static/js/67.8440ab78.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.22 Release\",\"description\":\"Recent clan chat listings, inventory/equipment tagging and tag tab export/import\",\"author\":\"Jordan\",\"body\":\"Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks\\nto @raiyni for this feature.
\\n
\\nAn enhancement has been added to the bank tags feature to tag items in your inventory or equipment\\ndirectly, also thanks to @raiyni .
\\n
\\nTag tabs can now be imported from and exported to the clipboard. After exporting tag tab from RuneLite,\\nclipboard contents should look like this (this is mining tag tab with prospectors and d pick):
\\nmining,12797,12020,12019,12016,12015,12014,12797,1712,1710\\n
\\nand you can view it online here .\\nThanks to @deathbeam for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen \\nMotherlode Mine and raiding have been added to the Discord plugin activity reporter \\nPrivate messages received from player moderators are now properly recolored \\nThe Chambers of Xeric scouting overlay now displays while at the nearby bank \\nBank tag icons now display a higher quantity for stackable items \\nBank searching (and thus bank tags) now allows for terms larger than 15 characters \\nThe wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\\nmoveable \\nFixed some slayer plugin parsing bugs \\nAn option has been added to the Bank Tags plugin to remember the last-opened tag tab \\nAn option has been added to the Runelite settings to display your username in the window title \\nSome bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added \\nRunelite on OSX will now attempt to use terminal-notifier for better-quality notifications \\nThe Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (2):\\n Revert "Remove zoom plugin"\\n clue plugin: fix spelling of Peksa's name\\n\\nBruno_ (1):\\n Fix OSB price duplicationon delayed lookup (#5860)\\n\\nConnor S. Parks (1):\\n DiscordPlugin: Add MLM\\n\\nFarmour (1):\\n Add PRIVATE_MESSAGE_RECEIVED_MOD to chat recoloring (#5977)\\n\\nHydrox6 (1):\\n Correctly reset widget.originalY in WidgetOverlay (#6004)\\n\\nJordan Atwood (3):\\n time tracking: Remove deprecated config migration\\n GameEventManager: Simulate Actor spawn events\\n slayer: Add combat bracelet task update handling\\n\\nKamiel (2):\\n Fix raid scout overlay not rendering at bank\\n Add examine info to dev tools\\n\\nMagic fTail (1):\\n Fix zoom after update\\n\\nMattias Cederlund (1):\\n Fix ASGARNIA_MIAZRQA Hot-Cold clue location.\\n\\nNathen (1):\\n Log if we fail to match clue text\\n\\nRon Young (11):\\n Fix spellbook home teleport widget ids (#5928)\\n ConfigManager: don't post an update if the values are the same (#5480)\\n Add recent clan chats plugin\\n Bank tags: add ability to tag inventory/equipment (#5988)\\n Tag tabs: Add to existing tags instead of overwriting them from inv/eq (#6025)\\n widget: expose itemQuantityMode (#6020)\\n Tag tabs: show largest quantity icon (#6040)\\n Relate worn weight reducing items to their inventory version\\n Don't show recent clan chats with CC req popup (#6067)\\n Don't limit bank search explicitly to 15 characters\\n Don't fetch itemid of Change Icon menu option on tabs\\n\\nSebastiaanVanspauwen (1):\\n WidgetOverlay: Make k/d counter moveable (#5829)\\n\\nTomas Slusny (34):\\n Make bounty hunter stats widget layoutable\\n Move raid scouter layout to title\\n Correctly parse slayer task with the and breaks in npc name\\n Do not reset equipment/inventory in clues croll plugin each tick\\n Remove duplicate "Patches" from time track overview\\n Add Gout Tuber heal info to Item Stats plugin\\n Add option to remember last opened tag tab\\n Fix cave kraken boss task name\\n Add optional "the" when checking slayer task progress message\\n Remove invalid properties from map on property load\\n Use UTF-8 instead of ISO 8859-1 when loading/saving config\\n Lock configuration file when writing to filesystem\\n Reorder menu swaps again by name\\n Add quick pass/travel/start menu entry swapping\\n Disable bury and harpoon swaps by default\\n Limit widget overlay bounds to parent\\n Move ChatMessageManager#refreshAll to client thread\\n Move local player hiscore type check to client thread\\n Add option to choose interface (layoutable) overlay font\\n Add toggle for displaying username in title\\n Sort config panel options by name as well\\n Add raiding activity to Discord plugin\\n Make 3 step cryptic clues more robust (better splitting)\\n Null-check location for multi-location clues\\n Fix punctionation in "Fiendish cooks" cryptic clue\\n Add ability to import/export tag tabs with clipboard\\n Properly update 3 step cryptic clues on step completion\\n Use terminal-notifier when available for OSX\\n Unify calls for getting real item id for bank tag\\n Make Zeah Mess Hall display layoutable\\n Invoke GameEventManager events on ClientThread\\n Clear hint arrow when switching 3 step NPCs\\n Update active tag tab containing edited tag\\n Filter > 0 when tagging inventory/equipment\\n\\nellscape (1):\\n Mystic Mist Staff buy limit corrected from 6 to 8\\n\\nforsco (1):\\n Remove switch case for swapQuick that would cause rest of swaps to be skipped (#6007)\\n\\nrobinwithes (4):\\n Update slayer task based on VarPlayer value if available (#5989)\\n Revert "Update slayer task based on VarPlayer value if available (#5989)"\\n Add diamond bolts to the ge limits (#6042)\\n Add lockpick requirement to magical axe hut clue (#6045)\\n\\ntrimbe (1):\\n Fix lava maze dungeon cryptic clue\\n
\\n\",\"image\":\"/img/blog/1.4.22-Release/recent-clan-chats-listing.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/68.b1683b7a.chunk.js b/static/js/68.5649893f.chunk.js
similarity index 98%
rename from static/js/68.b1683b7a.chunk.js
rename to static/js/68.5649893f.chunk.js
index f4df6c75f..8fbb4d0ec 100644
--- a/static/js/68.b1683b7a.chunk.js
+++ b/static/js/68.5649893f.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[68],{343:function(e,n){e.exports={title:"1.4.23 Release",description:"Twitch plugin, POH incense burner timers, ignore loot tracker items, and banked clue item search",author:"Jordan",body:'New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel.\nAll messages received from this channel are sent in clan chat type with prefix [Twitch] and you\ncan reply to messages by prefixing your message with //
.
\n
\nThe Player-owned House plugin now\ndisplays a timer for incense burners. The time per light is variable based on the lighter\'s\nFiremaking level, so it will display a green timer while it is guaranteed to remain lit, and a\nyellow timer for the estimated extra time. Thanks to @deathbeam and\n@forsco for this feature.
\n
\nThe Loot Tracker plugin has a new\nconfiguration to ignore certain loot drops, which will dim these items and exclude their value from\nthe displayed loot value, and a toggle for whether they should appear in the loot tracker display\nat all. Thanks to @psikoi for making this feature possible!
\n \n \n
\nItems required for clue steps are now automatically (and implicitly) tagged "clue", and can be\nsearched for in the bank. Never waste time poring through your bank for the exact items you need\nagain! Thanks to @raiyni for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nRecent clan chat listings with spaces in their names no longer become corrupted \nMultiple marks of grace can now be highlighted while training on rooftop agility courses \nMounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\nentry swapper plugin \nIf set, XP globes now use the ingame skill goals for displaying completion progress \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (3):\n Wait for process termination when sending notifications\n config panel: add support for password fields\n runelite-client: add Twitch chat plugin\n\nBrett (1):\n Add idle notification for mixing ultracompost (#6052)\n\nChristopher O\'Hara (1):\n Show hop-to option in clan chat menu when target player is a friend and their private chat is off\n\nJordan Atwood (1):\n mta telekinetic room: Fix finish point comparison\n\nKasparRosin (1):\n Replace Ardougne cloak with Explorer\'s ring in MES teleport description (#6158)\n\nLotto (3):\n Change \'username\' to \'player name\' in usernameInTitle\n puzzlesolver: break out -1 piece value into a constant\n puzzlesolver: make exclusive use of PuzzleSolver\'s constants\n\nMax Weber (10):\n runelite-api: Make MouseListener an interface, add MouseAdapter\n Add JavaScriptCallback to allow java callbacks instead of cs2\n Add ChatboxPanelManager to allow for more advanced chatbox inputs\n fairyrings: Use ChatboxPanelManager\'s input\n ChatboxTextInput: Assume end cursor when changing value\n ChatboxTextInput: Don\'t divide by zero when clicking on an empty string\n ChatboxTextMenuInput: return this from build\n ChatboxTextInput: Fix blinking cursor\n loottracker: Lazily rebuild panels\n Limit amount of LootTrackerBoxes to 500\n\nRobin Withes (2):\n Add tears of guthix rock obstacle to agility obstacles (#6096)\n Add draynor stile obstacle to agility plugin (#6112)\n\nRon Young (6):\n text: Add Jagex name formatter\n clan chat plugin: Use Jagex name format\n Add clue scroll service\n Hookup clue scroll service dependency\n Add fulfilledBy(int itemId) to item requirements\n Add ability to search for current clue required items\n\nRuben Amendoeira (1):\n Loot tracker - Add ability to ignore items (#5483)\n\nSebastiaan Vanspauwen (1):\n agility plugin: highlight multiple marks\n\nTomas Slusny (16):\n Make colon (":") enter chat in WASD mode\n Make special attack counter respect ids and npc deaths\n Remove positions from Timers plugin config\n Merge common configs in Timers plugin\n Remove position config from menu entry swapper\n Add swap for "Admire" and "Teleport/Spellbook" for mounted capes (#5994)\n Make HiScore lookup always deprioritized\n Prevent tag tab scrolling to scroll bank interface\n Add missing dot to "She\'s small" cryptic\n Add POH incense burner timers\n Swap also "quick pass" in Cerb lair\n Add startGoalXp and endGoalXp to XpTrackerService\n Use startGoalXp and endGoalXp for goals in XP globes\n Keep WidgetOverlay always on UNDER_WIDGETS layer\n Calculate total count/value from loot records instead of boxes\n Prevent NPE in recent clan chats when var is null\n\nTyler Nichols (1):\n mta plugin: remove pointless int cast\n\nWooxSolo (1):\n Rename getUnknownSoundValues2\n
\n',image:"/img/blog/1.4.23-Release/twitch.png"}}}]);
-//# sourceMappingURL=68.b1683b7a.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[68],{344:function(e,n){e.exports={title:"1.4.23 Release",description:"Twitch plugin, POH incense burner timers, ignore loot tracker items, and banked clue item search",author:"Jordan",body:'New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel.\nAll messages received from this channel are sent in clan chat type with prefix [Twitch] and you\ncan reply to messages by prefixing your message with //
.
\n
\nThe Player-owned House plugin now\ndisplays a timer for incense burners. The time per light is variable based on the lighter\'s\nFiremaking level, so it will display a green timer while it is guaranteed to remain lit, and a\nyellow timer for the estimated extra time. Thanks to @deathbeam and\n@forsco for this feature.
\n
\nThe Loot Tracker plugin has a new\nconfiguration to ignore certain loot drops, which will dim these items and exclude their value from\nthe displayed loot value, and a toggle for whether they should appear in the loot tracker display\nat all. Thanks to @psikoi for making this feature possible!
\n \n \n
\nItems required for clue steps are now automatically (and implicitly) tagged "clue", and can be\nsearched for in the bank. Never waste time poring through your bank for the exact items you need\nagain! Thanks to @raiyni for this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nRecent clan chat listings with spaces in their names no longer become corrupted \nMultiple marks of grace can now be highlighted while training on rooftop agility courses \nMounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\nentry swapper plugin \nIf set, XP globes now use the ingame skill goals for displaying completion progress \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (3):\n Wait for process termination when sending notifications\n config panel: add support for password fields\n runelite-client: add Twitch chat plugin\n\nBrett (1):\n Add idle notification for mixing ultracompost (#6052)\n\nChristopher O\'Hara (1):\n Show hop-to option in clan chat menu when target player is a friend and their private chat is off\n\nJordan Atwood (1):\n mta telekinetic room: Fix finish point comparison\n\nKasparRosin (1):\n Replace Ardougne cloak with Explorer\'s ring in MES teleport description (#6158)\n\nLotto (3):\n Change \'username\' to \'player name\' in usernameInTitle\n puzzlesolver: break out -1 piece value into a constant\n puzzlesolver: make exclusive use of PuzzleSolver\'s constants\n\nMax Weber (10):\n runelite-api: Make MouseListener an interface, add MouseAdapter\n Add JavaScriptCallback to allow java callbacks instead of cs2\n Add ChatboxPanelManager to allow for more advanced chatbox inputs\n fairyrings: Use ChatboxPanelManager\'s input\n ChatboxTextInput: Assume end cursor when changing value\n ChatboxTextInput: Don\'t divide by zero when clicking on an empty string\n ChatboxTextMenuInput: return this from build\n ChatboxTextInput: Fix blinking cursor\n loottracker: Lazily rebuild panels\n Limit amount of LootTrackerBoxes to 500\n\nRobin Withes (2):\n Add tears of guthix rock obstacle to agility obstacles (#6096)\n Add draynor stile obstacle to agility plugin (#6112)\n\nRon Young (6):\n text: Add Jagex name formatter\n clan chat plugin: Use Jagex name format\n Add clue scroll service\n Hookup clue scroll service dependency\n Add fulfilledBy(int itemId) to item requirements\n Add ability to search for current clue required items\n\nRuben Amendoeira (1):\n Loot tracker - Add ability to ignore items (#5483)\n\nSebastiaan Vanspauwen (1):\n agility plugin: highlight multiple marks\n\nTomas Slusny (16):\n Make colon (":") enter chat in WASD mode\n Make special attack counter respect ids and npc deaths\n Remove positions from Timers plugin config\n Merge common configs in Timers plugin\n Remove position config from menu entry swapper\n Add swap for "Admire" and "Teleport/Spellbook" for mounted capes (#5994)\n Make HiScore lookup always deprioritized\n Prevent tag tab scrolling to scroll bank interface\n Add missing dot to "She\'s small" cryptic\n Add POH incense burner timers\n Swap also "quick pass" in Cerb lair\n Add startGoalXp and endGoalXp to XpTrackerService\n Use startGoalXp and endGoalXp for goals in XP globes\n Keep WidgetOverlay always on UNDER_WIDGETS layer\n Calculate total count/value from loot records instead of boxes\n Prevent NPE in recent clan chats when var is null\n\nTyler Nichols (1):\n mta plugin: remove pointless int cast\n\nWooxSolo (1):\n Rename getUnknownSoundValues2\n
\n',image:"/img/blog/1.4.23-Release/twitch.png"}}}]);
+//# sourceMappingURL=68.5649893f.chunk.js.map
\ No newline at end of file
diff --git a/static/js/68.b1683b7a.chunk.js.map b/static/js/68.5649893f.chunk.js.map
similarity index 99%
rename from static/js/68.b1683b7a.chunk.js.map
rename to static/js/68.5649893f.chunk.js.map
index 2a3edf425..5988695fe 100644
--- a/static/js/68.b1683b7a.chunk.js.map
+++ b/static/js/68.5649893f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-10-25-10-00-1.4.23-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mGAAmG,OAAS,SAAS,KAAO,+zLAAg3L,MAAQ","file":"static/js/68.b1683b7a.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.23 Release\",\"description\":\"Twitch plugin, POH incense burner timers, ignore loot tracker items, and banked clue item search\",\"author\":\"Jordan\",\"body\":\"New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel.\\nAll messages received from this channel are sent in clan chat type with prefix [Twitch] and you\\ncan reply to messages by prefixing your message with //
.
\\n
\\nThe Player-owned House plugin now\\ndisplays a timer for incense burners. The time per light is variable based on the lighter's\\nFiremaking level, so it will display a green timer while it is guaranteed to remain lit, and a\\nyellow timer for the estimated extra time. Thanks to @deathbeam and\\n@forsco for this feature.
\\n
\\nThe Loot Tracker plugin has a new\\nconfiguration to ignore certain loot drops, which will dim these items and exclude their value from\\nthe displayed loot value, and a toggle for whether they should appear in the loot tracker display\\nat all. Thanks to @psikoi for making this feature possible!
\\n \\n \\n
\\nItems required for clue steps are now automatically (and implicitly) tagged "clue", and can be\\nsearched for in the bank. Never waste time poring through your bank for the exact items you need\\nagain! Thanks to @raiyni for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nRecent clan chat listings with spaces in their names no longer become corrupted \\nMultiple marks of grace can now be highlighted while training on rooftop agility courses \\nMounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\\nentry swapper plugin \\nIf set, XP globes now use the ingame skill goals for displaying completion progress \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (3):\\n Wait for process termination when sending notifications\\n config panel: add support for password fields\\n runelite-client: add Twitch chat plugin\\n\\nBrett (1):\\n Add idle notification for mixing ultracompost (#6052)\\n\\nChristopher O'Hara (1):\\n Show hop-to option in clan chat menu when target player is a friend and their private chat is off\\n\\nJordan Atwood (1):\\n mta telekinetic room: Fix finish point comparison\\n\\nKasparRosin (1):\\n Replace Ardougne cloak with Explorer's ring in MES teleport description (#6158)\\n\\nLotto (3):\\n Change 'username' to 'player name' in usernameInTitle\\n puzzlesolver: break out -1 piece value into a constant\\n puzzlesolver: make exclusive use of PuzzleSolver's constants\\n\\nMax Weber (10):\\n runelite-api: Make MouseListener an interface, add MouseAdapter\\n Add JavaScriptCallback to allow java callbacks instead of cs2\\n Add ChatboxPanelManager to allow for more advanced chatbox inputs\\n fairyrings: Use ChatboxPanelManager's input\\n ChatboxTextInput: Assume end cursor when changing value\\n ChatboxTextInput: Don't divide by zero when clicking on an empty string\\n ChatboxTextMenuInput: return this from build\\n ChatboxTextInput: Fix blinking cursor\\n loottracker: Lazily rebuild panels\\n Limit amount of LootTrackerBoxes to 500\\n\\nRobin Withes (2):\\n Add tears of guthix rock obstacle to agility obstacles (#6096)\\n Add draynor stile obstacle to agility plugin (#6112)\\n\\nRon Young (6):\\n text: Add Jagex name formatter\\n clan chat plugin: Use Jagex name format\\n Add clue scroll service\\n Hookup clue scroll service dependency\\n Add fulfilledBy(int itemId) to item requirements\\n Add ability to search for current clue required items\\n\\nRuben Amendoeira (1):\\n Loot tracker - Add ability to ignore items (#5483)\\n\\nSebastiaan Vanspauwen (1):\\n agility plugin: highlight multiple marks\\n\\nTomas Slusny (16):\\n Make colon (":") enter chat in WASD mode\\n Make special attack counter respect ids and npc deaths\\n Remove positions from Timers plugin config\\n Merge common configs in Timers plugin\\n Remove position config from menu entry swapper\\n Add swap for "Admire" and "Teleport/Spellbook" for mounted capes (#5994)\\n Make HiScore lookup always deprioritized\\n Prevent tag tab scrolling to scroll bank interface\\n Add missing dot to "She's small" cryptic\\n Add POH incense burner timers\\n Swap also "quick pass" in Cerb lair\\n Add startGoalXp and endGoalXp to XpTrackerService\\n Use startGoalXp and endGoalXp for goals in XP globes\\n Keep WidgetOverlay always on UNDER_WIDGETS layer\\n Calculate total count/value from loot records instead of boxes\\n Prevent NPE in recent clan chats when var is null\\n\\nTyler Nichols (1):\\n mta plugin: remove pointless int cast\\n\\nWooxSolo (1):\\n Rename getUnknownSoundValues2\\n
\\n\",\"image\":\"/img/blog/1.4.23-Release/twitch.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-10-25-10-00-1.4.23-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mGAAmG,OAAS,SAAS,KAAO,+zLAAg3L,MAAQ","file":"static/js/68.5649893f.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.23 Release\",\"description\":\"Twitch plugin, POH incense burner timers, ignore loot tracker items, and banked clue item search\",\"author\":\"Jordan\",\"body\":\"New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel.\\nAll messages received from this channel are sent in clan chat type with prefix [Twitch] and you\\ncan reply to messages by prefixing your message with //
.
\\n
\\nThe Player-owned House plugin now\\ndisplays a timer for incense burners. The time per light is variable based on the lighter's\\nFiremaking level, so it will display a green timer while it is guaranteed to remain lit, and a\\nyellow timer for the estimated extra time. Thanks to @deathbeam and\\n@forsco for this feature.
\\n
\\nThe Loot Tracker plugin has a new\\nconfiguration to ignore certain loot drops, which will dim these items and exclude their value from\\nthe displayed loot value, and a toggle for whether they should appear in the loot tracker display\\nat all. Thanks to @psikoi for making this feature possible!
\\n \\n \\n
\\nItems required for clue steps are now automatically (and implicitly) tagged "clue", and can be\\nsearched for in the bank. Never waste time poring through your bank for the exact items you need\\nagain! Thanks to @raiyni for this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nRecent clan chat listings with spaces in their names no longer become corrupted \\nMultiple marks of grace can now be highlighted while training on rooftop agility courses \\nMounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\\nentry swapper plugin \\nIf set, XP globes now use the ingame skill goals for displaying completion progress \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (3):\\n Wait for process termination when sending notifications\\n config panel: add support for password fields\\n runelite-client: add Twitch chat plugin\\n\\nBrett (1):\\n Add idle notification for mixing ultracompost (#6052)\\n\\nChristopher O'Hara (1):\\n Show hop-to option in clan chat menu when target player is a friend and their private chat is off\\n\\nJordan Atwood (1):\\n mta telekinetic room: Fix finish point comparison\\n\\nKasparRosin (1):\\n Replace Ardougne cloak with Explorer's ring in MES teleport description (#6158)\\n\\nLotto (3):\\n Change 'username' to 'player name' in usernameInTitle\\n puzzlesolver: break out -1 piece value into a constant\\n puzzlesolver: make exclusive use of PuzzleSolver's constants\\n\\nMax Weber (10):\\n runelite-api: Make MouseListener an interface, add MouseAdapter\\n Add JavaScriptCallback to allow java callbacks instead of cs2\\n Add ChatboxPanelManager to allow for more advanced chatbox inputs\\n fairyrings: Use ChatboxPanelManager's input\\n ChatboxTextInput: Assume end cursor when changing value\\n ChatboxTextInput: Don't divide by zero when clicking on an empty string\\n ChatboxTextMenuInput: return this from build\\n ChatboxTextInput: Fix blinking cursor\\n loottracker: Lazily rebuild panels\\n Limit amount of LootTrackerBoxes to 500\\n\\nRobin Withes (2):\\n Add tears of guthix rock obstacle to agility obstacles (#6096)\\n Add draynor stile obstacle to agility plugin (#6112)\\n\\nRon Young (6):\\n text: Add Jagex name formatter\\n clan chat plugin: Use Jagex name format\\n Add clue scroll service\\n Hookup clue scroll service dependency\\n Add fulfilledBy(int itemId) to item requirements\\n Add ability to search for current clue required items\\n\\nRuben Amendoeira (1):\\n Loot tracker - Add ability to ignore items (#5483)\\n\\nSebastiaan Vanspauwen (1):\\n agility plugin: highlight multiple marks\\n\\nTomas Slusny (16):\\n Make colon (":") enter chat in WASD mode\\n Make special attack counter respect ids and npc deaths\\n Remove positions from Timers plugin config\\n Merge common configs in Timers plugin\\n Remove position config from menu entry swapper\\n Add swap for "Admire" and "Teleport/Spellbook" for mounted capes (#5994)\\n Make HiScore lookup always deprioritized\\n Prevent tag tab scrolling to scroll bank interface\\n Add missing dot to "She's small" cryptic\\n Add POH incense burner timers\\n Swap also "quick pass" in Cerb lair\\n Add startGoalXp and endGoalXp to XpTrackerService\\n Use startGoalXp and endGoalXp for goals in XP globes\\n Keep WidgetOverlay always on UNDER_WIDGETS layer\\n Calculate total count/value from loot records instead of boxes\\n Prevent NPE in recent clan chats when var is null\\n\\nTyler Nichols (1):\\n mta plugin: remove pointless int cast\\n\\nWooxSolo (1):\\n Rename getUnknownSoundValues2\\n
\\n\",\"image\":\"/img/blog/1.4.23-Release/twitch.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/69.7e3a7911.chunk.js b/static/js/69.d9a9d8f9.chunk.js
similarity index 97%
rename from static/js/69.7e3a7911.chunk.js
rename to static/js/69.d9a9d8f9.chunk.js
index 38e286fc2..3457a51ac 100644
--- a/static/js/69.7e3a7911.chunk.js
+++ b/static/js/69.d9a9d8f9.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[69],{344:function(e,t){e.exports={title:"1.4.24 Release",description:"Stretched resizable mode, bank tags and shift-click for item charges and variations",author:"Jordan",body:'The Stretched Mode plugin (formerly\nknown as the Stretched Fixed Mode plugin) now supports stretching the game in\nresizable mode. Thanks to @devLotto for adding this\nfeature!
\n
\nYou can now tag and un-tag all variations of an item, e.g. all dosages of a particular type of\npotion, all charges of an Amulet of Glory, or all degraded states of a Barrows equipment piece or\npiece of crystal equipment, etc. To do so, drag the item onto a tag tab while holding Shift, or add\n"*" to the end of the tag. Thanks to @raiyni and\n@deathbeam for developing this feature.
\n
\nShift-click configuration now applies to all variations and charges of items too in very similar way as\nnew bank tab improvements do. This means that some previous shift-click configuration on affected items\nwill be reset. Thanks to @deathbeam for implementing this.
\nThere are also several smaller improvements and bug fixes, including:
\n\nSome clue scrolls will display less text in their panels to take up less space \nAdded Abyssal Bracelet charge tracking \nThe Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\nreward active \nChopping sullicep mushrooms now activates the woodcutting plugin \nFix clue and bounty hunter hiscores lookup for update \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n15987632 (1):\n Add support for objects to Anagram clues\n\nAdam (4):\n feed controller: add cache control for feed result\n http api/service: map .js to application/json and use in http clients\n Remove model viewer\n http-api: lombok HiscoreResult\n\nAlexsuperfly (4):\n XPglobes: capitalize XP in globe tooltip\n Item Charges: add Abyssal Bracelet charge tracking (#6184)\n Remove White Helm requirement from Sir Vyvin cryptic clue (#6179)\n Slayer Highlighting: Add all types of shades to task target list (#6182)\n\nArthur Tyukayev (2):\n Fix typo in Lunar Isle teleport location (#6218)\n Make twitch channel string case insensitive (#6223)\n\nDustin (1):\n Stop slayer kills desync for Grotesque Guardians with Double Trouble reward active (#5983)\n\nFarmour (1):\n Apply PM chat recolor for PMODs in loadColors\n\nGamer1120 (1):\n Add consistency to capitalization of timer in Timers settings\n\nHydrox6 (1):\n Merge multiple varbitChanged events in AttackStyles to one (#6258)\n\nKasparRosin (1):\n Update Hot/Cold location NW of fishing tutor (#6230)\n\nLotto (2):\n stretchedfixedmode: add resizable interface scaling\n stretchedfixedmode: rename plugin to \'stretched mode\'\n\nMagic fTail (2):\n Fix JavaDoc for hitsplat colours (#6237)\n http api/service: update Jagex hiscore API\n\nMattias Cederlund (1):\n Recognize all Pharaoh\'s sceptre versions for emote clues (#6233)\n\nMax Weber (3):\n cluescrolls: Add STASH unit object ids to emote clues\n cluescrolls: Move Druids\' circle clue to the stash\n cluescrolls: Move trollheim emote clue to Trollheim\n\nRon Young (2):\n Add ItemVariationMapping enum and test\n Add ability to set/read tags on varations of items\n\nSebastiaanVanspauwen (1):\n Woodcutting: Add support for sullicep mushrooms for logs/hr and logs cut (#6245)\n\nTomas Slusny (12):\n Fix combat brace slayer task race condition\n Swap "Perks" option with "Admire" for mounted max cape\n Remove full clue description from CrypticClue\n Remove full clue description for Hot/Cold clue\n Add back check for widget.isHidden() to TabInterface\n Export ObjectComposition ID\n Add support for impostors to clue scroll plugin\n Fix combat brace slayer test after double trouble addition\n Move SlayerUnlock to net.runelite.api.vars\n Use ChatMessageManager to send game messages in Notifier\n Correctly highlight Juna for cryptic clue step\n Add support for configuring shift-click for variation items\n
\n',image:"/img/blog/1.4.24-Release/stretched-resizable-mode.gif"}}}]);
-//# sourceMappingURL=69.7e3a7911.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[69],{345:function(e,t){e.exports={title:"1.4.24 Release",description:"Stretched resizable mode, bank tags and shift-click for item charges and variations",author:"Jordan",body:'The Stretched Mode plugin (formerly\nknown as the Stretched Fixed Mode plugin) now supports stretching the game in\nresizable mode. Thanks to @devLotto for adding this\nfeature!
\n
\nYou can now tag and un-tag all variations of an item, e.g. all dosages of a particular type of\npotion, all charges of an Amulet of Glory, or all degraded states of a Barrows equipment piece or\npiece of crystal equipment, etc. To do so, drag the item onto a tag tab while holding Shift, or add\n"*" to the end of the tag. Thanks to @raiyni and\n@deathbeam for developing this feature.
\n
\nShift-click configuration now applies to all variations and charges of items too in very similar way as\nnew bank tab improvements do. This means that some previous shift-click configuration on affected items\nwill be reset. Thanks to @deathbeam for implementing this.
\nThere are also several smaller improvements and bug fixes, including:
\n\nSome clue scrolls will display less text in their panels to take up less space \nAdded Abyssal Bracelet charge tracking \nThe Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\nreward active \nChopping sullicep mushrooms now activates the woodcutting plugin \nFix clue and bounty hunter hiscores lookup for update \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n15987632 (1):\n Add support for objects to Anagram clues\n\nAdam (4):\n feed controller: add cache control for feed result\n http api/service: map .js to application/json and use in http clients\n Remove model viewer\n http-api: lombok HiscoreResult\n\nAlexsuperfly (4):\n XPglobes: capitalize XP in globe tooltip\n Item Charges: add Abyssal Bracelet charge tracking (#6184)\n Remove White Helm requirement from Sir Vyvin cryptic clue (#6179)\n Slayer Highlighting: Add all types of shades to task target list (#6182)\n\nArthur Tyukayev (2):\n Fix typo in Lunar Isle teleport location (#6218)\n Make twitch channel string case insensitive (#6223)\n\nDustin (1):\n Stop slayer kills desync for Grotesque Guardians with Double Trouble reward active (#5983)\n\nFarmour (1):\n Apply PM chat recolor for PMODs in loadColors\n\nGamer1120 (1):\n Add consistency to capitalization of timer in Timers settings\n\nHydrox6 (1):\n Merge multiple varbitChanged events in AttackStyles to one (#6258)\n\nKasparRosin (1):\n Update Hot/Cold location NW of fishing tutor (#6230)\n\nLotto (2):\n stretchedfixedmode: add resizable interface scaling\n stretchedfixedmode: rename plugin to \'stretched mode\'\n\nMagic fTail (2):\n Fix JavaDoc for hitsplat colours (#6237)\n http api/service: update Jagex hiscore API\n\nMattias Cederlund (1):\n Recognize all Pharaoh\'s sceptre versions for emote clues (#6233)\n\nMax Weber (3):\n cluescrolls: Add STASH unit object ids to emote clues\n cluescrolls: Move Druids\' circle clue to the stash\n cluescrolls: Move trollheim emote clue to Trollheim\n\nRon Young (2):\n Add ItemVariationMapping enum and test\n Add ability to set/read tags on varations of items\n\nSebastiaanVanspauwen (1):\n Woodcutting: Add support for sullicep mushrooms for logs/hr and logs cut (#6245)\n\nTomas Slusny (12):\n Fix combat brace slayer task race condition\n Swap "Perks" option with "Admire" for mounted max cape\n Remove full clue description from CrypticClue\n Remove full clue description for Hot/Cold clue\n Add back check for widget.isHidden() to TabInterface\n Export ObjectComposition ID\n Add support for impostors to clue scroll plugin\n Fix combat brace slayer test after double trouble addition\n Move SlayerUnlock to net.runelite.api.vars\n Use ChatMessageManager to send game messages in Notifier\n Correctly highlight Juna for cryptic clue step\n Add support for configuring shift-click for variation items\n
\n',image:"/img/blog/1.4.24-Release/stretched-resizable-mode.gif"}}}]);
+//# sourceMappingURL=69.d9a9d8f9.chunk.js.map
\ No newline at end of file
diff --git a/static/js/69.7e3a7911.chunk.js.map b/static/js/69.d9a9d8f9.chunk.js.map
similarity index 98%
rename from static/js/69.7e3a7911.chunk.js.map
rename to static/js/69.d9a9d8f9.chunk.js.map
index 09382a94f..a1357fbd2 100644
--- a/static/js/69.7e3a7911.chunk.js.map
+++ b/static/js/69.d9a9d8f9.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-01-10-00-1.4.24-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,sFAAsF,OAAS,SAAS,KAAO,6nJAA+pJ,MAAQ","file":"static/js/69.7e3a7911.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.24 Release\",\"description\":\"Stretched resizable mode, bank tags and shift-click for item charges and variations\",\"author\":\"Jordan\",\"body\":\"The Stretched Mode plugin (formerly\\nknown as the Stretched Fixed Mode plugin) now supports stretching the game in\\nresizable mode. Thanks to @devLotto for adding this\\nfeature!
\\n
\\nYou can now tag and un-tag all variations of an item, e.g. all dosages of a particular type of\\npotion, all charges of an Amulet of Glory, or all degraded states of a Barrows equipment piece or\\npiece of crystal equipment, etc. To do so, drag the item onto a tag tab while holding Shift, or add\\n"*" to the end of the tag. Thanks to @raiyni and\\n@deathbeam for developing this feature.
\\n
\\nShift-click configuration now applies to all variations and charges of items too in very similar way as\\nnew bank tab improvements do. This means that some previous shift-click configuration on affected items\\nwill be reset. Thanks to @deathbeam for implementing this.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSome clue scrolls will display less text in their panels to take up less space \\nAdded Abyssal Bracelet charge tracking \\nThe Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\\nreward active \\nChopping sullicep mushrooms now activates the woodcutting plugin \\nFix clue and bounty hunter hiscores lookup for update \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n15987632 (1):\\n Add support for objects to Anagram clues\\n\\nAdam (4):\\n feed controller: add cache control for feed result\\n http api/service: map .js to application/json and use in http clients\\n Remove model viewer\\n http-api: lombok HiscoreResult\\n\\nAlexsuperfly (4):\\n XPglobes: capitalize XP in globe tooltip\\n Item Charges: add Abyssal Bracelet charge tracking (#6184)\\n Remove White Helm requirement from Sir Vyvin cryptic clue (#6179)\\n Slayer Highlighting: Add all types of shades to task target list (#6182)\\n\\nArthur Tyukayev (2):\\n Fix typo in Lunar Isle teleport location (#6218)\\n Make twitch channel string case insensitive (#6223)\\n\\nDustin (1):\\n Stop slayer kills desync for Grotesque Guardians with Double Trouble reward active (#5983)\\n\\nFarmour (1):\\n Apply PM chat recolor for PMODs in loadColors\\n\\nGamer1120 (1):\\n Add consistency to capitalization of timer in Timers settings\\n\\nHydrox6 (1):\\n Merge multiple varbitChanged events in AttackStyles to one (#6258)\\n\\nKasparRosin (1):\\n Update Hot/Cold location NW of fishing tutor (#6230)\\n\\nLotto (2):\\n stretchedfixedmode: add resizable interface scaling\\n stretchedfixedmode: rename plugin to 'stretched mode'\\n\\nMagic fTail (2):\\n Fix JavaDoc for hitsplat colours (#6237)\\n http api/service: update Jagex hiscore API\\n\\nMattias Cederlund (1):\\n Recognize all Pharaoh's sceptre versions for emote clues (#6233)\\n\\nMax Weber (3):\\n cluescrolls: Add STASH unit object ids to emote clues\\n cluescrolls: Move Druids' circle clue to the stash\\n cluescrolls: Move trollheim emote clue to Trollheim\\n\\nRon Young (2):\\n Add ItemVariationMapping enum and test\\n Add ability to set/read tags on varations of items\\n\\nSebastiaanVanspauwen (1):\\n Woodcutting: Add support for sullicep mushrooms for logs/hr and logs cut (#6245)\\n\\nTomas Slusny (12):\\n Fix combat brace slayer task race condition\\n Swap "Perks" option with "Admire" for mounted max cape\\n Remove full clue description from CrypticClue\\n Remove full clue description for Hot/Cold clue\\n Add back check for widget.isHidden() to TabInterface\\n Export ObjectComposition ID\\n Add support for impostors to clue scroll plugin\\n Fix combat brace slayer test after double trouble addition\\n Move SlayerUnlock to net.runelite.api.vars\\n Use ChatMessageManager to send game messages in Notifier\\n Correctly highlight Juna for cryptic clue step\\n Add support for configuring shift-click for variation items\\n
\\n\",\"image\":\"/img/blog/1.4.24-Release/stretched-resizable-mode.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-01-10-00-1.4.24-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,sFAAsF,OAAS,SAAS,KAAO,6nJAA+pJ,MAAQ","file":"static/js/69.d9a9d8f9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.24 Release\",\"description\":\"Stretched resizable mode, bank tags and shift-click for item charges and variations\",\"author\":\"Jordan\",\"body\":\"The Stretched Mode plugin (formerly\\nknown as the Stretched Fixed Mode plugin) now supports stretching the game in\\nresizable mode. Thanks to @devLotto for adding this\\nfeature!
\\n
\\nYou can now tag and un-tag all variations of an item, e.g. all dosages of a particular type of\\npotion, all charges of an Amulet of Glory, or all degraded states of a Barrows equipment piece or\\npiece of crystal equipment, etc. To do so, drag the item onto a tag tab while holding Shift, or add\\n"*" to the end of the tag. Thanks to @raiyni and\\n@deathbeam for developing this feature.
\\n
\\nShift-click configuration now applies to all variations and charges of items too in very similar way as\\nnew bank tab improvements do. This means that some previous shift-click configuration on affected items\\nwill be reset. Thanks to @deathbeam for implementing this.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nSome clue scrolls will display less text in their panels to take up less space \\nAdded Abyssal Bracelet charge tracking \\nThe Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\\nreward active \\nChopping sullicep mushrooms now activates the woodcutting plugin \\nFix clue and bounty hunter hiscores lookup for update \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n15987632 (1):\\n Add support for objects to Anagram clues\\n\\nAdam (4):\\n feed controller: add cache control for feed result\\n http api/service: map .js to application/json and use in http clients\\n Remove model viewer\\n http-api: lombok HiscoreResult\\n\\nAlexsuperfly (4):\\n XPglobes: capitalize XP in globe tooltip\\n Item Charges: add Abyssal Bracelet charge tracking (#6184)\\n Remove White Helm requirement from Sir Vyvin cryptic clue (#6179)\\n Slayer Highlighting: Add all types of shades to task target list (#6182)\\n\\nArthur Tyukayev (2):\\n Fix typo in Lunar Isle teleport location (#6218)\\n Make twitch channel string case insensitive (#6223)\\n\\nDustin (1):\\n Stop slayer kills desync for Grotesque Guardians with Double Trouble reward active (#5983)\\n\\nFarmour (1):\\n Apply PM chat recolor for PMODs in loadColors\\n\\nGamer1120 (1):\\n Add consistency to capitalization of timer in Timers settings\\n\\nHydrox6 (1):\\n Merge multiple varbitChanged events in AttackStyles to one (#6258)\\n\\nKasparRosin (1):\\n Update Hot/Cold location NW of fishing tutor (#6230)\\n\\nLotto (2):\\n stretchedfixedmode: add resizable interface scaling\\n stretchedfixedmode: rename plugin to 'stretched mode'\\n\\nMagic fTail (2):\\n Fix JavaDoc for hitsplat colours (#6237)\\n http api/service: update Jagex hiscore API\\n\\nMattias Cederlund (1):\\n Recognize all Pharaoh's sceptre versions for emote clues (#6233)\\n\\nMax Weber (3):\\n cluescrolls: Add STASH unit object ids to emote clues\\n cluescrolls: Move Druids' circle clue to the stash\\n cluescrolls: Move trollheim emote clue to Trollheim\\n\\nRon Young (2):\\n Add ItemVariationMapping enum and test\\n Add ability to set/read tags on varations of items\\n\\nSebastiaanVanspauwen (1):\\n Woodcutting: Add support for sullicep mushrooms for logs/hr and logs cut (#6245)\\n\\nTomas Slusny (12):\\n Fix combat brace slayer task race condition\\n Swap "Perks" option with "Admire" for mounted max cape\\n Remove full clue description from CrypticClue\\n Remove full clue description for Hot/Cold clue\\n Add back check for widget.isHidden() to TabInterface\\n Export ObjectComposition ID\\n Add support for impostors to clue scroll plugin\\n Fix combat brace slayer test after double trouble addition\\n Move SlayerUnlock to net.runelite.api.vars\\n Use ChatMessageManager to send game messages in Notifier\\n Correctly highlight Juna for cryptic clue step\\n Add support for configuring shift-click for variation items\\n
\\n\",\"image\":\"/img/blog/1.4.24-Release/stretched-resizable-mode.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/70.36cdbad5.chunk.js b/static/js/70.a8132af9.chunk.js
similarity index 98%
rename from static/js/70.36cdbad5.chunk.js
rename to static/js/70.a8132af9.chunk.js
index a9175b4f1..989448dab 100644
--- a/static/js/70.36cdbad5.chunk.js
+++ b/static/js/70.a8132af9.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[70],{345:function(e,n){e.exports={title:"1.4.25 Release",description:"New chat box input for Bank Tags and kills to level in XP Tracker",author:"Jordan",body:'The Bank Tags plugin now utilizes a new\ncustom input box which includes a moveable typing cursor, multiple character selection, and mouse\ninteraction. Additionally, as a result, editing tags will no longer clear any open bank searches.\nHuge thanks to @Abextm for writing the framework of the new chatbox,\nand to @raiyni for hooking it in to the bank tag plugin.
\n
\nThe XP Tracker plugin will now display\nthe remaining number of kills to reach a level in combat skills, rather than the number of actions.\nThanks to @deathbeam for this update.
\n
\nWhen running RuneLite with custom chrome disabled, the sidebar switcher image will be a small\nRunescape-themed arrow in the upper-right corner of the screen. Thanks to\n@deathbeam and\n@Abextm for this improvement.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe WASD Camera plugin will now prepends\nyour player name to the chatbox text \nThe Examine plugin will now perform price\nlookups on items examined within the looting bag interface \nThe Menu Entry Swapper plugin now\noffers a "Repairs" option swap for the dark mage \nA configuration option has been added to the\nOpponent Information plugin \nwhich allows you to hide the "Opponent\'s opponent" line which ordinarily appears beneath the\nhealth bar in multi-combat zones \nGame overlays in the fixed viewport should now be more accurate \nFix Werewolf agility course xp in the skill calculator \nAdd Burgh de Rott shortcut to agility plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (3):\n wasd plugin: add player name to chatbox text\n player mixin: remove unused field\n entity hider: check for players with no names\n\nDylan Critz (1):\n examine plugin: add looting bag item examine support\n\nHydrox6 (2):\n Make Twitch messages respect custom Chat Colours\n chat message manager: fix update to not access varbits outside of client thread\n\nJohn McDonnell (1):\n skill calculator: fix werewolf agility course xp\n\nJordan Atwood (4):\n inventory tags plugin: clean up plugin code\n inventory tags plugin: Use MenuManager\n Add JagexColors constants file, update Color uses\n wasdcamera: Fix chat text color on transparent chatbox\n\nKasparRosin (1):\n menu entry swapper: add dark mage repairs swap\n\nLotto (2):\n stretchedmode: fix size not being reset on plugin disable\n stretchedmode: retain aspect ratio when scaling\n\nMax Weber (5):\n cache: Correct Location loading\n itemstats: Use correct crab meat\n zoom: Adjust inner zoom limit to safe value\n runelite-client: Don\'t check if customChrome is enabled after startup\n runelite-client: Use Runescape themed closer for sidebar when overlaying\n\nMaxBartlett (1):\n Add Burgh de Rott shortcut to agility plugin (#6380)\n\nRon Young (6):\n tag search should be startsWith not contains\n Add BERSERKER_NECKLACE prayer bonus\n ScriptEvent: import op, opbase, and source\n BankTags: refactor to use ChatboxPanelManager\n Bank tags: Preserve search when editing tags\n Bank tags: Move search functions to a separate class\n\nSam England (1):\n Add food hover overlay for Thin and Fat Snail meat (#6362)\n\nTomas Slusny (8):\n Properly update last action times in Idle Notifier\n Add support for lastCombatCountdown to combat idle\n Make ItemVariationsMapping use generated json\n Cleanup SwingUtil\n Add support for hiding/showing sidebar button\n Create NPC manager that can return HP for NPC\n Create different action types for XpTracker plugin\n Add support for kills left to XpTrackerPlugin\n\nTyler Harding (1):\n opponent info: add configuration for show opponent\'s opponent\n\nWooxSolo (5):\n Improve hovered tile accuracy\n Fix localToCanvas calculation on fixed screen\n Remove viewportOffset calculation from prayer bar\n Remove viewportOffset calculation from demonic gorillas\n Remove viewportOffset from get2DGeometry\n
\n',image:"/img/blog/1.4.25-Release/enhanced-chatbox-input.gif"}}}]);
-//# sourceMappingURL=70.36cdbad5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[70],{346:function(e,n){e.exports={title:"1.4.25 Release",description:"New chat box input for Bank Tags and kills to level in XP Tracker",author:"Jordan",body:'The Bank Tags plugin now utilizes a new\ncustom input box which includes a moveable typing cursor, multiple character selection, and mouse\ninteraction. Additionally, as a result, editing tags will no longer clear any open bank searches.\nHuge thanks to @Abextm for writing the framework of the new chatbox,\nand to @raiyni for hooking it in to the bank tag plugin.
\n
\nThe XP Tracker plugin will now display\nthe remaining number of kills to reach a level in combat skills, rather than the number of actions.\nThanks to @deathbeam for this update.
\n
\nWhen running RuneLite with custom chrome disabled, the sidebar switcher image will be a small\nRunescape-themed arrow in the upper-right corner of the screen. Thanks to\n@deathbeam and\n@Abextm for this improvement.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe WASD Camera plugin will now prepends\nyour player name to the chatbox text \nThe Examine plugin will now perform price\nlookups on items examined within the looting bag interface \nThe Menu Entry Swapper plugin now\noffers a "Repairs" option swap for the dark mage \nA configuration option has been added to the\nOpponent Information plugin \nwhich allows you to hide the "Opponent\'s opponent" line which ordinarily appears beneath the\nhealth bar in multi-combat zones \nGame overlays in the fixed viewport should now be more accurate \nFix Werewolf agility course xp in the skill calculator \nAdd Burgh de Rott shortcut to agility plugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (3):\n wasd plugin: add player name to chatbox text\n player mixin: remove unused field\n entity hider: check for players with no names\n\nDylan Critz (1):\n examine plugin: add looting bag item examine support\n\nHydrox6 (2):\n Make Twitch messages respect custom Chat Colours\n chat message manager: fix update to not access varbits outside of client thread\n\nJohn McDonnell (1):\n skill calculator: fix werewolf agility course xp\n\nJordan Atwood (4):\n inventory tags plugin: clean up plugin code\n inventory tags plugin: Use MenuManager\n Add JagexColors constants file, update Color uses\n wasdcamera: Fix chat text color on transparent chatbox\n\nKasparRosin (1):\n menu entry swapper: add dark mage repairs swap\n\nLotto (2):\n stretchedmode: fix size not being reset on plugin disable\n stretchedmode: retain aspect ratio when scaling\n\nMax Weber (5):\n cache: Correct Location loading\n itemstats: Use correct crab meat\n zoom: Adjust inner zoom limit to safe value\n runelite-client: Don\'t check if customChrome is enabled after startup\n runelite-client: Use Runescape themed closer for sidebar when overlaying\n\nMaxBartlett (1):\n Add Burgh de Rott shortcut to agility plugin (#6380)\n\nRon Young (6):\n tag search should be startsWith not contains\n Add BERSERKER_NECKLACE prayer bonus\n ScriptEvent: import op, opbase, and source\n BankTags: refactor to use ChatboxPanelManager\n Bank tags: Preserve search when editing tags\n Bank tags: Move search functions to a separate class\n\nSam England (1):\n Add food hover overlay for Thin and Fat Snail meat (#6362)\n\nTomas Slusny (8):\n Properly update last action times in Idle Notifier\n Add support for lastCombatCountdown to combat idle\n Make ItemVariationsMapping use generated json\n Cleanup SwingUtil\n Add support for hiding/showing sidebar button\n Create NPC manager that can return HP for NPC\n Create different action types for XpTracker plugin\n Add support for kills left to XpTrackerPlugin\n\nTyler Harding (1):\n opponent info: add configuration for show opponent\'s opponent\n\nWooxSolo (5):\n Improve hovered tile accuracy\n Fix localToCanvas calculation on fixed screen\n Remove viewportOffset calculation from prayer bar\n Remove viewportOffset calculation from demonic gorillas\n Remove viewportOffset from get2DGeometry\n
\n',image:"/img/blog/1.4.25-Release/enhanced-chatbox-input.gif"}}}]);
+//# sourceMappingURL=70.a8132af9.chunk.js.map
\ No newline at end of file
diff --git a/static/js/70.36cdbad5.chunk.js.map b/static/js/70.a8132af9.chunk.js.map
similarity index 98%
rename from static/js/70.36cdbad5.chunk.js.map
rename to static/js/70.a8132af9.chunk.js.map
index 6144e484e..65acda3d5 100644
--- a/static/js/70.36cdbad5.chunk.js.map
+++ b/static/js/70.a8132af9.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-08-10-00-1.4.25-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,SAAS,KAAO,i0KAA44K,MAAQ","file":"static/js/70.36cdbad5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.25 Release\",\"description\":\"New chat box input for Bank Tags and kills to level in XP Tracker\",\"author\":\"Jordan\",\"body\":\"The Bank Tags plugin now utilizes a new\\ncustom input box which includes a moveable typing cursor, multiple character selection, and mouse\\ninteraction. Additionally, as a result, editing tags will no longer clear any open bank searches.\\nHuge thanks to @Abextm for writing the framework of the new chatbox,\\nand to @raiyni for hooking it in to the bank tag plugin.
\\n
\\nThe XP Tracker plugin will now display\\nthe remaining number of kills to reach a level in combat skills, rather than the number of actions.\\nThanks to @deathbeam for this update.
\\n
\\nWhen running RuneLite with custom chrome disabled, the sidebar switcher image will be a small\\nRunescape-themed arrow in the upper-right corner of the screen. Thanks to\\n@deathbeam and\\n@Abextm for this improvement.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe WASD Camera plugin will now prepends\\nyour player name to the chatbox text \\nThe Examine plugin will now perform price\\nlookups on items examined within the looting bag interface \\nThe Menu Entry Swapper plugin now\\noffers a "Repairs" option swap for the dark mage \\nA configuration option has been added to the\\nOpponent Information plugin \\nwhich allows you to hide the "Opponent's opponent" line which ordinarily appears beneath the\\nhealth bar in multi-combat zones \\nGame overlays in the fixed viewport should now be more accurate \\nFix Werewolf agility course xp in the skill calculator \\nAdd Burgh de Rott shortcut to agility plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (3):\\n wasd plugin: add player name to chatbox text\\n player mixin: remove unused field\\n entity hider: check for players with no names\\n\\nDylan Critz (1):\\n examine plugin: add looting bag item examine support\\n\\nHydrox6 (2):\\n Make Twitch messages respect custom Chat Colours\\n chat message manager: fix update to not access varbits outside of client thread\\n\\nJohn McDonnell (1):\\n skill calculator: fix werewolf agility course xp\\n\\nJordan Atwood (4):\\n inventory tags plugin: clean up plugin code\\n inventory tags plugin: Use MenuManager\\n Add JagexColors constants file, update Color uses\\n wasdcamera: Fix chat text color on transparent chatbox\\n\\nKasparRosin (1):\\n menu entry swapper: add dark mage repairs swap\\n\\nLotto (2):\\n stretchedmode: fix size not being reset on plugin disable\\n stretchedmode: retain aspect ratio when scaling\\n\\nMax Weber (5):\\n cache: Correct Location loading\\n itemstats: Use correct crab meat\\n zoom: Adjust inner zoom limit to safe value\\n runelite-client: Don't check if customChrome is enabled after startup\\n runelite-client: Use Runescape themed closer for sidebar when overlaying\\n\\nMaxBartlett (1):\\n Add Burgh de Rott shortcut to agility plugin (#6380)\\n\\nRon Young (6):\\n tag search should be startsWith not contains\\n Add BERSERKER_NECKLACE prayer bonus\\n ScriptEvent: import op, opbase, and source\\n BankTags: refactor to use ChatboxPanelManager\\n Bank tags: Preserve search when editing tags\\n Bank tags: Move search functions to a separate class\\n\\nSam England (1):\\n Add food hover overlay for Thin and Fat Snail meat (#6362)\\n\\nTomas Slusny (8):\\n Properly update last action times in Idle Notifier\\n Add support for lastCombatCountdown to combat idle\\n Make ItemVariationsMapping use generated json\\n Cleanup SwingUtil\\n Add support for hiding/showing sidebar button\\n Create NPC manager that can return HP for NPC\\n Create different action types for XpTracker plugin\\n Add support for kills left to XpTrackerPlugin\\n\\nTyler Harding (1):\\n opponent info: add configuration for show opponent's opponent\\n\\nWooxSolo (5):\\n Improve hovered tile accuracy\\n Fix localToCanvas calculation on fixed screen\\n Remove viewportOffset calculation from prayer bar\\n Remove viewportOffset calculation from demonic gorillas\\n Remove viewportOffset from get2DGeometry\\n
\\n\",\"image\":\"/img/blog/1.4.25-Release/enhanced-chatbox-input.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-08-10-00-1.4.25-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,SAAS,KAAO,i0KAA44K,MAAQ","file":"static/js/70.a8132af9.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.25 Release\",\"description\":\"New chat box input for Bank Tags and kills to level in XP Tracker\",\"author\":\"Jordan\",\"body\":\"The Bank Tags plugin now utilizes a new\\ncustom input box which includes a moveable typing cursor, multiple character selection, and mouse\\ninteraction. Additionally, as a result, editing tags will no longer clear any open bank searches.\\nHuge thanks to @Abextm for writing the framework of the new chatbox,\\nand to @raiyni for hooking it in to the bank tag plugin.
\\n
\\nThe XP Tracker plugin will now display\\nthe remaining number of kills to reach a level in combat skills, rather than the number of actions.\\nThanks to @deathbeam for this update.
\\n
\\nWhen running RuneLite with custom chrome disabled, the sidebar switcher image will be a small\\nRunescape-themed arrow in the upper-right corner of the screen. Thanks to\\n@deathbeam and\\n@Abextm for this improvement.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe WASD Camera plugin will now prepends\\nyour player name to the chatbox text \\nThe Examine plugin will now perform price\\nlookups on items examined within the looting bag interface \\nThe Menu Entry Swapper plugin now\\noffers a "Repairs" option swap for the dark mage \\nA configuration option has been added to the\\nOpponent Information plugin \\nwhich allows you to hide the "Opponent's opponent" line which ordinarily appears beneath the\\nhealth bar in multi-combat zones \\nGame overlays in the fixed viewport should now be more accurate \\nFix Werewolf agility course xp in the skill calculator \\nAdd Burgh de Rott shortcut to agility plugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (3):\\n wasd plugin: add player name to chatbox text\\n player mixin: remove unused field\\n entity hider: check for players with no names\\n\\nDylan Critz (1):\\n examine plugin: add looting bag item examine support\\n\\nHydrox6 (2):\\n Make Twitch messages respect custom Chat Colours\\n chat message manager: fix update to not access varbits outside of client thread\\n\\nJohn McDonnell (1):\\n skill calculator: fix werewolf agility course xp\\n\\nJordan Atwood (4):\\n inventory tags plugin: clean up plugin code\\n inventory tags plugin: Use MenuManager\\n Add JagexColors constants file, update Color uses\\n wasdcamera: Fix chat text color on transparent chatbox\\n\\nKasparRosin (1):\\n menu entry swapper: add dark mage repairs swap\\n\\nLotto (2):\\n stretchedmode: fix size not being reset on plugin disable\\n stretchedmode: retain aspect ratio when scaling\\n\\nMax Weber (5):\\n cache: Correct Location loading\\n itemstats: Use correct crab meat\\n zoom: Adjust inner zoom limit to safe value\\n runelite-client: Don't check if customChrome is enabled after startup\\n runelite-client: Use Runescape themed closer for sidebar when overlaying\\n\\nMaxBartlett (1):\\n Add Burgh de Rott shortcut to agility plugin (#6380)\\n\\nRon Young (6):\\n tag search should be startsWith not contains\\n Add BERSERKER_NECKLACE prayer bonus\\n ScriptEvent: import op, opbase, and source\\n BankTags: refactor to use ChatboxPanelManager\\n Bank tags: Preserve search when editing tags\\n Bank tags: Move search functions to a separate class\\n\\nSam England (1):\\n Add food hover overlay for Thin and Fat Snail meat (#6362)\\n\\nTomas Slusny (8):\\n Properly update last action times in Idle Notifier\\n Add support for lastCombatCountdown to combat idle\\n Make ItemVariationsMapping use generated json\\n Cleanup SwingUtil\\n Add support for hiding/showing sidebar button\\n Create NPC manager that can return HP for NPC\\n Create different action types for XpTracker plugin\\n Add support for kills left to XpTrackerPlugin\\n\\nTyler Harding (1):\\n opponent info: add configuration for show opponent's opponent\\n\\nWooxSolo (5):\\n Improve hovered tile accuracy\\n Fix localToCanvas calculation on fixed screen\\n Remove viewportOffset calculation from prayer bar\\n Remove viewportOffset calculation from demonic gorillas\\n Remove viewportOffset from get2DGeometry\\n
\\n\",\"image\":\"/img/blog/1.4.25-Release/enhanced-chatbox-input.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/71.d5b73462.chunk.js b/static/js/71.78d28015.chunk.js
similarity index 98%
rename from static/js/71.d5b73462.chunk.js
rename to static/js/71.78d28015.chunk.js
index 62847da42..188236985 100644
--- a/static/js/71.d5b73462.chunk.js
+++ b/static/js/71.78d28015.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[71],{346:function(e,n){e.exports={title:"1.4.26 Release",description:"Status bars plugin and upcoming GPU plugin",author:"Jordan",body:'A Status Bars plugin has been added, which\nwill display hitpoints and prayer information on the columns of the inventory, or along the left\nside of the inventory panel. Big thanks to @Malfuryent for their\ntireless work maintainng this plugin for months preparing for its addition to the client.
\n
\nAs we\'ve announced on Twitter , we\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!
\nThere are also several smaller improvements and bug fixes, including:
\n\nA bug causing the XP Tracker plugin to\nimproperly display combat skills with strange values has been fixed \nMenu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters \nThe Grand Exchange plugin panel has\nhad its color scheme updated to better match the rest of the client \nThe Friend Notes plugin now uses the\nupdated chatbox dialog \nXP globes are now ordered statically, and\nwill not change order based on the time skill experience is received \nA Myth\'s guild cannon spot for blue dragons has been highlighted in the Cannon\nplugin \nShortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\nnow highlighted in the Agility plugin \nThe Barrows Brothers plugin \'s\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\noverlay \nIcons for the new portal nexus and mounted jewellery have been added to the Player-owned house\nplugin \nA menu entry swapper option has\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest \nOverlays can no longer get stuck offscreen when switching between fixed and resizable views \nThe Diary Requirements plugin now\ndisplays combat level requirements for achievements requiring them \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n15987632 (1):\n Do not swap entries on NPCs with hint arrows (#6437)\n\nAdam (1):\n devtools: add cape command\n\nArrexel (1):\n Make Grand Exchange plugin panel background color consistent\n\nHydrox6 (2):\n interfacestyles: Fix resizeable mode widgets\n friendnotes: Use new chatbox input dialogue\n\nLarkCubed (1):\n Use static skill order for XP globes (#6087)\n\nLuke Sheldon (1):\n Add cannon spot to blue dragon area in Myth\'s Guils (#6460)\n\nMagic fTail (1):\n Move "Outside the\xa0Falador Party Room" hot cold clue step\n\nMalfuryent (4):\n Add IS_POISONED and QUICK_PRAYER vars\n Add interface container widget ID\n Expose ItemStatChangesService from ItemStats plugin\n Add status bars plugin\n\nMax Weber (1):\n ChatboxPanelManager: Kill panels when logging out.\n\nMaxBartlett (2):\n Add Taverley shortcut to agility plugin (#6381)\n Add skeletal wyvern stairs to agility shortcut plugin (#6420)\n\nMonsterxsync (1):\n Add potential reward to the barrows overlay\n\nSebastiaanVanspauwen (1):\n Poh plugin: Add nexus/pendant/xerics teleport icons (#6395)\n\nTheStonedTurtle (1):\n Add option to swap "Private" and "Shared" on CoX chest (#6388)\n\nTomas Slusny (7):\n Add AMMO(13) to EquipmentInventorySlot\n Update item_variations.json for latest cache changes\n Check if any experience was gained in skill before tracking action\n Unlimit stretched resizable mode\n Properly limit scaling factor for stretched resizable\n Prevent overlays from moving off-screen\n Make barrows minimap respect client minimap colors, show players\n\nWilliam (1):\n Add ability to set combat requirements for achievement diaries (#6270)\n\nbrodan (1):\n Make boost overlay to change to yellow at threshold\n
\n',image:"/img/blog/1.4.26-Release/status-bars-plugin.gif"}}}]);
-//# sourceMappingURL=71.d5b73462.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[71],{347:function(e,n){e.exports={title:"1.4.26 Release",description:"Status bars plugin and upcoming GPU plugin",author:"Jordan",body:'A Status Bars plugin has been added, which\nwill display hitpoints and prayer information on the columns of the inventory, or along the left\nside of the inventory panel. Big thanks to @Malfuryent for their\ntireless work maintainng this plugin for months preparing for its addition to the client.
\n
\nAs we\'ve announced on Twitter , we\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!
\nThere are also several smaller improvements and bug fixes, including:
\n\nA bug causing the XP Tracker plugin to\nimproperly display combat skills with strange values has been fixed \nMenu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters \nThe Grand Exchange plugin panel has\nhad its color scheme updated to better match the rest of the client \nThe Friend Notes plugin now uses the\nupdated chatbox dialog \nXP globes are now ordered statically, and\nwill not change order based on the time skill experience is received \nA Myth\'s guild cannon spot for blue dragons has been highlighted in the Cannon\nplugin \nShortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\nnow highlighted in the Agility plugin \nThe Barrows Brothers plugin \'s\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\noverlay \nIcons for the new portal nexus and mounted jewellery have been added to the Player-owned house\nplugin \nA menu entry swapper option has\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest \nOverlays can no longer get stuck offscreen when switching between fixed and resizable views \nThe Diary Requirements plugin now\ndisplays combat level requirements for achievements requiring them \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n15987632 (1):\n Do not swap entries on NPCs with hint arrows (#6437)\n\nAdam (1):\n devtools: add cape command\n\nArrexel (1):\n Make Grand Exchange plugin panel background color consistent\n\nHydrox6 (2):\n interfacestyles: Fix resizeable mode widgets\n friendnotes: Use new chatbox input dialogue\n\nLarkCubed (1):\n Use static skill order for XP globes (#6087)\n\nLuke Sheldon (1):\n Add cannon spot to blue dragon area in Myth\'s Guils (#6460)\n\nMagic fTail (1):\n Move "Outside the\xa0Falador Party Room" hot cold clue step\n\nMalfuryent (4):\n Add IS_POISONED and QUICK_PRAYER vars\n Add interface container widget ID\n Expose ItemStatChangesService from ItemStats plugin\n Add status bars plugin\n\nMax Weber (1):\n ChatboxPanelManager: Kill panels when logging out.\n\nMaxBartlett (2):\n Add Taverley shortcut to agility plugin (#6381)\n Add skeletal wyvern stairs to agility shortcut plugin (#6420)\n\nMonsterxsync (1):\n Add potential reward to the barrows overlay\n\nSebastiaanVanspauwen (1):\n Poh plugin: Add nexus/pendant/xerics teleport icons (#6395)\n\nTheStonedTurtle (1):\n Add option to swap "Private" and "Shared" on CoX chest (#6388)\n\nTomas Slusny (7):\n Add AMMO(13) to EquipmentInventorySlot\n Update item_variations.json for latest cache changes\n Check if any experience was gained in skill before tracking action\n Unlimit stretched resizable mode\n Properly limit scaling factor for stretched resizable\n Prevent overlays from moving off-screen\n Make barrows minimap respect client minimap colors, show players\n\nWilliam (1):\n Add ability to set combat requirements for achievement diaries (#6270)\n\nbrodan (1):\n Make boost overlay to change to yellow at threshold\n
\n',image:"/img/blog/1.4.26-Release/status-bars-plugin.gif"}}}]);
+//# sourceMappingURL=71.78d28015.chunk.js.map
\ No newline at end of file
diff --git a/static/js/71.d5b73462.chunk.js.map b/static/js/71.78d28015.chunk.js.map
similarity index 98%
rename from static/js/71.d5b73462.chunk.js.map
rename to static/js/71.78d28015.chunk.js.map
index ec878a65b..edb7fc834 100644
--- a/static/js/71.d5b73462.chunk.js.map
+++ b/static/js/71.78d28015.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-15-10-00-1.4.26-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,6CAA6C,OAAS,SAAS,KAAO,glKAA2pK,MAAQ","file":"static/js/71.d5b73462.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.26 Release\",\"description\":\"Status bars plugin and upcoming GPU plugin\",\"author\":\"Jordan\",\"body\":\"A Status Bars plugin has been added, which\\nwill display hitpoints and prayer information on the columns of the inventory, or along the left\\nside of the inventory panel. Big thanks to @Malfuryent for their\\ntireless work maintainng this plugin for months preparing for its addition to the client.
\\n
\\nAs we've announced on Twitter , we\\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA bug causing the XP Tracker plugin to\\nimproperly display combat skills with strange values has been fixed \\nMenu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters \\nThe Grand Exchange plugin panel has\\nhad its color scheme updated to better match the rest of the client \\nThe Friend Notes plugin now uses the\\nupdated chatbox dialog \\nXP globes are now ordered statically, and\\nwill not change order based on the time skill experience is received \\nA Myth's guild cannon spot for blue dragons has been highlighted in the Cannon\\nplugin \\nShortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\\nnow highlighted in the Agility plugin \\nThe Barrows Brothers plugin 's\\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\\noverlay \\nIcons for the new portal nexus and mounted jewellery have been added to the Player-owned house\\nplugin \\nA menu entry swapper option has\\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest \\nOverlays can no longer get stuck offscreen when switching between fixed and resizable views \\nThe Diary Requirements plugin now\\ndisplays combat level requirements for achievements requiring them \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n15987632 (1):\\n Do not swap entries on NPCs with hint arrows (#6437)\\n\\nAdam (1):\\n devtools: add cape command\\n\\nArrexel (1):\\n Make Grand Exchange plugin panel background color consistent\\n\\nHydrox6 (2):\\n interfacestyles: Fix resizeable mode widgets\\n friendnotes: Use new chatbox input dialogue\\n\\nLarkCubed (1):\\n Use static skill order for XP globes (#6087)\\n\\nLuke Sheldon (1):\\n Add cannon spot to blue dragon area in Myth's Guils (#6460)\\n\\nMagic fTail (1):\\n Move "Outside the Falador Party Room" hot cold clue step\\n\\nMalfuryent (4):\\n Add IS_POISONED and QUICK_PRAYER vars\\n Add interface container widget ID\\n Expose ItemStatChangesService from ItemStats plugin\\n Add status bars plugin\\n\\nMax Weber (1):\\n ChatboxPanelManager: Kill panels when logging out.\\n\\nMaxBartlett (2):\\n Add Taverley shortcut to agility plugin (#6381)\\n Add skeletal wyvern stairs to agility shortcut plugin (#6420)\\n\\nMonsterxsync (1):\\n Add potential reward to the barrows overlay\\n\\nSebastiaanVanspauwen (1):\\n Poh plugin: Add nexus/pendant/xerics teleport icons (#6395)\\n\\nTheStonedTurtle (1):\\n Add option to swap "Private" and "Shared" on CoX chest (#6388)\\n\\nTomas Slusny (7):\\n Add AMMO(13) to EquipmentInventorySlot\\n Update item_variations.json for latest cache changes\\n Check if any experience was gained in skill before tracking action\\n Unlimit stretched resizable mode\\n Properly limit scaling factor for stretched resizable\\n Prevent overlays from moving off-screen\\n Make barrows minimap respect client minimap colors, show players\\n\\nWilliam (1):\\n Add ability to set combat requirements for achievement diaries (#6270)\\n\\nbrodan (1):\\n Make boost overlay to change to yellow at threshold\\n
\\n\",\"image\":\"/img/blog/1.4.26-Release/status-bars-plugin.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-15-10-00-1.4.26-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,6CAA6C,OAAS,SAAS,KAAO,glKAA2pK,MAAQ","file":"static/js/71.78d28015.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.4.26 Release\",\"description\":\"Status bars plugin and upcoming GPU plugin\",\"author\":\"Jordan\",\"body\":\"A Status Bars plugin has been added, which\\nwill display hitpoints and prayer information on the columns of the inventory, or along the left\\nside of the inventory panel. Big thanks to @Malfuryent for their\\ntireless work maintainng this plugin for months preparing for its addition to the client.
\\n
\\nAs we've announced on Twitter , we\\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA bug causing the XP Tracker plugin to\\nimproperly display combat skills with strange values has been fixed \\nMenu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters \\nThe Grand Exchange plugin panel has\\nhad its color scheme updated to better match the rest of the client \\nThe Friend Notes plugin now uses the\\nupdated chatbox dialog \\nXP globes are now ordered statically, and\\nwill not change order based on the time skill experience is received \\nA Myth's guild cannon spot for blue dragons has been highlighted in the Cannon\\nplugin \\nShortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\\nnow highlighted in the Agility plugin \\nThe Barrows Brothers plugin 's\\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\\noverlay \\nIcons for the new portal nexus and mounted jewellery have been added to the Player-owned house\\nplugin \\nA menu entry swapper option has\\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest \\nOverlays can no longer get stuck offscreen when switching between fixed and resizable views \\nThe Diary Requirements plugin now\\ndisplays combat level requirements for achievements requiring them \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n15987632 (1):\\n Do not swap entries on NPCs with hint arrows (#6437)\\n\\nAdam (1):\\n devtools: add cape command\\n\\nArrexel (1):\\n Make Grand Exchange plugin panel background color consistent\\n\\nHydrox6 (2):\\n interfacestyles: Fix resizeable mode widgets\\n friendnotes: Use new chatbox input dialogue\\n\\nLarkCubed (1):\\n Use static skill order for XP globes (#6087)\\n\\nLuke Sheldon (1):\\n Add cannon spot to blue dragon area in Myth's Guils (#6460)\\n\\nMagic fTail (1):\\n Move "Outside the Falador Party Room" hot cold clue step\\n\\nMalfuryent (4):\\n Add IS_POISONED and QUICK_PRAYER vars\\n Add interface container widget ID\\n Expose ItemStatChangesService from ItemStats plugin\\n Add status bars plugin\\n\\nMax Weber (1):\\n ChatboxPanelManager: Kill panels when logging out.\\n\\nMaxBartlett (2):\\n Add Taverley shortcut to agility plugin (#6381)\\n Add skeletal wyvern stairs to agility shortcut plugin (#6420)\\n\\nMonsterxsync (1):\\n Add potential reward to the barrows overlay\\n\\nSebastiaanVanspauwen (1):\\n Poh plugin: Add nexus/pendant/xerics teleport icons (#6395)\\n\\nTheStonedTurtle (1):\\n Add option to swap "Private" and "Shared" on CoX chest (#6388)\\n\\nTomas Slusny (7):\\n Add AMMO(13) to EquipmentInventorySlot\\n Update item_variations.json for latest cache changes\\n Check if any experience was gained in skill before tracking action\\n Unlimit stretched resizable mode\\n Properly limit scaling factor for stretched resizable\\n Prevent overlays from moving off-screen\\n Make barrows minimap respect client minimap colors, show players\\n\\nWilliam (1):\\n Add ability to set combat requirements for achievement diaries (#6270)\\n\\nbrodan (1):\\n Make boost overlay to change to yellow at threshold\\n
\\n\",\"image\":\"/img/blog/1.4.26-Release/status-bars-plugin.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/72.dad037af.chunk.js b/static/js/72.70ebbfb2.chunk.js
similarity index 93%
rename from static/js/72.dad037af.chunk.js
rename to static/js/72.70ebbfb2.chunk.js
index cf8e94514..4642f3b19 100644
--- a/static/js/72.dad037af.chunk.js
+++ b/static/js/72.70ebbfb2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[72],{347:function(e,t){e.exports={title:"1.5.0 Release",description:"GPU Renderer",author:"Adam",body:'The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved\nframerate, particularly on larger screens, and increases the distance you can\nsee in game. Check out this tweet for some neat pictures.
\nThe GPU plugin requires Windows (7, 8, or 10), a GPU with support for OpenGL\n4.3 or newer, and 2GB of VRAM. This requires either an Nvidia GeForce 400 or newer,\nan AMD Radeon HD 5000 Series or newer, or Intel HD Graphics with an Intel Haswell\nprocessor or newer. Also ensure that your GPU drivers are up to date.
\nWe have tested this plugin a lot over the last few weeks, on as much hardware as\nwe can find, but there are possibly configurations it does not work correctly\non. In particular, we recommend you do not enable it in dangerous situations\ningame (HCIM!) until you sufficiently test that it is stable on your system.
\nIf you find an issue with it open a bug report on our issue\ntracker if a bug report for it\nisn\'t already in the list of known issues .\nNote that currently the GPU plugin does not work with the stretched mode plugin.
\nEnjoy!
\n- Adam
\n'}}}]);
-//# sourceMappingURL=72.dad037af.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[72],{348:function(e,t){e.exports={title:"1.5.0 Release",description:"GPU Renderer",author:"Adam",body:'The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved\nframerate, particularly on larger screens, and increases the distance you can\nsee in game. Check out this tweet for some neat pictures.
\nThe GPU plugin requires Windows (7, 8, or 10), a GPU with support for OpenGL\n4.3 or newer, and 2GB of VRAM. This requires either an Nvidia GeForce 400 or newer,\nan AMD Radeon HD 5000 Series or newer, or Intel HD Graphics with an Intel Haswell\nprocessor or newer. Also ensure that your GPU drivers are up to date.
\nWe have tested this plugin a lot over the last few weeks, on as much hardware as\nwe can find, but there are possibly configurations it does not work correctly\non. In particular, we recommend you do not enable it in dangerous situations\ningame (HCIM!) until you sufficiently test that it is stable on your system.
\nIf you find an issue with it open a bug report on our issue\ntracker if a bug report for it\nisn\'t already in the list of known issues .\nNote that currently the GPU plugin does not work with the stretched mode plugin.
\nEnjoy!
\n- Adam
\n'}}}]);
+//# sourceMappingURL=72.70ebbfb2.chunk.js.map
\ No newline at end of file
diff --git a/static/js/72.dad037af.chunk.js.map b/static/js/72.70ebbfb2.chunk.js.map
similarity index 93%
rename from static/js/72.dad037af.chunk.js.map
rename to static/js/72.70ebbfb2.chunk.js.map
index c69927054..9028e2709 100644
--- a/static/js/72.dad037af.chunk.js.map
+++ b/static/js/72.70ebbfb2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-16-12-00-1.5.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,eAAe,OAAS,OAAO,KAAO","file":"static/js/72.dad037af.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.0 Release\",\"description\":\"GPU Renderer\",\"author\":\"Adam\",\"body\":\"The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved\\nframerate, particularly on larger screens, and increases the distance you can\\nsee in game. Check out this tweet for some neat pictures.
\\nThe GPU plugin requires Windows (7, 8, or 10), a GPU with support for OpenGL\\n4.3 or newer, and 2GB of VRAM. This requires either an Nvidia GeForce 400 or newer,\\nan AMD Radeon HD 5000 Series or newer, or Intel HD Graphics with an Intel Haswell\\nprocessor or newer. Also ensure that your GPU drivers are up to date.
\\nWe have tested this plugin a lot over the last few weeks, on as much hardware as\\nwe can find, but there are possibly configurations it does not work correctly\\non. In particular, we recommend you do not enable it in dangerous situations\\ningame (HCIM!) until you sufficiently test that it is stable on your system.
\\nIf you find an issue with it open a bug report on our issue\\ntracker if a bug report for it\\nisn't already in the list of known issues .\\nNote that currently the GPU plugin does not work with the stretched mode plugin.
\\nEnjoy!
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-16-12-00-1.5.0-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,eAAe,OAAS,OAAO,KAAO","file":"static/js/72.70ebbfb2.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.0 Release\",\"description\":\"GPU Renderer\",\"author\":\"Adam\",\"body\":\"The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved\\nframerate, particularly on larger screens, and increases the distance you can\\nsee in game. Check out this tweet for some neat pictures.
\\nThe GPU plugin requires Windows (7, 8, or 10), a GPU with support for OpenGL\\n4.3 or newer, and 2GB of VRAM. This requires either an Nvidia GeForce 400 or newer,\\nan AMD Radeon HD 5000 Series or newer, or Intel HD Graphics with an Intel Haswell\\nprocessor or newer. Also ensure that your GPU drivers are up to date.
\\nWe have tested this plugin a lot over the last few weeks, on as much hardware as\\nwe can find, but there are possibly configurations it does not work correctly\\non. In particular, we recommend you do not enable it in dangerous situations\\ningame (HCIM!) until you sufficiently test that it is stable on your system.
\\nIf you find an issue with it open a bug report on our issue\\ntracker if a bug report for it\\nisn't already in the list of known issues .\\nNote that currently the GPU plugin does not work with the stretched mode plugin.
\\nEnjoy!
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/73.2b566180.chunk.js b/static/js/73.56bda436.chunk.js
similarity index 97%
rename from static/js/73.2b566180.chunk.js
rename to static/js/73.56bda436.chunk.js
index 7a44ffd32..bc5900f7f 100644
--- a/static/js/73.2b566180.chunk.js
+++ b/static/js/73.56bda436.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[73],{348:function(e,n){e.exports={title:"1.5.1 Release",description:"Linux support for GPU plugin, CTRL-V paste on login screen, combat tooltips",author:"Adam",body:'Thanks to the hard work of @whitehooder and @deathbeam \nthe GPU plugin now also supports Linux machines. The requirements are still the same, mesa with\nat least GL 4.3+ support is required. Here is small table of\nMesa 17.2.0 GL support .\nWe are aware that on some graphic cards mesa can only support GL 4.2 even though all required features\nthat we use are supported, and we plan to look into that in future.
\nThanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\nto reach the next combat level in Attack Style interface.
\n \n
\nThanks to @deathbeam you can now paste your username and password to\nlogin screen with CTRL-V. This option needs to be explicitly enabled in Login Screen plugin.
\nGPU fixes for this week:
\n\nAdd support for Stretched Mode \nFix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19 \nFix relying on some undefined behavior causing some AMD cards to not work corectly \nFix visible lag from resizing the client or when expanding/contracting the side panel \nFix resource leaks from shutting down the GPU plugin \nMore consistently limit interaction with far away objects \n \nThere are also several smaller improvements and bug fixes, including:
\n\nFix smoke rune level requirement in skill calc \nShow ironman icons when chat is locked with the WASD plugin \nAdd new POH teleport icons to minimap \nFix hiding attack styles after autocast selection \nMake Skotizo interface layoutable \nFix some boulders at Maniacal Monkeys not working with the hunter plugin \nAdd kills left to XP orbs \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 17 contributors this release!
\nAdam (4):\n gpu: destroy glcontext on shutdown\n gpu: don\'t compute scene if the scene buffer isn\'t filled yet\n gpu: correct uniform block name in geometry shader\n mixins: remove extended visiblity maps\n\nBrett (1):\n Add tooltip to show levels required for next combat level (#5764)\n\nDennis (1):\n gpu: add sin/cos table to UBO\n\nDevinMadsen (1):\n Fix smoke rune level requirement in skill calc (#6565)\n\nHydrox6 (1):\n wasdplugin: Show Ironman Icons when chat is locked (#6347)\n\nJack Sheehan (1):\n Add new POH teleport icons to minimap (#6502)\n\nJordan Atwood (1):\n attack styles: Fix style hiding after autocast selection\n\nLotto (4):\n puzzlesolver: wait a duration before recomputing the solution\n gpu: limit interaction distance from camera\n gpu: add frame and render buffer utils\n gpu: add stretched mode support\n\nMagic fTail (1):\n Add abyssal sire resp systems to npc_health\n\nMax Weber (3):\n ScriptVM: Catch exceptions thrown from a JavaScriptCallback\n ChatboxTextInput: Properly escape carrots\n runelite-client: Make Skotizo widget layoutable\n\nMaxBartlett (1):\n Fix distance check for maniacal monkey boulders (#6399)\n\nSlevender (1):\n Remove non-existant fairy ring location BJQ (#6518)\n\nSteffen Hauge (1):\n Add support for kills left in xp orbs\n\nTomas Slusny (9):\n Switch to core profile in GPU plugin\n Expose current login field and password setter\n Add support for Ctrl-V pasting on login screen\n Fix JOGL context debug logging flag\n Properly destroy JAWT window on plugin shutdown\n Unlock surface only with X11JAWTWindow\n Make sidebar icon consistent without custom chrome\n Properly null-check chat performance widgets\n Null-check GL and window on plugin shutdown\n\nWhitehooder (1):\n Fix GPU rendering on Linux\n\ndrivfe (1):\n Fix some xp values in skill_smithing.json\n\nforsco (1):\n Fix indentation of npc_health json (#6616)\n
\n',image:"/img/blog/1.5.1-Release/combat1.png"}}}]);
-//# sourceMappingURL=73.2b566180.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[73],{349:function(e,n){e.exports={title:"1.5.1 Release",description:"Linux support for GPU plugin, CTRL-V paste on login screen, combat tooltips",author:"Adam",body:'Thanks to the hard work of @whitehooder and @deathbeam \nthe GPU plugin now also supports Linux machines. The requirements are still the same, mesa with\nat least GL 4.3+ support is required. Here is small table of\nMesa 17.2.0 GL support .\nWe are aware that on some graphic cards mesa can only support GL 4.2 even though all required features\nthat we use are supported, and we plan to look into that in future.
\nThanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\nto reach the next combat level in Attack Style interface.
\n \n
\nThanks to @deathbeam you can now paste your username and password to\nlogin screen with CTRL-V. This option needs to be explicitly enabled in Login Screen plugin.
\nGPU fixes for this week:
\n\nAdd support for Stretched Mode \nFix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19 \nFix relying on some undefined behavior causing some AMD cards to not work corectly \nFix visible lag from resizing the client or when expanding/contracting the side panel \nFix resource leaks from shutting down the GPU plugin \nMore consistently limit interaction with far away objects \n \nThere are also several smaller improvements and bug fixes, including:
\n\nFix smoke rune level requirement in skill calc \nShow ironman icons when chat is locked with the WASD plugin \nAdd new POH teleport icons to minimap \nFix hiding attack styles after autocast selection \nMake Skotizo interface layoutable \nFix some boulders at Maniacal Monkeys not working with the hunter plugin \nAdd kills left to XP orbs \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 17 contributors this release!
\nAdam (4):\n gpu: destroy glcontext on shutdown\n gpu: don\'t compute scene if the scene buffer isn\'t filled yet\n gpu: correct uniform block name in geometry shader\n mixins: remove extended visiblity maps\n\nBrett (1):\n Add tooltip to show levels required for next combat level (#5764)\n\nDennis (1):\n gpu: add sin/cos table to UBO\n\nDevinMadsen (1):\n Fix smoke rune level requirement in skill calc (#6565)\n\nHydrox6 (1):\n wasdplugin: Show Ironman Icons when chat is locked (#6347)\n\nJack Sheehan (1):\n Add new POH teleport icons to minimap (#6502)\n\nJordan Atwood (1):\n attack styles: Fix style hiding after autocast selection\n\nLotto (4):\n puzzlesolver: wait a duration before recomputing the solution\n gpu: limit interaction distance from camera\n gpu: add frame and render buffer utils\n gpu: add stretched mode support\n\nMagic fTail (1):\n Add abyssal sire resp systems to npc_health\n\nMax Weber (3):\n ScriptVM: Catch exceptions thrown from a JavaScriptCallback\n ChatboxTextInput: Properly escape carrots\n runelite-client: Make Skotizo widget layoutable\n\nMaxBartlett (1):\n Fix distance check for maniacal monkey boulders (#6399)\n\nSlevender (1):\n Remove non-existant fairy ring location BJQ (#6518)\n\nSteffen Hauge (1):\n Add support for kills left in xp orbs\n\nTomas Slusny (9):\n Switch to core profile in GPU plugin\n Expose current login field and password setter\n Add support for Ctrl-V pasting on login screen\n Fix JOGL context debug logging flag\n Properly destroy JAWT window on plugin shutdown\n Unlock surface only with X11JAWTWindow\n Make sidebar icon consistent without custom chrome\n Properly null-check chat performance widgets\n Null-check GL and window on plugin shutdown\n\nWhitehooder (1):\n Fix GPU rendering on Linux\n\ndrivfe (1):\n Fix some xp values in skill_smithing.json\n\nforsco (1):\n Fix indentation of npc_health json (#6616)\n
\n',image:"/img/blog/1.5.1-Release/combat1.png"}}}]);
+//# sourceMappingURL=73.56bda436.chunk.js.map
\ No newline at end of file
diff --git a/static/js/73.2b566180.chunk.js.map b/static/js/73.56bda436.chunk.js.map
similarity index 98%
rename from static/js/73.2b566180.chunk.js.map
rename to static/js/73.56bda436.chunk.js.map
index 648c5c91c..2b192b52c 100644
--- a/static/js/73.2b566180.chunk.js.map
+++ b/static/js/73.56bda436.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-22-10-00-1.5.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8EAA8E,OAAS,OAAO,KAAO,+0IAAm3I,MAAQ","file":"static/js/73.2b566180.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.1 Release\",\"description\":\"Linux support for GPU plugin, CTRL-V paste on login screen, combat tooltips\",\"author\":\"Adam\",\"body\":\"Thanks to the hard work of @whitehooder and @deathbeam \\nthe GPU plugin now also supports Linux machines. The requirements are still the same, mesa with\\nat least GL 4.3+ support is required. Here is small table of\\nMesa 17.2.0 GL support .\\nWe are aware that on some graphic cards mesa can only support GL 4.2 even though all required features\\nthat we use are supported, and we plan to look into that in future.
\\nThanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\\nto reach the next combat level in Attack Style interface.
\\n \\n
\\nThanks to @deathbeam you can now paste your username and password to\\nlogin screen with CTRL-V. This option needs to be explicitly enabled in Login Screen plugin.
\\nGPU fixes for this week:
\\n\\nAdd support for Stretched Mode \\nFix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19 \\nFix relying on some undefined behavior causing some AMD cards to not work corectly \\nFix visible lag from resizing the client or when expanding/contracting the side panel \\nFix resource leaks from shutting down the GPU plugin \\nMore consistently limit interaction with far away objects \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix smoke rune level requirement in skill calc \\nShow ironman icons when chat is locked with the WASD plugin \\nAdd new POH teleport icons to minimap \\nFix hiding attack styles after autocast selection \\nMake Skotizo interface layoutable \\nFix some boulders at Maniacal Monkeys not working with the hunter plugin \\nAdd kills left to XP orbs \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (4):\\n gpu: destroy glcontext on shutdown\\n gpu: don't compute scene if the scene buffer isn't filled yet\\n gpu: correct uniform block name in geometry shader\\n mixins: remove extended visiblity maps\\n\\nBrett (1):\\n Add tooltip to show levels required for next combat level (#5764)\\n\\nDennis (1):\\n gpu: add sin/cos table to UBO\\n\\nDevinMadsen (1):\\n Fix smoke rune level requirement in skill calc (#6565)\\n\\nHydrox6 (1):\\n wasdplugin: Show Ironman Icons when chat is locked (#6347)\\n\\nJack Sheehan (1):\\n Add new POH teleport icons to minimap (#6502)\\n\\nJordan Atwood (1):\\n attack styles: Fix style hiding after autocast selection\\n\\nLotto (4):\\n puzzlesolver: wait a duration before recomputing the solution\\n gpu: limit interaction distance from camera\\n gpu: add frame and render buffer utils\\n gpu: add stretched mode support\\n\\nMagic fTail (1):\\n Add abyssal sire resp systems to npc_health\\n\\nMax Weber (3):\\n ScriptVM: Catch exceptions thrown from a JavaScriptCallback\\n ChatboxTextInput: Properly escape carrots\\n runelite-client: Make Skotizo widget layoutable\\n\\nMaxBartlett (1):\\n Fix distance check for maniacal monkey boulders (#6399)\\n\\nSlevender (1):\\n Remove non-existant fairy ring location BJQ (#6518)\\n\\nSteffen Hauge (1):\\n Add support for kills left in xp orbs\\n\\nTomas Slusny (9):\\n Switch to core profile in GPU plugin\\n Expose current login field and password setter\\n Add support for Ctrl-V pasting on login screen\\n Fix JOGL context debug logging flag\\n Properly destroy JAWT window on plugin shutdown\\n Unlock surface only with X11JAWTWindow\\n Make sidebar icon consistent without custom chrome\\n Properly null-check chat performance widgets\\n Null-check GL and window on plugin shutdown\\n\\nWhitehooder (1):\\n Fix GPU rendering on Linux\\n\\ndrivfe (1):\\n Fix some xp values in skill_smithing.json\\n\\nforsco (1):\\n Fix indentation of npc_health json (#6616)\\n
\\n\",\"image\":\"/img/blog/1.5.1-Release/combat1.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-22-10-00-1.5.1-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,8EAA8E,OAAS,OAAO,KAAO,+0IAAm3I,MAAQ","file":"static/js/73.56bda436.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.1 Release\",\"description\":\"Linux support for GPU plugin, CTRL-V paste on login screen, combat tooltips\",\"author\":\"Adam\",\"body\":\"Thanks to the hard work of @whitehooder and @deathbeam \\nthe GPU plugin now also supports Linux machines. The requirements are still the same, mesa with\\nat least GL 4.3+ support is required. Here is small table of\\nMesa 17.2.0 GL support .\\nWe are aware that on some graphic cards mesa can only support GL 4.2 even though all required features\\nthat we use are supported, and we plan to look into that in future.
\\nThanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\\nto reach the next combat level in Attack Style interface.
\\n \\n
\\nThanks to @deathbeam you can now paste your username and password to\\nlogin screen with CTRL-V. This option needs to be explicitly enabled in Login Screen plugin.
\\nGPU fixes for this week:
\\n\\nAdd support for Stretched Mode \\nFix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19 \\nFix relying on some undefined behavior causing some AMD cards to not work corectly \\nFix visible lag from resizing the client or when expanding/contracting the side panel \\nFix resource leaks from shutting down the GPU plugin \\nMore consistently limit interaction with far away objects \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix smoke rune level requirement in skill calc \\nShow ironman icons when chat is locked with the WASD plugin \\nAdd new POH teleport icons to minimap \\nFix hiding attack styles after autocast selection \\nMake Skotizo interface layoutable \\nFix some boulders at Maniacal Monkeys not working with the hunter plugin \\nAdd kills left to XP orbs \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (4):\\n gpu: destroy glcontext on shutdown\\n gpu: don't compute scene if the scene buffer isn't filled yet\\n gpu: correct uniform block name in geometry shader\\n mixins: remove extended visiblity maps\\n\\nBrett (1):\\n Add tooltip to show levels required for next combat level (#5764)\\n\\nDennis (1):\\n gpu: add sin/cos table to UBO\\n\\nDevinMadsen (1):\\n Fix smoke rune level requirement in skill calc (#6565)\\n\\nHydrox6 (1):\\n wasdplugin: Show Ironman Icons when chat is locked (#6347)\\n\\nJack Sheehan (1):\\n Add new POH teleport icons to minimap (#6502)\\n\\nJordan Atwood (1):\\n attack styles: Fix style hiding after autocast selection\\n\\nLotto (4):\\n puzzlesolver: wait a duration before recomputing the solution\\n gpu: limit interaction distance from camera\\n gpu: add frame and render buffer utils\\n gpu: add stretched mode support\\n\\nMagic fTail (1):\\n Add abyssal sire resp systems to npc_health\\n\\nMax Weber (3):\\n ScriptVM: Catch exceptions thrown from a JavaScriptCallback\\n ChatboxTextInput: Properly escape carrots\\n runelite-client: Make Skotizo widget layoutable\\n\\nMaxBartlett (1):\\n Fix distance check for maniacal monkey boulders (#6399)\\n\\nSlevender (1):\\n Remove non-existant fairy ring location BJQ (#6518)\\n\\nSteffen Hauge (1):\\n Add support for kills left in xp orbs\\n\\nTomas Slusny (9):\\n Switch to core profile in GPU plugin\\n Expose current login field and password setter\\n Add support for Ctrl-V pasting on login screen\\n Fix JOGL context debug logging flag\\n Properly destroy JAWT window on plugin shutdown\\n Unlock surface only with X11JAWTWindow\\n Make sidebar icon consistent without custom chrome\\n Properly null-check chat performance widgets\\n Null-check GL and window on plugin shutdown\\n\\nWhitehooder (1):\\n Fix GPU rendering on Linux\\n\\ndrivfe (1):\\n Fix some xp values in skill_smithing.json\\n\\nforsco (1):\\n Fix indentation of npc_health json (#6616)\\n
\\n\",\"image\":\"/img/blog/1.5.1-Release/combat1.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/74.68f372e5.chunk.js b/static/js/74.6e0b2a5d.chunk.js
similarity index 97%
rename from static/js/74.68f372e5.chunk.js
rename to static/js/74.6e0b2a5d.chunk.js
index 7ed100542..48fdfcc73 100644
--- a/static/js/74.68f372e5.chunk.js
+++ b/static/js/74.6e0b2a5d.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[74],{349:function(n,e){n.exports={title:"1.5.2 Release",description:"UI scaling for GPU, color banding, and expanded outer zoom limit",author:"Adam",body:'Stretched mode combined with the GPU plugin will now scale the UI independently\nof the rest of the game (the game is left unscaled). Thanks to\n@dbolya for this great contribution.
\n \n
\nThe GPU plugin now shades more similarly to the CPU renderer by default. You can\nturn on the previous behavior by enabling the \'Smooth banding\' option in the GPU\nplugin settings.
\nThe camera zoom plugin now has a configurable outer zoom limit, which controls\nhow far the ingame zoom can zoom out.
\nGPU fixes for this week:
\n\nFix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others. \nFix screenshots with stretched mode. \n \nThere are also several smaller improvements and bug fixes, including:
\n\nFix pasting on the login screen on OSX \nFix observatory shortcut highlight \nFix slayer plugin not working on the first assigned slayer task \nAdd Ivandis Flail to prayer plugin \nFix the world map plugin to not noticibly drop FPS when the map is open \nFix freeze timer not showing when you move on the same tick as being frozen \nFix incorrect slayer kills remaining count in xp tracker \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors this release!
\nAdam (9):\n Remove update check service and client\n gpu: move priority_map and count_prio_offset to priority_renderer\n gpu: move common compute header to its own file\n gpu: add shader for tiles\n gpu: split camera position from model position\n gpu: remove duplicate definition of struct modelinfo in comp.glsl\n gpu: move hslToRgb to its own file\n gpu: add toggle for color banding\n runelite-api: add skull icon api for local player\n\nAlexsuperfly (1):\n MLM Plugin: Add toggle for rocks highlighting (#6181)\n\nDaniel Bolya (2):\n gpu: add UI scaling when using GPU with stretched mode\n Fixed screenshots in GPU mode with stretching enabled.\n\nDavis Cook (2):\n Fix action and time estimates only appearing after 2 actions (#6624)\n Fix incorrect slayer kill remaining count in xp tracker (#6615)\n\nDennis (2):\n gpu: fix textured faces with alpha\n gpu: fix untextured faces\n\nJochim Van Dijck (1):\n Enable Command-V login screen pasting on macOS\n\nJordan Atwood (1):\n timers: Correctly add freeze timer upon frozen while moving\n\nJoshua Filby (3):\n feat: add StructDefinition to cache\n cache: Add ScriptVarType to Enums\n cache: prevent dumping enums with no data\n\nLotto (1):\n stretchedmode: reduce wait time after changing scaling percentage\n\nMagic fTail (2):\n camera plugin: add expand outer zoom limit option\n Add id to script output\n\nMax Weber (1):\n runelite-client: update to use client patch\n\nMaxBartlett (1):\n Fix observatory shortcut highlight (#6723)\n\nMichael (1):\n Add support for parsing first slayer task (#6677)\n\nOmar Abdellatif (1):\n Truncate username and password string before pasting if necessary\n\nSam Beresford (3):\n Add Ivandis Flail (+5) to prayer plugin (#6664)\n Correct tooltip for notification when focused in RuneLite settings (#6695)\n Auto-hide sidebar close button when not hovered (#6694)\n\nTheStonedTurtle (1):\n Properly update MLM sack values on login/logout (#6627)\n\nTomas Slusny (10):\n Properly close GL context and lock surface\n Do not use static imports for GL constants\n Remove distance check from agility plugin\n Properly parse stat change value in status bars\n Change dev tools fonts to constant\n Unify dev tools toggles to 1 button type\n Move widget and itemIndex to DevToolsOverlay\n Fix access levels in dev tools plugin\n Disable inspector buttons on close in dev tools\n Check for canvas location being non null in TOG\n\nTwiglet1022 (2):\n Improve responsiveness of fishing idle notification (#6457)\n Correct some tick/millis explanatory comments in runelite api (#6383)\n\nl2- (1):\n gpu: suppress debug messages for generic warnings with severity unknown\n\ntrimbe (1):\n world map plugin: optimize clipping of world map points\n
\n',image:"/img/blog/1.5.2-Release/stretched-resizable.png"}}}]);
-//# sourceMappingURL=74.68f372e5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[74],{350:function(n,e){n.exports={title:"1.5.2 Release",description:"UI scaling for GPU, color banding, and expanded outer zoom limit",author:"Adam",body:'Stretched mode combined with the GPU plugin will now scale the UI independently\nof the rest of the game (the game is left unscaled). Thanks to\n@dbolya for this great contribution.
\n \n
\nThe GPU plugin now shades more similarly to the CPU renderer by default. You can\nturn on the previous behavior by enabling the \'Smooth banding\' option in the GPU\nplugin settings.
\nThe camera zoom plugin now has a configurable outer zoom limit, which controls\nhow far the ingame zoom can zoom out.
\nGPU fixes for this week:
\n\nFix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others. \nFix screenshots with stretched mode. \n \nThere are also several smaller improvements and bug fixes, including:
\n\nFix pasting on the login screen on OSX \nFix observatory shortcut highlight \nFix slayer plugin not working on the first assigned slayer task \nAdd Ivandis Flail to prayer plugin \nFix the world map plugin to not noticibly drop FPS when the map is open \nFix freeze timer not showing when you move on the same tick as being frozen \nFix incorrect slayer kills remaining count in xp tracker \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 20 contributors this release!
\nAdam (9):\n Remove update check service and client\n gpu: move priority_map and count_prio_offset to priority_renderer\n gpu: move common compute header to its own file\n gpu: add shader for tiles\n gpu: split camera position from model position\n gpu: remove duplicate definition of struct modelinfo in comp.glsl\n gpu: move hslToRgb to its own file\n gpu: add toggle for color banding\n runelite-api: add skull icon api for local player\n\nAlexsuperfly (1):\n MLM Plugin: Add toggle for rocks highlighting (#6181)\n\nDaniel Bolya (2):\n gpu: add UI scaling when using GPU with stretched mode\n Fixed screenshots in GPU mode with stretching enabled.\n\nDavis Cook (2):\n Fix action and time estimates only appearing after 2 actions (#6624)\n Fix incorrect slayer kill remaining count in xp tracker (#6615)\n\nDennis (2):\n gpu: fix textured faces with alpha\n gpu: fix untextured faces\n\nJochim Van Dijck (1):\n Enable Command-V login screen pasting on macOS\n\nJordan Atwood (1):\n timers: Correctly add freeze timer upon frozen while moving\n\nJoshua Filby (3):\n feat: add StructDefinition to cache\n cache: Add ScriptVarType to Enums\n cache: prevent dumping enums with no data\n\nLotto (1):\n stretchedmode: reduce wait time after changing scaling percentage\n\nMagic fTail (2):\n camera plugin: add expand outer zoom limit option\n Add id to script output\n\nMax Weber (1):\n runelite-client: update to use client patch\n\nMaxBartlett (1):\n Fix observatory shortcut highlight (#6723)\n\nMichael (1):\n Add support for parsing first slayer task (#6677)\n\nOmar Abdellatif (1):\n Truncate username and password string before pasting if necessary\n\nSam Beresford (3):\n Add Ivandis Flail (+5) to prayer plugin (#6664)\n Correct tooltip for notification when focused in RuneLite settings (#6695)\n Auto-hide sidebar close button when not hovered (#6694)\n\nTheStonedTurtle (1):\n Properly update MLM sack values on login/logout (#6627)\n\nTomas Slusny (10):\n Properly close GL context and lock surface\n Do not use static imports for GL constants\n Remove distance check from agility plugin\n Properly parse stat change value in status bars\n Change dev tools fonts to constant\n Unify dev tools toggles to 1 button type\n Move widget and itemIndex to DevToolsOverlay\n Fix access levels in dev tools plugin\n Disable inspector buttons on close in dev tools\n Check for canvas location being non null in TOG\n\nTwiglet1022 (2):\n Improve responsiveness of fishing idle notification (#6457)\n Correct some tick/millis explanatory comments in runelite api (#6383)\n\nl2- (1):\n gpu: suppress debug messages for generic warnings with severity unknown\n\ntrimbe (1):\n world map plugin: optimize clipping of world map points\n
\n',image:"/img/blog/1.5.2-Release/stretched-resizable.png"}}}]);
+//# sourceMappingURL=74.6e0b2a5d.chunk.js.map
\ No newline at end of file
diff --git a/static/js/74.68f372e5.chunk.js.map b/static/js/74.6e0b2a5d.chunk.js.map
similarity index 98%
rename from static/js/74.68f372e5.chunk.js.map
rename to static/js/74.6e0b2a5d.chunk.js.map
index 7f2f5ac36..9bc2be10c 100644
--- a/static/js/74.68f372e5.chunk.js.map
+++ b/static/js/74.6e0b2a5d.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-11-29-10-00-1.5.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,mEAAmE,OAAS,OAAO,KAAO,48IAAw9I,MAAQ","file":"static/js/74.68f372e5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.2 Release\",\"description\":\"UI scaling for GPU, color banding, and expanded outer zoom limit\",\"author\":\"Adam\",\"body\":\"Stretched mode combined with the GPU plugin will now scale the UI independently\\nof the rest of the game (the game is left unscaled). Thanks to\\n@dbolya for this great contribution.
\\n \\n
\\nThe GPU plugin now shades more similarly to the CPU renderer by default. You can\\nturn on the previous behavior by enabling the 'Smooth banding' option in the GPU\\nplugin settings.
\\nThe camera zoom plugin now has a configurable outer zoom limit, which controls\\nhow far the ingame zoom can zoom out.
\\nGPU fixes for this week:
\\n\\nFix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others. \\nFix screenshots with stretched mode. \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix pasting on the login screen on OSX \\nFix observatory shortcut highlight \\nFix slayer plugin not working on the first assigned slayer task \\nAdd Ivandis Flail to prayer plugin \\nFix the world map plugin to not noticibly drop FPS when the map is open \\nFix freeze timer not showing when you move on the same tick as being frozen \\nFix incorrect slayer kills remaining count in xp tracker \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors this release!
\\nAdam (9):\\n Remove update check service and client\\n gpu: move priority_map and count_prio_offset to priority_renderer\\n gpu: move common compute header to its own file\\n gpu: add shader for tiles\\n gpu: split camera position from model position\\n gpu: remove duplicate definition of struct modelinfo in comp.glsl\\n gpu: move hslToRgb to its own file\\n gpu: add toggle for color banding\\n runelite-api: add skull icon api for local player\\n\\nAlexsuperfly (1):\\n MLM Plugin: Add toggle for rocks highlighting (#6181)\\n\\nDaniel Bolya (2):\\n gpu: add UI scaling when using GPU with stretched mode\\n Fixed screenshots in GPU mode with stretching enabled.\\n\\nDavis Cook (2):\\n Fix action and time estimates only appearing after 2 actions (#6624)\\n Fix incorrect slayer kill remaining count in xp tracker (#6615)\\n\\nDennis (2):\\n gpu: fix textured faces with alpha\\n gpu: fix untextured faces\\n\\nJochim Van Dijck (1):\\n Enable Command-V login screen pasting on macOS\\n\\nJordan Atwood (1):\\n timers: Correctly add freeze timer upon frozen while moving\\n\\nJoshua Filby (3):\\n feat: add StructDefinition to cache\\n cache: Add ScriptVarType to Enums\\n cache: prevent dumping enums with no data\\n\\nLotto (1):\\n stretchedmode: reduce wait time after changing scaling percentage\\n\\nMagic fTail (2):\\n camera plugin: add expand outer zoom limit option\\n Add id to script output\\n\\nMax Weber (1):\\n runelite-client: update to use client patch\\n\\nMaxBartlett (1):\\n Fix observatory shortcut highlight (#6723)\\n\\nMichael (1):\\n Add support for parsing first slayer task (#6677)\\n\\nOmar Abdellatif (1):\\n Truncate username and password string before pasting if necessary\\n\\nSam Beresford (3):\\n Add Ivandis Flail (+5) to prayer plugin (#6664)\\n Correct tooltip for notification when focused in RuneLite settings (#6695)\\n Auto-hide sidebar close button when not hovered (#6694)\\n\\nTheStonedTurtle (1):\\n Properly update MLM sack values on login/logout (#6627)\\n\\nTomas Slusny (10):\\n Properly close GL context and lock surface\\n Do not use static imports for GL constants\\n Remove distance check from agility plugin\\n Properly parse stat change value in status bars\\n Change dev tools fonts to constant\\n Unify dev tools toggles to 1 button type\\n Move widget and itemIndex to DevToolsOverlay\\n Fix access levels in dev tools plugin\\n Disable inspector buttons on close in dev tools\\n Check for canvas location being non null in TOG\\n\\nTwiglet1022 (2):\\n Improve responsiveness of fishing idle notification (#6457)\\n Correct some tick/millis explanatory comments in runelite api (#6383)\\n\\nl2- (1):\\n gpu: suppress debug messages for generic warnings with severity unknown\\n\\ntrimbe (1):\\n world map plugin: optimize clipping of world map points\\n
\\n\",\"image\":\"/img/blog/1.5.2-Release/stretched-resizable.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-11-29-10-00-1.5.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,mEAAmE,OAAS,OAAO,KAAO,48IAAw9I,MAAQ","file":"static/js/74.6e0b2a5d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.2 Release\",\"description\":\"UI scaling for GPU, color banding, and expanded outer zoom limit\",\"author\":\"Adam\",\"body\":\"Stretched mode combined with the GPU plugin will now scale the UI independently\\nof the rest of the game (the game is left unscaled). Thanks to\\n@dbolya for this great contribution.
\\n \\n
\\nThe GPU plugin now shades more similarly to the CPU renderer by default. You can\\nturn on the previous behavior by enabling the 'Smooth banding' option in the GPU\\nplugin settings.
\\nThe camera zoom plugin now has a configurable outer zoom limit, which controls\\nhow far the ingame zoom can zoom out.
\\nGPU fixes for this week:
\\n\\nFix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others. \\nFix screenshots with stretched mode. \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix pasting on the login screen on OSX \\nFix observatory shortcut highlight \\nFix slayer plugin not working on the first assigned slayer task \\nAdd Ivandis Flail to prayer plugin \\nFix the world map plugin to not noticibly drop FPS when the map is open \\nFix freeze timer not showing when you move on the same tick as being frozen \\nFix incorrect slayer kills remaining count in xp tracker \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 20 contributors this release!
\\nAdam (9):\\n Remove update check service and client\\n gpu: move priority_map and count_prio_offset to priority_renderer\\n gpu: move common compute header to its own file\\n gpu: add shader for tiles\\n gpu: split camera position from model position\\n gpu: remove duplicate definition of struct modelinfo in comp.glsl\\n gpu: move hslToRgb to its own file\\n gpu: add toggle for color banding\\n runelite-api: add skull icon api for local player\\n\\nAlexsuperfly (1):\\n MLM Plugin: Add toggle for rocks highlighting (#6181)\\n\\nDaniel Bolya (2):\\n gpu: add UI scaling when using GPU with stretched mode\\n Fixed screenshots in GPU mode with stretching enabled.\\n\\nDavis Cook (2):\\n Fix action and time estimates only appearing after 2 actions (#6624)\\n Fix incorrect slayer kill remaining count in xp tracker (#6615)\\n\\nDennis (2):\\n gpu: fix textured faces with alpha\\n gpu: fix untextured faces\\n\\nJochim Van Dijck (1):\\n Enable Command-V login screen pasting on macOS\\n\\nJordan Atwood (1):\\n timers: Correctly add freeze timer upon frozen while moving\\n\\nJoshua Filby (3):\\n feat: add StructDefinition to cache\\n cache: Add ScriptVarType to Enums\\n cache: prevent dumping enums with no data\\n\\nLotto (1):\\n stretchedmode: reduce wait time after changing scaling percentage\\n\\nMagic fTail (2):\\n camera plugin: add expand outer zoom limit option\\n Add id to script output\\n\\nMax Weber (1):\\n runelite-client: update to use client patch\\n\\nMaxBartlett (1):\\n Fix observatory shortcut highlight (#6723)\\n\\nMichael (1):\\n Add support for parsing first slayer task (#6677)\\n\\nOmar Abdellatif (1):\\n Truncate username and password string before pasting if necessary\\n\\nSam Beresford (3):\\n Add Ivandis Flail (+5) to prayer plugin (#6664)\\n Correct tooltip for notification when focused in RuneLite settings (#6695)\\n Auto-hide sidebar close button when not hovered (#6694)\\n\\nTheStonedTurtle (1):\\n Properly update MLM sack values on login/logout (#6627)\\n\\nTomas Slusny (10):\\n Properly close GL context and lock surface\\n Do not use static imports for GL constants\\n Remove distance check from agility plugin\\n Properly parse stat change value in status bars\\n Change dev tools fonts to constant\\n Unify dev tools toggles to 1 button type\\n Move widget and itemIndex to DevToolsOverlay\\n Fix access levels in dev tools plugin\\n Disable inspector buttons on close in dev tools\\n Check for canvas location being non null in TOG\\n\\nTwiglet1022 (2):\\n Improve responsiveness of fishing idle notification (#6457)\\n Correct some tick/millis explanatory comments in runelite api (#6383)\\n\\nl2- (1):\\n gpu: suppress debug messages for generic warnings with severity unknown\\n\\ntrimbe (1):\\n world map plugin: optimize clipping of world map points\\n
\\n\",\"image\":\"/img/blog/1.5.2-Release/stretched-resizable.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/75.620adac4.chunk.js b/static/js/75.7ec9430b.chunk.js
similarity index 97%
rename from static/js/75.620adac4.chunk.js
rename to static/js/75.7ec9430b.chunk.js
index f237ddd69..65876bd19 100644
--- a/static/js/75.620adac4.chunk.js
+++ b/static/js/75.7ec9430b.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[75],{350:function(e,n){e.exports={title:"1.5.3 Release",description:"GPU anti-aliasing and loot-exclusive ground item display",author:"Jordan",body:'The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can\nbe configured in the GPU plugin settings. Thanks to @devLotto for\nimplementing this feature!
\n
\nThe Ground Items plugin now has an option\nto only show loot. Thanks to @Adam- for this feature.
\n
\nAfter discussions among the RuneLite team, the fight cave plugin was removed as it was decided to\nbe too over-powered. For more insight on this decision, you can read Adam\'s comment on\nthis .
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\nand during the fight with the Grotesque Guardians \nThe WASD Camera plugin will no longer\ncause camera spinning when the chatbox loses focus \nMarks of grace, golden nuggets, and items bought with them now have prices calculated for them in\nthe Bank Value plugin , the Examine\nplugin and others \nThe "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\nslot item \nTeleport icons for the pharaoh\'s sceptre have been added to the World Map\nplugin \nThe fairy ring search chatbox will no longer remain active when you select a teleport destination\nvery quickly \nThe Slayer plugin will now display your\ninitial task amount when hovering the slayer infobox \nThe Kourend favour widget is now moveable \nThe Screenshot plugin can now take\nscreenshots when receiving valuable and/or untradeable drops \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (8):\n runelite-client: exclude xz dependency from commons-compress\n runelite-client: remove github-release-plugin\n Revert "Merge pull request #6760 from deathbeam/fix-slayer-task"\n Revert "Add initial kill counter to slayer task (#6654)"\n slayer plugin: show initial assignment amount in infobox tooltip\n Move EventBus implementation to runelite-client\n wasd plugin: fix not unpressing keys when chatbox loses focus\n grounditems: add option to only show loot\n\nAlex Kolpa (1):\n Add world map region overlay dev tool\n\nDavis Cook (2):\n Add initial kill counter to slayer task (#6654)\n don\'t check chatbox status on last tick for fairyring search\n\nJoshua Filby (1):\n fix: use correct char for boolean type\n\nKyle Goodale (1):\n Fix Seers\' Village house clue grammar (#6720)\n\nLotto (1):\n gpu: add scene anti-aliasing\n\nMagic fTail (2):\n Add a tooltip to loot tracker value, showing exact value\n Remove the fight cave plugin\n\nMax Weber (4):\n ClientLoader: Use our classloader, not the system one for loading rs\n Remove polymorphic events\n Replace usages of Guava Subscribe with ours\n FairyRingPlugin: Don\'t close vanilla chatboxes\n\nMika Kuijpers (1):\n Add untradable item price support to ItemManager (#6595)\n\nMonsterxSync (1):\n Add missing empty ammo slot requirement for clue step.\n\nSebastiaan Vanspauwen (1):\n 2005 interface: fix resized offsets\n\nSebastiaanVanspauwen (1):\n worldmap: add pharaoh\'s sceptre teleport icons (#6810)\n\nTomas Slusny (4):\n Update setTask for new assign first slayer field\n Add dense essence chiseling to idle notifier\n Add EventBus to replace Guava one\n Replace usages of Guava EventBus with custom one\n\nTyler Hardy (1):\n Make Kourend favour a moveable widget (#6797)\n\nWooxSolo (1):\n gpu: fix black overlays behind gradients\n\ntanlines (1):\n screenshot plugin: add screenshot on valuable/untradeable item drop\n\ntrimbe (1):\n loot tracker: validate boxes after rebuilding\n
\n',image:"/img/blog/1.5.3-Release/anti-aliasing.png"}}}]);
-//# sourceMappingURL=75.620adac4.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[75],{351:function(e,n){e.exports={title:"1.5.3 Release",description:"GPU anti-aliasing and loot-exclusive ground item display",author:"Jordan",body:'The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can\nbe configured in the GPU plugin settings. Thanks to @devLotto for\nimplementing this feature!
\n
\nThe Ground Items plugin now has an option\nto only show loot. Thanks to @Adam- for this feature.
\n
\nAfter discussions among the RuneLite team, the fight cave plugin was removed as it was decided to\nbe too over-powered. For more insight on this decision, you can read Adam\'s comment on\nthis .
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\nand during the fight with the Grotesque Guardians \nThe WASD Camera plugin will no longer\ncause camera spinning when the chatbox loses focus \nMarks of grace, golden nuggets, and items bought with them now have prices calculated for them in\nthe Bank Value plugin , the Examine\nplugin and others \nThe "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\nslot item \nTeleport icons for the pharaoh\'s sceptre have been added to the World Map\nplugin \nThe fairy ring search chatbox will no longer remain active when you select a teleport destination\nvery quickly \nThe Slayer plugin will now display your\ninitial task amount when hovering the slayer infobox \nThe Kourend favour widget is now moveable \nThe Screenshot plugin can now take\nscreenshots when receiving valuable and/or untradeable drops \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 17 contributors this release!
\nAdam (8):\n runelite-client: exclude xz dependency from commons-compress\n runelite-client: remove github-release-plugin\n Revert "Merge pull request #6760 from deathbeam/fix-slayer-task"\n Revert "Add initial kill counter to slayer task (#6654)"\n slayer plugin: show initial assignment amount in infobox tooltip\n Move EventBus implementation to runelite-client\n wasd plugin: fix not unpressing keys when chatbox loses focus\n grounditems: add option to only show loot\n\nAlex Kolpa (1):\n Add world map region overlay dev tool\n\nDavis Cook (2):\n Add initial kill counter to slayer task (#6654)\n don\'t check chatbox status on last tick for fairyring search\n\nJoshua Filby (1):\n fix: use correct char for boolean type\n\nKyle Goodale (1):\n Fix Seers\' Village house clue grammar (#6720)\n\nLotto (1):\n gpu: add scene anti-aliasing\n\nMagic fTail (2):\n Add a tooltip to loot tracker value, showing exact value\n Remove the fight cave plugin\n\nMax Weber (4):\n ClientLoader: Use our classloader, not the system one for loading rs\n Remove polymorphic events\n Replace usages of Guava Subscribe with ours\n FairyRingPlugin: Don\'t close vanilla chatboxes\n\nMika Kuijpers (1):\n Add untradable item price support to ItemManager (#6595)\n\nMonsterxSync (1):\n Add missing empty ammo slot requirement for clue step.\n\nSebastiaan Vanspauwen (1):\n 2005 interface: fix resized offsets\n\nSebastiaanVanspauwen (1):\n worldmap: add pharaoh\'s sceptre teleport icons (#6810)\n\nTomas Slusny (4):\n Update setTask for new assign first slayer field\n Add dense essence chiseling to idle notifier\n Add EventBus to replace Guava one\n Replace usages of Guava EventBus with custom one\n\nTyler Hardy (1):\n Make Kourend favour a moveable widget (#6797)\n\nWooxSolo (1):\n gpu: fix black overlays behind gradients\n\ntanlines (1):\n screenshot plugin: add screenshot on valuable/untradeable item drop\n\ntrimbe (1):\n loot tracker: validate boxes after rebuilding\n
\n',image:"/img/blog/1.5.3-Release/anti-aliasing.png"}}}]);
+//# sourceMappingURL=75.7ec9430b.chunk.js.map
\ No newline at end of file
diff --git a/static/js/75.620adac4.chunk.js.map b/static/js/75.7ec9430b.chunk.js.map
similarity index 98%
rename from static/js/75.620adac4.chunk.js.map
rename to static/js/75.7ec9430b.chunk.js.map
index 6e4caeede..aa08db4ff 100644
--- a/static/js/75.620adac4.chunk.js.map
+++ b/static/js/75.7ec9430b.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-12-06-10-00-1.5.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,2DAA2D,OAAS,SAAS,KAAO,q1JAAm5J,MAAQ","file":"static/js/75.620adac4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.3 Release\",\"description\":\"GPU anti-aliasing and loot-exclusive ground item display\",\"author\":\"Jordan\",\"body\":\"The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can\\nbe configured in the GPU plugin settings. Thanks to @devLotto for\\nimplementing this feature!
\\n
\\nThe Ground Items plugin now has an option\\nto only show loot. Thanks to @Adam- for this feature.
\\n
\\nAfter discussions among the RuneLite team, the fight cave plugin was removed as it was decided to\\nbe too over-powered. For more insight on this decision, you can read Adam's comment on\\nthis .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\\nand during the fight with the Grotesque Guardians \\nThe WASD Camera plugin will no longer\\ncause camera spinning when the chatbox loses focus \\nMarks of grace, golden nuggets, and items bought with them now have prices calculated for them in\\nthe Bank Value plugin , the Examine\\nplugin and others \\nThe "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\\nslot item \\nTeleport icons for the pharaoh's sceptre have been added to the World Map\\nplugin \\nThe fairy ring search chatbox will no longer remain active when you select a teleport destination\\nvery quickly \\nThe Slayer plugin will now display your\\ninitial task amount when hovering the slayer infobox \\nThe Kourend favour widget is now moveable \\nThe Screenshot plugin can now take\\nscreenshots when receiving valuable and/or untradeable drops \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (8):\\n runelite-client: exclude xz dependency from commons-compress\\n runelite-client: remove github-release-plugin\\n Revert "Merge pull request #6760 from deathbeam/fix-slayer-task"\\n Revert "Add initial kill counter to slayer task (#6654)"\\n slayer plugin: show initial assignment amount in infobox tooltip\\n Move EventBus implementation to runelite-client\\n wasd plugin: fix not unpressing keys when chatbox loses focus\\n grounditems: add option to only show loot\\n\\nAlex Kolpa (1):\\n Add world map region overlay dev tool\\n\\nDavis Cook (2):\\n Add initial kill counter to slayer task (#6654)\\n don't check chatbox status on last tick for fairyring search\\n\\nJoshua Filby (1):\\n fix: use correct char for boolean type\\n\\nKyle Goodale (1):\\n Fix Seers' Village house clue grammar (#6720)\\n\\nLotto (1):\\n gpu: add scene anti-aliasing\\n\\nMagic fTail (2):\\n Add a tooltip to loot tracker value, showing exact value\\n Remove the fight cave plugin\\n\\nMax Weber (4):\\n ClientLoader: Use our classloader, not the system one for loading rs\\n Remove polymorphic events\\n Replace usages of Guava Subscribe with ours\\n FairyRingPlugin: Don't close vanilla chatboxes\\n\\nMika Kuijpers (1):\\n Add untradable item price support to ItemManager (#6595)\\n\\nMonsterxSync (1):\\n Add missing empty ammo slot requirement for clue step.\\n\\nSebastiaan Vanspauwen (1):\\n 2005 interface: fix resized offsets\\n\\nSebastiaanVanspauwen (1):\\n worldmap: add pharaoh's sceptre teleport icons (#6810)\\n\\nTomas Slusny (4):\\n Update setTask for new assign first slayer field\\n Add dense essence chiseling to idle notifier\\n Add EventBus to replace Guava one\\n Replace usages of Guava EventBus with custom one\\n\\nTyler Hardy (1):\\n Make Kourend favour a moveable widget (#6797)\\n\\nWooxSolo (1):\\n gpu: fix black overlays behind gradients\\n\\ntanlines (1):\\n screenshot plugin: add screenshot on valuable/untradeable item drop\\n\\ntrimbe (1):\\n loot tracker: validate boxes after rebuilding\\n
\\n\",\"image\":\"/img/blog/1.5.3-Release/anti-aliasing.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-12-06-10-00-1.5.3-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,2DAA2D,OAAS,SAAS,KAAO,q1JAAm5J,MAAQ","file":"static/js/75.7ec9430b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.3 Release\",\"description\":\"GPU anti-aliasing and loot-exclusive ground item display\",\"author\":\"Jordan\",\"body\":\"The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can\\nbe configured in the GPU plugin settings. Thanks to @devLotto for\\nimplementing this feature!
\\n
\\nThe Ground Items plugin now has an option\\nto only show loot. Thanks to @Adam- for this feature.
\\n
\\nAfter discussions among the RuneLite team, the fight cave plugin was removed as it was decided to\\nbe too over-powered. For more insight on this decision, you can read Adam's comment on\\nthis .
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\\nand during the fight with the Grotesque Guardians \\nThe WASD Camera plugin will no longer\\ncause camera spinning when the chatbox loses focus \\nMarks of grace, golden nuggets, and items bought with them now have prices calculated for them in\\nthe Bank Value plugin , the Examine\\nplugin and others \\nThe "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\\nslot item \\nTeleport icons for the pharaoh's sceptre have been added to the World Map\\nplugin \\nThe fairy ring search chatbox will no longer remain active when you select a teleport destination\\nvery quickly \\nThe Slayer plugin will now display your\\ninitial task amount when hovering the slayer infobox \\nThe Kourend favour widget is now moveable \\nThe Screenshot plugin can now take\\nscreenshots when receiving valuable and/or untradeable drops \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 17 contributors this release!
\\nAdam (8):\\n runelite-client: exclude xz dependency from commons-compress\\n runelite-client: remove github-release-plugin\\n Revert "Merge pull request #6760 from deathbeam/fix-slayer-task"\\n Revert "Add initial kill counter to slayer task (#6654)"\\n slayer plugin: show initial assignment amount in infobox tooltip\\n Move EventBus implementation to runelite-client\\n wasd plugin: fix not unpressing keys when chatbox loses focus\\n grounditems: add option to only show loot\\n\\nAlex Kolpa (1):\\n Add world map region overlay dev tool\\n\\nDavis Cook (2):\\n Add initial kill counter to slayer task (#6654)\\n don't check chatbox status on last tick for fairyring search\\n\\nJoshua Filby (1):\\n fix: use correct char for boolean type\\n\\nKyle Goodale (1):\\n Fix Seers' Village house clue grammar (#6720)\\n\\nLotto (1):\\n gpu: add scene anti-aliasing\\n\\nMagic fTail (2):\\n Add a tooltip to loot tracker value, showing exact value\\n Remove the fight cave plugin\\n\\nMax Weber (4):\\n ClientLoader: Use our classloader, not the system one for loading rs\\n Remove polymorphic events\\n Replace usages of Guava Subscribe with ours\\n FairyRingPlugin: Don't close vanilla chatboxes\\n\\nMika Kuijpers (1):\\n Add untradable item price support to ItemManager (#6595)\\n\\nMonsterxSync (1):\\n Add missing empty ammo slot requirement for clue step.\\n\\nSebastiaan Vanspauwen (1):\\n 2005 interface: fix resized offsets\\n\\nSebastiaanVanspauwen (1):\\n worldmap: add pharaoh's sceptre teleport icons (#6810)\\n\\nTomas Slusny (4):\\n Update setTask for new assign first slayer field\\n Add dense essence chiseling to idle notifier\\n Add EventBus to replace Guava one\\n Replace usages of Guava EventBus with custom one\\n\\nTyler Hardy (1):\\n Make Kourend favour a moveable widget (#6797)\\n\\nWooxSolo (1):\\n gpu: fix black overlays behind gradients\\n\\ntanlines (1):\\n screenshot plugin: add screenshot on valuable/untradeable item drop\\n\\ntrimbe (1):\\n loot tracker: validate boxes after rebuilding\\n
\\n\",\"image\":\"/img/blog/1.5.3-Release/anti-aliasing.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/76.5897e030.chunk.js b/static/js/76.45254be4.chunk.js
similarity index 97%
rename from static/js/76.5897e030.chunk.js
rename to static/js/76.45254be4.chunk.js
index 306ff35a5..8ccd9b91a 100644
--- a/static/js/76.5897e030.chunk.js
+++ b/static/js/76.45254be4.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[76],{351:function(e,n){e.exports={title:"1.5.4 Release",description:"World switcher ping, equipment bonus overlay, and vengeance active indicator",author:"Adam",body:'The world switcher plugin now shows the ping to each game world.
\n
\nThe item stats plugin will now show equipment stats when hovering over items.
\n
\nThe timers plugin now shows an additional infobox for when vengence is active\nalongside the existing vengence cooldown timer.
\n
\nThe idle notifier now has a notification for when your special attack regenerates\nto a configurable percent.
\nThe camera zoom plugin now allows reducing the outer zoom limit, as well as the\nusual extending of it, by setting the limit negative.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe hiscore plugin can now show unranked levels, if the player is on the\nhiscores \nAdd Xeric\'s aid and revitalisation potions to itemstats plugin \nFix slayer plugin tracking Commander Zilyana tasks \nAdd Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup \nFix the bounty hunter interface to be movable again \nAdd wyvern staircase to agility plugin \nCorrect Oak Armchair level requirement in Construction Skill Calc \nFix grounditems "only show loot" option to work correctly with multi-tile NPCs \nFix itemstats papaya fruit health restore \n \nThe requirements for the GPU plugin have been slighly reduced to OpenGL 4.2 with\nthe GL_ARB_compute_shader
and GL_ARB_shader_storage_buffer_object
\nextensions.
\nEnjoy!
\n- Adam
\nNew commits \nAdam (17):\n hiscore panel: support hiscore results with no rank\n world hopper: add world ping\n world switcher: fix race with fetching worlds while pinging\n status bars overlay: avoid resizing prayer icon each frame\n herbiboar plugin: only check trails when in herbiboar region\n overlay manager: use EnumMap for overlay layers\n client: add Range config annotation\n http service: optimize session queries\n http-service: set session table engine to MEMORY\n http-service: set kc table engine to MEMORY\n idle notifier: add spec regen notifier\n client: fix logback config to log messages from threads\n sesssion controller: create sessions when pinging unknown sessions\n Increase session ping time to 10 minutes\n config panel: change spinner change listener to a focus listener to reduce change spam\n api: expose IterableHashTable\n api: expose chat messages hashtable\n\nAustin Crinklaw (1):\n Add Xeric\'s aid and revitalisation potions to itemstats plugin\n\nJake Wilson (1):\n slayer task: change \'Zilyana\' to \'Commander Zilyana\'\n\nJordan Atwood (4):\n WorldType: Make PVP_WORLD_TYPES final\n Add DMM Tournament world type\n Handle Deadman Tournament world type in plugins\n timers plugin: Update SDMM teleblock handling\n\nKamiel (1):\n Make whole bounty hunter widget moveable (#6886)\n\nKyle Goodale (1):\n perspective: use Path2D for construction instead of area in get2DGeometry\n\nMax Weber (3):\n runelite-api: move WidgetType into n.r.api.widgets\n runelite-api: Fix various incorrect or misleading javadocs\n runelite-client: Write logs to log directory instead of cwd\n\nMaxBartlett (1):\n Added wyvern cave stairs to agility plugin obstacles (#6900)\n\nSamuel Beresford (1):\n Correct Oak Armchair level requirement in Construction Skill Calc\n\nTheStonedTurtle (1):\n ground items: fix "only show loot"\n\nTomas Slusny (3):\n Try to enable compute shaders on GL 4.2\n Use GLSL 420 with extensions in comp_unordered\n item stats: add support for equipment stats\n\nTwiglet1022 (2):\n Fix freeze on disabling GPU plugin\n Allow lowering of outer zoom limit in the camera zoom plugin\n\nTyler Hardy (1):\n timer plugin: add vengeance active indicator\n\nZeahProduct (1):\n itemstats: fix papaya fruit health restore\n\nforsco (1):\n Fix bounty hunter widget name (#6893)\n
\n',image:"/img/blog/1.5.4-Release/ping.png"}}}]);
-//# sourceMappingURL=76.5897e030.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[76],{352:function(e,n){e.exports={title:"1.5.4 Release",description:"World switcher ping, equipment bonus overlay, and vengeance active indicator",author:"Adam",body:'The world switcher plugin now shows the ping to each game world.
\n
\nThe item stats plugin will now show equipment stats when hovering over items.
\n
\nThe timers plugin now shows an additional infobox for when vengence is active\nalongside the existing vengence cooldown timer.
\n
\nThe idle notifier now has a notification for when your special attack regenerates\nto a configurable percent.
\nThe camera zoom plugin now allows reducing the outer zoom limit, as well as the\nusual extending of it, by setting the limit negative.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe hiscore plugin can now show unranked levels, if the player is on the\nhiscores \nAdd Xeric\'s aid and revitalisation potions to itemstats plugin \nFix slayer plugin tracking Commander Zilyana tasks \nAdd Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup \nFix the bounty hunter interface to be movable again \nAdd wyvern staircase to agility plugin \nCorrect Oak Armchair level requirement in Construction Skill Calc \nFix grounditems "only show loot" option to work correctly with multi-tile NPCs \nFix itemstats papaya fruit health restore \n \nThe requirements for the GPU plugin have been slighly reduced to OpenGL 4.2 with\nthe GL_ARB_compute_shader
and GL_ARB_shader_storage_buffer_object
\nextensions.
\nEnjoy!
\n- Adam
\nNew commits \nAdam (17):\n hiscore panel: support hiscore results with no rank\n world hopper: add world ping\n world switcher: fix race with fetching worlds while pinging\n status bars overlay: avoid resizing prayer icon each frame\n herbiboar plugin: only check trails when in herbiboar region\n overlay manager: use EnumMap for overlay layers\n client: add Range config annotation\n http service: optimize session queries\n http-service: set session table engine to MEMORY\n http-service: set kc table engine to MEMORY\n idle notifier: add spec regen notifier\n client: fix logback config to log messages from threads\n sesssion controller: create sessions when pinging unknown sessions\n Increase session ping time to 10 minutes\n config panel: change spinner change listener to a focus listener to reduce change spam\n api: expose IterableHashTable\n api: expose chat messages hashtable\n\nAustin Crinklaw (1):\n Add Xeric\'s aid and revitalisation potions to itemstats plugin\n\nJake Wilson (1):\n slayer task: change \'Zilyana\' to \'Commander Zilyana\'\n\nJordan Atwood (4):\n WorldType: Make PVP_WORLD_TYPES final\n Add DMM Tournament world type\n Handle Deadman Tournament world type in plugins\n timers plugin: Update SDMM teleblock handling\n\nKamiel (1):\n Make whole bounty hunter widget moveable (#6886)\n\nKyle Goodale (1):\n perspective: use Path2D for construction instead of area in get2DGeometry\n\nMax Weber (3):\n runelite-api: move WidgetType into n.r.api.widgets\n runelite-api: Fix various incorrect or misleading javadocs\n runelite-client: Write logs to log directory instead of cwd\n\nMaxBartlett (1):\n Added wyvern cave stairs to agility plugin obstacles (#6900)\n\nSamuel Beresford (1):\n Correct Oak Armchair level requirement in Construction Skill Calc\n\nTheStonedTurtle (1):\n ground items: fix "only show loot"\n\nTomas Slusny (3):\n Try to enable compute shaders on GL 4.2\n Use GLSL 420 with extensions in comp_unordered\n item stats: add support for equipment stats\n\nTwiglet1022 (2):\n Fix freeze on disabling GPU plugin\n Allow lowering of outer zoom limit in the camera zoom plugin\n\nTyler Hardy (1):\n timer plugin: add vengeance active indicator\n\nZeahProduct (1):\n itemstats: fix papaya fruit health restore\n\nforsco (1):\n Fix bounty hunter widget name (#6893)\n
\n',image:"/img/blog/1.5.4-Release/ping.png"}}}]);
+//# sourceMappingURL=76.45254be4.chunk.js.map
\ No newline at end of file
diff --git a/static/js/76.5897e030.chunk.js.map b/static/js/76.45254be4.chunk.js.map
similarity index 98%
rename from static/js/76.5897e030.chunk.js.map
rename to static/js/76.45254be4.chunk.js.map
index 0b31cda01..cd08cff7c 100644
--- a/static/js/76.5897e030.chunk.js.map
+++ b/static/js/76.45254be4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-12-13-10-00-1.5.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+EAA+E,OAAS,OAAO,KAAO,ktIAAwtI,MAAQ","file":"static/js/76.5897e030.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.4 Release\",\"description\":\"World switcher ping, equipment bonus overlay, and vengeance active indicator\",\"author\":\"Adam\",\"body\":\"The world switcher plugin now shows the ping to each game world.
\\n
\\nThe item stats plugin will now show equipment stats when hovering over items.
\\n
\\nThe timers plugin now shows an additional infobox for when vengence is active\\nalongside the existing vengence cooldown timer.
\\n
\\nThe idle notifier now has a notification for when your special attack regenerates\\nto a configurable percent.
\\nThe camera zoom plugin now allows reducing the outer zoom limit, as well as the\\nusual extending of it, by setting the limit negative.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe hiscore plugin can now show unranked levels, if the player is on the\\nhiscores \\nAdd Xeric's aid and revitalisation potions to itemstats plugin \\nFix slayer plugin tracking Commander Zilyana tasks \\nAdd Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup \\nFix the bounty hunter interface to be movable again \\nAdd wyvern staircase to agility plugin \\nCorrect Oak Armchair level requirement in Construction Skill Calc \\nFix grounditems "only show loot" option to work correctly with multi-tile NPCs \\nFix itemstats papaya fruit health restore \\n \\nThe requirements for the GPU plugin have been slighly reduced to OpenGL 4.2 with\\nthe GL_ARB_compute_shader
and GL_ARB_shader_storage_buffer_object
\\nextensions.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (17):\\n hiscore panel: support hiscore results with no rank\\n world hopper: add world ping\\n world switcher: fix race with fetching worlds while pinging\\n status bars overlay: avoid resizing prayer icon each frame\\n herbiboar plugin: only check trails when in herbiboar region\\n overlay manager: use EnumMap for overlay layers\\n client: add Range config annotation\\n http service: optimize session queries\\n http-service: set session table engine to MEMORY\\n http-service: set kc table engine to MEMORY\\n idle notifier: add spec regen notifier\\n client: fix logback config to log messages from threads\\n sesssion controller: create sessions when pinging unknown sessions\\n Increase session ping time to 10 minutes\\n config panel: change spinner change listener to a focus listener to reduce change spam\\n api: expose IterableHashTable\\n api: expose chat messages hashtable\\n\\nAustin Crinklaw (1):\\n Add Xeric's aid and revitalisation potions to itemstats plugin\\n\\nJake Wilson (1):\\n slayer task: change 'Zilyana' to 'Commander Zilyana'\\n\\nJordan Atwood (4):\\n WorldType: Make PVP_WORLD_TYPES final\\n Add DMM Tournament world type\\n Handle Deadman Tournament world type in plugins\\n timers plugin: Update SDMM teleblock handling\\n\\nKamiel (1):\\n Make whole bounty hunter widget moveable (#6886)\\n\\nKyle Goodale (1):\\n perspective: use Path2D for construction instead of area in get2DGeometry\\n\\nMax Weber (3):\\n runelite-api: move WidgetType into n.r.api.widgets\\n runelite-api: Fix various incorrect or misleading javadocs\\n runelite-client: Write logs to log directory instead of cwd\\n\\nMaxBartlett (1):\\n Added wyvern cave stairs to agility plugin obstacles (#6900)\\n\\nSamuel Beresford (1):\\n Correct Oak Armchair level requirement in Construction Skill Calc\\n\\nTheStonedTurtle (1):\\n ground items: fix "only show loot"\\n\\nTomas Slusny (3):\\n Try to enable compute shaders on GL 4.2\\n Use GLSL 420 with extensions in comp_unordered\\n item stats: add support for equipment stats\\n\\nTwiglet1022 (2):\\n Fix freeze on disabling GPU plugin\\n Allow lowering of outer zoom limit in the camera zoom plugin\\n\\nTyler Hardy (1):\\n timer plugin: add vengeance active indicator\\n\\nZeahProduct (1):\\n itemstats: fix papaya fruit health restore\\n\\nforsco (1):\\n Fix bounty hunter widget name (#6893)\\n
\\n\",\"image\":\"/img/blog/1.5.4-Release/ping.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-12-13-10-00-1.5.4-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,+EAA+E,OAAS,OAAO,KAAO,ktIAAwtI,MAAQ","file":"static/js/76.45254be4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.4 Release\",\"description\":\"World switcher ping, equipment bonus overlay, and vengeance active indicator\",\"author\":\"Adam\",\"body\":\"The world switcher plugin now shows the ping to each game world.
\\n
\\nThe item stats plugin will now show equipment stats when hovering over items.
\\n
\\nThe timers plugin now shows an additional infobox for when vengence is active\\nalongside the existing vengence cooldown timer.
\\n
\\nThe idle notifier now has a notification for when your special attack regenerates\\nto a configurable percent.
\\nThe camera zoom plugin now allows reducing the outer zoom limit, as well as the\\nusual extending of it, by setting the limit negative.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe hiscore plugin can now show unranked levels, if the player is on the\\nhiscores \\nAdd Xeric's aid and revitalisation potions to itemstats plugin \\nFix slayer plugin tracking Commander Zilyana tasks \\nAdd Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup \\nFix the bounty hunter interface to be movable again \\nAdd wyvern staircase to agility plugin \\nCorrect Oak Armchair level requirement in Construction Skill Calc \\nFix grounditems "only show loot" option to work correctly with multi-tile NPCs \\nFix itemstats papaya fruit health restore \\n \\nThe requirements for the GPU plugin have been slighly reduced to OpenGL 4.2 with\\nthe GL_ARB_compute_shader
and GL_ARB_shader_storage_buffer_object
\\nextensions.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nAdam (17):\\n hiscore panel: support hiscore results with no rank\\n world hopper: add world ping\\n world switcher: fix race with fetching worlds while pinging\\n status bars overlay: avoid resizing prayer icon each frame\\n herbiboar plugin: only check trails when in herbiboar region\\n overlay manager: use EnumMap for overlay layers\\n client: add Range config annotation\\n http service: optimize session queries\\n http-service: set session table engine to MEMORY\\n http-service: set kc table engine to MEMORY\\n idle notifier: add spec regen notifier\\n client: fix logback config to log messages from threads\\n sesssion controller: create sessions when pinging unknown sessions\\n Increase session ping time to 10 minutes\\n config panel: change spinner change listener to a focus listener to reduce change spam\\n api: expose IterableHashTable\\n api: expose chat messages hashtable\\n\\nAustin Crinklaw (1):\\n Add Xeric's aid and revitalisation potions to itemstats plugin\\n\\nJake Wilson (1):\\n slayer task: change 'Zilyana' to 'Commander Zilyana'\\n\\nJordan Atwood (4):\\n WorldType: Make PVP_WORLD_TYPES final\\n Add DMM Tournament world type\\n Handle Deadman Tournament world type in plugins\\n timers plugin: Update SDMM teleblock handling\\n\\nKamiel (1):\\n Make whole bounty hunter widget moveable (#6886)\\n\\nKyle Goodale (1):\\n perspective: use Path2D for construction instead of area in get2DGeometry\\n\\nMax Weber (3):\\n runelite-api: move WidgetType into n.r.api.widgets\\n runelite-api: Fix various incorrect or misleading javadocs\\n runelite-client: Write logs to log directory instead of cwd\\n\\nMaxBartlett (1):\\n Added wyvern cave stairs to agility plugin obstacles (#6900)\\n\\nSamuel Beresford (1):\\n Correct Oak Armchair level requirement in Construction Skill Calc\\n\\nTheStonedTurtle (1):\\n ground items: fix "only show loot"\\n\\nTomas Slusny (3):\\n Try to enable compute shaders on GL 4.2\\n Use GLSL 420 with extensions in comp_unordered\\n item stats: add support for equipment stats\\n\\nTwiglet1022 (2):\\n Fix freeze on disabling GPU plugin\\n Allow lowering of outer zoom limit in the camera zoom plugin\\n\\nTyler Hardy (1):\\n timer plugin: add vengeance active indicator\\n\\nZeahProduct (1):\\n itemstats: fix papaya fruit health restore\\n\\nforsco (1):\\n Fix bounty hunter widget name (#6893)\\n
\\n\",\"image\":\"/img/blog/1.5.4-Release/ping.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/77.b5264971.chunk.js b/static/js/77.7b229b51.chunk.js
similarity index 97%
rename from static/js/77.b5264971.chunk.js
rename to static/js/77.7b229b51.chunk.js
index 6007a1329..015fbab4e 100644
--- a/static/js/77.b5264971.chunk.js
+++ b/static/js/77.7b229b51.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[77],{352:function(e,n){e.exports={title:"1.5.5 Release",description:"Chat timestamps, cooking plugin, and quick hide ground items overlay",author:"Adam",body:'A chat timestamp plugin was added which adds a timestamp to messages.
\n
\nA cooking plugin has been added which tracks success and burn rates.
\n
\nThe ground items overlay can now be quickly hidden by double tapping alt. It can\nbe unhidden by pressing alt again. Thanks to\n@Berry-95 for this contribution.
\n
\nGargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\nshown when they are weak and can be killed with their corresponding item.
\nThe xp drop plugin can now be configured to show fake XP drops at tick intervals,\nif there is no xp drop at that time.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\nclient starts \nFix level 37 wilderness hot clue step location \nAdd Bottle of Wine stats to item stats plugin \nAdd silver jewellery to crafting skill calculator \nAdd missing empty ammo slot requirements to emote clues \nPrevent overlays rendering if fullscreen map is open \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (1):\n Fix level 37 wilderness hot clue step location (#6990)\n\nAdam (17):\n Revert "config panel: change spinner change listener to a focus listener to reduce change spam"\n config manager: defer submitting config changes to config service\n config manager: correct adding unset keys to pendingChanges\n api: add timestamps to message nodes, expose message id\n xp drop plugin: add disabled xp drop ticker\n http api: add loot tracker service and client\n loot tracker: submit loot to api\n Revert "Fix freeze on disabling GPU plugin"\n Revert "Remove distance check from agility plugin"\n http service: remove tomcat deploy\n Remove cache-server\n emote clue: add missing requirement to "Clap in the magic axe hut"\n ground items config: correct formatting from previous commit\n http service: add endpoint for websocket session count\n client: add cooking plugin\n api: mark getTransformedComposition as Nullable\n slayer plugin: fix npe from getTransformedComposition returning null\n\nDavid Meredith (1):\n Add Bottle of Wine stats to item stats plugin (#6989)\n\nHenry Darnell (1):\n Add silver jewelry to crafting skill calculator\n\nLoopytop (1):\n Add Wintertodt plugin description\n\nMagic fTail (2):\n Add timestamp plugin\n Fix the description of the wintertodt plugin and add boss tag\n\nMonsterxSync (1):\n Add missing clue requirement "Salute in warriors guild"\n\nSam Beresford (2):\n Add ability to hide all ground items on double tap of hotkey(ALT) (#6712)\n Add item overlay to show when monsters are weak enough to finish off (#6710)\n\nTheStonedTurtle (1):\n Fix party hat buy limits\n\nTomas Slusny (2):\n Make GL version choosing platform specific\n Add space after timestamp\n\nWilliam (1):\n Add missing empty ammmo slot requirement to emote clues (#7002)\n\ntrimbe (1):\n Prevent overlays rendering if fullscreen map is open\n
\n',image:"/img/blog/1.5.5-Release/timestamp.png"}}}]);
-//# sourceMappingURL=77.b5264971.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[77],{353:function(e,n){e.exports={title:"1.5.5 Release",description:"Chat timestamps, cooking plugin, and quick hide ground items overlay",author:"Adam",body:'A chat timestamp plugin was added which adds a timestamp to messages.
\n
\nA cooking plugin has been added which tracks success and burn rates.
\n
\nThe ground items overlay can now be quickly hidden by double tapping alt. It can\nbe unhidden by pressing alt again. Thanks to\n@Berry-95 for this contribution.
\n
\nGargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\nshown when they are weak and can be killed with their corresponding item.
\nThe xp drop plugin can now be configured to show fake XP drops at tick intervals,\nif there is no xp drop at that time.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\nclient starts \nFix level 37 wilderness hot clue step location \nAdd Bottle of Wine stats to item stats plugin \nAdd silver jewellery to crafting skill calculator \nAdd missing empty ammo slot requirements to emote clues \nPrevent overlays rendering if fullscreen map is open \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (1):\n Fix level 37 wilderness hot clue step location (#6990)\n\nAdam (17):\n Revert "config panel: change spinner change listener to a focus listener to reduce change spam"\n config manager: defer submitting config changes to config service\n config manager: correct adding unset keys to pendingChanges\n api: add timestamps to message nodes, expose message id\n xp drop plugin: add disabled xp drop ticker\n http api: add loot tracker service and client\n loot tracker: submit loot to api\n Revert "Fix freeze on disabling GPU plugin"\n Revert "Remove distance check from agility plugin"\n http service: remove tomcat deploy\n Remove cache-server\n emote clue: add missing requirement to "Clap in the magic axe hut"\n ground items config: correct formatting from previous commit\n http service: add endpoint for websocket session count\n client: add cooking plugin\n api: mark getTransformedComposition as Nullable\n slayer plugin: fix npe from getTransformedComposition returning null\n\nDavid Meredith (1):\n Add Bottle of Wine stats to item stats plugin (#6989)\n\nHenry Darnell (1):\n Add silver jewelry to crafting skill calculator\n\nLoopytop (1):\n Add Wintertodt plugin description\n\nMagic fTail (2):\n Add timestamp plugin\n Fix the description of the wintertodt plugin and add boss tag\n\nMonsterxSync (1):\n Add missing clue requirement "Salute in warriors guild"\n\nSam Beresford (2):\n Add ability to hide all ground items on double tap of hotkey(ALT) (#6712)\n Add item overlay to show when monsters are weak enough to finish off (#6710)\n\nTheStonedTurtle (1):\n Fix party hat buy limits\n\nTomas Slusny (2):\n Make GL version choosing platform specific\n Add space after timestamp\n\nWilliam (1):\n Add missing empty ammmo slot requirement to emote clues (#7002)\n\ntrimbe (1):\n Prevent overlays rendering if fullscreen map is open\n
\n',image:"/img/blog/1.5.5-Release/timestamp.png"}}}]);
+//# sourceMappingURL=77.7b229b51.chunk.js.map
\ No newline at end of file
diff --git a/static/js/77.b5264971.chunk.js.map b/static/js/77.7b229b51.chunk.js.map
similarity index 98%
rename from static/js/77.b5264971.chunk.js.map
rename to static/js/77.7b229b51.chunk.js.map
index 678081168..e7db210cb 100644
--- a/static/js/77.b5264971.chunk.js.map
+++ b/static/js/77.7b229b51.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2018-12-20-10-00-1.5.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uEAAuE,OAAS,OAAO,KAAO,miHAAyjH,MAAQ","file":"static/js/77.b5264971.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.5 Release\",\"description\":\"Chat timestamps, cooking plugin, and quick hide ground items overlay\",\"author\":\"Adam\",\"body\":\"A chat timestamp plugin was added which adds a timestamp to messages.
\\n
\\nA cooking plugin has been added which tracks success and burn rates.
\\n
\\nThe ground items overlay can now be quickly hidden by double tapping alt. It can\\nbe unhidden by pressing alt again. Thanks to\\n@Berry-95 for this contribution.
\\n
\\nGargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\\nshown when they are weak and can be killed with their corresponding item.
\\nThe xp drop plugin can now be configured to show fake XP drops at tick intervals,\\nif there is no xp drop at that time.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\\nclient starts \\nFix level 37 wilderness hot clue step location \\nAdd Bottle of Wine stats to item stats plugin \\nAdd silver jewellery to crafting skill calculator \\nAdd missing empty ammo slot requirements to emote clues \\nPrevent overlays rendering if fullscreen map is open \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (1):\\n Fix level 37 wilderness hot clue step location (#6990)\\n\\nAdam (17):\\n Revert "config panel: change spinner change listener to a focus listener to reduce change spam"\\n config manager: defer submitting config changes to config service\\n config manager: correct adding unset keys to pendingChanges\\n api: add timestamps to message nodes, expose message id\\n xp drop plugin: add disabled xp drop ticker\\n http api: add loot tracker service and client\\n loot tracker: submit loot to api\\n Revert "Fix freeze on disabling GPU plugin"\\n Revert "Remove distance check from agility plugin"\\n http service: remove tomcat deploy\\n Remove cache-server\\n emote clue: add missing requirement to "Clap in the magic axe hut"\\n ground items config: correct formatting from previous commit\\n http service: add endpoint for websocket session count\\n client: add cooking plugin\\n api: mark getTransformedComposition as Nullable\\n slayer plugin: fix npe from getTransformedComposition returning null\\n\\nDavid Meredith (1):\\n Add Bottle of Wine stats to item stats plugin (#6989)\\n\\nHenry Darnell (1):\\n Add silver jewelry to crafting skill calculator\\n\\nLoopytop (1):\\n Add Wintertodt plugin description\\n\\nMagic fTail (2):\\n Add timestamp plugin\\n Fix the description of the wintertodt plugin and add boss tag\\n\\nMonsterxSync (1):\\n Add missing clue requirement "Salute in warriors guild"\\n\\nSam Beresford (2):\\n Add ability to hide all ground items on double tap of hotkey(ALT) (#6712)\\n Add item overlay to show when monsters are weak enough to finish off (#6710)\\n\\nTheStonedTurtle (1):\\n Fix party hat buy limits\\n\\nTomas Slusny (2):\\n Make GL version choosing platform specific\\n Add space after timestamp\\n\\nWilliam (1):\\n Add missing empty ammmo slot requirement to emote clues (#7002)\\n\\ntrimbe (1):\\n Prevent overlays rendering if fullscreen map is open\\n
\\n\",\"image\":\"/img/blog/1.5.5-Release/timestamp.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2018-12-20-10-00-1.5.5-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,uEAAuE,OAAS,OAAO,KAAO,miHAAyjH,MAAQ","file":"static/js/77.7b229b51.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.5 Release\",\"description\":\"Chat timestamps, cooking plugin, and quick hide ground items overlay\",\"author\":\"Adam\",\"body\":\"A chat timestamp plugin was added which adds a timestamp to messages.
\\n
\\nA cooking plugin has been added which tracks success and burn rates.
\\n
\\nThe ground items overlay can now be quickly hidden by double tapping alt. It can\\nbe unhidden by pressing alt again. Thanks to\\n@Berry-95 for this contribution.
\\n
\\nGargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\\nshown when they are weak and can be killed with their corresponding item.
\\nThe xp drop plugin can now be configured to show fake XP drops at tick intervals,\\nif there is no xp drop at that time.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\\nclient starts \\nFix level 37 wilderness hot clue step location \\nAdd Bottle of Wine stats to item stats plugin \\nAdd silver jewellery to crafting skill calculator \\nAdd missing empty ammo slot requirements to emote clues \\nPrevent overlays rendering if fullscreen map is open \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (1):\\n Fix level 37 wilderness hot clue step location (#6990)\\n\\nAdam (17):\\n Revert "config panel: change spinner change listener to a focus listener to reduce change spam"\\n config manager: defer submitting config changes to config service\\n config manager: correct adding unset keys to pendingChanges\\n api: add timestamps to message nodes, expose message id\\n xp drop plugin: add disabled xp drop ticker\\n http api: add loot tracker service and client\\n loot tracker: submit loot to api\\n Revert "Fix freeze on disabling GPU plugin"\\n Revert "Remove distance check from agility plugin"\\n http service: remove tomcat deploy\\n Remove cache-server\\n emote clue: add missing requirement to "Clap in the magic axe hut"\\n ground items config: correct formatting from previous commit\\n http service: add endpoint for websocket session count\\n client: add cooking plugin\\n api: mark getTransformedComposition as Nullable\\n slayer plugin: fix npe from getTransformedComposition returning null\\n\\nDavid Meredith (1):\\n Add Bottle of Wine stats to item stats plugin (#6989)\\n\\nHenry Darnell (1):\\n Add silver jewelry to crafting skill calculator\\n\\nLoopytop (1):\\n Add Wintertodt plugin description\\n\\nMagic fTail (2):\\n Add timestamp plugin\\n Fix the description of the wintertodt plugin and add boss tag\\n\\nMonsterxSync (1):\\n Add missing clue requirement "Salute in warriors guild"\\n\\nSam Beresford (2):\\n Add ability to hide all ground items on double tap of hotkey(ALT) (#6712)\\n Add item overlay to show when monsters are weak enough to finish off (#6710)\\n\\nTheStonedTurtle (1):\\n Fix party hat buy limits\\n\\nTomas Slusny (2):\\n Make GL version choosing platform specific\\n Add space after timestamp\\n\\nWilliam (1):\\n Add missing empty ammmo slot requirement to emote clues (#7002)\\n\\ntrimbe (1):\\n Prevent overlays rendering if fullscreen map is open\\n
\\n\",\"image\":\"/img/blog/1.5.5-Release/timestamp.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/78.1729dc9e.chunk.js b/static/js/78.5501ea07.chunk.js
similarity index 97%
rename from static/js/78.1729dc9e.chunk.js
rename to static/js/78.5501ea07.chunk.js
index ef2a91274..f1308b704 100644
--- a/static/js/78.1729dc9e.chunk.js
+++ b/static/js/78.5501ea07.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[78],{353:function(e,n){e.exports={title:"1.5.6 Release",description:"Loot tracker persistence and object marker plugin",author:"Adam",body:'The loot tracker now remembers loot between client sessions if you are logged in\nwith a RuneLite account.
\n
\nAn object marker plugin which lets you mark most game objects by holding shift\nand right clicking was added.
\n
\nThe xp tracker plugin now shows intermediate progress markers for each level, if\nyou have a goal set which spans multiple levels.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix FPS loss from clickbox calculation introduced in the previous release\nwhich was most noticeable in the herbiboar area \nAdd Chaos Altar to Prayer calculator \nAdd wilderness cannon spots to cannon plugin \nAdd Flax and Bonemeal options to Daily Task plugin \nAdd weiss agility obstacles \nAdd farming patch type to tooltips on world map \nAdd barbarian mix timers to Timers plugin \nImprove performance of full screen overlays with GPU on (zammy godwars, underwater, etc.) \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (1):\n grand exchange plugin: add ge limits\n\nAdam (23):\n xp tracker: limit lookups to most 1 per 3 seconds\n xp tracker: clean up imports\n loottracker client: close response body\n xp tracker: add index on xp.time\n Remove old session service and replace usages with new one\n account service: readd wscount endpoint\n loot tracker service: fix getting loot records\n xtea service: add cache for recently tried keys\n xtea service: split into xtea controller and service\n ui: cleanup progress bar\n api: mark getClickbox as nullable\n herbiboar plugin: optimize object and tunnel overlays\n Revert "perspective: use Path2D for construction instead of area in get2DGeometry"\n loot tracker service: expose method to delete loot records\n loot tracker service: remove type argument from delete\n loot tracker client: add get and delete methods\n loot tracker plugin: support saving loot tracker data across restart\n model data mixin: move lighting model log message to trace level\n api: add constant for map region size\n account service: publish login responses to redis too\n discord service: prevent event handlers from being gc\'d\n clue scroll plugin: correct usage of getImpostor\n screenshot plugin: fix to paint client ui from EDT\n\nDannysPVM (2):\n Add null-check for target tile in GroundMarkersPlugin (#7112)\n Add null-check for target tile in ObjectIndicatorsPlugin (#7115)\n\nHenry Darnell (1):\n Add Chaos Altar to Prayer calculator (700% xp) (#7098)\n\nHonestidade (1):\n Add wilderness cannon spots to cannon plugin (#7026)\n\nHydrox6 (1):\n Add Flax and Bonemeal options to Daily Task plugin\n\nJake Schaum (1):\n Fix ItemStats/ItemStatOverlay Typos "substracted" to "subtracted"\n\nJakob Ankarhem (1):\n Add ntermediate progress markers for xptracker plugin (#6895)\n\nJordan Atwood (1):\n experiencedrop: Maintain active prayer per tick\n\nLotto (1):\n gpu: limit msaa samples to supported value\n\nMax Weber (3):\n gpu: Use premultiplied alpha\n gpu: Fix stretched mode with global premul alpha\n loottracker: Don\'t build the panel 1000 times when downloading loot\n\nRobbie McLeod (1):\n Clear search bar when switching between skill calculators\n\nRobin Withes (1):\n Add weiss agilility obstacles (#7123)\n\nTomas Slusny (3):\n Update Discord library to latest version\n Flip state and details in Discord status\n Add object marker plugin\n\nTorkelV (1):\n Add farming patch type to tooltips on world map (#7105)\n\nWilliam (1):\n Add missing sanfew serums to the prayer dose indicator. (#7131)\n\njakespeare (1):\n Split pause/unpause all to separate options in XpTrackerPlugin (#7076)\n\ntanlines (1):\n Add barbarian mix timers to Timers plugin (#7088)\n
\n',image:"/img/blog/1.5.6-Release/loottracker.png"}}}]);
-//# sourceMappingURL=78.1729dc9e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[78],{354:function(e,n){e.exports={title:"1.5.6 Release",description:"Loot tracker persistence and object marker plugin",author:"Adam",body:'The loot tracker now remembers loot between client sessions if you are logged in\nwith a RuneLite account.
\n
\nAn object marker plugin which lets you mark most game objects by holding shift\nand right clicking was added.
\n
\nThe xp tracker plugin now shows intermediate progress markers for each level, if\nyou have a goal set which spans multiple levels.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix FPS loss from clickbox calculation introduced in the previous release\nwhich was most noticeable in the herbiboar area \nAdd Chaos Altar to Prayer calculator \nAdd wilderness cannon spots to cannon plugin \nAdd Flax and Bonemeal options to Daily Task plugin \nAdd weiss agility obstacles \nAdd farming patch type to tooltips on world map \nAdd barbarian mix timers to Timers plugin \nImprove performance of full screen overlays with GPU on (zammy godwars, underwater, etc.) \n \nEnjoy!
\n- Adam
\nNew commits \n15987632 (1):\n grand exchange plugin: add ge limits\n\nAdam (23):\n xp tracker: limit lookups to most 1 per 3 seconds\n xp tracker: clean up imports\n loottracker client: close response body\n xp tracker: add index on xp.time\n Remove old session service and replace usages with new one\n account service: readd wscount endpoint\n loot tracker service: fix getting loot records\n xtea service: add cache for recently tried keys\n xtea service: split into xtea controller and service\n ui: cleanup progress bar\n api: mark getClickbox as nullable\n herbiboar plugin: optimize object and tunnel overlays\n Revert "perspective: use Path2D for construction instead of area in get2DGeometry"\n loot tracker service: expose method to delete loot records\n loot tracker service: remove type argument from delete\n loot tracker client: add get and delete methods\n loot tracker plugin: support saving loot tracker data across restart\n model data mixin: move lighting model log message to trace level\n api: add constant for map region size\n account service: publish login responses to redis too\n discord service: prevent event handlers from being gc\'d\n clue scroll plugin: correct usage of getImpostor\n screenshot plugin: fix to paint client ui from EDT\n\nDannysPVM (2):\n Add null-check for target tile in GroundMarkersPlugin (#7112)\n Add null-check for target tile in ObjectIndicatorsPlugin (#7115)\n\nHenry Darnell (1):\n Add Chaos Altar to Prayer calculator (700% xp) (#7098)\n\nHonestidade (1):\n Add wilderness cannon spots to cannon plugin (#7026)\n\nHydrox6 (1):\n Add Flax and Bonemeal options to Daily Task plugin\n\nJake Schaum (1):\n Fix ItemStats/ItemStatOverlay Typos "substracted" to "subtracted"\n\nJakob Ankarhem (1):\n Add ntermediate progress markers for xptracker plugin (#6895)\n\nJordan Atwood (1):\n experiencedrop: Maintain active prayer per tick\n\nLotto (1):\n gpu: limit msaa samples to supported value\n\nMax Weber (3):\n gpu: Use premultiplied alpha\n gpu: Fix stretched mode with global premul alpha\n loottracker: Don\'t build the panel 1000 times when downloading loot\n\nRobbie McLeod (1):\n Clear search bar when switching between skill calculators\n\nRobin Withes (1):\n Add weiss agilility obstacles (#7123)\n\nTomas Slusny (3):\n Update Discord library to latest version\n Flip state and details in Discord status\n Add object marker plugin\n\nTorkelV (1):\n Add farming patch type to tooltips on world map (#7105)\n\nWilliam (1):\n Add missing sanfew serums to the prayer dose indicator. (#7131)\n\njakespeare (1):\n Split pause/unpause all to separate options in XpTrackerPlugin (#7076)\n\ntanlines (1):\n Add barbarian mix timers to Timers plugin (#7088)\n
\n',image:"/img/blog/1.5.6-Release/loottracker.png"}}}]);
+//# sourceMappingURL=78.5501ea07.chunk.js.map
\ No newline at end of file
diff --git a/static/js/78.1729dc9e.chunk.js.map b/static/js/78.5501ea07.chunk.js.map
similarity index 98%
rename from static/js/78.1729dc9e.chunk.js.map
rename to static/js/78.5501ea07.chunk.js.map
index 76bb03715..4a2096325 100644
--- a/static/js/78.1729dc9e.chunk.js.map
+++ b/static/js/78.5501ea07.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-01-03-10-00-1.5.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oDAAoD,OAAS,OAAO,KAAO,grIAA0rI,MAAQ","file":"static/js/78.1729dc9e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.6 Release\",\"description\":\"Loot tracker persistence and object marker plugin\",\"author\":\"Adam\",\"body\":\"The loot tracker now remembers loot between client sessions if you are logged in\\nwith a RuneLite account.
\\n
\\nAn object marker plugin which lets you mark most game objects by holding shift\\nand right clicking was added.
\\n
\\nThe xp tracker plugin now shows intermediate progress markers for each level, if\\nyou have a goal set which spans multiple levels.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix FPS loss from clickbox calculation introduced in the previous release\\nwhich was most noticeable in the herbiboar area \\nAdd Chaos Altar to Prayer calculator \\nAdd wilderness cannon spots to cannon plugin \\nAdd Flax and Bonemeal options to Daily Task plugin \\nAdd weiss agility obstacles \\nAdd farming patch type to tooltips on world map \\nAdd barbarian mix timers to Timers plugin \\nImprove performance of full screen overlays with GPU on (zammy godwars, underwater, etc.) \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (1):\\n grand exchange plugin: add ge limits\\n\\nAdam (23):\\n xp tracker: limit lookups to most 1 per 3 seconds\\n xp tracker: clean up imports\\n loottracker client: close response body\\n xp tracker: add index on xp.time\\n Remove old session service and replace usages with new one\\n account service: readd wscount endpoint\\n loot tracker service: fix getting loot records\\n xtea service: add cache for recently tried keys\\n xtea service: split into xtea controller and service\\n ui: cleanup progress bar\\n api: mark getClickbox as nullable\\n herbiboar plugin: optimize object and tunnel overlays\\n Revert "perspective: use Path2D for construction instead of area in get2DGeometry"\\n loot tracker service: expose method to delete loot records\\n loot tracker service: remove type argument from delete\\n loot tracker client: add get and delete methods\\n loot tracker plugin: support saving loot tracker data across restart\\n model data mixin: move lighting model log message to trace level\\n api: add constant for map region size\\n account service: publish login responses to redis too\\n discord service: prevent event handlers from being gc'd\\n clue scroll plugin: correct usage of getImpostor\\n screenshot plugin: fix to paint client ui from EDT\\n\\nDannysPVM (2):\\n Add null-check for target tile in GroundMarkersPlugin (#7112)\\n Add null-check for target tile in ObjectIndicatorsPlugin (#7115)\\n\\nHenry Darnell (1):\\n Add Chaos Altar to Prayer calculator (700% xp) (#7098)\\n\\nHonestidade (1):\\n Add wilderness cannon spots to cannon plugin (#7026)\\n\\nHydrox6 (1):\\n Add Flax and Bonemeal options to Daily Task plugin\\n\\nJake Schaum (1):\\n Fix ItemStats/ItemStatOverlay Typos "substracted" to "subtracted"\\n\\nJakob Ankarhem (1):\\n Add ntermediate progress markers for xptracker plugin (#6895)\\n\\nJordan Atwood (1):\\n experiencedrop: Maintain active prayer per tick\\n\\nLotto (1):\\n gpu: limit msaa samples to supported value\\n\\nMax Weber (3):\\n gpu: Use premultiplied alpha\\n gpu: Fix stretched mode with global premul alpha\\n loottracker: Don't build the panel 1000 times when downloading loot\\n\\nRobbie McLeod (1):\\n Clear search bar when switching between skill calculators\\n\\nRobin Withes (1):\\n Add weiss agilility obstacles (#7123)\\n\\nTomas Slusny (3):\\n Update Discord library to latest version\\n Flip state and details in Discord status\\n Add object marker plugin\\n\\nTorkelV (1):\\n Add farming patch type to tooltips on world map (#7105)\\n\\nWilliam (1):\\n Add missing sanfew serums to the prayer dose indicator. (#7131)\\n\\njakespeare (1):\\n Split pause/unpause all to separate options in XpTrackerPlugin (#7076)\\n\\ntanlines (1):\\n Add barbarian mix timers to Timers plugin (#7088)\\n
\\n\",\"image\":\"/img/blog/1.5.6-Release/loottracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-01-03-10-00-1.5.6-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,oDAAoD,OAAS,OAAO,KAAO,grIAA0rI,MAAQ","file":"static/js/78.5501ea07.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.6 Release\",\"description\":\"Loot tracker persistence and object marker plugin\",\"author\":\"Adam\",\"body\":\"The loot tracker now remembers loot between client sessions if you are logged in\\nwith a RuneLite account.
\\n
\\nAn object marker plugin which lets you mark most game objects by holding shift\\nand right clicking was added.
\\n
\\nThe xp tracker plugin now shows intermediate progress markers for each level, if\\nyou have a goal set which spans multiple levels.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix FPS loss from clickbox calculation introduced in the previous release\\nwhich was most noticeable in the herbiboar area \\nAdd Chaos Altar to Prayer calculator \\nAdd wilderness cannon spots to cannon plugin \\nAdd Flax and Bonemeal options to Daily Task plugin \\nAdd weiss agility obstacles \\nAdd farming patch type to tooltips on world map \\nAdd barbarian mix timers to Timers plugin \\nImprove performance of full screen overlays with GPU on (zammy godwars, underwater, etc.) \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\n15987632 (1):\\n grand exchange plugin: add ge limits\\n\\nAdam (23):\\n xp tracker: limit lookups to most 1 per 3 seconds\\n xp tracker: clean up imports\\n loottracker client: close response body\\n xp tracker: add index on xp.time\\n Remove old session service and replace usages with new one\\n account service: readd wscount endpoint\\n loot tracker service: fix getting loot records\\n xtea service: add cache for recently tried keys\\n xtea service: split into xtea controller and service\\n ui: cleanup progress bar\\n api: mark getClickbox as nullable\\n herbiboar plugin: optimize object and tunnel overlays\\n Revert "perspective: use Path2D for construction instead of area in get2DGeometry"\\n loot tracker service: expose method to delete loot records\\n loot tracker service: remove type argument from delete\\n loot tracker client: add get and delete methods\\n loot tracker plugin: support saving loot tracker data across restart\\n model data mixin: move lighting model log message to trace level\\n api: add constant for map region size\\n account service: publish login responses to redis too\\n discord service: prevent event handlers from being gc'd\\n clue scroll plugin: correct usage of getImpostor\\n screenshot plugin: fix to paint client ui from EDT\\n\\nDannysPVM (2):\\n Add null-check for target tile in GroundMarkersPlugin (#7112)\\n Add null-check for target tile in ObjectIndicatorsPlugin (#7115)\\n\\nHenry Darnell (1):\\n Add Chaos Altar to Prayer calculator (700% xp) (#7098)\\n\\nHonestidade (1):\\n Add wilderness cannon spots to cannon plugin (#7026)\\n\\nHydrox6 (1):\\n Add Flax and Bonemeal options to Daily Task plugin\\n\\nJake Schaum (1):\\n Fix ItemStats/ItemStatOverlay Typos "substracted" to "subtracted"\\n\\nJakob Ankarhem (1):\\n Add ntermediate progress markers for xptracker plugin (#6895)\\n\\nJordan Atwood (1):\\n experiencedrop: Maintain active prayer per tick\\n\\nLotto (1):\\n gpu: limit msaa samples to supported value\\n\\nMax Weber (3):\\n gpu: Use premultiplied alpha\\n gpu: Fix stretched mode with global premul alpha\\n loottracker: Don't build the panel 1000 times when downloading loot\\n\\nRobbie McLeod (1):\\n Clear search bar when switching between skill calculators\\n\\nRobin Withes (1):\\n Add weiss agilility obstacles (#7123)\\n\\nTomas Slusny (3):\\n Update Discord library to latest version\\n Flip state and details in Discord status\\n Add object marker plugin\\n\\nTorkelV (1):\\n Add farming patch type to tooltips on world map (#7105)\\n\\nWilliam (1):\\n Add missing sanfew serums to the prayer dose indicator. (#7131)\\n\\njakespeare (1):\\n Split pause/unpause all to separate options in XpTrackerPlugin (#7076)\\n\\ntanlines (1):\\n Add barbarian mix timers to Timers plugin (#7088)\\n
\\n\",\"image\":\"/img/blog/1.5.6-Release/loottracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/79.54c7eb51.chunk.js b/static/js/79.906b503d.chunk.js
similarity index 97%
rename from static/js/79.54c7eb51.chunk.js
rename to static/js/79.906b503d.chunk.js
index dc4847ed8..0a7441926 100644
--- a/static/js/79.54c7eb51.chunk.js
+++ b/static/js/79.906b503d.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[79],{354:function(e,n){e.exports={title:"1.5.7 Release",description:"Skybox plugin and GPU fog",author:"Jordan",body:'A skybox plugin has been added to draw colors beyond the edge of the game\'s rendered tiles based on\nthe player\'s location. Thanks to @Abextm ,\n@raiyni , and @psikoi for this feature!
\n
\nThe GPU plugin now supports an option to draw fog, fading the edge of the scene by the configured\namount. Thanks to @logarrhythmic for this contribution.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd karambwans and wine to cooking plugin \nAdded a !qp command to the chat commands plugin \nThe world hopper plugin now changes the header color to yellow with active filter \nThe report button plugin now has a date time format matching that of the screenshot plugin \nAdded quest requirements support to the achievement diary plugin \nAdded Kebos and Kourend diary to the achievement diary plugin \nLooking up hiscores will now automatically select the correct game mode based on current world \nSplit Valuable and Untradeable screenshot options \nFix artic pine log exp in skill calc \nChange Caviar healing value from 3 to 5 \nAdd puzzle solver for monkey madness 1 puzzle box \nFixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (17):\n object markers: determine tile from menu parameters\n client: copy screenshot image in draw manager callback\n cml: set runelite user agent header\n cml: only send update if at least 1k exp has been gained\n xptracker: only send update if at least 1k exp has been gained\n xp tracker: try to not look up the same user too frequently\n xp tracker: reduce hiscore lookup delay to 1 second\n timers plugin: change vengeance timers to use varbits\n Add karambwans and wine to cooking plugin\n http service: use jedis connection pool\n client: add chat command manager\n kc: change to use redis for storage\n http service: rename kc to chat\n Add qp to chat service\n chat commands: add !qp command\n scene mixin: disable clickbox checks when detatched camera is enabled\n gpu plugin: add fog\n\nJake Wilson (1):\n worldhopper: change header color to yellow with active filter (#7035)\n\nJordan Atwood (5):\n itemprices: Add "tooltips" plugin tag\n reportbutton: Make time formatting methods static where possible\n reportbutton: Add date time format\n experiencedrop: Highlight only correct exp drops for prayer\n dev tools: Fix overlay layer\n\nMax Weber (12):\n Add BeforeRender event\n runelite-api: Add Quest enum\n achievementdiary: Split requirements into multiple classes\n diaries: Use new api\n achievementdiary: Add Quest support\n achievementdiary: Layout text properly\n Add Skybox plugin\n ScriptVM: Bump execution time limit\n Skybox: Do bounds check on the localPlayer\'s location, not the camera\'s\n fairyring: Add CIR\n Update Quests\n achievementdiary: Don\'t duplicate requirements with many requriements\n\nMonster Sync (1):\n Add Kourend & Kebos diary requirements\n\nReasel (1):\n Add Moonlight Mead to ItemStatsPlugin (#7172)\n\nRichard (1):\n Return hiscores based on current world\n\nRon Young (1):\n Skybox: add Kebos Mainland\n\nSpedwards (4):\n Split Valuable and Untradeable screenshot options (#7167)\n Fix artic pine log exp in skill calc (40xp/log) (#7199)\n Change Caviar healing value from 3 to 5 (#7206)\n diaries: Add Quest requirements\n\nTrevor Guidry (3):\n Add range annotation to gpu draw distance\n Make the default min value of ranges 0\n Add the lvl 20 ardy guards to the npc_health.json\n\nsteffenhauge (1):\n Add puzzle solver for monkey madness 1 puzzle box (#6545)\n\ntrimbe (3):\n inventory tags: preserve \'cancel\' when creating custom menu\n bank value: use ItemContainer instead of WidgetItemQuery\n bank value: add script callback for setting title\n
\n',image:"/img/blog/1.5.7-Release/skybox.png"}}}]);
-//# sourceMappingURL=79.54c7eb51.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[79],{355:function(e,n){e.exports={title:"1.5.7 Release",description:"Skybox plugin and GPU fog",author:"Jordan",body:'A skybox plugin has been added to draw colors beyond the edge of the game\'s rendered tiles based on\nthe player\'s location. Thanks to @Abextm ,\n@raiyni , and @psikoi for this feature!
\n
\nThe GPU plugin now supports an option to draw fog, fading the edge of the scene by the configured\namount. Thanks to @logarrhythmic for this contribution.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd karambwans and wine to cooking plugin \nAdded a !qp command to the chat commands plugin \nThe world hopper plugin now changes the header color to yellow with active filter \nThe report button plugin now has a date time format matching that of the screenshot plugin \nAdded quest requirements support to the achievement diary plugin \nAdded Kebos and Kourend diary to the achievement diary plugin \nLooking up hiscores will now automatically select the correct game mode based on current world \nSplit Valuable and Untradeable screenshot options \nFix artic pine log exp in skill calc \nChange Caviar healing value from 3 to 5 \nAdd puzzle solver for monkey madness 1 puzzle box \nFixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (17):\n object markers: determine tile from menu parameters\n client: copy screenshot image in draw manager callback\n cml: set runelite user agent header\n cml: only send update if at least 1k exp has been gained\n xptracker: only send update if at least 1k exp has been gained\n xp tracker: try to not look up the same user too frequently\n xp tracker: reduce hiscore lookup delay to 1 second\n timers plugin: change vengeance timers to use varbits\n Add karambwans and wine to cooking plugin\n http service: use jedis connection pool\n client: add chat command manager\n kc: change to use redis for storage\n http service: rename kc to chat\n Add qp to chat service\n chat commands: add !qp command\n scene mixin: disable clickbox checks when detatched camera is enabled\n gpu plugin: add fog\n\nJake Wilson (1):\n worldhopper: change header color to yellow with active filter (#7035)\n\nJordan Atwood (5):\n itemprices: Add "tooltips" plugin tag\n reportbutton: Make time formatting methods static where possible\n reportbutton: Add date time format\n experiencedrop: Highlight only correct exp drops for prayer\n dev tools: Fix overlay layer\n\nMax Weber (12):\n Add BeforeRender event\n runelite-api: Add Quest enum\n achievementdiary: Split requirements into multiple classes\n diaries: Use new api\n achievementdiary: Add Quest support\n achievementdiary: Layout text properly\n Add Skybox plugin\n ScriptVM: Bump execution time limit\n Skybox: Do bounds check on the localPlayer\'s location, not the camera\'s\n fairyring: Add CIR\n Update Quests\n achievementdiary: Don\'t duplicate requirements with many requriements\n\nMonster Sync (1):\n Add Kourend & Kebos diary requirements\n\nReasel (1):\n Add Moonlight Mead to ItemStatsPlugin (#7172)\n\nRichard (1):\n Return hiscores based on current world\n\nRon Young (1):\n Skybox: add Kebos Mainland\n\nSpedwards (4):\n Split Valuable and Untradeable screenshot options (#7167)\n Fix artic pine log exp in skill calc (40xp/log) (#7199)\n Change Caviar healing value from 3 to 5 (#7206)\n diaries: Add Quest requirements\n\nTrevor Guidry (3):\n Add range annotation to gpu draw distance\n Make the default min value of ranges 0\n Add the lvl 20 ardy guards to the npc_health.json\n\nsteffenhauge (1):\n Add puzzle solver for monkey madness 1 puzzle box (#6545)\n\ntrimbe (3):\n inventory tags: preserve \'cancel\' when creating custom menu\n bank value: use ItemContainer instead of WidgetItemQuery\n bank value: add script callback for setting title\n
\n',image:"/img/blog/1.5.7-Release/skybox.png"}}}]);
+//# sourceMappingURL=79.906b503d.chunk.js.map
\ No newline at end of file
diff --git a/static/js/79.54c7eb51.chunk.js.map b/static/js/79.906b503d.chunk.js.map
similarity index 98%
rename from static/js/79.54c7eb51.chunk.js.map
rename to static/js/79.906b503d.chunk.js.map
index 90fa97427..ad79daf23 100644
--- a/static/js/79.54c7eb51.chunk.js.map
+++ b/static/js/79.906b503d.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-01-10-10-00-1.5.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4BAA4B,OAAS,SAAS,KAAO,6gJAAsiJ,MAAQ","file":"static/js/79.54c7eb51.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.7 Release\",\"description\":\"Skybox plugin and GPU fog\",\"author\":\"Jordan\",\"body\":\"A skybox plugin has been added to draw colors beyond the edge of the game's rendered tiles based on\\nthe player's location. Thanks to @Abextm ,\\n@raiyni , and @psikoi for this feature!
\\n
\\nThe GPU plugin now supports an option to draw fog, fading the edge of the scene by the configured\\namount. Thanks to @logarrhythmic for this contribution.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd karambwans and wine to cooking plugin \\nAdded a !qp command to the chat commands plugin \\nThe world hopper plugin now changes the header color to yellow with active filter \\nThe report button plugin now has a date time format matching that of the screenshot plugin \\nAdded quest requirements support to the achievement diary plugin \\nAdded Kebos and Kourend diary to the achievement diary plugin \\nLooking up hiscores will now automatically select the correct game mode based on current world \\nSplit Valuable and Untradeable screenshot options \\nFix artic pine log exp in skill calc \\nChange Caviar healing value from 3 to 5 \\nAdd puzzle solver for monkey madness 1 puzzle box \\nFixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (17):\\n object markers: determine tile from menu parameters\\n client: copy screenshot image in draw manager callback\\n cml: set runelite user agent header\\n cml: only send update if at least 1k exp has been gained\\n xptracker: only send update if at least 1k exp has been gained\\n xp tracker: try to not look up the same user too frequently\\n xp tracker: reduce hiscore lookup delay to 1 second\\n timers plugin: change vengeance timers to use varbits\\n Add karambwans and wine to cooking plugin\\n http service: use jedis connection pool\\n client: add chat command manager\\n kc: change to use redis for storage\\n http service: rename kc to chat\\n Add qp to chat service\\n chat commands: add !qp command\\n scene mixin: disable clickbox checks when detatched camera is enabled\\n gpu plugin: add fog\\n\\nJake Wilson (1):\\n worldhopper: change header color to yellow with active filter (#7035)\\n\\nJordan Atwood (5):\\n itemprices: Add "tooltips" plugin tag\\n reportbutton: Make time formatting methods static where possible\\n reportbutton: Add date time format\\n experiencedrop: Highlight only correct exp drops for prayer\\n dev tools: Fix overlay layer\\n\\nMax Weber (12):\\n Add BeforeRender event\\n runelite-api: Add Quest enum\\n achievementdiary: Split requirements into multiple classes\\n diaries: Use new api\\n achievementdiary: Add Quest support\\n achievementdiary: Layout text properly\\n Add Skybox plugin\\n ScriptVM: Bump execution time limit\\n Skybox: Do bounds check on the localPlayer's location, not the camera's\\n fairyring: Add CIR\\n Update Quests\\n achievementdiary: Don't duplicate requirements with many requriements\\n\\nMonster Sync (1):\\n Add Kourend & Kebos diary requirements\\n\\nReasel (1):\\n Add Moonlight Mead to ItemStatsPlugin (#7172)\\n\\nRichard (1):\\n Return hiscores based on current world\\n\\nRon Young (1):\\n Skybox: add Kebos Mainland\\n\\nSpedwards (4):\\n Split Valuable and Untradeable screenshot options (#7167)\\n Fix artic pine log exp in skill calc (40xp/log) (#7199)\\n Change Caviar healing value from 3 to 5 (#7206)\\n diaries: Add Quest requirements\\n\\nTrevor Guidry (3):\\n Add range annotation to gpu draw distance\\n Make the default min value of ranges 0\\n Add the lvl 20 ardy guards to the npc_health.json\\n\\nsteffenhauge (1):\\n Add puzzle solver for monkey madness 1 puzzle box (#6545)\\n\\ntrimbe (3):\\n inventory tags: preserve 'cancel' when creating custom menu\\n bank value: use ItemContainer instead of WidgetItemQuery\\n bank value: add script callback for setting title\\n
\\n\",\"image\":\"/img/blog/1.5.7-Release/skybox.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-01-10-10-00-1.5.7-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,4BAA4B,OAAS,SAAS,KAAO,6gJAAsiJ,MAAQ","file":"static/js/79.906b503d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.7 Release\",\"description\":\"Skybox plugin and GPU fog\",\"author\":\"Jordan\",\"body\":\"A skybox plugin has been added to draw colors beyond the edge of the game's rendered tiles based on\\nthe player's location. Thanks to @Abextm ,\\n@raiyni , and @psikoi for this feature!
\\n
\\nThe GPU plugin now supports an option to draw fog, fading the edge of the scene by the configured\\namount. Thanks to @logarrhythmic for this contribution.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd karambwans and wine to cooking plugin \\nAdded a !qp command to the chat commands plugin \\nThe world hopper plugin now changes the header color to yellow with active filter \\nThe report button plugin now has a date time format matching that of the screenshot plugin \\nAdded quest requirements support to the achievement diary plugin \\nAdded Kebos and Kourend diary to the achievement diary plugin \\nLooking up hiscores will now automatically select the correct game mode based on current world \\nSplit Valuable and Untradeable screenshot options \\nFix artic pine log exp in skill calc \\nChange Caviar healing value from 3 to 5 \\nAdd puzzle solver for monkey madness 1 puzzle box \\nFixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (17):\\n object markers: determine tile from menu parameters\\n client: copy screenshot image in draw manager callback\\n cml: set runelite user agent header\\n cml: only send update if at least 1k exp has been gained\\n xptracker: only send update if at least 1k exp has been gained\\n xp tracker: try to not look up the same user too frequently\\n xp tracker: reduce hiscore lookup delay to 1 second\\n timers plugin: change vengeance timers to use varbits\\n Add karambwans and wine to cooking plugin\\n http service: use jedis connection pool\\n client: add chat command manager\\n kc: change to use redis for storage\\n http service: rename kc to chat\\n Add qp to chat service\\n chat commands: add !qp command\\n scene mixin: disable clickbox checks when detatched camera is enabled\\n gpu plugin: add fog\\n\\nJake Wilson (1):\\n worldhopper: change header color to yellow with active filter (#7035)\\n\\nJordan Atwood (5):\\n itemprices: Add "tooltips" plugin tag\\n reportbutton: Make time formatting methods static where possible\\n reportbutton: Add date time format\\n experiencedrop: Highlight only correct exp drops for prayer\\n dev tools: Fix overlay layer\\n\\nMax Weber (12):\\n Add BeforeRender event\\n runelite-api: Add Quest enum\\n achievementdiary: Split requirements into multiple classes\\n diaries: Use new api\\n achievementdiary: Add Quest support\\n achievementdiary: Layout text properly\\n Add Skybox plugin\\n ScriptVM: Bump execution time limit\\n Skybox: Do bounds check on the localPlayer's location, not the camera's\\n fairyring: Add CIR\\n Update Quests\\n achievementdiary: Don't duplicate requirements with many requriements\\n\\nMonster Sync (1):\\n Add Kourend & Kebos diary requirements\\n\\nReasel (1):\\n Add Moonlight Mead to ItemStatsPlugin (#7172)\\n\\nRichard (1):\\n Return hiscores based on current world\\n\\nRon Young (1):\\n Skybox: add Kebos Mainland\\n\\nSpedwards (4):\\n Split Valuable and Untradeable screenshot options (#7167)\\n Fix artic pine log exp in skill calc (40xp/log) (#7199)\\n Change Caviar healing value from 3 to 5 (#7206)\\n diaries: Add Quest requirements\\n\\nTrevor Guidry (3):\\n Add range annotation to gpu draw distance\\n Make the default min value of ranges 0\\n Add the lvl 20 ardy guards to the npc_health.json\\n\\nsteffenhauge (1):\\n Add puzzle solver for monkey madness 1 puzzle box (#6545)\\n\\ntrimbe (3):\\n inventory tags: preserve 'cancel' when creating custom menu\\n bank value: use ItemContainer instead of WidgetItemQuery\\n bank value: add script callback for setting title\\n
\\n\",\"image\":\"/img/blog/1.5.7-Release/skybox.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/8.00f46989.chunk.js b/static/js/8.02229295.chunk.js
similarity index 98%
rename from static/js/8.00f46989.chunk.js
rename to static/js/8.02229295.chunk.js
index 9796c5d95..41ef62e22 100644
--- a/static/js/8.00f46989.chunk.js
+++ b/static/js/8.02229295.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[8],{126:function(e,t,n){"use strict";var r=n(0);var a=()=>Object(r.g)("section",{id:"footer"},Object(r.g)("div",{class:"content-section"},Object(r.g)("footer",null,Object(r.g)("hr",null),"Developed with ",Object(r.g)("i",{class:"fas fa-heart"})," and"," ",Object(r.g)("i",{class:"fas fa-coffee"})," using"," ",Object(r.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(r.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(r.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(r.g)("a",{href:"/atom.xml",class:"float-right"},Object(r.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:n,...o}=e;return o.class=o.class?"container "+o.class:"container",o.style={...o.style||{},maxWidth:n?"100%":""},Object(r.g)("div",Object.assign({},o,{id:"layout"}),t,Object(r.g)(a,null))}},127:function(e,t,n){"use strict";var r=n(0);var a=()=>Object(r.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(r.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(r.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(r.g)("div",{class:"fa-4x"},Object(r.g)("i",{class:"fas fa-spinner fa-spin"})))));t.a=e=>t=>class extends r.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const t=e(this.props);t instanceof Promise?t.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:n}=this.state;return n?Object(r.g)(a,null):Object(r.g)(t,e)}}},128:function(e,t,n){},129:function(e,t,n){"use strict";function r(e,t,n,r,a,o){var c=Math.round(Math.abs(e)/t);return o?c<=1?a:"in "+c+" "+n+"s":c<=1?r:c+" "+n+"s ago"}var a=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var t=Date.now()-e.getTime();if(Math.abs(t)<6e4)return"just now";for(var n=0;n{let{value:t,onInput:n}=e;return Object(r.g)("div",{class:"search input-group mb-3"},Object(r.g)("div",{class:"input-group-prepend"},Object(r.g)("span",{class:"input-group-text"},Object(r.g)("i",{class:"fas fa-search"}))),Object(r.g)("input",{type:"text",class:"form-control",placeholder:"Search...",value:t,onInput:n,ref:e=>e&&e.focus()}))}},286:function(e,t){String.prototype.toTitleCase=function(){"use strict";var e=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|v.?|vs.?|via)$/i,t=/([A-Za-z0-9\u00C0-\u00FF])/;return this.split(/([ :\u2013\u2014-])/).map((function(n,r,a){return n.search(e)>-1&&0!==r&&r!==a.length-1&&":"!==a[r-3]&&":"!==a[r+1]&&("-"!==a[r+1]||"-"===a[r-1]&&"-"===a[r+1])?n.toLowerCase():n.substr(1).search(/[A-Z]|\../)>-1||":"===a[r+1]&&""!==a[r+2]?n:n.replace(t,(function(e){return e.toUpperCase()}))})).join("")}},291:function(e,t,n){},292:function(e,t,n){"use strict";var r=n(0);t.a=e=>{let{prefix:t,choices:n,value:a,onClick:o}=e;return Object(r.g)("div",{class:"dropdown"},Object(r.g)("button",{class:"dropdown-toggle btn btn-block btn-dark",id:"choice"+t},t," ",a),Object(r.g)("div",{class:"dropdown-menu"},n.map(e=>Object(r.g)("button",{class:"dropdown-item",onClick:()=>o(e)},t," ",e))))}},293:function(e,t,n){"use strict";var r=n(0),a=n(132),o=n(459),c=n(468),s=n(460),E=n(461),i=n(462),A=n(49);n(294);const R=[3225,3219],l=a.TileLayer.extend({initialize:function(e,t){this._url=e,this.originalPlane=t.plane,Object(a.setOptions)(this,t)},getTileUrl:function(e){return a.Util.template(this._url,{source:this.options.source,mapId:-1,zoom:e.z,plane:this.options.plane,x:e.x,y:-(1+e.y)})},resetPlane:function(){this.setPlane(this.originalPlane)},setPlane:function(e){const t=this.getPlane();e=Math.max(e,this.options.minPlane),(e=Math.min(e,this.options.maxPlane))!==t&&(this.options.plane=e,this._map&&this._map.fire("planechange"),this.redraw())},getPlane:function(){return this.options.plane},createTile:function(e,t){let n=a.TileLayer.prototype.createTile.call(this,e,t);return n.onerror=e=>e.preventDefault(),n}}),u=e=>({x:parseInt(e.lng),y:parseInt(e.lat)}),O=(e,t)=>[t,e],d=e=>{const t=e.regionId,n=e.regionX,r=e.regionY;let a="#ffffff";if(e.color){const t=e.color.value;if(t)o=t,a="rgba("+[(16711680&(o>>>=0))>>>16,(65280&o)>>>8,255&o,((4278190080&o)>>>24)/255].join(",")+")";else if(e.color){const t=e.color;a="#"+t.slice(3,9)+t[1]+t[2]}}var o;return{x:(t>>>8<<6)+n,y:((255&t)<<6)+r,z:e.z,label:e.label,color:a}},P=e=>{const t=O(R[0],R[1]);e.setView(t);const n=Object(a.rectangle)([[0,0],[1,1]],{color:"#1e1e1e",fillColor:"#1e1e1e",fillOpacity:.3,weight:1,interactive:!1});n.addTo(e),e.on("mousemove",e=>{const t=u(e.latlng);n.setBounds([O(t.x,t.y),O(t.x+1,t.y+1)])});const r=new a.Control({position:"topright"});r.onAdd=e=>{const t=a.DomUtil.create("div","leaflet-bar leaflet-control"),n=a.DomUtil.create("span","leaflet-custom-control",t),r=()=>{const t=(e=>{const t=e.getCenter(),n=u(t),r=n.x>>6<<8|n.y>>6;for(const a of A.a)if(a.regions.includes(r))return a.name;return""})(e);n.hidden=!t,n.textContent=t};return r(),e.on("move",r),t},r.addTo(e);const o=new a.Control({position:"topleft"});o.onAdd=e=>{const n=a.DomUtil.create("div","leaflet-bar leaflet-control"),r=a.DomUtil.create("a","fas fa-redo",n);return a.DomEvent.disableClickPropagation(r).addListener(r,"click",()=>{e.viewport?e.fitBounds(e.viewport):e.setView(t,0),e.tileLayer.resetPlane()}),n},o.addTo(e);const c=new a.Control({position:"topright"});c.onAdd=e=>{const t=a.DomUtil.create("div","leaflet-bar leaflet-control"),n=a.DomUtil.create("a","fas fa-sort-amount-up-alt",t),r=a.DomUtil.create("span","leaflet-custom-control",t),o=a.DomUtil.create("a","fas fa-sort-amount-down",t),c=()=>{e.tileLayer&&(r.textContent=e.tileLayer.getPlane(),e.tileLayer.getPlane()===e.tileLayer.options.maxPlane?a.DomUtil.addClass(n,"leaflet-disabled"):a.DomUtil.removeClass(n,"leaflet-disabled"),e.tileLayer.getPlane()===e.tileLayer.options.minPlane?a.DomUtil.addClass(o,"leaflet-disabled"):a.DomUtil.removeClass(o,"leaflet-disabled"))};return c(),e.on("planechange",c),a.DomEvent.disableClickPropagation(n).addListener(n,"click",()=>{e.tileLayer.setPlane(e.tileLayer.getPlane()+1)}),a.DomEvent.disableClickPropagation(o).addListener(o,"click",()=>{e.tileLayer.setPlane(e.tileLayer.getPlane()-1)}),t},c.addTo(e),e.viewport&&e.fitBounds(e.viewport)},S=e=>{let{tiles:t,selected:n,plane:a}=e;const i=Object(o.a)();if(i.tileLayer||(i.tileLayer=new l("https://raw.githubusercontent.com/mejrs/layers_osrs/master/{source}/-1/{zoom}/{plane}_{x}_{y}.png",{noWrap:!0,plane:a,minPlane:0,maxPlane:3,source:"mapsquares",minZoom:-4,maxNativeZoom:2,maxZoom:8,errorTileUrl:"https://raw.githubusercontent.com/mejrs/mejrs.github.io/master/layers/alpha_pixel.png"}),i.tileLayer.addTo(i)),i.tileLayer.originalPlane=a,i.tileLayer.setPlane(a),n.length>0){const e=n.map(e=>e.x),t=n.map(e=>e.y),r=Math.min(...e)-4,a=Math.max(...e)+4,o=Math.min(...t)-4,c=Math.max(...t)+4,s=[O(r,o),O(a,c)];i.viewport=s,i.fitBounds(s)}return t.map(e=>{const t=[O(e.x,e.y),O(e.x+1,e.y+1)];return Object(r.g)(r.b,null,e.label&&Object(r.g)(c.a,{bounds:t,url:"/img/tile-text.png"}),Object(r.g)(s.a,{bounds:t,pathOptions:{color:e.color,fillColor:e.color,fillOpacity:.3,weight:1,interactive:!1}},e.label&&Object(r.g)(E.a,null,e.label)))})};t.a=e=>{let{tiles:t,selected:n}=e;t||(t=[]),n||(n=t),t=t.map(d),n=n.map(d);const o=n.length>0&&n[0].z||0;return Object(r.g)(r.b,null,Object(r.g)(i.a,{minZoom:-4,maxZoom:8,maxBounds:[[-1e3,-1e3],[13800,13800]],maxBoundsViscosity:.5,zoom:0,attributionControl:!1,whenCreated:P,crs:a.CRS.Simple},Object(r.g)(S,{tiles:t,selected:n,plane:o})))}},294:function(e,t,n){},442:function(e,t,n){},443:function(e,t,n){},444:function(e,t,n){},445:function(e,t,n){},463:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(27),o=n(8),c=n(11),s=n(126),E=n(7),i=n.n(E),A=n(46),R=n(20);class l extends r.a{componentWillMount(){window.location.replace(this.props.to)}render(){return null}}var u=n(28),O=(n(286),n(18)),d=n(127),P=n(4);const S=e=>{switch(e.toLowerCase()){case"abyssal sire":return 13262;case"alchemical hydra":return 22746;case"barrows":case"barrows chests":return 19629;case"bryophyta":return 22370;case"callisto":return 13178;case"cerberus":return 13247;case"chambers of xeric":case"chambers of xeric challenge mode":return 20851;case"chaos elemental":return 11995;case"chaos fanatic":return 4675;case"commander zilyana":return 12651;case"corporeal beast":return 22318;case"crazy archaeologist":return 11990;case"dagannoth prime":return 12644;case"dagannoth rex":return 12645;case"dagannoth supreme":return 12643;case"deranged archaeologist":return 21566;case"general graardor":return 12650;case"giant mole":return 12646;case"grotesque guardians":return 21748;case"hespori":return 22875;case"kalphite queen":return 12647;case"king black dragon":return 12653;case"k'ril tsutsaroth":return 12652;case"kraken":return 12655;case"kree'arra":return 12649;case"obor":return 20756;case"scorpia":return 13181;case"skotizo":return 21273;case"theatre of blood":return 22473;case"thermonuclear smoke devil":return 12648;case"tztok-jad":return 13225;case"tzkal-zuk":return 21291;case"venenatis":return 13177;case"vet'ion":return 13179;case"vorkath":return 21992;case"wintertodt":return 20693;case"zulrah":return 12921;case"sarachnis":return 23495;case"herbiboar":return 21509;case"zalcano":return 23760;case"gauntlet":return 23757;case"corrupted gauntlet":return 23759;case"mimic":return 23184;case"ape atoll agility":return 4033;default:return 4155}};var I=Object(a.b)((e,t)=>({...t,slayerTask:Object(u.p)(e),bossLog:Object(u.e)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{slayerTask:t,bossLog:n}=e;return Object(r.g)(r.b,null,(e=>e.hasTask?Object(r.g)("div",{class:"card mb-3"},Object(r.g)("div",{class:"card-header"},"Slayer Task"),Object(r.g)("div",{class:"card-body d-flex w-100"},Object(r.g)("div",{class:"d-block"},Object(r.g)("h5",{class:"card-title"},e.name.toTitleCase()," ",Object(r.g)("span",{class:"badge badge-info"},e.start-e.remaining,"/",e.start)),e.location?Object(r.g)("h6",{class:"card-subtitle text-muted"},"in ",e.location):Object(r.g)("noscript",null)),Object(r.g)("div",{class:"ml-auto text-right"},"Streak: ",Object(r.g)("span",{class:"badge badge-secondary"},e.streak),Object(r.g)("br",null),"Points: ",Object(r.g)("span",{class:"badge badge-secondary"},e.points)))):Object(r.g)("noscript",null))(t),(e=>0===e.length?Object(r.g)("noscript",null):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-header"},"Boss Log"),Object(r.g)("ul",{id:"kc",class:"list-group"},e.map(e=>Object(r.g)("li",{class:"list-group-item"},Object(r.g)("img",{class:"mr-1",src:`https://static.runelite.net/cache/item/icon/${S(e.name)}.png`,alt:""}),e.name.toTitleCase(),Object(r.g)("div",{class:"float-right"},e.pb?Object(r.g)("div",null,Object(r.g)("label",null,"Personal best:"),Object(r.g)("span",{class:"badge badge-info badge-pill"},Object(O.g)(e.pb))):Object(r.g)("noscript",null),Object(r.g)("div",null,Object(r.g)("label",null,"Kills:"),Object(r.g)("span",{class:"badge badge-primary badge-pill"},e.kc))))))))(n))})),T=(n(130),n(442),n(285)),w=n(32),N=n(24);const G={1:{x:0,y:0,w:5},2:{x:5,y:0,w:7},3:{x:12,y:0,w:6},4:{x:18,y:0,w:6},5:{x:24,y:0,w:6},6:{x:30,y:0,w:7},7:{x:37,y:0,w:6},8:{x:43,y:0,w:7},9:{x:50,y:0,w:7},0:{x:57,y:0,w:7},M:{x:0,y:10,w:8},K:{x:8,y:10,w:7},"%":{x:15,y:10,w:7},"-":{x:22,y:10,w:5},"+":{x:27,y:10,w:7},"/":{x:37,y:10,w:5},"*":{x:39,y:10,w:7},"=":{x:46,y:0,w:6},"^":{x:52,y:10,w:5},"(":{x:57,y:10,w:4},")":{x:60,y:10,w:4}},_=["","K","M"],g=e=>{let t=0;for(;e>9999;)e/=1e3,t++;const n=_[t];return[~~e+n,n]},D=e=>{return Object(r.g)("div",{class:"drop-wrapper"},(e=>{let[t,n]=g(e);return e>1&&Object(r.g)("span",{class:"rs-item-quantity rs-item-quantity-"+(n||"none")},[...t].map(e=>G[e]).filter(e=>!!e).map(e=>Object(r.g)("span",{class:"rs-item-quantity-number",style:{width:e.w,backgroundPositionX:-e.x,backgroundPositionY:-e.y}})))})(e.qty),Object(r.g)("div",{class:"tooltip-tag"},Object(r.g)("a",{href:Object(O.i)(e)},Object(r.g)("img",{class:"card-img-top rs-icon",alt:e.id,src:(t=e.id,`https://static.runelite.net/cache/item/icon/${t}.png`)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)," ",Object(r.g)("small",null,"(",m(e.price)," gp)"))));var t},m=e=>{let[t]=g(e);return t},p=e=>Object(r.g)("div",{class:"card loot-card"},Object(r.g)("div",{class:"card-header"},e.name," ",Object(r.g)("span",{class:"small"},"x ",e.count),Object(r.g)("span",{class:"small float-right"},m(e.price)," gp")),Object(r.g)("div",{class:"card-body pt-0 pb-0 record-body"},Object(r.g)("div",{class:"row drop-row"},e.drops.map(D))));var h=Object(a.b)((e,t)=>({...t,loot:Object(u.i)(e),lootFilter:Object(u.m)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchPrices:w.b,fetchItems:N.b,fetchConfig:u.c,setLootFilter:u.u},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchPrices:n,fetchItems:r,fetchConfig:a}=e;await t(),await n(),await r(),await a()})(e=>{let{loot:t,lootFilter:n,setLootFilter:a}=e;return Object(r.g)(r.b,null,Object(r.g)(T.a,{value:n,onInput:e=>((e,t)=>t(e.target.value))(e,a)}),Object(r.g)("div",{class:"card-columns"},t.map(p)))})),W=n(47);n(443),n(128);const L=e=>{const t=[e.name,e.icon].concat(e.items.map(e=>e.id)).join(",");return Object(r.g)("div",{class:"content-section tag-container",style:{margin:0,padding:0,paddingBottom:15,maxWidth:"initial",width:"100%"}},Object(r.g)("h1",null,Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)})," ",e.name),Object(r.g)("pre",{class:"pre-select"},t,Object(r.g)("div",{class:"text-right"},Object(r.g)("a",{href:"/tag/show/"+t,class:"user-select-none"},"Share"))),Object(r.g)("div",{class:"row pl-2"},e.items.map(e=>{const t=e.name||"",n=e.id;return Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"tooltip-tag"},Object(r.g)("a",{href:Object(O.i)(e)},Object(r.g)("img",{class:"card-img-top",alt:t,src:Object(O.c)(n)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name||"Loading..."),Object(r.g)("br",null))))})))};var b,M,f,C,B,H,U=Object(a.b)((e,t)=>({...t,tags:Object(u.q)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,fetchItems:N.b},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n,fetchItems:r}=e;await t(),await n(),await r()})(e=>{let{tags:t}=e;return Object(r.g)(r.b,null,t.map(L))}));class v{}v.GRIMY_RANARR_WEED=207,v.LIMPWURT_ROOT=225,v.SNAPE_GRASS=231,v.WHITE_BERRIES=239,v.JANGERBERRIES=247,v.GUAM_LEAF=249,v.MARRENTILL=251,v.TARROMIN=253,v.HARRALANDER=255,v.RANARR_WEED=257,v.IRIT_LEAF=259,v.AVANTOE=261,v.KWUARM=263,v.CADANTINE=265,v.DWARF_WEED=267,v.TORSTOL=269,v.CADAVA_BERRIES=753,v.BATTLESTAFF=1391,v.MAGIC_LOGS=1513,v.YEW_LOGS=1515,v.MAPLE_LOGS=1517,v.WILLOW_LOGS=1519,v.OAK_LOGS=1521,v.WOAD_LEAF=1793,v.POTATO=1942,v.REDBERRIES=1951,v.COOKING_APPLE=1955,v.ONION=1957,v.BANANA=1963,v.CABBAGE=1965,v.TOMATO=1982,v.GRAPES=1987,v.ORANGE=2108,v.PINEAPPLE=2114,v.DWELLBERRIES=2126,v.CAVE_NIGHTSHADE=2398,v.RED_FLOWERS=2462,v.LANTADYME=2481,v.WATCH=2575,v.TOADFLAX=2998,v.SNAPDRAGON=3e3,v.POTATO_CACTUS=3138,v.GOUTWEED=3261,v.STRAWBERRY=5504,v.JUTE_FIBRE=5931,v.CURRY_LEAF=5970,v.PAPAYA_FRUIT=5972,v.COCONUT=5974,v.CALQUAT_FRUIT=5980,v.WATERMELON=5982,v.SWEETCORN=5986,v.HAMMERSTONE_HOPS=5994,v.ASGARNIAN_HOPS=5996,v.YANILLIAN_HOPS=5998,v.KRANDORIAN_HOPS=6e3,v.WILDBLOOD_HOPS=6002,v.MUSHROOM=6004,v.BARLEY=6006,v.MARIGOLDS=6010,v.NASTURTIUMS=6012,v.ROSEMARY=6014,v.CACTUS_SPINE=6016,v.POISON_IVY_BERRIES=6018,v.WEEDS=6055,v.SCARECROW=6059,v.SPIRIT_TREE=6063,v.MAHOGANY_LOGS=6332,v.TEAK_LOGS=6333,v.REDWOOD_LOGS=19669,v.GIANT_SEAWEED=21504,v.OLD_NOTES=22051,v.DRAGONFRUIT=22929,v.WHITE_LILY=22932,v.CRYSTAL_SHARDS=23866,v.BIRD_HOUSE=21512,v.OAK_BIRD_HOUSE=21515,v.WILLOW_BIRD_HOUSE=21518,v.TEAK_BIRD_HOUSE=21521,v.MAPLE_BIRD_HOUSE=22192,v.MAHOGANY_BIRD_HOUSE=22195,v.YEW_BIRD_HOUSE=22198,v.MAGIC_BIRD_HOUSE=22201,v.REDWOOD_BIRD_HOUSE=22204,v.FEATHER=314,v.COMPOST_BIN=3271,v.COMPOST=6032,v.SUPERCOMPOST=6034,v.ULTRACOMPOST=21483,v.ROTTEN_TOMATO=2518,v.__class="timetracking.ItemID",function(e){e[e.OVERVIEW=0]="OVERVIEW",e[e.CLOCK=1]="CLOCK",e[e.BIRD_HOUSE=2]="BIRD_HOUSE",e[e.ALLOTMENT=3]="ALLOTMENT",e[e.FLOWER=4]="FLOWER",e[e.HERB=5]="HERB",e[e.TREE=6]="TREE",e[e.FRUIT_TREE=7]="FRUIT_TREE",e[e.HOPS=8]="HOPS",e[e.BUSH=9]="BUSH",e[e.GRAPE=10]="GRAPE",e[e.SPECIAL=11]="SPECIAL"}(b||(b={}));class F{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.itemID&&(this.itemID=0),this.__name=n,this.itemID=r}static FARMING_TABS_$LI$(){return null==F.FARMING_TABS&&(F.FARMING_TABS=[b.HERB,b.TREE,b.FRUIT_TREE,b.SPECIAL,b.FLOWER,b.ALLOTMENT,b.BUSH,b.GRAPE,b.HOPS]),F.FARMING_TABS}getName(){return this.__name}getItemID(){return this.itemID}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}b.__class="timetracking.Tab",b.__interfaces=["java.lang.Comparable","java.io.Serializable"],b._$wrappers={0:new F(0,"OVERVIEW","Overview",v.OLD_NOTES),1:new F(1,"CLOCK","Timers & Stopwatches",v.WATCH),2:new F(2,"BIRD_HOUSE","Bird Houses",v.OAK_BIRD_HOUSE),3:new F(3,"ALLOTMENT","Allotment Patches",v.CABBAGE),4:new F(4,"FLOWER","Flower Patches",v.RED_FLOWERS),5:new F(5,"HERB","Herb Patches",v.GRIMY_RANARR_WEED),6:new F(6,"TREE","Tree Patches",v.YEW_LOGS),7:new F(7,"FRUIT_TREE","Fruit Tree Patches",v.PINEAPPLE),8:new F(8,"HOPS","Hops Patches",v.BARLEY),9:new F(9,"BUSH","Bush Patches",v.POISON_IVY_BERRIES),10:new F(10,"GRAPE","Grape Patches",v.GRAPES),11:new F(11,"SPECIAL","Special Patches",v.MUSHROOM)},function(e){e[e.HARVESTABLE=0]="HARVESTABLE",e[e.GROWING=1]="GROWING",e[e.DISEASED=2]="DISEASED",e[e.DEAD=3]="DEAD",e[e.EMPTY=4]="EMPTY",e[e.FILLING=5]="FILLING"}(M||(M={}));class j{constructor(e,t,n){void 0===this.produce&&(this.produce=null),void 0===this.cropState&&(this.cropState=null),void 0===this.stage&&(this.stage=0),this.produce=e,this.cropState=t,this.stage=n}getStages(){return this.cropState===M.HARVESTABLE||this.cropState===M.FILLING?f.Produce._$wrappers[this.produce].getHarvestStages():f.Produce._$wrappers[this.produce].getStages()}getTickRate(){switch(this.cropState){case M.HARVESTABLE:return f.Produce._$wrappers[this.produce].getRegrowTickrate();case M.GROWING:return f.Produce._$wrappers[this.produce].getTickrate();default:return 0}}getStage(){return this.stage}getProduce(){return this.produce}getCropState(){return this.cropState}}j.__class="timetracking.PatchState";class y{}y.NULL_22938=22938,y.NULL_22939=22939,y.NULL_22940=22940,y.NULL_23044=23044,y.__class="timetracking.NullItemID",(C=f||(f={}))[C.BELLADONNA=0]="BELLADONNA",C[C.MUSHROOM=1]="MUSHROOM",C[C.HESPORI=2]="HESPORI",C[C.ALLOTMENT=3]="ALLOTMENT",C[C.HERB=4]="HERB",C[C.FLOWER=5]="FLOWER",C[C.BUSH=6]="BUSH",C[C.FRUIT_TREE=7]="FRUIT_TREE",C[C.HOPS=8]="HOPS",C[C.TREE=9]="TREE",C[C.HARDWOOD_TREE=10]="HARDWOOD_TREE",C[C.REDWOOD=11]="REDWOOD",C[C.SPIRIT_TREE=12]="SPIRIT_TREE",C[C.ANIMA=13]="ANIMA",C[C.CACTUS=14]="CACTUS",C[C.SEAWEED=15]="SEAWEED",C[C.CALQUAT=16]="CALQUAT",C[C.CELASTRUS=17]="CELASTRUS",C[C.GRAPES=18]="GRAPES",C[C.CRYSTAL_TREE=19]="CRYSTAL_TREE",C[C.COMPOST=20]="COMPOST",C[C.GIANT_COMPOST=21]="GIANT_COMPOST";class V{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.tab&&(this.tab=null),void 0===this.__name&&(this.__name=null),this.tab=n,this.__name=r}getTab(){return this.tab}getName(){return this.__name}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}f.__class="timetracking.PatchImplementation",f.__interfaces=["java.lang.Comparable","java.io.Serializable"],function(e){let t;!function(e){e[e.WEEDS=0]="WEEDS",e[e.SCARECROW=1]="SCARECROW",e[e.POTATO=2]="POTATO",e[e.ONION=3]="ONION",e[e.CABBAGE=4]="CABBAGE",e[e.TOMATO=5]="TOMATO",e[e.SWEETCORN=6]="SWEETCORN",e[e.STRAWBERRY=7]="STRAWBERRY",e[e.WATERMELON=8]="WATERMELON",e[e.SNAPE_GRASS=9]="SNAPE_GRASS",e[e.MARIGOLD=10]="MARIGOLD",e[e.ROSEMARY=11]="ROSEMARY",e[e.NASTURTIUM=12]="NASTURTIUM",e[e.WOAD=13]="WOAD",e[e.LIMPWURT=14]="LIMPWURT",e[e.WHITE_LILY=15]="WHITE_LILY",e[e.REDBERRIES=16]="REDBERRIES",e[e.CADAVABERRIES=17]="CADAVABERRIES",e[e.DWELLBERRIES=18]="DWELLBERRIES",e[e.JANGERBERRIES=19]="JANGERBERRIES",e[e.WHITEBERRIES=20]="WHITEBERRIES",e[e.POISON_IVY=21]="POISON_IVY",e[e.BARLEY=22]="BARLEY",e[e.HAMMERSTONE=23]="HAMMERSTONE",e[e.ASGARNIAN=24]="ASGARNIAN",e[e.JUTE=25]="JUTE",e[e.YANILLIAN=26]="YANILLIAN",e[e.KRANDORIAN=27]="KRANDORIAN",e[e.WILDBLOOD=28]="WILDBLOOD",e[e.GUAM=29]="GUAM",e[e.MARRENTILL=30]="MARRENTILL",e[e.TARROMIN=31]="TARROMIN",e[e.HARRALANDER=32]="HARRALANDER",e[e.RANARR=33]="RANARR",e[e.TOADFLAX=34]="TOADFLAX",e[e.IRIT=35]="IRIT",e[e.AVANTOE=36]="AVANTOE",e[e.KWUARM=37]="KWUARM",e[e.SNAPDRAGON=38]="SNAPDRAGON",e[e.CADANTINE=39]="CADANTINE",e[e.LANTADYME=40]="LANTADYME",e[e.DWARF_WEED=41]="DWARF_WEED",e[e.TORSTOL=42]="TORSTOL",e[e.GOUTWEED=43]="GOUTWEED",e[e.ANYHERB=44]="ANYHERB",e[e.OAK=45]="OAK",e[e.WILLOW=46]="WILLOW",e[e.MAPLE=47]="MAPLE",e[e.YEW=48]="YEW",e[e.MAGIC=49]="MAGIC",e[e.APPLE=50]="APPLE",e[e.BANANA=51]="BANANA",e[e.ORANGE=52]="ORANGE",e[e.CURRY=53]="CURRY",e[e.PINEAPPLE=54]="PINEAPPLE",e[e.PAPAYA=55]="PAPAYA",e[e.PALM=56]="PALM",e[e.DRAGONFRUIT=57]="DRAGONFRUIT",e[e.CACTUS=58]="CACTUS",e[e.POTATO_CACTUS=59]="POTATO_CACTUS",e[e.TEAK=60]="TEAK",e[e.MAHOGANY=61]="MAHOGANY",e[e.ATTAS=62]="ATTAS",e[e.IASOR=63]="IASOR",e[e.KRONOS=64]="KRONOS",e[e.SEAWEED=65]="SEAWEED",e[e.GRAPE=66]="GRAPE",e[e.MUSHROOM=67]="MUSHROOM",e[e.BELLADONNA=68]="BELLADONNA",e[e.CALQUAT=69]="CALQUAT",e[e.SPIRIT_TREE=70]="SPIRIT_TREE",e[e.CELASTRUS=71]="CELASTRUS",e[e.REDWOOD=72]="REDWOOD",e[e.HESPORI=73]="HESPORI",e[e.CRYSTAL_TREE=74]="CRYSTAL_TREE",e[e.EMPTY_COMPOST_BIN=75]="EMPTY_COMPOST_BIN",e[e.COMPOST=76]="COMPOST",e[e.SUPERCOMPOST=77]="SUPERCOMPOST",e[e.ULTRACOMPOST=78]="ULTRACOMPOST",e[e.ROTTEN_TOMATO=79]="ROTTEN_TOMATO",e[e.EMPTY_GIANT_COMPOST_BIN=80]="EMPTY_GIANT_COMPOST_BIN",e[e.GIANT_COMPOST=81]="GIANT_COMPOST",e[e.GIANT_SUPERCOMPOST=82]="GIANT_SUPERCOMPOST",e[e.GIANT_ULTRACOMPOST=83]="GIANT_ULTRACOMPOST",e[e.GIANT_ROTTEN_TOMATO=84]="GIANT_ROTTEN_TOMATO"}(t=e.Produce||(e.Produce={}));class n{constructor(e,t,n,r,a,o,c,s,E,i){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||"number"!==typeof E&&null!==E||"number"!==typeof i&&null!==i){if("string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||void 0!==E||void 0!==i)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0)}else{void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=E,this.harvestStages=i}}getName(){return this.__name}getContractName(){return this.contractName}getItemID(){return this.itemID}getTickrate(){return this.tickrate}getStages(){return this.stages}getRegrowTickrate(){return this.regrowTickrate}getHarvestStages(){return this.harvestStages}getPatchImplementation(){return this.patchImplementation}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.Produce_$WRAPPER=n,t.__class="timetracking.PatchImplementation.Produce",t.__interfaces=["java.lang.Comparable","java.io.Serializable"],t._$wrappers={0:new n(0,"WEEDS","Weeds","Weeds",null,v.WEEDS,5,4),1:new n(1,"SCARECROW","Scarecrow","Scarecrow",null,v.SCARECROW,5,4),2:new n(2,"POTATO","Potato","Potatoes",e.ALLOTMENT,v.POTATO,10,5,0,3),3:new n(3,"ONION","Onion","Onions",e.ALLOTMENT,v.ONION,10,5,0,3),4:new n(4,"CABBAGE","Cabbage","Cabbages",e.ALLOTMENT,v.CABBAGE,10,5,0,3),5:new n(5,"TOMATO","Tomato","Tomatoes",e.ALLOTMENT,v.TOMATO,10,5,0,3),6:new n(6,"SWEETCORN","Sweetcorn","Sweetcorn",e.ALLOTMENT,v.SWEETCORN,10,6,0,3),7:new n(7,"STRAWBERRY","Strawberry","Strawberries",e.ALLOTMENT,v.STRAWBERRY,10,7,0,3),8:new n(8,"WATERMELON","Watermelon","Watermelons",e.ALLOTMENT,v.WATERMELON,10,8,0,3),9:new n(9,"SNAPE_GRASS","Snape grass","Snape grass",e.ALLOTMENT,v.SNAPE_GRASS,10,8,0,3),10:new n(10,"MARIGOLD","Marigold","Marigolds",e.FLOWER,v.MARIGOLDS,5,5),11:new n(11,"ROSEMARY","Rosemary","Rosemary",e.FLOWER,v.ROSEMARY,5,5),12:new n(12,"NASTURTIUM","Nasturtium","Nasturtiums",e.FLOWER,v.NASTURTIUMS,5,5),13:new n(13,"WOAD","Woad","Woad",e.FLOWER,v.WOAD_LEAF,5,5),14:new n(14,"LIMPWURT","Limpwurt","Limpwurt roots",e.FLOWER,v.LIMPWURT_ROOT,5,5),15:new n(15,"WHITE_LILY","White lily","White lillies",e.FLOWER,v.WHITE_LILY,5,5),16:new n(16,"REDBERRIES","Redberry","Redberries",e.BUSH,v.REDBERRIES,20,6,20,5),17:new n(17,"CADAVABERRIES","Cadavaberry","Cadava berries",e.BUSH,v.CADAVA_BERRIES,20,7,20,5),18:new n(18,"DWELLBERRIES","Dwellberry","Dwellberries",e.BUSH,v.DWELLBERRIES,20,8,20,5),19:new n(19,"JANGERBERRIES","Jangerberry","Jangerberries",e.BUSH,v.JANGERBERRIES,20,9,20,5),20:new n(20,"WHITEBERRIES","Whiteberry","White berries",e.BUSH,v.WHITE_BERRIES,20,9,20,5),21:new n(21,"POISON_IVY","Poison ivy","Poison ivy berries",e.BUSH,v.POISON_IVY_BERRIES,20,9,20,5),22:new n(22,"BARLEY","Barley","Barley",e.HOPS,v.BARLEY,10,5,0,3),23:new n(23,"HAMMERSTONE","Hammerstone","Hammerstone",e.HOPS,v.HAMMERSTONE_HOPS,10,5,0,3),24:new n(24,"ASGARNIAN","Asgarnian","Asgarnian",e.HOPS,v.ASGARNIAN_HOPS,10,6,0,3),25:new n(25,"JUTE","Jute","Jute",e.HOPS,v.JUTE_FIBRE,10,6,0,3),26:new n(26,"YANILLIAN","Yanillian","Yanillian",e.HOPS,v.YANILLIAN_HOPS,10,7,0,3),27:new n(27,"KRANDORIAN","Krandorian","Krandorian",e.HOPS,v.KRANDORIAN_HOPS,10,8,0,3),28:new n(28,"WILDBLOOD","Wildblood","Wildblood",e.HOPS,v.WILDBLOOD_HOPS,10,9,0,3),29:new n(29,"GUAM","Guam","Guam",e.HERB,v.GUAM_LEAF,20,5,0,3),30:new n(30,"MARRENTILL","Marrentill","Marrentill",e.HERB,v.MARRENTILL,20,5,0,3),31:new n(31,"TARROMIN","Tarromin","Tarromin",e.HERB,v.TARROMIN,20,5,0,3),32:new n(32,"HARRALANDER","Harralander","Harralander",e.HERB,v.HARRALANDER,20,5,0,3),33:new n(33,"RANARR","Ranarr","Harralander",e.HERB,v.RANARR_WEED,20,5,0,3),34:new n(34,"TOADFLAX","Toadflax","Toadflax",e.HERB,v.TOADFLAX,20,5,0,3),35:new n(35,"IRIT","Irit","Irit",e.HERB,v.IRIT_LEAF,20,5,0,3),36:new n(36,"AVANTOE","Avantoe","Avantoe",e.HERB,v.AVANTOE,20,5,0,3),37:new n(37,"KWUARM","Kwuarm","Kwuarm",e.HERB,v.KWUARM,20,5,0,3),38:new n(38,"SNAPDRAGON","Snapdragon","Snapdragon",e.HERB,v.SNAPDRAGON,20,5,0,3),39:new n(39,"CADANTINE","Cadantine","Cadantine",e.HERB,v.CADANTINE,20,5,0,3),40:new n(40,"LANTADYME","Lantadyme","Lantadyme",e.HERB,v.LANTADYME,20,5,0,3),41:new n(41,"DWARF_WEED","Dwarf weed","Dwarf weed",e.HERB,v.DWARF_WEED,20,5,0,3),42:new n(42,"TORSTOL","Torstol","Torstol",e.HERB,v.TORSTOL,20,5,0,3),43:new n(43,"GOUTWEED","Goutweed","Goutweed",e.HERB,v.GOUTWEED,20,5,0,2),44:new n(44,"ANYHERB","Any herb","Any herb",e.HERB,v.GUAM_LEAF,20,5,0,3),45:new n(45,"OAK","Oak","Oak tree",e.TREE,v.OAK_LOGS,40,5),46:new n(46,"WILLOW","Willow","Willow tree",e.TREE,v.WILLOW_LOGS,40,7),47:new n(47,"MAPLE","Maple","Maple tree",e.TREE,v.MAPLE_LOGS,40,9),48:new n(48,"YEW","Yew","Yew tree",e.TREE,v.YEW_LOGS,40,11),49:new n(49,"MAGIC","Magic","Magic tree",e.TREE,v.MAGIC_LOGS,40,13),50:new n(50,"APPLE","Apple","Apple tree",e.FRUIT_TREE,v.COOKING_APPLE,160,7,45,7),51:new n(51,"BANANA","Banana","Banana tree",e.FRUIT_TREE,v.BANANA,160,7,45,7),52:new n(52,"ORANGE","Orange","Orange tree",e.FRUIT_TREE,v.ORANGE,160,7,45,7),53:new n(53,"CURRY","Curry","Curry tree",e.FRUIT_TREE,v.CURRY_LEAF,160,7,45,7),54:new n(54,"PINEAPPLE","Pineapple","Pineapple plant",e.FRUIT_TREE,v.PINEAPPLE,160,7,45,7),55:new n(55,"PAPAYA","Papaya","Papaya tree",e.FRUIT_TREE,v.PAPAYA_FRUIT,160,7,45,7),56:new n(56,"PALM","Palm","Palm tree",e.FRUIT_TREE,v.COCONUT,160,7,45,7),57:new n(57,"DRAGONFRUIT","Dragonfruit","Dragonfruit tree",e.FRUIT_TREE,v.DRAGONFRUIT,160,7,45,7),58:new n(58,"CACTUS","Cactus","Cactus",e.CACTUS,v.CACTUS_SPINE,80,8,20,4),59:new n(59,"POTATO_CACTUS","Potato cactus","Potato cacti",e.CACTUS,v.POTATO_CACTUS,10,8,5,7),60:new n(60,"TEAK","Teak","Teak",e.HARDWOOD_TREE,v.TEAK_LOGS,560,8),61:new n(61,"MAHOGANY","Mahogany","Mahogany",e.HARDWOOD_TREE,v.MAHOGANY_LOGS,640,9),62:new n(62,"ATTAS","Attas","Attas",e.ANIMA,y.NULL_22940,640,9),63:new n(63,"IASOR","Iasor","Iasor",e.ANIMA,y.NULL_22939,640,9),64:new n(64,"KRONOS","Kronos","Kronos",e.ANIMA,y.NULL_22938,640,9),65:new n(65,"SEAWEED","Seaweed","Seaweed",e.SEAWEED,v.GIANT_SEAWEED,10,5,0,4),66:new n(66,"GRAPE","Grape","Grape",e.GRAPES,v.GRAPES,5,8,0,5),67:new n(67,"MUSHROOM","Mushroom","Mushroom",e.MUSHROOM,v.MUSHROOM,40,7,0,7),68:new n(68,"BELLADONNA","Belladonna","Belladonna",e.BELLADONNA,v.CAVE_NIGHTSHADE,80,5),69:new n(69,"CALQUAT","Calquat","Calquat",e.CALQUAT,v.CALQUAT_FRUIT,160,9,0,7),70:new n(70,"SPIRIT_TREE","Spirit tree","Spirit tree",e.SPIRIT_TREE,v.SPIRIT_TREE,320,13),71:new n(71,"CELASTRUS","Celastrus","Celastrus tree",e.CELASTRUS,v.BATTLESTAFF,160,6,0,4),72:new n(72,"REDWOOD","Redwood","Redwood tree",e.REDWOOD,v.REDWOOD_LOGS,640,11),73:new n(73,"HESPORI","Hespori","Hespori",e.HESPORI,y.NULL_23044,640,4,0,2),74:new n(74,"CRYSTAL_TREE","Crystal tree","Crystal tree",e.CRYSTAL_TREE,v.CRYSTAL_SHARDS,80,7),75:new n(75,"EMPTY_COMPOST_BIN","Compost Bin","Compost Bin",e.COMPOST,v.COMPOST_BIN,0,1,0,0),76:new n(76,"COMPOST","Compost","Compost",e.COMPOST,v.COMPOST,40,3,0,15),77:new n(77,"SUPERCOMPOST","Supercompost","Supercompost",e.COMPOST,v.SUPERCOMPOST,40,3,0,15),78:new n(78,"ULTRACOMPOST","Ultracompost","Ultracompost",e.COMPOST,v.ULTRACOMPOST,0,3,0,15),79:new n(79,"ROTTEN_TOMATO","Rotten Tomato","Rotten Tomato",e.COMPOST,v.ROTTEN_TOMATO,40,3,0,15),80:new n(80,"EMPTY_GIANT_COMPOST_BIN","Giant Compost Bin","Giant Compost Bin",e.COMPOST,v.COMPOST_BIN,0,1,0,0),81:new n(81,"GIANT_COMPOST","Compost","Compost",e.GIANT_COMPOST,v.COMPOST,40,3,0,30),82:new n(82,"GIANT_SUPERCOMPOST","Supercompost","Supercompost",e.GIANT_COMPOST,v.SUPERCOMPOST,40,3,0,30),83:new n(83,"GIANT_ULTRACOMPOST","Ultracompost","Ultracompost",e.GIANT_COMPOST,v.ULTRACOMPOST,0,3,0,30),84:new n(84,"GIANT_ROTTEN_TOMATO","Rotten Tomato","Rotten Tomato",e.GIANT_COMPOST,v.ROTTEN_TOMATO,40,3,0,30)}}(f||(f={})),function(e){e.Produce_$WRAPPER=class{constructor(e,t,n,r,a,o,c,s,E,i){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||"number"!==typeof E&&null!==E||"number"!==typeof i&&null!==i){if("string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||void 0!==E||void 0!==i)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0)}else{void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=E,this.harvestStages=i}}getName(){return this.__name}getContractName(){return this.contractName}getItemID(){return this.itemID}getTickrate(){return this.tickrate}getStages(){return this.stages}getRegrowTickrate(){return this.regrowTickrate}getHarvestStages(){return this.harvestStages}getPatchImplementation(){return this.patchImplementation}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}},e.Produce.__class="timetracking.PatchImplementation.Produce",e.Produce.__interfaces=["java.lang.Comparable","java.io.Serializable"];e.PatchImplementation$0_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.BELLADONNA,M.GROWING,t-4):8===t?new j(e.Produce.BELLADONNA,M.HARVESTABLE,0):t>=9&&t<=11?new j(e.Produce.BELLADONNA,M.DISEASED,t-8):t>=12&&t<=14?new j(e.Produce.BELLADONNA,M.DEAD,t-11):t>=15&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$1_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=9?new j(e.Produce.MUSHROOM,M.GROWING,t-4):t>=10&&t<=15?new j(e.Produce.MUSHROOM,M.HARVESTABLE,t-10):t>=16&&t<=20?new j(e.Produce.MUSHROOM,M.DISEASED,t-15):t>=21&&t<=25?new j(e.Produce.MUSHROOM,M.DEAD,t-20):t>=26&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$2_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=6?new j(e.Produce.HESPORI,M.GROWING,t-4):t>=7&&t<=8?new j(e.Produce.HESPORI,M.HARVESTABLE,t-7):9===t?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$3_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=5?new j(e.Produce.WEEDS,M.GROWING,3):t>=6&&t<=9?new j(e.Produce.POTATO,M.GROWING,t-6):t>=10&&t<=12?new j(e.Produce.POTATO,M.HARVESTABLE,t-10):t>=13&&t<=16?new j(e.Produce.ONION,M.GROWING,t-13):t>=17&&t<=19?new j(e.Produce.ONION,M.HARVESTABLE,t-17):t>=20&&t<=23?new j(e.Produce.CABBAGE,M.GROWING,t-20):t>=24&&t<=26?new j(e.Produce.CABBAGE,M.HARVESTABLE,t-24):t>=27&&t<=30?new j(e.Produce.TOMATO,M.GROWING,t-27):t>=31&&t<=33?new j(e.Produce.TOMATO,M.HARVESTABLE,t-31):t>=34&&t<=39?new j(e.Produce.SWEETCORN,M.GROWING,t-34):t>=40&&t<=42?new j(e.Produce.SWEETCORN,M.HARVESTABLE,t-40):t>=43&&t<=48?new j(e.Produce.STRAWBERRY,M.GROWING,t-43):t>=49&&t<=51?new j(e.Produce.STRAWBERRY,M.HARVESTABLE,t-49):t>=52&&t<=59?new j(e.Produce.WATERMELON,M.GROWING,t-52):t>=60&&t<=62?new j(e.Produce.WATERMELON,M.HARVESTABLE,t-60):t>=63&&t<=69?new j(e.Produce.SNAPE_GRASS,M.GROWING,t-63):t>=70&&t<=73?new j(e.Produce.POTATO,M.GROWING,t-70):t>=74&&t<=76?new j(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new j(e.Produce.ONION,M.GROWING,t-77):t>=81&&t<=83?new j(e.Produce.WEEDS,M.GROWING,3):t>=84&&t<=87?new j(e.Produce.CABBAGE,M.GROWING,t-84):t>=88&&t<=90?new j(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=94?new j(e.Produce.TOMATO,M.GROWING,t-91):t>=95&&t<=97?new j(e.Produce.WEEDS,M.GROWING,3):t>=98&&t<=103?new j(e.Produce.SWEETCORN,M.GROWING,t-98):t>=104&&t<=106?new j(e.Produce.WEEDS,M.GROWING,3):t>=107&&t<=112?new j(e.Produce.STRAWBERRY,M.GROWING,t-107):t>=113&&t<=115?new j(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new j(e.Produce.WATERMELON,M.GROWING,t-116):t>=124&&t<=127?new j(e.Produce.WEEDS,M.GROWING,3):t>=128&&t<=134?new j(e.Produce.SNAPE_GRASS,M.GROWING,t-128):t>=135&&t<=137?new j(e.Produce.POTATO,M.DISEASED,t-134):t>=138&&t<=140?new j(e.Produce.SNAPE_GRASS,M.HARVESTABLE,t-138):141===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new j(e.Produce.ONION,M.DISEASED,t-141):t>=145&&t<=148?new j(e.Produce.WEEDS,M.GROWING,3):t>=149&&t<=151?new j(e.Produce.CABBAGE,M.DISEASED,t-148):t>=152&&t<=155?new j(e.Produce.WEEDS,M.GROWING,3):t>=156&&t<=158?new j(e.Produce.TOMATO,M.DISEASED,t-155):t>=159&&t<=162?new j(e.Produce.WEEDS,M.GROWING,3):t>=163&&t<=167?new j(e.Produce.SWEETCORN,M.DISEASED,t-162):t>=168&&t<=171?new j(e.Produce.WEEDS,M.GROWING,3):t>=172&&t<=176?new j(e.Produce.STRAWBERRY,M.DISEASED,t-171):t>=177&&t<=180?new j(e.Produce.WEEDS,M.GROWING,3):t>=181&&t<=187?new j(e.Produce.WATERMELON,M.DISEASED,t-180):t>=188&&t<=192?new j(e.Produce.WEEDS,M.GROWING,3):t>=193&&t<=195?new j(e.Produce.SNAPE_GRASS,M.DEAD,t-192):t>=196&&t<=198?new j(e.Produce.SNAPE_GRASS,M.DISEASED,t-195):t>=199&&t<=201?new j(e.Produce.POTATO,M.DEAD,t-198):t>=202&&t<=204?new j(e.Produce.SNAPE_GRASS,M.DISEASED,3+t-201):205===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=208?new j(e.Produce.ONION,M.DEAD,t-205):t>=209&&t<=211?new j(e.Produce.SNAPE_GRASS,M.DEAD,3+t-208):212===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=213&&t<=215?new j(e.Produce.CABBAGE,M.DEAD,t-212):t>=216&&t<=219?new j(e.Produce.WEEDS,M.GROWING,3):t>=220&&t<=222?new j(e.Produce.TOMATO,M.DEAD,t-219):t>=223&&t<=226?new j(e.Produce.WEEDS,M.GROWING,3):t>=227&&t<=231?new j(e.Produce.SWEETCORN,M.DEAD,t-226):t>=232&&t<=235?new j(e.Produce.WEEDS,M.GROWING,3):t>=236&&t<=240?new j(e.Produce.STRAWBERRY,M.DEAD,t-235):t>=241&&t<=244?new j(e.Produce.WEEDS,M.GROWING,3):t>=245&&t<=251?new j(e.Produce.WATERMELON,M.DEAD,t-244):t>=252&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$4_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.GUAM,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.GUAM,M.HARVESTABLE,10-t):t>=11&&t<=14?new j(e.Produce.MARRENTILL,M.GROWING,t-11):t>=15&&t<=17?new j(e.Produce.MARRENTILL,M.HARVESTABLE,17-t):t>=18&&t<=21?new j(e.Produce.TARROMIN,M.GROWING,t-18):t>=22&&t<=24?new j(e.Produce.TARROMIN,M.HARVESTABLE,24-t):t>=25&&t<=28?new j(e.Produce.HARRALANDER,M.GROWING,t-25):t>=29&&t<=31?new j(e.Produce.HARRALANDER,M.HARVESTABLE,31-t):t>=32&&t<=35?new j(e.Produce.RANARR,M.GROWING,t-32):t>=36&&t<=38?new j(e.Produce.RANARR,M.HARVESTABLE,38-t):t>=39&&t<=42?new j(e.Produce.TOADFLAX,M.GROWING,t-39):t>=43&&t<=45?new j(e.Produce.TOADFLAX,M.HARVESTABLE,45-t):t>=46&&t<=49?new j(e.Produce.IRIT,M.GROWING,t-46):t>=50&&t<=52?new j(e.Produce.IRIT,M.HARVESTABLE,52-t):t>=53&&t<=56?new j(e.Produce.AVANTOE,M.GROWING,t-53):t>=57&&t<=59?new j(e.Produce.AVANTOE,M.HARVESTABLE,59-t):t>=60&&t<=67?new j(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new j(e.Produce.KWUARM,M.GROWING,t-68):t>=72&&t<=74?new j(e.Produce.KWUARM,M.HARVESTABLE,74-t):t>=75&&t<=78?new j(e.Produce.SNAPDRAGON,M.GROWING,t-75):t>=79&&t<=81?new j(e.Produce.SNAPDRAGON,M.HARVESTABLE,81-t):t>=82&&t<=85?new j(e.Produce.CADANTINE,M.GROWING,t-82):t>=86&&t<=88?new j(e.Produce.CADANTINE,M.HARVESTABLE,88-t):t>=89&&t<=92?new j(e.Produce.LANTADYME,M.GROWING,t-89):t>=93&&t<=95?new j(e.Produce.LANTADYME,M.HARVESTABLE,95-t):t>=96&&t<=99?new j(e.Produce.DWARF_WEED,M.GROWING,t-96):t>=100&&t<=102?new j(e.Produce.DWARF_WEED,M.HARVESTABLE,102-t):t>=103&&t<=106?new j(e.Produce.TORSTOL,M.GROWING,t-103):t>=107&&t<=109?new j(e.Produce.TORSTOL,M.HARVESTABLE,109-t):t>=128&&t<=130?new j(e.Produce.GUAM,M.DISEASED,t-127):t>=131&&t<=133?new j(e.Produce.MARRENTILL,M.DISEASED,t-130):t>=134&&t<=136?new j(e.Produce.TARROMIN,M.DISEASED,t-133):t>=137&&t<=139?new j(e.Produce.HARRALANDER,M.DISEASED,t-136):t>=140&&t<=142?new j(e.Produce.RANARR,M.DISEASED,t-139):t>=143&&t<=145?new j(e.Produce.TOADFLAX,M.DISEASED,t-142):t>=146&&t<=148?new j(e.Produce.IRIT,M.DISEASED,t-145):t>=149&&t<=151?new j(e.Produce.AVANTOE,M.DISEASED,t-148):t>=152&&t<=154?new j(e.Produce.KWUARM,M.DISEASED,t-151):t>=155&&t<=157?new j(e.Produce.SNAPDRAGON,M.DISEASED,t-154):t>=158&&t<=160?new j(e.Produce.CADANTINE,M.DISEASED,t-157):t>=161&&t<=163?new j(e.Produce.LANTADYME,M.DISEASED,t-160):t>=164&&t<=166?new j(e.Produce.DWARF_WEED,M.DISEASED,t-163):t>=167&&t<=169?new j(e.Produce.TORSTOL,M.DISEASED,t-166):t>=170&&t<=172?new j(e.Produce.ANYHERB,M.DEAD,t-169):t>=173&&t<=191?new j(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=195?new j(e.Produce.GOUTWEED,M.GROWING,t-192):t>=196&&t<=197?new j(e.Produce.GOUTWEED,M.HARVESTABLE,197-t):t>=198&&t<=200?new j(e.Produce.GOUTWEED,M.DISEASED,t-197):t>=201&&t<=203?new j(e.Produce.GOUTWEED,M.DEAD,t-200):t>=204&&t<=219||t>=221&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$5_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new j(e.Produce.MARIGOLD,M.GROWING,t-8):12===t?new j(e.Produce.MARIGOLD,M.HARVESTABLE,0):t>=13&&t<=16?new j(e.Produce.ROSEMARY,M.GROWING,t-13):17===t?new j(e.Produce.ROSEMARY,M.HARVESTABLE,0):t>=18&&t<=21?new j(e.Produce.NASTURTIUM,M.GROWING,t-18):22===t?new j(e.Produce.NASTURTIUM,M.HARVESTABLE,0):t>=23&&t<=26?new j(e.Produce.WOAD,M.GROWING,t-23):27===t?new j(e.Produce.WOAD,M.HARVESTABLE,0):t>=28&&t<=31?new j(e.Produce.LIMPWURT,M.GROWING,t-28):32===t?new j(e.Produce.LIMPWURT,M.HARVESTABLE,0):t>=33&&t<=35?new j(e.Produce.SCARECROW,M.GROWING,35-t):36===t?new j(e.Produce.SCARECROW,M.GROWING,0):t>=37&&t<=40?new j(e.Produce.WHITE_LILY,M.GROWING,t-37):41===t?new j(e.Produce.WHITE_LILY,M.HARVESTABLE,0):t>=42&&t<=71?new j(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=75?new j(e.Produce.MARIGOLD,M.GROWING,t-72):76===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new j(e.Produce.ROSEMARY,M.GROWING,t-77):81===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=82&&t<=85?new j(e.Produce.NASTURTIUM,M.GROWING,t-82):86===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=87&&t<=90?new j(e.Produce.WOAD,M.GROWING,t-87):91===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=95?new j(e.Produce.LIMPWURT,M.GROWING,t-92):t>=96&&t<=100?new j(e.Produce.WEEDS,M.GROWING,3):t>=101&&t<=104?new j(e.Produce.WHITE_LILY,M.GROWING,t-101):t>=105&&t<=136?new j(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new j(e.Produce.MARIGOLD,M.DISEASED,t-136):t>=140&&t<=141?new j(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new j(e.Produce.ROSEMARY,M.DISEASED,t-141):t>=145&&t<=146?new j(e.Produce.WEEDS,M.GROWING,3):t>=147&&t<=149?new j(e.Produce.NASTURTIUM,M.DISEASED,t-146):t>=150&&t<=151?new j(e.Produce.WEEDS,M.GROWING,3):t>=152&&t<=154?new j(e.Produce.WOAD,M.DISEASED,t-151):t>=155&&t<=156?new j(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=159?new j(e.Produce.LIMPWURT,M.DISEASED,t-156):t>=160&&t<=165?new j(e.Produce.WEEDS,M.GROWING,3):t>=166&&t<=168?new j(e.Produce.WHITE_LILY,M.DISEASED,t-165):t>=169&&t<=200?new j(e.Produce.WEEDS,M.GROWING,3):t>=201&&t<=204?new j(e.Produce.MARIGOLD,M.DEAD,t-200):205===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=209?new j(e.Produce.ROSEMARY,M.DEAD,t-205):210===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=211&&t<=214?new j(e.Produce.NASTURTIUM,M.DEAD,t-210):215===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=216&&t<=219?new j(e.Produce.WOAD,M.DEAD,t-215):220===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=224?new j(e.Produce.LIMPWURT,M.DEAD,t-220):t>=225&&t<=229?new j(e.Produce.WEEDS,M.GROWING,3):t>=230&&t<=233?new j(e.Produce.WHITE_LILY,M.DEAD,t-229):t>=234&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$6_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):4===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=5&&t<=9?new j(e.Produce.REDBERRIES,M.GROWING,t-5):t>=10&&t<=14?new j(e.Produce.REDBERRIES,M.HARVESTABLE,t-10):t>=15&&t<=20?new j(e.Produce.CADAVABERRIES,M.GROWING,t-15):t>=21&&t<=25?new j(e.Produce.CADAVABERRIES,M.HARVESTABLE,t-21):t>=26&&t<=32?new j(e.Produce.DWELLBERRIES,M.GROWING,t-26):t>=33&&t<=37?new j(e.Produce.DWELLBERRIES,M.HARVESTABLE,t-33):t>=38&&t<=45?new j(e.Produce.JANGERBERRIES,M.GROWING,t-38):t>=46&&t<=50?new j(e.Produce.JANGERBERRIES,M.HARVESTABLE,t-46):t>=51&&t<=58?new j(e.Produce.WHITEBERRIES,M.GROWING,t-51):t>=59&&t<=63?new j(e.Produce.WHITEBERRIES,M.HARVESTABLE,t-59):t>=64&&t<=69?new j(e.Produce.WEEDS,M.GROWING,3):t>=70&&t<=74?new j(e.Produce.REDBERRIES,M.DISEASED,t-69):t>=75&&t<=79?new j(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=85?new j(e.Produce.CADAVABERRIES,M.DISEASED,t-79):t>=86&&t<=90?new j(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=97?new j(e.Produce.DWELLBERRIES,M.DISEASED,t-90):t>=98&&t<=102?new j(e.Produce.WEEDS,M.GROWING,3):t>=103&&t<=110?new j(e.Produce.JANGERBERRIES,M.DISEASED,t-102):t>=111&&t<=115?new j(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new j(e.Produce.WHITEBERRIES,M.DISEASED,t-115):t>=124&&t<=133?new j(e.Produce.WEEDS,M.GROWING,3):t>=134&&t<=138?new j(e.Produce.REDBERRIES,M.DEAD,t-133):t>=139&&t<=143?new j(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=149?new j(e.Produce.CADAVABERRIES,M.DEAD,t-143):t>=150&&t<=154?new j(e.Produce.WEEDS,M.GROWING,3):t>=155&&t<=161?new j(e.Produce.DWELLBERRIES,M.DEAD,t-154):t>=162&&t<=166?new j(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=174?new j(e.Produce.JANGERBERRIES,M.DEAD,t-166):t>=175&&t<=179?new j(e.Produce.WEEDS,M.GROWING,3):t>=180&&t<=187?new j(e.Produce.WHITEBERRIES,M.DEAD,t-179):t>=188&&t<=196?new j(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=204?new j(e.Produce.POISON_IVY,M.GROWING,t-197):t>=205&&t<=209?new j(e.Produce.POISON_IVY,M.HARVESTABLE,t-205):t>=210&&t<=216?new j(e.Produce.POISON_IVY,M.DISEASED,t-209):t>=217&&t<=224?new j(e.Produce.POISON_IVY,M.DEAD,t-216):225===t?new j(e.Produce.POISON_IVY,M.DISEASED,8):t>=226&&t<=249?new j(e.Produce.WEEDS,M.GROWING,3):250===t?new j(e.Produce.REDBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.REDBERRIES].getStages()-1):251===t?new j(e.Produce.CADAVABERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.CADAVABERRIES].getStages()-1):252===t?new j(e.Produce.DWELLBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.DWELLBERRIES].getStages()-1):253===t?new j(e.Produce.JANGERBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.JANGERBERRIES].getStages()-1):254===t?new j(e.Produce.WHITEBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.WHITEBERRIES].getStages()-1):255===t?new j(e.Produce.POISON_IVY,M.GROWING,e.Produce._$wrappers[e.Produce.POISON_IVY].getStages()-1):null}};e.PatchImplementation$7_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=13?new j(e.Produce.APPLE,M.GROWING,t-8):t>=14&&t<=20?new j(e.Produce.APPLE,M.HARVESTABLE,t-14):t>=21&&t<=26?new j(e.Produce.APPLE,M.DISEASED,t-20):t>=27&&t<=32?new j(e.Produce.APPLE,M.DEAD,t-26):33===t?new j(e.Produce.APPLE,M.HARVESTABLE,0):34===t?new j(e.Produce.APPLE,M.GROWING,e.Produce._$wrappers[e.Produce.APPLE].getStages()-1):t>=35&&t<=40?new j(e.Produce.BANANA,M.GROWING,t-35):t>=41&&t<=47?new j(e.Produce.BANANA,M.HARVESTABLE,t-41):t>=48&&t<=53?new j(e.Produce.BANANA,M.DISEASED,t-47):t>=54&&t<=59?new j(e.Produce.BANANA,M.DEAD,t-53):60===t?new j(e.Produce.BANANA,M.HARVESTABLE,0):61===t?new j(e.Produce.BANANA,M.GROWING,e.Produce._$wrappers[e.Produce.BANANA].getStages()-1):t>=62&&t<=71?new j(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=77?new j(e.Produce.ORANGE,M.GROWING,t-72):t>=78&&t<=84?new j(e.Produce.ORANGE,M.HARVESTABLE,t-78):t>=85&&t<=89?new j(e.Produce.ORANGE,M.DISEASED,t-84):90===t?new j(e.Produce.ORANGE,M.DISEASED,6):t>=91&&t<=96?new j(e.Produce.ORANGE,M.DEAD,t-90):97===t?new j(e.Produce.ORANGE,M.HARVESTABLE,0):98===t?new j(e.Produce.ORANGE,M.GROWING,e.Produce._$wrappers[e.Produce.ORANGE].getStages()-1):t>=99&&t<=104?new j(e.Produce.CURRY,M.GROWING,t-99):t>=105&&t<=111?new j(e.Produce.CURRY,M.HARVESTABLE,t-105):t>=112&&t<=117?new j(e.Produce.CURRY,M.DISEASED,t-111):t>=118&&t<=123?new j(e.Produce.CURRY,M.DEAD,t-117):124===t?new j(e.Produce.CURRY,M.HARVESTABLE,0):125===t?new j(e.Produce.CURRY,M.GROWING,e.Produce._$wrappers[e.Produce.CURRY].getStages()-1):t>=126&&t<=135?new j(e.Produce.WEEDS,M.GROWING,3):t>=136&&t<=141?new j(e.Produce.PINEAPPLE,M.GROWING,t-136):t>=142&&t<=148?new j(e.Produce.PINEAPPLE,M.HARVESTABLE,t-142):t>=149&&t<=154?new j(e.Produce.PINEAPPLE,M.DISEASED,t-148):t>=155&&t<=160?new j(e.Produce.PINEAPPLE,M.DEAD,t-154):161===t?new j(e.Produce.PINEAPPLE,M.HARVESTABLE,0):162===t?new j(e.Produce.PINEAPPLE,M.GROWING,e.Produce._$wrappers[e.Produce.PINEAPPLE].getStages()-1):t>=163&&t<=168?new j(e.Produce.PAPAYA,M.GROWING,t-163):t>=169&&t<=175?new j(e.Produce.PAPAYA,M.HARVESTABLE,t-169):t>=176&&t<=181?new j(e.Produce.PAPAYA,M.DISEASED,t-175):t>=182&&t<=187?new j(e.Produce.PAPAYA,M.DEAD,t-181):188===t?new j(e.Produce.PAPAYA,M.HARVESTABLE,0):189===t?new j(e.Produce.PAPAYA,M.GROWING,e.Produce._$wrappers[e.Produce.PAPAYA].getStages()-1):t>=190&&t<=199?new j(e.Produce.WEEDS,M.GROWING,3):t>=200&&t<=205?new j(e.Produce.PALM,M.GROWING,t-200):t>=206&&t<=212?new j(e.Produce.PALM,M.HARVESTABLE,t-206):t>=213&&t<=218?new j(e.Produce.PALM,M.DISEASED,t-212):t>=219&&t<=224?new j(e.Produce.PALM,M.DEAD,t-218):225===t?new j(e.Produce.PALM,M.HARVESTABLE,0):226===t?new j(e.Produce.PALM,M.GROWING,e.Produce._$wrappers[e.Produce.PALM].getStages()-1):t>=227&&t<=232?new j(e.Produce.DRAGONFRUIT,M.GROWING,t-227):t>=233&&t<=239?new j(e.Produce.DRAGONFRUIT,M.HARVESTABLE,t-233):t>=240&&t<=245?new j(e.Produce.DRAGONFRUIT,M.DISEASED,t-239):t>=246&&t<=251?new j(e.Produce.DRAGONFRUIT,M.DEAD,t-245):252===t?new j(e.Produce.DRAGONFRUIT,M.HARVESTABLE,0):253===t?new j(e.Produce.DRAGONFRUIT,M.GROWING,e.Produce._$wrappers[e.Produce.DRAGONFRUIT].getStages()-1):t>=254&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$8_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.HAMMERSTONE,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.HAMMERSTONE,M.HARVESTABLE,t-8):t>=11&&t<=15?new j(e.Produce.ASGARNIAN,M.GROWING,t-11):t>=16&&t<=18?new j(e.Produce.ASGARNIAN,M.HARVESTABLE,t-16):t>=19&&t<=24?new j(e.Produce.YANILLIAN,M.GROWING,t-19):t>=25&&t<=27?new j(e.Produce.YANILLIAN,M.HARVESTABLE,t-25):t>=28&&t<=34?new j(e.Produce.KRANDORIAN,M.GROWING,t-28):t>=35&&t<=37?new j(e.Produce.KRANDORIAN,M.HARVESTABLE,t-35):t>=38&&t<=45?new j(e.Produce.WILDBLOOD,M.GROWING,t-38):t>=46&&t<=48?new j(e.Produce.WILDBLOOD,M.HARVESTABLE,t-46):t>=49&&t<=52?new j(e.Produce.BARLEY,M.GROWING,t-49):t>=53&&t<=55?new j(e.Produce.BARLEY,M.HARVESTABLE,t-53):t>=56&&t<=60?new j(e.Produce.JUTE,M.GROWING,t-56):t>=61&&t<=63?new j(e.Produce.JUTE,M.HARVESTABLE,t-61):t>=64&&t<=67?new j(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new j(e.Produce.HAMMERSTONE,M.GROWING,t-68):t>=72&&t<=74?new j(e.Produce.WEEDS,M.GROWING,3):t>=75&&t<=79?new j(e.Produce.ASGARNIAN,M.GROWING,t-75):t>=80&&t<=82?new j(e.Produce.WEEDS,M.GROWING,3):t>=83&&t<=88?new j(e.Produce.YANILLIAN,M.GROWING,t-83):t>=89&&t<=91?new j(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=98?new j(e.Produce.KRANDORIAN,M.GROWING,t-92):t>=99&&t<=101?new j(e.Produce.WEEDS,M.GROWING,3):t>=102&&t<=109?new j(e.Produce.WILDBLOOD,M.GROWING,t-102):t>=110&&t<=112?new j(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=116?new j(e.Produce.BARLEY,M.GROWING,t-113):t>=117&&t<=119?new j(e.Produce.WEEDS,M.GROWING,3):t>=120&&t<=124?new j(e.Produce.JUTE,M.GROWING,t-120):t>=125&&t<=132?new j(e.Produce.WEEDS,M.GROWING,3):t>=133&&t<=135?new j(e.Produce.HAMMERSTONE,M.DISEASED,t-132):t>=136&&t<=139?new j(e.Produce.WEEDS,M.GROWING,3):t>=140&&t<=143?new j(e.Produce.ASGARNIAN,M.DISEASED,t-139):t>=144&&t<=147?new j(e.Produce.WEEDS,M.GROWING,3):t>=148&&t<=152?new j(e.Produce.YANILLIAN,M.DISEASED,t-147):t>=153&&t<=156?new j(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=162?new j(e.Produce.KRANDORIAN,M.DISEASED,t-156):t>=163&&t<=166?new j(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=173?new j(e.Produce.WILDBLOOD,M.DISEASED,t-166):t>=174&&t<=177?new j(e.Produce.WEEDS,M.GROWING,3):t>=178&&t<=180?new j(e.Produce.BARLEY,M.DISEASED,t-177):181===t||t>=183&&t<=184?new j(e.Produce.WEEDS,M.GROWING,3):t>=185&&t<=188?new j(e.Produce.JUTE,M.DISEASED,t-184):t>=189&&t<=196?new j(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=199?new j(e.Produce.HAMMERSTONE,M.DEAD,t-196):t>=200&&t<=203?new j(e.Produce.WEEDS,M.GROWING,3):t>=204&&t<=207?new j(e.Produce.ASGARNIAN,M.DEAD,t-203):t>=208&&t<=211?new j(e.Produce.WEEDS,M.GROWING,3):t>=212&&t<=216?new j(e.Produce.YANILLIAN,M.DEAD,t-211):t>=217&&t<=220?new j(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=226?new j(e.Produce.KRANDORIAN,M.DEAD,t-220):t>=227&&t<=230?new j(e.Produce.WEEDS,M.GROWING,3):t>=231&&t<=237?new j(e.Produce.WILDBLOOD,M.DEAD,t-230):t>=238&&t<=241?new j(e.Produce.WEEDS,M.GROWING,3):t>=242&&t<=244?new j(e.Produce.BARLEY,M.DEAD,t-241):t>=245&&t<=248?new j(e.Produce.WEEDS,M.GROWING,3):t>=249&&t<=252?new j(e.Produce.JUTE,M.DEAD,t-248):t>=253&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$9_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new j(e.Produce.OAK,M.GROWING,t-8):12===t?new j(e.Produce.OAK,M.GROWING,e.Produce._$wrappers[e.Produce.OAK].getStages()-1):13===t||14===t?new j(e.Produce.OAK,M.HARVESTABLE,0):t>=15&&t<=20?new j(e.Produce.WILLOW,M.GROWING,t-15):21===t?new j(e.Produce.WILLOW,M.GROWING,e.Produce._$wrappers[e.Produce.WILLOW].getStages()-1):22===t||23===t?new j(e.Produce.WILLOW,M.HARVESTABLE,0):t>=24&&t<=31?new j(e.Produce.MAPLE,M.GROWING,t-24):32===t?new j(e.Produce.MAPLE,M.GROWING,e.Produce._$wrappers[e.Produce.MAPLE].getStages()-1):33===t||34===t?new j(e.Produce.MAPLE,M.HARVESTABLE,0):t>=35&&t<=44?new j(e.Produce.YEW,M.GROWING,t-35):45===t?new j(e.Produce.YEW,M.GROWING,e.Produce._$wrappers[e.Produce.YEW].getStages()-1):46===t||47===t?new j(e.Produce.YEW,M.HARVESTABLE,0):t>=48&&t<=59?new j(e.Produce.MAGIC,M.GROWING,t-48):60===t?new j(e.Produce.MAGIC,M.GROWING,e.Produce._$wrappers[e.Produce.MAGIC].getStages()-1):61===t||62===t?new j(e.Produce.MAGIC,M.HARVESTABLE,0):t>=63&&t<=72?new j(e.Produce.WEEDS,M.GROWING,3):t>=73&&t<=75?new j(e.Produce.OAK,M.DISEASED,t-72):77===t?new j(e.Produce.OAK,M.DISEASED,4):t>=78&&t<=79?new j(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=84?new j(e.Produce.WILLOW,M.DISEASED,t-79):86===t?new j(e.Produce.WILLOW,M.DISEASED,6):t>=87&&t<=88?new j(e.Produce.WEEDS,M.GROWING,3):t>=89&&t<=95?new j(e.Produce.MAPLE,M.DISEASED,t-88):97===t?new j(e.Produce.MAPLE,M.DISEASED,8):t>=98&&t<=99?new j(e.Produce.WEEDS,M.GROWING,3):t>=100&&t<=108?new j(e.Produce.YEW,M.DISEASED,t-99):110===t?new j(e.Produce.YEW,M.DISEASED,10):t>=111&&t<=112?new j(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=123?new j(e.Produce.MAGIC,M.DISEASED,t-112):125===t?new j(e.Produce.MAGIC,M.DISEASED,12):t>=126&&t<=136?new j(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new j(e.Produce.OAK,M.DEAD,t-136):141===t?new j(e.Produce.OAK,M.DEAD,4):t>=142&&t<=143?new j(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=148?new j(e.Produce.WILLOW,M.DEAD,t-143):150===t?new j(e.Produce.WILLOW,M.DEAD,6):t>=151&&t<=152?new j(e.Produce.WEEDS,M.GROWING,3):t>=153&&t<=159?new j(e.Produce.MAPLE,M.DEAD,t-152):161===t?new j(e.Produce.MAPLE,M.DEAD,8):t>=162&&t<=163?new j(e.Produce.WEEDS,M.GROWING,3):t>=164&&t<=172?new j(e.Produce.YEW,M.DEAD,t-163):174===t?new j(e.Produce.YEW,M.DEAD,10):t>=175&&t<=176?new j(e.Produce.WEEDS,M.GROWING,3):t>=177&&t<=187?new j(e.Produce.MAGIC,M.DEAD,t-176):189===t?new j(e.Produce.MAGIC,M.DEAD,12):t>=190&&t<=191?new j(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=197?new j(e.Produce.WILLOW,M.HARVESTABLE,0):t>=198&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$10_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new j(e.Produce.TEAK,M.GROWING,t-8):15===t?new j(e.Produce.TEAK,M.GROWING,e.Produce._$wrappers[e.Produce.TEAK].getStages()-1):16===t||17===t?new j(e.Produce.TEAK,M.HARVESTABLE,0):t>=18&&t<=23?new j(e.Produce.TEAK,M.DISEASED,t-17):t>=24&&t<=29?new j(e.Produce.TEAK,M.DEAD,t-23):t>=30&&t<=37?new j(e.Produce.MAHOGANY,M.GROWING,t-30):38===t?new j(e.Produce.MAHOGANY,M.GROWING,e.Produce._$wrappers[e.Produce.MAHOGANY].getStages()-1):39===t||40===t?new j(e.Produce.MAHOGANY,M.HARVESTABLE,0):t>=41&&t<=47?new j(e.Produce.MAHOGANY,M.DISEASED,t-40):t>=48&&t<=54?new j(e.Produce.MAHOGANY,M.DEAD,t-47):t>=55&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$11_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=17?new j(e.Produce.REDWOOD,M.GROWING,t-8):18===t?new j(e.Produce.REDWOOD,M.HARVESTABLE,0):t>=19&&t<=27?new j(e.Produce.REDWOOD,M.DISEASED,t-18):t>=28&&t<=36?new j(e.Produce.REDWOOD,M.DEAD,t-27):37===t?new j(e.Produce.REDWOOD,M.GROWING,e.Produce._$wrappers[e.Produce.REDWOOD].getStages()-1):t>=41&&t<=55?new j(e.Produce.REDWOOD,M.HARVESTABLE,0):null}};e.PatchImplementation$12_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=19?new j(e.Produce.SPIRIT_TREE,M.GROWING,t-8):20===t?new j(e.Produce.SPIRIT_TREE,M.GROWING,12):t>=21&&t<=31?new j(e.Produce.SPIRIT_TREE,M.DISEASED,t-20):t>=32&&t<=43?new j(e.Produce.SPIRIT_TREE,M.DEAD,t-31):44===t?new j(e.Produce.SPIRIT_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.SPIRIT_TREE].getStages()-1):t>=45&&t<=63?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$13_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=16?new j(e.Produce.ATTAS,M.GROWING,t-8):t>=17&&t<=25?new j(e.Produce.IASOR,M.GROWING,t-17):t>=26&&t<=34?new j(e.Produce.KRONOS,M.GROWING,t-26):t>=35&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$14_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new j(e.Produce.CACTUS,M.GROWING,t-8):t>=15&&t<=18?new j(e.Produce.CACTUS,M.HARVESTABLE,t-15):t>=19&&t<=24?new j(e.Produce.CACTUS,M.DISEASED,t-18):t>=25&&t<=30?new j(e.Produce.CACTUS,M.DEAD,t-24):31===t?new j(e.Produce.CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.CACTUS].getStages()-1):t>=32&&t<=38?new j(e.Produce.POTATO_CACTUS,M.GROWING,t-32):t>=39&&t<=45?new j(e.Produce.POTATO_CACTUS,M.HARVESTABLE,t-39):t>=46&&t<=51?new j(e.Produce.POTATO_CACTUS,M.DISEASED,t-45):t>=52&&t<=57?new j(e.Produce.POTATO_CACTUS,M.DEAD,t-51):58===t?new j(e.Produce.POTATO_CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.POTATO_CACTUS].getStages()-1):t>=59&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$15_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.SEAWEED,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.SEAWEED,M.HARVESTABLE,t-8):t>=11&&t<=13?new j(e.Produce.SEAWEED,M.DISEASED,t-10):t>=14&&t<=16?new j(e.Produce.SEAWEED,M.DEAD,t-13):t>=17&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$16_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=11?new j(e.Produce.CALQUAT,M.GROWING,t-4):t>=12&&t<=18?new j(e.Produce.CALQUAT,M.HARVESTABLE,t-12):t>=19&&t<=25?new j(e.Produce.CALQUAT,M.DISEASED,t-18):t>=26&&t<=33?new j(e.Produce.CALQUAT,M.DEAD,t-25):34===t?new j(e.Produce.CALQUAT,M.GROWING,e.Produce._$wrappers[e.Produce.CALQUAT].getStages()-1):t>=35&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$17_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=12?new j(e.Produce.CELASTRUS,M.GROWING,t-8):13===t?new j(e.Produce.CELASTRUS,M.GROWING,e.Produce._$wrappers[e.Produce.CELASTRUS].getStages()-1):t>=14&&t<=16?new j(e.Produce.CELASTRUS,M.HARVESTABLE,t-14):17===t?new j(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=18&&t<=22?new j(e.Produce.CELASTRUS,M.DISEASED,t-17):t>=23&&t<=27?new j(e.Produce.CELASTRUS,M.DEAD,t-22):28===t?new j(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=29&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$18_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=1?new j(e.Produce.WEEDS,M.GROWING,3):t>=2&&t<=9?new j(e.Produce.GRAPE,M.GROWING,t-2):10===t?new j(e.Produce.GRAPE,M.GROWING,7):t>=11&&t<=15?new j(e.Produce.GRAPE,M.HARVESTABLE,t-11):null}};e.PatchImplementation$19_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=8&&t<=13?new j(e.Produce.CRYSTAL_TREE,M.GROWING,t-8):14===t?new j(e.Produce.CRYSTAL_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.CRYSTAL_TREE].getStages()-1):15===t?new j(e.Produce.CRYSTAL_TREE,M.HARVESTABLE,0):null}};e.PatchImplementation$20_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return 0===t?new j(e.Produce.EMPTY_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new j(e.Produce.COMPOST,M.FILLING,t-1):t>=16&&t<=30?new j(e.Produce.COMPOST,M.HARVESTABLE,t-16):31===t||32===t?new j(e.Produce.COMPOST,M.GROWING,t-31):t>=33&&t<=47?new j(e.Produce.SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new j(e.Produce.SUPERCOMPOST,M.HARVESTABLE,t-48):94===t?new j(e.Produce.COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.COMPOST].getStages()-1):95===t||96===t?new j(e.Produce.SUPERCOMPOST,M.GROWING,t-95):126===t?new j(e.Produce.SUPERCOMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.SUPERCOMPOST].getStages()-1):t>=129&&t<=143?new j(e.Produce.ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new j(e.Produce.ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new j(e.Produce.ROTTEN_TOMATO,M.GROWING,t-159):t>=176&&t<=190?new j(e.Produce.ULTRACOMPOST,M.HARVESTABLE,t-176):null}};e.PatchImplementation$21_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return 0===t?new j(e.Produce.EMPTY_GIANT_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new j(e.Produce.GIANT_COMPOST,M.FILLING,t-1):t>=16&&t<=30?new j(e.Produce.GIANT_COMPOST,M.HARVESTABLE,t-16):t>=33&&t<=47?new j(e.Produce.GIANT_SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new j(e.Produce.GIANT_SUPERCOMPOST,M.HARVESTABLE,t-48):t>=63&&t<=77?new j(e.Produce.GIANT_COMPOST,M.FILLING,15+t-63):t>=78&&t<=92?new j(e.Produce.GIANT_COMPOST,M.HARVESTABLE,15+t-78):93===t?new j(e.Produce.GIANT_COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.GIANT_COMPOST].getStages()-1):t>=97&&t<=99?new j(e.Produce.GIANT_SUPERCOMPOST,M.GROWING,t-97):t>=100&&t<=114?new j(e.Produce.GIANT_SUPERCOMPOST,M.HARVESTABLE,15+t-100):t>=127&&t<=128?new j(e.Produce.GIANT_COMPOST,M.GROWING,t-127):t>=129&&t<=143?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.GROWING,t-159):t>=161&&t<=175?new j(e.Produce.GIANT_SUPERCOMPOST,M.FILLING,15+t-161):t>=176&&t<=205?new j(e.Produce.GIANT_ULTRACOMPOST,M.HARVESTABLE,t-176):t>=207&&t<=221?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.HARVESTABLE,15+t-207):222===t?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.GROWING,e.Produce._$wrappers[e.Produce.GIANT_ROTTEN_TOMATO].getStages()-1):t>=223&&t<=237?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.FILLING,15+t-223):null}}}(f||(f={})),f._$wrappers={0:new f.PatchImplementation$0_$WRAPPER(0,"BELLADONNA",b.SPECIAL,""),1:new f.PatchImplementation$1_$WRAPPER(1,"MUSHROOM",b.SPECIAL,""),2:new f.PatchImplementation$2_$WRAPPER(2,"HESPORI",b.SPECIAL,""),3:new f.PatchImplementation$3_$WRAPPER(3,"ALLOTMENT",b.ALLOTMENT,""),4:new f.PatchImplementation$4_$WRAPPER(4,"HERB",b.HERB,""),5:new f.PatchImplementation$5_$WRAPPER(5,"FLOWER",b.FLOWER,""),6:new f.PatchImplementation$6_$WRAPPER(6,"BUSH",b.BUSH,""),7:new f.PatchImplementation$7_$WRAPPER(7,"FRUIT_TREE",b.FRUIT_TREE,""),8:new f.PatchImplementation$8_$WRAPPER(8,"HOPS",b.HOPS,""),9:new f.PatchImplementation$9_$WRAPPER(9,"TREE",b.TREE,""),10:new f.PatchImplementation$10_$WRAPPER(10,"HARDWOOD_TREE",b.TREE,"Hardwood Trees"),11:new f.PatchImplementation$11_$WRAPPER(11,"REDWOOD",b.TREE,"Redwood Trees"),12:new f.PatchImplementation$12_$WRAPPER(12,"SPIRIT_TREE",b.TREE,"Spirit Trees"),13:new f.PatchImplementation$13_$WRAPPER(13,"ANIMA",b.SPECIAL,""),14:new f.PatchImplementation$14_$WRAPPER(14,"CACTUS",b.SPECIAL,"Cactus"),15:new f.PatchImplementation$15_$WRAPPER(15,"SEAWEED",b.SPECIAL,"Seaweed"),16:new f.PatchImplementation$16_$WRAPPER(16,"CALQUAT",b.FRUIT_TREE,"Calquat"),17:new f.PatchImplementation$17_$WRAPPER(17,"CELASTRUS",b.FRUIT_TREE,"Celastrus"),18:new f.PatchImplementation$18_$WRAPPER(18,"GRAPES",b.GRAPE,""),19:new f.PatchImplementation$19_$WRAPPER(19,"CRYSTAL_TREE",b.FRUIT_TREE,"Crystal Tree"),20:new f.PatchImplementation$20_$WRAPPER(20,"COMPOST",b.SPECIAL,"Compost Bin"),21:new f.PatchImplementation$21_$WRAPPER(21,"GIANT_COMPOST",b.SPECIAL,"Giant Compost Bin")},function(e){e[e.FARMING_4771=0]="FARMING_4771",e[e.FARMING_4772=1]="FARMING_4772",e[e.FARMING_4773=2]="FARMING_4773",e[e.FARMING_4774=3]="FARMING_4774",e[e.FARMING_4775=4]="FARMING_4775",e[e.FARMING_7904=5]="FARMING_7904",e[e.FARMING_7905=6]="FARMING_7905",e[e.FARMING_7906=7]="FARMING_7906",e[e.FARMING_7907=8]="FARMING_7907",e[e.FARMING_7908=9]="FARMING_7908",e[e.FARMING_7909=10]="FARMING_7909",e[e.FARMING_7910=11]="FARMING_7910",e[e.FARMING_7911=12]="FARMING_7911",e[e.FARMING_7912=13]="FARMING_7912",e[e.GRAPES_4953=14]="GRAPES_4953",e[e.GRAPES_4954=15]="GRAPES_4954",e[e.GRAPES_4955=16]="GRAPES_4955",e[e.GRAPES_4956=17]="GRAPES_4956",e[e.GRAPES_4957=18]="GRAPES_4957",e[e.GRAPES_4958=19]="GRAPES_4958",e[e.GRAPES_4959=20]="GRAPES_4959",e[e.GRAPES_4960=21]="GRAPES_4960",e[e.GRAPES_4961=22]="GRAPES_4961",e[e.GRAPES_4962=23]="GRAPES_4962",e[e.GRAPES_4963=24]="GRAPES_4963",e[e.GRAPES_4964=25]="GRAPES_4964",e[e.AUTOWEED=26]="AUTOWEED"}(B||(B={}));class ${constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.id&&(this.id=0),this.id=n}getId(){return this.id}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}B.__class="timetracking.Varbits",B.__interfaces=["java.lang.Comparable","java.io.Serializable"],B._$wrappers={0:new $(0,"FARMING_4771",4771),1:new $(1,"FARMING_4772",4772),2:new $(2,"FARMING_4773",4773),3:new $(3,"FARMING_4774",4774),4:new $(4,"FARMING_4775",4775),5:new $(5,"FARMING_7904",7904),6:new $(6,"FARMING_7905",7905),7:new $(7,"FARMING_7906",7906),8:new $(8,"FARMING_7907",7907),9:new $(9,"FARMING_7908",7908),10:new $(10,"FARMING_7909",7909),11:new $(11,"FARMING_7910",7910),12:new $(12,"FARMING_7911",7911),13:new $(13,"FARMING_7912",7912),14:new $(14,"GRAPES_4953",4953),15:new $(15,"GRAPES_4954",4954),16:new $(16,"GRAPES_4955",4955),17:new $(17,"GRAPES_4956",4956),18:new $(18,"GRAPES_4957",4957),19:new $(19,"GRAPES_4958",4958),20:new $(20,"GRAPES_4959",4959),21:new $(21,"GRAPES_4960",4960),22:new $(22,"GRAPES_4961",4961),23:new $(23,"GRAPES_4962",4962),24:new $(24,"GRAPES_4963",4963),25:new $(25,"GRAPES_4964",4964),26:new $(26,"AUTOWEED",5557)};class Y{constructor(e,t,n){void 0===this.region&&(this.region=null),void 0===this.name&&(this.name=null),void 0===this.varbit&&(this.varbit=null),void 0===this.implementation&&(this.implementation=null),this.name=e,this.varbit=t,this.implementation=n}getName(){return this.name}getVarbit(){return this.varbit}getImplementation(){return this.implementation}getRegion(){return this.region}setRegion(e){this.region=e}}Y.__class="timetracking.FarmingPatch";class k{constructor(e,t){void 0===this.name&&(this.name=null),void 0===this.regionID&&(this.regionID=0),void 0===this.patches&&(this.patches=null),void 0===this.varbits&&(this.varbits=null),this.name=e,this.regionID=t;for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a{let t=[];for(;e-- >0;)t.push(null);return t})(r.length);for(let o=0;o"function"===typeof e?e(K.CONFIG_GROUP,K.BOTANIST):e.apply(K.CONFIG_GROUP,K.BOTANIST))(t),s=e.getRegion().getRegionID()+"."+B._$wrappers[e.getVarbit()].getId(),E=(e=>"function"===typeof e?e(K.CONFIG_GROUP,s):e.apply(K.CONFIG_GROUP,s))(t);if(null==E)return null;let i=0,A=0;{const e=E.split(":");if(2===e.length)try{A=parseInt(e[0]),i=parseInt(e[1])}catch(S){}}if(i<=0)return null;const R=f._$wrappers[e.getImplementation()].forVarbitValue(A);if(null==R)return null;let l=R.getStage(),u=R.getStages(),O=R.getTickRate();a&&R.getProduce()===f.Produce.WEEDS&&(l=0,u=1,O=0),c&&(O=(e=>e<0?Math.ceil(e):Math.floor(e))(O/5));let d=0;if(O>0){const e=z.getTickTime(O,0,n,"function"==typeof(P=t)?P:(e,t)=>(P.apply?P.apply:P).call(P,e,t)),r=z.getTickTime(O,0,i,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),a=(e-r|0)/(60*O)|0;d=z.getTickTime(O,u-1-l,r,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),l+=a,l>=u&&(l=u-1)}var P;return new J(R.getProduce(),R.getCropState(),d,l,u)}static getTickTime(e,t,n,r){const a="function"===typeof(o=r)?o(K.CONFIG_GROUP,K.FARM_TICK_OFFSET_PRECISION):o.apply(K.CONFIG_GROUP,K.FARM_TICK_OFFSET_PRECISION);var o;const c=(e=>"function"===typeof e?e(K.CONFIG_GROUP,K.FARM_TICK_OFFSET):e.apply(K.CONFIG_GROUP,K.FARM_TICK_OFFSET))(r),s=null!=a&&0!==a.length?parseInt(a):null,E=null!=c&&0!==c.length?parseInt(c):null;let i=0;null!=s&&null!=E&&(s>=e||s>=40)&&(i=E%e*60);const A=n+i;return A-A%(60*e)+t*e*60-i}}z.__class="timetracking.FarmingTracker";var q,Q,X,Z,ee=n(2);!function(e){e[e.NORMAL=0]="NORMAL",e[e.OAK=1]="OAK",e[e.WILLOW=2]="WILLOW",e[e.TEAK=3]="TEAK",e[e.MAPLE=4]="MAPLE",e[e.MAHOGANY=5]="MAHOGANY",e[e.YEW=6]="YEW",e[e.MAGIC=7]="MAGIC",e[e.REDWOOD=8]="REDWOOD"}(q||(q={}));class te{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.itemID&&(this.itemID=0),this.__name=n,this.itemID=r}getName(){return this.__name}getItemID(){return this.itemID}static fromVarpValue(e){const t=(e-1)/3|0;return e<=0||t>=function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}().length?null:function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}()[t]}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}q.__class="timetracking.BirdHouse",q.__interfaces=["java.lang.Comparable","java.io.Serializable"],q._$wrappers={0:new te(0,"NORMAL","Bird House",v.BIRD_HOUSE),1:new te(1,"OAK","Oak Bird House",v.OAK_BIRD_HOUSE),2:new te(2,"WILLOW","Willow Bird House",v.WILLOW_BIRD_HOUSE),3:new te(3,"TEAK","Teak Bird House",v.TEAK_BIRD_HOUSE),4:new te(4,"MAPLE","Maple Bird House",v.MAPLE_BIRD_HOUSE),5:new te(5,"MAHOGANY","Mahogany Bird House",v.MAHOGANY_BIRD_HOUSE),6:new te(6,"YEW","Yew Bird House",v.YEW_BIRD_HOUSE),7:new te(7,"MAGIC","Magic Bird House",v.MAGIC_BIRD_HOUSE),8:new te(8,"REDWOOD","Redwood Bird House",v.REDWOOD_BIRD_HOUSE)},function(e){e[e.SEEDED=0]="SEEDED",e[e.BUILT=1]="BUILT",e[e.EMPTY=2]="EMPTY",e[e.UNKNOWN=3]="UNKNOWN"}(Q||(Q={}));class ne{constructor(e,t){this._$ordinal=e,this._$name=t}static fromVarpValue(e){return e<0||e>3*function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}().length?Q.UNKNOWN:0===e?Q.EMPTY:e%3===0?Q.SEEDED:Q.BUILT}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}Q.__class="timetracking.BirdHouseState",Q.__interfaces=["java.lang.Comparable","java.io.Serializable"],Q._$wrappers={0:new ne(0,"SEEDED"),1:new ne(1,"BUILT"),2:new ne(2,"EMPTY"),3:new ne(3,"UNKNOWN")},function(e){e[e.BIRD_HOUSE_MEADOW_NORTH=0]="BIRD_HOUSE_MEADOW_NORTH",e[e.BIRD_HOUSE_MEADOW_SOUTH=1]="BIRD_HOUSE_MEADOW_SOUTH",e[e.BIRD_HOUSE_VALLEY_NORTH=2]="BIRD_HOUSE_VALLEY_NORTH",e[e.BIRD_HOUSE_VALLEY_SOUTH=3]="BIRD_HOUSE_VALLEY_SOUTH"}(X||(X={}));class re{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.id&&(this.id=0),this.id=n}getId(){return this.id}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}X.__class="timetracking.VarPlayer",X.__interfaces=["java.lang.Comparable","java.io.Serializable"],X._$wrappers={0:new re(0,"BIRD_HOUSE_MEADOW_NORTH",1626),1:new re(1,"BIRD_HOUSE_MEADOW_SOUTH",1627),2:new re(2,"BIRD_HOUSE_VALLEY_NORTH",1628),3:new re(3,"BIRD_HOUSE_VALLEY_SOUTH",1629)};class ae{constructor(e,t,n){void 0===this.space&&(this.space=null),void 0===this.varp&&(this.varp=0),void 0===this.timestamp&&(this.timestamp=0),this.space=e,this.varp=t,this.timestamp=n}getSpace(){return this.space}getVarp(){return this.varp}getTimestamp(){return this.timestamp}}ae.__class="timetracking.BirdHouseData",function(e){e[e.MEADOW_NORTH=0]="MEADOW_NORTH",e[e.MEADOW_SOUTH=1]="MEADOW_SOUTH",e[e.VALLEY_NORTH=2]="VALLEY_NORTH",e[e.VALLEY_SOUTH=3]="VALLEY_SOUTH"}(Z||(Z={}));class oe{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.varp&&(this.varp=null),this.__name=n,this.varp=r}getName(){return this.__name}getVarp(){return this.varp}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}Z.__class="timetracking.BirdHouseSpace",Z.__interfaces=["java.lang.Comparable","java.io.Serializable"],Z._$wrappers={0:new oe(0,"MEADOW_NORTH","Mushroom Meadow (North)",X.BIRD_HOUSE_MEADOW_NORTH),1:new oe(1,"MEADOW_SOUTH","Mushroom Meadow (South)",X.BIRD_HOUSE_MEADOW_SOUTH),2:new oe(2,"VALLEY_NORTH","Verdant Valley (Northeast)",X.BIRD_HOUSE_VALLEY_NORTH),3:new oe(3,"VALLEY_SOUTH","Verdant Valley (Southwest)",X.BIRD_HOUSE_VALLEY_SOUTH)};class ce{loadFromConfig(e){const t=new Map;for(let a=0;a("0"+Math.min(255,Math.max(0,parseInt(e,16)+t)).toString(16)).substr(-2))}function Ee(e){switch(e){case Q.EMPTY:case Q.UNKNOWN:return"#4D4D4D";case Q.BUILT:return"#E6961E";case Q.SEEDED:default:return"#26A831"}}function ie(e){switch(e){case M.DEAD:return"#b81818";case M.DISEASED:case M.FILLING:return"#E6961E";case M.EMPTY:return"#FF4D4D4D";case M.HARVESTABLE:case M.GROWING:default:return"#26A831"}}function Ae(e){let t="in ";const n=Math.floor((e+59)/60),r=Math.floor(n%60),a=Math.floor(n/60%24),o=Math.floor(n/1440);return o>0&&(t+=o+"d "),a>0&&(t+=a+"h "),r>0&&(t+=r+"m "),t}function Re(){return{title:"",subtitle:"",icon:0,estimateText:"",tooltipText:"",progress:{minimumValue:0,maximumValue:1,value:0,visible:!0,background:se("#26A831",-60),foreground:"#26A831"}}}function le(e,t){function n(n,r){if(!e)return null;let a=t[n+".rsprofile."+e.accountId+"."+r];return a||(a=null),a}const r=[];return function(e,t){const n=new z,r=(new x).getTabs();for(const[a,o]of r.entries()){const r=b._$wrappers[a];o.sort((e,t)=>e.getName().localeCompare(t.getName())),o.sort((e,t)=>e.getRegion().getName().localeCompare(t.getRegion().getName()));const c={name:r.getName(),icon:r.getItemID(),panels:[]},s=(new Date).getTime()/1e3;for(let e of o){const r=Re();r.icon=v.WEEDS,r.title=e.getRegion().getName()+(null==e.getName()||""===e.getName()?"":" ("+e.getName()+")");const a=f._$wrappers[e.getImplementation()];r.subtitle=null!=a.getName()&&""!==a.getName()?a.getName():"";const o=n.predictPatch(e,t);if(null==o){r.tooltipText="Unknown state",r.estimateText="Unknown",r.progress.visible=!1,c.panels.push(r);continue}const E=f.Produce._$wrappers[o.getProduce()];switch(E.getItemID()<0?(r.icon=v.WEEDS,r.tooltipText="Unknown state"):(r.icon=E.getItemID(),r.tooltipText=E.getName()),o.getCropState()){case M.HARVESTABLE:r.estimateText="Done";break;case M.GROWING:o.getDoneEstimate()e.title.localeCompare(t.title)),c.panels.sort((e,t)=>e.subtitle.localeCompare(t.subtitle)),e.push(c)}}(r,n),function(e,t){const n=(new ce).loadFromConfig(t),r=(new Date).getTime()/1e3,a=b._$wrappers[b.BIRD_HOUSE],o={name:a.getName(),icon:a.getItemID(),panels:[]};for(const[c,s]of n.entries()){const e=Z._$wrappers[c];let t=-1,n=0;null!=s&&(t=s.getVarp(),n=s.getTimestamp());const a=q._$wrappers[te.fromVarpValue(t)],E=ne.fromVarpValue(t),i=Re();switch(i.title=e.getName(),i.progress.maximumValue=3e3,null==a?(i.icon=v.FEATHER,i.progress.visible=!1):(i.icon=a.getItemID(),i.tooltipText=a.getName(),i.progress.visible=!0),i.progress.foreground=Ee(E),i.progress.background=se(Ee(E),-60),E){case Q.EMPTY:i.tooltipText="Empty",i.estimateText="Empty";break;case Q.BUILT:i.progress.value=0,i.estimateText="Built";break;case Q.SEEDED:const e=n+3e3-r;e<=0?(i.progress.value=3e3,i.estimateText="Done"):(i.progress.value=3e3-e,i.estimateText="Done "+Ae(e));break;default:i.tooltipText="Unknown state",i.estimateText="Unknown"}o.panels.push(i)}e.push(o)}(r,n),r.sort((e,t)=>e.name.localeCompare(t.name)),r}ce.__class="timetracking.BirdHouseTracker";const ue=Object(ee.a)(u.f,u.o,(e,t)=>le(t,e));n(444);const Oe=e=>Object(r.g)("li",{class:"list-group-item w-100"},Object(r.g)("div",{class:"d-flex align-self-stretch tooltip-tag"},Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.tooltipText)),Object(r.g)("div",{class:"m-2"},Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)})),Object(r.g)("div",{class:"w-100"},Object(r.g)("h5",{class:"card-title"},e.title+" ",e.subtitle&&Object(r.g)("small",{class:"text-muted"},e.subtitle)),Object(r.g)("h6",{class:"card-subtitle mb-2 text-muted"},e.estimateText),(e=>{let{minimumValue:t,maximumValue:n,value:a,visible:o,foreground:c,background:s}=e;if(!o)return Object(r.g)("noscript",null);const E=(a-t)/(n-t),i=100*Math.min(1,E);return Object(r.g)("div",{class:"progress w-100",style:{backgroundColor:s}},Object(r.g)("div",{class:"progress-bar",role:"progressbar",style:{width:i+"%",backgroundColor:c}}))})(e.progress)))),de=e=>Object(r.g)("div",{class:"card mb-3",id:e.name},Object(r.g)("div",{class:"card-header"},Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)}),Object(r.g)("a",{href:"#"+e.name},e.name)),Object(r.g)("ul",{class:"list-group w-100"},e.panels.map(Oe))),Pe=e=>Object(r.g)("div",{class:"card tooltip-tag"},Object(r.g)("a",{href:"#"+e.name},Object(r.g)("img",{alt:"",class:"card-img-top",src:Object(O.c)(e.icon)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)));var Se=Object(a.b)((e,t)=>({...t,timeTracking:ue(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{timeTracking:t}=e;return Object(r.g)(r.b,null,Object(r.g)("div",{class:"row pl-2 pb-1 tracking-container"},t.map(Pe)),t.map(de))}));const Ie=e=>"STANDARD"!==e?" for "+Object(O.h)(e):"";var Te=Object(a.b)((e,t)=>({...t,selectedAccount:Object(u.o)(e),profileConfig:Object(u.n)(e)}),e=>Object(c.b)({updateConfig:u.w,fetchBootstrap:P.b,fetchConfig:u.c,changeAccount:u.a},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{selectedAccount:t,profileConfig:n,updateConfig:a,changeAccount:c}=e;return t?Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-header"},"Do you really want to delete RuneScape profile"," ",Object(r.g)("b",null,t.displayName),Ie(t.type),"?",Object(r.g)("br",null),Object(r.g)("span",{class:"text-muted"},"You can select different profile from the list on left.")),Object(r.g)("div",{class:"card-body"},Object(r.g)("p",null,"This will delete the RuneScape profile"," ",Object(r.g)("b",null,t.displayName),Ie(t.type)," which also includes data for:"),Object(r.g)("ul",null,(e=>Object.keys(e).map(e=>e.split(".")[0]).filter((e,t,n)=>n.indexOf(e)===t).filter(e=>"rsprofile"!==e).map(e=>Object(r.g)("li",null,Object(r.g)("small",null,e))))(n))),Object(r.g)("div",{class:"card-footer"},Object(r.g)("p",{class:"text-center"},Object(r.g)("b",null,"Warning:")," This action is irreversible!"),Object(r.g)("button",{class:"btn btn-block btn-danger",onClick:()=>(async(e,t,n)=>{const r={...e};Object.keys(r).forEach(e=>r[e]=null),n(null),await t(r),Object(o.c)("/account/home")})(n,a,c)},"Delete RuneScape profile ",Object(r.g)("b",null,t.displayName),Ie(t.type)))):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-body"},"No RuneScape profile selected"))})),we=n(292),Ne=n(293);const Ge=e=>e.name+" ("+e.region+")";var _e=Object(a.b)((e,t)=>({...t,tiles:Object(u.r)(e),filter:Object(u.s)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,setTileMarkersFilter:u.v},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n,fetchItems:r}=e;await t(),await n()})(e=>{let{tiles:t,filter:n,setTileMarkersFilter:a}=e;if(0===t.length)return null;const o=t.map(Ge);n=n||o[0];const c=t.flatMap(e=>e.data),s=t.find(e=>Ge(e)===n).data,E=JSON.stringify(s);return Object(r.g)(r.b,null,Object(r.g)("div",{class:"mb-2"},Object(r.g)(we.a,{prefix:"",value:n,choices:o,onClick:a})),Object(r.g)(Ne.a,{tiles:c,selected:s}),Object(r.g)("pre",{class:"pre-select"},E,Object(r.g)("div",{class:"text-right"},Object(r.g)("a",{href:"/tile/show/#"+btoa(E),class:"user-select-none"},"Share"))))})),ge=n(129),De=n.n(ge);n(445);const me=e=>"https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id="+e,pe=e=>{return Object(r.g)("a",{href:(t=e.itemId,"http://services.runescape.com/m=itemdb_oldschool/viewitem?obj="+t),class:"list-group-item list-group-item-action flex-column align-items-start"},Object(r.g)("div",{class:"d-flex w-100"},Object(r.g)("img",{alt:e.name,class:"ge-item-img img-fluid",style:{height:60,width:60},src:me(e.itemId)}),Object(r.g)("div",{class:"ge-record-info"},Object(r.g)("h5",null,e.name," x ",e.quantity),Object(r.g)("p",{class:"mb-0"},Object(r.g)("img",{src:`/img/ge_${e.buy?"bought":"sold"}.png`,alt:""}),Object(r.g)("span",null,e.buy?"Bought":"Sold")," for"," ",Object(r.g)("span",null,Object(O.f)(e.price*e.quantity))," gp (",Object(r.g)("span",null,Object(O.f)(e.price))," gp/ea)")),Object(r.g)("div",{class:"ge-record-timestamp ml-auto"},Object(r.g)("small",{title:e.date,class:"d-block"},De()(e.date)))));var t};const he=[{tag:"home",label:"Home",icon:"fa-fw fas fa-home",component:I,showAccounts:!0,data:e=>{let{slayerTask:t,bossLog:n}=e;return{slayerTask:t,bossLog:n}}},{tag:"grand-exchange",label:"Grand Exchange",icon:"fa-fw fas fa-balance-scale",component:Object(a.b)((e,t)=>({...t,ge:Object(u.h)(e),geFilter:Object(u.k)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchItems:N.b,fetchConfig:u.c,setGeFilter:u.t},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchItems:n,fetchConfig:r}=e;await t(),await n(),await r()})(e=>{let{ge:t,geFilter:n,setGeFilter:a}=e;return Object(r.g)(r.b,null,Object(r.g)(T.a,{value:n,onInput:e=>((e,t)=>t(e.target.value))(e,a)}),Object(r.g)("ul",{class:"ge-records list-group list-group-small"},t.sort((e,t)=>t.date-e.date).map(pe)))})),showAccounts:!0,data:e=>{let{rawGe:t}=e;return t.map(e=>({buy:e.buy,itemId:e.itemId,quantity:e.quantity,price:e.price,time:e.time}))}},{tag:"loot-tracker",label:"Loot Tracker",icon:"fa-fw fas fa-file-invoice-dollar",component:h,showAccounts:!0,data:e=>{let{rawLoot:t}=e;return t}},{tag:"time-tracking",label:"Time Tracking",icon:"fa-fw fas fa-clock",component:Se,showAccounts:!0,data:e=>{let{rawTimeTracking:t}=e;return t}},{tag:"tags",label:"Tags",icon:"fa-fw fas fa-code",component:U,data:e=>{let{rawTags:t}=e;return t}},{tag:"tile-markers",label:"Tile markers",icon:"fa-fw fas fa-tree",component:_e,data:e=>{let{rawTiles:t}=e;return t}},{tag:"delete",label:"Delete profile",icon:"fa-fw fas fa-trash",class:"list-group-item-danger",bottom:!0,component:Te,showAccounts:!0}],We=(e,t)=>Object(r.g)(o.a,{class:"list-group-item list-group-item-action"+(t.class?" "+t.class:"")+(e.tag===t.tag?" active":""),key:t.tag,href:"/account/"+t.tag},Object(r.g)("i",{class:t.icon})," ",t.label),Le=(e,t,n)=>{return Object(r.g)("button",{class:"list-group-item list-group-item-action"+(t&&t.accountId===e.accountId?" active":""),onClick:()=>n(e)},Object(r.g)("i",{class:"fas fa-fw fa-user"})," ",e.displayName," ",(a=e.type)&&"STANDARD"!==a?Object(r.g)("span",{class:"badge badge-info"},Object(O.h)(a)):"");var a};t.default=Object(a.b)((e,t)=>({...t,loggedIn:Object(R.b)(e),accounts:Object(u.d)(e),selectedAccount:Object(u.o)(e),slayerTask:Object(u.p)(e),bossLog:Object(u.e)(e),rawGe:Object(u.j)(e),rawLoot:Object(u.l)(e),rawTags:Object(u.q)(e),rawTimeTracking:ue(e),rawTiles:Object(u.r)(e)}),e=>Object(c.b)({logout:R.d,changeAccount:u.a},e))(e=>{let{tag:t,accounts:n,changeAccount:a,loggedIn:o,logout:c,...E}=e;if(!o)return Object(r.g)(l,{to:"/"});const R=he.find(e=>e.tag===t),u=he.filter(e=>!e.bottom),O=he.filter(e=>e.bottom);if(!R)return Object(r.g)(W.a,null);const d=(e=>e.component)(R);return Object(r.g)(s.a,null,Object(r.g)(A.a,{title:`${R.label} - Account - ${i.a.title}`}),Object(r.g)("section",{id:"account",class:"dark-card"},Object(r.g)("div",{class:"content-section account-container"},Object(r.g)("div",{class:"row"},Object(r.g)("div",{class:"col-xl-3 col-md-4 col-sm-12 col-xs-12"},Object(r.g)("ul",{class:"list-group list-group-small mb-4"},u.map(e=>We(R,e))),Object(r.g)("ul",{class:"list-group list-group-small mb-4"},((e,t)=>{if(!e.data)return null;const n=(0,e.data)(t),a=URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/octet-stream"}));return Object(r.g)("a",{id:"account-export",class:"list-group-item list-group-item-primary",download:e.tag+".json",href:a},Object(r.g)("i",{class:"fas fa-fw fa-download"})," Export ",e.label)})(R,E),Object(r.g)("button",{class:"list-group-item list-group-item-action",onClick:c},Object(r.g)("i",{class:"fas fa-fw fa-power-off"})," Logout")),R.showAccounts&&Object(r.g)(r.b,null,Object(r.g)("p",{className:"list-title"},"RuneScape Profile"),Object(r.g)("ul",{class:"list-group list-group-small mb-4"},n.filter(e=>null!==e.displayName).map(e=>Le(e,E.selectedAccount,a)),O.map(e=>We(R,e))))),Object(r.g)("div",{class:"col-xl-9 col-md-8 col-sm-12 col-xs-12"},Object(r.g)(d,E))))))})}}]);
-//# sourceMappingURL=8.00f46989.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[8],{126:function(e,t,n){"use strict";var r=n(0);var a=()=>Object(r.g)("section",{id:"footer"},Object(r.g)("div",{class:"content-section"},Object(r.g)("footer",null,Object(r.g)("hr",null),"Developed with ",Object(r.g)("i",{class:"fas fa-heart"})," and"," ",Object(r.g)("i",{class:"fas fa-coffee"})," using"," ",Object(r.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(r.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(r.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(r.g)("a",{href:"/atom.xml",class:"float-right"},Object(r.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));t.a=e=>{let{children:t,fullWidth:n,...o}=e;return o.class=o.class?"container "+o.class:"container",o.style={...o.style||{},maxWidth:n?"100%":""},Object(r.g)("div",Object.assign({},o,{id:"layout"}),t,Object(r.g)(a,null))}},127:function(e,t,n){"use strict";var r=n(0);var a=()=>Object(r.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(r.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(r.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(r.g)("div",{class:"fa-4x"},Object(r.g)("i",{class:"fas fa-spinner fa-spin"})))));t.a=e=>t=>class extends r.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const t=e(this.props);t instanceof Promise?t.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(e){const{loading:n}=this.state;return n?Object(r.g)(a,null):Object(r.g)(t,e)}}},128:function(e,t,n){},129:function(e,t,n){"use strict";function r(e,t,n,r,a,o){var c=Math.round(Math.abs(e)/t);return o?c<=1?a:"in "+c+" "+n+"s":c<=1?r:c+" "+n+"s ago"}var a=[{max:276e4,value:6e4,name:"minute",past:"a minute ago",future:"in a minute"},{max:72e6,value:36e5,name:"hour",past:"an hour ago",future:"in an hour"},{max:5184e5,value:864e5,name:"day",past:"yesterday",future:"tomorrow"},{max:24192e5,value:6048e5,name:"week",past:"last week",future:"in a week"},{max:28512e6,value:2592e6,name:"month",past:"last month",future:"in a month"}];e.exports=function(e){var t=Date.now()-e.getTime();if(Math.abs(t)<6e4)return"just now";for(var n=0;n{let{value:t,onInput:n}=e;return Object(r.g)("div",{class:"search input-group mb-3"},Object(r.g)("div",{class:"input-group-prepend"},Object(r.g)("span",{class:"input-group-text"},Object(r.g)("i",{class:"fas fa-search"}))),Object(r.g)("input",{type:"text",class:"form-control",placeholder:"Search...",value:t,onInput:n,ref:e=>e&&e.focus()}))}},287:function(e,t){String.prototype.toTitleCase=function(){"use strict";var e=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|v.?|vs.?|via)$/i,t=/([A-Za-z0-9\u00C0-\u00FF])/;return this.split(/([ :\u2013\u2014-])/).map((function(n,r,a){return n.search(e)>-1&&0!==r&&r!==a.length-1&&":"!==a[r-3]&&":"!==a[r+1]&&("-"!==a[r+1]||"-"===a[r-1]&&"-"===a[r+1])?n.toLowerCase():n.substr(1).search(/[A-Z]|\../)>-1||":"===a[r+1]&&""!==a[r+2]?n:n.replace(t,(function(e){return e.toUpperCase()}))})).join("")}},292:function(e,t,n){},293:function(e,t,n){"use strict";var r=n(0);t.a=e=>{let{prefix:t,choices:n,value:a,onClick:o}=e;return Object(r.g)("div",{class:"dropdown"},Object(r.g)("button",{class:"dropdown-toggle btn btn-block btn-dark",id:"choice"+t},t," ",a),Object(r.g)("div",{class:"dropdown-menu"},n.map(e=>Object(r.g)("button",{class:"dropdown-item",onClick:()=>o(e)},t," ",e))))}},294:function(e,t,n){"use strict";var r=n(0),a=n(132),o=n(461),c=n(470),s=n(462),E=n(463),i=n(464),A=n(49);n(295);const R=[3225,3219],l=a.TileLayer.extend({initialize:function(e,t){this._url=e,this.originalPlane=t.plane,Object(a.setOptions)(this,t)},getTileUrl:function(e){return a.Util.template(this._url,{source:this.options.source,mapId:-1,zoom:e.z,plane:this.options.plane,x:e.x,y:-(1+e.y)})},resetPlane:function(){this.setPlane(this.originalPlane)},setPlane:function(e){const t=this.getPlane();e=Math.max(e,this.options.minPlane),(e=Math.min(e,this.options.maxPlane))!==t&&(this.options.plane=e,this._map&&this._map.fire("planechange"),this.redraw())},getPlane:function(){return this.options.plane},createTile:function(e,t){let n=a.TileLayer.prototype.createTile.call(this,e,t);return n.onerror=e=>e.preventDefault(),n}}),u=e=>({x:parseInt(e.lng),y:parseInt(e.lat)}),O=(e,t)=>[t,e],d=e=>{const t=e.regionId,n=e.regionX,r=e.regionY;let a="#ffffff";if(e.color){const t=e.color.value;if(t)o=t,a="rgba("+[(16711680&(o>>>=0))>>>16,(65280&o)>>>8,255&o,((4278190080&o)>>>24)/255].join(",")+")";else if(e.color){const t=e.color;a="#"+t.slice(3,9)+t[1]+t[2]}}var o;return{x:(t>>>8<<6)+n,y:((255&t)<<6)+r,z:e.z,label:e.label,color:a}},P=e=>{const t=O(R[0],R[1]);e.setView(t);const n=Object(a.rectangle)([[0,0],[1,1]],{color:"#1e1e1e",fillColor:"#1e1e1e",fillOpacity:.3,weight:1,interactive:!1});n.addTo(e),e.on("mousemove",e=>{const t=u(e.latlng);n.setBounds([O(t.x,t.y),O(t.x+1,t.y+1)])});const r=new a.Control({position:"topright"});r.onAdd=e=>{const t=a.DomUtil.create("div","leaflet-bar leaflet-control"),n=a.DomUtil.create("span","leaflet-custom-control",t),r=()=>{const t=(e=>{const t=e.getCenter(),n=u(t),r=n.x>>6<<8|n.y>>6;for(const a of A.a)if(a.regions.includes(r))return a.name;return""})(e);n.hidden=!t,n.textContent=t};return r(),e.on("move",r),t},r.addTo(e);const o=new a.Control({position:"topleft"});o.onAdd=e=>{const n=a.DomUtil.create("div","leaflet-bar leaflet-control"),r=a.DomUtil.create("a","fas fa-redo",n);return a.DomEvent.disableClickPropagation(r).addListener(r,"click",()=>{e.viewport?e.fitBounds(e.viewport):e.setView(t,0),e.tileLayer.resetPlane()}),n},o.addTo(e);const c=new a.Control({position:"topright"});c.onAdd=e=>{const t=a.DomUtil.create("div","leaflet-bar leaflet-control"),n=a.DomUtil.create("a","fas fa-sort-amount-up-alt",t),r=a.DomUtil.create("span","leaflet-custom-control",t),o=a.DomUtil.create("a","fas fa-sort-amount-down",t),c=()=>{e.tileLayer&&(r.textContent=e.tileLayer.getPlane(),e.tileLayer.getPlane()===e.tileLayer.options.maxPlane?a.DomUtil.addClass(n,"leaflet-disabled"):a.DomUtil.removeClass(n,"leaflet-disabled"),e.tileLayer.getPlane()===e.tileLayer.options.minPlane?a.DomUtil.addClass(o,"leaflet-disabled"):a.DomUtil.removeClass(o,"leaflet-disabled"))};return c(),e.on("planechange",c),a.DomEvent.disableClickPropagation(n).addListener(n,"click",()=>{e.tileLayer.setPlane(e.tileLayer.getPlane()+1)}),a.DomEvent.disableClickPropagation(o).addListener(o,"click",()=>{e.tileLayer.setPlane(e.tileLayer.getPlane()-1)}),t},c.addTo(e),e.viewport&&e.fitBounds(e.viewport)},S=e=>{let{tiles:t,selected:n,plane:a}=e;const i=Object(o.a)();if(i.tileLayer||(i.tileLayer=new l("https://raw.githubusercontent.com/mejrs/layers_osrs/master/{source}/-1/{zoom}/{plane}_{x}_{y}.png",{noWrap:!0,plane:a,minPlane:0,maxPlane:3,source:"mapsquares",minZoom:-4,maxNativeZoom:2,maxZoom:8,errorTileUrl:"https://raw.githubusercontent.com/mejrs/mejrs.github.io/master/layers/alpha_pixel.png"}),i.tileLayer.addTo(i)),i.tileLayer.originalPlane=a,i.tileLayer.setPlane(a),n.length>0){const e=n.map(e=>e.x),t=n.map(e=>e.y),r=Math.min(...e)-4,a=Math.max(...e)+4,o=Math.min(...t)-4,c=Math.max(...t)+4,s=[O(r,o),O(a,c)];i.viewport=s,i.fitBounds(s)}return t.map(e=>{const t=[O(e.x,e.y),O(e.x+1,e.y+1)];return Object(r.g)(r.b,null,e.label&&Object(r.g)(c.a,{bounds:t,url:"/img/tile-text.png"}),Object(r.g)(s.a,{bounds:t,pathOptions:{color:e.color,fillColor:e.color,fillOpacity:.3,weight:1,interactive:!1}},e.label&&Object(r.g)(E.a,null,e.label)))})};t.a=e=>{let{tiles:t,selected:n}=e;t||(t=[]),n||(n=t),t=t.map(d),n=n.map(d);const o=n.length>0&&n[0].z||0;return Object(r.g)(r.b,null,Object(r.g)(i.a,{minZoom:-4,maxZoom:8,maxBounds:[[-1e3,-1e3],[13800,13800]],maxBoundsViscosity:.5,zoom:0,attributionControl:!1,whenCreated:P,crs:a.CRS.Simple},Object(r.g)(S,{tiles:t,selected:n,plane:o})))}},295:function(e,t,n){},444:function(e,t,n){},445:function(e,t,n){},446:function(e,t,n){},447:function(e,t,n){},465:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(27),o=n(8),c=n(11),s=n(126),E=n(7),i=n.n(E),A=n(46),R=n(20);class l extends r.a{componentWillMount(){window.location.replace(this.props.to)}render(){return null}}var u=n(28),O=(n(287),n(18)),d=n(127),P=n(4);const S=e=>{switch(e.toLowerCase()){case"abyssal sire":return 13262;case"alchemical hydra":return 22746;case"barrows":case"barrows chests":return 19629;case"bryophyta":return 22370;case"callisto":return 13178;case"cerberus":return 13247;case"chambers of xeric":case"chambers of xeric challenge mode":return 20851;case"chaos elemental":return 11995;case"chaos fanatic":return 4675;case"commander zilyana":return 12651;case"corporeal beast":return 22318;case"crazy archaeologist":return 11990;case"dagannoth prime":return 12644;case"dagannoth rex":return 12645;case"dagannoth supreme":return 12643;case"deranged archaeologist":return 21566;case"general graardor":return 12650;case"giant mole":return 12646;case"grotesque guardians":return 21748;case"hespori":return 22875;case"kalphite queen":return 12647;case"king black dragon":return 12653;case"k'ril tsutsaroth":return 12652;case"kraken":return 12655;case"kree'arra":return 12649;case"obor":return 20756;case"scorpia":return 13181;case"skotizo":return 21273;case"theatre of blood":return 22473;case"thermonuclear smoke devil":return 12648;case"tztok-jad":return 13225;case"tzkal-zuk":return 21291;case"venenatis":return 13177;case"vet'ion":return 13179;case"vorkath":return 21992;case"wintertodt":return 20693;case"zulrah":return 12921;case"sarachnis":return 23495;case"herbiboar":return 21509;case"zalcano":return 23760;case"gauntlet":return 23757;case"corrupted gauntlet":return 23759;case"mimic":return 23184;case"ape atoll agility":return 4033;default:return 4155}};var I=Object(a.b)((e,t)=>({...t,slayerTask:Object(u.p)(e),bossLog:Object(u.e)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{slayerTask:t,bossLog:n}=e;return Object(r.g)(r.b,null,(e=>e.hasTask?Object(r.g)("div",{class:"card mb-3"},Object(r.g)("div",{class:"card-header"},"Slayer Task"),Object(r.g)("div",{class:"card-body d-flex w-100"},Object(r.g)("div",{class:"d-block"},Object(r.g)("h5",{class:"card-title"},e.name.toTitleCase()," ",Object(r.g)("span",{class:"badge badge-info"},e.start-e.remaining,"/",e.start)),e.location?Object(r.g)("h6",{class:"card-subtitle text-muted"},"in ",e.location):Object(r.g)("noscript",null)),Object(r.g)("div",{class:"ml-auto text-right"},"Streak: ",Object(r.g)("span",{class:"badge badge-secondary"},e.streak),Object(r.g)("br",null),"Points: ",Object(r.g)("span",{class:"badge badge-secondary"},e.points)))):Object(r.g)("noscript",null))(t),(e=>0===e.length?Object(r.g)("noscript",null):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-header"},"Boss Log"),Object(r.g)("ul",{id:"kc",class:"list-group"},e.map(e=>Object(r.g)("li",{class:"list-group-item"},Object(r.g)("img",{class:"mr-1",src:`https://static.runelite.net/cache/item/icon/${S(e.name)}.png`,alt:""}),e.name.toTitleCase(),Object(r.g)("div",{class:"float-right"},e.pb?Object(r.g)("div",null,Object(r.g)("label",null,"Personal best:"),Object(r.g)("span",{class:"badge badge-info badge-pill"},Object(O.g)(e.pb))):Object(r.g)("noscript",null),Object(r.g)("div",null,Object(r.g)("label",null,"Kills:"),Object(r.g)("span",{class:"badge badge-primary badge-pill"},e.kc))))))))(n))})),T=(n(130),n(444),n(286)),w=n(32),N=n(24);const G={1:{x:0,y:0,w:5},2:{x:5,y:0,w:7},3:{x:12,y:0,w:6},4:{x:18,y:0,w:6},5:{x:24,y:0,w:6},6:{x:30,y:0,w:7},7:{x:37,y:0,w:6},8:{x:43,y:0,w:7},9:{x:50,y:0,w:7},0:{x:57,y:0,w:7},M:{x:0,y:10,w:8},K:{x:8,y:10,w:7},"%":{x:15,y:10,w:7},"-":{x:22,y:10,w:5},"+":{x:27,y:10,w:7},"/":{x:37,y:10,w:5},"*":{x:39,y:10,w:7},"=":{x:46,y:0,w:6},"^":{x:52,y:10,w:5},"(":{x:57,y:10,w:4},")":{x:60,y:10,w:4}},_=["","K","M"],g=e=>{let t=0;for(;e>9999;)e/=1e3,t++;const n=_[t];return[~~e+n,n]},D=e=>{return Object(r.g)("div",{class:"drop-wrapper"},(e=>{let[t,n]=g(e);return e>1&&Object(r.g)("span",{class:"rs-item-quantity rs-item-quantity-"+(n||"none")},[...t].map(e=>G[e]).filter(e=>!!e).map(e=>Object(r.g)("span",{class:"rs-item-quantity-number",style:{width:e.w,backgroundPositionX:-e.x,backgroundPositionY:-e.y}})))})(e.qty),Object(r.g)("div",{class:"tooltip-tag"},Object(r.g)("a",{href:Object(O.i)(e)},Object(r.g)("img",{class:"card-img-top rs-icon",alt:e.id,src:(t=e.id,`https://static.runelite.net/cache/item/icon/${t}.png`)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)," ",Object(r.g)("small",null,"(",m(e.price)," gp)"))));var t},m=e=>{let[t]=g(e);return t},p=e=>Object(r.g)("div",{class:"card loot-card"},Object(r.g)("div",{class:"card-header"},e.name," ",Object(r.g)("span",{class:"small"},"x ",e.count),Object(r.g)("span",{class:"small float-right"},m(e.price)," gp")),Object(r.g)("div",{class:"card-body pt-0 pb-0 record-body"},Object(r.g)("div",{class:"row drop-row"},e.drops.map(D))));var h=Object(a.b)((e,t)=>({...t,loot:Object(u.i)(e),lootFilter:Object(u.m)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchPrices:w.b,fetchItems:N.b,fetchConfig:u.c,setLootFilter:u.u},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchPrices:n,fetchItems:r,fetchConfig:a}=e;await t(),await n(),await r(),await a()})(e=>{let{loot:t,lootFilter:n,setLootFilter:a}=e;return Object(r.g)(r.b,null,Object(r.g)(T.a,{value:n,onInput:e=>((e,t)=>t(e.target.value))(e,a)}),Object(r.g)("div",{class:"card-columns"},t.map(p)))})),W=n(47);n(445),n(128);const L=e=>{const t=[e.name,e.icon].concat(e.items.map(e=>e.id)).join(",");return Object(r.g)("div",{class:"content-section tag-container",style:{margin:0,padding:0,paddingBottom:15,maxWidth:"initial",width:"100%"}},Object(r.g)("h1",null,Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)})," ",e.name),Object(r.g)("pre",{class:"pre-select"},t,Object(r.g)("div",{class:"text-right"},Object(r.g)("a",{href:"/tag/show/"+t,class:"user-select-none"},"Share"))),Object(r.g)("div",{class:"row pl-2"},e.items.map(e=>{const t=e.name||"",n=e.id;return Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"tooltip-tag"},Object(r.g)("a",{href:Object(O.i)(e)},Object(r.g)("img",{class:"card-img-top",alt:t,src:Object(O.c)(n)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name||"Loading..."),Object(r.g)("br",null))))})))};var b,M,f,C,B,H,U=Object(a.b)((e,t)=>({...t,tags:Object(u.q)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,fetchItems:N.b},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n,fetchItems:r}=e;await t(),await n(),await r()})(e=>{let{tags:t}=e;return Object(r.g)(r.b,null,t.map(L))}));class v{}v.GRIMY_RANARR_WEED=207,v.LIMPWURT_ROOT=225,v.SNAPE_GRASS=231,v.WHITE_BERRIES=239,v.JANGERBERRIES=247,v.GUAM_LEAF=249,v.MARRENTILL=251,v.TARROMIN=253,v.HARRALANDER=255,v.RANARR_WEED=257,v.IRIT_LEAF=259,v.AVANTOE=261,v.KWUARM=263,v.CADANTINE=265,v.DWARF_WEED=267,v.TORSTOL=269,v.CADAVA_BERRIES=753,v.BATTLESTAFF=1391,v.MAGIC_LOGS=1513,v.YEW_LOGS=1515,v.MAPLE_LOGS=1517,v.WILLOW_LOGS=1519,v.OAK_LOGS=1521,v.WOAD_LEAF=1793,v.POTATO=1942,v.REDBERRIES=1951,v.COOKING_APPLE=1955,v.ONION=1957,v.BANANA=1963,v.CABBAGE=1965,v.TOMATO=1982,v.GRAPES=1987,v.ORANGE=2108,v.PINEAPPLE=2114,v.DWELLBERRIES=2126,v.CAVE_NIGHTSHADE=2398,v.RED_FLOWERS=2462,v.LANTADYME=2481,v.WATCH=2575,v.TOADFLAX=2998,v.SNAPDRAGON=3e3,v.POTATO_CACTUS=3138,v.GOUTWEED=3261,v.STRAWBERRY=5504,v.JUTE_FIBRE=5931,v.CURRY_LEAF=5970,v.PAPAYA_FRUIT=5972,v.COCONUT=5974,v.CALQUAT_FRUIT=5980,v.WATERMELON=5982,v.SWEETCORN=5986,v.HAMMERSTONE_HOPS=5994,v.ASGARNIAN_HOPS=5996,v.YANILLIAN_HOPS=5998,v.KRANDORIAN_HOPS=6e3,v.WILDBLOOD_HOPS=6002,v.MUSHROOM=6004,v.BARLEY=6006,v.MARIGOLDS=6010,v.NASTURTIUMS=6012,v.ROSEMARY=6014,v.CACTUS_SPINE=6016,v.POISON_IVY_BERRIES=6018,v.WEEDS=6055,v.SCARECROW=6059,v.SPIRIT_TREE=6063,v.MAHOGANY_LOGS=6332,v.TEAK_LOGS=6333,v.REDWOOD_LOGS=19669,v.GIANT_SEAWEED=21504,v.OLD_NOTES=22051,v.DRAGONFRUIT=22929,v.WHITE_LILY=22932,v.CRYSTAL_SHARDS=23866,v.BIRD_HOUSE=21512,v.OAK_BIRD_HOUSE=21515,v.WILLOW_BIRD_HOUSE=21518,v.TEAK_BIRD_HOUSE=21521,v.MAPLE_BIRD_HOUSE=22192,v.MAHOGANY_BIRD_HOUSE=22195,v.YEW_BIRD_HOUSE=22198,v.MAGIC_BIRD_HOUSE=22201,v.REDWOOD_BIRD_HOUSE=22204,v.FEATHER=314,v.COMPOST_BIN=3271,v.COMPOST=6032,v.SUPERCOMPOST=6034,v.ULTRACOMPOST=21483,v.ROTTEN_TOMATO=2518,v.__class="timetracking.ItemID",function(e){e[e.OVERVIEW=0]="OVERVIEW",e[e.CLOCK=1]="CLOCK",e[e.BIRD_HOUSE=2]="BIRD_HOUSE",e[e.ALLOTMENT=3]="ALLOTMENT",e[e.FLOWER=4]="FLOWER",e[e.HERB=5]="HERB",e[e.TREE=6]="TREE",e[e.FRUIT_TREE=7]="FRUIT_TREE",e[e.HOPS=8]="HOPS",e[e.BUSH=9]="BUSH",e[e.GRAPE=10]="GRAPE",e[e.SPECIAL=11]="SPECIAL"}(b||(b={}));class F{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.itemID&&(this.itemID=0),this.__name=n,this.itemID=r}static FARMING_TABS_$LI$(){return null==F.FARMING_TABS&&(F.FARMING_TABS=[b.HERB,b.TREE,b.FRUIT_TREE,b.SPECIAL,b.FLOWER,b.ALLOTMENT,b.BUSH,b.GRAPE,b.HOPS]),F.FARMING_TABS}getName(){return this.__name}getItemID(){return this.itemID}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}b.__class="timetracking.Tab",b.__interfaces=["java.lang.Comparable","java.io.Serializable"],b._$wrappers={0:new F(0,"OVERVIEW","Overview",v.OLD_NOTES),1:new F(1,"CLOCK","Timers & Stopwatches",v.WATCH),2:new F(2,"BIRD_HOUSE","Bird Houses",v.OAK_BIRD_HOUSE),3:new F(3,"ALLOTMENT","Allotment Patches",v.CABBAGE),4:new F(4,"FLOWER","Flower Patches",v.RED_FLOWERS),5:new F(5,"HERB","Herb Patches",v.GRIMY_RANARR_WEED),6:new F(6,"TREE","Tree Patches",v.YEW_LOGS),7:new F(7,"FRUIT_TREE","Fruit Tree Patches",v.PINEAPPLE),8:new F(8,"HOPS","Hops Patches",v.BARLEY),9:new F(9,"BUSH","Bush Patches",v.POISON_IVY_BERRIES),10:new F(10,"GRAPE","Grape Patches",v.GRAPES),11:new F(11,"SPECIAL","Special Patches",v.MUSHROOM)},function(e){e[e.HARVESTABLE=0]="HARVESTABLE",e[e.GROWING=1]="GROWING",e[e.DISEASED=2]="DISEASED",e[e.DEAD=3]="DEAD",e[e.EMPTY=4]="EMPTY",e[e.FILLING=5]="FILLING"}(M||(M={}));class j{constructor(e,t,n){void 0===this.produce&&(this.produce=null),void 0===this.cropState&&(this.cropState=null),void 0===this.stage&&(this.stage=0),this.produce=e,this.cropState=t,this.stage=n}getStages(){return this.cropState===M.HARVESTABLE||this.cropState===M.FILLING?f.Produce._$wrappers[this.produce].getHarvestStages():f.Produce._$wrappers[this.produce].getStages()}getTickRate(){switch(this.cropState){case M.HARVESTABLE:return f.Produce._$wrappers[this.produce].getRegrowTickrate();case M.GROWING:return f.Produce._$wrappers[this.produce].getTickrate();default:return 0}}getStage(){return this.stage}getProduce(){return this.produce}getCropState(){return this.cropState}}j.__class="timetracking.PatchState";class y{}y.NULL_22938=22938,y.NULL_22939=22939,y.NULL_22940=22940,y.NULL_23044=23044,y.__class="timetracking.NullItemID",(C=f||(f={}))[C.BELLADONNA=0]="BELLADONNA",C[C.MUSHROOM=1]="MUSHROOM",C[C.HESPORI=2]="HESPORI",C[C.ALLOTMENT=3]="ALLOTMENT",C[C.HERB=4]="HERB",C[C.FLOWER=5]="FLOWER",C[C.BUSH=6]="BUSH",C[C.FRUIT_TREE=7]="FRUIT_TREE",C[C.HOPS=8]="HOPS",C[C.TREE=9]="TREE",C[C.HARDWOOD_TREE=10]="HARDWOOD_TREE",C[C.REDWOOD=11]="REDWOOD",C[C.SPIRIT_TREE=12]="SPIRIT_TREE",C[C.ANIMA=13]="ANIMA",C[C.CACTUS=14]="CACTUS",C[C.SEAWEED=15]="SEAWEED",C[C.CALQUAT=16]="CALQUAT",C[C.CELASTRUS=17]="CELASTRUS",C[C.GRAPES=18]="GRAPES",C[C.CRYSTAL_TREE=19]="CRYSTAL_TREE",C[C.COMPOST=20]="COMPOST",C[C.GIANT_COMPOST=21]="GIANT_COMPOST";class V{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.tab&&(this.tab=null),void 0===this.__name&&(this.__name=null),this.tab=n,this.__name=r}getTab(){return this.tab}getName(){return this.__name}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}f.__class="timetracking.PatchImplementation",f.__interfaces=["java.lang.Comparable","java.io.Serializable"],function(e){let t;!function(e){e[e.WEEDS=0]="WEEDS",e[e.SCARECROW=1]="SCARECROW",e[e.POTATO=2]="POTATO",e[e.ONION=3]="ONION",e[e.CABBAGE=4]="CABBAGE",e[e.TOMATO=5]="TOMATO",e[e.SWEETCORN=6]="SWEETCORN",e[e.STRAWBERRY=7]="STRAWBERRY",e[e.WATERMELON=8]="WATERMELON",e[e.SNAPE_GRASS=9]="SNAPE_GRASS",e[e.MARIGOLD=10]="MARIGOLD",e[e.ROSEMARY=11]="ROSEMARY",e[e.NASTURTIUM=12]="NASTURTIUM",e[e.WOAD=13]="WOAD",e[e.LIMPWURT=14]="LIMPWURT",e[e.WHITE_LILY=15]="WHITE_LILY",e[e.REDBERRIES=16]="REDBERRIES",e[e.CADAVABERRIES=17]="CADAVABERRIES",e[e.DWELLBERRIES=18]="DWELLBERRIES",e[e.JANGERBERRIES=19]="JANGERBERRIES",e[e.WHITEBERRIES=20]="WHITEBERRIES",e[e.POISON_IVY=21]="POISON_IVY",e[e.BARLEY=22]="BARLEY",e[e.HAMMERSTONE=23]="HAMMERSTONE",e[e.ASGARNIAN=24]="ASGARNIAN",e[e.JUTE=25]="JUTE",e[e.YANILLIAN=26]="YANILLIAN",e[e.KRANDORIAN=27]="KRANDORIAN",e[e.WILDBLOOD=28]="WILDBLOOD",e[e.GUAM=29]="GUAM",e[e.MARRENTILL=30]="MARRENTILL",e[e.TARROMIN=31]="TARROMIN",e[e.HARRALANDER=32]="HARRALANDER",e[e.RANARR=33]="RANARR",e[e.TOADFLAX=34]="TOADFLAX",e[e.IRIT=35]="IRIT",e[e.AVANTOE=36]="AVANTOE",e[e.KWUARM=37]="KWUARM",e[e.SNAPDRAGON=38]="SNAPDRAGON",e[e.CADANTINE=39]="CADANTINE",e[e.LANTADYME=40]="LANTADYME",e[e.DWARF_WEED=41]="DWARF_WEED",e[e.TORSTOL=42]="TORSTOL",e[e.GOUTWEED=43]="GOUTWEED",e[e.ANYHERB=44]="ANYHERB",e[e.OAK=45]="OAK",e[e.WILLOW=46]="WILLOW",e[e.MAPLE=47]="MAPLE",e[e.YEW=48]="YEW",e[e.MAGIC=49]="MAGIC",e[e.APPLE=50]="APPLE",e[e.BANANA=51]="BANANA",e[e.ORANGE=52]="ORANGE",e[e.CURRY=53]="CURRY",e[e.PINEAPPLE=54]="PINEAPPLE",e[e.PAPAYA=55]="PAPAYA",e[e.PALM=56]="PALM",e[e.DRAGONFRUIT=57]="DRAGONFRUIT",e[e.CACTUS=58]="CACTUS",e[e.POTATO_CACTUS=59]="POTATO_CACTUS",e[e.TEAK=60]="TEAK",e[e.MAHOGANY=61]="MAHOGANY",e[e.ATTAS=62]="ATTAS",e[e.IASOR=63]="IASOR",e[e.KRONOS=64]="KRONOS",e[e.SEAWEED=65]="SEAWEED",e[e.GRAPE=66]="GRAPE",e[e.MUSHROOM=67]="MUSHROOM",e[e.BELLADONNA=68]="BELLADONNA",e[e.CALQUAT=69]="CALQUAT",e[e.SPIRIT_TREE=70]="SPIRIT_TREE",e[e.CELASTRUS=71]="CELASTRUS",e[e.REDWOOD=72]="REDWOOD",e[e.HESPORI=73]="HESPORI",e[e.CRYSTAL_TREE=74]="CRYSTAL_TREE",e[e.EMPTY_COMPOST_BIN=75]="EMPTY_COMPOST_BIN",e[e.COMPOST=76]="COMPOST",e[e.SUPERCOMPOST=77]="SUPERCOMPOST",e[e.ULTRACOMPOST=78]="ULTRACOMPOST",e[e.ROTTEN_TOMATO=79]="ROTTEN_TOMATO",e[e.EMPTY_GIANT_COMPOST_BIN=80]="EMPTY_GIANT_COMPOST_BIN",e[e.GIANT_COMPOST=81]="GIANT_COMPOST",e[e.GIANT_SUPERCOMPOST=82]="GIANT_SUPERCOMPOST",e[e.GIANT_ULTRACOMPOST=83]="GIANT_ULTRACOMPOST",e[e.GIANT_ROTTEN_TOMATO=84]="GIANT_ROTTEN_TOMATO"}(t=e.Produce||(e.Produce={}));class n{constructor(e,t,n,r,a,o,c,s,E,i){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||"number"!==typeof E&&null!==E||"number"!==typeof i&&null!==i){if("string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||void 0!==E||void 0!==i)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0)}else{void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=E,this.harvestStages=i}}getName(){return this.__name}getContractName(){return this.contractName}getItemID(){return this.itemID}getTickrate(){return this.tickrate}getStages(){return this.stages}getRegrowTickrate(){return this.regrowTickrate}getHarvestStages(){return this.harvestStages}getPatchImplementation(){return this.patchImplementation}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.Produce_$WRAPPER=n,t.__class="timetracking.PatchImplementation.Produce",t.__interfaces=["java.lang.Comparable","java.io.Serializable"],t._$wrappers={0:new n(0,"WEEDS","Weeds","Weeds",null,v.WEEDS,5,4),1:new n(1,"SCARECROW","Scarecrow","Scarecrow",null,v.SCARECROW,5,4),2:new n(2,"POTATO","Potato","Potatoes",e.ALLOTMENT,v.POTATO,10,5,0,3),3:new n(3,"ONION","Onion","Onions",e.ALLOTMENT,v.ONION,10,5,0,3),4:new n(4,"CABBAGE","Cabbage","Cabbages",e.ALLOTMENT,v.CABBAGE,10,5,0,3),5:new n(5,"TOMATO","Tomato","Tomatoes",e.ALLOTMENT,v.TOMATO,10,5,0,3),6:new n(6,"SWEETCORN","Sweetcorn","Sweetcorn",e.ALLOTMENT,v.SWEETCORN,10,6,0,3),7:new n(7,"STRAWBERRY","Strawberry","Strawberries",e.ALLOTMENT,v.STRAWBERRY,10,7,0,3),8:new n(8,"WATERMELON","Watermelon","Watermelons",e.ALLOTMENT,v.WATERMELON,10,8,0,3),9:new n(9,"SNAPE_GRASS","Snape grass","Snape grass",e.ALLOTMENT,v.SNAPE_GRASS,10,8,0,3),10:new n(10,"MARIGOLD","Marigold","Marigolds",e.FLOWER,v.MARIGOLDS,5,5),11:new n(11,"ROSEMARY","Rosemary","Rosemary",e.FLOWER,v.ROSEMARY,5,5),12:new n(12,"NASTURTIUM","Nasturtium","Nasturtiums",e.FLOWER,v.NASTURTIUMS,5,5),13:new n(13,"WOAD","Woad","Woad",e.FLOWER,v.WOAD_LEAF,5,5),14:new n(14,"LIMPWURT","Limpwurt","Limpwurt roots",e.FLOWER,v.LIMPWURT_ROOT,5,5),15:new n(15,"WHITE_LILY","White lily","White lillies",e.FLOWER,v.WHITE_LILY,5,5),16:new n(16,"REDBERRIES","Redberry","Redberries",e.BUSH,v.REDBERRIES,20,6,20,5),17:new n(17,"CADAVABERRIES","Cadavaberry","Cadava berries",e.BUSH,v.CADAVA_BERRIES,20,7,20,5),18:new n(18,"DWELLBERRIES","Dwellberry","Dwellberries",e.BUSH,v.DWELLBERRIES,20,8,20,5),19:new n(19,"JANGERBERRIES","Jangerberry","Jangerberries",e.BUSH,v.JANGERBERRIES,20,9,20,5),20:new n(20,"WHITEBERRIES","Whiteberry","White berries",e.BUSH,v.WHITE_BERRIES,20,9,20,5),21:new n(21,"POISON_IVY","Poison ivy","Poison ivy berries",e.BUSH,v.POISON_IVY_BERRIES,20,9,20,5),22:new n(22,"BARLEY","Barley","Barley",e.HOPS,v.BARLEY,10,5,0,3),23:new n(23,"HAMMERSTONE","Hammerstone","Hammerstone",e.HOPS,v.HAMMERSTONE_HOPS,10,5,0,3),24:new n(24,"ASGARNIAN","Asgarnian","Asgarnian",e.HOPS,v.ASGARNIAN_HOPS,10,6,0,3),25:new n(25,"JUTE","Jute","Jute",e.HOPS,v.JUTE_FIBRE,10,6,0,3),26:new n(26,"YANILLIAN","Yanillian","Yanillian",e.HOPS,v.YANILLIAN_HOPS,10,7,0,3),27:new n(27,"KRANDORIAN","Krandorian","Krandorian",e.HOPS,v.KRANDORIAN_HOPS,10,8,0,3),28:new n(28,"WILDBLOOD","Wildblood","Wildblood",e.HOPS,v.WILDBLOOD_HOPS,10,9,0,3),29:new n(29,"GUAM","Guam","Guam",e.HERB,v.GUAM_LEAF,20,5,0,3),30:new n(30,"MARRENTILL","Marrentill","Marrentill",e.HERB,v.MARRENTILL,20,5,0,3),31:new n(31,"TARROMIN","Tarromin","Tarromin",e.HERB,v.TARROMIN,20,5,0,3),32:new n(32,"HARRALANDER","Harralander","Harralander",e.HERB,v.HARRALANDER,20,5,0,3),33:new n(33,"RANARR","Ranarr","Harralander",e.HERB,v.RANARR_WEED,20,5,0,3),34:new n(34,"TOADFLAX","Toadflax","Toadflax",e.HERB,v.TOADFLAX,20,5,0,3),35:new n(35,"IRIT","Irit","Irit",e.HERB,v.IRIT_LEAF,20,5,0,3),36:new n(36,"AVANTOE","Avantoe","Avantoe",e.HERB,v.AVANTOE,20,5,0,3),37:new n(37,"KWUARM","Kwuarm","Kwuarm",e.HERB,v.KWUARM,20,5,0,3),38:new n(38,"SNAPDRAGON","Snapdragon","Snapdragon",e.HERB,v.SNAPDRAGON,20,5,0,3),39:new n(39,"CADANTINE","Cadantine","Cadantine",e.HERB,v.CADANTINE,20,5,0,3),40:new n(40,"LANTADYME","Lantadyme","Lantadyme",e.HERB,v.LANTADYME,20,5,0,3),41:new n(41,"DWARF_WEED","Dwarf weed","Dwarf weed",e.HERB,v.DWARF_WEED,20,5,0,3),42:new n(42,"TORSTOL","Torstol","Torstol",e.HERB,v.TORSTOL,20,5,0,3),43:new n(43,"GOUTWEED","Goutweed","Goutweed",e.HERB,v.GOUTWEED,20,5,0,2),44:new n(44,"ANYHERB","Any herb","Any herb",e.HERB,v.GUAM_LEAF,20,5,0,3),45:new n(45,"OAK","Oak","Oak tree",e.TREE,v.OAK_LOGS,40,5),46:new n(46,"WILLOW","Willow","Willow tree",e.TREE,v.WILLOW_LOGS,40,7),47:new n(47,"MAPLE","Maple","Maple tree",e.TREE,v.MAPLE_LOGS,40,9),48:new n(48,"YEW","Yew","Yew tree",e.TREE,v.YEW_LOGS,40,11),49:new n(49,"MAGIC","Magic","Magic tree",e.TREE,v.MAGIC_LOGS,40,13),50:new n(50,"APPLE","Apple","Apple tree",e.FRUIT_TREE,v.COOKING_APPLE,160,7,45,7),51:new n(51,"BANANA","Banana","Banana tree",e.FRUIT_TREE,v.BANANA,160,7,45,7),52:new n(52,"ORANGE","Orange","Orange tree",e.FRUIT_TREE,v.ORANGE,160,7,45,7),53:new n(53,"CURRY","Curry","Curry tree",e.FRUIT_TREE,v.CURRY_LEAF,160,7,45,7),54:new n(54,"PINEAPPLE","Pineapple","Pineapple plant",e.FRUIT_TREE,v.PINEAPPLE,160,7,45,7),55:new n(55,"PAPAYA","Papaya","Papaya tree",e.FRUIT_TREE,v.PAPAYA_FRUIT,160,7,45,7),56:new n(56,"PALM","Palm","Palm tree",e.FRUIT_TREE,v.COCONUT,160,7,45,7),57:new n(57,"DRAGONFRUIT","Dragonfruit","Dragonfruit tree",e.FRUIT_TREE,v.DRAGONFRUIT,160,7,45,7),58:new n(58,"CACTUS","Cactus","Cactus",e.CACTUS,v.CACTUS_SPINE,80,8,20,4),59:new n(59,"POTATO_CACTUS","Potato cactus","Potato cacti",e.CACTUS,v.POTATO_CACTUS,10,8,5,7),60:new n(60,"TEAK","Teak","Teak",e.HARDWOOD_TREE,v.TEAK_LOGS,560,8),61:new n(61,"MAHOGANY","Mahogany","Mahogany",e.HARDWOOD_TREE,v.MAHOGANY_LOGS,640,9),62:new n(62,"ATTAS","Attas","Attas",e.ANIMA,y.NULL_22940,640,9),63:new n(63,"IASOR","Iasor","Iasor",e.ANIMA,y.NULL_22939,640,9),64:new n(64,"KRONOS","Kronos","Kronos",e.ANIMA,y.NULL_22938,640,9),65:new n(65,"SEAWEED","Seaweed","Seaweed",e.SEAWEED,v.GIANT_SEAWEED,10,5,0,4),66:new n(66,"GRAPE","Grape","Grape",e.GRAPES,v.GRAPES,5,8,0,5),67:new n(67,"MUSHROOM","Mushroom","Mushroom",e.MUSHROOM,v.MUSHROOM,40,7,0,7),68:new n(68,"BELLADONNA","Belladonna","Belladonna",e.BELLADONNA,v.CAVE_NIGHTSHADE,80,5),69:new n(69,"CALQUAT","Calquat","Calquat",e.CALQUAT,v.CALQUAT_FRUIT,160,9,0,7),70:new n(70,"SPIRIT_TREE","Spirit tree","Spirit tree",e.SPIRIT_TREE,v.SPIRIT_TREE,320,13),71:new n(71,"CELASTRUS","Celastrus","Celastrus tree",e.CELASTRUS,v.BATTLESTAFF,160,6,0,4),72:new n(72,"REDWOOD","Redwood","Redwood tree",e.REDWOOD,v.REDWOOD_LOGS,640,11),73:new n(73,"HESPORI","Hespori","Hespori",e.HESPORI,y.NULL_23044,640,4,0,2),74:new n(74,"CRYSTAL_TREE","Crystal tree","Crystal tree",e.CRYSTAL_TREE,v.CRYSTAL_SHARDS,80,7),75:new n(75,"EMPTY_COMPOST_BIN","Compost Bin","Compost Bin",e.COMPOST,v.COMPOST_BIN,0,1,0,0),76:new n(76,"COMPOST","Compost","Compost",e.COMPOST,v.COMPOST,40,3,0,15),77:new n(77,"SUPERCOMPOST","Supercompost","Supercompost",e.COMPOST,v.SUPERCOMPOST,40,3,0,15),78:new n(78,"ULTRACOMPOST","Ultracompost","Ultracompost",e.COMPOST,v.ULTRACOMPOST,0,3,0,15),79:new n(79,"ROTTEN_TOMATO","Rotten Tomato","Rotten Tomato",e.COMPOST,v.ROTTEN_TOMATO,40,3,0,15),80:new n(80,"EMPTY_GIANT_COMPOST_BIN","Giant Compost Bin","Giant Compost Bin",e.COMPOST,v.COMPOST_BIN,0,1,0,0),81:new n(81,"GIANT_COMPOST","Compost","Compost",e.GIANT_COMPOST,v.COMPOST,40,3,0,30),82:new n(82,"GIANT_SUPERCOMPOST","Supercompost","Supercompost",e.GIANT_COMPOST,v.SUPERCOMPOST,40,3,0,30),83:new n(83,"GIANT_ULTRACOMPOST","Ultracompost","Ultracompost",e.GIANT_COMPOST,v.ULTRACOMPOST,0,3,0,30),84:new n(84,"GIANT_ROTTEN_TOMATO","Rotten Tomato","Rotten Tomato",e.GIANT_COMPOST,v.ROTTEN_TOMATO,40,3,0,30)}}(f||(f={})),function(e){e.Produce_$WRAPPER=class{constructor(e,t,n,r,a,o,c,s,E,i){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||"number"!==typeof E&&null!==E||"number"!==typeof i&&null!==i){if("string"!==typeof n&&null!==n||"string"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||"number"!==typeof s&&null!==s||void 0!==E||void 0!==i)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0)}else{void 0===this.__name&&(this.__name=null),void 0===this.contractName&&(this.contractName=null),void 0===this.patchImplementation&&(this.patchImplementation=null),void 0===this.itemID&&(this.itemID=0),void 0===this.tickrate&&(this.tickrate=0),void 0===this.stages&&(this.stages=0),void 0===this.regrowTickrate&&(this.regrowTickrate=0),void 0===this.harvestStages&&(this.harvestStages=0),this.__name=n,this.contractName=r,this.patchImplementation=a,this.itemID=o,this.tickrate=c,this.stages=s,this.regrowTickrate=E,this.harvestStages=i}}getName(){return this.__name}getContractName(){return this.contractName}getItemID(){return this.itemID}getTickrate(){return this.tickrate}getStages(){return this.stages}getRegrowTickrate(){return this.regrowTickrate}getHarvestStages(){return this.harvestStages}getPatchImplementation(){return this.patchImplementation}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}},e.Produce.__class="timetracking.PatchImplementation.Produce",e.Produce.__interfaces=["java.lang.Comparable","java.io.Serializable"];e.PatchImplementation$0_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.BELLADONNA,M.GROWING,t-4):8===t?new j(e.Produce.BELLADONNA,M.HARVESTABLE,0):t>=9&&t<=11?new j(e.Produce.BELLADONNA,M.DISEASED,t-8):t>=12&&t<=14?new j(e.Produce.BELLADONNA,M.DEAD,t-11):t>=15&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$1_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=9?new j(e.Produce.MUSHROOM,M.GROWING,t-4):t>=10&&t<=15?new j(e.Produce.MUSHROOM,M.HARVESTABLE,t-10):t>=16&&t<=20?new j(e.Produce.MUSHROOM,M.DISEASED,t-15):t>=21&&t<=25?new j(e.Produce.MUSHROOM,M.DEAD,t-20):t>=26&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$2_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=6?new j(e.Produce.HESPORI,M.GROWING,t-4):t>=7&&t<=8?new j(e.Produce.HESPORI,M.HARVESTABLE,t-7):9===t?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$3_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=5?new j(e.Produce.WEEDS,M.GROWING,3):t>=6&&t<=9?new j(e.Produce.POTATO,M.GROWING,t-6):t>=10&&t<=12?new j(e.Produce.POTATO,M.HARVESTABLE,t-10):t>=13&&t<=16?new j(e.Produce.ONION,M.GROWING,t-13):t>=17&&t<=19?new j(e.Produce.ONION,M.HARVESTABLE,t-17):t>=20&&t<=23?new j(e.Produce.CABBAGE,M.GROWING,t-20):t>=24&&t<=26?new j(e.Produce.CABBAGE,M.HARVESTABLE,t-24):t>=27&&t<=30?new j(e.Produce.TOMATO,M.GROWING,t-27):t>=31&&t<=33?new j(e.Produce.TOMATO,M.HARVESTABLE,t-31):t>=34&&t<=39?new j(e.Produce.SWEETCORN,M.GROWING,t-34):t>=40&&t<=42?new j(e.Produce.SWEETCORN,M.HARVESTABLE,t-40):t>=43&&t<=48?new j(e.Produce.STRAWBERRY,M.GROWING,t-43):t>=49&&t<=51?new j(e.Produce.STRAWBERRY,M.HARVESTABLE,t-49):t>=52&&t<=59?new j(e.Produce.WATERMELON,M.GROWING,t-52):t>=60&&t<=62?new j(e.Produce.WATERMELON,M.HARVESTABLE,t-60):t>=63&&t<=69?new j(e.Produce.SNAPE_GRASS,M.GROWING,t-63):t>=70&&t<=73?new j(e.Produce.POTATO,M.GROWING,t-70):t>=74&&t<=76?new j(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new j(e.Produce.ONION,M.GROWING,t-77):t>=81&&t<=83?new j(e.Produce.WEEDS,M.GROWING,3):t>=84&&t<=87?new j(e.Produce.CABBAGE,M.GROWING,t-84):t>=88&&t<=90?new j(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=94?new j(e.Produce.TOMATO,M.GROWING,t-91):t>=95&&t<=97?new j(e.Produce.WEEDS,M.GROWING,3):t>=98&&t<=103?new j(e.Produce.SWEETCORN,M.GROWING,t-98):t>=104&&t<=106?new j(e.Produce.WEEDS,M.GROWING,3):t>=107&&t<=112?new j(e.Produce.STRAWBERRY,M.GROWING,t-107):t>=113&&t<=115?new j(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new j(e.Produce.WATERMELON,M.GROWING,t-116):t>=124&&t<=127?new j(e.Produce.WEEDS,M.GROWING,3):t>=128&&t<=134?new j(e.Produce.SNAPE_GRASS,M.GROWING,t-128):t>=135&&t<=137?new j(e.Produce.POTATO,M.DISEASED,t-134):t>=138&&t<=140?new j(e.Produce.SNAPE_GRASS,M.HARVESTABLE,t-138):141===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new j(e.Produce.ONION,M.DISEASED,t-141):t>=145&&t<=148?new j(e.Produce.WEEDS,M.GROWING,3):t>=149&&t<=151?new j(e.Produce.CABBAGE,M.DISEASED,t-148):t>=152&&t<=155?new j(e.Produce.WEEDS,M.GROWING,3):t>=156&&t<=158?new j(e.Produce.TOMATO,M.DISEASED,t-155):t>=159&&t<=162?new j(e.Produce.WEEDS,M.GROWING,3):t>=163&&t<=167?new j(e.Produce.SWEETCORN,M.DISEASED,t-162):t>=168&&t<=171?new j(e.Produce.WEEDS,M.GROWING,3):t>=172&&t<=176?new j(e.Produce.STRAWBERRY,M.DISEASED,t-171):t>=177&&t<=180?new j(e.Produce.WEEDS,M.GROWING,3):t>=181&&t<=187?new j(e.Produce.WATERMELON,M.DISEASED,t-180):t>=188&&t<=192?new j(e.Produce.WEEDS,M.GROWING,3):t>=193&&t<=195?new j(e.Produce.SNAPE_GRASS,M.DEAD,t-192):t>=196&&t<=198?new j(e.Produce.SNAPE_GRASS,M.DISEASED,t-195):t>=199&&t<=201?new j(e.Produce.POTATO,M.DEAD,t-198):t>=202&&t<=204?new j(e.Produce.SNAPE_GRASS,M.DISEASED,3+t-201):205===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=208?new j(e.Produce.ONION,M.DEAD,t-205):t>=209&&t<=211?new j(e.Produce.SNAPE_GRASS,M.DEAD,3+t-208):212===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=213&&t<=215?new j(e.Produce.CABBAGE,M.DEAD,t-212):t>=216&&t<=219?new j(e.Produce.WEEDS,M.GROWING,3):t>=220&&t<=222?new j(e.Produce.TOMATO,M.DEAD,t-219):t>=223&&t<=226?new j(e.Produce.WEEDS,M.GROWING,3):t>=227&&t<=231?new j(e.Produce.SWEETCORN,M.DEAD,t-226):t>=232&&t<=235?new j(e.Produce.WEEDS,M.GROWING,3):t>=236&&t<=240?new j(e.Produce.STRAWBERRY,M.DEAD,t-235):t>=241&&t<=244?new j(e.Produce.WEEDS,M.GROWING,3):t>=245&&t<=251?new j(e.Produce.WATERMELON,M.DEAD,t-244):t>=252&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$4_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.GUAM,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.GUAM,M.HARVESTABLE,10-t):t>=11&&t<=14?new j(e.Produce.MARRENTILL,M.GROWING,t-11):t>=15&&t<=17?new j(e.Produce.MARRENTILL,M.HARVESTABLE,17-t):t>=18&&t<=21?new j(e.Produce.TARROMIN,M.GROWING,t-18):t>=22&&t<=24?new j(e.Produce.TARROMIN,M.HARVESTABLE,24-t):t>=25&&t<=28?new j(e.Produce.HARRALANDER,M.GROWING,t-25):t>=29&&t<=31?new j(e.Produce.HARRALANDER,M.HARVESTABLE,31-t):t>=32&&t<=35?new j(e.Produce.RANARR,M.GROWING,t-32):t>=36&&t<=38?new j(e.Produce.RANARR,M.HARVESTABLE,38-t):t>=39&&t<=42?new j(e.Produce.TOADFLAX,M.GROWING,t-39):t>=43&&t<=45?new j(e.Produce.TOADFLAX,M.HARVESTABLE,45-t):t>=46&&t<=49?new j(e.Produce.IRIT,M.GROWING,t-46):t>=50&&t<=52?new j(e.Produce.IRIT,M.HARVESTABLE,52-t):t>=53&&t<=56?new j(e.Produce.AVANTOE,M.GROWING,t-53):t>=57&&t<=59?new j(e.Produce.AVANTOE,M.HARVESTABLE,59-t):t>=60&&t<=67?new j(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new j(e.Produce.KWUARM,M.GROWING,t-68):t>=72&&t<=74?new j(e.Produce.KWUARM,M.HARVESTABLE,74-t):t>=75&&t<=78?new j(e.Produce.SNAPDRAGON,M.GROWING,t-75):t>=79&&t<=81?new j(e.Produce.SNAPDRAGON,M.HARVESTABLE,81-t):t>=82&&t<=85?new j(e.Produce.CADANTINE,M.GROWING,t-82):t>=86&&t<=88?new j(e.Produce.CADANTINE,M.HARVESTABLE,88-t):t>=89&&t<=92?new j(e.Produce.LANTADYME,M.GROWING,t-89):t>=93&&t<=95?new j(e.Produce.LANTADYME,M.HARVESTABLE,95-t):t>=96&&t<=99?new j(e.Produce.DWARF_WEED,M.GROWING,t-96):t>=100&&t<=102?new j(e.Produce.DWARF_WEED,M.HARVESTABLE,102-t):t>=103&&t<=106?new j(e.Produce.TORSTOL,M.GROWING,t-103):t>=107&&t<=109?new j(e.Produce.TORSTOL,M.HARVESTABLE,109-t):t>=128&&t<=130?new j(e.Produce.GUAM,M.DISEASED,t-127):t>=131&&t<=133?new j(e.Produce.MARRENTILL,M.DISEASED,t-130):t>=134&&t<=136?new j(e.Produce.TARROMIN,M.DISEASED,t-133):t>=137&&t<=139?new j(e.Produce.HARRALANDER,M.DISEASED,t-136):t>=140&&t<=142?new j(e.Produce.RANARR,M.DISEASED,t-139):t>=143&&t<=145?new j(e.Produce.TOADFLAX,M.DISEASED,t-142):t>=146&&t<=148?new j(e.Produce.IRIT,M.DISEASED,t-145):t>=149&&t<=151?new j(e.Produce.AVANTOE,M.DISEASED,t-148):t>=152&&t<=154?new j(e.Produce.KWUARM,M.DISEASED,t-151):t>=155&&t<=157?new j(e.Produce.SNAPDRAGON,M.DISEASED,t-154):t>=158&&t<=160?new j(e.Produce.CADANTINE,M.DISEASED,t-157):t>=161&&t<=163?new j(e.Produce.LANTADYME,M.DISEASED,t-160):t>=164&&t<=166?new j(e.Produce.DWARF_WEED,M.DISEASED,t-163):t>=167&&t<=169?new j(e.Produce.TORSTOL,M.DISEASED,t-166):t>=170&&t<=172?new j(e.Produce.ANYHERB,M.DEAD,t-169):t>=173&&t<=191?new j(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=195?new j(e.Produce.GOUTWEED,M.GROWING,t-192):t>=196&&t<=197?new j(e.Produce.GOUTWEED,M.HARVESTABLE,197-t):t>=198&&t<=200?new j(e.Produce.GOUTWEED,M.DISEASED,t-197):t>=201&&t<=203?new j(e.Produce.GOUTWEED,M.DEAD,t-200):t>=204&&t<=219||t>=221&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$5_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new j(e.Produce.MARIGOLD,M.GROWING,t-8):12===t?new j(e.Produce.MARIGOLD,M.HARVESTABLE,0):t>=13&&t<=16?new j(e.Produce.ROSEMARY,M.GROWING,t-13):17===t?new j(e.Produce.ROSEMARY,M.HARVESTABLE,0):t>=18&&t<=21?new j(e.Produce.NASTURTIUM,M.GROWING,t-18):22===t?new j(e.Produce.NASTURTIUM,M.HARVESTABLE,0):t>=23&&t<=26?new j(e.Produce.WOAD,M.GROWING,t-23):27===t?new j(e.Produce.WOAD,M.HARVESTABLE,0):t>=28&&t<=31?new j(e.Produce.LIMPWURT,M.GROWING,t-28):32===t?new j(e.Produce.LIMPWURT,M.HARVESTABLE,0):t>=33&&t<=35?new j(e.Produce.SCARECROW,M.GROWING,35-t):36===t?new j(e.Produce.SCARECROW,M.GROWING,0):t>=37&&t<=40?new j(e.Produce.WHITE_LILY,M.GROWING,t-37):41===t?new j(e.Produce.WHITE_LILY,M.HARVESTABLE,0):t>=42&&t<=71?new j(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=75?new j(e.Produce.MARIGOLD,M.GROWING,t-72):76===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new j(e.Produce.ROSEMARY,M.GROWING,t-77):81===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=82&&t<=85?new j(e.Produce.NASTURTIUM,M.GROWING,t-82):86===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=87&&t<=90?new j(e.Produce.WOAD,M.GROWING,t-87):91===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=95?new j(e.Produce.LIMPWURT,M.GROWING,t-92):t>=96&&t<=100?new j(e.Produce.WEEDS,M.GROWING,3):t>=101&&t<=104?new j(e.Produce.WHITE_LILY,M.GROWING,t-101):t>=105&&t<=136?new j(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new j(e.Produce.MARIGOLD,M.DISEASED,t-136):t>=140&&t<=141?new j(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new j(e.Produce.ROSEMARY,M.DISEASED,t-141):t>=145&&t<=146?new j(e.Produce.WEEDS,M.GROWING,3):t>=147&&t<=149?new j(e.Produce.NASTURTIUM,M.DISEASED,t-146):t>=150&&t<=151?new j(e.Produce.WEEDS,M.GROWING,3):t>=152&&t<=154?new j(e.Produce.WOAD,M.DISEASED,t-151):t>=155&&t<=156?new j(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=159?new j(e.Produce.LIMPWURT,M.DISEASED,t-156):t>=160&&t<=165?new j(e.Produce.WEEDS,M.GROWING,3):t>=166&&t<=168?new j(e.Produce.WHITE_LILY,M.DISEASED,t-165):t>=169&&t<=200?new j(e.Produce.WEEDS,M.GROWING,3):t>=201&&t<=204?new j(e.Produce.MARIGOLD,M.DEAD,t-200):205===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=209?new j(e.Produce.ROSEMARY,M.DEAD,t-205):210===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=211&&t<=214?new j(e.Produce.NASTURTIUM,M.DEAD,t-210):215===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=216&&t<=219?new j(e.Produce.WOAD,M.DEAD,t-215):220===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=224?new j(e.Produce.LIMPWURT,M.DEAD,t-220):t>=225&&t<=229?new j(e.Produce.WEEDS,M.GROWING,3):t>=230&&t<=233?new j(e.Produce.WHITE_LILY,M.DEAD,t-229):t>=234&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$6_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):4===t?new j(e.Produce.WEEDS,M.GROWING,3):t>=5&&t<=9?new j(e.Produce.REDBERRIES,M.GROWING,t-5):t>=10&&t<=14?new j(e.Produce.REDBERRIES,M.HARVESTABLE,t-10):t>=15&&t<=20?new j(e.Produce.CADAVABERRIES,M.GROWING,t-15):t>=21&&t<=25?new j(e.Produce.CADAVABERRIES,M.HARVESTABLE,t-21):t>=26&&t<=32?new j(e.Produce.DWELLBERRIES,M.GROWING,t-26):t>=33&&t<=37?new j(e.Produce.DWELLBERRIES,M.HARVESTABLE,t-33):t>=38&&t<=45?new j(e.Produce.JANGERBERRIES,M.GROWING,t-38):t>=46&&t<=50?new j(e.Produce.JANGERBERRIES,M.HARVESTABLE,t-46):t>=51&&t<=58?new j(e.Produce.WHITEBERRIES,M.GROWING,t-51):t>=59&&t<=63?new j(e.Produce.WHITEBERRIES,M.HARVESTABLE,t-59):t>=64&&t<=69?new j(e.Produce.WEEDS,M.GROWING,3):t>=70&&t<=74?new j(e.Produce.REDBERRIES,M.DISEASED,t-69):t>=75&&t<=79?new j(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=85?new j(e.Produce.CADAVABERRIES,M.DISEASED,t-79):t>=86&&t<=90?new j(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=97?new j(e.Produce.DWELLBERRIES,M.DISEASED,t-90):t>=98&&t<=102?new j(e.Produce.WEEDS,M.GROWING,3):t>=103&&t<=110?new j(e.Produce.JANGERBERRIES,M.DISEASED,t-102):t>=111&&t<=115?new j(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new j(e.Produce.WHITEBERRIES,M.DISEASED,t-115):t>=124&&t<=133?new j(e.Produce.WEEDS,M.GROWING,3):t>=134&&t<=138?new j(e.Produce.REDBERRIES,M.DEAD,t-133):t>=139&&t<=143?new j(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=149?new j(e.Produce.CADAVABERRIES,M.DEAD,t-143):t>=150&&t<=154?new j(e.Produce.WEEDS,M.GROWING,3):t>=155&&t<=161?new j(e.Produce.DWELLBERRIES,M.DEAD,t-154):t>=162&&t<=166?new j(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=174?new j(e.Produce.JANGERBERRIES,M.DEAD,t-166):t>=175&&t<=179?new j(e.Produce.WEEDS,M.GROWING,3):t>=180&&t<=187?new j(e.Produce.WHITEBERRIES,M.DEAD,t-179):t>=188&&t<=196?new j(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=204?new j(e.Produce.POISON_IVY,M.GROWING,t-197):t>=205&&t<=209?new j(e.Produce.POISON_IVY,M.HARVESTABLE,t-205):t>=210&&t<=216?new j(e.Produce.POISON_IVY,M.DISEASED,t-209):t>=217&&t<=224?new j(e.Produce.POISON_IVY,M.DEAD,t-216):225===t?new j(e.Produce.POISON_IVY,M.DISEASED,8):t>=226&&t<=249?new j(e.Produce.WEEDS,M.GROWING,3):250===t?new j(e.Produce.REDBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.REDBERRIES].getStages()-1):251===t?new j(e.Produce.CADAVABERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.CADAVABERRIES].getStages()-1):252===t?new j(e.Produce.DWELLBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.DWELLBERRIES].getStages()-1):253===t?new j(e.Produce.JANGERBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.JANGERBERRIES].getStages()-1):254===t?new j(e.Produce.WHITEBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.WHITEBERRIES].getStages()-1):255===t?new j(e.Produce.POISON_IVY,M.GROWING,e.Produce._$wrappers[e.Produce.POISON_IVY].getStages()-1):null}};e.PatchImplementation$7_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=13?new j(e.Produce.APPLE,M.GROWING,t-8):t>=14&&t<=20?new j(e.Produce.APPLE,M.HARVESTABLE,t-14):t>=21&&t<=26?new j(e.Produce.APPLE,M.DISEASED,t-20):t>=27&&t<=32?new j(e.Produce.APPLE,M.DEAD,t-26):33===t?new j(e.Produce.APPLE,M.HARVESTABLE,0):34===t?new j(e.Produce.APPLE,M.GROWING,e.Produce._$wrappers[e.Produce.APPLE].getStages()-1):t>=35&&t<=40?new j(e.Produce.BANANA,M.GROWING,t-35):t>=41&&t<=47?new j(e.Produce.BANANA,M.HARVESTABLE,t-41):t>=48&&t<=53?new j(e.Produce.BANANA,M.DISEASED,t-47):t>=54&&t<=59?new j(e.Produce.BANANA,M.DEAD,t-53):60===t?new j(e.Produce.BANANA,M.HARVESTABLE,0):61===t?new j(e.Produce.BANANA,M.GROWING,e.Produce._$wrappers[e.Produce.BANANA].getStages()-1):t>=62&&t<=71?new j(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=77?new j(e.Produce.ORANGE,M.GROWING,t-72):t>=78&&t<=84?new j(e.Produce.ORANGE,M.HARVESTABLE,t-78):t>=85&&t<=89?new j(e.Produce.ORANGE,M.DISEASED,t-84):90===t?new j(e.Produce.ORANGE,M.DISEASED,6):t>=91&&t<=96?new j(e.Produce.ORANGE,M.DEAD,t-90):97===t?new j(e.Produce.ORANGE,M.HARVESTABLE,0):98===t?new j(e.Produce.ORANGE,M.GROWING,e.Produce._$wrappers[e.Produce.ORANGE].getStages()-1):t>=99&&t<=104?new j(e.Produce.CURRY,M.GROWING,t-99):t>=105&&t<=111?new j(e.Produce.CURRY,M.HARVESTABLE,t-105):t>=112&&t<=117?new j(e.Produce.CURRY,M.DISEASED,t-111):t>=118&&t<=123?new j(e.Produce.CURRY,M.DEAD,t-117):124===t?new j(e.Produce.CURRY,M.HARVESTABLE,0):125===t?new j(e.Produce.CURRY,M.GROWING,e.Produce._$wrappers[e.Produce.CURRY].getStages()-1):t>=126&&t<=135?new j(e.Produce.WEEDS,M.GROWING,3):t>=136&&t<=141?new j(e.Produce.PINEAPPLE,M.GROWING,t-136):t>=142&&t<=148?new j(e.Produce.PINEAPPLE,M.HARVESTABLE,t-142):t>=149&&t<=154?new j(e.Produce.PINEAPPLE,M.DISEASED,t-148):t>=155&&t<=160?new j(e.Produce.PINEAPPLE,M.DEAD,t-154):161===t?new j(e.Produce.PINEAPPLE,M.HARVESTABLE,0):162===t?new j(e.Produce.PINEAPPLE,M.GROWING,e.Produce._$wrappers[e.Produce.PINEAPPLE].getStages()-1):t>=163&&t<=168?new j(e.Produce.PAPAYA,M.GROWING,t-163):t>=169&&t<=175?new j(e.Produce.PAPAYA,M.HARVESTABLE,t-169):t>=176&&t<=181?new j(e.Produce.PAPAYA,M.DISEASED,t-175):t>=182&&t<=187?new j(e.Produce.PAPAYA,M.DEAD,t-181):188===t?new j(e.Produce.PAPAYA,M.HARVESTABLE,0):189===t?new j(e.Produce.PAPAYA,M.GROWING,e.Produce._$wrappers[e.Produce.PAPAYA].getStages()-1):t>=190&&t<=199?new j(e.Produce.WEEDS,M.GROWING,3):t>=200&&t<=205?new j(e.Produce.PALM,M.GROWING,t-200):t>=206&&t<=212?new j(e.Produce.PALM,M.HARVESTABLE,t-206):t>=213&&t<=218?new j(e.Produce.PALM,M.DISEASED,t-212):t>=219&&t<=224?new j(e.Produce.PALM,M.DEAD,t-218):225===t?new j(e.Produce.PALM,M.HARVESTABLE,0):226===t?new j(e.Produce.PALM,M.GROWING,e.Produce._$wrappers[e.Produce.PALM].getStages()-1):t>=227&&t<=232?new j(e.Produce.DRAGONFRUIT,M.GROWING,t-227):t>=233&&t<=239?new j(e.Produce.DRAGONFRUIT,M.HARVESTABLE,t-233):t>=240&&t<=245?new j(e.Produce.DRAGONFRUIT,M.DISEASED,t-239):t>=246&&t<=251?new j(e.Produce.DRAGONFRUIT,M.DEAD,t-245):252===t?new j(e.Produce.DRAGONFRUIT,M.HARVESTABLE,0):253===t?new j(e.Produce.DRAGONFRUIT,M.GROWING,e.Produce._$wrappers[e.Produce.DRAGONFRUIT].getStages()-1):t>=254&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$8_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.HAMMERSTONE,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.HAMMERSTONE,M.HARVESTABLE,t-8):t>=11&&t<=15?new j(e.Produce.ASGARNIAN,M.GROWING,t-11):t>=16&&t<=18?new j(e.Produce.ASGARNIAN,M.HARVESTABLE,t-16):t>=19&&t<=24?new j(e.Produce.YANILLIAN,M.GROWING,t-19):t>=25&&t<=27?new j(e.Produce.YANILLIAN,M.HARVESTABLE,t-25):t>=28&&t<=34?new j(e.Produce.KRANDORIAN,M.GROWING,t-28):t>=35&&t<=37?new j(e.Produce.KRANDORIAN,M.HARVESTABLE,t-35):t>=38&&t<=45?new j(e.Produce.WILDBLOOD,M.GROWING,t-38):t>=46&&t<=48?new j(e.Produce.WILDBLOOD,M.HARVESTABLE,t-46):t>=49&&t<=52?new j(e.Produce.BARLEY,M.GROWING,t-49):t>=53&&t<=55?new j(e.Produce.BARLEY,M.HARVESTABLE,t-53):t>=56&&t<=60?new j(e.Produce.JUTE,M.GROWING,t-56):t>=61&&t<=63?new j(e.Produce.JUTE,M.HARVESTABLE,t-61):t>=64&&t<=67?new j(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new j(e.Produce.HAMMERSTONE,M.GROWING,t-68):t>=72&&t<=74?new j(e.Produce.WEEDS,M.GROWING,3):t>=75&&t<=79?new j(e.Produce.ASGARNIAN,M.GROWING,t-75):t>=80&&t<=82?new j(e.Produce.WEEDS,M.GROWING,3):t>=83&&t<=88?new j(e.Produce.YANILLIAN,M.GROWING,t-83):t>=89&&t<=91?new j(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=98?new j(e.Produce.KRANDORIAN,M.GROWING,t-92):t>=99&&t<=101?new j(e.Produce.WEEDS,M.GROWING,3):t>=102&&t<=109?new j(e.Produce.WILDBLOOD,M.GROWING,t-102):t>=110&&t<=112?new j(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=116?new j(e.Produce.BARLEY,M.GROWING,t-113):t>=117&&t<=119?new j(e.Produce.WEEDS,M.GROWING,3):t>=120&&t<=124?new j(e.Produce.JUTE,M.GROWING,t-120):t>=125&&t<=132?new j(e.Produce.WEEDS,M.GROWING,3):t>=133&&t<=135?new j(e.Produce.HAMMERSTONE,M.DISEASED,t-132):t>=136&&t<=139?new j(e.Produce.WEEDS,M.GROWING,3):t>=140&&t<=143?new j(e.Produce.ASGARNIAN,M.DISEASED,t-139):t>=144&&t<=147?new j(e.Produce.WEEDS,M.GROWING,3):t>=148&&t<=152?new j(e.Produce.YANILLIAN,M.DISEASED,t-147):t>=153&&t<=156?new j(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=162?new j(e.Produce.KRANDORIAN,M.DISEASED,t-156):t>=163&&t<=166?new j(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=173?new j(e.Produce.WILDBLOOD,M.DISEASED,t-166):t>=174&&t<=177?new j(e.Produce.WEEDS,M.GROWING,3):t>=178&&t<=180?new j(e.Produce.BARLEY,M.DISEASED,t-177):181===t||t>=183&&t<=184?new j(e.Produce.WEEDS,M.GROWING,3):t>=185&&t<=188?new j(e.Produce.JUTE,M.DISEASED,t-184):t>=189&&t<=196?new j(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=199?new j(e.Produce.HAMMERSTONE,M.DEAD,t-196):t>=200&&t<=203?new j(e.Produce.WEEDS,M.GROWING,3):t>=204&&t<=207?new j(e.Produce.ASGARNIAN,M.DEAD,t-203):t>=208&&t<=211?new j(e.Produce.WEEDS,M.GROWING,3):t>=212&&t<=216?new j(e.Produce.YANILLIAN,M.DEAD,t-211):t>=217&&t<=220?new j(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=226?new j(e.Produce.KRANDORIAN,M.DEAD,t-220):t>=227&&t<=230?new j(e.Produce.WEEDS,M.GROWING,3):t>=231&&t<=237?new j(e.Produce.WILDBLOOD,M.DEAD,t-230):t>=238&&t<=241?new j(e.Produce.WEEDS,M.GROWING,3):t>=242&&t<=244?new j(e.Produce.BARLEY,M.DEAD,t-241):t>=245&&t<=248?new j(e.Produce.WEEDS,M.GROWING,3):t>=249&&t<=252?new j(e.Produce.JUTE,M.DEAD,t-248):t>=253&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$9_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new j(e.Produce.OAK,M.GROWING,t-8):12===t?new j(e.Produce.OAK,M.GROWING,e.Produce._$wrappers[e.Produce.OAK].getStages()-1):13===t||14===t?new j(e.Produce.OAK,M.HARVESTABLE,0):t>=15&&t<=20?new j(e.Produce.WILLOW,M.GROWING,t-15):21===t?new j(e.Produce.WILLOW,M.GROWING,e.Produce._$wrappers[e.Produce.WILLOW].getStages()-1):22===t||23===t?new j(e.Produce.WILLOW,M.HARVESTABLE,0):t>=24&&t<=31?new j(e.Produce.MAPLE,M.GROWING,t-24):32===t?new j(e.Produce.MAPLE,M.GROWING,e.Produce._$wrappers[e.Produce.MAPLE].getStages()-1):33===t||34===t?new j(e.Produce.MAPLE,M.HARVESTABLE,0):t>=35&&t<=44?new j(e.Produce.YEW,M.GROWING,t-35):45===t?new j(e.Produce.YEW,M.GROWING,e.Produce._$wrappers[e.Produce.YEW].getStages()-1):46===t||47===t?new j(e.Produce.YEW,M.HARVESTABLE,0):t>=48&&t<=59?new j(e.Produce.MAGIC,M.GROWING,t-48):60===t?new j(e.Produce.MAGIC,M.GROWING,e.Produce._$wrappers[e.Produce.MAGIC].getStages()-1):61===t||62===t?new j(e.Produce.MAGIC,M.HARVESTABLE,0):t>=63&&t<=72?new j(e.Produce.WEEDS,M.GROWING,3):t>=73&&t<=75?new j(e.Produce.OAK,M.DISEASED,t-72):77===t?new j(e.Produce.OAK,M.DISEASED,4):t>=78&&t<=79?new j(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=84?new j(e.Produce.WILLOW,M.DISEASED,t-79):86===t?new j(e.Produce.WILLOW,M.DISEASED,6):t>=87&&t<=88?new j(e.Produce.WEEDS,M.GROWING,3):t>=89&&t<=95?new j(e.Produce.MAPLE,M.DISEASED,t-88):97===t?new j(e.Produce.MAPLE,M.DISEASED,8):t>=98&&t<=99?new j(e.Produce.WEEDS,M.GROWING,3):t>=100&&t<=108?new j(e.Produce.YEW,M.DISEASED,t-99):110===t?new j(e.Produce.YEW,M.DISEASED,10):t>=111&&t<=112?new j(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=123?new j(e.Produce.MAGIC,M.DISEASED,t-112):125===t?new j(e.Produce.MAGIC,M.DISEASED,12):t>=126&&t<=136?new j(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new j(e.Produce.OAK,M.DEAD,t-136):141===t?new j(e.Produce.OAK,M.DEAD,4):t>=142&&t<=143?new j(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=148?new j(e.Produce.WILLOW,M.DEAD,t-143):150===t?new j(e.Produce.WILLOW,M.DEAD,6):t>=151&&t<=152?new j(e.Produce.WEEDS,M.GROWING,3):t>=153&&t<=159?new j(e.Produce.MAPLE,M.DEAD,t-152):161===t?new j(e.Produce.MAPLE,M.DEAD,8):t>=162&&t<=163?new j(e.Produce.WEEDS,M.GROWING,3):t>=164&&t<=172?new j(e.Produce.YEW,M.DEAD,t-163):174===t?new j(e.Produce.YEW,M.DEAD,10):t>=175&&t<=176?new j(e.Produce.WEEDS,M.GROWING,3):t>=177&&t<=187?new j(e.Produce.MAGIC,M.DEAD,t-176):189===t?new j(e.Produce.MAGIC,M.DEAD,12):t>=190&&t<=191?new j(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=197?new j(e.Produce.WILLOW,M.HARVESTABLE,0):t>=198&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$10_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new j(e.Produce.TEAK,M.GROWING,t-8):15===t?new j(e.Produce.TEAK,M.GROWING,e.Produce._$wrappers[e.Produce.TEAK].getStages()-1):16===t||17===t?new j(e.Produce.TEAK,M.HARVESTABLE,0):t>=18&&t<=23?new j(e.Produce.TEAK,M.DISEASED,t-17):t>=24&&t<=29?new j(e.Produce.TEAK,M.DEAD,t-23):t>=30&&t<=37?new j(e.Produce.MAHOGANY,M.GROWING,t-30):38===t?new j(e.Produce.MAHOGANY,M.GROWING,e.Produce._$wrappers[e.Produce.MAHOGANY].getStages()-1):39===t||40===t?new j(e.Produce.MAHOGANY,M.HARVESTABLE,0):t>=41&&t<=47?new j(e.Produce.MAHOGANY,M.DISEASED,t-40):t>=48&&t<=54?new j(e.Produce.MAHOGANY,M.DEAD,t-47):t>=55&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$11_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=17?new j(e.Produce.REDWOOD,M.GROWING,t-8):18===t?new j(e.Produce.REDWOOD,M.HARVESTABLE,0):t>=19&&t<=27?new j(e.Produce.REDWOOD,M.DISEASED,t-18):t>=28&&t<=36?new j(e.Produce.REDWOOD,M.DEAD,t-27):37===t?new j(e.Produce.REDWOOD,M.GROWING,e.Produce._$wrappers[e.Produce.REDWOOD].getStages()-1):t>=41&&t<=55?new j(e.Produce.REDWOOD,M.HARVESTABLE,0):null}};e.PatchImplementation$12_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=19?new j(e.Produce.SPIRIT_TREE,M.GROWING,t-8):20===t?new j(e.Produce.SPIRIT_TREE,M.GROWING,12):t>=21&&t<=31?new j(e.Produce.SPIRIT_TREE,M.DISEASED,t-20):t>=32&&t<=43?new j(e.Produce.SPIRIT_TREE,M.DEAD,t-31):44===t?new j(e.Produce.SPIRIT_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.SPIRIT_TREE].getStages()-1):t>=45&&t<=63?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$13_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=16?new j(e.Produce.ATTAS,M.GROWING,t-8):t>=17&&t<=25?new j(e.Produce.IASOR,M.GROWING,t-17):t>=26&&t<=34?new j(e.Produce.KRONOS,M.GROWING,t-26):t>=35&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$14_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new j(e.Produce.CACTUS,M.GROWING,t-8):t>=15&&t<=18?new j(e.Produce.CACTUS,M.HARVESTABLE,t-15):t>=19&&t<=24?new j(e.Produce.CACTUS,M.DISEASED,t-18):t>=25&&t<=30?new j(e.Produce.CACTUS,M.DEAD,t-24):31===t?new j(e.Produce.CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.CACTUS].getStages()-1):t>=32&&t<=38?new j(e.Produce.POTATO_CACTUS,M.GROWING,t-32):t>=39&&t<=45?new j(e.Produce.POTATO_CACTUS,M.HARVESTABLE,t-39):t>=46&&t<=51?new j(e.Produce.POTATO_CACTUS,M.DISEASED,t-45):t>=52&&t<=57?new j(e.Produce.POTATO_CACTUS,M.DEAD,t-51):58===t?new j(e.Produce.POTATO_CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.POTATO_CACTUS].getStages()-1):t>=59&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$15_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.SEAWEED,M.GROWING,t-4):t>=8&&t<=10?new j(e.Produce.SEAWEED,M.HARVESTABLE,t-8):t>=11&&t<=13?new j(e.Produce.SEAWEED,M.DISEASED,t-10):t>=14&&t<=16?new j(e.Produce.SEAWEED,M.DEAD,t-13):t>=17&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$16_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=11?new j(e.Produce.CALQUAT,M.GROWING,t-4):t>=12&&t<=18?new j(e.Produce.CALQUAT,M.HARVESTABLE,t-12):t>=19&&t<=25?new j(e.Produce.CALQUAT,M.DISEASED,t-18):t>=26&&t<=33?new j(e.Produce.CALQUAT,M.DEAD,t-25):34===t?new j(e.Produce.CALQUAT,M.GROWING,e.Produce._$wrappers[e.Produce.CALQUAT].getStages()-1):t>=35&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$17_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new j(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=12?new j(e.Produce.CELASTRUS,M.GROWING,t-8):13===t?new j(e.Produce.CELASTRUS,M.GROWING,e.Produce._$wrappers[e.Produce.CELASTRUS].getStages()-1):t>=14&&t<=16?new j(e.Produce.CELASTRUS,M.HARVESTABLE,t-14):17===t?new j(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=18&&t<=22?new j(e.Produce.CELASTRUS,M.DISEASED,t-17):t>=23&&t<=27?new j(e.Produce.CELASTRUS,M.DEAD,t-22):28===t?new j(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=29&&t<=255?new j(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$18_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=1?new j(e.Produce.WEEDS,M.GROWING,3):t>=2&&t<=9?new j(e.Produce.GRAPE,M.GROWING,t-2):10===t?new j(e.Produce.GRAPE,M.GROWING,7):t>=11&&t<=15?new j(e.Produce.GRAPE,M.HARVESTABLE,t-11):null}};e.PatchImplementation$19_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return t>=0&&t<=3?new j(e.Produce.WEEDS,M.GROWING,3-t):t>=8&&t<=13?new j(e.Produce.CRYSTAL_TREE,M.GROWING,t-8):14===t?new j(e.Produce.CRYSTAL_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.CRYSTAL_TREE].getStages()-1):15===t?new j(e.Produce.CRYSTAL_TREE,M.HARVESTABLE,0):null}};e.PatchImplementation$20_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return 0===t?new j(e.Produce.EMPTY_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new j(e.Produce.COMPOST,M.FILLING,t-1):t>=16&&t<=30?new j(e.Produce.COMPOST,M.HARVESTABLE,t-16):31===t||32===t?new j(e.Produce.COMPOST,M.GROWING,t-31):t>=33&&t<=47?new j(e.Produce.SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new j(e.Produce.SUPERCOMPOST,M.HARVESTABLE,t-48):94===t?new j(e.Produce.COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.COMPOST].getStages()-1):95===t||96===t?new j(e.Produce.SUPERCOMPOST,M.GROWING,t-95):126===t?new j(e.Produce.SUPERCOMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.SUPERCOMPOST].getStages()-1):t>=129&&t<=143?new j(e.Produce.ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new j(e.Produce.ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new j(e.Produce.ROTTEN_TOMATO,M.GROWING,t-159):t>=176&&t<=190?new j(e.Produce.ULTRACOMPOST,M.HARVESTABLE,t-176):null}};e.PatchImplementation$21_$WRAPPER=class extends V{constructor(e,t,n,r){super(e,t,n,r)}forVarbitValue(t){return 0===t?new j(e.Produce.EMPTY_GIANT_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new j(e.Produce.GIANT_COMPOST,M.FILLING,t-1):t>=16&&t<=30?new j(e.Produce.GIANT_COMPOST,M.HARVESTABLE,t-16):t>=33&&t<=47?new j(e.Produce.GIANT_SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new j(e.Produce.GIANT_SUPERCOMPOST,M.HARVESTABLE,t-48):t>=63&&t<=77?new j(e.Produce.GIANT_COMPOST,M.FILLING,15+t-63):t>=78&&t<=92?new j(e.Produce.GIANT_COMPOST,M.HARVESTABLE,15+t-78):93===t?new j(e.Produce.GIANT_COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.GIANT_COMPOST].getStages()-1):t>=97&&t<=99?new j(e.Produce.GIANT_SUPERCOMPOST,M.GROWING,t-97):t>=100&&t<=114?new j(e.Produce.GIANT_SUPERCOMPOST,M.HARVESTABLE,15+t-100):t>=127&&t<=128?new j(e.Produce.GIANT_COMPOST,M.GROWING,t-127):t>=129&&t<=143?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.GROWING,t-159):t>=161&&t<=175?new j(e.Produce.GIANT_SUPERCOMPOST,M.FILLING,15+t-161):t>=176&&t<=205?new j(e.Produce.GIANT_ULTRACOMPOST,M.HARVESTABLE,t-176):t>=207&&t<=221?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.HARVESTABLE,15+t-207):222===t?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.GROWING,e.Produce._$wrappers[e.Produce.GIANT_ROTTEN_TOMATO].getStages()-1):t>=223&&t<=237?new j(e.Produce.GIANT_ROTTEN_TOMATO,M.FILLING,15+t-223):null}}}(f||(f={})),f._$wrappers={0:new f.PatchImplementation$0_$WRAPPER(0,"BELLADONNA",b.SPECIAL,""),1:new f.PatchImplementation$1_$WRAPPER(1,"MUSHROOM",b.SPECIAL,""),2:new f.PatchImplementation$2_$WRAPPER(2,"HESPORI",b.SPECIAL,""),3:new f.PatchImplementation$3_$WRAPPER(3,"ALLOTMENT",b.ALLOTMENT,""),4:new f.PatchImplementation$4_$WRAPPER(4,"HERB",b.HERB,""),5:new f.PatchImplementation$5_$WRAPPER(5,"FLOWER",b.FLOWER,""),6:new f.PatchImplementation$6_$WRAPPER(6,"BUSH",b.BUSH,""),7:new f.PatchImplementation$7_$WRAPPER(7,"FRUIT_TREE",b.FRUIT_TREE,""),8:new f.PatchImplementation$8_$WRAPPER(8,"HOPS",b.HOPS,""),9:new f.PatchImplementation$9_$WRAPPER(9,"TREE",b.TREE,""),10:new f.PatchImplementation$10_$WRAPPER(10,"HARDWOOD_TREE",b.TREE,"Hardwood Trees"),11:new f.PatchImplementation$11_$WRAPPER(11,"REDWOOD",b.TREE,"Redwood Trees"),12:new f.PatchImplementation$12_$WRAPPER(12,"SPIRIT_TREE",b.TREE,"Spirit Trees"),13:new f.PatchImplementation$13_$WRAPPER(13,"ANIMA",b.SPECIAL,""),14:new f.PatchImplementation$14_$WRAPPER(14,"CACTUS",b.SPECIAL,"Cactus"),15:new f.PatchImplementation$15_$WRAPPER(15,"SEAWEED",b.SPECIAL,"Seaweed"),16:new f.PatchImplementation$16_$WRAPPER(16,"CALQUAT",b.FRUIT_TREE,"Calquat"),17:new f.PatchImplementation$17_$WRAPPER(17,"CELASTRUS",b.FRUIT_TREE,"Celastrus"),18:new f.PatchImplementation$18_$WRAPPER(18,"GRAPES",b.GRAPE,""),19:new f.PatchImplementation$19_$WRAPPER(19,"CRYSTAL_TREE",b.FRUIT_TREE,"Crystal Tree"),20:new f.PatchImplementation$20_$WRAPPER(20,"COMPOST",b.SPECIAL,"Compost Bin"),21:new f.PatchImplementation$21_$WRAPPER(21,"GIANT_COMPOST",b.SPECIAL,"Giant Compost Bin")},function(e){e[e.FARMING_4771=0]="FARMING_4771",e[e.FARMING_4772=1]="FARMING_4772",e[e.FARMING_4773=2]="FARMING_4773",e[e.FARMING_4774=3]="FARMING_4774",e[e.FARMING_4775=4]="FARMING_4775",e[e.FARMING_7904=5]="FARMING_7904",e[e.FARMING_7905=6]="FARMING_7905",e[e.FARMING_7906=7]="FARMING_7906",e[e.FARMING_7907=8]="FARMING_7907",e[e.FARMING_7908=9]="FARMING_7908",e[e.FARMING_7909=10]="FARMING_7909",e[e.FARMING_7910=11]="FARMING_7910",e[e.FARMING_7911=12]="FARMING_7911",e[e.FARMING_7912=13]="FARMING_7912",e[e.GRAPES_4953=14]="GRAPES_4953",e[e.GRAPES_4954=15]="GRAPES_4954",e[e.GRAPES_4955=16]="GRAPES_4955",e[e.GRAPES_4956=17]="GRAPES_4956",e[e.GRAPES_4957=18]="GRAPES_4957",e[e.GRAPES_4958=19]="GRAPES_4958",e[e.GRAPES_4959=20]="GRAPES_4959",e[e.GRAPES_4960=21]="GRAPES_4960",e[e.GRAPES_4961=22]="GRAPES_4961",e[e.GRAPES_4962=23]="GRAPES_4962",e[e.GRAPES_4963=24]="GRAPES_4963",e[e.GRAPES_4964=25]="GRAPES_4964",e[e.AUTOWEED=26]="AUTOWEED"}(B||(B={}));class ${constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.id&&(this.id=0),this.id=n}getId(){return this.id}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}B.__class="timetracking.Varbits",B.__interfaces=["java.lang.Comparable","java.io.Serializable"],B._$wrappers={0:new $(0,"FARMING_4771",4771),1:new $(1,"FARMING_4772",4772),2:new $(2,"FARMING_4773",4773),3:new $(3,"FARMING_4774",4774),4:new $(4,"FARMING_4775",4775),5:new $(5,"FARMING_7904",7904),6:new $(6,"FARMING_7905",7905),7:new $(7,"FARMING_7906",7906),8:new $(8,"FARMING_7907",7907),9:new $(9,"FARMING_7908",7908),10:new $(10,"FARMING_7909",7909),11:new $(11,"FARMING_7910",7910),12:new $(12,"FARMING_7911",7911),13:new $(13,"FARMING_7912",7912),14:new $(14,"GRAPES_4953",4953),15:new $(15,"GRAPES_4954",4954),16:new $(16,"GRAPES_4955",4955),17:new $(17,"GRAPES_4956",4956),18:new $(18,"GRAPES_4957",4957),19:new $(19,"GRAPES_4958",4958),20:new $(20,"GRAPES_4959",4959),21:new $(21,"GRAPES_4960",4960),22:new $(22,"GRAPES_4961",4961),23:new $(23,"GRAPES_4962",4962),24:new $(24,"GRAPES_4963",4963),25:new $(25,"GRAPES_4964",4964),26:new $(26,"AUTOWEED",5557)};class Y{constructor(e,t,n){void 0===this.region&&(this.region=null),void 0===this.name&&(this.name=null),void 0===this.varbit&&(this.varbit=null),void 0===this.implementation&&(this.implementation=null),this.name=e,this.varbit=t,this.implementation=n}getName(){return this.name}getVarbit(){return this.varbit}getImplementation(){return this.implementation}getRegion(){return this.region}setRegion(e){this.region=e}}Y.__class="timetracking.FarmingPatch";class k{constructor(e,t){void 0===this.name&&(this.name=null),void 0===this.regionID&&(this.regionID=0),void 0===this.patches&&(this.patches=null),void 0===this.varbits&&(this.varbits=null),this.name=e,this.regionID=t;for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a{let t=[];for(;e-- >0;)t.push(null);return t})(r.length);for(let o=0;o"function"===typeof e?e(K.CONFIG_GROUP,K.BOTANIST):e.apply(K.CONFIG_GROUP,K.BOTANIST))(t),s=e.getRegion().getRegionID()+"."+B._$wrappers[e.getVarbit()].getId(),E=(e=>"function"===typeof e?e(K.CONFIG_GROUP,s):e.apply(K.CONFIG_GROUP,s))(t);if(null==E)return null;let i=0,A=0;{const e=E.split(":");if(2===e.length)try{A=parseInt(e[0]),i=parseInt(e[1])}catch(S){}}if(i<=0)return null;const R=f._$wrappers[e.getImplementation()].forVarbitValue(A);if(null==R)return null;let l=R.getStage(),u=R.getStages(),O=R.getTickRate();a&&R.getProduce()===f.Produce.WEEDS&&(l=0,u=1,O=0),c&&(O=(e=>e<0?Math.ceil(e):Math.floor(e))(O/5));let d=0;if(O>0){const e=z.getTickTime(O,0,n,"function"==typeof(P=t)?P:(e,t)=>(P.apply?P.apply:P).call(P,e,t)),r=z.getTickTime(O,0,i,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),a=(e-r|0)/(60*O)|0;d=z.getTickTime(O,u-1-l,r,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),l+=a,l>=u&&(l=u-1)}var P;return new J(R.getProduce(),R.getCropState(),d,l,u)}static getTickTime(e,t,n,r){const a="function"===typeof(o=r)?o(K.CONFIG_GROUP,K.FARM_TICK_OFFSET_PRECISION):o.apply(K.CONFIG_GROUP,K.FARM_TICK_OFFSET_PRECISION);var o;const c=(e=>"function"===typeof e?e(K.CONFIG_GROUP,K.FARM_TICK_OFFSET):e.apply(K.CONFIG_GROUP,K.FARM_TICK_OFFSET))(r),s=null!=a&&0!==a.length?parseInt(a):null,E=null!=c&&0!==c.length?parseInt(c):null;let i=0;null!=s&&null!=E&&(s>=e||s>=40)&&(i=E%e*60);const A=n+i;return A-A%(60*e)+t*e*60-i}}z.__class="timetracking.FarmingTracker";var q,Q,X,Z,ee=n(2);!function(e){e[e.NORMAL=0]="NORMAL",e[e.OAK=1]="OAK",e[e.WILLOW=2]="WILLOW",e[e.TEAK=3]="TEAK",e[e.MAPLE=4]="MAPLE",e[e.MAHOGANY=5]="MAHOGANY",e[e.YEW=6]="YEW",e[e.MAGIC=7]="MAGIC",e[e.REDWOOD=8]="REDWOOD"}(q||(q={}));class te{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.itemID&&(this.itemID=0),this.__name=n,this.itemID=r}getName(){return this.__name}getItemID(){return this.itemID}static fromVarpValue(e){const t=(e-1)/3|0;return e<=0||t>=function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}().length?null:function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}()[t]}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}q.__class="timetracking.BirdHouse",q.__interfaces=["java.lang.Comparable","java.io.Serializable"],q._$wrappers={0:new te(0,"NORMAL","Bird House",v.BIRD_HOUSE),1:new te(1,"OAK","Oak Bird House",v.OAK_BIRD_HOUSE),2:new te(2,"WILLOW","Willow Bird House",v.WILLOW_BIRD_HOUSE),3:new te(3,"TEAK","Teak Bird House",v.TEAK_BIRD_HOUSE),4:new te(4,"MAPLE","Maple Bird House",v.MAPLE_BIRD_HOUSE),5:new te(5,"MAHOGANY","Mahogany Bird House",v.MAHOGANY_BIRD_HOUSE),6:new te(6,"YEW","Yew Bird House",v.YEW_BIRD_HOUSE),7:new te(7,"MAGIC","Magic Bird House",v.MAGIC_BIRD_HOUSE),8:new te(8,"REDWOOD","Redwood Bird House",v.REDWOOD_BIRD_HOUSE)},function(e){e[e.SEEDED=0]="SEEDED",e[e.BUILT=1]="BUILT",e[e.EMPTY=2]="EMPTY",e[e.UNKNOWN=3]="UNKNOWN"}(Q||(Q={}));class ne{constructor(e,t){this._$ordinal=e,this._$name=t}static fromVarpValue(e){return e<0||e>3*function(){let e=[];for(let t in q)isNaN(t)||e.push(parseInt(t,10));return e}().length?Q.UNKNOWN:0===e?Q.EMPTY:e%3===0?Q.SEEDED:Q.BUILT}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}Q.__class="timetracking.BirdHouseState",Q.__interfaces=["java.lang.Comparable","java.io.Serializable"],Q._$wrappers={0:new ne(0,"SEEDED"),1:new ne(1,"BUILT"),2:new ne(2,"EMPTY"),3:new ne(3,"UNKNOWN")},function(e){e[e.BIRD_HOUSE_MEADOW_NORTH=0]="BIRD_HOUSE_MEADOW_NORTH",e[e.BIRD_HOUSE_MEADOW_SOUTH=1]="BIRD_HOUSE_MEADOW_SOUTH",e[e.BIRD_HOUSE_VALLEY_NORTH=2]="BIRD_HOUSE_VALLEY_NORTH",e[e.BIRD_HOUSE_VALLEY_SOUTH=3]="BIRD_HOUSE_VALLEY_SOUTH"}(X||(X={}));class re{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.id&&(this.id=0),this.id=n}getId(){return this.id}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}X.__class="timetracking.VarPlayer",X.__interfaces=["java.lang.Comparable","java.io.Serializable"],X._$wrappers={0:new re(0,"BIRD_HOUSE_MEADOW_NORTH",1626),1:new re(1,"BIRD_HOUSE_MEADOW_SOUTH",1627),2:new re(2,"BIRD_HOUSE_VALLEY_NORTH",1628),3:new re(3,"BIRD_HOUSE_VALLEY_SOUTH",1629)};class ae{constructor(e,t,n){void 0===this.space&&(this.space=null),void 0===this.varp&&(this.varp=0),void 0===this.timestamp&&(this.timestamp=0),this.space=e,this.varp=t,this.timestamp=n}getSpace(){return this.space}getVarp(){return this.varp}getTimestamp(){return this.timestamp}}ae.__class="timetracking.BirdHouseData",function(e){e[e.MEADOW_NORTH=0]="MEADOW_NORTH",e[e.MEADOW_SOUTH=1]="MEADOW_SOUTH",e[e.VALLEY_NORTH=2]="VALLEY_NORTH",e[e.VALLEY_SOUTH=3]="VALLEY_SOUTH"}(Z||(Z={}));class oe{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.varp&&(this.varp=null),this.__name=n,this.varp=r}getName(){return this.__name}getVarp(){return this.varp}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}Z.__class="timetracking.BirdHouseSpace",Z.__interfaces=["java.lang.Comparable","java.io.Serializable"],Z._$wrappers={0:new oe(0,"MEADOW_NORTH","Mushroom Meadow (North)",X.BIRD_HOUSE_MEADOW_NORTH),1:new oe(1,"MEADOW_SOUTH","Mushroom Meadow (South)",X.BIRD_HOUSE_MEADOW_SOUTH),2:new oe(2,"VALLEY_NORTH","Verdant Valley (Northeast)",X.BIRD_HOUSE_VALLEY_NORTH),3:new oe(3,"VALLEY_SOUTH","Verdant Valley (Southwest)",X.BIRD_HOUSE_VALLEY_SOUTH)};class ce{loadFromConfig(e){const t=new Map;for(let a=0;a("0"+Math.min(255,Math.max(0,parseInt(e,16)+t)).toString(16)).substr(-2))}function Ee(e){switch(e){case Q.EMPTY:case Q.UNKNOWN:return"#4D4D4D";case Q.BUILT:return"#E6961E";case Q.SEEDED:default:return"#26A831"}}function ie(e){switch(e){case M.DEAD:return"#b81818";case M.DISEASED:case M.FILLING:return"#E6961E";case M.EMPTY:return"#FF4D4D4D";case M.HARVESTABLE:case M.GROWING:default:return"#26A831"}}function Ae(e){let t="in ";const n=Math.floor((e+59)/60),r=Math.floor(n%60),a=Math.floor(n/60%24),o=Math.floor(n/1440);return o>0&&(t+=o+"d "),a>0&&(t+=a+"h "),r>0&&(t+=r+"m "),t}function Re(){return{title:"",subtitle:"",icon:0,estimateText:"",tooltipText:"",progress:{minimumValue:0,maximumValue:1,value:0,visible:!0,background:se("#26A831",-60),foreground:"#26A831"}}}function le(e,t){function n(n,r){if(!e)return null;let a=t[n+".rsprofile."+e.accountId+"."+r];return a||(a=null),a}const r=[];return function(e,t){const n=new z,r=(new x).getTabs();for(const[a,o]of r.entries()){const r=b._$wrappers[a];o.sort((e,t)=>e.getName().localeCompare(t.getName())),o.sort((e,t)=>e.getRegion().getName().localeCompare(t.getRegion().getName()));const c={name:r.getName(),icon:r.getItemID(),panels:[]},s=(new Date).getTime()/1e3;for(let e of o){const r=Re();r.icon=v.WEEDS,r.title=e.getRegion().getName()+(null==e.getName()||""===e.getName()?"":" ("+e.getName()+")");const a=f._$wrappers[e.getImplementation()];r.subtitle=null!=a.getName()&&""!==a.getName()?a.getName():"";const o=n.predictPatch(e,t);if(null==o){r.tooltipText="Unknown state",r.estimateText="Unknown",r.progress.visible=!1,c.panels.push(r);continue}const E=f.Produce._$wrappers[o.getProduce()];switch(E.getItemID()<0?(r.icon=v.WEEDS,r.tooltipText="Unknown state"):(r.icon=E.getItemID(),r.tooltipText=E.getName()),o.getCropState()){case M.HARVESTABLE:r.estimateText="Done";break;case M.GROWING:o.getDoneEstimate()e.title.localeCompare(t.title)),c.panels.sort((e,t)=>e.subtitle.localeCompare(t.subtitle)),e.push(c)}}(r,n),function(e,t){const n=(new ce).loadFromConfig(t),r=(new Date).getTime()/1e3,a=b._$wrappers[b.BIRD_HOUSE],o={name:a.getName(),icon:a.getItemID(),panels:[]};for(const[c,s]of n.entries()){const e=Z._$wrappers[c];let t=-1,n=0;null!=s&&(t=s.getVarp(),n=s.getTimestamp());const a=q._$wrappers[te.fromVarpValue(t)],E=ne.fromVarpValue(t),i=Re();switch(i.title=e.getName(),i.progress.maximumValue=3e3,null==a?(i.icon=v.FEATHER,i.progress.visible=!1):(i.icon=a.getItemID(),i.tooltipText=a.getName(),i.progress.visible=!0),i.progress.foreground=Ee(E),i.progress.background=se(Ee(E),-60),E){case Q.EMPTY:i.tooltipText="Empty",i.estimateText="Empty";break;case Q.BUILT:i.progress.value=0,i.estimateText="Built";break;case Q.SEEDED:const e=n+3e3-r;e<=0?(i.progress.value=3e3,i.estimateText="Done"):(i.progress.value=3e3-e,i.estimateText="Done "+Ae(e));break;default:i.tooltipText="Unknown state",i.estimateText="Unknown"}o.panels.push(i)}e.push(o)}(r,n),r.sort((e,t)=>e.name.localeCompare(t.name)),r}ce.__class="timetracking.BirdHouseTracker";const ue=Object(ee.a)(u.f,u.o,(e,t)=>le(t,e));n(446);const Oe=e=>Object(r.g)("li",{class:"list-group-item w-100"},Object(r.g)("div",{class:"d-flex align-self-stretch tooltip-tag"},Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.tooltipText)),Object(r.g)("div",{class:"m-2"},Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)})),Object(r.g)("div",{class:"w-100"},Object(r.g)("h5",{class:"card-title"},e.title+" ",e.subtitle&&Object(r.g)("small",{class:"text-muted"},e.subtitle)),Object(r.g)("h6",{class:"card-subtitle mb-2 text-muted"},e.estimateText),(e=>{let{minimumValue:t,maximumValue:n,value:a,visible:o,foreground:c,background:s}=e;if(!o)return Object(r.g)("noscript",null);const E=(a-t)/(n-t),i=100*Math.min(1,E);return Object(r.g)("div",{class:"progress w-100",style:{backgroundColor:s}},Object(r.g)("div",{class:"progress-bar",role:"progressbar",style:{width:i+"%",backgroundColor:c}}))})(e.progress)))),de=e=>Object(r.g)("div",{class:"card mb-3",id:e.name},Object(r.g)("div",{class:"card-header"},Object(r.g)("img",{alt:"",src:Object(O.c)(e.icon)}),Object(r.g)("a",{href:"#"+e.name},e.name)),Object(r.g)("ul",{class:"list-group w-100"},e.panels.map(Oe))),Pe=e=>Object(r.g)("div",{class:"card tooltip-tag"},Object(r.g)("a",{href:"#"+e.name},Object(r.g)("img",{alt:"",class:"card-img-top",src:Object(O.c)(e.icon)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)));var Se=Object(a.b)((e,t)=>({...t,timeTracking:ue(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{timeTracking:t}=e;return Object(r.g)(r.b,null,Object(r.g)("div",{class:"row pl-2 pb-1 tracking-container"},t.map(Pe)),t.map(de))}));const Ie=e=>"STANDARD"!==e?" for "+Object(O.h)(e):"";var Te=Object(a.b)((e,t)=>({...t,selectedAccount:Object(u.o)(e),profileConfig:Object(u.n)(e)}),e=>Object(c.b)({updateConfig:u.w,fetchBootstrap:P.b,fetchConfig:u.c,changeAccount:u.a},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n}=e;await t(),await n()})(e=>{let{selectedAccount:t,profileConfig:n,updateConfig:a,changeAccount:c}=e;return t?Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-header"},"Do you really want to delete RuneScape profile"," ",Object(r.g)("b",null,t.displayName),Ie(t.type),"?",Object(r.g)("br",null),Object(r.g)("span",{class:"text-muted"},"You can select different profile from the list on left.")),Object(r.g)("div",{class:"card-body"},Object(r.g)("p",null,"This will delete the RuneScape profile"," ",Object(r.g)("b",null,t.displayName),Ie(t.type)," which also includes data for:"),Object(r.g)("ul",null,(e=>Object.keys(e).map(e=>e.split(".")[0]).filter((e,t,n)=>n.indexOf(e)===t).filter(e=>"rsprofile"!==e).map(e=>Object(r.g)("li",null,Object(r.g)("small",null,e))))(n))),Object(r.g)("div",{class:"card-footer"},Object(r.g)("p",{class:"text-center"},Object(r.g)("b",null,"Warning:")," This action is irreversible!"),Object(r.g)("button",{class:"btn btn-block btn-danger",onClick:()=>(async(e,t,n)=>{const r={...e};Object.keys(r).forEach(e=>r[e]=null),n(null),await t(r),Object(o.c)("/account/home")})(n,a,c)},"Delete RuneScape profile ",Object(r.g)("b",null,t.displayName),Ie(t.type)))):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-body"},"No RuneScape profile selected"))})),we=n(293),Ne=n(294);const Ge=e=>e.name+" ("+e.region+")";var _e=Object(a.b)((e,t)=>({...t,tiles:Object(u.r)(e),filter:Object(u.s)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,setTileMarkersFilter:u.v},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchConfig:n,fetchItems:r}=e;await t(),await n()})(e=>{let{tiles:t,filter:n,setTileMarkersFilter:a}=e;if(0===t.length)return null;const o=t.map(Ge);n=n||o[0];const c=t.flatMap(e=>e.data),s=t.find(e=>Ge(e)===n).data,E=JSON.stringify(s);return Object(r.g)(r.b,null,Object(r.g)("div",{class:"mb-2"},Object(r.g)(we.a,{prefix:"",value:n,choices:o,onClick:a})),Object(r.g)(Ne.a,{tiles:c,selected:s}),Object(r.g)("pre",{class:"pre-select"},E,Object(r.g)("div",{class:"text-right"},Object(r.g)("a",{href:"/tile/show/#"+btoa(E),class:"user-select-none"},"Share"))))})),ge=n(129),De=n.n(ge);n(447);const me=e=>"https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id="+e,pe=e=>{return Object(r.g)("a",{href:(t=e.itemId,"http://services.runescape.com/m=itemdb_oldschool/viewitem?obj="+t),class:"list-group-item list-group-item-action flex-column align-items-start"},Object(r.g)("div",{class:"d-flex w-100"},Object(r.g)("img",{alt:e.name,class:"ge-item-img img-fluid",style:{height:60,width:60},src:me(e.itemId)}),Object(r.g)("div",{class:"ge-record-info"},Object(r.g)("h5",null,e.name," x ",e.quantity),Object(r.g)("p",{class:"mb-0"},Object(r.g)("img",{src:`/img/ge_${e.buy?"bought":"sold"}.png`,alt:""}),Object(r.g)("span",null,e.buy?"Bought":"Sold")," for"," ",Object(r.g)("span",null,Object(O.f)(e.price*e.quantity))," gp (",Object(r.g)("span",null,Object(O.f)(e.price))," gp/ea)")),Object(r.g)("div",{class:"ge-record-timestamp ml-auto"},Object(r.g)("small",{title:e.date,class:"d-block"},De()(e.date)))));var t};const he=[{tag:"home",label:"Home",icon:"fa-fw fas fa-home",component:I,showAccounts:!0,data:e=>{let{slayerTask:t,bossLog:n}=e;return{slayerTask:t,bossLog:n}}},{tag:"grand-exchange",label:"Grand Exchange",icon:"fa-fw fas fa-balance-scale",component:Object(a.b)((e,t)=>({...t,ge:Object(u.h)(e),geFilter:Object(u.k)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchItems:N.b,fetchConfig:u.c,setGeFilter:u.t},e))(Object(d.a)(async e=>{let{fetchBootstrap:t,fetchItems:n,fetchConfig:r}=e;await t(),await n(),await r()})(e=>{let{ge:t,geFilter:n,setGeFilter:a}=e;return Object(r.g)(r.b,null,Object(r.g)(T.a,{value:n,onInput:e=>((e,t)=>t(e.target.value))(e,a)}),Object(r.g)("ul",{class:"ge-records list-group list-group-small"},t.sort((e,t)=>t.date-e.date).map(pe)))})),showAccounts:!0,data:e=>{let{rawGe:t}=e;return t.map(e=>({buy:e.buy,itemId:e.itemId,quantity:e.quantity,price:e.price,time:e.time}))}},{tag:"loot-tracker",label:"Loot Tracker",icon:"fa-fw fas fa-file-invoice-dollar",component:h,showAccounts:!0,data:e=>{let{rawLoot:t}=e;return t}},{tag:"time-tracking",label:"Time Tracking",icon:"fa-fw fas fa-clock",component:Se,showAccounts:!0,data:e=>{let{rawTimeTracking:t}=e;return t}},{tag:"tags",label:"Tags",icon:"fa-fw fas fa-code",component:U,data:e=>{let{rawTags:t}=e;return t}},{tag:"tile-markers",label:"Tile markers",icon:"fa-fw fas fa-tree",component:_e,data:e=>{let{rawTiles:t}=e;return t}},{tag:"delete",label:"Delete profile",icon:"fa-fw fas fa-trash",class:"list-group-item-danger",bottom:!0,component:Te,showAccounts:!0}],We=(e,t)=>Object(r.g)(o.a,{class:"list-group-item list-group-item-action"+(t.class?" "+t.class:"")+(e.tag===t.tag?" active":""),key:t.tag,href:"/account/"+t.tag},Object(r.g)("i",{class:t.icon})," ",t.label),Le=(e,t,n)=>{return Object(r.g)("button",{class:"list-group-item list-group-item-action"+(t&&t.accountId===e.accountId?" active":""),onClick:()=>n(e)},Object(r.g)("i",{class:"fas fa-fw fa-user"})," ",e.displayName," ",(a=e.type)&&"STANDARD"!==a?Object(r.g)("span",{class:"badge badge-info"},Object(O.h)(a)):"");var a};t.default=Object(a.b)((e,t)=>({...t,loggedIn:Object(R.b)(e),accounts:Object(u.d)(e),selectedAccount:Object(u.o)(e),slayerTask:Object(u.p)(e),bossLog:Object(u.e)(e),rawGe:Object(u.j)(e),rawLoot:Object(u.l)(e),rawTags:Object(u.q)(e),rawTimeTracking:ue(e),rawTiles:Object(u.r)(e)}),e=>Object(c.b)({logout:R.d,changeAccount:u.a},e))(e=>{let{tag:t,accounts:n,changeAccount:a,loggedIn:o,logout:c,...E}=e;if(!o)return Object(r.g)(l,{to:"/"});const R=he.find(e=>e.tag===t),u=he.filter(e=>!e.bottom),O=he.filter(e=>e.bottom);if(!R)return Object(r.g)(W.a,null);const d=(e=>e.component)(R);return Object(r.g)(s.a,null,Object(r.g)(A.a,{title:`${R.label} - Account - ${i.a.title}`}),Object(r.g)("section",{id:"account",class:"dark-card"},Object(r.g)("div",{class:"content-section account-container"},Object(r.g)("div",{class:"row"},Object(r.g)("div",{class:"col-xl-3 col-md-4 col-sm-12 col-xs-12"},Object(r.g)("ul",{class:"list-group list-group-small mb-4"},u.map(e=>We(R,e))),Object(r.g)("ul",{class:"list-group list-group-small mb-4"},((e,t)=>{if(!e.data)return null;const n=(0,e.data)(t),a=URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/octet-stream"}));return Object(r.g)("a",{id:"account-export",class:"list-group-item list-group-item-primary",download:e.tag+".json",href:a},Object(r.g)("i",{class:"fas fa-fw fa-download"})," Export ",e.label)})(R,E),Object(r.g)("button",{class:"list-group-item list-group-item-action",onClick:c},Object(r.g)("i",{class:"fas fa-fw fa-power-off"})," Logout")),R.showAccounts&&Object(r.g)(r.b,null,Object(r.g)("p",{className:"list-title"},"RuneScape Profile"),Object(r.g)("ul",{class:"list-group list-group-small mb-4"},n.filter(e=>null!==e.displayName).map(e=>Le(e,E.selectedAccount,a)),O.map(e=>We(R,e))))),Object(r.g)("div",{class:"col-xl-9 col-md-8 col-sm-12 col-xs-12"},Object(r.g)(d,E))))))})}}]);
+//# sourceMappingURL=8.02229295.chunk.js.map
\ No newline at end of file
diff --git a/static/js/8.00f46989.chunk.js.map b/static/js/8.02229295.chunk.js.map
similarity index 99%
rename from static/js/8.00f46989.chunk.js.map
rename to static/js/8.02229295.chunk.js.map
index db3df4c3b..46ee1464f 100644
--- a/static/js/8.00f46989.chunk.js.map
+++ b/static/js/8.02229295.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","components/search-bar.js","../node_modules/@gouch/to-title-case/to-title-case.js","components/choice.js","components/runescape-map.js","components/redirect.js","routes/account/home.js","routes/account/loot-tracker.js","routes/account/tags.js","modules/timetracking/Tab.js","modules/timetracking/CropState.js","modules/timetracking/PatchImplementation.js","modules/timetracking/Varbits.js","modules/timetracking/Autoweed.js","modules/timetracking/ItemID.js","modules/timetracking/PatchState.js","modules/timetracking/NullItemID.js","modules/timetracking/FarmingPatch.js","modules/timetracking/FarmingRegion.js","modules/timetracking/FarmingWorld.js","modules/timetracking/TimeTrackingConfig.js","modules/timetracking/PatchPrediction.js","modules/timetracking/FarmingTracker.js","modules/timetracking/BirdHouse.js","modules/timetracking/BirdHouseState.js","modules/timetracking/VarPlayer.js","modules/timetracking/BirdHouseSpace.js","modules/timetracking/BirdHouseData.js","modules/timetracking/BirdHouseTracker.js","modules/time-tracking.js","routes/account/time-tracking.js","routes/account/delete.js","routes/account/tiles.js","routes/account/grand-exchange.js","routes/account.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","SearchBar","onInput","type","placeholder","ref","input","focus","String","prototype","toTitleCase","smallWords","alphanumericPattern","split","map","current","index","array","search","toLowerCase","substr","replace","match","toUpperCase","join","Choice","prefix","choices","onClick","choice","DEFAULT_VIEW","MainTileLayer","TileLayer","extend","initialize","url","options","_url","originalPlane","plane","setOptions","getTileUrl","coords","Util","template","source","mapId","zoom","z","x","y","resetPlane","setPlane","original","getPlane","minPlane","min","maxPlane","_map","fire","redraw","createTile","done","tile","call","onerror","error","preventDefault","fromLatLng","latLng","parseInt","lng","lat","toLatLng","mapTile","regionId","regionX","regionY","jsColor","intColor","num","argb","slice","label","prepareMap","defaultView","setView","mouseRect","rectangle","fillColor","fillOpacity","weight","interactive","addTo","on","e","mousePos","latlng","setBounds","locationControl","Control","position","onAdd","container","DomUtil","create","button","updateButton","region","center","getCenter","rsCenter","rsRegion","regions","includes","findCurrentRegion","hidden","textContent","resetButton","DomEvent","disableClickPropagation","addListener","viewport","fitBounds","tileLayer","planeButtons","upButton","downButton","updateButtons","addClass","removeClass","TileMapHandler","tiles","selected","useMap","noWrap","minZoom","maxNativeZoom","maxZoom","errorTileUrl","tilesX","t","tilesY","minX","maxX","minY","maxY","bounds","Fragment","ImageOverlay","Rectangle","pathOptions","Tooltip","RuneScapeMap","_ref2","MapContainer","maxBounds","maxBoundsViscosity","attributionControl","whenCreated","crs","CRS","Simple","Redirect","componentWillMount","window","location","to","nameToItemId","connect","mapStateToProps","slayerTask","getSlayerTask","bossLog","getBossLog","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","async","hasTask","start","remaining","streak","points","buildSlayerTask","src","alt","pb","toMMSS","kc","buildBossLog","glyphMap","1","w","2","3","4","5","6","7","8","9","0","M","K","quantityNums","numToQuantity","l","si","buildDrop","drop","str","g","filter","backgroundPositionX","backgroundPositionY","buildQuantity","qty","wikiURLForItem","formatPrice","price","buildLootRecord","record","count","drops","loot","getFilteredLoot","lootFilter","getLootFilter","fetchPrices","fetchItems","setLootFilter","handleChange","event","target","buildTag","tag","csv","icon","concat","items","margin","padding","paddingBottom","formatIcon","item","Tab","CropState","PatchImplementation","Varbits","Autoweed","tags","getTags","ItemID","GRIMY_RANARR_WEED","LIMPWURT_ROOT","SNAPE_GRASS","WHITE_BERRIES","JANGERBERRIES","GUAM_LEAF","MARRENTILL","TARROMIN","HARRALANDER","RANARR_WEED","IRIT_LEAF","AVANTOE","KWUARM","CADANTINE","DWARF_WEED","TORSTOL","CADAVA_BERRIES","BATTLESTAFF","MAGIC_LOGS","YEW_LOGS","MAPLE_LOGS","WILLOW_LOGS","OAK_LOGS","WOAD_LEAF","POTATO","REDBERRIES","COOKING_APPLE","ONION","BANANA","CABBAGE","TOMATO","GRAPES","ORANGE","PINEAPPLE","DWELLBERRIES","CAVE_NIGHTSHADE","RED_FLOWERS","LANTADYME","WATCH","TOADFLAX","SNAPDRAGON","POTATO_CACTUS","GOUTWEED","STRAWBERRY","JUTE_FIBRE","CURRY_LEAF","PAPAYA_FRUIT","COCONUT","CALQUAT_FRUIT","WATERMELON","SWEETCORN","HAMMERSTONE_HOPS","ASGARNIAN_HOPS","YANILLIAN_HOPS","KRANDORIAN_HOPS","WILDBLOOD_HOPS","MUSHROOM","BARLEY","MARIGOLDS","NASTURTIUMS","ROSEMARY","CACTUS_SPINE","POISON_IVY_BERRIES","WEEDS","SCARECROW","SPIRIT_TREE","MAHOGANY_LOGS","TEAK_LOGS","REDWOOD_LOGS","GIANT_SEAWEED","OLD_NOTES","DRAGONFRUIT","WHITE_LILY","CRYSTAL_SHARDS","BIRD_HOUSE","OAK_BIRD_HOUSE","WILLOW_BIRD_HOUSE","TEAK_BIRD_HOUSE","MAPLE_BIRD_HOUSE","MAHOGANY_BIRD_HOUSE","YEW_BIRD_HOUSE","MAGIC_BIRD_HOUSE","REDWOOD_BIRD_HOUSE","FEATHER","COMPOST_BIN","COMPOST","SUPERCOMPOST","ULTRACOMPOST","ROTTEN_TOMATO","Tab_$WRAPPER","_$ordinal","_$name","itemID","undefined","__name","FARMING_TABS","HERB","TREE","FRUIT_TREE","SPECIAL","FLOWER","ALLOTMENT","BUSH","GRAPE","HOPS","getName","getItemID","ordinal","compareTo","other","isNaN","10","11","PatchState","produce","cropState","stage","getStages","HARVESTABLE","FILLING","Produce","getHarvestStages","getTickRate","getRegrowTickrate","GROWING","getTickrate","getStage","getProduce","getCropState","NullItemID","NULL_22938","NULL_22939","NULL_22940","NULL_23044","PatchImplementation_$WRAPPER","tab","getTab","Produce_$WRAPPER","contractName","patchImplementation","tickrate","stages","regrowTickrate","harvestStages","Error","getContractName","getPatchImplementation","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","CACTUS","59","60","HARDWOOD_TREE","61","62","ANIMA","63","64","65","SEAWEED","66","67","68","BELLADONNA","69","CALQUAT","70","71","CELASTRUS","72","REDWOOD","73","HESPORI","74","CRYSTAL_TREE","75","76","77","78","79","80","81","GIANT_COMPOST","82","83","84","PatchImplementation$0_$WRAPPER","forVarbitValue","DISEASED","DEAD","PatchImplementation$1_$WRAPPER","PatchImplementation$2_$WRAPPER","PatchImplementation$3_$WRAPPER","PatchImplementation$4_$WRAPPER","GUAM","RANARR","IRIT","ANYHERB","PatchImplementation$5_$WRAPPER","MARIGOLD","NASTURTIUM","WOAD","LIMPWURT","PatchImplementation$6_$WRAPPER","CADAVABERRIES","WHITEBERRIES","POISON_IVY","PatchImplementation$7_$WRAPPER","APPLE","CURRY","PAPAYA","PALM","PatchImplementation$8_$WRAPPER","HAMMERSTONE","ASGARNIAN","YANILLIAN","KRANDORIAN","WILDBLOOD","JUTE","PatchImplementation$9_$WRAPPER","OAK","WILLOW","MAPLE","YEW","MAGIC","PatchImplementation$10_$WRAPPER","TEAK","MAHOGANY","PatchImplementation$11_$WRAPPER","PatchImplementation$12_$WRAPPER","PatchImplementation$13_$WRAPPER","ATTAS","IASOR","KRONOS","PatchImplementation$14_$WRAPPER","PatchImplementation$15_$WRAPPER","PatchImplementation$16_$WRAPPER","PatchImplementation$17_$WRAPPER","PatchImplementation$18_$WRAPPER","PatchImplementation$19_$WRAPPER","PatchImplementation$20_$WRAPPER","EMPTY_COMPOST_BIN","EMPTY","PatchImplementation$21_$WRAPPER","EMPTY_GIANT_COMPOST_BIN","GIANT_SUPERCOMPOST","GIANT_ROTTEN_TOMATO","GIANT_ULTRACOMPOST","Varbits_$WRAPPER","getId","FarmingPatch","varbit","implementation","getVarbit","getImplementation","getRegion","setRegion","FarmingRegion","regionID","patches","varbits","_len","arguments","Array","_key","s","a","push","p","getRegionID","getPatches","getVarbits","FarmingWorld","Map","tabs","farmingGuildRegion","add","FARMING_4771","FARMING_4772","FARMING_4773","FARMING_4774","FARMING_4775","FARMING_7904","GRAPES_4953","GRAPES_4954","GRAPES_4955","GRAPES_4956","GRAPES_4957","GRAPES_4958","GRAPES_4959","GRAPES_4960","GRAPES_4961","GRAPES_4962","GRAPES_4963","GRAPES_4964","FARMING_7908","FARMING_7905","FARMING_7906","FARMING_7912","FARMING_7909","FARMING_7911","FARMING_7910","FARMING_7907","r","set","er","has","get","getFarmingGuildRegion","getRegions","getTabs","TimeTrackingConfig","CONFIG_GROUP","FARM_TICK_OFFSET","FARM_TICK_OFFSET_PRECISION","AUTOWEED","BOTANIST","TIMERS","STOPWATCHES","PatchPrediction","doneEstimate","getDoneEstimate","FarmingTracker","predictPatch","patch","getConfiguration","unixNow","n","ceil","floor","autoweed","ON","apply","botanist","toString","key","storedValue","unixTime","parts","tickNow","getTickTime","funcInst","arg0","arg1","tickTime","delta","tickRate","ticks","requestedTime","offsetPrecisionMinsString","offsetTimeMinsString","offsetPrecisionMins","offsetTimeMins","calculatedOffsetTime","BirdHouse","BirdHouseState","VarPlayer","BirdHouseSpace","BirdHouse_$WRAPPER","varp","result","BirdHouseState_$WRAPPER","UNKNOWN","SEEDED","BUILT","VarPlayer_$WRAPPER","BirdHouseData","space","timestamp","getSpace","getVarp","getTimestamp","BirdHouseSpace_$WRAPPER","BIRD_HOUSE_MEADOW_NORTH","BIRD_HOUSE_MEADOW_SOUTH","BIRD_HOUSE_VALLEY_NORTH","BIRD_HOUSE_VALLEY_SOUTH","BirdHouseTracker","loadFromConfig","birdHouseData","updated","adjustColor","amount","getBirdStateColor","getCropStateColor","getFormattedEstimate","remainingSeconds","sb","duration","minutes","hours","days","preparePanel","title","subtitle","estimateText","tooltipText","progress","minimumValue","maximumValue","visible","background","foreground","buildData","account","configuration","group","accountId","tabEntries","farmingTracker","farmingTabs","tabsKey","tabList","entries","sort","b","localeCompare","tabEntry","panels","panel","prediction","console","warn","buildFarmingData","birdhouseTabs","data","spaceValue","startTime","birdHouse","fromVarpValue","remainingTime","buildBirdhouseData","getTimeTracking","createSelector","getConfig","getSelectedAccount","config","buildTracker","pc","progressFill","backgroundColor","role","buildProgress","buildTab","buildTopTab","timeTracking","_ref3","accountType","upperToTitleCase","selectedAccount","profileConfig","getProfileConfig","updateConfig","changeAccount","displayName","keys","k","v","indexOf","changeList","newConfig","forEach","route","deleteAccount","tileName","getTileMarkers","getTileMarkersFilter","setTileMarkersFilter","allTiles","flatMap","selectedTiles","find","mapData","JSON","stringify","btoa","formatGeIcon","buildRecord","itemId","quantity","buy","numberWithCommas","ago","menu","component","Home","showAccounts","ge","getFilteredGe","geFilter","getGeFilter","setGeFilter","rawGe","time","LootTracker","rawLoot","TimeTracking","_ref4","rawTimeTracking","Tags","_ref5","rawTags","Tiles","_ref6","rawTiles","bottom","Delete","menuItem","currentMenu","m","Link","accountMenu","loggedIn","isLoggedIn","accounts","getAccounts","getGe","getLoot","logout","_ref7","topMenu","bottomMenu","NotFound","MenuBody","menuBody","Meta","hero","menuExport","dataJson","currentSelector","URL","createObjectURL","Blob","download","className"],"mappings":"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ACtB5K,EAAG,IAAI6L,EACL,EACA,QACA,QACA,QACA,KACA1I,EAAOgE,MACP,EACA,GAEF7H,EAAG,IAAIuM,EACL,EACA,YACA,YACA,YACA,KACA1I,EAAOiE,UACP,EACA,GAEF5H,EAAG,IAAIqM,EACL,EACA,SACA,SACA,WACA/I,EAAoB2G,UACpBtG,EAAOyB,OACP,GACA,EACA,EACA,GAEFnF,EAAG,IAAIoM,EACL,EACA,QACA,QACA,SACA/I,EAAoB2G,UACpBtG,EAAO4B,MACP,GACA,EACA,EACA,GAEFrF,EAAG,IAAImM,EACL,EACA,UACA,UACA,WACA/I,EAAoB2G,UACpBtG,EAAO8B,QACP,GACA,EACA,EACA,GAEFtF,EAAG,IAAIkM,EACL,EACA,SACA,SACA,WACA/I,EAAoB2G,UACpBtG,EAAO+B,OACP,GACA,EACA,EACA,GAEFtF,EAAG,IAAIiM,EACL,EACA,YACA,YACA,YACA/I,EAAoB2G,UACpBtG,EAAOmD,UACP,GACA,EACA,EACA,GAEFzG,EAAG,IAAIgM,EACL,EACA,aACA,aACA,eACA/I,EAAoB2G,UACpBtG,EAAO4C,WACP,GACA,EACA,EACA,GAEFjG,EAAG,IAAI+L,EACL,EACA,aACA,aACA,cACA/I,EAAoB2G,UACpBtG,EAAOkD,WACP,GACA,EACA,EACA,GAEFtG,EAAG,IAAI8L,EACL,EACA,cACA,cACA,cACA/I,EAAoB2G,UACpBtG,EAAOG,YACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI0B,EACN,GACA,WACA,WACA,YACA/I,EAAoB0G,OACpBrG,EAAO2D,UACP,EACA,GAEFsD,GAAI,IAAIyB,EACN,GACA,WACA,WACA,WACA/I,EAAoB0G,OACpBrG,EAAO6D,SACP,EACA,GAEFuF,GAAI,IAAIV,EACN,GACA,aACA,aACA,cACA/I,EAAoB0G,OACpBrG,EAAO4D,YACP,EACA,GAEFyF,GAAI,IAAIX,EACN,GACA,OACA,OACA,OACA/I,EAAoB0G,OACpBrG,EAAOwB,UACP,EACA,GAEF8H,GAAI,IAAIZ,EACN,GACA,WACA,WACA,iBACA/I,EAAoB0G,OACpBrG,EAAOE,cACP,EACA,GAEFqJ,GAAI,IAAIb,EACN,GACA,aACA,aACA,gBACA/I,EAAoB0G,OACpBrG,EAAOyE,WACP,EACA,GAEF+E,GAAI,IAAId,EACN,GACA,aACA,WACA,aACA/I,EAAoB4G,KACpBvG,EAAO0B,WACP,GACA,EACA,GACA,GAEF+H,GAAI,IAAIf,EACN,GACA,gBACA,cACA,iBACA/I,EAAoB4G,KACpBvG,EAAOiB,eACP,GACA,EACA,GACA,GAEFyI,GAAI,IAAIhB,EACN,GACA,eACA,aACA,eACA/I,EAAoB4G,KACpBvG,EAAOmC,aACP,GACA,EACA,GACA,GAEFwH,GAAI,IAAIjB,EACN,GACA,gBACA,cACA,gBACA/I,EAAoB4G,KACpBvG,EAAOK,cACP,GACA,EACA,GACA,GAEFuJ,GAAI,IAAIlB,EACN,GACA,eACA,aACA,gBACA/I,EAAoB4G,KACpBvG,EAAOI,cACP,GACA,EACA,GACA,GAEFyJ,GAAI,IAAInB,EACN,GACA,aACA,aACA,qBACA/I,EAAoB4G,KACpBvG,EAAO+D,mBACP,GACA,EACA,GACA,GAEF+F,GAAI,IAAIpB,EACN,GACA,SACA,SACA,SACA/I,EAAoB8G,KACpBzG,EAAO0D,OACP,GACA,EACA,EACA,GAEFqG,GAAI,IAAIrB,EACN,GACA,cACA,cACA,cACA/I,EAAoB8G,KACpBzG,EAAOoD,iBACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAItB,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOqD,eACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAIvB,EACN,GACA,OACA,OACA,OACA/I,EAAoB8G,KACpBzG,EAAO6C,WACP,GACA,EACA,EACA,GAEFqH,GAAI,IAAIxB,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOsD,eACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAIzB,EACN,GACA,aACA,aACA,aACA/I,EAAoB8G,KACpBzG,EAAOuD,gBACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI1B,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOwD,eACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI3B,EACN,GACA,OACA,OACA,OACA/I,EAAoBsG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI5B,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOO,WACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI7B,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOQ,SACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI9B,EACN,GACA,cACA,cACA,cACA/I,EAAoBsG,KACpBjG,EAAOS,YACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI/B,EACN,GACA,SACA,SACA,cACA/I,EAAoBsG,KACpBjG,EAAOU,YACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAIhC,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOwC,SACP,GACA,EACA,EACA,GAEFmI,GAAI,IAAIjC,EACN,GACA,OACA,OACA,OACA/I,EAAoBsG,KACpBjG,EAAOW,UACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAIlC,EACN,GACA,UACA,UACA,UACA/I,EAAoBsG,KACpBjG,EAAOY,QACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAInC,EACN,GACA,SACA,SACA,SACA/I,EAAoBsG,KACpBjG,EAAOa,OACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAIpC,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOyC,WACP,GACA,EACA,EACA,GAEFsI,GAAI,IAAIrC,EACN,GACA,YACA,YACA,YACA/I,EAAoBsG,KACpBjG,EAAOc,UACP,GACA,EACA,EACA,GAEFkK,GAAI,IAAItC,EACN,GACA,YACA,YACA,YACA/I,EAAoBsG,KACpBjG,EAAOsC,UACP,GACA,EACA,EACA,GAEF2I,GAAI,IAAIvC,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOe,WACP,GACA,EACA,EACA,GAEFmK,GAAI,IAAIxC,EACN,GACA,UACA,UACA,UACA/I,EAAoBsG,KACpBjG,EAAOgB,QACP,GACA,EACA,EACA,GAEFmK,GAAI,IAAIzC,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAO2C,SACP,GACA,EACA,EACA,GAEFyI,GAAI,IAAI1C,EACN,GACA,UACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEF+K,GAAI,IAAI3C,EACN,GACA,MACA,MACA,WACA/I,EAAoBuG,KACpBlG,EAAOuB,SACP,GACA,GAEF+J,GAAI,IAAI5C,EACN,GACA,SACA,SACA,cACA/I,EAAoBuG,KACpBlG,EAAOsB,YACP,GACA,GAEFiK,GAAI,IAAI7C,EACN,GACA,QACA,QACA,aACA/I,EAAoBuG,KACpBlG,EAAOqB,WACP,GACA,GAEFmK,GAAI,IAAI9C,EACN,GACA,MACA,MACA,WACA/I,EAAoBuG,KACpBlG,EAAOoB,SACP,GACA,IAEFqK,GAAI,IAAI/C,EACN,GACA,QACA,QACA,aACA/I,EAAoBuG,KACpBlG,EAAOmB,WACP,GACA,IAEFuK,GAAI,IAAIhD,EACN,GACA,QACA,QACA,aACA/I,EAAoBwG,WACpBnG,EAAO2B,cACP,IACA,EACA,GACA,GAEFgK,GAAI,IAAIjD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAO6B,OACP,IACA,EACA,GACA,GAEF+J,GAAI,IAAIlD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAOiC,OACP,IACA,EACA,GACA,GAEF4J,GAAI,IAAInD,EACN,GACA,QACA,QACA,aACA/I,EAAoBwG,WACpBnG,EAAO8C,WACP,IACA,EACA,GACA,GAEFgJ,GAAI,IAAIpD,EACN,GACA,YACA,YACA,kBACA/I,EAAoBwG,WACpBnG,EAAOkC,UACP,IACA,EACA,GACA,GAEF6J,GAAI,IAAIrD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAO+C,aACP,IACA,EACA,GACA,GAEFiJ,GAAI,IAAItD,EACN,GACA,OACA,OACA,YACA/I,EAAoBwG,WACpBnG,EAAOgD,QACP,IACA,EACA,GACA,GAEFiJ,GAAI,IAAIvD,EACN,GACA,cACA,cACA,mBACA/I,EAAoBwG,WACpBnG,EAAOwE,YACP,IACA,EACA,GACA,GAEF0H,GAAI,IAAIxD,EACN,GACA,SACA,SACA,SACA/I,EAAoBwM,OACpBnM,EAAO8D,aACP,GACA,EACA,GACA,GAEFsI,GAAI,IAAI1D,EACN,GACA,gBACA,gBACA,eACA/I,EAAoBwM,OACpBnM,EAAO0C,cACP,GACA,EACA,EACA,GAEF2J,GAAI,IAAI3D,EACN,GACA,OACA,OACA,OACA/I,EAAoB2M,cACpBtM,EAAOoE,UACP,IACA,GAEFmI,GAAI,IAAI7D,EACN,GACA,WACA,WACA,WACA/I,EAAoB2M,cACpBtM,EAAOmE,cACP,IACA,GAEFqI,GAAI,IAAI9D,EACN,GACA,QACA,QACA,QACA/I,EAAoB8M,MACpBvE,EAAWG,WACX,IACA,GAEFqE,GAAI,IAAIhE,EACN,GACA,QACA,QACA,QACA/I,EAAoB8M,MACpBvE,EAAWE,WACX,IACA,GAEFuE,GAAI,IAAIjE,EACN,GACA,SACA,SACA,SACA/I,EAAoB8M,MACpBvE,EAAWC,WACX,IACA,GAEFyE,GAAI,IAAIlE,EACN,GACA,UACA,UACA,UACA/I,EAAoBkN,QACpB7M,EAAOsE,cACP,GACA,EACA,EACA,GAEFwI,GAAI,IAAIpE,EACN,GACA,QACA,QACA,QACA/I,EAAoBqC,OACpBhC,EAAOgC,OACP,EACA,EACA,EACA,GAEF+K,GAAI,IAAIrE,EACN,GACA,WACA,WACA,WACA/I,EAAoB8D,SACpBzD,EAAOyD,SACP,GACA,EACA,EACA,GAEFuJ,GAAI,IAAItE,EACN,GACA,aACA,aACA,aACA/I,EAAoBsN,WACpBjN,EAAOoC,gBACP,GACA,GAEF8K,GAAI,IAAIxE,EACN,GACA,UACA,UACA,UACA/I,EAAoBwN,QACpBnN,EAAOiD,cACP,IACA,EACA,EACA,GAEFmK,GAAI,IAAI1E,EACN,GACA,cACA,cACA,cACA/I,EAAoBuE,YACpBlE,EAAOkE,YACP,IACA,IAEFmJ,GAAI,IAAI3E,EACN,GACA,YACA,YACA,iBACA/I,EAAoB2N,UACpBtN,EAAOkB,YACP,IACA,EACA,EACA,GAEFqM,GAAI,IAAI7E,EACN,GACA,UACA,UACA,eACA/I,EAAoB6N,QACpBxN,EAAOqE,aACP,IACA,IAEFoJ,GAAI,IAAI/E,EACN,GACA,UACA,UACA,UACA/I,EAAoB+N,QACpBxF,EAAWI,WACX,IACA,EACA,EACA,GAEFqF,GAAI,IAAIjF,EACN,GACA,eACA,eACA,eACA/I,EAAoBiO,aACpB5N,EAAO0E,eACP,GACA,GAEFmJ,GAAI,IAAInF,EACN,GACA,oBACA,cACA,cACA/I,EAAoB2F,QACpBtF,EAAOqF,YACP,EACA,EACA,EACA,GAEFyI,GAAI,IAAIpF,EACN,GACA,UACA,UACA,UACA/I,EAAoB2F,QACpBtF,EAAOsF,QACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAIrF,EACN,GACA,eACA,eACA,eACA/I,EAAoB2F,QACpBtF,EAAOuF,aACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAItF,EACN,GACA,eACA,eACA,eACA/I,EAAoB2F,QACpBtF,EAAOwF,aACP,EACA,EACA,EACA,IAEFyI,GAAI,IAAIvF,EACN,GACA,gBACA,gBACA,gBACA/I,EAAoB2F,QACpBtF,EAAOyF,cACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAIxF,EACN,GACA,0BACA,oBACA,oBACA/I,EAAoB2F,QACpBtF,EAAOqF,YACP,EACA,EACA,EACA,GAEF8I,GAAI,IAAIzF,EACN,GACA,gBACA,UACA,UACA/I,EAAoByO,cACpBpO,EAAOsF,QACP,GACA,EACA,EACA,IAEF+I,GAAI,IAAI3F,EACN,GACA,qBACA,eACA,eACA/I,EAAoByO,cACpBpO,EAAOuF,aACP,GACA,EACA,EACA,IAEF+I,GAAI,IAAI5F,EACN,GACA,qBACA,eACA,eACA/I,EAAoByO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","file":"static/js/8.00f46989.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import { h } from 'preact'\nimport './search-bar.css'\n\nconst SearchBar = ({ value, onInput }) => (\n \n
\n \n \n \n
\n
input && input.focus()}\n />\n
\n)\n\nexport default SearchBar\n","/* To Title Case © 2018 David Gouch | https://github.com/gouch/to-title-case */\n\n// eslint-disable-next-line no-extend-native\nString.prototype.toTitleCase = function () {\n 'use strict'\n var smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|v.?|vs.?|via)$/i\n var alphanumericPattern = /([A-Za-z0-9\\u00C0-\\u00FF])/\n var wordSeparators = /([ :–—-])/\n\n return this.split(wordSeparators)\n .map(function (current, index, array) {\n if (\n /* Check for small words */\n current.search(smallWords) > -1 &&\n /* Skip first and last word */\n index !== 0 &&\n index !== array.length - 1 &&\n /* Ignore title end and subtitle start */\n array[index - 3] !== ':' &&\n array[index + 1] !== ':' &&\n /* Ignore small words that start a hyphenated phrase */\n (array[index + 1] !== '-' ||\n (array[index - 1] === '-' && array[index + 1] === '-'))\n ) {\n return current.toLowerCase()\n }\n\n /* Ignore intentional capitalization */\n if (current.substr(1).search(/[A-Z]|\\../) > -1) {\n return current\n }\n\n /* Ignore URLs */\n if (array[index + 1] === ':' && array[index + 2] !== '') {\n return current\n }\n\n /* Capitalize the first letter */\n return current.replace(alphanumericPattern, function (match) {\n return match.toUpperCase()\n })\n })\n .join('')\n}\n","import { h } from 'preact'\n\nconst Choice = ({ prefix, choices, value, onClick }) => (\n \n \n {prefix} {value}\n \n \n
\n)\n\nexport default Choice\n","import { h, Fragment } from 'preact'\nimport {\n rectangle,\n setOptions,\n Control,\n DomUtil,\n DomEvent,\n TileLayer,\n Util,\n CRS\n} from 'leaflet'\nimport {\n MapContainer,\n Rectangle,\n Tooltip,\n ImageOverlay,\n useMap\n} from 'react-leaflet'\nimport regions from '../_data/regions'\nimport './runescape-map.scss'\n\nconst BOUNDS_TOLERANCE = 4\nconst MIN_ZOOM = -4\nconst MAX_ZOOM = 8\nconst MAX_NATIVE_ZOOM = 2\nconst DEFAULT_ZOOM = 0\nconst DEFAULT_VIEW = [3225, 3219]\nconst MIN_PLANE = 0\nconst MAX_PLANE = 3\n\nconst MainTileLayer = TileLayer.extend({\n initialize: function (url, options) {\n this._url = url\n this.originalPlane = options.plane\n setOptions(this, options)\n },\n\n getTileUrl: function (coords) {\n return Util.template(this._url, {\n source: this.options.source,\n mapId: -1,\n zoom: coords.z,\n plane: this.options.plane,\n x: coords.x,\n y: -(1 + coords.y)\n })\n },\n\n resetPlane: function () {\n this.setPlane(this.originalPlane)\n },\n\n setPlane: function (plane) {\n const original = this.getPlane()\n plane = Math.max(plane, this.options.minPlane)\n plane = Math.min(plane, this.options.maxPlane)\n\n if (plane === original) {\n return\n }\n\n this.options.plane = plane\n\n if (this._map) {\n this._map.fire('planechange')\n }\n\n this.redraw()\n },\n\n getPlane: function () {\n return this.options.plane\n },\n\n createTile: function (coords, done) {\n let tile = TileLayer.prototype.createTile.call(this, coords, done)\n tile.onerror = error => error.preventDefault()\n return tile\n }\n})\n\nconst fromLatLng = latLng => {\n return {\n x: parseInt(latLng.lng),\n y: parseInt(latLng.lat)\n }\n}\n\nconst toLatLng = (x, y) => {\n return [y, x]\n}\n\nconst findCurrentRegion = map => {\n const center = map.getCenter()\n const rsCenter = fromLatLng(center)\n const rsRegion = ((rsCenter.x >> 6) << 8) | (rsCenter.y >> 6)\n\n for (const region of regions) {\n if (region.regions.includes(rsRegion)) {\n return region.name\n }\n }\n\n return ''\n}\n\nconst toColor = num => {\n num >>>= 0\n const b = num & 0xff,\n g = (num & 0xff00) >>> 8,\n r = (num & 0xff0000) >>> 16,\n a = ((num & 0xff000000) >>> 24) / 255\n return 'rgba(' + [r, g, b, a].join(',') + ')'\n}\n\nconst mapTile = tile => {\n const regionId = tile['regionId']\n const regionX = tile['regionX']\n const regionY = tile['regionY']\n let jsColor = '#ffffff'\n\n if (tile['color']) {\n const intColor = tile['color']['value']\n\n if (intColor) {\n jsColor = toColor(intColor)\n } else if (tile['color']) {\n const argb = tile['color']\n jsColor = '#' + argb.slice(3, 9) + argb[1] + argb[2]\n }\n }\n\n const x = ((regionId >>> 8) << 6) + regionX\n const y = ((regionId & 0xff) << 6) + regionY\n const z = tile['z']\n\n return {\n x,\n y,\n z,\n label: tile['label'],\n color: jsColor\n }\n}\n\nconst prepareMap = map => {\n const defaultView = toLatLng(DEFAULT_VIEW[0], DEFAULT_VIEW[1])\n map.setView(defaultView)\n\n const mouseRect = rectangle(\n [\n [0, 0],\n [1, 1]\n ],\n {\n color: '#1e1e1e',\n fillColor: '#1e1e1e',\n fillOpacity: 0.3,\n weight: 1,\n interactive: false\n }\n )\n\n mouseRect.addTo(map)\n\n map.on('mousemove', e => {\n const mousePos = fromLatLng(e.latlng)\n mouseRect.setBounds([\n toLatLng(mousePos.x, mousePos.y),\n toLatLng(mousePos.x + 1, mousePos.y + 1)\n ])\n })\n\n const locationControl = new Control({ position: 'topright' })\n locationControl.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n\n const button = DomUtil.create('span', 'leaflet-custom-control', container)\n const updateButton = () => {\n const region = findCurrentRegion(map)\n button.hidden = !region\n button.textContent = region\n }\n\n updateButton()\n map.on('move', updateButton)\n return container\n }\n\n locationControl.addTo(map)\n\n const resetButton = new Control({ position: 'topleft' })\n resetButton.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n const button = DomUtil.create('a', 'fas fa-redo', container)\n\n DomEvent.disableClickPropagation(button).addListener(\n button,\n 'click',\n () => {\n if (map.viewport) {\n map.fitBounds(map.viewport)\n } else {\n map.setView(defaultView, DEFAULT_ZOOM)\n }\n\n map.tileLayer.resetPlane()\n }\n )\n\n return container\n }\n\n resetButton.addTo(map)\n\n const planeButtons = new Control({ position: 'topright' })\n planeButtons.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n const upButton = DomUtil.create('a', 'fas fa-sort-amount-up-alt', container)\n const label = DomUtil.create('span', 'leaflet-custom-control', container)\n const downButton = DomUtil.create('a', 'fas fa-sort-amount-down', container)\n\n const updateButtons = () => {\n if (!map.tileLayer) {\n return\n }\n\n label.textContent = map.tileLayer.getPlane()\n\n if (map.tileLayer.getPlane() === map.tileLayer.options.maxPlane) {\n DomUtil.addClass(upButton, 'leaflet-disabled')\n } else {\n DomUtil.removeClass(upButton, 'leaflet-disabled')\n }\n\n if (map.tileLayer.getPlane() === map.tileLayer.options.minPlane) {\n DomUtil.addClass(downButton, 'leaflet-disabled')\n } else {\n DomUtil.removeClass(downButton, 'leaflet-disabled')\n }\n }\n\n updateButtons()\n map.on('planechange', updateButtons)\n\n DomEvent.disableClickPropagation(upButton).addListener(\n upButton,\n 'click',\n () => {\n map.tileLayer.setPlane(map.tileLayer.getPlane() + 1)\n }\n )\n\n DomEvent.disableClickPropagation(downButton).addListener(\n downButton,\n 'click',\n () => {\n map.tileLayer.setPlane(map.tileLayer.getPlane() - 1)\n }\n )\n\n return container\n }\n\n planeButtons.addTo(map)\n\n if (map.viewport) {\n map.fitBounds(map.viewport)\n }\n}\n\nconst TileMapHandler = ({ tiles, selected, plane }) => {\n const map = useMap()\n\n if (!map.tileLayer) {\n map.tileLayer = new MainTileLayer(\n 'https://raw.githubusercontent.com/mejrs/layers_osrs/master/{source}/-1/{zoom}/{plane}_{x}_{y}.png',\n {\n noWrap: true,\n plane: plane,\n minPlane: MIN_PLANE,\n maxPlane: MAX_PLANE,\n source: 'mapsquares',\n minZoom: MIN_ZOOM,\n maxNativeZoom: MAX_NATIVE_ZOOM,\n maxZoom: MAX_ZOOM,\n errorTileUrl:\n 'https://raw.githubusercontent.com/mejrs/mejrs.github.io/master/layers/alpha_pixel.png'\n }\n )\n\n map.tileLayer.addTo(map)\n }\n\n map.tileLayer.originalPlane = plane\n map.tileLayer.setPlane(plane)\n\n if (selected.length > 0) {\n const tilesX = selected.map(t => t.x)\n const tilesY = selected.map(t => t.y)\n const minX = Math.min(...tilesX) - BOUNDS_TOLERANCE\n const maxX = Math.max(...tilesX) + BOUNDS_TOLERANCE\n const minY = Math.min(...tilesY) - BOUNDS_TOLERANCE\n const maxY = Math.max(...tilesY) + BOUNDS_TOLERANCE\n const minCorner = toLatLng(minX, minY)\n const maxCorner = toLatLng(maxX, maxY)\n const viewport = [minCorner, maxCorner]\n\n map.viewport = viewport\n map.fitBounds(viewport)\n }\n\n return tiles.map(tile => {\n const pos = toLatLng(tile.x, tile.y)\n const pos2 = toLatLng(tile.x + 1, tile.y + 1)\n const bounds = [pos, pos2]\n return (\n \n {tile.label && (\n \n )}\n \n {tile.label && {tile.label} }\n \n \n )\n })\n}\n\nconst RuneScapeMap = ({ tiles, selected }) => {\n if (!tiles) {\n tiles = []\n }\n\n if (!selected) {\n selected = tiles\n }\n\n tiles = tiles.map(mapTile)\n selected = selected.map(mapTile)\n\n const plane = selected.length > 0 ? selected[0].z || 0 : 0\n\n return (\n \n \n \n \n \n )\n}\n\nexport default RuneScapeMap\n","import { Component } from 'preact'\n\nexport default class Redirect extends Component {\n componentWillMount() {\n window.location.replace(this.props.to)\n }\n\n render() {\n return null\n }\n}\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { toMMSS } from '../../util'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig, getBossLog, getSlayerTask } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\n\nconst nameToItemId = name => {\n switch (name.toLowerCase()) {\n case 'abyssal sire':\n return 13262 // abyssal orphan\n case 'alchemical hydra':\n return 22746 // ikkle hydra\n case 'barrows':\n case 'barrows chests':\n return 19629 // barrows teleport\n case 'bryophyta':\n return 22370 // bryophyta's staff\n case 'callisto':\n return 13178 // callisto cub\n case 'cerberus':\n return 13247 // hellpuppy\n case 'chambers of xeric':\n case 'chambers of xeric challenge mode':\n return 20851 // olmlet\n case 'chaos elemental':\n return 11995 // chaos elemental\n case 'chaos fanatic':\n return 4675 // ancient staff\n case 'commander zilyana':\n return 12651 // pet zilyana\n case 'corporeal beast':\n return 22318 // pet corp\n case 'crazy archaeologist':\n return 11990 // fedora\n case 'dagannoth prime':\n return 12644\n case 'dagannoth rex':\n return 12645\n case 'dagannoth supreme':\n return 12643\n case 'deranged archaeologist':\n return 21566\n case 'general graardor':\n return 12650\n case 'giant mole':\n return 12646\n case 'grotesque guardians':\n return 21748\n case 'hespori':\n return 22875 // hespori seed\n case 'kalphite queen':\n return 12647\n case 'king black dragon':\n return 12653\n case \"k'ril tsutsaroth\":\n return 12652\n case 'kraken':\n return 12655\n case \"kree'arra\":\n return 12649\n case 'obor':\n return 20756 // hill giant club\n case 'scorpia':\n return 13181\n case 'skotizo':\n return 21273\n case 'theatre of blood':\n return 22473\n case 'thermonuclear smoke devil':\n return 12648\n case 'tztok-jad':\n return 13225\n case 'tzkal-zuk':\n return 21291\n case 'venenatis':\n return 13177\n case \"vet'ion\":\n return 13179\n case 'vorkath':\n return 21992\n case 'wintertodt':\n return 20693\n case 'zulrah':\n return 12921\n case 'sarachnis':\n return 23495 // sraracha\n case 'herbiboar':\n return 21509 // herbi\n case 'zalcano':\n return 23760 // smolcano\n case 'gauntlet':\n return 23757 // youngllef\n case 'corrupted gauntlet':\n return 23759 // corrupted youngllef\n case 'mimic':\n return 23184 // mimic casket\n case 'ape atoll agility':\n return 4033 // monkey\n default:\n return 4155 // Enchanted gem\n }\n}\n\nconst buildSlayerTask = slayerTask => {\n if (!slayerTask.hasTask) {\n return \n }\n\n return (\n \n \n
\n
\n
\n {slayerTask.name.toTitleCase()}{' '}\n \n {slayerTask.start - slayerTask.remaining}/{slayerTask.start}\n \n \n {slayerTask.location ? (\n in {slayerTask.location} \n ) : (\n \n )}\n \n\n
\n Streak: {slayerTask.streak} \n \n Points: {slayerTask.points} \n
\n
\n
\n )\n}\n\nconst buildBossLog = bossLog => {\n if (bossLog.length === 0) {\n return \n }\n\n return (\n \n \n
\n {bossLog.map(e => (\n \n \n {e.name.toTitleCase()}\n \n {e.pb ? (\n
\n Personal best: \n \n {toMMSS(e.pb)}\n \n
\n ) : (\n
\n )}\n
\n Kills: \n {e.kc} \n
\n
\n \n ))}\n \n
\n )\n}\n\nconst Home = ({ slayerTask, bossLog }) => (\n \n {buildSlayerTask(slayerTask)}\n {buildBossLog(bossLog)}\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n slayerTask: getSlayerTask(state),\n bossLog: getBossLog(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Home))\n","import { h, Fragment } from 'preact'\nimport '../../components/tooltip.css'\nimport './loot-tracker.css'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../../components/prepare'\nimport { wikiURLForItem } from '../../util'\nimport SearchBar from '../../components/search-bar'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { fetchPrices } from '../../modules/prices'\nimport { fetchItems } from '../../modules/item'\nimport {\n fetchConfig,\n getFilteredLoot,\n getLootFilter,\n setLootFilter\n} from '../../modules/config'\n\nconst getRlIcon = id => `https://static.runelite.net/cache/item/icon/${id}.png`\n\nconst glyphMap = {\n 1: { x: 0, y: 0, w: 5 },\n 2: { x: 5, y: 0, w: 7 },\n 3: { x: 12, y: 0, w: 6 },\n 4: { x: 18, y: 0, w: 6 },\n 5: { x: 24, y: 0, w: 6 },\n 6: { x: 30, y: 0, w: 7 },\n 7: { x: 37, y: 0, w: 6 },\n 8: { x: 43, y: 0, w: 7 },\n 9: { x: 50, y: 0, w: 7 },\n 0: { x: 57, y: 0, w: 7 },\n M: { x: 0, y: 10, w: 8 },\n K: { x: 8, y: 10, w: 7 },\n '%': { x: 15, y: 10, w: 7 },\n '-': { x: 22, y: 10, w: 5 },\n '+': { x: 27, y: 10, w: 7 },\n '/': { x: 37, y: 10, w: 5 },\n '*': { x: 39, y: 10, w: 7 },\n '=': { x: 46, y: 0, w: 6 },\n '^': { x: 52, y: 10, w: 5 },\n '(': { x: 57, y: 10, w: 4 },\n ')': { x: 60, y: 10, w: 4 }\n}\n\nconst quantityNums = ['', 'K', 'M']\n\nconst numToQuantity = num => {\n let l = 0\n while (num > 9999) {\n num /= 1000\n l++\n }\n\n const si = quantityNums[l]\n const str = ~~num + si\n return [str, si]\n}\n\nconst buildQuantity = num => {\n let [str, si] = numToQuantity(num)\n return (\n num > 1 && (\n \n {[...str]\n .map(g => glyphMap[g])\n .filter(g => !!g)\n .map(g => (\n \n ))}\n \n )\n )\n}\n\nconst buildDrop = drop => (\n \n {buildQuantity(drop.qty)}\n
\n
\n)\n\nconst formatPrice = price => {\n let [str] = numToQuantity(price)\n return str\n}\n\nconst buildLootRecord = record => (\n \n \n
\n
{record.drops.map(buildDrop)}
\n
\n
\n)\n\nconst handleChange = (event, setLootFilter) => setLootFilter(event.target.value)\n\nconst LootTracker = ({ loot, lootFilter, setLootFilter }) => (\n \n handleChange(e, setLootFilter)}\n />\n {loot.map(buildLootRecord)}
\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n loot: getFilteredLoot(state),\n lootFilter: getLootFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchPrices,\n fetchItems,\n fetchConfig,\n setLootFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchPrices,\n fetchItems,\n fetchConfig\n}) => {\n await fetchBootstrap()\n await fetchPrices()\n await fetchItems()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(LootTracker))\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig, getTags } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { fetchItems } from '../../modules/item'\nimport { formatIcon, wikiURLForItem } from '../../util'\nimport '../../components/tooltip.css'\nimport '../tag.css'\n\nconst buildTag = tag => {\n const csv = [tag.name, tag.icon].concat(tag.items.map(i => i.id)).join(',')\n\n return (\n \n
\n {tag.name}\n \n\n
\n {csv}\n \n \n
\n {tag.items.map(item => {\n const name = item.name || ''\n const id = item.id\n\n return (\n
\n )\n })}\n
\n
\n )\n}\n\nconst Tags = ({ tags }) => {tags.map(buildTag)} \n\nconst mapStateToProps = (state, props) => ({\n ...props,\n tags: getTags(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchItems\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchItems\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchItems()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Tags))\n","// @ts-nocheck\n/* eslint-disable */\nimport { ItemID } from './ItemID'\nexport var Tab\n;(function (Tab) {\n Tab[(Tab['OVERVIEW'] = 0)] = 'OVERVIEW'\n Tab[(Tab['CLOCK'] = 1)] = 'CLOCK'\n Tab[(Tab['BIRD_HOUSE'] = 2)] = 'BIRD_HOUSE'\n Tab[(Tab['ALLOTMENT'] = 3)] = 'ALLOTMENT'\n Tab[(Tab['FLOWER'] = 4)] = 'FLOWER'\n Tab[(Tab['HERB'] = 5)] = 'HERB'\n Tab[(Tab['TREE'] = 6)] = 'TREE'\n Tab[(Tab['FRUIT_TREE'] = 7)] = 'FRUIT_TREE'\n Tab[(Tab['HOPS'] = 8)] = 'HOPS'\n Tab[(Tab['BUSH'] = 9)] = 'BUSH'\n Tab[(Tab['GRAPE'] = 10)] = 'GRAPE'\n Tab[(Tab['SPECIAL'] = 11)] = 'SPECIAL'\n})(Tab || (Tab = {}))\n/** @ignore */\nexport class Tab_$WRAPPER {\n constructor(_$ordinal, _$name, name, itemID) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n this.__name = name\n this.itemID = itemID\n }\n static FARMING_TABS_$LI$() {\n if (Tab_$WRAPPER.FARMING_TABS == null) {\n Tab_$WRAPPER.FARMING_TABS = [\n Tab.HERB,\n Tab.TREE,\n Tab.FRUIT_TREE,\n Tab.SPECIAL,\n Tab.FLOWER,\n Tab.ALLOTMENT,\n Tab.BUSH,\n Tab.GRAPE,\n Tab.HOPS\n ]\n }\n return Tab_$WRAPPER.FARMING_TABS\n }\n getName() {\n return this.__name\n }\n getItemID() {\n return this.itemID\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nTab['__class'] = 'timetracking.Tab'\nTab['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nTab['_$wrappers'] = {\n 0: new Tab_$WRAPPER(0, 'OVERVIEW', 'Overview', ItemID.OLD_NOTES),\n 1: new Tab_$WRAPPER(1, 'CLOCK', 'Timers & Stopwatches', ItemID.WATCH),\n 2: new Tab_$WRAPPER(2, 'BIRD_HOUSE', 'Bird Houses', ItemID.OAK_BIRD_HOUSE),\n 3: new Tab_$WRAPPER(3, 'ALLOTMENT', 'Allotment Patches', ItemID.CABBAGE),\n 4: new Tab_$WRAPPER(4, 'FLOWER', 'Flower Patches', ItemID.RED_FLOWERS),\n 5: new Tab_$WRAPPER(5, 'HERB', 'Herb Patches', ItemID.GRIMY_RANARR_WEED),\n 6: new Tab_$WRAPPER(6, 'TREE', 'Tree Patches', ItemID.YEW_LOGS),\n 7: new Tab_$WRAPPER(7, 'FRUIT_TREE', 'Fruit Tree Patches', ItemID.PINEAPPLE),\n 8: new Tab_$WRAPPER(8, 'HOPS', 'Hops Patches', ItemID.BARLEY),\n 9: new Tab_$WRAPPER(9, 'BUSH', 'Bush Patches', ItemID.POISON_IVY_BERRIES),\n 10: new Tab_$WRAPPER(10, 'GRAPE', 'Grape Patches', ItemID.GRAPES),\n 11: new Tab_$WRAPPER(11, 'SPECIAL', 'Special Patches', ItemID.MUSHROOM)\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var CropState\n;(function (CropState) {\n CropState[(CropState['HARVESTABLE'] = 0)] = 'HARVESTABLE'\n CropState[(CropState['GROWING'] = 1)] = 'GROWING'\n CropState[(CropState['DISEASED'] = 2)] = 'DISEASED'\n CropState[(CropState['DEAD'] = 3)] = 'DEAD'\n CropState[(CropState['EMPTY'] = 4)] = 'EMPTY'\n CropState[(CropState['FILLING'] = 5)] = 'FILLING'\n})(CropState || (CropState = {}))\n","// @ts-nocheck\n/* eslint-disable */\nimport { Tab } from './Tab'\nimport { PatchState } from './PatchState'\nimport { CropState } from './CropState'\nimport { ItemID } from './ItemID'\nimport { NullItemID } from './NullItemID'\nexport var PatchImplementation\n;(function (PatchImplementation) {\n PatchImplementation[(PatchImplementation['BELLADONNA'] = 0)] = 'BELLADONNA'\n PatchImplementation[(PatchImplementation['MUSHROOM'] = 1)] = 'MUSHROOM'\n PatchImplementation[(PatchImplementation['HESPORI'] = 2)] = 'HESPORI'\n PatchImplementation[(PatchImplementation['ALLOTMENT'] = 3)] = 'ALLOTMENT'\n PatchImplementation[(PatchImplementation['HERB'] = 4)] = 'HERB'\n PatchImplementation[(PatchImplementation['FLOWER'] = 5)] = 'FLOWER'\n PatchImplementation[(PatchImplementation['BUSH'] = 6)] = 'BUSH'\n PatchImplementation[(PatchImplementation['FRUIT_TREE'] = 7)] = 'FRUIT_TREE'\n PatchImplementation[(PatchImplementation['HOPS'] = 8)] = 'HOPS'\n PatchImplementation[(PatchImplementation['TREE'] = 9)] = 'TREE'\n PatchImplementation[(PatchImplementation['HARDWOOD_TREE'] = 10)] =\n 'HARDWOOD_TREE'\n PatchImplementation[(PatchImplementation['REDWOOD'] = 11)] = 'REDWOOD'\n PatchImplementation[(PatchImplementation['SPIRIT_TREE'] = 12)] = 'SPIRIT_TREE'\n PatchImplementation[(PatchImplementation['ANIMA'] = 13)] = 'ANIMA'\n PatchImplementation[(PatchImplementation['CACTUS'] = 14)] = 'CACTUS'\n PatchImplementation[(PatchImplementation['SEAWEED'] = 15)] = 'SEAWEED'\n PatchImplementation[(PatchImplementation['CALQUAT'] = 16)] = 'CALQUAT'\n PatchImplementation[(PatchImplementation['CELASTRUS'] = 17)] = 'CELASTRUS'\n PatchImplementation[(PatchImplementation['GRAPES'] = 18)] = 'GRAPES'\n PatchImplementation[(PatchImplementation['CRYSTAL_TREE'] = 19)] =\n 'CRYSTAL_TREE'\n PatchImplementation[(PatchImplementation['COMPOST'] = 20)] = 'COMPOST'\n PatchImplementation[(PatchImplementation['GIANT_COMPOST'] = 21)] =\n 'GIANT_COMPOST'\n})(PatchImplementation || (PatchImplementation = {}))\n/** @ignore */\nexport class PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.tab === undefined) {\n this.tab = null\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n this.tab = tab\n this.__name = name\n }\n getTab() {\n return this.tab\n }\n getName() {\n return this.__name\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nPatchImplementation['__class'] = 'timetracking.PatchImplementation'\nPatchImplementation['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\n;(function (PatchImplementation) {\n let Produce\n ;(function (Produce) {\n Produce[(Produce['WEEDS'] = 0)] = 'WEEDS'\n Produce[(Produce['SCARECROW'] = 1)] = 'SCARECROW'\n Produce[(Produce['POTATO'] = 2)] = 'POTATO'\n Produce[(Produce['ONION'] = 3)] = 'ONION'\n Produce[(Produce['CABBAGE'] = 4)] = 'CABBAGE'\n Produce[(Produce['TOMATO'] = 5)] = 'TOMATO'\n Produce[(Produce['SWEETCORN'] = 6)] = 'SWEETCORN'\n Produce[(Produce['STRAWBERRY'] = 7)] = 'STRAWBERRY'\n Produce[(Produce['WATERMELON'] = 8)] = 'WATERMELON'\n Produce[(Produce['SNAPE_GRASS'] = 9)] = 'SNAPE_GRASS'\n Produce[(Produce['MARIGOLD'] = 10)] = 'MARIGOLD'\n Produce[(Produce['ROSEMARY'] = 11)] = 'ROSEMARY'\n Produce[(Produce['NASTURTIUM'] = 12)] = 'NASTURTIUM'\n Produce[(Produce['WOAD'] = 13)] = 'WOAD'\n Produce[(Produce['LIMPWURT'] = 14)] = 'LIMPWURT'\n Produce[(Produce['WHITE_LILY'] = 15)] = 'WHITE_LILY'\n Produce[(Produce['REDBERRIES'] = 16)] = 'REDBERRIES'\n Produce[(Produce['CADAVABERRIES'] = 17)] = 'CADAVABERRIES'\n Produce[(Produce['DWELLBERRIES'] = 18)] = 'DWELLBERRIES'\n Produce[(Produce['JANGERBERRIES'] = 19)] = 'JANGERBERRIES'\n Produce[(Produce['WHITEBERRIES'] = 20)] = 'WHITEBERRIES'\n Produce[(Produce['POISON_IVY'] = 21)] = 'POISON_IVY'\n Produce[(Produce['BARLEY'] = 22)] = 'BARLEY'\n Produce[(Produce['HAMMERSTONE'] = 23)] = 'HAMMERSTONE'\n Produce[(Produce['ASGARNIAN'] = 24)] = 'ASGARNIAN'\n Produce[(Produce['JUTE'] = 25)] = 'JUTE'\n Produce[(Produce['YANILLIAN'] = 26)] = 'YANILLIAN'\n Produce[(Produce['KRANDORIAN'] = 27)] = 'KRANDORIAN'\n Produce[(Produce['WILDBLOOD'] = 28)] = 'WILDBLOOD'\n Produce[(Produce['GUAM'] = 29)] = 'GUAM'\n Produce[(Produce['MARRENTILL'] = 30)] = 'MARRENTILL'\n Produce[(Produce['TARROMIN'] = 31)] = 'TARROMIN'\n Produce[(Produce['HARRALANDER'] = 32)] = 'HARRALANDER'\n Produce[(Produce['RANARR'] = 33)] = 'RANARR'\n Produce[(Produce['TOADFLAX'] = 34)] = 'TOADFLAX'\n Produce[(Produce['IRIT'] = 35)] = 'IRIT'\n Produce[(Produce['AVANTOE'] = 36)] = 'AVANTOE'\n Produce[(Produce['KWUARM'] = 37)] = 'KWUARM'\n Produce[(Produce['SNAPDRAGON'] = 38)] = 'SNAPDRAGON'\n Produce[(Produce['CADANTINE'] = 39)] = 'CADANTINE'\n Produce[(Produce['LANTADYME'] = 40)] = 'LANTADYME'\n Produce[(Produce['DWARF_WEED'] = 41)] = 'DWARF_WEED'\n Produce[(Produce['TORSTOL'] = 42)] = 'TORSTOL'\n Produce[(Produce['GOUTWEED'] = 43)] = 'GOUTWEED'\n Produce[(Produce['ANYHERB'] = 44)] = 'ANYHERB'\n Produce[(Produce['OAK'] = 45)] = 'OAK'\n Produce[(Produce['WILLOW'] = 46)] = 'WILLOW'\n Produce[(Produce['MAPLE'] = 47)] = 'MAPLE'\n Produce[(Produce['YEW'] = 48)] = 'YEW'\n Produce[(Produce['MAGIC'] = 49)] = 'MAGIC'\n Produce[(Produce['APPLE'] = 50)] = 'APPLE'\n Produce[(Produce['BANANA'] = 51)] = 'BANANA'\n Produce[(Produce['ORANGE'] = 52)] = 'ORANGE'\n Produce[(Produce['CURRY'] = 53)] = 'CURRY'\n Produce[(Produce['PINEAPPLE'] = 54)] = 'PINEAPPLE'\n Produce[(Produce['PAPAYA'] = 55)] = 'PAPAYA'\n Produce[(Produce['PALM'] = 56)] = 'PALM'\n Produce[(Produce['DRAGONFRUIT'] = 57)] = 'DRAGONFRUIT'\n Produce[(Produce['CACTUS'] = 58)] = 'CACTUS'\n Produce[(Produce['POTATO_CACTUS'] = 59)] = 'POTATO_CACTUS'\n Produce[(Produce['TEAK'] = 60)] = 'TEAK'\n Produce[(Produce['MAHOGANY'] = 61)] = 'MAHOGANY'\n Produce[(Produce['ATTAS'] = 62)] = 'ATTAS'\n Produce[(Produce['IASOR'] = 63)] = 'IASOR'\n Produce[(Produce['KRONOS'] = 64)] = 'KRONOS'\n Produce[(Produce['SEAWEED'] = 65)] = 'SEAWEED'\n Produce[(Produce['GRAPE'] = 66)] = 'GRAPE'\n Produce[(Produce['MUSHROOM'] = 67)] = 'MUSHROOM'\n Produce[(Produce['BELLADONNA'] = 68)] = 'BELLADONNA'\n Produce[(Produce['CALQUAT'] = 69)] = 'CALQUAT'\n Produce[(Produce['SPIRIT_TREE'] = 70)] = 'SPIRIT_TREE'\n Produce[(Produce['CELASTRUS'] = 71)] = 'CELASTRUS'\n Produce[(Produce['REDWOOD'] = 72)] = 'REDWOOD'\n Produce[(Produce['HESPORI'] = 73)] = 'HESPORI'\n Produce[(Produce['CRYSTAL_TREE'] = 74)] = 'CRYSTAL_TREE'\n Produce[(Produce['EMPTY_COMPOST_BIN'] = 75)] = 'EMPTY_COMPOST_BIN'\n Produce[(Produce['COMPOST'] = 76)] = 'COMPOST'\n Produce[(Produce['SUPERCOMPOST'] = 77)] = 'SUPERCOMPOST'\n Produce[(Produce['ULTRACOMPOST'] = 78)] = 'ULTRACOMPOST'\n Produce[(Produce['ROTTEN_TOMATO'] = 79)] = 'ROTTEN_TOMATO'\n Produce[(Produce['EMPTY_GIANT_COMPOST_BIN'] = 80)] =\n 'EMPTY_GIANT_COMPOST_BIN'\n Produce[(Produce['GIANT_COMPOST'] = 81)] = 'GIANT_COMPOST'\n Produce[(Produce['GIANT_SUPERCOMPOST'] = 82)] = 'GIANT_SUPERCOMPOST'\n Produce[(Produce['GIANT_ULTRACOMPOST'] = 83)] = 'GIANT_ULTRACOMPOST'\n Produce[(Produce['GIANT_ROTTEN_TOMATO'] = 84)] = 'GIANT_ROTTEN_TOMATO'\n })(\n (Produce =\n PatchImplementation.Produce || (PatchImplementation.Produce = {}))\n )\n /** @ignore */\n class Produce_$WRAPPER {\n constructor(\n _$ordinal,\n _$name,\n name,\n contractName,\n patchImplementation,\n itemID,\n tickrate,\n stages,\n regrowTickrate,\n harvestStages\n ) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n (typeof regrowTickrate === 'number' || regrowTickrate === null) &&\n (typeof harvestStages === 'number' || harvestStages === null)\n ) {\n let __args = arguments\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n } else if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n regrowTickrate === undefined &&\n harvestStages === undefined\n ) {\n let __args = arguments\n {\n let __args = arguments\n let regrowTickrate = 0\n let harvestStages = 1\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n } else throw new Error('invalid overload')\n }\n getName() {\n return this.__name\n }\n getContractName() {\n return this.contractName\n }\n getItemID() {\n return this.itemID\n }\n getTickrate() {\n return this.tickrate\n }\n getStages() {\n return this.stages\n }\n getRegrowTickrate() {\n return this.regrowTickrate\n }\n getHarvestStages() {\n return this.harvestStages\n }\n getPatchImplementation() {\n return this.patchImplementation\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n }\n PatchImplementation.Produce_$WRAPPER = Produce_$WRAPPER\n Produce['__class'] = 'timetracking.PatchImplementation.Produce'\n Produce['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\n Produce['_$wrappers'] = {\n 0: new Produce_$WRAPPER(\n 0,\n 'WEEDS',\n 'Weeds',\n 'Weeds',\n null,\n ItemID.WEEDS,\n 5,\n 4\n ),\n 1: new Produce_$WRAPPER(\n 1,\n 'SCARECROW',\n 'Scarecrow',\n 'Scarecrow',\n null,\n ItemID.SCARECROW,\n 5,\n 4\n ),\n 2: new Produce_$WRAPPER(\n 2,\n 'POTATO',\n 'Potato',\n 'Potatoes',\n PatchImplementation.ALLOTMENT,\n ItemID.POTATO,\n 10,\n 5,\n 0,\n 3\n ),\n 3: new Produce_$WRAPPER(\n 3,\n 'ONION',\n 'Onion',\n 'Onions',\n PatchImplementation.ALLOTMENT,\n ItemID.ONION,\n 10,\n 5,\n 0,\n 3\n ),\n 4: new Produce_$WRAPPER(\n 4,\n 'CABBAGE',\n 'Cabbage',\n 'Cabbages',\n PatchImplementation.ALLOTMENT,\n ItemID.CABBAGE,\n 10,\n 5,\n 0,\n 3\n ),\n 5: new Produce_$WRAPPER(\n 5,\n 'TOMATO',\n 'Tomato',\n 'Tomatoes',\n PatchImplementation.ALLOTMENT,\n ItemID.TOMATO,\n 10,\n 5,\n 0,\n 3\n ),\n 6: new Produce_$WRAPPER(\n 6,\n 'SWEETCORN',\n 'Sweetcorn',\n 'Sweetcorn',\n PatchImplementation.ALLOTMENT,\n ItemID.SWEETCORN,\n 10,\n 6,\n 0,\n 3\n ),\n 7: new Produce_$WRAPPER(\n 7,\n 'STRAWBERRY',\n 'Strawberry',\n 'Strawberries',\n PatchImplementation.ALLOTMENT,\n ItemID.STRAWBERRY,\n 10,\n 7,\n 0,\n 3\n ),\n 8: new Produce_$WRAPPER(\n 8,\n 'WATERMELON',\n 'Watermelon',\n 'Watermelons',\n PatchImplementation.ALLOTMENT,\n ItemID.WATERMELON,\n 10,\n 8,\n 0,\n 3\n ),\n 9: new Produce_$WRAPPER(\n 9,\n 'SNAPE_GRASS',\n 'Snape grass',\n 'Snape grass',\n PatchImplementation.ALLOTMENT,\n ItemID.SNAPE_GRASS,\n 10,\n 8,\n 0,\n 3\n ),\n 10: new Produce_$WRAPPER(\n 10,\n 'MARIGOLD',\n 'Marigold',\n 'Marigolds',\n PatchImplementation.FLOWER,\n ItemID.MARIGOLDS,\n 5,\n 5\n ),\n 11: new Produce_$WRAPPER(\n 11,\n 'ROSEMARY',\n 'Rosemary',\n 'Rosemary',\n PatchImplementation.FLOWER,\n ItemID.ROSEMARY,\n 5,\n 5\n ),\n 12: new Produce_$WRAPPER(\n 12,\n 'NASTURTIUM',\n 'Nasturtium',\n 'Nasturtiums',\n PatchImplementation.FLOWER,\n ItemID.NASTURTIUMS,\n 5,\n 5\n ),\n 13: new Produce_$WRAPPER(\n 13,\n 'WOAD',\n 'Woad',\n 'Woad',\n PatchImplementation.FLOWER,\n ItemID.WOAD_LEAF,\n 5,\n 5\n ),\n 14: new Produce_$WRAPPER(\n 14,\n 'LIMPWURT',\n 'Limpwurt',\n 'Limpwurt roots',\n PatchImplementation.FLOWER,\n ItemID.LIMPWURT_ROOT,\n 5,\n 5\n ),\n 15: new Produce_$WRAPPER(\n 15,\n 'WHITE_LILY',\n 'White lily',\n 'White lillies',\n PatchImplementation.FLOWER,\n ItemID.WHITE_LILY,\n 5,\n 5\n ),\n 16: new Produce_$WRAPPER(\n 16,\n 'REDBERRIES',\n 'Redberry',\n 'Redberries',\n PatchImplementation.BUSH,\n ItemID.REDBERRIES,\n 20,\n 6,\n 20,\n 5\n ),\n 17: new Produce_$WRAPPER(\n 17,\n 'CADAVABERRIES',\n 'Cadavaberry',\n 'Cadava berries',\n PatchImplementation.BUSH,\n ItemID.CADAVA_BERRIES,\n 20,\n 7,\n 20,\n 5\n ),\n 18: new Produce_$WRAPPER(\n 18,\n 'DWELLBERRIES',\n 'Dwellberry',\n 'Dwellberries',\n PatchImplementation.BUSH,\n ItemID.DWELLBERRIES,\n 20,\n 8,\n 20,\n 5\n ),\n 19: new Produce_$WRAPPER(\n 19,\n 'JANGERBERRIES',\n 'Jangerberry',\n 'Jangerberries',\n PatchImplementation.BUSH,\n ItemID.JANGERBERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 20: new Produce_$WRAPPER(\n 20,\n 'WHITEBERRIES',\n 'Whiteberry',\n 'White berries',\n PatchImplementation.BUSH,\n ItemID.WHITE_BERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 21: new Produce_$WRAPPER(\n 21,\n 'POISON_IVY',\n 'Poison ivy',\n 'Poison ivy berries',\n PatchImplementation.BUSH,\n ItemID.POISON_IVY_BERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 22: new Produce_$WRAPPER(\n 22,\n 'BARLEY',\n 'Barley',\n 'Barley',\n PatchImplementation.HOPS,\n ItemID.BARLEY,\n 10,\n 5,\n 0,\n 3\n ),\n 23: new Produce_$WRAPPER(\n 23,\n 'HAMMERSTONE',\n 'Hammerstone',\n 'Hammerstone',\n PatchImplementation.HOPS,\n ItemID.HAMMERSTONE_HOPS,\n 10,\n 5,\n 0,\n 3\n ),\n 24: new Produce_$WRAPPER(\n 24,\n 'ASGARNIAN',\n 'Asgarnian',\n 'Asgarnian',\n PatchImplementation.HOPS,\n ItemID.ASGARNIAN_HOPS,\n 10,\n 6,\n 0,\n 3\n ),\n 25: new Produce_$WRAPPER(\n 25,\n 'JUTE',\n 'Jute',\n 'Jute',\n PatchImplementation.HOPS,\n ItemID.JUTE_FIBRE,\n 10,\n 6,\n 0,\n 3\n ),\n 26: new Produce_$WRAPPER(\n 26,\n 'YANILLIAN',\n 'Yanillian',\n 'Yanillian',\n PatchImplementation.HOPS,\n ItemID.YANILLIAN_HOPS,\n 10,\n 7,\n 0,\n 3\n ),\n 27: new Produce_$WRAPPER(\n 27,\n 'KRANDORIAN',\n 'Krandorian',\n 'Krandorian',\n PatchImplementation.HOPS,\n ItemID.KRANDORIAN_HOPS,\n 10,\n 8,\n 0,\n 3\n ),\n 28: new Produce_$WRAPPER(\n 28,\n 'WILDBLOOD',\n 'Wildblood',\n 'Wildblood',\n PatchImplementation.HOPS,\n ItemID.WILDBLOOD_HOPS,\n 10,\n 9,\n 0,\n 3\n ),\n 29: new Produce_$WRAPPER(\n 29,\n 'GUAM',\n 'Guam',\n 'Guam',\n PatchImplementation.HERB,\n ItemID.GUAM_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 30: new Produce_$WRAPPER(\n 30,\n 'MARRENTILL',\n 'Marrentill',\n 'Marrentill',\n PatchImplementation.HERB,\n ItemID.MARRENTILL,\n 20,\n 5,\n 0,\n 3\n ),\n 31: new Produce_$WRAPPER(\n 31,\n 'TARROMIN',\n 'Tarromin',\n 'Tarromin',\n PatchImplementation.HERB,\n ItemID.TARROMIN,\n 20,\n 5,\n 0,\n 3\n ),\n 32: new Produce_$WRAPPER(\n 32,\n 'HARRALANDER',\n 'Harralander',\n 'Harralander',\n PatchImplementation.HERB,\n ItemID.HARRALANDER,\n 20,\n 5,\n 0,\n 3\n ),\n 33: new Produce_$WRAPPER(\n 33,\n 'RANARR',\n 'Ranarr',\n 'Harralander',\n PatchImplementation.HERB,\n ItemID.RANARR_WEED,\n 20,\n 5,\n 0,\n 3\n ),\n 34: new Produce_$WRAPPER(\n 34,\n 'TOADFLAX',\n 'Toadflax',\n 'Toadflax',\n PatchImplementation.HERB,\n ItemID.TOADFLAX,\n 20,\n 5,\n 0,\n 3\n ),\n 35: new Produce_$WRAPPER(\n 35,\n 'IRIT',\n 'Irit',\n 'Irit',\n PatchImplementation.HERB,\n ItemID.IRIT_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 36: new Produce_$WRAPPER(\n 36,\n 'AVANTOE',\n 'Avantoe',\n 'Avantoe',\n PatchImplementation.HERB,\n ItemID.AVANTOE,\n 20,\n 5,\n 0,\n 3\n ),\n 37: new Produce_$WRAPPER(\n 37,\n 'KWUARM',\n 'Kwuarm',\n 'Kwuarm',\n PatchImplementation.HERB,\n ItemID.KWUARM,\n 20,\n 5,\n 0,\n 3\n ),\n 38: new Produce_$WRAPPER(\n 38,\n 'SNAPDRAGON',\n 'Snapdragon',\n 'Snapdragon',\n PatchImplementation.HERB,\n ItemID.SNAPDRAGON,\n 20,\n 5,\n 0,\n 3\n ),\n 39: new Produce_$WRAPPER(\n 39,\n 'CADANTINE',\n 'Cadantine',\n 'Cadantine',\n PatchImplementation.HERB,\n ItemID.CADANTINE,\n 20,\n 5,\n 0,\n 3\n ),\n 40: new Produce_$WRAPPER(\n 40,\n 'LANTADYME',\n 'Lantadyme',\n 'Lantadyme',\n PatchImplementation.HERB,\n ItemID.LANTADYME,\n 20,\n 5,\n 0,\n 3\n ),\n 41: new Produce_$WRAPPER(\n 41,\n 'DWARF_WEED',\n 'Dwarf weed',\n 'Dwarf weed',\n PatchImplementation.HERB,\n ItemID.DWARF_WEED,\n 20,\n 5,\n 0,\n 3\n ),\n 42: new Produce_$WRAPPER(\n 42,\n 'TORSTOL',\n 'Torstol',\n 'Torstol',\n PatchImplementation.HERB,\n ItemID.TORSTOL,\n 20,\n 5,\n 0,\n 3\n ),\n 43: new Produce_$WRAPPER(\n 43,\n 'GOUTWEED',\n 'Goutweed',\n 'Goutweed',\n PatchImplementation.HERB,\n ItemID.GOUTWEED,\n 20,\n 5,\n 0,\n 2\n ),\n 44: new Produce_$WRAPPER(\n 44,\n 'ANYHERB',\n 'Any herb',\n 'Any herb',\n PatchImplementation.HERB,\n ItemID.GUAM_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 45: new Produce_$WRAPPER(\n 45,\n 'OAK',\n 'Oak',\n 'Oak tree',\n PatchImplementation.TREE,\n ItemID.OAK_LOGS,\n 40,\n 5\n ),\n 46: new Produce_$WRAPPER(\n 46,\n 'WILLOW',\n 'Willow',\n 'Willow tree',\n PatchImplementation.TREE,\n ItemID.WILLOW_LOGS,\n 40,\n 7\n ),\n 47: new Produce_$WRAPPER(\n 47,\n 'MAPLE',\n 'Maple',\n 'Maple tree',\n PatchImplementation.TREE,\n ItemID.MAPLE_LOGS,\n 40,\n 9\n ),\n 48: new Produce_$WRAPPER(\n 48,\n 'YEW',\n 'Yew',\n 'Yew tree',\n PatchImplementation.TREE,\n ItemID.YEW_LOGS,\n 40,\n 11\n ),\n 49: new Produce_$WRAPPER(\n 49,\n 'MAGIC',\n 'Magic',\n 'Magic tree',\n PatchImplementation.TREE,\n ItemID.MAGIC_LOGS,\n 40,\n 13\n ),\n 50: new Produce_$WRAPPER(\n 50,\n 'APPLE',\n 'Apple',\n 'Apple tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.COOKING_APPLE,\n 160,\n 7,\n 45,\n 7\n ),\n 51: new Produce_$WRAPPER(\n 51,\n 'BANANA',\n 'Banana',\n 'Banana tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.BANANA,\n 160,\n 7,\n 45,\n 7\n ),\n 52: new Produce_$WRAPPER(\n 52,\n 'ORANGE',\n 'Orange',\n 'Orange tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.ORANGE,\n 160,\n 7,\n 45,\n 7\n ),\n 53: new Produce_$WRAPPER(\n 53,\n 'CURRY',\n 'Curry',\n 'Curry tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.CURRY_LEAF,\n 160,\n 7,\n 45,\n 7\n ),\n 54: new Produce_$WRAPPER(\n 54,\n 'PINEAPPLE',\n 'Pineapple',\n 'Pineapple plant',\n PatchImplementation.FRUIT_TREE,\n ItemID.PINEAPPLE,\n 160,\n 7,\n 45,\n 7\n ),\n 55: new Produce_$WRAPPER(\n 55,\n 'PAPAYA',\n 'Papaya',\n 'Papaya tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.PAPAYA_FRUIT,\n 160,\n 7,\n 45,\n 7\n ),\n 56: new Produce_$WRAPPER(\n 56,\n 'PALM',\n 'Palm',\n 'Palm tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.COCONUT,\n 160,\n 7,\n 45,\n 7\n ),\n 57: new Produce_$WRAPPER(\n 57,\n 'DRAGONFRUIT',\n 'Dragonfruit',\n 'Dragonfruit tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.DRAGONFRUIT,\n 160,\n 7,\n 45,\n 7\n ),\n 58: new Produce_$WRAPPER(\n 58,\n 'CACTUS',\n 'Cactus',\n 'Cactus',\n PatchImplementation.CACTUS,\n ItemID.CACTUS_SPINE,\n 80,\n 8,\n 20,\n 4\n ),\n 59: new Produce_$WRAPPER(\n 59,\n 'POTATO_CACTUS',\n 'Potato cactus',\n 'Potato cacti',\n PatchImplementation.CACTUS,\n ItemID.POTATO_CACTUS,\n 10,\n 8,\n 5,\n 7\n ),\n 60: new Produce_$WRAPPER(\n 60,\n 'TEAK',\n 'Teak',\n 'Teak',\n PatchImplementation.HARDWOOD_TREE,\n ItemID.TEAK_LOGS,\n 560,\n 8\n ),\n 61: new Produce_$WRAPPER(\n 61,\n 'MAHOGANY',\n 'Mahogany',\n 'Mahogany',\n PatchImplementation.HARDWOOD_TREE,\n ItemID.MAHOGANY_LOGS,\n 640,\n 9\n ),\n 62: new Produce_$WRAPPER(\n 62,\n 'ATTAS',\n 'Attas',\n 'Attas',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22940,\n 640,\n 9\n ),\n 63: new Produce_$WRAPPER(\n 63,\n 'IASOR',\n 'Iasor',\n 'Iasor',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22939,\n 640,\n 9\n ),\n 64: new Produce_$WRAPPER(\n 64,\n 'KRONOS',\n 'Kronos',\n 'Kronos',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22938,\n 640,\n 9\n ),\n 65: new Produce_$WRAPPER(\n 65,\n 'SEAWEED',\n 'Seaweed',\n 'Seaweed',\n PatchImplementation.SEAWEED,\n ItemID.GIANT_SEAWEED,\n 10,\n 5,\n 0,\n 4\n ),\n 66: new Produce_$WRAPPER(\n 66,\n 'GRAPE',\n 'Grape',\n 'Grape',\n PatchImplementation.GRAPES,\n ItemID.GRAPES,\n 5,\n 8,\n 0,\n 5\n ),\n 67: new Produce_$WRAPPER(\n 67,\n 'MUSHROOM',\n 'Mushroom',\n 'Mushroom',\n PatchImplementation.MUSHROOM,\n ItemID.MUSHROOM,\n 40,\n 7,\n 0,\n 7\n ),\n 68: new Produce_$WRAPPER(\n 68,\n 'BELLADONNA',\n 'Belladonna',\n 'Belladonna',\n PatchImplementation.BELLADONNA,\n ItemID.CAVE_NIGHTSHADE,\n 80,\n 5\n ),\n 69: new Produce_$WRAPPER(\n 69,\n 'CALQUAT',\n 'Calquat',\n 'Calquat',\n PatchImplementation.CALQUAT,\n ItemID.CALQUAT_FRUIT,\n 160,\n 9,\n 0,\n 7\n ),\n 70: new Produce_$WRAPPER(\n 70,\n 'SPIRIT_TREE',\n 'Spirit tree',\n 'Spirit tree',\n PatchImplementation.SPIRIT_TREE,\n ItemID.SPIRIT_TREE,\n 320,\n 13\n ),\n 71: new Produce_$WRAPPER(\n 71,\n 'CELASTRUS',\n 'Celastrus',\n 'Celastrus tree',\n PatchImplementation.CELASTRUS,\n ItemID.BATTLESTAFF,\n 160,\n 6,\n 0,\n 4\n ),\n 72: new Produce_$WRAPPER(\n 72,\n 'REDWOOD',\n 'Redwood',\n 'Redwood tree',\n PatchImplementation.REDWOOD,\n ItemID.REDWOOD_LOGS,\n 640,\n 11\n ),\n 73: new Produce_$WRAPPER(\n 73,\n 'HESPORI',\n 'Hespori',\n 'Hespori',\n PatchImplementation.HESPORI,\n NullItemID.NULL_23044,\n 640,\n 4,\n 0,\n 2\n ),\n 74: new Produce_$WRAPPER(\n 74,\n 'CRYSTAL_TREE',\n 'Crystal tree',\n 'Crystal tree',\n PatchImplementation.CRYSTAL_TREE,\n ItemID.CRYSTAL_SHARDS,\n 80,\n 7\n ),\n 75: new Produce_$WRAPPER(\n 75,\n 'EMPTY_COMPOST_BIN',\n 'Compost Bin',\n 'Compost Bin',\n PatchImplementation.COMPOST,\n ItemID.COMPOST_BIN,\n 0,\n 1,\n 0,\n 0\n ),\n 76: new Produce_$WRAPPER(\n 76,\n 'COMPOST',\n 'Compost',\n 'Compost',\n PatchImplementation.COMPOST,\n ItemID.COMPOST,\n 40,\n 3,\n 0,\n 15\n ),\n 77: new Produce_$WRAPPER(\n 77,\n 'SUPERCOMPOST',\n 'Supercompost',\n 'Supercompost',\n PatchImplementation.COMPOST,\n ItemID.SUPERCOMPOST,\n 40,\n 3,\n 0,\n 15\n ),\n 78: new Produce_$WRAPPER(\n 78,\n 'ULTRACOMPOST',\n 'Ultracompost',\n 'Ultracompost',\n PatchImplementation.COMPOST,\n ItemID.ULTRACOMPOST,\n 0,\n 3,\n 0,\n 15\n ),\n 79: new Produce_$WRAPPER(\n 79,\n 'ROTTEN_TOMATO',\n 'Rotten Tomato',\n 'Rotten Tomato',\n PatchImplementation.COMPOST,\n ItemID.ROTTEN_TOMATO,\n 40,\n 3,\n 0,\n 15\n ),\n 80: new Produce_$WRAPPER(\n 80,\n 'EMPTY_GIANT_COMPOST_BIN',\n 'Giant Compost Bin',\n 'Giant Compost Bin',\n PatchImplementation.COMPOST,\n ItemID.COMPOST_BIN,\n 0,\n 1,\n 0,\n 0\n ),\n 81: new Produce_$WRAPPER(\n 81,\n 'GIANT_COMPOST',\n 'Compost',\n 'Compost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.COMPOST,\n 40,\n 3,\n 0,\n 30\n ),\n 82: new Produce_$WRAPPER(\n 82,\n 'GIANT_SUPERCOMPOST',\n 'Supercompost',\n 'Supercompost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.SUPERCOMPOST,\n 40,\n 3,\n 0,\n 30\n ),\n 83: new Produce_$WRAPPER(\n 83,\n 'GIANT_ULTRACOMPOST',\n 'Ultracompost',\n 'Ultracompost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.ULTRACOMPOST,\n 0,\n 3,\n 0,\n 30\n ),\n 84: new Produce_$WRAPPER(\n 84,\n 'GIANT_ROTTEN_TOMATO',\n 'Rotten Tomato',\n 'Rotten Tomato',\n PatchImplementation.GIANT_COMPOST,\n ItemID.ROTTEN_TOMATO,\n 40,\n 3,\n 0,\n 30\n )\n }\n})(PatchImplementation || (PatchImplementation = {}))\n;(function (PatchImplementation) {\n /** @ignore */\n class Produce_$WRAPPER {\n constructor(\n _$ordinal,\n _$name,\n name,\n contractName,\n patchImplementation,\n itemID,\n tickrate,\n stages,\n regrowTickrate,\n harvestStages\n ) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n (typeof regrowTickrate === 'number' || regrowTickrate === null) &&\n (typeof harvestStages === 'number' || harvestStages === null)\n ) {\n let __args = arguments\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n } else if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n regrowTickrate === undefined &&\n harvestStages === undefined\n ) {\n let __args = arguments\n {\n let __args = arguments\n let regrowTickrate = 0\n let harvestStages = 1\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n } else throw new Error('invalid overload')\n }\n getName() {\n return this.__name\n }\n getContractName() {\n return this.contractName\n }\n getItemID() {\n return this.itemID\n }\n getTickrate() {\n return this.tickrate\n }\n getStages() {\n return this.stages\n }\n getRegrowTickrate() {\n return this.regrowTickrate\n }\n getHarvestStages() {\n return this.harvestStages\n }\n getPatchImplementation() {\n return this.patchImplementation\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n }\n PatchImplementation.Produce_$WRAPPER = Produce_$WRAPPER\n PatchImplementation.Produce['__class'] =\n 'timetracking.PatchImplementation.Produce'\n PatchImplementation.Produce['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n ]\n /** @ignore */\n class PatchImplementation$0_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.GROWING,\n value - 4\n )\n }\n if (value === 8) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 9 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.DISEASED,\n value - 8\n )\n }\n if (value >= 12 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.DEAD,\n value - 11\n )\n }\n if (value >= 15 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$0_$WRAPPER = PatchImplementation$0_$WRAPPER\n /** @ignore */\n class PatchImplementation$1_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 10 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 16 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.DISEASED,\n value - 15\n )\n }\n if (value >= 21 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.DEAD,\n value - 20\n )\n }\n if (value >= 26 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$1_$WRAPPER = PatchImplementation$1_$WRAPPER\n /** @ignore */\n class PatchImplementation$2_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 6) {\n return new PatchState(\n PatchImplementation.Produce.HESPORI,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 7 && value <= 8) {\n return new PatchState(\n PatchImplementation.Produce.HESPORI,\n CropState.HARVESTABLE,\n value - 7\n )\n }\n if (value === 9) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$2_$WRAPPER = PatchImplementation$2_$WRAPPER\n /** @ignore */\n class PatchImplementation$3_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 5) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 6 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.GROWING,\n value - 6\n )\n }\n if (value >= 10 && value <= 12) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 13 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.GROWING,\n value - 13\n )\n }\n if (value >= 17 && value <= 19) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.HARVESTABLE,\n value - 17\n )\n }\n if (value >= 20 && value <= 23) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.GROWING,\n value - 20\n )\n }\n if (value >= 24 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.HARVESTABLE,\n value - 24\n )\n }\n if (value >= 27 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.GROWING,\n value - 27\n )\n }\n if (value >= 31 && value <= 33) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.HARVESTABLE,\n value - 31\n )\n }\n if (value >= 34 && value <= 39) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.GROWING,\n value - 34\n )\n }\n if (value >= 40 && value <= 42) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.HARVESTABLE,\n value - 40\n )\n }\n if (value >= 43 && value <= 48) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.GROWING,\n value - 43\n )\n }\n if (value >= 49 && value <= 51) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.HARVESTABLE,\n value - 49\n )\n }\n if (value >= 52 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.GROWING,\n value - 52\n )\n }\n if (value >= 60 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.HARVESTABLE,\n value - 60\n )\n }\n if (value >= 63 && value <= 69) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.GROWING,\n value - 63\n )\n }\n if (value >= 70 && value <= 73) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.GROWING,\n value - 70\n )\n }\n if (value >= 74 && value <= 76) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 77 && value <= 80) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.GROWING,\n value - 77\n )\n }\n if (value >= 81 && value <= 83) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 84 && value <= 87) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.GROWING,\n value - 84\n )\n }\n if (value >= 88 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 91 && value <= 94) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.GROWING,\n value - 91\n )\n }\n if (value >= 95 && value <= 97) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 98 && value <= 103) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.GROWING,\n value - 98\n )\n }\n if (value >= 104 && value <= 106) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 107 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.GROWING,\n value - 107\n )\n }\n if (value >= 113 && value <= 115) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 116 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.GROWING,\n value - 116\n )\n }\n if (value >= 124 && value <= 127) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 128 && value <= 134) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.GROWING,\n value - 128\n )\n }\n if (value >= 135 && value <= 137) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.DISEASED,\n value - 134\n )\n }\n if (value >= 138 && value <= 140) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.HARVESTABLE,\n value - 138\n )\n }\n if (value === 141) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 142 && value <= 144) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.DISEASED,\n value - 141\n )\n }\n if (value >= 145 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 149 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 152 && value <= 155) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 156 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.DISEASED,\n value - 155\n )\n }\n if (value >= 159 && value <= 162) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 163 && value <= 167) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.DISEASED,\n value - 162\n )\n }\n if (value >= 168 && value <= 171) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 172 && value <= 176) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.DISEASED,\n value - 171\n )\n }\n if (value >= 177 && value <= 180) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 181 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.DISEASED,\n value - 180\n )\n }\n if (value >= 188 && value <= 192) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 193 && value <= 195) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DEAD,\n value - 192\n )\n }\n if (value >= 196 && value <= 198) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DISEASED,\n value - 195\n )\n }\n if (value >= 199 && value <= 201) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.DEAD,\n value - 198\n )\n }\n if (value >= 202 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DISEASED,\n 3 + value - 201\n )\n }\n if (value === 205) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 206 && value <= 208) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.DEAD,\n value - 205\n )\n }\n if (value >= 209 && value <= 211) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DEAD,\n 3 + value - 208\n )\n }\n if (value === 212) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 213 && value <= 215) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.DEAD,\n value - 212\n )\n }\n if (value >= 216 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 220 && value <= 222) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.DEAD,\n value - 219\n )\n }\n if (value >= 223 && value <= 226) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 227 && value <= 231) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.DEAD,\n value - 226\n )\n }\n if (value >= 232 && value <= 235) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 236 && value <= 240) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.DEAD,\n value - 235\n )\n }\n if (value >= 241 && value <= 244) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 245 && value <= 251) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.DEAD,\n value - 244\n )\n }\n if (value >= 252 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$3_$WRAPPER = PatchImplementation$3_$WRAPPER\n /** @ignore */\n class PatchImplementation$4_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.HARVESTABLE,\n 10 - value\n )\n }\n if (value >= 11 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.GROWING,\n value - 11\n )\n }\n if (value >= 15 && value <= 17) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.HARVESTABLE,\n 17 - value\n )\n }\n if (value >= 18 && value <= 21) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.GROWING,\n value - 18\n )\n }\n if (value >= 22 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.HARVESTABLE,\n 24 - value\n )\n }\n if (value >= 25 && value <= 28) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.GROWING,\n value - 25\n )\n }\n if (value >= 29 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.HARVESTABLE,\n 31 - value\n )\n }\n if (value >= 32 && value <= 35) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.GROWING,\n value - 32\n )\n }\n if (value >= 36 && value <= 38) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.HARVESTABLE,\n 38 - value\n )\n }\n if (value >= 39 && value <= 42) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.GROWING,\n value - 39\n )\n }\n if (value >= 43 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.HARVESTABLE,\n 45 - value\n )\n }\n if (value >= 46 && value <= 49) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.GROWING,\n value - 46\n )\n }\n if (value >= 50 && value <= 52) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.HARVESTABLE,\n 52 - value\n )\n }\n if (value >= 53 && value <= 56) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.GROWING,\n value - 53\n )\n }\n if (value >= 57 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.HARVESTABLE,\n 59 - value\n )\n }\n if (value >= 60 && value <= 67) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 68 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.GROWING,\n value - 68\n )\n }\n if (value >= 72 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.HARVESTABLE,\n 74 - value\n )\n }\n if (value >= 75 && value <= 78) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.GROWING,\n value - 75\n )\n }\n if (value >= 79 && value <= 81) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.HARVESTABLE,\n 81 - value\n )\n }\n if (value >= 82 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.GROWING,\n value - 82\n )\n }\n if (value >= 86 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.HARVESTABLE,\n 88 - value\n )\n }\n if (value >= 89 && value <= 92) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.GROWING,\n value - 89\n )\n }\n if (value >= 93 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.HARVESTABLE,\n 95 - value\n )\n }\n if (value >= 96 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.GROWING,\n value - 96\n )\n }\n if (value >= 100 && value <= 102) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.HARVESTABLE,\n 102 - value\n )\n }\n if (value >= 103 && value <= 106) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.GROWING,\n value - 103\n )\n }\n if (value >= 107 && value <= 109) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.HARVESTABLE,\n 109 - value\n )\n }\n if (value >= 128 && value <= 130) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.DISEASED,\n value - 127\n )\n }\n if (value >= 131 && value <= 133) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.DISEASED,\n value - 130\n )\n }\n if (value >= 134 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.DISEASED,\n value - 133\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.DISEASED,\n value - 136\n )\n }\n if (value >= 140 && value <= 142) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.DISEASED,\n value - 139\n )\n }\n if (value >= 143 && value <= 145) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.DISEASED,\n value - 142\n )\n }\n if (value >= 146 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.DISEASED,\n value - 145\n )\n }\n if (value >= 149 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 152 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.DISEASED,\n value - 151\n )\n }\n if (value >= 155 && value <= 157) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.DISEASED,\n value - 154\n )\n }\n if (value >= 158 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.DISEASED,\n value - 157\n )\n }\n if (value >= 161 && value <= 163) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.DISEASED,\n value - 160\n )\n }\n if (value >= 164 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.DISEASED,\n value - 163\n )\n }\n if (value >= 167 && value <= 169) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.DISEASED,\n value - 166\n )\n }\n if (value >= 170 && value <= 172) {\n return new PatchState(\n PatchImplementation.Produce.ANYHERB,\n CropState.DEAD,\n value - 169\n )\n }\n if (value >= 173 && value <= 191) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 192 && value <= 195) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.GROWING,\n value - 192\n )\n }\n if (value >= 196 && value <= 197) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.HARVESTABLE,\n 197 - value\n )\n }\n if (value >= 198 && value <= 200) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.DISEASED,\n value - 197\n )\n }\n if (value >= 201 && value <= 203) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.DEAD,\n value - 200\n )\n }\n if (value >= 204 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$4_$WRAPPER = PatchImplementation$4_$WRAPPER\n /** @ignore */\n class PatchImplementation$5_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 12) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 13 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.GROWING,\n value - 13\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 21) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.GROWING,\n value - 18\n )\n }\n if (value === 22) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 23 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.GROWING,\n value - 23\n )\n }\n if (value === 27) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 28 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.GROWING,\n value - 28\n )\n }\n if (value === 32) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 33 && value <= 35) {\n return new PatchState(\n PatchImplementation.Produce.SCARECROW,\n CropState.GROWING,\n 35 - value\n )\n }\n if (value === 36) {\n return new PatchState(\n PatchImplementation.Produce.SCARECROW,\n CropState.GROWING,\n 0\n )\n }\n if (value >= 37 && value <= 40) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.GROWING,\n value - 37\n )\n }\n if (value === 41) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 42 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 72 && value <= 75) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.GROWING,\n value - 72\n )\n }\n if (value === 76) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 77 && value <= 80) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.GROWING,\n value - 77\n )\n }\n if (value === 81) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 82 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.GROWING,\n value - 82\n )\n }\n if (value === 86) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 87 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.GROWING,\n value - 87\n )\n }\n if (value === 91) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 92 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.GROWING,\n value - 92\n )\n }\n if (value >= 96 && value <= 100) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 101 && value <= 104) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.GROWING,\n value - 101\n )\n }\n if (value >= 105 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.DISEASED,\n value - 136\n )\n }\n if (value >= 140 && value <= 141) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 142 && value <= 144) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.DISEASED,\n value - 141\n )\n }\n if (value >= 145 && value <= 146) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 147 && value <= 149) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.DISEASED,\n value - 146\n )\n }\n if (value >= 150 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 152 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.DISEASED,\n value - 151\n )\n }\n if (value >= 155 && value <= 156) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 157 && value <= 159) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.DISEASED,\n value - 156\n )\n }\n if (value >= 160 && value <= 165) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 166 && value <= 168) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.DISEASED,\n value - 165\n )\n }\n if (value >= 169 && value <= 200) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 201 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.DEAD,\n value - 200\n )\n }\n if (value === 205) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 206 && value <= 209) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.DEAD,\n value - 205\n )\n }\n if (value === 210) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 211 && value <= 214) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.DEAD,\n value - 210\n )\n }\n if (value === 215) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 216 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.DEAD,\n value - 215\n )\n }\n if (value === 220) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.DEAD,\n value - 220\n )\n }\n if (value >= 225 && value <= 229) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 230 && value <= 233) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.DEAD,\n value - 229\n )\n }\n if (value >= 234 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$5_$WRAPPER = PatchImplementation$5_$WRAPPER\n /** @ignore */\n class PatchImplementation$6_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value === 4) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 5 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.GROWING,\n value - 5\n )\n }\n if (value >= 10 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 15 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.GROWING,\n value - 15\n )\n }\n if (value >= 21 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.HARVESTABLE,\n value - 21\n )\n }\n if (value >= 26 && value <= 32) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.GROWING,\n value - 26\n )\n }\n if (value >= 33 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.HARVESTABLE,\n value - 33\n )\n }\n if (value >= 38 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.GROWING,\n value - 38\n )\n }\n if (value >= 46 && value <= 50) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.HARVESTABLE,\n value - 46\n )\n }\n if (value >= 51 && value <= 58) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.GROWING,\n value - 51\n )\n }\n if (value >= 59 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.HARVESTABLE,\n value - 59\n )\n }\n if (value >= 64 && value <= 69) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 70 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.DISEASED,\n value - 69\n )\n }\n if (value >= 75 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 80 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.DISEASED,\n value - 79\n )\n }\n if (value >= 86 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 91 && value <= 97) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.DISEASED,\n value - 90\n )\n }\n if (value >= 98 && value <= 102) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 103 && value <= 110) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.DISEASED,\n value - 102\n )\n }\n if (value >= 111 && value <= 115) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 116 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.DISEASED,\n value - 115\n )\n }\n if (value >= 124 && value <= 133) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 134 && value <= 138) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.DEAD,\n value - 133\n )\n }\n if (value >= 139 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 144 && value <= 149) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.DEAD,\n value - 143\n )\n }\n if (value >= 150 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 155 && value <= 161) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.DEAD,\n value - 154\n )\n }\n if (value >= 162 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 167 && value <= 174) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.DEAD,\n value - 166\n )\n }\n if (value >= 175 && value <= 179) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 180 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.DEAD,\n value - 179\n )\n }\n if (value >= 188 && value <= 196) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 197 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.GROWING,\n value - 197\n )\n }\n if (value >= 205 && value <= 209) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.HARVESTABLE,\n value - 205\n )\n }\n if (value >= 210 && value <= 216) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DISEASED,\n value - 209\n )\n }\n if (value >= 217 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DEAD,\n value - 216\n )\n }\n if (value === 225) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DISEASED,\n 8\n )\n }\n if (value >= 226 && value <= 249) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value === 250) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.REDBERRIES\n ].getStages() - 1\n )\n }\n if (value === 251) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CADAVABERRIES\n ].getStages() - 1\n )\n }\n if (value === 252) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.DWELLBERRIES\n ].getStages() - 1\n )\n }\n if (value === 253) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.JANGERBERRIES\n ].getStages() - 1\n )\n }\n if (value === 254) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.WHITEBERRIES\n ].getStages() - 1\n )\n }\n if (value === 255) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.POISON_IVY\n ].getStages() - 1\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$6_$WRAPPER = PatchImplementation$6_$WRAPPER\n /** @ignore */\n class PatchImplementation$7_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 14 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.HARVESTABLE,\n value - 14\n )\n }\n if (value >= 21 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.DISEASED,\n value - 20\n )\n }\n if (value >= 27 && value <= 32) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.DEAD,\n value - 26\n )\n }\n if (value === 33) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.APPLE\n ].getStages() - 1\n )\n }\n if (value >= 35 && value <= 40) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.GROWING,\n value - 35\n )\n }\n if (value >= 41 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.HARVESTABLE,\n value - 41\n )\n }\n if (value >= 48 && value <= 53) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.DISEASED,\n value - 47\n )\n }\n if (value >= 54 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.DEAD,\n value - 53\n )\n }\n if (value === 60) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 61) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.BANANA\n ].getStages() - 1\n )\n }\n if (value >= 62 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 72 && value <= 77) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.GROWING,\n value - 72\n )\n }\n if (value >= 78 && value <= 84) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.HARVESTABLE,\n value - 78\n )\n }\n if (value >= 85 && value <= 89) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DISEASED,\n value - 84\n )\n }\n if (value === 90) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DISEASED,\n 6\n )\n }\n if (value >= 91 && value <= 96) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DEAD,\n value - 90\n )\n }\n if (value === 97) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 98) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.ORANGE\n ].getStages() - 1\n )\n }\n if (value >= 99 && value <= 104) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.GROWING,\n value - 99\n )\n }\n if (value >= 105 && value <= 111) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.HARVESTABLE,\n value - 105\n )\n }\n if (value >= 112 && value <= 117) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.DISEASED,\n value - 111\n )\n }\n if (value >= 118 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.DEAD,\n value - 117\n )\n }\n if (value === 124) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 125) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CURRY\n ].getStages() - 1\n )\n }\n if (value >= 126 && value <= 135) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 136 && value <= 141) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.GROWING,\n value - 136\n )\n }\n if (value >= 142 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.HARVESTABLE,\n value - 142\n )\n }\n if (value >= 149 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 155 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.DEAD,\n value - 154\n )\n }\n if (value === 161) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 162) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PINEAPPLE\n ].getStages() - 1\n )\n }\n if (value >= 163 && value <= 168) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.GROWING,\n value - 163\n )\n }\n if (value >= 169 && value <= 175) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.HARVESTABLE,\n value - 169\n )\n }\n if (value >= 176 && value <= 181) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.DISEASED,\n value - 175\n )\n }\n if (value >= 182 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.DEAD,\n value - 181\n )\n }\n if (value === 188) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 189) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PAPAYA\n ].getStages() - 1\n )\n }\n if (value >= 190 && value <= 199) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 200 && value <= 205) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.GROWING,\n value - 200\n )\n }\n if (value >= 206 && value <= 212) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.HARVESTABLE,\n value - 206\n )\n }\n if (value >= 213 && value <= 218) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.DISEASED,\n value - 212\n )\n }\n if (value >= 219 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.DEAD,\n value - 218\n )\n }\n if (value === 225) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 226) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PALM\n ].getStages() - 1\n )\n }\n if (value >= 227 && value <= 232) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.GROWING,\n value - 227\n )\n }\n if (value >= 233 && value <= 239) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.HARVESTABLE,\n value - 233\n )\n }\n if (value >= 240 && value <= 245) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.DISEASED,\n value - 239\n )\n }\n if (value >= 246 && value <= 251) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.DEAD,\n value - 245\n )\n }\n if (value === 252) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 253) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.DRAGONFRUIT\n ].getStages() - 1\n )\n }\n if (value >= 254 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$7_$WRAPPER = PatchImplementation$7_$WRAPPER\n /** @ignore */\n class PatchImplementation$8_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.HARVESTABLE,\n value - 8\n )\n }\n if (value >= 11 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.GROWING,\n value - 11\n )\n }\n if (value >= 16 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value >= 19 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.GROWING,\n value - 19\n )\n }\n if (value >= 25 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.HARVESTABLE,\n value - 25\n )\n }\n if (value >= 28 && value <= 34) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.GROWING,\n value - 28\n )\n }\n if (value >= 35 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.HARVESTABLE,\n value - 35\n )\n }\n if (value >= 38 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.GROWING,\n value - 38\n )\n }\n if (value >= 46 && value <= 48) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.HARVESTABLE,\n value - 46\n )\n }\n if (value >= 49 && value <= 52) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.GROWING,\n value - 49\n )\n }\n if (value >= 53 && value <= 55) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.HARVESTABLE,\n value - 53\n )\n }\n if (value >= 56 && value <= 60) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.GROWING,\n value - 56\n )\n }\n if (value >= 61 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.HARVESTABLE,\n value - 61\n )\n }\n if (value >= 64 && value <= 67) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 68 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.GROWING,\n value - 68\n )\n }\n if (value >= 72 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 75 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.GROWING,\n value - 75\n )\n }\n if (value >= 80 && value <= 82) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 83 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.GROWING,\n value - 83\n )\n }\n if (value >= 89 && value <= 91) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 92 && value <= 98) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.GROWING,\n value - 92\n )\n }\n if (value >= 99 && value <= 101) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 102 && value <= 109) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.GROWING,\n value - 102\n )\n }\n if (value >= 110 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 113 && value <= 116) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.GROWING,\n value - 113\n )\n }\n if (value >= 117 && value <= 119) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 120 && value <= 124) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.GROWING,\n value - 120\n )\n }\n if (value >= 125 && value <= 132) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 133 && value <= 135) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.DISEASED,\n value - 132\n )\n }\n if (value >= 136 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 140 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.DISEASED,\n value - 139\n )\n }\n if (value >= 144 && value <= 147) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 148 && value <= 152) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.DISEASED,\n value - 147\n )\n }\n if (value >= 153 && value <= 156) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 157 && value <= 162) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.DISEASED,\n value - 156\n )\n }\n if (value >= 163 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 167 && value <= 173) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.DISEASED,\n value - 166\n )\n }\n if (value >= 174 && value <= 177) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 178 && value <= 180) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.DISEASED,\n value - 177\n )\n }\n if (value === 181) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 183 && value <= 184) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 185 && value <= 188) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.DISEASED,\n value - 184\n )\n }\n if (value >= 189 && value <= 196) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 197 && value <= 199) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.DEAD,\n value - 196\n )\n }\n if (value >= 200 && value <= 203) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 204 && value <= 207) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.DEAD,\n value - 203\n )\n }\n if (value >= 208 && value <= 211) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 212 && value <= 216) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.DEAD,\n value - 211\n )\n }\n if (value >= 217 && value <= 220) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 226) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.DEAD,\n value - 220\n )\n }\n if (value >= 227 && value <= 230) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 231 && value <= 237) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.DEAD,\n value - 230\n )\n }\n if (value >= 238 && value <= 241) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 242 && value <= 244) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.DEAD,\n value - 241\n )\n }\n if (value >= 245 && value <= 248) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 249 && value <= 252) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.DEAD,\n value - 248\n )\n }\n if (value >= 253 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$8_$WRAPPER = PatchImplementation$8_$WRAPPER\n /** @ignore */\n class PatchImplementation$9_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 12) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.OAK\n ].getStages() - 1\n )\n }\n if (value === 13) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 14) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 15 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.GROWING,\n value - 15\n )\n }\n if (value === 21) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.WILLOW\n ].getStages() - 1\n )\n }\n if (value === 22) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 23) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 24 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.GROWING,\n value - 24\n )\n }\n if (value === 32) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAPLE\n ].getStages() - 1\n )\n }\n if (value === 33) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 35 && value <= 44) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.GROWING,\n value - 35\n )\n }\n if (value === 45) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.YEW\n ].getStages() - 1\n )\n }\n if (value === 46) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 47) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 48 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.GROWING,\n value - 48\n )\n }\n if (value === 60) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAGIC\n ].getStages() - 1\n )\n }\n if (value === 61) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 62) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 63 && value <= 72) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 73 && value <= 75) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DISEASED,\n value - 72\n )\n }\n if (value === 77) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DISEASED,\n 4\n )\n }\n if (value >= 78 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 80 && value <= 84) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DISEASED,\n value - 79\n )\n }\n if (value === 86) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DISEASED,\n 6\n )\n }\n if (value >= 87 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 89 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DISEASED,\n value - 88\n )\n }\n if (value === 97) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DISEASED,\n 8\n )\n }\n if (value >= 98 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 100 && value <= 108) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DISEASED,\n value - 99\n )\n }\n if (value === 110) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DISEASED,\n 10\n )\n }\n if (value >= 111 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 113 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DISEASED,\n value - 112\n )\n }\n if (value === 125) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DISEASED,\n 12\n )\n }\n if (value >= 126 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DEAD,\n value - 136\n )\n }\n if (value === 141) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DEAD,\n 4\n )\n }\n if (value >= 142 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 144 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DEAD,\n value - 143\n )\n }\n if (value === 150) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DEAD,\n 6\n )\n }\n if (value >= 151 && value <= 152) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 153 && value <= 159) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DEAD,\n value - 152\n )\n }\n if (value === 161) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DEAD,\n 8\n )\n }\n if (value >= 162 && value <= 163) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 164 && value <= 172) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DEAD,\n value - 163\n )\n }\n if (value === 174) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DEAD,\n 10\n )\n }\n if (value >= 175 && value <= 176) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 177 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DEAD,\n value - 176\n )\n }\n if (value === 189) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DEAD,\n 12\n )\n }\n if (value >= 190 && value <= 191) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 192 && value <= 197) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 198 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$9_$WRAPPER = PatchImplementation$9_$WRAPPER\n /** @ignore */\n class PatchImplementation$10_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 15) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.TEAK\n ].getStages() - 1\n )\n }\n if (value === 16) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 23) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.DISEASED,\n value - 17\n )\n }\n if (value >= 24 && value <= 29) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.DEAD,\n value - 23\n )\n }\n if (value >= 30 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.GROWING,\n value - 30\n )\n }\n if (value === 38) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAHOGANY\n ].getStages() - 1\n )\n }\n if (value === 39) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 40) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 41 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.DISEASED,\n value - 40\n )\n }\n if (value >= 48 && value <= 54) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.DEAD,\n value - 47\n )\n }\n if (value >= 55 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$10_$WRAPPER = PatchImplementation$10_$WRAPPER\n /** @ignore */\n class PatchImplementation$11_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 17) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 18) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 19 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 28 && value <= 36) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.DEAD,\n value - 27\n )\n }\n if (value === 37) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.REDWOOD\n ].getStages() - 1\n )\n }\n if (value >= 41 && value <= 55) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.HARVESTABLE,\n 0\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$11_$WRAPPER = PatchImplementation$11_$WRAPPER\n /** @ignore */\n class PatchImplementation$12_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 19) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 20) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n 12\n )\n }\n if (value >= 21 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.DISEASED,\n value - 20\n )\n }\n if (value >= 32 && value <= 43) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.DEAD,\n value - 31\n )\n }\n if (value === 44) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.SPIRIT_TREE\n ].getStages() - 1\n )\n }\n if (value >= 45 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$12_$WRAPPER = PatchImplementation$12_$WRAPPER\n /** @ignore */\n class PatchImplementation$13_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ATTAS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 17 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.IASOR,\n CropState.GROWING,\n value - 17\n )\n }\n if (value >= 26 && value <= 34) {\n return new PatchState(\n PatchImplementation.Produce.KRONOS,\n CropState.GROWING,\n value - 26\n )\n }\n if (value >= 35 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$13_$WRAPPER = PatchImplementation$13_$WRAPPER\n /** @ignore */\n class PatchImplementation$14_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 15 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.HARVESTABLE,\n value - 15\n )\n }\n if (value >= 19 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 25 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.DEAD,\n value - 24\n )\n }\n if (value === 31) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CACTUS\n ].getStages() - 1\n )\n }\n if (value >= 32 && value <= 38) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.GROWING,\n value - 32\n )\n }\n if (value >= 39 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.HARVESTABLE,\n value - 39\n )\n }\n if (value >= 46 && value <= 51) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.DISEASED,\n value - 45\n )\n }\n if (value >= 52 && value <= 57) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.DEAD,\n value - 51\n )\n }\n if (value === 58) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.POTATO_CACTUS\n ].getStages() - 1\n )\n }\n if (value >= 59 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$14_$WRAPPER = PatchImplementation$14_$WRAPPER\n /** @ignore */\n class PatchImplementation$15_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.HARVESTABLE,\n value - 8\n )\n }\n if (value >= 11 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.DISEASED,\n value - 10\n )\n }\n if (value >= 14 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.DEAD,\n value - 13\n )\n }\n if (value >= 17 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$15_$WRAPPER = PatchImplementation$15_$WRAPPER\n /** @ignore */\n class PatchImplementation$16_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 12 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.HARVESTABLE,\n value - 12\n )\n }\n if (value >= 19 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 26 && value <= 33) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.DEAD,\n value - 25\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CALQUAT\n ].getStages() - 1\n )\n }\n if (value >= 35 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$16_$WRAPPER = PatchImplementation$16_$WRAPPER\n /** @ignore */\n class PatchImplementation$17_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 12) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 13) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CELASTRUS\n ].getStages() - 1\n )\n }\n if (value >= 14 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n value - 14\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 22) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.DISEASED,\n value - 17\n )\n }\n if (value >= 23 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.DEAD,\n value - 22\n )\n }\n if (value === 28) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 29 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$17_$WRAPPER = PatchImplementation$17_$WRAPPER\n /** @ignore */\n class PatchImplementation$18_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 1) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 2 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.GROWING,\n value - 2\n )\n }\n if (value === 10) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.GROWING,\n 7\n )\n }\n if (value >= 11 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.HARVESTABLE,\n value - 11\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$18_$WRAPPER = PatchImplementation$18_$WRAPPER\n /** @ignore */\n class PatchImplementation$19_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 8 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 14) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CRYSTAL_TREE\n ].getStages() - 1\n )\n }\n if (value === 15) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.HARVESTABLE,\n 0\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$19_$WRAPPER = PatchImplementation$19_$WRAPPER\n /** @ignore */\n class PatchImplementation$20_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value === 0) {\n return new PatchState(\n PatchImplementation.Produce.EMPTY_COMPOST_BIN,\n CropState.EMPTY,\n 0\n )\n }\n if (value >= 1 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.FILLING,\n value - 1\n )\n }\n if (value >= 16 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value === 31 || value === 32) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.GROWING,\n value - 31\n )\n }\n if (value >= 33 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.FILLING,\n value - 33\n )\n }\n if (value >= 48 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.HARVESTABLE,\n value - 48\n )\n }\n if (value === 94) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.COMPOST\n ].getStages() - 1\n )\n }\n if (value === 95 || value === 96) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.GROWING,\n value - 95\n )\n }\n if (value === 126) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.SUPERCOMPOST\n ].getStages() - 1\n )\n }\n if (value >= 129 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.FILLING,\n value - 129\n )\n }\n if (value >= 144 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n value - 144\n )\n }\n if (value >= 159 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.GROWING,\n value - 159\n )\n }\n if (value >= 176 && value <= 190) {\n return new PatchState(\n PatchImplementation.Produce.ULTRACOMPOST,\n CropState.HARVESTABLE,\n value - 176\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$20_$WRAPPER = PatchImplementation$20_$WRAPPER\n /** @ignore */\n class PatchImplementation$21_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value === 0) {\n return new PatchState(\n PatchImplementation.Produce.EMPTY_GIANT_COMPOST_BIN,\n CropState.EMPTY,\n 0\n )\n }\n if (value >= 1 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.FILLING,\n value - 1\n )\n }\n if (value >= 16 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value >= 33 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.FILLING,\n value - 33\n )\n }\n if (value >= 48 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.HARVESTABLE,\n value - 48\n )\n }\n if (value >= 63 && value <= 77) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.FILLING,\n 15 + value - 63\n )\n }\n if (value >= 78 && value <= 92) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.HARVESTABLE,\n 15 + value - 78\n )\n }\n if (value === 93) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.GIANT_COMPOST\n ].getStages() - 1\n )\n }\n if (value >= 97 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.GROWING,\n value - 97\n )\n }\n if (value >= 100 && value <= 114) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.HARVESTABLE,\n 15 + value - 100\n )\n }\n if (value >= 127 && value <= 128) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.GROWING,\n value - 127\n )\n }\n if (value >= 129 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.FILLING,\n value - 129\n )\n }\n if (value >= 144 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n value - 144\n )\n }\n if (value >= 159 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.GROWING,\n value - 159\n )\n }\n if (value >= 161 && value <= 175) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.FILLING,\n 15 + value - 161\n )\n }\n if (value >= 176 && value <= 205) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ULTRACOMPOST,\n CropState.HARVESTABLE,\n value - 176\n )\n }\n if (value >= 207 && value <= 221) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n 15 + value - 207\n )\n }\n if (value === 222) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO\n ].getStages() - 1\n )\n }\n if (value >= 223 && value <= 237) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.FILLING,\n 15 + value - 223\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$21_$WRAPPER = PatchImplementation$21_$WRAPPER\n})(PatchImplementation || (PatchImplementation = {}))\nPatchImplementation['_$wrappers'] = {\n 0: new PatchImplementation.PatchImplementation$0_$WRAPPER(\n 0,\n 'BELLADONNA',\n Tab.SPECIAL,\n ''\n ),\n 1: new PatchImplementation.PatchImplementation$1_$WRAPPER(\n 1,\n 'MUSHROOM',\n Tab.SPECIAL,\n ''\n ),\n 2: new PatchImplementation.PatchImplementation$2_$WRAPPER(\n 2,\n 'HESPORI',\n Tab.SPECIAL,\n ''\n ),\n 3: new PatchImplementation.PatchImplementation$3_$WRAPPER(\n 3,\n 'ALLOTMENT',\n Tab.ALLOTMENT,\n ''\n ),\n 4: new PatchImplementation.PatchImplementation$4_$WRAPPER(\n 4,\n 'HERB',\n Tab.HERB,\n ''\n ),\n 5: new PatchImplementation.PatchImplementation$5_$WRAPPER(\n 5,\n 'FLOWER',\n Tab.FLOWER,\n ''\n ),\n 6: new PatchImplementation.PatchImplementation$6_$WRAPPER(\n 6,\n 'BUSH',\n Tab.BUSH,\n ''\n ),\n 7: new PatchImplementation.PatchImplementation$7_$WRAPPER(\n 7,\n 'FRUIT_TREE',\n Tab.FRUIT_TREE,\n ''\n ),\n 8: new PatchImplementation.PatchImplementation$8_$WRAPPER(\n 8,\n 'HOPS',\n Tab.HOPS,\n ''\n ),\n 9: new PatchImplementation.PatchImplementation$9_$WRAPPER(\n 9,\n 'TREE',\n Tab.TREE,\n ''\n ),\n 10: new PatchImplementation.PatchImplementation$10_$WRAPPER(\n 10,\n 'HARDWOOD_TREE',\n Tab.TREE,\n 'Hardwood Trees'\n ),\n 11: new PatchImplementation.PatchImplementation$11_$WRAPPER(\n 11,\n 'REDWOOD',\n Tab.TREE,\n 'Redwood Trees'\n ),\n 12: new PatchImplementation.PatchImplementation$12_$WRAPPER(\n 12,\n 'SPIRIT_TREE',\n Tab.TREE,\n 'Spirit Trees'\n ),\n 13: new PatchImplementation.PatchImplementation$13_$WRAPPER(\n 13,\n 'ANIMA',\n Tab.SPECIAL,\n ''\n ),\n 14: new PatchImplementation.PatchImplementation$14_$WRAPPER(\n 14,\n 'CACTUS',\n Tab.SPECIAL,\n 'Cactus'\n ),\n 15: new PatchImplementation.PatchImplementation$15_$WRAPPER(\n 15,\n 'SEAWEED',\n Tab.SPECIAL,\n 'Seaweed'\n ),\n 16: new PatchImplementation.PatchImplementation$16_$WRAPPER(\n 16,\n 'CALQUAT',\n Tab.FRUIT_TREE,\n 'Calquat'\n ),\n 17: new PatchImplementation.PatchImplementation$17_$WRAPPER(\n 17,\n 'CELASTRUS',\n Tab.FRUIT_TREE,\n 'Celastrus'\n ),\n 18: new PatchImplementation.PatchImplementation$18_$WRAPPER(\n 18,\n 'GRAPES',\n Tab.GRAPE,\n ''\n ),\n 19: new PatchImplementation.PatchImplementation$19_$WRAPPER(\n 19,\n 'CRYSTAL_TREE',\n Tab.FRUIT_TREE,\n 'Crystal Tree'\n ),\n 20: new PatchImplementation.PatchImplementation$20_$WRAPPER(\n 20,\n 'COMPOST',\n Tab.SPECIAL,\n 'Compost Bin'\n ),\n 21: new PatchImplementation.PatchImplementation$21_$WRAPPER(\n 21,\n 'GIANT_COMPOST',\n Tab.SPECIAL,\n 'Giant Compost Bin'\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var Varbits\n;(function (Varbits) {\n /**\n * Transmog controllers for farming\n */\n Varbits[(Varbits['FARMING_4771'] = 0)] = 'FARMING_4771'\n Varbits[(Varbits['FARMING_4772'] = 1)] = 'FARMING_4772'\n Varbits[(Varbits['FARMING_4773'] = 2)] = 'FARMING_4773'\n Varbits[(Varbits['FARMING_4774'] = 3)] = 'FARMING_4774'\n Varbits[(Varbits['FARMING_4775'] = 4)] = 'FARMING_4775'\n Varbits[(Varbits['FARMING_7904'] = 5)] = 'FARMING_7904'\n Varbits[(Varbits['FARMING_7905'] = 6)] = 'FARMING_7905'\n Varbits[(Varbits['FARMING_7906'] = 7)] = 'FARMING_7906'\n Varbits[(Varbits['FARMING_7907'] = 8)] = 'FARMING_7907'\n Varbits[(Varbits['FARMING_7908'] = 9)] = 'FARMING_7908'\n Varbits[(Varbits['FARMING_7909'] = 10)] = 'FARMING_7909'\n Varbits[(Varbits['FARMING_7910'] = 11)] = 'FARMING_7910'\n Varbits[(Varbits['FARMING_7911'] = 12)] = 'FARMING_7911'\n Varbits[(Varbits['FARMING_7912'] = 13)] = 'FARMING_7912'\n /**\n * Transmog controllers for grapes\n */\n Varbits[(Varbits['GRAPES_4953'] = 14)] = 'GRAPES_4953'\n Varbits[(Varbits['GRAPES_4954'] = 15)] = 'GRAPES_4954'\n Varbits[(Varbits['GRAPES_4955'] = 16)] = 'GRAPES_4955'\n Varbits[(Varbits['GRAPES_4956'] = 17)] = 'GRAPES_4956'\n Varbits[(Varbits['GRAPES_4957'] = 18)] = 'GRAPES_4957'\n Varbits[(Varbits['GRAPES_4958'] = 19)] = 'GRAPES_4958'\n Varbits[(Varbits['GRAPES_4959'] = 20)] = 'GRAPES_4959'\n Varbits[(Varbits['GRAPES_4960'] = 21)] = 'GRAPES_4960'\n Varbits[(Varbits['GRAPES_4961'] = 22)] = 'GRAPES_4961'\n Varbits[(Varbits['GRAPES_4962'] = 23)] = 'GRAPES_4962'\n Varbits[(Varbits['GRAPES_4963'] = 24)] = 'GRAPES_4963'\n Varbits[(Varbits['GRAPES_4964'] = 25)] = 'GRAPES_4964'\n /**\n * Automatically weed farming patches\n */\n Varbits[(Varbits['AUTOWEED'] = 26)] = 'AUTOWEED'\n})(Varbits || (Varbits = {}))\n/** @ignore */\nexport class Varbits_$WRAPPER {\n constructor(_$ordinal, _$name, id) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.id === undefined) {\n this.id = 0\n }\n this.id = id\n }\n getId() {\n return this.id\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nVarbits['__class'] = 'timetracking.Varbits'\nVarbits['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nVarbits['_$wrappers'] = {\n 0: new Varbits_$WRAPPER(0, 'FARMING_4771', 4771),\n 1: new Varbits_$WRAPPER(1, 'FARMING_4772', 4772),\n 2: new Varbits_$WRAPPER(2, 'FARMING_4773', 4773),\n 3: new Varbits_$WRAPPER(3, 'FARMING_4774', 4774),\n 4: new Varbits_$WRAPPER(4, 'FARMING_4775', 4775),\n 5: new Varbits_$WRAPPER(5, 'FARMING_7904', 7904),\n 6: new Varbits_$WRAPPER(6, 'FARMING_7905', 7905),\n 7: new Varbits_$WRAPPER(7, 'FARMING_7906', 7906),\n 8: new Varbits_$WRAPPER(8, 'FARMING_7907', 7907),\n 9: new Varbits_$WRAPPER(9, 'FARMING_7908', 7908),\n 10: new Varbits_$WRAPPER(10, 'FARMING_7909', 7909),\n 11: new Varbits_$WRAPPER(11, 'FARMING_7910', 7910),\n 12: new Varbits_$WRAPPER(12, 'FARMING_7911', 7911),\n 13: new Varbits_$WRAPPER(13, 'FARMING_7912', 7912),\n 14: new Varbits_$WRAPPER(14, 'GRAPES_4953', 4953),\n 15: new Varbits_$WRAPPER(15, 'GRAPES_4954', 4954),\n 16: new Varbits_$WRAPPER(16, 'GRAPES_4955', 4955),\n 17: new Varbits_$WRAPPER(17, 'GRAPES_4956', 4956),\n 18: new Varbits_$WRAPPER(18, 'GRAPES_4957', 4957),\n 19: new Varbits_$WRAPPER(19, 'GRAPES_4958', 4958),\n 20: new Varbits_$WRAPPER(20, 'GRAPES_4959', 4959),\n 21: new Varbits_$WRAPPER(21, 'GRAPES_4960', 4960),\n 22: new Varbits_$WRAPPER(22, 'GRAPES_4961', 4961),\n 23: new Varbits_$WRAPPER(23, 'GRAPES_4962', 4962),\n 24: new Varbits_$WRAPPER(24, 'GRAPES_4963', 4963),\n 25: new Varbits_$WRAPPER(25, 'GRAPES_4964', 4964),\n 26: new Varbits_$WRAPPER(26, 'AUTOWEED', 5557)\n}\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * An enumeration of possible autoweed settings.\n * @enum\n * @property {Autoweed} UNOWNED\n * Access to autoweed has not been unlocked.\n * @property {Autoweed} OFF\n * Autoweed is disabled.\n * @property {Autoweed} ON\n * Autoweed is enabled.\n * @class\n */\nexport var Autoweed\n;(function (Autoweed) {\n /**\n * Access to autoweed has not been unlocked.\n */\n Autoweed[(Autoweed['UNOWNED'] = 0)] = 'UNOWNED'\n /**\n * Autoweed is disabled.\n */\n Autoweed[(Autoweed['OFF'] = 1)] = 'OFF'\n /**\n * Autoweed is enabled.\n */\n Autoweed[(Autoweed['ON'] = 2)] = 'ON'\n})(Autoweed || (Autoweed = {}))\n","// @ts-nocheck\n/* eslint-disable */\nexport class ItemID {}\nItemID.GRIMY_RANARR_WEED = 207\nItemID.LIMPWURT_ROOT = 225\nItemID.SNAPE_GRASS = 231\nItemID.WHITE_BERRIES = 239\nItemID.JANGERBERRIES = 247\nItemID.GUAM_LEAF = 249\nItemID.MARRENTILL = 251\nItemID.TARROMIN = 253\nItemID.HARRALANDER = 255\nItemID.RANARR_WEED = 257\nItemID.IRIT_LEAF = 259\nItemID.AVANTOE = 261\nItemID.KWUARM = 263\nItemID.CADANTINE = 265\nItemID.DWARF_WEED = 267\nItemID.TORSTOL = 269\nItemID.CADAVA_BERRIES = 753\nItemID.BATTLESTAFF = 1391\nItemID.MAGIC_LOGS = 1513\nItemID.YEW_LOGS = 1515\nItemID.MAPLE_LOGS = 1517\nItemID.WILLOW_LOGS = 1519\nItemID.OAK_LOGS = 1521\nItemID.WOAD_LEAF = 1793\nItemID.POTATO = 1942\nItemID.REDBERRIES = 1951\nItemID.COOKING_APPLE = 1955\nItemID.ONION = 1957\nItemID.BANANA = 1963\nItemID.CABBAGE = 1965\nItemID.TOMATO = 1982\nItemID.GRAPES = 1987\nItemID.ORANGE = 2108\nItemID.PINEAPPLE = 2114\nItemID.DWELLBERRIES = 2126\nItemID.CAVE_NIGHTSHADE = 2398\nItemID.RED_FLOWERS = 2462\nItemID.LANTADYME = 2481\nItemID.WATCH = 2575\nItemID.TOADFLAX = 2998\nItemID.SNAPDRAGON = 3000\nItemID.POTATO_CACTUS = 3138\nItemID.GOUTWEED = 3261\nItemID.STRAWBERRY = 5504\nItemID.JUTE_FIBRE = 5931\nItemID.CURRY_LEAF = 5970\nItemID.PAPAYA_FRUIT = 5972\nItemID.COCONUT = 5974\nItemID.CALQUAT_FRUIT = 5980\nItemID.WATERMELON = 5982\nItemID.SWEETCORN = 5986\nItemID.HAMMERSTONE_HOPS = 5994\nItemID.ASGARNIAN_HOPS = 5996\nItemID.YANILLIAN_HOPS = 5998\nItemID.KRANDORIAN_HOPS = 6000\nItemID.WILDBLOOD_HOPS = 6002\nItemID.MUSHROOM = 6004\nItemID.BARLEY = 6006\nItemID.MARIGOLDS = 6010\nItemID.NASTURTIUMS = 6012\nItemID.ROSEMARY = 6014\nItemID.CACTUS_SPINE = 6016\nItemID.POISON_IVY_BERRIES = 6018\nItemID.WEEDS = 6055\nItemID.SCARECROW = 6059\nItemID.SPIRIT_TREE = 6063\nItemID.MAHOGANY_LOGS = 6332\nItemID.TEAK_LOGS = 6333\nItemID.REDWOOD_LOGS = 19669\nItemID.GIANT_SEAWEED = 21504\nItemID.OLD_NOTES = 22051\nItemID.DRAGONFRUIT = 22929\nItemID.WHITE_LILY = 22932\nItemID.CRYSTAL_SHARDS = 23866\nItemID.BIRD_HOUSE = 21512\nItemID.OAK_BIRD_HOUSE = 21515\nItemID.WILLOW_BIRD_HOUSE = 21518\nItemID.TEAK_BIRD_HOUSE = 21521\nItemID.MAPLE_BIRD_HOUSE = 22192\nItemID.MAHOGANY_BIRD_HOUSE = 22195\nItemID.YEW_BIRD_HOUSE = 22198\nItemID.MAGIC_BIRD_HOUSE = 22201\nItemID.REDWOOD_BIRD_HOUSE = 22204\nItemID.FEATHER = 314\nItemID.COMPOST_BIN = 3271\nItemID.COMPOST = 6032\nItemID.SUPERCOMPOST = 6034\nItemID.ULTRACOMPOST = 21483\nItemID.ROTTEN_TOMATO = 2518\nItemID['__class'] = 'timetracking.ItemID'\n","// @ts-nocheck\n/* eslint-disable */\nexport class PatchState {\n constructor(produce, cropState, stage) {\n if (this.produce === undefined) {\n this.produce = null\n }\n if (this.cropState === undefined) {\n this.cropState = null\n }\n if (this.stage === undefined) {\n this.stage = 0\n }\n this.produce = produce\n this.cropState = cropState\n this.stage = stage\n }\n getStages() {\n return this.cropState === CropState.HARVESTABLE ||\n this.cropState === CropState.FILLING\n ? PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getHarvestStages()\n : PatchImplementation.Produce['_$wrappers'][this.produce].getStages()\n }\n getTickRate() {\n switch (this.cropState) {\n case CropState.HARVESTABLE:\n return PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getRegrowTickrate()\n case CropState.GROWING:\n return PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getTickrate()\n default:\n return 0\n }\n }\n getStage() {\n return this.stage\n }\n getProduce() {\n return this.produce\n }\n getCropState() {\n return this.cropState\n }\n}\nPatchState['__class'] = 'timetracking.PatchState'\nimport { CropState } from './CropState'\nimport { PatchImplementation } from './PatchImplementation'\n","// @ts-nocheck\n/* eslint-disable */\nexport class NullItemID {}\nNullItemID.NULL_22938 = 22938\nNullItemID.NULL_22939 = 22939\nNullItemID.NULL_22940 = 22940\nNullItemID.NULL_23044 = 23044\nNullItemID['__class'] = 'timetracking.NullItemID'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingPatch {\n constructor(name, varbit, implementation) {\n if (this.region === undefined) {\n this.region = null\n }\n if (this.name === undefined) {\n this.name = null\n }\n if (this.varbit === undefined) {\n this.varbit = null\n }\n if (this.implementation === undefined) {\n this.implementation = null\n }\n this.name = name\n this.varbit = varbit\n this.implementation = implementation\n }\n getName() {\n return this.name\n }\n getVarbit() {\n return this.varbit\n }\n getImplementation() {\n return this.implementation\n }\n getRegion() {\n return this.region\n }\n setRegion(region) {\n this.region = region\n }\n}\nFarmingPatch['__class'] = 'timetracking.FarmingPatch'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingRegion {\n constructor(name, regionID, ...patches) {\n if (this.name === undefined) {\n this.name = null\n }\n if (this.regionID === undefined) {\n this.regionID = 0\n }\n if (this.patches === undefined) {\n this.patches = null\n }\n if (this.varbits === undefined) {\n this.varbits = null\n }\n this.name = name\n this.regionID = regionID\n this.patches = patches\n this.varbits = (s => {\n let a = []\n while (s-- > 0) a.push(null)\n return a\n })(patches.length)\n for (let i = 0; i < patches.length; i++) {\n {\n const p = patches[i]\n p.setRegion(this)\n this.varbits[i] = p.getVarbit()\n }\n }\n }\n getName() {\n return this.name\n }\n getRegionID() {\n return this.regionID\n }\n getPatches() {\n return this.patches\n }\n getVarbits() {\n return this.varbits\n }\n}\nFarmingRegion['__class'] = 'timetracking.FarmingRegion'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingWorld {\n constructor() {\n this.regions = new Map()\n this.tabs = new Map()\n if (this.farmingGuildRegion === undefined) {\n this.farmingGuildRegion = null\n }\n this.add(\n new FarmingRegion(\n 'Al Kharid',\n 13106,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.CACTUS)\n ),\n 13362,\n 13105\n )\n this.add(\n new FarmingRegion(\n 'Ardougne',\n 10290,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n ),\n 10546\n )\n this.add(\n new FarmingRegion(\n 'Ardougne',\n 10548,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n )\n )\n this.add(\n new FarmingRegion(\n 'Brimhaven',\n 11058,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 11057\n )\n this.add(\n new FarmingRegion(\n 'Catherby',\n 11062,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n ),\n 11061,\n 11318,\n 11317\n )\n this.add(\n new FarmingRegion(\n 'Catherby',\n 11317,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n )\n )\n this.add(\n new FarmingRegion(\n \"Champions' Guild\",\n 12596,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n )\n )\n this.add(\n new FarmingRegion(\n 'Draynor Manor',\n 12340,\n new FarmingPatch(\n 'Belladonna',\n Varbits.FARMING_4771,\n PatchImplementation.BELLADONNA\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Entrana',\n 11060,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n ),\n 11316\n )\n this.add(\n new FarmingRegion(\n 'Etceteria',\n 10300,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.SPIRIT_TREE\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Falador',\n 11828,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12084\n )\n this.add(\n new FarmingRegion(\n 'Falador',\n 12083,\n new FarmingPatch(\n 'North West',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South East',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n )\n )\n this.add(\n new FarmingRegion(\n 'Fossil Island',\n 14651,\n new FarmingPatch(\n 'East',\n Varbits.FARMING_4771,\n PatchImplementation.HARDWOOD_TREE\n ),\n new FarmingPatch(\n 'Middle',\n Varbits.FARMING_4772,\n PatchImplementation.HARDWOOD_TREE\n ),\n new FarmingPatch(\n 'West',\n Varbits.FARMING_4773,\n PatchImplementation.HARDWOOD_TREE\n )\n ),\n 14907,\n 14908,\n 15164,\n 14652,\n 14906,\n 14650,\n 15162,\n 15163\n )\n this.add(\n new FarmingRegion(\n 'Seaweed',\n 15008,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.SEAWEED\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.SEAWEED\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Gnome Stronghold',\n 9781,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 9782,\n 9526,\n 9525\n )\n this.add(\n new FarmingRegion(\n 'Harmony',\n 15148,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4772, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Kourend',\n 6967,\n new FarmingPatch(\n 'North East',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South West',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST),\n new FarmingPatch(\n '',\n Varbits.FARMING_7904,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 6711\n )\n this.add(\n new FarmingRegion(\n 'Kourend',\n 7223,\n new FarmingPatch(\n 'East 1',\n Varbits.GRAPES_4953,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 2',\n Varbits.GRAPES_4954,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 3',\n Varbits.GRAPES_4955,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 4',\n Varbits.GRAPES_4956,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 5',\n Varbits.GRAPES_4957,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 6',\n Varbits.GRAPES_4958,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 1',\n Varbits.GRAPES_4959,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 2',\n Varbits.GRAPES_4960,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 3',\n Varbits.GRAPES_4961,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 4',\n Varbits.GRAPES_4962,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 5',\n Varbits.GRAPES_4963,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 6',\n Varbits.GRAPES_4964,\n PatchImplementation.GRAPES\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Lletya',\n 9265,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 11103\n )\n this.add(\n new FarmingRegion(\n 'Lumbridge',\n 12851,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n )\n )\n this.add(\n new FarmingRegion(\n 'Lumbridge',\n 12594,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12850\n )\n this.add(\n new FarmingRegion(\n 'Morytania',\n 13622,\n new FarmingPatch(\n 'Mushroom',\n Varbits.FARMING_4771,\n PatchImplementation.MUSHROOM\n )\n ),\n 13878\n )\n this.add(\n new FarmingRegion(\n 'Morytania',\n 14391,\n new FarmingPatch(\n 'North West',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South East',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n ),\n 14390\n )\n this.add(\n new FarmingRegion(\n 'Port Sarim',\n 12082,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 12083\n )\n this.add(\n new FarmingRegion(\n 'Rimmington',\n 11570,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n ),\n 11826\n )\n this.add(\n new FarmingRegion(\n \"Seers' Village\",\n 10551,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n ),\n 10550\n )\n this.add(\n new FarmingRegion(\n 'Tai Bwo Wannai',\n 11056,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.CALQUAT)\n )\n )\n this.add(\n new FarmingRegion(\n 'Taverley',\n 11573,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 11829\n )\n this.add(\n new FarmingRegion(\n 'Tree Gnome Village',\n 9777,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 10033\n )\n this.add(\n new FarmingRegion(\n 'Troll Stronghold',\n 11321,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Varrock',\n 12854,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12853\n )\n this.add(\n new FarmingRegion(\n 'Yanille',\n 10288,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n )\n )\n this.add(\n new FarmingRegion(\n 'Weiss',\n 11325,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Farming Guild',\n 5021,\n new FarmingPatch(\n 'Hespori',\n Varbits.FARMING_7908,\n PatchImplementation.HESPORI\n )\n )\n )\n this.add(\n (this.farmingGuildRegion = new FarmingRegion(\n 'Farming Guild',\n 4922,\n new FarmingPatch('', Varbits.FARMING_7905, PatchImplementation.TREE),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4772, PatchImplementation.BUSH),\n new FarmingPatch('', Varbits.FARMING_7906, PatchImplementation.FLOWER),\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4773,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4774,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7912,\n PatchImplementation.GIANT_COMPOST\n ),\n new FarmingPatch('', Varbits.FARMING_7904, PatchImplementation.CACTUS),\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.SPIRIT_TREE\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7909,\n PatchImplementation.FRUIT_TREE\n ),\n new FarmingPatch(\n 'Anima',\n Varbits.FARMING_7911,\n PatchImplementation.ANIMA\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7910,\n PatchImplementation.CELASTRUS\n ),\n new FarmingPatch('', Varbits.FARMING_7907, PatchImplementation.REDWOOD)\n )),\n 5177,\n 5178,\n 5179,\n 4921,\n 4923,\n 4665,\n 4666,\n 4667\n )\n this.add(\n new FarmingRegion(\n 'Prifddinas',\n 13151,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch(\n '',\n Varbits.FARMING_4775,\n PatchImplementation.CRYSTAL_TREE\n ),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.COMPOST)\n ),\n 12895,\n 12894,\n 13150,\n 12994,\n 12993,\n 12737,\n 12738,\n 12126,\n 12127,\n 13250\n )\n }\n /*private*/ add(r, ...extraRegions) {\n this.regions.set(r.getRegionID(), r)\n for (let i = 0; i < extraRegions.length; i++) {\n {\n const er = extraRegions[i]\n this.regions.set(er, r)\n }\n }\n for (let i = 0; i < r.getPatches().length; i++) {\n {\n const p = r.getPatches()[i]\n const tab = PatchImplementation['_$wrappers'][\n p.getImplementation()\n ].getTab()\n if (!this.tabs.has(tab)) {\n this.tabs.set(tab, new Array())\n }\n this.tabs.get(tab).push(p)\n }\n }\n }\n getFarmingGuildRegion() {\n return this.farmingGuildRegion\n }\n getRegions() {\n return this.regions\n }\n getTabs() {\n return this.tabs\n }\n}\nFarmingWorld['__class'] = 'timetracking.FarmingWorld'\nimport { PatchImplementation } from './PatchImplementation'\nimport { Varbits } from './Varbits'\nimport { FarmingPatch } from './FarmingPatch'\nimport { FarmingRegion } from './FarmingRegion'\n","// @ts-nocheck\n/* eslint-disable */\nexport class TimeTrackingConfig {}\nTimeTrackingConfig.CONFIG_GROUP = 'timetracking'\nTimeTrackingConfig.FARM_TICK_OFFSET = 'farmTickOffset'\nTimeTrackingConfig.FARM_TICK_OFFSET_PRECISION = 'farmTickOffsetPrecision'\nTimeTrackingConfig.AUTOWEED = 'autoweed'\nTimeTrackingConfig.BIRD_HOUSE = 'birdhouse'\nTimeTrackingConfig.BOTANIST = 'botanist'\nTimeTrackingConfig.TIMERS = 'timers'\nTimeTrackingConfig.STOPWATCHES = 'stopwatches'\nTimeTrackingConfig['__class'] = 'timetracking.TimeTrackingConfig'\n","// @ts-nocheck\n/* eslint-disable */\nexport class PatchPrediction {\n constructor(produce, cropState, doneEstimate, stage, stages) {\n if (this.produce === undefined) {\n this.produce = null\n }\n if (this.cropState === undefined) {\n this.cropState = null\n }\n if (this.doneEstimate === undefined) {\n this.doneEstimate = 0\n }\n if (this.stage === undefined) {\n this.stage = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n this.produce = produce\n this.cropState = cropState\n this.doneEstimate = doneEstimate\n this.stage = stage\n this.stages = stages\n }\n getProduce() {\n return this.produce\n }\n getCropState() {\n return this.cropState\n }\n getDoneEstimate() {\n return this.doneEstimate\n }\n getStage() {\n return this.stage\n }\n getStages() {\n return this.stages\n }\n}\nPatchPrediction['__class'] = 'timetracking.PatchPrediction'\n","// @ts-nocheck\n/* eslint-disable */\nimport { Varbits } from './Varbits'\nexport class FarmingTracker {\n predictPatch(patch, getConfiguration) {\n const unixNow = (n => (n < 0 ? Math.ceil(n) : Math.floor(n)))(\n new Date().getTime() / 1000\n )\n const autoweed =\n '' + /* Enum.ordinal */ Autoweed[Autoweed[Autoweed.ON]] ===\n (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.AUTOWEED)\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.AUTOWEED\n ))(getConfiguration)\n const botanist =\n true.toString() ===\n (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.BOTANIST)\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.BOTANIST\n ))(getConfiguration)\n const key =\n patch.getRegion().getRegionID() +\n '.' +\n Varbits['_$wrappers'][patch.getVarbit()].getId()\n const storedValue = (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, key)\n : target.apply(TimeTrackingConfig.CONFIG_GROUP, key))(getConfiguration)\n if (storedValue == null) {\n return null\n }\n let unixTime = 0\n let value = 0\n {\n const parts = storedValue.split(':')\n if (parts.length === 2) {\n try {\n value = parseInt(parts[0])\n unixTime = parseInt(parts[1])\n } catch (e) {}\n }\n }\n if (unixTime <= 0) {\n return null\n }\n const state = PatchImplementation['_$wrappers'][\n patch.getImplementation()\n ].forVarbitValue(value)\n if (state == null) {\n return null\n }\n let stage = state.getStage()\n let stages = state.getStages()\n let tickrate = state.getTickRate()\n if (autoweed && state.getProduce() === PatchImplementation.Produce.WEEDS) {\n stage = 0\n stages = 1\n tickrate = 0\n }\n if (botanist) {\n tickrate = (n => (n < 0 ? Math.ceil(n) : Math.floor(n)))(tickrate / 5)\n }\n let doneEstimate = 0\n if (tickrate > 0) {\n const tickNow = FarmingTracker.getTickTime(\n tickrate,\n 0,\n unixNow,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n const tickTime = FarmingTracker.getTickTime(\n tickrate,\n 0,\n unixTime,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n const delta = (((tickNow - tickTime) | 0) / (tickrate * 60)) | 0\n doneEstimate = FarmingTracker.getTickTime(\n tickrate,\n stages - 1 - stage,\n tickTime,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n stage += delta\n if (stage >= stages) {\n stage = stages - 1\n }\n }\n return new PatchPrediction(\n state.getProduce(),\n state.getCropState(),\n doneEstimate,\n stage,\n stages\n )\n }\n /*private*/ static getTickTime(\n tickRate,\n ticks,\n requestedTime,\n getConfiguration\n ) {\n const offsetPrecisionMinsString = (target =>\n typeof target === 'function'\n ? target(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET_PRECISION\n )\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET_PRECISION\n ))(getConfiguration)\n const offsetTimeMinsString = (target =>\n typeof target === 'function'\n ? target(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET\n )\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET\n ))(getConfiguration)\n const offsetPrecisionMins =\n offsetPrecisionMinsString != null &&\n !(offsetPrecisionMinsString.length === 0)\n ? /* parseInt */ parseInt(offsetPrecisionMinsString)\n : null\n const offsetTimeMins =\n offsetTimeMinsString != null && !(offsetTimeMinsString.length === 0)\n ? /* parseInt */ parseInt(offsetTimeMinsString)\n : null\n let calculatedOffsetTime = 0\n if (\n offsetPrecisionMins != null &&\n offsetTimeMins != null &&\n (offsetPrecisionMins >= tickRate || offsetPrecisionMins >= 40)\n ) {\n calculatedOffsetTime = (offsetTimeMins % tickRate) * 60\n }\n const unixNow = requestedTime + calculatedOffsetTime\n const timeOfCurrentTick = unixNow - (unixNow % (tickRate * 60))\n const timeOfGoalTick = timeOfCurrentTick + ticks * tickRate * 60\n return timeOfGoalTick - calculatedOffsetTime\n }\n}\nFarmingTracker['__class'] = 'timetracking.FarmingTracker'\nimport { PatchImplementation } from './PatchImplementation'\nimport { TimeTrackingConfig } from './TimeTrackingConfig'\nimport { Autoweed } from './Autoweed'\nimport { PatchPrediction } from './PatchPrediction'\n","// @ts-nocheck\n/* eslint-disable */\nimport { ItemID } from './ItemID'\nexport var BirdHouse\n;(function (BirdHouse) {\n BirdHouse[(BirdHouse['NORMAL'] = 0)] = 'NORMAL'\n BirdHouse[(BirdHouse['OAK'] = 1)] = 'OAK'\n BirdHouse[(BirdHouse['WILLOW'] = 2)] = 'WILLOW'\n BirdHouse[(BirdHouse['TEAK'] = 3)] = 'TEAK'\n BirdHouse[(BirdHouse['MAPLE'] = 4)] = 'MAPLE'\n BirdHouse[(BirdHouse['MAHOGANY'] = 5)] = 'MAHOGANY'\n BirdHouse[(BirdHouse['YEW'] = 6)] = 'YEW'\n BirdHouse[(BirdHouse['MAGIC'] = 7)] = 'MAGIC'\n BirdHouse[(BirdHouse['REDWOOD'] = 8)] = 'REDWOOD'\n})(BirdHouse || (BirdHouse = {}))\n/** @ignore */\nexport class BirdHouse_$WRAPPER {\n constructor(_$ordinal, _$name, name, itemID) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n this.__name = name\n this.itemID = itemID\n }\n getName() {\n return this.__name\n }\n getItemID() {\n return this.itemID\n }\n /**\n * Gets the {@code BirdHouse} corresponding to the given {@code VarPlayer} value.\n * @param {number} varp\n * @return {BirdHouse}\n */\n static fromVarpValue(varp) {\n const index = ((varp - 1) / 3) | 0\n if (\n varp <= 0 ||\n index >=\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length\n ) {\n return null\n }\n return /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })()[index]\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouse['__class'] = 'timetracking.BirdHouse'\nBirdHouse['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nBirdHouse['_$wrappers'] = {\n 0: new BirdHouse_$WRAPPER(0, 'NORMAL', 'Bird House', ItemID.BIRD_HOUSE),\n 1: new BirdHouse_$WRAPPER(1, 'OAK', 'Oak Bird House', ItemID.OAK_BIRD_HOUSE),\n 2: new BirdHouse_$WRAPPER(\n 2,\n 'WILLOW',\n 'Willow Bird House',\n ItemID.WILLOW_BIRD_HOUSE\n ),\n 3: new BirdHouse_$WRAPPER(\n 3,\n 'TEAK',\n 'Teak Bird House',\n ItemID.TEAK_BIRD_HOUSE\n ),\n 4: new BirdHouse_$WRAPPER(\n 4,\n 'MAPLE',\n 'Maple Bird House',\n ItemID.MAPLE_BIRD_HOUSE\n ),\n 5: new BirdHouse_$WRAPPER(\n 5,\n 'MAHOGANY',\n 'Mahogany Bird House',\n ItemID.MAHOGANY_BIRD_HOUSE\n ),\n 6: new BirdHouse_$WRAPPER(6, 'YEW', 'Yew Bird House', ItemID.YEW_BIRD_HOUSE),\n 7: new BirdHouse_$WRAPPER(\n 7,\n 'MAGIC',\n 'Magic Bird House',\n ItemID.MAGIC_BIRD_HOUSE\n ),\n 8: new BirdHouse_$WRAPPER(\n 8,\n 'REDWOOD',\n 'Redwood Bird House',\n ItemID.REDWOOD_BIRD_HOUSE\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var BirdHouseState\n;(function (BirdHouseState) {\n BirdHouseState[(BirdHouseState['SEEDED'] = 0)] = 'SEEDED'\n BirdHouseState[(BirdHouseState['BUILT'] = 1)] = 'BUILT'\n BirdHouseState[(BirdHouseState['EMPTY'] = 2)] = 'EMPTY'\n BirdHouseState[(BirdHouseState['UNKNOWN'] = 3)] = 'UNKNOWN'\n})(BirdHouseState || (BirdHouseState = {}))\n/** @ignore */\nexport class BirdHouseState_$WRAPPER {\n constructor(_$ordinal, _$name) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n }\n /**\n * Gets the {@code BirdHouseState} corresponding to the given {@code VarPlayer} value.\n * @param {number} varp\n * @return {BirdHouseState}\n */\n static fromVarpValue(varp) {\n if (\n varp < 0 ||\n varp >\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length *\n 3\n ) {\n return BirdHouseState.UNKNOWN\n } else if (varp === 0) {\n return BirdHouseState.EMPTY\n } else if (varp % 3 === 0) {\n return BirdHouseState.SEEDED\n } else {\n return BirdHouseState.BUILT\n }\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouseState['__class'] = 'timetracking.BirdHouseState'\nBirdHouseState['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\nBirdHouseState['_$wrappers'] = {\n 0: new BirdHouseState_$WRAPPER(0, 'SEEDED'),\n 1: new BirdHouseState_$WRAPPER(1, 'BUILT'),\n 2: new BirdHouseState_$WRAPPER(2, 'EMPTY'),\n 3: new BirdHouseState_$WRAPPER(3, 'UNKNOWN')\n}\nimport { BirdHouse } from './BirdHouse'\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * Server controlled \"content-developer\" integers.\n *\n * VarPlayers are stored per RuneScape player save, and synchronized\n * from the server to the client. The client can change them preemptively\n * if it thinks they will change the next tick as a lag-hiding measure.\n * The client CANNOT directly make the server change a varbit.\n * @enum\n * @property {VarPlayer} BIRD_HOUSE_MEADOW_NORTH\n * Bird house states\n * @property {VarPlayer} BIRD_HOUSE_MEADOW_SOUTH\n * @property {VarPlayer} BIRD_HOUSE_VALLEY_NORTH\n * @property {VarPlayer} BIRD_HOUSE_VALLEY_SOUTH\n * @class\n */\nexport var VarPlayer\n;(function (VarPlayer) {\n /**\n * Bird house states\n */\n VarPlayer[(VarPlayer['BIRD_HOUSE_MEADOW_NORTH'] = 0)] =\n 'BIRD_HOUSE_MEADOW_NORTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_MEADOW_SOUTH'] = 1)] =\n 'BIRD_HOUSE_MEADOW_SOUTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_VALLEY_NORTH'] = 2)] =\n 'BIRD_HOUSE_VALLEY_NORTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_VALLEY_SOUTH'] = 3)] =\n 'BIRD_HOUSE_VALLEY_SOUTH'\n})(VarPlayer || (VarPlayer = {}))\n/** @ignore */\nexport class VarPlayer_$WRAPPER {\n constructor(_$ordinal, _$name, id) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.id === undefined) {\n this.id = 0\n }\n this.id = id\n }\n getId() {\n return this.id\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nVarPlayer['__class'] = 'timetracking.VarPlayer'\nVarPlayer['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nVarPlayer['_$wrappers'] = {\n 0: new VarPlayer_$WRAPPER(0, 'BIRD_HOUSE_MEADOW_NORTH', 1626),\n 1: new VarPlayer_$WRAPPER(1, 'BIRD_HOUSE_MEADOW_SOUTH', 1627),\n 2: new VarPlayer_$WRAPPER(2, 'BIRD_HOUSE_VALLEY_NORTH', 1628),\n 3: new VarPlayer_$WRAPPER(3, 'BIRD_HOUSE_VALLEY_SOUTH', 1629)\n}\n","// @ts-nocheck\n/* eslint-disable */\nimport { VarPlayer } from './VarPlayer'\nexport var BirdHouseSpace\n;(function (BirdHouseSpace) {\n BirdHouseSpace[(BirdHouseSpace['MEADOW_NORTH'] = 0)] = 'MEADOW_NORTH'\n BirdHouseSpace[(BirdHouseSpace['MEADOW_SOUTH'] = 1)] = 'MEADOW_SOUTH'\n BirdHouseSpace[(BirdHouseSpace['VALLEY_NORTH'] = 2)] = 'VALLEY_NORTH'\n BirdHouseSpace[(BirdHouseSpace['VALLEY_SOUTH'] = 3)] = 'VALLEY_SOUTH'\n})(BirdHouseSpace || (BirdHouseSpace = {}))\n/** @ignore */\nexport class BirdHouseSpace_$WRAPPER {\n constructor(_$ordinal, _$name, name, varp) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.varp === undefined) {\n this.varp = null\n }\n this.__name = name\n this.varp = varp\n }\n getName() {\n return this.__name\n }\n getVarp() {\n return this.varp\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouseSpace['__class'] = 'timetracking.BirdHouseSpace'\nBirdHouseSpace['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\nBirdHouseSpace['_$wrappers'] = {\n 0: new BirdHouseSpace_$WRAPPER(\n 0,\n 'MEADOW_NORTH',\n 'Mushroom Meadow (North)',\n VarPlayer.BIRD_HOUSE_MEADOW_NORTH\n ),\n 1: new BirdHouseSpace_$WRAPPER(\n 1,\n 'MEADOW_SOUTH',\n 'Mushroom Meadow (South)',\n VarPlayer.BIRD_HOUSE_MEADOW_SOUTH\n ),\n 2: new BirdHouseSpace_$WRAPPER(\n 2,\n 'VALLEY_NORTH',\n 'Verdant Valley (Northeast)',\n VarPlayer.BIRD_HOUSE_VALLEY_NORTH\n ),\n 3: new BirdHouseSpace_$WRAPPER(\n 3,\n 'VALLEY_SOUTH',\n 'Verdant Valley (Southwest)',\n VarPlayer.BIRD_HOUSE_VALLEY_SOUTH\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * Contains data about the state of a particular {@link BirdHouseSpace}, at a particular point in time.\n * @param {BirdHouseSpace} space\n * @param {number} varp\n * @param {number} timestamp\n * @class\n */\nexport class BirdHouseData {\n constructor(space, varp, timestamp) {\n if (this.space === undefined) {\n this.space = null\n }\n if (this.varp === undefined) {\n this.varp = 0\n }\n if (this.timestamp === undefined) {\n this.timestamp = 0\n }\n this.space = space\n this.varp = varp\n this.timestamp = timestamp\n }\n getSpace() {\n return this.space\n }\n getVarp() {\n return this.varp\n }\n getTimestamp() {\n return this.timestamp\n }\n}\nBirdHouseData['__class'] = 'timetracking.BirdHouseData'\n","// @ts-nocheck\n/* eslint-disable */\nimport { VarPlayer } from './VarPlayer'\nexport class BirdHouseTracker {\n loadFromConfig(getConfiguration) {\n const birdHouseData = new Map()\n for (\n let i = 0;\n i <\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouseSpace) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length;\n i++\n ) {\n {\n const space = (function () {\n let result = []\n for (let val in BirdHouseSpace) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })()[i]\n const key =\n TimeTrackingConfig.BIRD_HOUSE +\n '.' +\n VarPlayer['_$wrappers'][\n BirdHouseSpace['_$wrappers'][space].getVarp()\n ].getId()\n const storedValue = (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, key)\n : target.apply(TimeTrackingConfig.CONFIG_GROUP, key))(\n getConfiguration\n )\n let updated = false\n if (storedValue != null) {\n const parts = storedValue.split(':')\n if (parts.length === 2) {\n try {\n const varp = parseInt(parts[0])\n const timestamp = parseInt(parts[1])\n birdHouseData.set(\n space,\n new BirdHouseData(space, varp, timestamp)\n )\n updated = true\n } catch (e) {}\n }\n }\n if (!updated) {\n birdHouseData.set(space, null)\n }\n }\n }\n return birdHouseData\n }\n}\nBirdHouseTracker['__class'] = 'timetracking.BirdHouseTracker'\nimport { TimeTrackingConfig } from './TimeTrackingConfig'\nimport { BirdHouseData } from './BirdHouseData'\nimport { BirdHouseSpace } from './BirdHouseSpace'\n","import { FarmingWorld } from './timetracking/FarmingWorld'\nimport { FarmingTracker } from './timetracking/FarmingTracker'\nimport { CropState } from './timetracking/CropState'\nimport { getConfig, getSelectedAccount } from './config'\nimport { createSelector } from 'reselect'\nimport { PatchImplementation } from './timetracking/PatchImplementation'\nimport { Tab } from './timetracking/Tab'\nimport { ItemID } from './timetracking/ItemID'\nimport {\n BirdHouseState,\n BirdHouseState_$WRAPPER\n} from './timetracking/BirdHouseState'\nimport { BirdHouseTracker } from './timetracking/BirdHouseTracker'\nimport { BirdHouse, BirdHouse_$WRAPPER } from './timetracking/BirdHouse'\nimport { BirdHouseSpace } from './timetracking/BirdHouseSpace'\n\nfunction adjustColor(color, amount) {\n return (\n '#' +\n color\n .replace(/^#/, '')\n .replace(/../g, color =>\n (\n '0' +\n Math.min(255, Math.max(0, parseInt(color, 16) + amount)).toString(16)\n ).substr(-2)\n )\n )\n}\n\nfunction getBirdStateColor(state) {\n switch (state) {\n case BirdHouseState.EMPTY:\n case BirdHouseState.UNKNOWN:\n return '#4D4D4D'\n case BirdHouseState.BUILT:\n return '#E6961E'\n case BirdHouseState.SEEDED:\n default:\n return '#26A831'\n }\n}\n\nfunction getCropStateColor(state) {\n switch (state) {\n case CropState.DEAD:\n return '#b81818'\n case CropState.DISEASED:\n case CropState.FILLING:\n return '#E6961E'\n case CropState.EMPTY:\n return '#FF4D4D4D'\n case CropState.HARVESTABLE:\n case CropState.GROWING:\n default:\n return '#26A831'\n }\n}\n\nfunction getFormattedEstimate(remainingSeconds) {\n let sb = 'in '\n const duration = Math.floor((remainingSeconds + 59) / 60)\n const minutes = Math.floor(duration % 60)\n const hours = Math.floor((duration / 60) % 24)\n const days = Math.floor(duration / (60 * 24))\n if (days > 0) {\n sb += days + 'd '\n }\n if (hours > 0) {\n sb += hours + 'h '\n }\n if (minutes > 0) {\n sb += minutes + 'm '\n }\n return sb\n}\n\nfunction preparePanel() {\n return {\n title: '',\n subtitle: '',\n icon: 0,\n estimateText: '',\n tooltipText: '',\n progress: {\n minimumValue: 0,\n maximumValue: 1,\n value: 0,\n visible: true,\n background: adjustColor('#26A831', -60),\n foreground: '#26A831'\n }\n }\n}\n\nfunction buildBirdhouseData(tabEntries, getConfiguration) {\n const birdhouseTracker = new BirdHouseTracker()\n const birdhouseTabs = birdhouseTracker.loadFromConfig(getConfiguration)\n const unixNow = new Date().getTime() / 1000\n const tab = Tab['_$wrappers'][Tab.BIRD_HOUSE]\n\n const tabEntry = {\n name: tab.getName(),\n icon: tab.getItemID(),\n panels: []\n }\n\n for (const [space, data] of birdhouseTabs.entries()) {\n const spaceValue = BirdHouseSpace['_$wrappers'][space]\n let value = -1\n let startTime = 0\n\n if (data != null) {\n value = data.getVarp()\n startTime = data.getTimestamp()\n }\n\n const birdHouse =\n BirdHouse['_$wrappers'][BirdHouse_$WRAPPER.fromVarpValue(value)]\n const state = BirdHouseState_$WRAPPER.fromVarpValue(value)\n const panel = preparePanel()\n panel.title = spaceValue.getName()\n panel.progress.maximumValue = 3000\n\n if (birdHouse == null) {\n panel.icon = ItemID.FEATHER\n panel.progress.visible = false\n } else {\n panel.icon = birdHouse.getItemID()\n panel.tooltipText = birdHouse.getName()\n panel.progress.visible = true\n }\n\n panel.progress.foreground = getBirdStateColor(state)\n panel.progress.background = adjustColor(getBirdStateColor(state), -60)\n\n switch (state) {\n case BirdHouseState.EMPTY:\n panel.tooltipText = 'Empty'\n panel.estimateText = 'Empty'\n break\n case BirdHouseState.BUILT:\n panel.progress.value = 0\n panel.estimateText = 'Built'\n break\n case BirdHouseState.SEEDED:\n const remainingTime = startTime + 3000 - unixNow\n if (remainingTime <= 0) {\n panel.progress.value = 3000\n panel.estimateText = 'Done'\n } else {\n panel.progress.value = 3000 - remainingTime\n panel.estimateText = 'Done ' + getFormattedEstimate(remainingTime)\n }\n break\n default:\n panel.tooltipText = 'Unknown state'\n panel.estimateText = 'Unknown'\n break\n }\n\n tabEntry.panels.push(panel)\n }\n\n tabEntries.push(tabEntry)\n}\n\nfunction buildFarmingData(tabEntries, getConfiguration) {\n const farmingTracker = new FarmingTracker()\n const farmingWorld = new FarmingWorld()\n const farmingTabs = farmingWorld.getTabs()\n\n for (const [tabsKey, tabList] of farmingTabs.entries()) {\n const tab = Tab['_$wrappers'][tabsKey]\n tabList.sort((a, b) => a.getName().localeCompare(b.getName()))\n tabList.sort((a, b) =>\n a.getRegion().getName().localeCompare(b.getRegion().getName())\n )\n\n const tabEntry = {\n name: tab.getName(),\n icon: tab.getItemID(),\n panels: []\n }\n\n const unixNow = new Date().getTime() / 1000\n\n for (let patch of tabList) {\n const panel = preparePanel()\n panel.icon = ItemID.WEEDS\n\n panel.title =\n patch.getRegion().getName() +\n (patch.getName() == null || patch.getName() === ''\n ? ''\n : ' (' + patch.getName() + ')')\n\n const implementation =\n PatchImplementation['_$wrappers'][patch.getImplementation()]\n\n panel.subtitle =\n implementation.getName() != null && implementation.getName() !== ''\n ? implementation.getName()\n : ''\n\n const prediction = farmingTracker.predictPatch(patch, getConfiguration)\n\n if (prediction == null) {\n panel.tooltipText = 'Unknown state'\n panel.estimateText = 'Unknown'\n panel.progress.visible = false\n tabEntry.panels.push(panel)\n continue\n }\n\n const produce =\n PatchImplementation.Produce['_$wrappers'][prediction.getProduce()]\n\n if (produce.getItemID() < 0) {\n panel.icon = ItemID.WEEDS\n panel.tooltipText = 'Unknown state'\n } else {\n panel.icon = produce.getItemID()\n panel.tooltipText = produce.getName()\n }\n\n switch (prediction.getCropState()) {\n case CropState.HARVESTABLE:\n panel.estimateText = 'Done'\n break\n case CropState.GROWING:\n if (prediction.getDoneEstimate() < unixNow) {\n panel.estimateText = 'Done'\n } else {\n panel.estimateText =\n 'Done ' +\n getFormattedEstimate(prediction.getDoneEstimate() - unixNow)\n panel.estimateText =\n 'Done ' +\n getFormattedEstimate(prediction.getDoneEstimate() - unixNow)\n }\n break\n case CropState.DISEASED:\n panel.estimateText = 'Diseased'\n break\n case CropState.DEAD:\n panel.estimateText = 'Dead'\n break\n case CropState.EMPTY:\n panel.estimateText = 'Empty'\n break\n case CropState.FILLING:\n panel.estimateText = 'Filling'\n break\n default:\n console.warn('Unknown crop state!')\n }\n\n /* Hide any fully grown weeds' progress bar. */\n if (\n prediction.getProduce() !== PatchImplementation.Produce.WEEDS ||\n prediction.getStage() < prediction.getStages() - 1\n ) {\n panel.progress.visible = true\n panel.progress.foreground = getCropStateColor(prediction.getCropState())\n panel.progress.background = adjustColor(\n getCropStateColor(prediction.getCropState()),\n -60\n )\n panel.progress.maximumValue = prediction.getStages() - 1\n panel.progress.value = prediction.getStage()\n } else {\n panel.progress.visible = false\n }\n\n tabEntry.panels.push(panel)\n }\n\n tabEntry.panels.sort((a, b) => a.title.localeCompare(b.title))\n tabEntry.panels.sort((a, b) => a.subtitle.localeCompare(b.subtitle))\n tabEntries.push(tabEntry)\n }\n}\n\nfunction buildData(account, configuration) {\n function getConfiguration(group, key) {\n if (!account) {\n return null\n }\n\n let value =\n configuration[group + '.rsprofile.' + account.accountId + '.' + key]\n\n if (!value) {\n value = null\n }\n\n return value\n }\n\n const tabEntries = []\n buildFarmingData(tabEntries, getConfiguration)\n buildBirdhouseData(tabEntries, getConfiguration)\n tabEntries.sort((a, b) => a.name.localeCompare(b.name))\n return tabEntries\n}\n\nexport const getTimeTracking = createSelector(\n getConfig,\n getSelectedAccount,\n (config, account) => {\n return buildData(account, config)\n }\n)\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport '../../components/tooltip.css'\nimport '../tag.css'\nimport { getTimeTracking } from '../../modules/time-tracking'\nimport { formatIcon } from '../../util'\nimport '../../components/tooltip.css'\nimport './time-tracking.css'\n\nconst buildProgress = ({\n minimumValue,\n maximumValue,\n value,\n visible,\n foreground,\n background\n}) => {\n if (!visible) {\n return \n }\n\n const span = maximumValue - minimumValue\n const currentValue = value - minimumValue\n const pc = currentValue / span\n const width = 100\n const progressFill = width * Math.min(1, pc)\n return (\n \n )\n}\n\nconst buildTracker = panel => (\n \n \n
\n {panel.tooltipText} \n
\n
\n
\n
\n
\n
\n {panel.title + ' '}\n {panel.subtitle && {panel.subtitle} }\n \n {panel.estimateText} \n {buildProgress(panel.progress)}\n \n
\n \n)\n\nconst buildTab = tab => (\n \n \n
{tab.panels.map(buildTracker)} \n
\n)\n\nconst buildTopTab = tab => (\n \n
\n \n \n
\n {tab.name} \n
\n
\n)\n\nconst TimeTracking = ({ timeTracking }) => (\n \n \n {timeTracking.map(buildTopTab)}\n
\n {timeTracking.map(buildTab)}\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n timeTracking: getTimeTracking(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(TimeTracking))\n","import { h } from 'preact'\nimport {\n changeAccount,\n fetchConfig,\n getProfileConfig,\n getSelectedAccount,\n updateConfig\n} from '../../modules/config'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { route } from 'preact-router'\nimport { upperToTitleCase } from '../../util'\n\nconst deleteAccount = async (profileConfig, updateConfig, changeAccount) => {\n const newConfig = {\n ...profileConfig\n }\n\n Object.keys(newConfig).forEach(k => (newConfig[k] = null))\n changeAccount(null)\n await updateConfig(newConfig)\n route('/account/home')\n}\n\nconst changeList = profileConfig =>\n Object.keys(profileConfig)\n .map(k => k.split('.')[0])\n .filter((v, i, a) => a.indexOf(v) === i)\n .filter(k => k !== 'rsprofile')\n .map(k => (\n \n {k} \n \n ))\n\nconst accountType = type => {\n if (type !== 'STANDARD') {\n return ' for ' + upperToTitleCase(type)\n }\n\n return ''\n}\n\nconst Delete = ({\n selectedAccount,\n profileConfig,\n updateConfig,\n changeAccount\n}) => {\n if (!selectedAccount) {\n return (\n \n
No RuneScape profile selected
\n
\n )\n }\n\n return (\n \n \n
\n
\n This will delete the RuneScape profile{' '}\n {selectedAccount.displayName} \n {accountType(selectedAccount.type)} which also includes data for:\n
\n
{changeList(profileConfig)} \n
\n \n
\n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n selectedAccount: getSelectedAccount(state),\n profileConfig: getProfileConfig(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n updateConfig,\n fetchBootstrap,\n fetchConfig,\n changeAccount\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Delete))\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport {\n fetchConfig,\n getTileMarkers,\n getTileMarkersFilter,\n setTileMarkersFilter\n} from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport '../../components/tooltip.css'\nimport Choice from '../../components/choice'\nimport RuneScapeMap from '../../components/runescape-map'\n\nconst tileName = t => t.name + ' (' + t.region + ')'\n\nconst Tiles = ({ tiles, filter, setTileMarkersFilter }) => {\n if (tiles.length === 0) {\n return null\n }\n\n const choices = tiles.map(tileName)\n filter = filter || choices[0]\n const allTiles = tiles.flatMap(t => t.data)\n const selectedTiles = tiles.find(t => tileName(t) === filter).data\n const mapData = JSON.stringify(selectedTiles)\n\n return (\n \n \n \n
\n \n \n {mapData}\n \n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n tiles: getTileMarkers(state),\n filter: getTileMarkersFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n setTileMarkersFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchItems\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Tiles))\n","import { h, Fragment } from 'preact'\nimport ago from 's-ago'\nimport { numberWithCommas } from '../../util'\nimport { connect } from 'react-redux'\nimport {\n fetchConfig,\n getFilteredGe,\n getGeFilter,\n setGeFilter\n} from '../../modules/config'\nimport { fetchItems } from '../../modules/item'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../../components/prepare'\nimport SearchBar from '../../components/search-bar'\nimport './grand-exchange.css'\nimport { fetchBootstrap } from '../../modules/bootstrap'\n\nconst formatGeIcon = id =>\n `https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id=${id}`\nconst formatGePage = id =>\n `http://services.runescape.com/m=itemdb_oldschool/viewitem?obj=${id}`\n\nconst buildRecord = record => (\n \n \n
\n
\n
\n {record.name} x {record.quantity}\n \n
\n \n {record.buy ? 'Bought' : 'Sold'} for{' '}\n {numberWithCommas(record.price * record.quantity)} gp (\n {numberWithCommas(record.price)} gp/ea)\n
\n
\n
\n \n {ago(record.date)}\n \n
\n
\n \n)\n\nconst handleChange = (event, setGeFilter) => setGeFilter(event.target.value)\n\nconst GrandExchange = ({ ge, geFilter, setGeFilter }) => (\n \n handleChange(e, setGeFilter)} />\n \n {ge.sort((a, b) => b.date - a.date).map(buildRecord)}\n \n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n ge: getFilteredGe(state),\n geFilter: getGeFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchItems,\n fetchConfig,\n setGeFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchItems,\n fetchConfig\n}) => {\n await fetchBootstrap()\n await fetchItems()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(GrandExchange))\n","import { h, Fragment } from 'preact'\nimport { connect } from 'react-redux'\nimport { Link } from 'preact-router'\nimport { bindActionCreators } from 'redux'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { isLoggedIn, logout } from '../modules/account'\nimport Redirect from '../components/redirect'\nimport {\n changeAccount,\n getAccounts,\n getBossLog,\n getLoot,\n getSelectedAccount,\n getSlayerTask,\n getTags,\n getTileMarkers,\n getGe\n} from '../modules/config'\nimport Home from './account/home'\nimport LootTracker from './account/loot-tracker'\nimport NotFound from '../components/not-found'\nimport './account.scss'\nimport Tags from './account/tags'\nimport TimeTracking from './account/time-tracking'\nimport { getTimeTracking } from '../modules/time-tracking'\nimport { upperToTitleCase } from '../util'\nimport Delete from './account/delete'\nimport Tiles from './account/tiles'\nimport GrandExchange from './account/grand-exchange'\n\nconst menu = [\n {\n tag: 'home',\n label: 'Home',\n icon: 'fa-fw fas fa-home',\n component: Home,\n showAccounts: true,\n data: ({ slayerTask, bossLog }) => ({\n slayerTask,\n bossLog\n })\n },\n {\n tag: 'grand-exchange',\n label: 'Grand Exchange',\n icon: 'fa-fw fas fa-balance-scale',\n component: GrandExchange,\n showAccounts: true,\n data: ({ rawGe }) =>\n rawGe.map(ge => ({\n buy: ge.buy,\n itemId: ge.itemId,\n quantity: ge.quantity,\n price: ge.price,\n time: ge.time\n }))\n },\n {\n tag: 'loot-tracker',\n label: 'Loot Tracker',\n icon: 'fa-fw fas fa-file-invoice-dollar',\n component: LootTracker,\n showAccounts: true,\n data: ({ rawLoot }) => rawLoot\n },\n {\n tag: 'time-tracking',\n label: 'Time Tracking',\n icon: 'fa-fw fas fa-clock',\n component: TimeTracking,\n showAccounts: true,\n data: ({ rawTimeTracking }) => rawTimeTracking\n },\n {\n tag: 'tags',\n label: 'Tags',\n icon: 'fa-fw fas fa-code',\n component: Tags,\n data: ({ rawTags }) => rawTags\n },\n {\n tag: 'tile-markers',\n label: 'Tile markers',\n icon: 'fa-fw fas fa-tree',\n component: Tiles,\n data: ({ rawTiles }) => rawTiles\n },\n {\n tag: 'delete',\n label: 'Delete profile',\n icon: 'fa-fw fas fa-trash',\n class: 'list-group-item-danger',\n bottom: true,\n component: Delete,\n showAccounts: true\n }\n]\n\nconst menuItem = (currentMenu, m) => (\n \n {m.label}\n \n)\n\nconst menuBody = currentMenu => currentMenu.component\nconst menuExport = (currentMenu, props) => {\n if (!currentMenu.data) {\n return null\n }\n\n const currentSelector = currentMenu.data\n const dataJson = currentSelector(props)\n const data = URL.createObjectURL(\n new Blob([JSON.stringify(dataJson)], {\n type: 'application/octet-stream'\n })\n )\n return (\n \n Export {currentMenu.label}\n \n )\n}\n\nconst accountType = type => {\n if (type && type !== 'STANDARD') {\n return {upperToTitleCase(type)} \n }\n\n return ''\n}\n\nconst accountMenu = (account, selectedAccount, changeAccount) => (\n changeAccount(account)}\n >\n {account.displayName}{' '}\n {accountType(account.type)}\n \n)\n\nconst Account = ({\n tag,\n accounts,\n changeAccount,\n loggedIn,\n logout,\n ...props\n}) => {\n if (!loggedIn) {\n return \n }\n\n const currentMenu = menu.find(m => m.tag === tag)\n const topMenu = menu.filter(m => !m.bottom)\n const bottomMenu = menu.filter(m => m.bottom)\n\n if (!currentMenu) {\n return \n }\n\n const MenuBody = menuBody(currentMenu)\n\n return (\n \n \n \n \n
\n
\n
\n {topMenu.map(m => menuItem(currentMenu, m))}\n \n
\n {menuExport(currentMenu, props)}\n \n Logout\n \n \n {currentMenu.showAccounts && (\n
\n RuneScape Profile
\n \n {accounts\n .filter(a => a.displayName !== null)\n .map(a =>\n accountMenu(a, props.selectedAccount, changeAccount)\n )}\n {bottomMenu.map(m => menuItem(currentMenu, m))}\n \n \n )}\n
\n
\n \n
\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n loggedIn: isLoggedIn(state),\n accounts: getAccounts(state),\n selectedAccount: getSelectedAccount(state),\n slayerTask: getSlayerTask(state),\n bossLog: getBossLog(state),\n rawGe: getGe(state),\n rawLoot: getLoot(state),\n rawTags: getTags(state),\n rawTimeTracking: getTimeTracking(state),\n rawTiles: getTileMarkers(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n logout,\n changeAccount\n },\n dispatch\n )\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Account)\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","../node_modules/s-ago/index.js","components/search-bar.js","../node_modules/@gouch/to-title-case/to-title-case.js","components/choice.js","components/runescape-map.js","components/redirect.js","routes/account/home.js","routes/account/loot-tracker.js","routes/account/tags.js","modules/timetracking/Tab.js","modules/timetracking/CropState.js","modules/timetracking/PatchImplementation.js","modules/timetracking/Varbits.js","modules/timetracking/Autoweed.js","modules/timetracking/ItemID.js","modules/timetracking/PatchState.js","modules/timetracking/NullItemID.js","modules/timetracking/FarmingPatch.js","modules/timetracking/FarmingRegion.js","modules/timetracking/FarmingWorld.js","modules/timetracking/TimeTrackingConfig.js","modules/timetracking/PatchPrediction.js","modules/timetracking/FarmingTracker.js","modules/timetracking/BirdHouse.js","modules/timetracking/BirdHouseState.js","modules/timetracking/VarPlayer.js","modules/timetracking/BirdHouseSpace.js","modules/timetracking/BirdHouseData.js","modules/timetracking/BirdHouseTracker.js","modules/time-tracking.js","routes/account/time-tracking.js","routes/account/delete.js","routes/account/tiles.js","routes/account/grand-exchange.js","routes/account.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","format","diff","divisor","unit","past","future","isInTheFuture","val","Math","round","abs","units","max","value","name","module","exports","date","Date","now","getTime","i","length","SearchBar","onInput","type","placeholder","ref","input","focus","String","prototype","toTitleCase","smallWords","alphanumericPattern","split","map","current","index","array","search","toLowerCase","substr","replace","match","toUpperCase","join","Choice","prefix","choices","onClick","choice","DEFAULT_VIEW","MainTileLayer","TileLayer","extend","initialize","url","options","_url","originalPlane","plane","setOptions","getTileUrl","coords","Util","template","source","mapId","zoom","z","x","y","resetPlane","setPlane","original","getPlane","minPlane","min","maxPlane","_map","fire","redraw","createTile","done","tile","call","onerror","error","preventDefault","fromLatLng","latLng","parseInt","lng","lat","toLatLng","mapTile","regionId","regionX","regionY","jsColor","intColor","num","argb","slice","label","prepareMap","defaultView","setView","mouseRect","rectangle","fillColor","fillOpacity","weight","interactive","addTo","on","e","mousePos","latlng","setBounds","locationControl","Control","position","onAdd","container","DomUtil","create","button","updateButton","region","center","getCenter","rsCenter","rsRegion","regions","includes","findCurrentRegion","hidden","textContent","resetButton","DomEvent","disableClickPropagation","addListener","viewport","fitBounds","tileLayer","planeButtons","upButton","downButton","updateButtons","addClass","removeClass","TileMapHandler","tiles","selected","useMap","noWrap","minZoom","maxNativeZoom","maxZoom","errorTileUrl","tilesX","t","tilesY","minX","maxX","minY","maxY","bounds","Fragment","ImageOverlay","Rectangle","pathOptions","Tooltip","RuneScapeMap","_ref2","MapContainer","maxBounds","maxBoundsViscosity","attributionControl","whenCreated","crs","CRS","Simple","Redirect","componentWillMount","window","location","to","nameToItemId","connect","mapStateToProps","slayerTask","getSlayerTask","bossLog","getBossLog","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","async","hasTask","start","remaining","streak","points","buildSlayerTask","src","alt","pb","toMMSS","kc","buildBossLog","glyphMap","1","w","2","3","4","5","6","7","8","9","0","M","K","quantityNums","numToQuantity","l","si","buildDrop","drop","str","g","filter","backgroundPositionX","backgroundPositionY","buildQuantity","qty","wikiURLForItem","formatPrice","price","buildLootRecord","record","count","drops","loot","getFilteredLoot","lootFilter","getLootFilter","fetchPrices","fetchItems","setLootFilter","handleChange","event","target","buildTag","tag","csv","icon","concat","items","margin","padding","paddingBottom","formatIcon","item","Tab","CropState","PatchImplementation","Varbits","Autoweed","tags","getTags","ItemID","GRIMY_RANARR_WEED","LIMPWURT_ROOT","SNAPE_GRASS","WHITE_BERRIES","JANGERBERRIES","GUAM_LEAF","MARRENTILL","TARROMIN","HARRALANDER","RANARR_WEED","IRIT_LEAF","AVANTOE","KWUARM","CADANTINE","DWARF_WEED","TORSTOL","CADAVA_BERRIES","BATTLESTAFF","MAGIC_LOGS","YEW_LOGS","MAPLE_LOGS","WILLOW_LOGS","OAK_LOGS","WOAD_LEAF","POTATO","REDBERRIES","COOKING_APPLE","ONION","BANANA","CABBAGE","TOMATO","GRAPES","ORANGE","PINEAPPLE","DWELLBERRIES","CAVE_NIGHTSHADE","RED_FLOWERS","LANTADYME","WATCH","TOADFLAX","SNAPDRAGON","POTATO_CACTUS","GOUTWEED","STRAWBERRY","JUTE_FIBRE","CURRY_LEAF","PAPAYA_FRUIT","COCONUT","CALQUAT_FRUIT","WATERMELON","SWEETCORN","HAMMERSTONE_HOPS","ASGARNIAN_HOPS","YANILLIAN_HOPS","KRANDORIAN_HOPS","WILDBLOOD_HOPS","MUSHROOM","BARLEY","MARIGOLDS","NASTURTIUMS","ROSEMARY","CACTUS_SPINE","POISON_IVY_BERRIES","WEEDS","SCARECROW","SPIRIT_TREE","MAHOGANY_LOGS","TEAK_LOGS","REDWOOD_LOGS","GIANT_SEAWEED","OLD_NOTES","DRAGONFRUIT","WHITE_LILY","CRYSTAL_SHARDS","BIRD_HOUSE","OAK_BIRD_HOUSE","WILLOW_BIRD_HOUSE","TEAK_BIRD_HOUSE","MAPLE_BIRD_HOUSE","MAHOGANY_BIRD_HOUSE","YEW_BIRD_HOUSE","MAGIC_BIRD_HOUSE","REDWOOD_BIRD_HOUSE","FEATHER","COMPOST_BIN","COMPOST","SUPERCOMPOST","ULTRACOMPOST","ROTTEN_TOMATO","Tab_$WRAPPER","_$ordinal","_$name","itemID","undefined","__name","FARMING_TABS","HERB","TREE","FRUIT_TREE","SPECIAL","FLOWER","ALLOTMENT","BUSH","GRAPE","HOPS","getName","getItemID","ordinal","compareTo","other","isNaN","10","11","PatchState","produce","cropState","stage","getStages","HARVESTABLE","FILLING","Produce","getHarvestStages","getTickRate","getRegrowTickrate","GROWING","getTickrate","getStage","getProduce","getCropState","NullItemID","NULL_22938","NULL_22939","NULL_22940","NULL_23044","PatchImplementation_$WRAPPER","tab","getTab","Produce_$WRAPPER","contractName","patchImplementation","tickrate","stages","regrowTickrate","harvestStages","Error","getContractName","getPatchImplementation","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","CACTUS","59","60","HARDWOOD_TREE","61","62","ANIMA","63","64","65","SEAWEED","66","67","68","BELLADONNA","69","CALQUAT","70","71","CELASTRUS","72","REDWOOD","73","HESPORI","74","CRYSTAL_TREE","75","76","77","78","79","80","81","GIANT_COMPOST","82","83","84","PatchImplementation$0_$WRAPPER","forVarbitValue","DISEASED","DEAD","PatchImplementation$1_$WRAPPER","PatchImplementation$2_$WRAPPER","PatchImplementation$3_$WRAPPER","PatchImplementation$4_$WRAPPER","GUAM","RANARR","IRIT","ANYHERB","PatchImplementation$5_$WRAPPER","MARIGOLD","NASTURTIUM","WOAD","LIMPWURT","PatchImplementation$6_$WRAPPER","CADAVABERRIES","WHITEBERRIES","POISON_IVY","PatchImplementation$7_$WRAPPER","APPLE","CURRY","PAPAYA","PALM","PatchImplementation$8_$WRAPPER","HAMMERSTONE","ASGARNIAN","YANILLIAN","KRANDORIAN","WILDBLOOD","JUTE","PatchImplementation$9_$WRAPPER","OAK","WILLOW","MAPLE","YEW","MAGIC","PatchImplementation$10_$WRAPPER","TEAK","MAHOGANY","PatchImplementation$11_$WRAPPER","PatchImplementation$12_$WRAPPER","PatchImplementation$13_$WRAPPER","ATTAS","IASOR","KRONOS","PatchImplementation$14_$WRAPPER","PatchImplementation$15_$WRAPPER","PatchImplementation$16_$WRAPPER","PatchImplementation$17_$WRAPPER","PatchImplementation$18_$WRAPPER","PatchImplementation$19_$WRAPPER","PatchImplementation$20_$WRAPPER","EMPTY_COMPOST_BIN","EMPTY","PatchImplementation$21_$WRAPPER","EMPTY_GIANT_COMPOST_BIN","GIANT_SUPERCOMPOST","GIANT_ROTTEN_TOMATO","GIANT_ULTRACOMPOST","Varbits_$WRAPPER","getId","FarmingPatch","varbit","implementation","getVarbit","getImplementation","getRegion","setRegion","FarmingRegion","regionID","patches","varbits","_len","arguments","Array","_key","s","a","push","p","getRegionID","getPatches","getVarbits","FarmingWorld","Map","tabs","farmingGuildRegion","add","FARMING_4771","FARMING_4772","FARMING_4773","FARMING_4774","FARMING_4775","FARMING_7904","GRAPES_4953","GRAPES_4954","GRAPES_4955","GRAPES_4956","GRAPES_4957","GRAPES_4958","GRAPES_4959","GRAPES_4960","GRAPES_4961","GRAPES_4962","GRAPES_4963","GRAPES_4964","FARMING_7908","FARMING_7905","FARMING_7906","FARMING_7912","FARMING_7909","FARMING_7911","FARMING_7910","FARMING_7907","r","set","er","has","get","getFarmingGuildRegion","getRegions","getTabs","TimeTrackingConfig","CONFIG_GROUP","FARM_TICK_OFFSET","FARM_TICK_OFFSET_PRECISION","AUTOWEED","BOTANIST","TIMERS","STOPWATCHES","PatchPrediction","doneEstimate","getDoneEstimate","FarmingTracker","predictPatch","patch","getConfiguration","unixNow","n","ceil","floor","autoweed","ON","apply","botanist","toString","key","storedValue","unixTime","parts","tickNow","getTickTime","funcInst","arg0","arg1","tickTime","delta","tickRate","ticks","requestedTime","offsetPrecisionMinsString","offsetTimeMinsString","offsetPrecisionMins","offsetTimeMins","calculatedOffsetTime","BirdHouse","BirdHouseState","VarPlayer","BirdHouseSpace","BirdHouse_$WRAPPER","varp","result","BirdHouseState_$WRAPPER","UNKNOWN","SEEDED","BUILT","VarPlayer_$WRAPPER","BirdHouseData","space","timestamp","getSpace","getVarp","getTimestamp","BirdHouseSpace_$WRAPPER","BIRD_HOUSE_MEADOW_NORTH","BIRD_HOUSE_MEADOW_SOUTH","BIRD_HOUSE_VALLEY_NORTH","BIRD_HOUSE_VALLEY_SOUTH","BirdHouseTracker","loadFromConfig","birdHouseData","updated","adjustColor","amount","getBirdStateColor","getCropStateColor","getFormattedEstimate","remainingSeconds","sb","duration","minutes","hours","days","preparePanel","title","subtitle","estimateText","tooltipText","progress","minimumValue","maximumValue","visible","background","foreground","buildData","account","configuration","group","accountId","tabEntries","farmingTracker","farmingTabs","tabsKey","tabList","entries","sort","b","localeCompare","tabEntry","panels","panel","prediction","console","warn","buildFarmingData","birdhouseTabs","data","spaceValue","startTime","birdHouse","fromVarpValue","remainingTime","buildBirdhouseData","getTimeTracking","createSelector","getConfig","getSelectedAccount","config","buildTracker","pc","progressFill","backgroundColor","role","buildProgress","buildTab","buildTopTab","timeTracking","_ref3","accountType","upperToTitleCase","selectedAccount","profileConfig","getProfileConfig","updateConfig","changeAccount","displayName","keys","k","v","indexOf","changeList","newConfig","forEach","route","deleteAccount","tileName","getTileMarkers","getTileMarkersFilter","setTileMarkersFilter","allTiles","flatMap","selectedTiles","find","mapData","JSON","stringify","btoa","formatGeIcon","buildRecord","itemId","quantity","buy","numberWithCommas","ago","menu","component","Home","showAccounts","ge","getFilteredGe","geFilter","getGeFilter","setGeFilter","rawGe","time","LootTracker","rawLoot","TimeTracking","_ref4","rawTimeTracking","Tags","_ref5","rawTags","Tiles","_ref6","rawTiles","bottom","Delete","menuItem","currentMenu","m","Link","accountMenu","loggedIn","isLoggedIn","accounts","getAccounts","getGe","getLoot","logout","_ref7","topMenu","bottomMenu","NotFound","MenuBody","menuBody","Meta","hero","menuExport","dataJson","currentSelector","URL","createObjectURL","Blob","download","className"],"mappings":"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ACtB5K,EAAG,IAAI6L,EACL,EACA,QACA,QACA,QACA,KACA1I,EAAOgE,MACP,EACA,GAEF7H,EAAG,IAAIuM,EACL,EACA,YACA,YACA,YACA,KACA1I,EAAOiE,UACP,EACA,GAEF5H,EAAG,IAAIqM,EACL,EACA,SACA,SACA,WACA/I,EAAoB2G,UACpBtG,EAAOyB,OACP,GACA,EACA,EACA,GAEFnF,EAAG,IAAIoM,EACL,EACA,QACA,QACA,SACA/I,EAAoB2G,UACpBtG,EAAO4B,MACP,GACA,EACA,EACA,GAEFrF,EAAG,IAAImM,EACL,EACA,UACA,UACA,WACA/I,EAAoB2G,UACpBtG,EAAO8B,QACP,GACA,EACA,EACA,GAEFtF,EAAG,IAAIkM,EACL,EACA,SACA,SACA,WACA/I,EAAoB2G,UACpBtG,EAAO+B,OACP,GACA,EACA,EACA,GAEFtF,EAAG,IAAIiM,EACL,EACA,YACA,YACA,YACA/I,EAAoB2G,UACpBtG,EAAOmD,UACP,GACA,EACA,EACA,GAEFzG,EAAG,IAAIgM,EACL,EACA,aACA,aACA,eACA/I,EAAoB2G,UACpBtG,EAAO4C,WACP,GACA,EACA,EACA,GAEFjG,EAAG,IAAI+L,EACL,EACA,aACA,aACA,cACA/I,EAAoB2G,UACpBtG,EAAOkD,WACP,GACA,EACA,EACA,GAEFtG,EAAG,IAAI8L,EACL,EACA,cACA,cACA,cACA/I,EAAoB2G,UACpBtG,EAAOG,YACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI0B,EACN,GACA,WACA,WACA,YACA/I,EAAoB0G,OACpBrG,EAAO2D,UACP,EACA,GAEFsD,GAAI,IAAIyB,EACN,GACA,WACA,WACA,WACA/I,EAAoB0G,OACpBrG,EAAO6D,SACP,EACA,GAEFuF,GAAI,IAAIV,EACN,GACA,aACA,aACA,cACA/I,EAAoB0G,OACpBrG,EAAO4D,YACP,EACA,GAEFyF,GAAI,IAAIX,EACN,GACA,OACA,OACA,OACA/I,EAAoB0G,OACpBrG,EAAOwB,UACP,EACA,GAEF8H,GAAI,IAAIZ,EACN,GACA,WACA,WACA,iBACA/I,EAAoB0G,OACpBrG,EAAOE,cACP,EACA,GAEFqJ,GAAI,IAAIb,EACN,GACA,aACA,aACA,gBACA/I,EAAoB0G,OACpBrG,EAAOyE,WACP,EACA,GAEF+E,GAAI,IAAId,EACN,GACA,aACA,WACA,aACA/I,EAAoB4G,KACpBvG,EAAO0B,WACP,GACA,EACA,GACA,GAEF+H,GAAI,IAAIf,EACN,GACA,gBACA,cACA,iBACA/I,EAAoB4G,KACpBvG,EAAOiB,eACP,GACA,EACA,GACA,GAEFyI,GAAI,IAAIhB,EACN,GACA,eACA,aACA,eACA/I,EAAoB4G,KACpBvG,EAAOmC,aACP,GACA,EACA,GACA,GAEFwH,GAAI,IAAIjB,EACN,GACA,gBACA,cACA,gBACA/I,EAAoB4G,KACpBvG,EAAOK,cACP,GACA,EACA,GACA,GAEFuJ,GAAI,IAAIlB,EACN,GACA,eACA,aACA,gBACA/I,EAAoB4G,KACpBvG,EAAOI,cACP,GACA,EACA,GACA,GAEFyJ,GAAI,IAAInB,EACN,GACA,aACA,aACA,qBACA/I,EAAoB4G,KACpBvG,EAAO+D,mBACP,GACA,EACA,GACA,GAEF+F,GAAI,IAAIpB,EACN,GACA,SACA,SACA,SACA/I,EAAoB8G,KACpBzG,EAAO0D,OACP,GACA,EACA,EACA,GAEFqG,GAAI,IAAIrB,EACN,GACA,cACA,cACA,cACA/I,EAAoB8G,KACpBzG,EAAOoD,iBACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAItB,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOqD,eACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAIvB,EACN,GACA,OACA,OACA,OACA/I,EAAoB8G,KACpBzG,EAAO6C,WACP,GACA,EACA,EACA,GAEFqH,GAAI,IAAIxB,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOsD,eACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAIzB,EACN,GACA,aACA,aACA,aACA/I,EAAoB8G,KACpBzG,EAAOuD,gBACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI1B,EACN,GACA,YACA,YACA,YACA/I,EAAoB8G,KACpBzG,EAAOwD,eACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI3B,EACN,GACA,OACA,OACA,OACA/I,EAAoBsG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI5B,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOO,WACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI7B,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOQ,SACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI9B,EACN,GACA,cACA,cACA,cACA/I,EAAoBsG,KACpBjG,EAAOS,YACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAI/B,EACN,GACA,SACA,SACA,cACA/I,EAAoBsG,KACpBjG,EAAOU,YACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAIhC,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOwC,SACP,GACA,EACA,EACA,GAEFmI,GAAI,IAAIjC,EACN,GACA,OACA,OACA,OACA/I,EAAoBsG,KACpBjG,EAAOW,UACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAIlC,EACN,GACA,UACA,UACA,UACA/I,EAAoBsG,KACpBjG,EAAOY,QACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAInC,EACN,GACA,SACA,SACA,SACA/I,EAAoBsG,KACpBjG,EAAOa,OACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAIpC,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOyC,WACP,GACA,EACA,EACA,GAEFsI,GAAI,IAAIrC,EACN,GACA,YACA,YACA,YACA/I,EAAoBsG,KACpBjG,EAAOc,UACP,GACA,EACA,EACA,GAEFkK,GAAI,IAAItC,EACN,GACA,YACA,YACA,YACA/I,EAAoBsG,KACpBjG,EAAOsC,UACP,GACA,EACA,EACA,GAEF2I,GAAI,IAAIvC,EACN,GACA,aACA,aACA,aACA/I,EAAoBsG,KACpBjG,EAAOe,WACP,GACA,EACA,EACA,GAEFmK,GAAI,IAAIxC,EACN,GACA,UACA,UACA,UACA/I,EAAoBsG,KACpBjG,EAAOgB,QACP,GACA,EACA,EACA,GAEFmK,GAAI,IAAIzC,EACN,GACA,WACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAO2C,SACP,GACA,EACA,EACA,GAEFyI,GAAI,IAAI1C,EACN,GACA,UACA,WACA,WACA/I,EAAoBsG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEF+K,GAAI,IAAI3C,EACN,GACA,MACA,MACA,WACA/I,EAAoBuG,KACpBlG,EAAOuB,SACP,GACA,GAEF+J,GAAI,IAAI5C,EACN,GACA,SACA,SACA,cACA/I,EAAoBuG,KACpBlG,EAAOsB,YACP,GACA,GAEFiK,GAAI,IAAI7C,EACN,GACA,QACA,QACA,aACA/I,EAAoBuG,KACpBlG,EAAOqB,WACP,GACA,GAEFmK,GAAI,IAAI9C,EACN,GACA,MACA,MACA,WACA/I,EAAoBuG,KACpBlG,EAAOoB,SACP,GACA,IAEFqK,GAAI,IAAI/C,EACN,GACA,QACA,QACA,aACA/I,EAAoBuG,KACpBlG,EAAOmB,WACP,GACA,IAEFuK,GAAI,IAAIhD,EACN,GACA,QACA,QACA,aACA/I,EAAoBwG,WACpBnG,EAAO2B,cACP,IACA,EACA,GACA,GAEFgK,GAAI,IAAIjD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAO6B,OACP,IACA,EACA,GACA,GAEF+J,GAAI,IAAIlD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAOiC,OACP,IACA,EACA,GACA,GAEF4J,GAAI,IAAInD,EACN,GACA,QACA,QACA,aACA/I,EAAoBwG,WACpBnG,EAAO8C,WACP,IACA,EACA,GACA,GAEFgJ,GAAI,IAAIpD,EACN,GACA,YACA,YACA,kBACA/I,EAAoBwG,WACpBnG,EAAOkC,UACP,IACA,EACA,GACA,GAEF6J,GAAI,IAAIrD,EACN,GACA,SACA,SACA,cACA/I,EAAoBwG,WACpBnG,EAAO+C,aACP,IACA,EACA,GACA,GAEFiJ,GAAI,IAAItD,EACN,GACA,OACA,OACA,YACA/I,EAAoBwG,WACpBnG,EAAOgD,QACP,IACA,EACA,GACA,GAEFiJ,GAAI,IAAIvD,EACN,GACA,cACA,cACA,mBACA/I,EAAoBwG,WACpBnG,EAAOwE,YACP,IACA,EACA,GACA,GAEF0H,GAAI,IAAIxD,EACN,GACA,SACA,SACA,SACA/I,EAAoBwM,OACpBnM,EAAO8D,aACP,GACA,EACA,GACA,GAEFsI,GAAI,IAAI1D,EACN,GACA,gBACA,gBACA,eACA/I,EAAoBwM,OACpBnM,EAAO0C,cACP,GACA,EACA,EACA,GAEF2J,GAAI,IAAI3D,EACN,GACA,OACA,OACA,OACA/I,EAAoB2M,cACpBtM,EAAOoE,UACP,IACA,GAEFmI,GAAI,IAAI7D,EACN,GACA,WACA,WACA,WACA/I,EAAoB2M,cACpBtM,EAAOmE,cACP,IACA,GAEFqI,GAAI,IAAI9D,EACN,GACA,QACA,QACA,QACA/I,EAAoB8M,MACpBvE,EAAWG,WACX,IACA,GAEFqE,GAAI,IAAIhE,EACN,GACA,QACA,QACA,QACA/I,EAAoB8M,MACpBvE,EAAWE,WACX,IACA,GAEFuE,GAAI,IAAIjE,EACN,GACA,SACA,SACA,SACA/I,EAAoB8M,MACpBvE,EAAWC,WACX,IACA,GAEFyE,GAAI,IAAIlE,EACN,GACA,UACA,UACA,UACA/I,EAAoBkN,QACpB7M,EAAOsE,cACP,GACA,EACA,EACA,GAEFwI,GAAI,IAAIpE,EACN,GACA,QACA,QACA,QACA/I,EAAoBqC,OACpBhC,EAAOgC,OACP,EACA,EACA,EACA,GAEF+K,GAAI,IAAIrE,EACN,GACA,WACA,WACA,WACA/I,EAAoB8D,SACpBzD,EAAOyD,SACP,GACA,EACA,EACA,GAEFuJ,GAAI,IAAItE,EACN,GACA,aACA,aACA,aACA/I,EAAoBsN,WACpBjN,EAAOoC,gBACP,GACA,GAEF8K,GAAI,IAAIxE,EACN,GACA,UACA,UACA,UACA/I,EAAoBwN,QACpBnN,EAAOiD,cACP,IACA,EACA,EACA,GAEFmK,GAAI,IAAI1E,EACN,GACA,cACA,cACA,cACA/I,EAAoBuE,YACpBlE,EAAOkE,YACP,IACA,IAEFmJ,GAAI,IAAI3E,EACN,GACA,YACA,YACA,iBACA/I,EAAoB2N,UACpBtN,EAAOkB,YACP,IACA,EACA,EACA,GAEFqM,GAAI,IAAI7E,EACN,GACA,UACA,UACA,eACA/I,EAAoB6N,QACpBxN,EAAOqE,aACP,IACA,IAEFoJ,GAAI,IAAI/E,EACN,GACA,UACA,UACA,UACA/I,EAAoB+N,QACpBxF,EAAWI,WACX,IACA,EACA,EACA,GAEFqF,GAAI,IAAIjF,EACN,GACA,eACA,eACA,eACA/I,EAAoBiO,aACpB5N,EAAO0E,eACP,GACA,GAEFmJ,GAAI,IAAInF,EACN,GACA,oBACA,cACA,cACA/I,EAAoB2F,QACpBtF,EAAOqF,YACP,EACA,EACA,EACA,GAEFyI,GAAI,IAAIpF,EACN,GACA,UACA,UACA,UACA/I,EAAoB2F,QACpBtF,EAAOsF,QACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAIrF,EACN,GACA,eACA,eACA,eACA/I,EAAoB2F,QACpBtF,EAAOuF,aACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAItF,EACN,GACA,eACA,eACA,eACA/I,EAAoB2F,QACpBtF,EAAOwF,aACP,EACA,EACA,EACA,IAEFyI,GAAI,IAAIvF,EACN,GACA,gBACA,gBACA,gBACA/I,EAAoB2F,QACpBtF,EAAOyF,cACP,GACA,EACA,EACA,IAEFyI,GAAI,IAAIxF,EACN,GACA,0BACA,oBACA,oBACA/I,EAAoB2F,QACpBtF,EAAOqF,YACP,EACA,EACA,EACA,GAEF8I,GAAI,IAAIzF,EACN,GACA,gBACA,UACA,UACA/I,EAAoByO,cACpBpO,EAAOsF,QACP,GACA,EACA,EACA,IAEF+I,GAAI,IAAI3F,EACN,GACA,qBACA,eACA,eACA/I,EAAoByO,cACpBpO,EAAOuF,aACP,GACA,EACA,EACA,IAEF+I,GAAI,IAAI5F,EACN,GACA,qBACA,eACA,eACA/I,EAAoByO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","file":"static/js/8.02229295.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","\"use strict\";\n/*\n\nUsage:\n\nvar ago = require('s-ago');\n\nvar now = new Date();\nvar yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));\nvar hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));\n\nago(now); // 'just now'\nago(yesterday); // 'yesterday'\nago(hoursAgo); // '6 hours ago'\n\n*/\nfunction format(diff, divisor, unit, past, future, isInTheFuture) {\n var val = Math.round(Math.abs(diff) / divisor);\n if (isInTheFuture)\n return val <= 1 ? future : 'in ' + val + ' ' + unit + 's';\n return val <= 1 ? past : val + ' ' + unit + 's ago';\n}\nvar units = [\n { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' },\n { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' },\n { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' },\n { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' },\n { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } // max: 11 months\n];\nmodule.exports = function ago(date) {\n var diff = Date.now() - date.getTime();\n // less than a minute\n if (Math.abs(diff) < 60000)\n return 'just now';\n for (var i = 0; i < units.length; i++) {\n if (Math.abs(diff) < units[i].max) {\n return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0);\n }\n }\n // `year` is the final unit.\n // same as:\n // {\n // max: Infinity,\n // value: 31536000000,\n // name: 'year',\n // past: 'last year'\n // }\n return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0);\n};\n","import { h } from 'preact'\nimport './search-bar.css'\n\nconst SearchBar = ({ value, onInput }) => (\n \n
\n \n \n \n
\n
input && input.focus()}\n />\n
\n)\n\nexport default SearchBar\n","/* To Title Case © 2018 David Gouch | https://github.com/gouch/to-title-case */\n\n// eslint-disable-next-line no-extend-native\nString.prototype.toTitleCase = function () {\n 'use strict'\n var smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|v.?|vs.?|via)$/i\n var alphanumericPattern = /([A-Za-z0-9\\u00C0-\\u00FF])/\n var wordSeparators = /([ :–—-])/\n\n return this.split(wordSeparators)\n .map(function (current, index, array) {\n if (\n /* Check for small words */\n current.search(smallWords) > -1 &&\n /* Skip first and last word */\n index !== 0 &&\n index !== array.length - 1 &&\n /* Ignore title end and subtitle start */\n array[index - 3] !== ':' &&\n array[index + 1] !== ':' &&\n /* Ignore small words that start a hyphenated phrase */\n (array[index + 1] !== '-' ||\n (array[index - 1] === '-' && array[index + 1] === '-'))\n ) {\n return current.toLowerCase()\n }\n\n /* Ignore intentional capitalization */\n if (current.substr(1).search(/[A-Z]|\\../) > -1) {\n return current\n }\n\n /* Ignore URLs */\n if (array[index + 1] === ':' && array[index + 2] !== '') {\n return current\n }\n\n /* Capitalize the first letter */\n return current.replace(alphanumericPattern, function (match) {\n return match.toUpperCase()\n })\n })\n .join('')\n}\n","import { h } from 'preact'\n\nconst Choice = ({ prefix, choices, value, onClick }) => (\n \n \n {prefix} {value}\n \n \n
\n)\n\nexport default Choice\n","import { h, Fragment } from 'preact'\nimport {\n rectangle,\n setOptions,\n Control,\n DomUtil,\n DomEvent,\n TileLayer,\n Util,\n CRS\n} from 'leaflet'\nimport {\n MapContainer,\n Rectangle,\n Tooltip,\n ImageOverlay,\n useMap\n} from 'react-leaflet'\nimport regions from '../_data/regions'\nimport './runescape-map.scss'\n\nconst BOUNDS_TOLERANCE = 4\nconst MIN_ZOOM = -4\nconst MAX_ZOOM = 8\nconst MAX_NATIVE_ZOOM = 2\nconst DEFAULT_ZOOM = 0\nconst DEFAULT_VIEW = [3225, 3219]\nconst MIN_PLANE = 0\nconst MAX_PLANE = 3\n\nconst MainTileLayer = TileLayer.extend({\n initialize: function (url, options) {\n this._url = url\n this.originalPlane = options.plane\n setOptions(this, options)\n },\n\n getTileUrl: function (coords) {\n return Util.template(this._url, {\n source: this.options.source,\n mapId: -1,\n zoom: coords.z,\n plane: this.options.plane,\n x: coords.x,\n y: -(1 + coords.y)\n })\n },\n\n resetPlane: function () {\n this.setPlane(this.originalPlane)\n },\n\n setPlane: function (plane) {\n const original = this.getPlane()\n plane = Math.max(plane, this.options.minPlane)\n plane = Math.min(plane, this.options.maxPlane)\n\n if (plane === original) {\n return\n }\n\n this.options.plane = plane\n\n if (this._map) {\n this._map.fire('planechange')\n }\n\n this.redraw()\n },\n\n getPlane: function () {\n return this.options.plane\n },\n\n createTile: function (coords, done) {\n let tile = TileLayer.prototype.createTile.call(this, coords, done)\n tile.onerror = error => error.preventDefault()\n return tile\n }\n})\n\nconst fromLatLng = latLng => {\n return {\n x: parseInt(latLng.lng),\n y: parseInt(latLng.lat)\n }\n}\n\nconst toLatLng = (x, y) => {\n return [y, x]\n}\n\nconst findCurrentRegion = map => {\n const center = map.getCenter()\n const rsCenter = fromLatLng(center)\n const rsRegion = ((rsCenter.x >> 6) << 8) | (rsCenter.y >> 6)\n\n for (const region of regions) {\n if (region.regions.includes(rsRegion)) {\n return region.name\n }\n }\n\n return ''\n}\n\nconst toColor = num => {\n num >>>= 0\n const b = num & 0xff,\n g = (num & 0xff00) >>> 8,\n r = (num & 0xff0000) >>> 16,\n a = ((num & 0xff000000) >>> 24) / 255\n return 'rgba(' + [r, g, b, a].join(',') + ')'\n}\n\nconst mapTile = tile => {\n const regionId = tile['regionId']\n const regionX = tile['regionX']\n const regionY = tile['regionY']\n let jsColor = '#ffffff'\n\n if (tile['color']) {\n const intColor = tile['color']['value']\n\n if (intColor) {\n jsColor = toColor(intColor)\n } else if (tile['color']) {\n const argb = tile['color']\n jsColor = '#' + argb.slice(3, 9) + argb[1] + argb[2]\n }\n }\n\n const x = ((regionId >>> 8) << 6) + regionX\n const y = ((regionId & 0xff) << 6) + regionY\n const z = tile['z']\n\n return {\n x,\n y,\n z,\n label: tile['label'],\n color: jsColor\n }\n}\n\nconst prepareMap = map => {\n const defaultView = toLatLng(DEFAULT_VIEW[0], DEFAULT_VIEW[1])\n map.setView(defaultView)\n\n const mouseRect = rectangle(\n [\n [0, 0],\n [1, 1]\n ],\n {\n color: '#1e1e1e',\n fillColor: '#1e1e1e',\n fillOpacity: 0.3,\n weight: 1,\n interactive: false\n }\n )\n\n mouseRect.addTo(map)\n\n map.on('mousemove', e => {\n const mousePos = fromLatLng(e.latlng)\n mouseRect.setBounds([\n toLatLng(mousePos.x, mousePos.y),\n toLatLng(mousePos.x + 1, mousePos.y + 1)\n ])\n })\n\n const locationControl = new Control({ position: 'topright' })\n locationControl.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n\n const button = DomUtil.create('span', 'leaflet-custom-control', container)\n const updateButton = () => {\n const region = findCurrentRegion(map)\n button.hidden = !region\n button.textContent = region\n }\n\n updateButton()\n map.on('move', updateButton)\n return container\n }\n\n locationControl.addTo(map)\n\n const resetButton = new Control({ position: 'topleft' })\n resetButton.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n const button = DomUtil.create('a', 'fas fa-redo', container)\n\n DomEvent.disableClickPropagation(button).addListener(\n button,\n 'click',\n () => {\n if (map.viewport) {\n map.fitBounds(map.viewport)\n } else {\n map.setView(defaultView, DEFAULT_ZOOM)\n }\n\n map.tileLayer.resetPlane()\n }\n )\n\n return container\n }\n\n resetButton.addTo(map)\n\n const planeButtons = new Control({ position: 'topright' })\n planeButtons.onAdd = map => {\n const container = DomUtil.create('div', 'leaflet-bar leaflet-control')\n const upButton = DomUtil.create('a', 'fas fa-sort-amount-up-alt', container)\n const label = DomUtil.create('span', 'leaflet-custom-control', container)\n const downButton = DomUtil.create('a', 'fas fa-sort-amount-down', container)\n\n const updateButtons = () => {\n if (!map.tileLayer) {\n return\n }\n\n label.textContent = map.tileLayer.getPlane()\n\n if (map.tileLayer.getPlane() === map.tileLayer.options.maxPlane) {\n DomUtil.addClass(upButton, 'leaflet-disabled')\n } else {\n DomUtil.removeClass(upButton, 'leaflet-disabled')\n }\n\n if (map.tileLayer.getPlane() === map.tileLayer.options.minPlane) {\n DomUtil.addClass(downButton, 'leaflet-disabled')\n } else {\n DomUtil.removeClass(downButton, 'leaflet-disabled')\n }\n }\n\n updateButtons()\n map.on('planechange', updateButtons)\n\n DomEvent.disableClickPropagation(upButton).addListener(\n upButton,\n 'click',\n () => {\n map.tileLayer.setPlane(map.tileLayer.getPlane() + 1)\n }\n )\n\n DomEvent.disableClickPropagation(downButton).addListener(\n downButton,\n 'click',\n () => {\n map.tileLayer.setPlane(map.tileLayer.getPlane() - 1)\n }\n )\n\n return container\n }\n\n planeButtons.addTo(map)\n\n if (map.viewport) {\n map.fitBounds(map.viewport)\n }\n}\n\nconst TileMapHandler = ({ tiles, selected, plane }) => {\n const map = useMap()\n\n if (!map.tileLayer) {\n map.tileLayer = new MainTileLayer(\n 'https://raw.githubusercontent.com/mejrs/layers_osrs/master/{source}/-1/{zoom}/{plane}_{x}_{y}.png',\n {\n noWrap: true,\n plane: plane,\n minPlane: MIN_PLANE,\n maxPlane: MAX_PLANE,\n source: 'mapsquares',\n minZoom: MIN_ZOOM,\n maxNativeZoom: MAX_NATIVE_ZOOM,\n maxZoom: MAX_ZOOM,\n errorTileUrl:\n 'https://raw.githubusercontent.com/mejrs/mejrs.github.io/master/layers/alpha_pixel.png'\n }\n )\n\n map.tileLayer.addTo(map)\n }\n\n map.tileLayer.originalPlane = plane\n map.tileLayer.setPlane(plane)\n\n if (selected.length > 0) {\n const tilesX = selected.map(t => t.x)\n const tilesY = selected.map(t => t.y)\n const minX = Math.min(...tilesX) - BOUNDS_TOLERANCE\n const maxX = Math.max(...tilesX) + BOUNDS_TOLERANCE\n const minY = Math.min(...tilesY) - BOUNDS_TOLERANCE\n const maxY = Math.max(...tilesY) + BOUNDS_TOLERANCE\n const minCorner = toLatLng(minX, minY)\n const maxCorner = toLatLng(maxX, maxY)\n const viewport = [minCorner, maxCorner]\n\n map.viewport = viewport\n map.fitBounds(viewport)\n }\n\n return tiles.map(tile => {\n const pos = toLatLng(tile.x, tile.y)\n const pos2 = toLatLng(tile.x + 1, tile.y + 1)\n const bounds = [pos, pos2]\n return (\n \n {tile.label && (\n \n )}\n \n {tile.label && {tile.label} }\n \n \n )\n })\n}\n\nconst RuneScapeMap = ({ tiles, selected }) => {\n if (!tiles) {\n tiles = []\n }\n\n if (!selected) {\n selected = tiles\n }\n\n tiles = tiles.map(mapTile)\n selected = selected.map(mapTile)\n\n const plane = selected.length > 0 ? selected[0].z || 0 : 0\n\n return (\n \n \n \n \n \n )\n}\n\nexport default RuneScapeMap\n","import { Component } from 'preact'\n\nexport default class Redirect extends Component {\n componentWillMount() {\n window.location.replace(this.props.to)\n }\n\n render() {\n return null\n }\n}\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { toMMSS } from '../../util'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig, getBossLog, getSlayerTask } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\n\nconst nameToItemId = name => {\n switch (name.toLowerCase()) {\n case 'abyssal sire':\n return 13262 // abyssal orphan\n case 'alchemical hydra':\n return 22746 // ikkle hydra\n case 'barrows':\n case 'barrows chests':\n return 19629 // barrows teleport\n case 'bryophyta':\n return 22370 // bryophyta's staff\n case 'callisto':\n return 13178 // callisto cub\n case 'cerberus':\n return 13247 // hellpuppy\n case 'chambers of xeric':\n case 'chambers of xeric challenge mode':\n return 20851 // olmlet\n case 'chaos elemental':\n return 11995 // chaos elemental\n case 'chaos fanatic':\n return 4675 // ancient staff\n case 'commander zilyana':\n return 12651 // pet zilyana\n case 'corporeal beast':\n return 22318 // pet corp\n case 'crazy archaeologist':\n return 11990 // fedora\n case 'dagannoth prime':\n return 12644\n case 'dagannoth rex':\n return 12645\n case 'dagannoth supreme':\n return 12643\n case 'deranged archaeologist':\n return 21566\n case 'general graardor':\n return 12650\n case 'giant mole':\n return 12646\n case 'grotesque guardians':\n return 21748\n case 'hespori':\n return 22875 // hespori seed\n case 'kalphite queen':\n return 12647\n case 'king black dragon':\n return 12653\n case \"k'ril tsutsaroth\":\n return 12652\n case 'kraken':\n return 12655\n case \"kree'arra\":\n return 12649\n case 'obor':\n return 20756 // hill giant club\n case 'scorpia':\n return 13181\n case 'skotizo':\n return 21273\n case 'theatre of blood':\n return 22473\n case 'thermonuclear smoke devil':\n return 12648\n case 'tztok-jad':\n return 13225\n case 'tzkal-zuk':\n return 21291\n case 'venenatis':\n return 13177\n case \"vet'ion\":\n return 13179\n case 'vorkath':\n return 21992\n case 'wintertodt':\n return 20693\n case 'zulrah':\n return 12921\n case 'sarachnis':\n return 23495 // sraracha\n case 'herbiboar':\n return 21509 // herbi\n case 'zalcano':\n return 23760 // smolcano\n case 'gauntlet':\n return 23757 // youngllef\n case 'corrupted gauntlet':\n return 23759 // corrupted youngllef\n case 'mimic':\n return 23184 // mimic casket\n case 'ape atoll agility':\n return 4033 // monkey\n default:\n return 4155 // Enchanted gem\n }\n}\n\nconst buildSlayerTask = slayerTask => {\n if (!slayerTask.hasTask) {\n return \n }\n\n return (\n \n \n
\n
\n
\n {slayerTask.name.toTitleCase()}{' '}\n \n {slayerTask.start - slayerTask.remaining}/{slayerTask.start}\n \n \n {slayerTask.location ? (\n in {slayerTask.location} \n ) : (\n \n )}\n \n\n
\n Streak: {slayerTask.streak} \n \n Points: {slayerTask.points} \n
\n
\n
\n )\n}\n\nconst buildBossLog = bossLog => {\n if (bossLog.length === 0) {\n return \n }\n\n return (\n \n \n
\n {bossLog.map(e => (\n \n \n {e.name.toTitleCase()}\n \n {e.pb ? (\n
\n Personal best: \n \n {toMMSS(e.pb)}\n \n
\n ) : (\n
\n )}\n
\n Kills: \n {e.kc} \n
\n
\n \n ))}\n \n
\n )\n}\n\nconst Home = ({ slayerTask, bossLog }) => (\n \n {buildSlayerTask(slayerTask)}\n {buildBossLog(bossLog)}\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n slayerTask: getSlayerTask(state),\n bossLog: getBossLog(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Home))\n","import { h, Fragment } from 'preact'\nimport '../../components/tooltip.css'\nimport './loot-tracker.css'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../../components/prepare'\nimport { wikiURLForItem } from '../../util'\nimport SearchBar from '../../components/search-bar'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { fetchPrices } from '../../modules/prices'\nimport { fetchItems } from '../../modules/item'\nimport {\n fetchConfig,\n getFilteredLoot,\n getLootFilter,\n setLootFilter\n} from '../../modules/config'\n\nconst getRlIcon = id => `https://static.runelite.net/cache/item/icon/${id}.png`\n\nconst glyphMap = {\n 1: { x: 0, y: 0, w: 5 },\n 2: { x: 5, y: 0, w: 7 },\n 3: { x: 12, y: 0, w: 6 },\n 4: { x: 18, y: 0, w: 6 },\n 5: { x: 24, y: 0, w: 6 },\n 6: { x: 30, y: 0, w: 7 },\n 7: { x: 37, y: 0, w: 6 },\n 8: { x: 43, y: 0, w: 7 },\n 9: { x: 50, y: 0, w: 7 },\n 0: { x: 57, y: 0, w: 7 },\n M: { x: 0, y: 10, w: 8 },\n K: { x: 8, y: 10, w: 7 },\n '%': { x: 15, y: 10, w: 7 },\n '-': { x: 22, y: 10, w: 5 },\n '+': { x: 27, y: 10, w: 7 },\n '/': { x: 37, y: 10, w: 5 },\n '*': { x: 39, y: 10, w: 7 },\n '=': { x: 46, y: 0, w: 6 },\n '^': { x: 52, y: 10, w: 5 },\n '(': { x: 57, y: 10, w: 4 },\n ')': { x: 60, y: 10, w: 4 }\n}\n\nconst quantityNums = ['', 'K', 'M']\n\nconst numToQuantity = num => {\n let l = 0\n while (num > 9999) {\n num /= 1000\n l++\n }\n\n const si = quantityNums[l]\n const str = ~~num + si\n return [str, si]\n}\n\nconst buildQuantity = num => {\n let [str, si] = numToQuantity(num)\n return (\n num > 1 && (\n \n {[...str]\n .map(g => glyphMap[g])\n .filter(g => !!g)\n .map(g => (\n \n ))}\n \n )\n )\n}\n\nconst buildDrop = drop => (\n \n {buildQuantity(drop.qty)}\n
\n
\n)\n\nconst formatPrice = price => {\n let [str] = numToQuantity(price)\n return str\n}\n\nconst buildLootRecord = record => (\n \n \n
\n
{record.drops.map(buildDrop)}
\n
\n
\n)\n\nconst handleChange = (event, setLootFilter) => setLootFilter(event.target.value)\n\nconst LootTracker = ({ loot, lootFilter, setLootFilter }) => (\n \n handleChange(e, setLootFilter)}\n />\n {loot.map(buildLootRecord)}
\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n loot: getFilteredLoot(state),\n lootFilter: getLootFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchPrices,\n fetchItems,\n fetchConfig,\n setLootFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchPrices,\n fetchItems,\n fetchConfig\n}) => {\n await fetchBootstrap()\n await fetchPrices()\n await fetchItems()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(LootTracker))\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig, getTags } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { fetchItems } from '../../modules/item'\nimport { formatIcon, wikiURLForItem } from '../../util'\nimport '../../components/tooltip.css'\nimport '../tag.css'\n\nconst buildTag = tag => {\n const csv = [tag.name, tag.icon].concat(tag.items.map(i => i.id)).join(',')\n\n return (\n \n
\n {tag.name}\n \n\n
\n {csv}\n \n \n
\n {tag.items.map(item => {\n const name = item.name || ''\n const id = item.id\n\n return (\n
\n )\n })}\n
\n
\n )\n}\n\nconst Tags = ({ tags }) => {tags.map(buildTag)} \n\nconst mapStateToProps = (state, props) => ({\n ...props,\n tags: getTags(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchItems\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchItems\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchItems()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Tags))\n","// @ts-nocheck\n/* eslint-disable */\nimport { ItemID } from './ItemID'\nexport var Tab\n;(function (Tab) {\n Tab[(Tab['OVERVIEW'] = 0)] = 'OVERVIEW'\n Tab[(Tab['CLOCK'] = 1)] = 'CLOCK'\n Tab[(Tab['BIRD_HOUSE'] = 2)] = 'BIRD_HOUSE'\n Tab[(Tab['ALLOTMENT'] = 3)] = 'ALLOTMENT'\n Tab[(Tab['FLOWER'] = 4)] = 'FLOWER'\n Tab[(Tab['HERB'] = 5)] = 'HERB'\n Tab[(Tab['TREE'] = 6)] = 'TREE'\n Tab[(Tab['FRUIT_TREE'] = 7)] = 'FRUIT_TREE'\n Tab[(Tab['HOPS'] = 8)] = 'HOPS'\n Tab[(Tab['BUSH'] = 9)] = 'BUSH'\n Tab[(Tab['GRAPE'] = 10)] = 'GRAPE'\n Tab[(Tab['SPECIAL'] = 11)] = 'SPECIAL'\n})(Tab || (Tab = {}))\n/** @ignore */\nexport class Tab_$WRAPPER {\n constructor(_$ordinal, _$name, name, itemID) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n this.__name = name\n this.itemID = itemID\n }\n static FARMING_TABS_$LI$() {\n if (Tab_$WRAPPER.FARMING_TABS == null) {\n Tab_$WRAPPER.FARMING_TABS = [\n Tab.HERB,\n Tab.TREE,\n Tab.FRUIT_TREE,\n Tab.SPECIAL,\n Tab.FLOWER,\n Tab.ALLOTMENT,\n Tab.BUSH,\n Tab.GRAPE,\n Tab.HOPS\n ]\n }\n return Tab_$WRAPPER.FARMING_TABS\n }\n getName() {\n return this.__name\n }\n getItemID() {\n return this.itemID\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nTab['__class'] = 'timetracking.Tab'\nTab['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nTab['_$wrappers'] = {\n 0: new Tab_$WRAPPER(0, 'OVERVIEW', 'Overview', ItemID.OLD_NOTES),\n 1: new Tab_$WRAPPER(1, 'CLOCK', 'Timers & Stopwatches', ItemID.WATCH),\n 2: new Tab_$WRAPPER(2, 'BIRD_HOUSE', 'Bird Houses', ItemID.OAK_BIRD_HOUSE),\n 3: new Tab_$WRAPPER(3, 'ALLOTMENT', 'Allotment Patches', ItemID.CABBAGE),\n 4: new Tab_$WRAPPER(4, 'FLOWER', 'Flower Patches', ItemID.RED_FLOWERS),\n 5: new Tab_$WRAPPER(5, 'HERB', 'Herb Patches', ItemID.GRIMY_RANARR_WEED),\n 6: new Tab_$WRAPPER(6, 'TREE', 'Tree Patches', ItemID.YEW_LOGS),\n 7: new Tab_$WRAPPER(7, 'FRUIT_TREE', 'Fruit Tree Patches', ItemID.PINEAPPLE),\n 8: new Tab_$WRAPPER(8, 'HOPS', 'Hops Patches', ItemID.BARLEY),\n 9: new Tab_$WRAPPER(9, 'BUSH', 'Bush Patches', ItemID.POISON_IVY_BERRIES),\n 10: new Tab_$WRAPPER(10, 'GRAPE', 'Grape Patches', ItemID.GRAPES),\n 11: new Tab_$WRAPPER(11, 'SPECIAL', 'Special Patches', ItemID.MUSHROOM)\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var CropState\n;(function (CropState) {\n CropState[(CropState['HARVESTABLE'] = 0)] = 'HARVESTABLE'\n CropState[(CropState['GROWING'] = 1)] = 'GROWING'\n CropState[(CropState['DISEASED'] = 2)] = 'DISEASED'\n CropState[(CropState['DEAD'] = 3)] = 'DEAD'\n CropState[(CropState['EMPTY'] = 4)] = 'EMPTY'\n CropState[(CropState['FILLING'] = 5)] = 'FILLING'\n})(CropState || (CropState = {}))\n","// @ts-nocheck\n/* eslint-disable */\nimport { Tab } from './Tab'\nimport { PatchState } from './PatchState'\nimport { CropState } from './CropState'\nimport { ItemID } from './ItemID'\nimport { NullItemID } from './NullItemID'\nexport var PatchImplementation\n;(function (PatchImplementation) {\n PatchImplementation[(PatchImplementation['BELLADONNA'] = 0)] = 'BELLADONNA'\n PatchImplementation[(PatchImplementation['MUSHROOM'] = 1)] = 'MUSHROOM'\n PatchImplementation[(PatchImplementation['HESPORI'] = 2)] = 'HESPORI'\n PatchImplementation[(PatchImplementation['ALLOTMENT'] = 3)] = 'ALLOTMENT'\n PatchImplementation[(PatchImplementation['HERB'] = 4)] = 'HERB'\n PatchImplementation[(PatchImplementation['FLOWER'] = 5)] = 'FLOWER'\n PatchImplementation[(PatchImplementation['BUSH'] = 6)] = 'BUSH'\n PatchImplementation[(PatchImplementation['FRUIT_TREE'] = 7)] = 'FRUIT_TREE'\n PatchImplementation[(PatchImplementation['HOPS'] = 8)] = 'HOPS'\n PatchImplementation[(PatchImplementation['TREE'] = 9)] = 'TREE'\n PatchImplementation[(PatchImplementation['HARDWOOD_TREE'] = 10)] =\n 'HARDWOOD_TREE'\n PatchImplementation[(PatchImplementation['REDWOOD'] = 11)] = 'REDWOOD'\n PatchImplementation[(PatchImplementation['SPIRIT_TREE'] = 12)] = 'SPIRIT_TREE'\n PatchImplementation[(PatchImplementation['ANIMA'] = 13)] = 'ANIMA'\n PatchImplementation[(PatchImplementation['CACTUS'] = 14)] = 'CACTUS'\n PatchImplementation[(PatchImplementation['SEAWEED'] = 15)] = 'SEAWEED'\n PatchImplementation[(PatchImplementation['CALQUAT'] = 16)] = 'CALQUAT'\n PatchImplementation[(PatchImplementation['CELASTRUS'] = 17)] = 'CELASTRUS'\n PatchImplementation[(PatchImplementation['GRAPES'] = 18)] = 'GRAPES'\n PatchImplementation[(PatchImplementation['CRYSTAL_TREE'] = 19)] =\n 'CRYSTAL_TREE'\n PatchImplementation[(PatchImplementation['COMPOST'] = 20)] = 'COMPOST'\n PatchImplementation[(PatchImplementation['GIANT_COMPOST'] = 21)] =\n 'GIANT_COMPOST'\n})(PatchImplementation || (PatchImplementation = {}))\n/** @ignore */\nexport class PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.tab === undefined) {\n this.tab = null\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n this.tab = tab\n this.__name = name\n }\n getTab() {\n return this.tab\n }\n getName() {\n return this.__name\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nPatchImplementation['__class'] = 'timetracking.PatchImplementation'\nPatchImplementation['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\n;(function (PatchImplementation) {\n let Produce\n ;(function (Produce) {\n Produce[(Produce['WEEDS'] = 0)] = 'WEEDS'\n Produce[(Produce['SCARECROW'] = 1)] = 'SCARECROW'\n Produce[(Produce['POTATO'] = 2)] = 'POTATO'\n Produce[(Produce['ONION'] = 3)] = 'ONION'\n Produce[(Produce['CABBAGE'] = 4)] = 'CABBAGE'\n Produce[(Produce['TOMATO'] = 5)] = 'TOMATO'\n Produce[(Produce['SWEETCORN'] = 6)] = 'SWEETCORN'\n Produce[(Produce['STRAWBERRY'] = 7)] = 'STRAWBERRY'\n Produce[(Produce['WATERMELON'] = 8)] = 'WATERMELON'\n Produce[(Produce['SNAPE_GRASS'] = 9)] = 'SNAPE_GRASS'\n Produce[(Produce['MARIGOLD'] = 10)] = 'MARIGOLD'\n Produce[(Produce['ROSEMARY'] = 11)] = 'ROSEMARY'\n Produce[(Produce['NASTURTIUM'] = 12)] = 'NASTURTIUM'\n Produce[(Produce['WOAD'] = 13)] = 'WOAD'\n Produce[(Produce['LIMPWURT'] = 14)] = 'LIMPWURT'\n Produce[(Produce['WHITE_LILY'] = 15)] = 'WHITE_LILY'\n Produce[(Produce['REDBERRIES'] = 16)] = 'REDBERRIES'\n Produce[(Produce['CADAVABERRIES'] = 17)] = 'CADAVABERRIES'\n Produce[(Produce['DWELLBERRIES'] = 18)] = 'DWELLBERRIES'\n Produce[(Produce['JANGERBERRIES'] = 19)] = 'JANGERBERRIES'\n Produce[(Produce['WHITEBERRIES'] = 20)] = 'WHITEBERRIES'\n Produce[(Produce['POISON_IVY'] = 21)] = 'POISON_IVY'\n Produce[(Produce['BARLEY'] = 22)] = 'BARLEY'\n Produce[(Produce['HAMMERSTONE'] = 23)] = 'HAMMERSTONE'\n Produce[(Produce['ASGARNIAN'] = 24)] = 'ASGARNIAN'\n Produce[(Produce['JUTE'] = 25)] = 'JUTE'\n Produce[(Produce['YANILLIAN'] = 26)] = 'YANILLIAN'\n Produce[(Produce['KRANDORIAN'] = 27)] = 'KRANDORIAN'\n Produce[(Produce['WILDBLOOD'] = 28)] = 'WILDBLOOD'\n Produce[(Produce['GUAM'] = 29)] = 'GUAM'\n Produce[(Produce['MARRENTILL'] = 30)] = 'MARRENTILL'\n Produce[(Produce['TARROMIN'] = 31)] = 'TARROMIN'\n Produce[(Produce['HARRALANDER'] = 32)] = 'HARRALANDER'\n Produce[(Produce['RANARR'] = 33)] = 'RANARR'\n Produce[(Produce['TOADFLAX'] = 34)] = 'TOADFLAX'\n Produce[(Produce['IRIT'] = 35)] = 'IRIT'\n Produce[(Produce['AVANTOE'] = 36)] = 'AVANTOE'\n Produce[(Produce['KWUARM'] = 37)] = 'KWUARM'\n Produce[(Produce['SNAPDRAGON'] = 38)] = 'SNAPDRAGON'\n Produce[(Produce['CADANTINE'] = 39)] = 'CADANTINE'\n Produce[(Produce['LANTADYME'] = 40)] = 'LANTADYME'\n Produce[(Produce['DWARF_WEED'] = 41)] = 'DWARF_WEED'\n Produce[(Produce['TORSTOL'] = 42)] = 'TORSTOL'\n Produce[(Produce['GOUTWEED'] = 43)] = 'GOUTWEED'\n Produce[(Produce['ANYHERB'] = 44)] = 'ANYHERB'\n Produce[(Produce['OAK'] = 45)] = 'OAK'\n Produce[(Produce['WILLOW'] = 46)] = 'WILLOW'\n Produce[(Produce['MAPLE'] = 47)] = 'MAPLE'\n Produce[(Produce['YEW'] = 48)] = 'YEW'\n Produce[(Produce['MAGIC'] = 49)] = 'MAGIC'\n Produce[(Produce['APPLE'] = 50)] = 'APPLE'\n Produce[(Produce['BANANA'] = 51)] = 'BANANA'\n Produce[(Produce['ORANGE'] = 52)] = 'ORANGE'\n Produce[(Produce['CURRY'] = 53)] = 'CURRY'\n Produce[(Produce['PINEAPPLE'] = 54)] = 'PINEAPPLE'\n Produce[(Produce['PAPAYA'] = 55)] = 'PAPAYA'\n Produce[(Produce['PALM'] = 56)] = 'PALM'\n Produce[(Produce['DRAGONFRUIT'] = 57)] = 'DRAGONFRUIT'\n Produce[(Produce['CACTUS'] = 58)] = 'CACTUS'\n Produce[(Produce['POTATO_CACTUS'] = 59)] = 'POTATO_CACTUS'\n Produce[(Produce['TEAK'] = 60)] = 'TEAK'\n Produce[(Produce['MAHOGANY'] = 61)] = 'MAHOGANY'\n Produce[(Produce['ATTAS'] = 62)] = 'ATTAS'\n Produce[(Produce['IASOR'] = 63)] = 'IASOR'\n Produce[(Produce['KRONOS'] = 64)] = 'KRONOS'\n Produce[(Produce['SEAWEED'] = 65)] = 'SEAWEED'\n Produce[(Produce['GRAPE'] = 66)] = 'GRAPE'\n Produce[(Produce['MUSHROOM'] = 67)] = 'MUSHROOM'\n Produce[(Produce['BELLADONNA'] = 68)] = 'BELLADONNA'\n Produce[(Produce['CALQUAT'] = 69)] = 'CALQUAT'\n Produce[(Produce['SPIRIT_TREE'] = 70)] = 'SPIRIT_TREE'\n Produce[(Produce['CELASTRUS'] = 71)] = 'CELASTRUS'\n Produce[(Produce['REDWOOD'] = 72)] = 'REDWOOD'\n Produce[(Produce['HESPORI'] = 73)] = 'HESPORI'\n Produce[(Produce['CRYSTAL_TREE'] = 74)] = 'CRYSTAL_TREE'\n Produce[(Produce['EMPTY_COMPOST_BIN'] = 75)] = 'EMPTY_COMPOST_BIN'\n Produce[(Produce['COMPOST'] = 76)] = 'COMPOST'\n Produce[(Produce['SUPERCOMPOST'] = 77)] = 'SUPERCOMPOST'\n Produce[(Produce['ULTRACOMPOST'] = 78)] = 'ULTRACOMPOST'\n Produce[(Produce['ROTTEN_TOMATO'] = 79)] = 'ROTTEN_TOMATO'\n Produce[(Produce['EMPTY_GIANT_COMPOST_BIN'] = 80)] =\n 'EMPTY_GIANT_COMPOST_BIN'\n Produce[(Produce['GIANT_COMPOST'] = 81)] = 'GIANT_COMPOST'\n Produce[(Produce['GIANT_SUPERCOMPOST'] = 82)] = 'GIANT_SUPERCOMPOST'\n Produce[(Produce['GIANT_ULTRACOMPOST'] = 83)] = 'GIANT_ULTRACOMPOST'\n Produce[(Produce['GIANT_ROTTEN_TOMATO'] = 84)] = 'GIANT_ROTTEN_TOMATO'\n })(\n (Produce =\n PatchImplementation.Produce || (PatchImplementation.Produce = {}))\n )\n /** @ignore */\n class Produce_$WRAPPER {\n constructor(\n _$ordinal,\n _$name,\n name,\n contractName,\n patchImplementation,\n itemID,\n tickrate,\n stages,\n regrowTickrate,\n harvestStages\n ) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n (typeof regrowTickrate === 'number' || regrowTickrate === null) &&\n (typeof harvestStages === 'number' || harvestStages === null)\n ) {\n let __args = arguments\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n } else if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n regrowTickrate === undefined &&\n harvestStages === undefined\n ) {\n let __args = arguments\n {\n let __args = arguments\n let regrowTickrate = 0\n let harvestStages = 1\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n } else throw new Error('invalid overload')\n }\n getName() {\n return this.__name\n }\n getContractName() {\n return this.contractName\n }\n getItemID() {\n return this.itemID\n }\n getTickrate() {\n return this.tickrate\n }\n getStages() {\n return this.stages\n }\n getRegrowTickrate() {\n return this.regrowTickrate\n }\n getHarvestStages() {\n return this.harvestStages\n }\n getPatchImplementation() {\n return this.patchImplementation\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n }\n PatchImplementation.Produce_$WRAPPER = Produce_$WRAPPER\n Produce['__class'] = 'timetracking.PatchImplementation.Produce'\n Produce['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\n Produce['_$wrappers'] = {\n 0: new Produce_$WRAPPER(\n 0,\n 'WEEDS',\n 'Weeds',\n 'Weeds',\n null,\n ItemID.WEEDS,\n 5,\n 4\n ),\n 1: new Produce_$WRAPPER(\n 1,\n 'SCARECROW',\n 'Scarecrow',\n 'Scarecrow',\n null,\n ItemID.SCARECROW,\n 5,\n 4\n ),\n 2: new Produce_$WRAPPER(\n 2,\n 'POTATO',\n 'Potato',\n 'Potatoes',\n PatchImplementation.ALLOTMENT,\n ItemID.POTATO,\n 10,\n 5,\n 0,\n 3\n ),\n 3: new Produce_$WRAPPER(\n 3,\n 'ONION',\n 'Onion',\n 'Onions',\n PatchImplementation.ALLOTMENT,\n ItemID.ONION,\n 10,\n 5,\n 0,\n 3\n ),\n 4: new Produce_$WRAPPER(\n 4,\n 'CABBAGE',\n 'Cabbage',\n 'Cabbages',\n PatchImplementation.ALLOTMENT,\n ItemID.CABBAGE,\n 10,\n 5,\n 0,\n 3\n ),\n 5: new Produce_$WRAPPER(\n 5,\n 'TOMATO',\n 'Tomato',\n 'Tomatoes',\n PatchImplementation.ALLOTMENT,\n ItemID.TOMATO,\n 10,\n 5,\n 0,\n 3\n ),\n 6: new Produce_$WRAPPER(\n 6,\n 'SWEETCORN',\n 'Sweetcorn',\n 'Sweetcorn',\n PatchImplementation.ALLOTMENT,\n ItemID.SWEETCORN,\n 10,\n 6,\n 0,\n 3\n ),\n 7: new Produce_$WRAPPER(\n 7,\n 'STRAWBERRY',\n 'Strawberry',\n 'Strawberries',\n PatchImplementation.ALLOTMENT,\n ItemID.STRAWBERRY,\n 10,\n 7,\n 0,\n 3\n ),\n 8: new Produce_$WRAPPER(\n 8,\n 'WATERMELON',\n 'Watermelon',\n 'Watermelons',\n PatchImplementation.ALLOTMENT,\n ItemID.WATERMELON,\n 10,\n 8,\n 0,\n 3\n ),\n 9: new Produce_$WRAPPER(\n 9,\n 'SNAPE_GRASS',\n 'Snape grass',\n 'Snape grass',\n PatchImplementation.ALLOTMENT,\n ItemID.SNAPE_GRASS,\n 10,\n 8,\n 0,\n 3\n ),\n 10: new Produce_$WRAPPER(\n 10,\n 'MARIGOLD',\n 'Marigold',\n 'Marigolds',\n PatchImplementation.FLOWER,\n ItemID.MARIGOLDS,\n 5,\n 5\n ),\n 11: new Produce_$WRAPPER(\n 11,\n 'ROSEMARY',\n 'Rosemary',\n 'Rosemary',\n PatchImplementation.FLOWER,\n ItemID.ROSEMARY,\n 5,\n 5\n ),\n 12: new Produce_$WRAPPER(\n 12,\n 'NASTURTIUM',\n 'Nasturtium',\n 'Nasturtiums',\n PatchImplementation.FLOWER,\n ItemID.NASTURTIUMS,\n 5,\n 5\n ),\n 13: new Produce_$WRAPPER(\n 13,\n 'WOAD',\n 'Woad',\n 'Woad',\n PatchImplementation.FLOWER,\n ItemID.WOAD_LEAF,\n 5,\n 5\n ),\n 14: new Produce_$WRAPPER(\n 14,\n 'LIMPWURT',\n 'Limpwurt',\n 'Limpwurt roots',\n PatchImplementation.FLOWER,\n ItemID.LIMPWURT_ROOT,\n 5,\n 5\n ),\n 15: new Produce_$WRAPPER(\n 15,\n 'WHITE_LILY',\n 'White lily',\n 'White lillies',\n PatchImplementation.FLOWER,\n ItemID.WHITE_LILY,\n 5,\n 5\n ),\n 16: new Produce_$WRAPPER(\n 16,\n 'REDBERRIES',\n 'Redberry',\n 'Redberries',\n PatchImplementation.BUSH,\n ItemID.REDBERRIES,\n 20,\n 6,\n 20,\n 5\n ),\n 17: new Produce_$WRAPPER(\n 17,\n 'CADAVABERRIES',\n 'Cadavaberry',\n 'Cadava berries',\n PatchImplementation.BUSH,\n ItemID.CADAVA_BERRIES,\n 20,\n 7,\n 20,\n 5\n ),\n 18: new Produce_$WRAPPER(\n 18,\n 'DWELLBERRIES',\n 'Dwellberry',\n 'Dwellberries',\n PatchImplementation.BUSH,\n ItemID.DWELLBERRIES,\n 20,\n 8,\n 20,\n 5\n ),\n 19: new Produce_$WRAPPER(\n 19,\n 'JANGERBERRIES',\n 'Jangerberry',\n 'Jangerberries',\n PatchImplementation.BUSH,\n ItemID.JANGERBERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 20: new Produce_$WRAPPER(\n 20,\n 'WHITEBERRIES',\n 'Whiteberry',\n 'White berries',\n PatchImplementation.BUSH,\n ItemID.WHITE_BERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 21: new Produce_$WRAPPER(\n 21,\n 'POISON_IVY',\n 'Poison ivy',\n 'Poison ivy berries',\n PatchImplementation.BUSH,\n ItemID.POISON_IVY_BERRIES,\n 20,\n 9,\n 20,\n 5\n ),\n 22: new Produce_$WRAPPER(\n 22,\n 'BARLEY',\n 'Barley',\n 'Barley',\n PatchImplementation.HOPS,\n ItemID.BARLEY,\n 10,\n 5,\n 0,\n 3\n ),\n 23: new Produce_$WRAPPER(\n 23,\n 'HAMMERSTONE',\n 'Hammerstone',\n 'Hammerstone',\n PatchImplementation.HOPS,\n ItemID.HAMMERSTONE_HOPS,\n 10,\n 5,\n 0,\n 3\n ),\n 24: new Produce_$WRAPPER(\n 24,\n 'ASGARNIAN',\n 'Asgarnian',\n 'Asgarnian',\n PatchImplementation.HOPS,\n ItemID.ASGARNIAN_HOPS,\n 10,\n 6,\n 0,\n 3\n ),\n 25: new Produce_$WRAPPER(\n 25,\n 'JUTE',\n 'Jute',\n 'Jute',\n PatchImplementation.HOPS,\n ItemID.JUTE_FIBRE,\n 10,\n 6,\n 0,\n 3\n ),\n 26: new Produce_$WRAPPER(\n 26,\n 'YANILLIAN',\n 'Yanillian',\n 'Yanillian',\n PatchImplementation.HOPS,\n ItemID.YANILLIAN_HOPS,\n 10,\n 7,\n 0,\n 3\n ),\n 27: new Produce_$WRAPPER(\n 27,\n 'KRANDORIAN',\n 'Krandorian',\n 'Krandorian',\n PatchImplementation.HOPS,\n ItemID.KRANDORIAN_HOPS,\n 10,\n 8,\n 0,\n 3\n ),\n 28: new Produce_$WRAPPER(\n 28,\n 'WILDBLOOD',\n 'Wildblood',\n 'Wildblood',\n PatchImplementation.HOPS,\n ItemID.WILDBLOOD_HOPS,\n 10,\n 9,\n 0,\n 3\n ),\n 29: new Produce_$WRAPPER(\n 29,\n 'GUAM',\n 'Guam',\n 'Guam',\n PatchImplementation.HERB,\n ItemID.GUAM_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 30: new Produce_$WRAPPER(\n 30,\n 'MARRENTILL',\n 'Marrentill',\n 'Marrentill',\n PatchImplementation.HERB,\n ItemID.MARRENTILL,\n 20,\n 5,\n 0,\n 3\n ),\n 31: new Produce_$WRAPPER(\n 31,\n 'TARROMIN',\n 'Tarromin',\n 'Tarromin',\n PatchImplementation.HERB,\n ItemID.TARROMIN,\n 20,\n 5,\n 0,\n 3\n ),\n 32: new Produce_$WRAPPER(\n 32,\n 'HARRALANDER',\n 'Harralander',\n 'Harralander',\n PatchImplementation.HERB,\n ItemID.HARRALANDER,\n 20,\n 5,\n 0,\n 3\n ),\n 33: new Produce_$WRAPPER(\n 33,\n 'RANARR',\n 'Ranarr',\n 'Harralander',\n PatchImplementation.HERB,\n ItemID.RANARR_WEED,\n 20,\n 5,\n 0,\n 3\n ),\n 34: new Produce_$WRAPPER(\n 34,\n 'TOADFLAX',\n 'Toadflax',\n 'Toadflax',\n PatchImplementation.HERB,\n ItemID.TOADFLAX,\n 20,\n 5,\n 0,\n 3\n ),\n 35: new Produce_$WRAPPER(\n 35,\n 'IRIT',\n 'Irit',\n 'Irit',\n PatchImplementation.HERB,\n ItemID.IRIT_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 36: new Produce_$WRAPPER(\n 36,\n 'AVANTOE',\n 'Avantoe',\n 'Avantoe',\n PatchImplementation.HERB,\n ItemID.AVANTOE,\n 20,\n 5,\n 0,\n 3\n ),\n 37: new Produce_$WRAPPER(\n 37,\n 'KWUARM',\n 'Kwuarm',\n 'Kwuarm',\n PatchImplementation.HERB,\n ItemID.KWUARM,\n 20,\n 5,\n 0,\n 3\n ),\n 38: new Produce_$WRAPPER(\n 38,\n 'SNAPDRAGON',\n 'Snapdragon',\n 'Snapdragon',\n PatchImplementation.HERB,\n ItemID.SNAPDRAGON,\n 20,\n 5,\n 0,\n 3\n ),\n 39: new Produce_$WRAPPER(\n 39,\n 'CADANTINE',\n 'Cadantine',\n 'Cadantine',\n PatchImplementation.HERB,\n ItemID.CADANTINE,\n 20,\n 5,\n 0,\n 3\n ),\n 40: new Produce_$WRAPPER(\n 40,\n 'LANTADYME',\n 'Lantadyme',\n 'Lantadyme',\n PatchImplementation.HERB,\n ItemID.LANTADYME,\n 20,\n 5,\n 0,\n 3\n ),\n 41: new Produce_$WRAPPER(\n 41,\n 'DWARF_WEED',\n 'Dwarf weed',\n 'Dwarf weed',\n PatchImplementation.HERB,\n ItemID.DWARF_WEED,\n 20,\n 5,\n 0,\n 3\n ),\n 42: new Produce_$WRAPPER(\n 42,\n 'TORSTOL',\n 'Torstol',\n 'Torstol',\n PatchImplementation.HERB,\n ItemID.TORSTOL,\n 20,\n 5,\n 0,\n 3\n ),\n 43: new Produce_$WRAPPER(\n 43,\n 'GOUTWEED',\n 'Goutweed',\n 'Goutweed',\n PatchImplementation.HERB,\n ItemID.GOUTWEED,\n 20,\n 5,\n 0,\n 2\n ),\n 44: new Produce_$WRAPPER(\n 44,\n 'ANYHERB',\n 'Any herb',\n 'Any herb',\n PatchImplementation.HERB,\n ItemID.GUAM_LEAF,\n 20,\n 5,\n 0,\n 3\n ),\n 45: new Produce_$WRAPPER(\n 45,\n 'OAK',\n 'Oak',\n 'Oak tree',\n PatchImplementation.TREE,\n ItemID.OAK_LOGS,\n 40,\n 5\n ),\n 46: new Produce_$WRAPPER(\n 46,\n 'WILLOW',\n 'Willow',\n 'Willow tree',\n PatchImplementation.TREE,\n ItemID.WILLOW_LOGS,\n 40,\n 7\n ),\n 47: new Produce_$WRAPPER(\n 47,\n 'MAPLE',\n 'Maple',\n 'Maple tree',\n PatchImplementation.TREE,\n ItemID.MAPLE_LOGS,\n 40,\n 9\n ),\n 48: new Produce_$WRAPPER(\n 48,\n 'YEW',\n 'Yew',\n 'Yew tree',\n PatchImplementation.TREE,\n ItemID.YEW_LOGS,\n 40,\n 11\n ),\n 49: new Produce_$WRAPPER(\n 49,\n 'MAGIC',\n 'Magic',\n 'Magic tree',\n PatchImplementation.TREE,\n ItemID.MAGIC_LOGS,\n 40,\n 13\n ),\n 50: new Produce_$WRAPPER(\n 50,\n 'APPLE',\n 'Apple',\n 'Apple tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.COOKING_APPLE,\n 160,\n 7,\n 45,\n 7\n ),\n 51: new Produce_$WRAPPER(\n 51,\n 'BANANA',\n 'Banana',\n 'Banana tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.BANANA,\n 160,\n 7,\n 45,\n 7\n ),\n 52: new Produce_$WRAPPER(\n 52,\n 'ORANGE',\n 'Orange',\n 'Orange tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.ORANGE,\n 160,\n 7,\n 45,\n 7\n ),\n 53: new Produce_$WRAPPER(\n 53,\n 'CURRY',\n 'Curry',\n 'Curry tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.CURRY_LEAF,\n 160,\n 7,\n 45,\n 7\n ),\n 54: new Produce_$WRAPPER(\n 54,\n 'PINEAPPLE',\n 'Pineapple',\n 'Pineapple plant',\n PatchImplementation.FRUIT_TREE,\n ItemID.PINEAPPLE,\n 160,\n 7,\n 45,\n 7\n ),\n 55: new Produce_$WRAPPER(\n 55,\n 'PAPAYA',\n 'Papaya',\n 'Papaya tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.PAPAYA_FRUIT,\n 160,\n 7,\n 45,\n 7\n ),\n 56: new Produce_$WRAPPER(\n 56,\n 'PALM',\n 'Palm',\n 'Palm tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.COCONUT,\n 160,\n 7,\n 45,\n 7\n ),\n 57: new Produce_$WRAPPER(\n 57,\n 'DRAGONFRUIT',\n 'Dragonfruit',\n 'Dragonfruit tree',\n PatchImplementation.FRUIT_TREE,\n ItemID.DRAGONFRUIT,\n 160,\n 7,\n 45,\n 7\n ),\n 58: new Produce_$WRAPPER(\n 58,\n 'CACTUS',\n 'Cactus',\n 'Cactus',\n PatchImplementation.CACTUS,\n ItemID.CACTUS_SPINE,\n 80,\n 8,\n 20,\n 4\n ),\n 59: new Produce_$WRAPPER(\n 59,\n 'POTATO_CACTUS',\n 'Potato cactus',\n 'Potato cacti',\n PatchImplementation.CACTUS,\n ItemID.POTATO_CACTUS,\n 10,\n 8,\n 5,\n 7\n ),\n 60: new Produce_$WRAPPER(\n 60,\n 'TEAK',\n 'Teak',\n 'Teak',\n PatchImplementation.HARDWOOD_TREE,\n ItemID.TEAK_LOGS,\n 560,\n 8\n ),\n 61: new Produce_$WRAPPER(\n 61,\n 'MAHOGANY',\n 'Mahogany',\n 'Mahogany',\n PatchImplementation.HARDWOOD_TREE,\n ItemID.MAHOGANY_LOGS,\n 640,\n 9\n ),\n 62: new Produce_$WRAPPER(\n 62,\n 'ATTAS',\n 'Attas',\n 'Attas',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22940,\n 640,\n 9\n ),\n 63: new Produce_$WRAPPER(\n 63,\n 'IASOR',\n 'Iasor',\n 'Iasor',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22939,\n 640,\n 9\n ),\n 64: new Produce_$WRAPPER(\n 64,\n 'KRONOS',\n 'Kronos',\n 'Kronos',\n PatchImplementation.ANIMA,\n NullItemID.NULL_22938,\n 640,\n 9\n ),\n 65: new Produce_$WRAPPER(\n 65,\n 'SEAWEED',\n 'Seaweed',\n 'Seaweed',\n PatchImplementation.SEAWEED,\n ItemID.GIANT_SEAWEED,\n 10,\n 5,\n 0,\n 4\n ),\n 66: new Produce_$WRAPPER(\n 66,\n 'GRAPE',\n 'Grape',\n 'Grape',\n PatchImplementation.GRAPES,\n ItemID.GRAPES,\n 5,\n 8,\n 0,\n 5\n ),\n 67: new Produce_$WRAPPER(\n 67,\n 'MUSHROOM',\n 'Mushroom',\n 'Mushroom',\n PatchImplementation.MUSHROOM,\n ItemID.MUSHROOM,\n 40,\n 7,\n 0,\n 7\n ),\n 68: new Produce_$WRAPPER(\n 68,\n 'BELLADONNA',\n 'Belladonna',\n 'Belladonna',\n PatchImplementation.BELLADONNA,\n ItemID.CAVE_NIGHTSHADE,\n 80,\n 5\n ),\n 69: new Produce_$WRAPPER(\n 69,\n 'CALQUAT',\n 'Calquat',\n 'Calquat',\n PatchImplementation.CALQUAT,\n ItemID.CALQUAT_FRUIT,\n 160,\n 9,\n 0,\n 7\n ),\n 70: new Produce_$WRAPPER(\n 70,\n 'SPIRIT_TREE',\n 'Spirit tree',\n 'Spirit tree',\n PatchImplementation.SPIRIT_TREE,\n ItemID.SPIRIT_TREE,\n 320,\n 13\n ),\n 71: new Produce_$WRAPPER(\n 71,\n 'CELASTRUS',\n 'Celastrus',\n 'Celastrus tree',\n PatchImplementation.CELASTRUS,\n ItemID.BATTLESTAFF,\n 160,\n 6,\n 0,\n 4\n ),\n 72: new Produce_$WRAPPER(\n 72,\n 'REDWOOD',\n 'Redwood',\n 'Redwood tree',\n PatchImplementation.REDWOOD,\n ItemID.REDWOOD_LOGS,\n 640,\n 11\n ),\n 73: new Produce_$WRAPPER(\n 73,\n 'HESPORI',\n 'Hespori',\n 'Hespori',\n PatchImplementation.HESPORI,\n NullItemID.NULL_23044,\n 640,\n 4,\n 0,\n 2\n ),\n 74: new Produce_$WRAPPER(\n 74,\n 'CRYSTAL_TREE',\n 'Crystal tree',\n 'Crystal tree',\n PatchImplementation.CRYSTAL_TREE,\n ItemID.CRYSTAL_SHARDS,\n 80,\n 7\n ),\n 75: new Produce_$WRAPPER(\n 75,\n 'EMPTY_COMPOST_BIN',\n 'Compost Bin',\n 'Compost Bin',\n PatchImplementation.COMPOST,\n ItemID.COMPOST_BIN,\n 0,\n 1,\n 0,\n 0\n ),\n 76: new Produce_$WRAPPER(\n 76,\n 'COMPOST',\n 'Compost',\n 'Compost',\n PatchImplementation.COMPOST,\n ItemID.COMPOST,\n 40,\n 3,\n 0,\n 15\n ),\n 77: new Produce_$WRAPPER(\n 77,\n 'SUPERCOMPOST',\n 'Supercompost',\n 'Supercompost',\n PatchImplementation.COMPOST,\n ItemID.SUPERCOMPOST,\n 40,\n 3,\n 0,\n 15\n ),\n 78: new Produce_$WRAPPER(\n 78,\n 'ULTRACOMPOST',\n 'Ultracompost',\n 'Ultracompost',\n PatchImplementation.COMPOST,\n ItemID.ULTRACOMPOST,\n 0,\n 3,\n 0,\n 15\n ),\n 79: new Produce_$WRAPPER(\n 79,\n 'ROTTEN_TOMATO',\n 'Rotten Tomato',\n 'Rotten Tomato',\n PatchImplementation.COMPOST,\n ItemID.ROTTEN_TOMATO,\n 40,\n 3,\n 0,\n 15\n ),\n 80: new Produce_$WRAPPER(\n 80,\n 'EMPTY_GIANT_COMPOST_BIN',\n 'Giant Compost Bin',\n 'Giant Compost Bin',\n PatchImplementation.COMPOST,\n ItemID.COMPOST_BIN,\n 0,\n 1,\n 0,\n 0\n ),\n 81: new Produce_$WRAPPER(\n 81,\n 'GIANT_COMPOST',\n 'Compost',\n 'Compost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.COMPOST,\n 40,\n 3,\n 0,\n 30\n ),\n 82: new Produce_$WRAPPER(\n 82,\n 'GIANT_SUPERCOMPOST',\n 'Supercompost',\n 'Supercompost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.SUPERCOMPOST,\n 40,\n 3,\n 0,\n 30\n ),\n 83: new Produce_$WRAPPER(\n 83,\n 'GIANT_ULTRACOMPOST',\n 'Ultracompost',\n 'Ultracompost',\n PatchImplementation.GIANT_COMPOST,\n ItemID.ULTRACOMPOST,\n 0,\n 3,\n 0,\n 30\n ),\n 84: new Produce_$WRAPPER(\n 84,\n 'GIANT_ROTTEN_TOMATO',\n 'Rotten Tomato',\n 'Rotten Tomato',\n PatchImplementation.GIANT_COMPOST,\n ItemID.ROTTEN_TOMATO,\n 40,\n 3,\n 0,\n 30\n )\n }\n})(PatchImplementation || (PatchImplementation = {}))\n;(function (PatchImplementation) {\n /** @ignore */\n class Produce_$WRAPPER {\n constructor(\n _$ordinal,\n _$name,\n name,\n contractName,\n patchImplementation,\n itemID,\n tickrate,\n stages,\n regrowTickrate,\n harvestStages\n ) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n (typeof regrowTickrate === 'number' || regrowTickrate === null) &&\n (typeof harvestStages === 'number' || harvestStages === null)\n ) {\n let __args = arguments\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n } else if (\n (typeof name === 'string' || name === null) &&\n (typeof contractName === 'string' || contractName === null) &&\n (typeof patchImplementation === 'number' ||\n patchImplementation === null) &&\n (typeof itemID === 'number' || itemID === null) &&\n (typeof tickrate === 'number' || tickrate === null) &&\n (typeof stages === 'number' || stages === null) &&\n regrowTickrate === undefined &&\n harvestStages === undefined\n ) {\n let __args = arguments\n {\n let __args = arguments\n let regrowTickrate = 0\n let harvestStages = 1\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n this.__name = name\n this.contractName = contractName\n this.patchImplementation = patchImplementation\n this.itemID = itemID\n this.tickrate = tickrate\n this.stages = stages\n this.regrowTickrate = regrowTickrate\n this.harvestStages = harvestStages\n }\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.contractName === undefined) {\n this.contractName = null\n }\n if (this.patchImplementation === undefined) {\n this.patchImplementation = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n if (this.tickrate === undefined) {\n this.tickrate = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n if (this.regrowTickrate === undefined) {\n this.regrowTickrate = 0\n }\n if (this.harvestStages === undefined) {\n this.harvestStages = 0\n }\n } else throw new Error('invalid overload')\n }\n getName() {\n return this.__name\n }\n getContractName() {\n return this.contractName\n }\n getItemID() {\n return this.itemID\n }\n getTickrate() {\n return this.tickrate\n }\n getStages() {\n return this.stages\n }\n getRegrowTickrate() {\n return this.regrowTickrate\n }\n getHarvestStages() {\n return this.harvestStages\n }\n getPatchImplementation() {\n return this.patchImplementation\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n }\n PatchImplementation.Produce_$WRAPPER = Produce_$WRAPPER\n PatchImplementation.Produce['__class'] =\n 'timetracking.PatchImplementation.Produce'\n PatchImplementation.Produce['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n ]\n /** @ignore */\n class PatchImplementation$0_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.GROWING,\n value - 4\n )\n }\n if (value === 8) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 9 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.DISEASED,\n value - 8\n )\n }\n if (value >= 12 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.BELLADONNA,\n CropState.DEAD,\n value - 11\n )\n }\n if (value >= 15 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$0_$WRAPPER = PatchImplementation$0_$WRAPPER\n /** @ignore */\n class PatchImplementation$1_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 10 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 16 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.DISEASED,\n value - 15\n )\n }\n if (value >= 21 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.MUSHROOM,\n CropState.DEAD,\n value - 20\n )\n }\n if (value >= 26 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$1_$WRAPPER = PatchImplementation$1_$WRAPPER\n /** @ignore */\n class PatchImplementation$2_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 6) {\n return new PatchState(\n PatchImplementation.Produce.HESPORI,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 7 && value <= 8) {\n return new PatchState(\n PatchImplementation.Produce.HESPORI,\n CropState.HARVESTABLE,\n value - 7\n )\n }\n if (value === 9) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$2_$WRAPPER = PatchImplementation$2_$WRAPPER\n /** @ignore */\n class PatchImplementation$3_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 5) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 6 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.GROWING,\n value - 6\n )\n }\n if (value >= 10 && value <= 12) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 13 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.GROWING,\n value - 13\n )\n }\n if (value >= 17 && value <= 19) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.HARVESTABLE,\n value - 17\n )\n }\n if (value >= 20 && value <= 23) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.GROWING,\n value - 20\n )\n }\n if (value >= 24 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.HARVESTABLE,\n value - 24\n )\n }\n if (value >= 27 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.GROWING,\n value - 27\n )\n }\n if (value >= 31 && value <= 33) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.HARVESTABLE,\n value - 31\n )\n }\n if (value >= 34 && value <= 39) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.GROWING,\n value - 34\n )\n }\n if (value >= 40 && value <= 42) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.HARVESTABLE,\n value - 40\n )\n }\n if (value >= 43 && value <= 48) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.GROWING,\n value - 43\n )\n }\n if (value >= 49 && value <= 51) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.HARVESTABLE,\n value - 49\n )\n }\n if (value >= 52 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.GROWING,\n value - 52\n )\n }\n if (value >= 60 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.HARVESTABLE,\n value - 60\n )\n }\n if (value >= 63 && value <= 69) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.GROWING,\n value - 63\n )\n }\n if (value >= 70 && value <= 73) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.GROWING,\n value - 70\n )\n }\n if (value >= 74 && value <= 76) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 77 && value <= 80) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.GROWING,\n value - 77\n )\n }\n if (value >= 81 && value <= 83) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 84 && value <= 87) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.GROWING,\n value - 84\n )\n }\n if (value >= 88 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 91 && value <= 94) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.GROWING,\n value - 91\n )\n }\n if (value >= 95 && value <= 97) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 98 && value <= 103) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.GROWING,\n value - 98\n )\n }\n if (value >= 104 && value <= 106) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 107 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.GROWING,\n value - 107\n )\n }\n if (value >= 113 && value <= 115) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 116 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.GROWING,\n value - 116\n )\n }\n if (value >= 124 && value <= 127) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 128 && value <= 134) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.GROWING,\n value - 128\n )\n }\n if (value >= 135 && value <= 137) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.DISEASED,\n value - 134\n )\n }\n if (value >= 138 && value <= 140) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.HARVESTABLE,\n value - 138\n )\n }\n if (value === 141) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 142 && value <= 144) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.DISEASED,\n value - 141\n )\n }\n if (value >= 145 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 149 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 152 && value <= 155) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 156 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.DISEASED,\n value - 155\n )\n }\n if (value >= 159 && value <= 162) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 163 && value <= 167) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.DISEASED,\n value - 162\n )\n }\n if (value >= 168 && value <= 171) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 172 && value <= 176) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.DISEASED,\n value - 171\n )\n }\n if (value >= 177 && value <= 180) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 181 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.DISEASED,\n value - 180\n )\n }\n if (value >= 188 && value <= 192) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 193 && value <= 195) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DEAD,\n value - 192\n )\n }\n if (value >= 196 && value <= 198) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DISEASED,\n value - 195\n )\n }\n if (value >= 199 && value <= 201) {\n return new PatchState(\n PatchImplementation.Produce.POTATO,\n CropState.DEAD,\n value - 198\n )\n }\n if (value >= 202 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DISEASED,\n 3 + value - 201\n )\n }\n if (value === 205) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 206 && value <= 208) {\n return new PatchState(\n PatchImplementation.Produce.ONION,\n CropState.DEAD,\n value - 205\n )\n }\n if (value >= 209 && value <= 211) {\n return new PatchState(\n PatchImplementation.Produce.SNAPE_GRASS,\n CropState.DEAD,\n 3 + value - 208\n )\n }\n if (value === 212) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 213 && value <= 215) {\n return new PatchState(\n PatchImplementation.Produce.CABBAGE,\n CropState.DEAD,\n value - 212\n )\n }\n if (value >= 216 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 220 && value <= 222) {\n return new PatchState(\n PatchImplementation.Produce.TOMATO,\n CropState.DEAD,\n value - 219\n )\n }\n if (value >= 223 && value <= 226) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 227 && value <= 231) {\n return new PatchState(\n PatchImplementation.Produce.SWEETCORN,\n CropState.DEAD,\n value - 226\n )\n }\n if (value >= 232 && value <= 235) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 236 && value <= 240) {\n return new PatchState(\n PatchImplementation.Produce.STRAWBERRY,\n CropState.DEAD,\n value - 235\n )\n }\n if (value >= 241 && value <= 244) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 245 && value <= 251) {\n return new PatchState(\n PatchImplementation.Produce.WATERMELON,\n CropState.DEAD,\n value - 244\n )\n }\n if (value >= 252 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$3_$WRAPPER = PatchImplementation$3_$WRAPPER\n /** @ignore */\n class PatchImplementation$4_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.HARVESTABLE,\n 10 - value\n )\n }\n if (value >= 11 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.GROWING,\n value - 11\n )\n }\n if (value >= 15 && value <= 17) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.HARVESTABLE,\n 17 - value\n )\n }\n if (value >= 18 && value <= 21) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.GROWING,\n value - 18\n )\n }\n if (value >= 22 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.HARVESTABLE,\n 24 - value\n )\n }\n if (value >= 25 && value <= 28) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.GROWING,\n value - 25\n )\n }\n if (value >= 29 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.HARVESTABLE,\n 31 - value\n )\n }\n if (value >= 32 && value <= 35) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.GROWING,\n value - 32\n )\n }\n if (value >= 36 && value <= 38) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.HARVESTABLE,\n 38 - value\n )\n }\n if (value >= 39 && value <= 42) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.GROWING,\n value - 39\n )\n }\n if (value >= 43 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.HARVESTABLE,\n 45 - value\n )\n }\n if (value >= 46 && value <= 49) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.GROWING,\n value - 46\n )\n }\n if (value >= 50 && value <= 52) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.HARVESTABLE,\n 52 - value\n )\n }\n if (value >= 53 && value <= 56) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.GROWING,\n value - 53\n )\n }\n if (value >= 57 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.HARVESTABLE,\n 59 - value\n )\n }\n if (value >= 60 && value <= 67) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 68 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.GROWING,\n value - 68\n )\n }\n if (value >= 72 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.HARVESTABLE,\n 74 - value\n )\n }\n if (value >= 75 && value <= 78) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.GROWING,\n value - 75\n )\n }\n if (value >= 79 && value <= 81) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.HARVESTABLE,\n 81 - value\n )\n }\n if (value >= 82 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.GROWING,\n value - 82\n )\n }\n if (value >= 86 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.HARVESTABLE,\n 88 - value\n )\n }\n if (value >= 89 && value <= 92) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.GROWING,\n value - 89\n )\n }\n if (value >= 93 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.HARVESTABLE,\n 95 - value\n )\n }\n if (value >= 96 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.GROWING,\n value - 96\n )\n }\n if (value >= 100 && value <= 102) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.HARVESTABLE,\n 102 - value\n )\n }\n if (value >= 103 && value <= 106) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.GROWING,\n value - 103\n )\n }\n if (value >= 107 && value <= 109) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.HARVESTABLE,\n 109 - value\n )\n }\n if (value >= 128 && value <= 130) {\n return new PatchState(\n PatchImplementation.Produce.GUAM,\n CropState.DISEASED,\n value - 127\n )\n }\n if (value >= 131 && value <= 133) {\n return new PatchState(\n PatchImplementation.Produce.MARRENTILL,\n CropState.DISEASED,\n value - 130\n )\n }\n if (value >= 134 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.TARROMIN,\n CropState.DISEASED,\n value - 133\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.HARRALANDER,\n CropState.DISEASED,\n value - 136\n )\n }\n if (value >= 140 && value <= 142) {\n return new PatchState(\n PatchImplementation.Produce.RANARR,\n CropState.DISEASED,\n value - 139\n )\n }\n if (value >= 143 && value <= 145) {\n return new PatchState(\n PatchImplementation.Produce.TOADFLAX,\n CropState.DISEASED,\n value - 142\n )\n }\n if (value >= 146 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.IRIT,\n CropState.DISEASED,\n value - 145\n )\n }\n if (value >= 149 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.AVANTOE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 152 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.KWUARM,\n CropState.DISEASED,\n value - 151\n )\n }\n if (value >= 155 && value <= 157) {\n return new PatchState(\n PatchImplementation.Produce.SNAPDRAGON,\n CropState.DISEASED,\n value - 154\n )\n }\n if (value >= 158 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.CADANTINE,\n CropState.DISEASED,\n value - 157\n )\n }\n if (value >= 161 && value <= 163) {\n return new PatchState(\n PatchImplementation.Produce.LANTADYME,\n CropState.DISEASED,\n value - 160\n )\n }\n if (value >= 164 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.DWARF_WEED,\n CropState.DISEASED,\n value - 163\n )\n }\n if (value >= 167 && value <= 169) {\n return new PatchState(\n PatchImplementation.Produce.TORSTOL,\n CropState.DISEASED,\n value - 166\n )\n }\n if (value >= 170 && value <= 172) {\n return new PatchState(\n PatchImplementation.Produce.ANYHERB,\n CropState.DEAD,\n value - 169\n )\n }\n if (value >= 173 && value <= 191) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 192 && value <= 195) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.GROWING,\n value - 192\n )\n }\n if (value >= 196 && value <= 197) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.HARVESTABLE,\n 197 - value\n )\n }\n if (value >= 198 && value <= 200) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.DISEASED,\n value - 197\n )\n }\n if (value >= 201 && value <= 203) {\n return new PatchState(\n PatchImplementation.Produce.GOUTWEED,\n CropState.DEAD,\n value - 200\n )\n }\n if (value >= 204 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$4_$WRAPPER = PatchImplementation$4_$WRAPPER\n /** @ignore */\n class PatchImplementation$5_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 12) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 13 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.GROWING,\n value - 13\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 21) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.GROWING,\n value - 18\n )\n }\n if (value === 22) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 23 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.GROWING,\n value - 23\n )\n }\n if (value === 27) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 28 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.GROWING,\n value - 28\n )\n }\n if (value === 32) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 33 && value <= 35) {\n return new PatchState(\n PatchImplementation.Produce.SCARECROW,\n CropState.GROWING,\n 35 - value\n )\n }\n if (value === 36) {\n return new PatchState(\n PatchImplementation.Produce.SCARECROW,\n CropState.GROWING,\n 0\n )\n }\n if (value >= 37 && value <= 40) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.GROWING,\n value - 37\n )\n }\n if (value === 41) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 42 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 72 && value <= 75) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.GROWING,\n value - 72\n )\n }\n if (value === 76) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 77 && value <= 80) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.GROWING,\n value - 77\n )\n }\n if (value === 81) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 82 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.GROWING,\n value - 82\n )\n }\n if (value === 86) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 87 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.GROWING,\n value - 87\n )\n }\n if (value === 91) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 92 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.GROWING,\n value - 92\n )\n }\n if (value >= 96 && value <= 100) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 101 && value <= 104) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.GROWING,\n value - 101\n )\n }\n if (value >= 105 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.DISEASED,\n value - 136\n )\n }\n if (value >= 140 && value <= 141) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 142 && value <= 144) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.DISEASED,\n value - 141\n )\n }\n if (value >= 145 && value <= 146) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 147 && value <= 149) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.DISEASED,\n value - 146\n )\n }\n if (value >= 150 && value <= 151) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 152 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.DISEASED,\n value - 151\n )\n }\n if (value >= 155 && value <= 156) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 157 && value <= 159) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.DISEASED,\n value - 156\n )\n }\n if (value >= 160 && value <= 165) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 166 && value <= 168) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.DISEASED,\n value - 165\n )\n }\n if (value >= 169 && value <= 200) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 201 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.MARIGOLD,\n CropState.DEAD,\n value - 200\n )\n }\n if (value === 205) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 206 && value <= 209) {\n return new PatchState(\n PatchImplementation.Produce.ROSEMARY,\n CropState.DEAD,\n value - 205\n )\n }\n if (value === 210) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 211 && value <= 214) {\n return new PatchState(\n PatchImplementation.Produce.NASTURTIUM,\n CropState.DEAD,\n value - 210\n )\n }\n if (value === 215) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 216 && value <= 219) {\n return new PatchState(\n PatchImplementation.Produce.WOAD,\n CropState.DEAD,\n value - 215\n )\n }\n if (value === 220) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.LIMPWURT,\n CropState.DEAD,\n value - 220\n )\n }\n if (value >= 225 && value <= 229) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 230 && value <= 233) {\n return new PatchState(\n PatchImplementation.Produce.WHITE_LILY,\n CropState.DEAD,\n value - 229\n )\n }\n if (value >= 234 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$5_$WRAPPER = PatchImplementation$5_$WRAPPER\n /** @ignore */\n class PatchImplementation$6_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value === 4) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 5 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.GROWING,\n value - 5\n )\n }\n if (value >= 10 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.HARVESTABLE,\n value - 10\n )\n }\n if (value >= 15 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.GROWING,\n value - 15\n )\n }\n if (value >= 21 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.HARVESTABLE,\n value - 21\n )\n }\n if (value >= 26 && value <= 32) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.GROWING,\n value - 26\n )\n }\n if (value >= 33 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.HARVESTABLE,\n value - 33\n )\n }\n if (value >= 38 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.GROWING,\n value - 38\n )\n }\n if (value >= 46 && value <= 50) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.HARVESTABLE,\n value - 46\n )\n }\n if (value >= 51 && value <= 58) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.GROWING,\n value - 51\n )\n }\n if (value >= 59 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.HARVESTABLE,\n value - 59\n )\n }\n if (value >= 64 && value <= 69) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 70 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.DISEASED,\n value - 69\n )\n }\n if (value >= 75 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 80 && value <= 85) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.DISEASED,\n value - 79\n )\n }\n if (value >= 86 && value <= 90) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 91 && value <= 97) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.DISEASED,\n value - 90\n )\n }\n if (value >= 98 && value <= 102) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 103 && value <= 110) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.DISEASED,\n value - 102\n )\n }\n if (value >= 111 && value <= 115) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 116 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.DISEASED,\n value - 115\n )\n }\n if (value >= 124 && value <= 133) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 134 && value <= 138) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.DEAD,\n value - 133\n )\n }\n if (value >= 139 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 144 && value <= 149) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.DEAD,\n value - 143\n )\n }\n if (value >= 150 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 155 && value <= 161) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.DEAD,\n value - 154\n )\n }\n if (value >= 162 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 167 && value <= 174) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.DEAD,\n value - 166\n )\n }\n if (value >= 175 && value <= 179) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 180 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.DEAD,\n value - 179\n )\n }\n if (value >= 188 && value <= 196) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 197 && value <= 204) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.GROWING,\n value - 197\n )\n }\n if (value >= 205 && value <= 209) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.HARVESTABLE,\n value - 205\n )\n }\n if (value >= 210 && value <= 216) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DISEASED,\n value - 209\n )\n }\n if (value >= 217 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DEAD,\n value - 216\n )\n }\n if (value === 225) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.DISEASED,\n 8\n )\n }\n if (value >= 226 && value <= 249) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value === 250) {\n return new PatchState(\n PatchImplementation.Produce.REDBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.REDBERRIES\n ].getStages() - 1\n )\n }\n if (value === 251) {\n return new PatchState(\n PatchImplementation.Produce.CADAVABERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CADAVABERRIES\n ].getStages() - 1\n )\n }\n if (value === 252) {\n return new PatchState(\n PatchImplementation.Produce.DWELLBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.DWELLBERRIES\n ].getStages() - 1\n )\n }\n if (value === 253) {\n return new PatchState(\n PatchImplementation.Produce.JANGERBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.JANGERBERRIES\n ].getStages() - 1\n )\n }\n if (value === 254) {\n return new PatchState(\n PatchImplementation.Produce.WHITEBERRIES,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.WHITEBERRIES\n ].getStages() - 1\n )\n }\n if (value === 255) {\n return new PatchState(\n PatchImplementation.Produce.POISON_IVY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.POISON_IVY\n ].getStages() - 1\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$6_$WRAPPER = PatchImplementation$6_$WRAPPER\n /** @ignore */\n class PatchImplementation$7_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 14 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.HARVESTABLE,\n value - 14\n )\n }\n if (value >= 21 && value <= 26) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.DISEASED,\n value - 20\n )\n }\n if (value >= 27 && value <= 32) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.DEAD,\n value - 26\n )\n }\n if (value === 33) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.APPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.APPLE\n ].getStages() - 1\n )\n }\n if (value >= 35 && value <= 40) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.GROWING,\n value - 35\n )\n }\n if (value >= 41 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.HARVESTABLE,\n value - 41\n )\n }\n if (value >= 48 && value <= 53) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.DISEASED,\n value - 47\n )\n }\n if (value >= 54 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.DEAD,\n value - 53\n )\n }\n if (value === 60) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 61) {\n return new PatchState(\n PatchImplementation.Produce.BANANA,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.BANANA\n ].getStages() - 1\n )\n }\n if (value >= 62 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 72 && value <= 77) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.GROWING,\n value - 72\n )\n }\n if (value >= 78 && value <= 84) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.HARVESTABLE,\n value - 78\n )\n }\n if (value >= 85 && value <= 89) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DISEASED,\n value - 84\n )\n }\n if (value === 90) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DISEASED,\n 6\n )\n }\n if (value >= 91 && value <= 96) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.DEAD,\n value - 90\n )\n }\n if (value === 97) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 98) {\n return new PatchState(\n PatchImplementation.Produce.ORANGE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.ORANGE\n ].getStages() - 1\n )\n }\n if (value >= 99 && value <= 104) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.GROWING,\n value - 99\n )\n }\n if (value >= 105 && value <= 111) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.HARVESTABLE,\n value - 105\n )\n }\n if (value >= 112 && value <= 117) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.DISEASED,\n value - 111\n )\n }\n if (value >= 118 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.DEAD,\n value - 117\n )\n }\n if (value === 124) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 125) {\n return new PatchState(\n PatchImplementation.Produce.CURRY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CURRY\n ].getStages() - 1\n )\n }\n if (value >= 126 && value <= 135) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 136 && value <= 141) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.GROWING,\n value - 136\n )\n }\n if (value >= 142 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.HARVESTABLE,\n value - 142\n )\n }\n if (value >= 149 && value <= 154) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.DISEASED,\n value - 148\n )\n }\n if (value >= 155 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.DEAD,\n value - 154\n )\n }\n if (value === 161) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 162) {\n return new PatchState(\n PatchImplementation.Produce.PINEAPPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PINEAPPLE\n ].getStages() - 1\n )\n }\n if (value >= 163 && value <= 168) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.GROWING,\n value - 163\n )\n }\n if (value >= 169 && value <= 175) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.HARVESTABLE,\n value - 169\n )\n }\n if (value >= 176 && value <= 181) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.DISEASED,\n value - 175\n )\n }\n if (value >= 182 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.DEAD,\n value - 181\n )\n }\n if (value === 188) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 189) {\n return new PatchState(\n PatchImplementation.Produce.PAPAYA,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PAPAYA\n ].getStages() - 1\n )\n }\n if (value >= 190 && value <= 199) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 200 && value <= 205) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.GROWING,\n value - 200\n )\n }\n if (value >= 206 && value <= 212) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.HARVESTABLE,\n value - 206\n )\n }\n if (value >= 213 && value <= 218) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.DISEASED,\n value - 212\n )\n }\n if (value >= 219 && value <= 224) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.DEAD,\n value - 218\n )\n }\n if (value === 225) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 226) {\n return new PatchState(\n PatchImplementation.Produce.PALM,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.PALM\n ].getStages() - 1\n )\n }\n if (value >= 227 && value <= 232) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.GROWING,\n value - 227\n )\n }\n if (value >= 233 && value <= 239) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.HARVESTABLE,\n value - 233\n )\n }\n if (value >= 240 && value <= 245) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.DISEASED,\n value - 239\n )\n }\n if (value >= 246 && value <= 251) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.DEAD,\n value - 245\n )\n }\n if (value === 252) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 253) {\n return new PatchState(\n PatchImplementation.Produce.DRAGONFRUIT,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.DRAGONFRUIT\n ].getStages() - 1\n )\n }\n if (value >= 254 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$7_$WRAPPER = PatchImplementation$7_$WRAPPER\n /** @ignore */\n class PatchImplementation$8_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.HARVESTABLE,\n value - 8\n )\n }\n if (value >= 11 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.GROWING,\n value - 11\n )\n }\n if (value >= 16 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value >= 19 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.GROWING,\n value - 19\n )\n }\n if (value >= 25 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.HARVESTABLE,\n value - 25\n )\n }\n if (value >= 28 && value <= 34) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.GROWING,\n value - 28\n )\n }\n if (value >= 35 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.HARVESTABLE,\n value - 35\n )\n }\n if (value >= 38 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.GROWING,\n value - 38\n )\n }\n if (value >= 46 && value <= 48) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.HARVESTABLE,\n value - 46\n )\n }\n if (value >= 49 && value <= 52) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.GROWING,\n value - 49\n )\n }\n if (value >= 53 && value <= 55) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.HARVESTABLE,\n value - 53\n )\n }\n if (value >= 56 && value <= 60) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.GROWING,\n value - 56\n )\n }\n if (value >= 61 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.HARVESTABLE,\n value - 61\n )\n }\n if (value >= 64 && value <= 67) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 68 && value <= 71) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.GROWING,\n value - 68\n )\n }\n if (value >= 72 && value <= 74) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 75 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.GROWING,\n value - 75\n )\n }\n if (value >= 80 && value <= 82) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 83 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.GROWING,\n value - 83\n )\n }\n if (value >= 89 && value <= 91) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 92 && value <= 98) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.GROWING,\n value - 92\n )\n }\n if (value >= 99 && value <= 101) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 102 && value <= 109) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.GROWING,\n value - 102\n )\n }\n if (value >= 110 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 113 && value <= 116) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.GROWING,\n value - 113\n )\n }\n if (value >= 117 && value <= 119) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 120 && value <= 124) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.GROWING,\n value - 120\n )\n }\n if (value >= 125 && value <= 132) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 133 && value <= 135) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.DISEASED,\n value - 132\n )\n }\n if (value >= 136 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 140 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.DISEASED,\n value - 139\n )\n }\n if (value >= 144 && value <= 147) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 148 && value <= 152) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.DISEASED,\n value - 147\n )\n }\n if (value >= 153 && value <= 156) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 157 && value <= 162) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.DISEASED,\n value - 156\n )\n }\n if (value >= 163 && value <= 166) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 167 && value <= 173) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.DISEASED,\n value - 166\n )\n }\n if (value >= 174 && value <= 177) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 178 && value <= 180) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.DISEASED,\n value - 177\n )\n }\n if (value === 181) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 183 && value <= 184) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 185 && value <= 188) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.DISEASED,\n value - 184\n )\n }\n if (value >= 189 && value <= 196) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 197 && value <= 199) {\n return new PatchState(\n PatchImplementation.Produce.HAMMERSTONE,\n CropState.DEAD,\n value - 196\n )\n }\n if (value >= 200 && value <= 203) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 204 && value <= 207) {\n return new PatchState(\n PatchImplementation.Produce.ASGARNIAN,\n CropState.DEAD,\n value - 203\n )\n }\n if (value >= 208 && value <= 211) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 212 && value <= 216) {\n return new PatchState(\n PatchImplementation.Produce.YANILLIAN,\n CropState.DEAD,\n value - 211\n )\n }\n if (value >= 217 && value <= 220) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 221 && value <= 226) {\n return new PatchState(\n PatchImplementation.Produce.KRANDORIAN,\n CropState.DEAD,\n value - 220\n )\n }\n if (value >= 227 && value <= 230) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 231 && value <= 237) {\n return new PatchState(\n PatchImplementation.Produce.WILDBLOOD,\n CropState.DEAD,\n value - 230\n )\n }\n if (value >= 238 && value <= 241) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 242 && value <= 244) {\n return new PatchState(\n PatchImplementation.Produce.BARLEY,\n CropState.DEAD,\n value - 241\n )\n }\n if (value >= 245 && value <= 248) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 249 && value <= 252) {\n return new PatchState(\n PatchImplementation.Produce.JUTE,\n CropState.DEAD,\n value - 248\n )\n }\n if (value >= 253 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$8_$WRAPPER = PatchImplementation$8_$WRAPPER\n /** @ignore */\n class PatchImplementation$9_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 12) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.OAK\n ].getStages() - 1\n )\n }\n if (value === 13) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 14) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 15 && value <= 20) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.GROWING,\n value - 15\n )\n }\n if (value === 21) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.WILLOW\n ].getStages() - 1\n )\n }\n if (value === 22) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 23) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 24 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.GROWING,\n value - 24\n )\n }\n if (value === 32) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAPLE\n ].getStages() - 1\n )\n }\n if (value === 33) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 35 && value <= 44) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.GROWING,\n value - 35\n )\n }\n if (value === 45) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.YEW\n ].getStages() - 1\n )\n }\n if (value === 46) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 47) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 48 && value <= 59) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.GROWING,\n value - 48\n )\n }\n if (value === 60) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAGIC\n ].getStages() - 1\n )\n }\n if (value === 61) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 62) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 63 && value <= 72) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 73 && value <= 75) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DISEASED,\n value - 72\n )\n }\n if (value === 77) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DISEASED,\n 4\n )\n }\n if (value >= 78 && value <= 79) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 80 && value <= 84) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DISEASED,\n value - 79\n )\n }\n if (value === 86) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DISEASED,\n 6\n )\n }\n if (value >= 87 && value <= 88) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 89 && value <= 95) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DISEASED,\n value - 88\n )\n }\n if (value === 97) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DISEASED,\n 8\n )\n }\n if (value >= 98 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 100 && value <= 108) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DISEASED,\n value - 99\n )\n }\n if (value === 110) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DISEASED,\n 10\n )\n }\n if (value >= 111 && value <= 112) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 113 && value <= 123) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DISEASED,\n value - 112\n )\n }\n if (value === 125) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DISEASED,\n 12\n )\n }\n if (value >= 126 && value <= 136) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 137 && value <= 139) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DEAD,\n value - 136\n )\n }\n if (value === 141) {\n return new PatchState(\n PatchImplementation.Produce.OAK,\n CropState.DEAD,\n 4\n )\n }\n if (value >= 142 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 144 && value <= 148) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DEAD,\n value - 143\n )\n }\n if (value === 150) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.DEAD,\n 6\n )\n }\n if (value >= 151 && value <= 152) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 153 && value <= 159) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DEAD,\n value - 152\n )\n }\n if (value === 161) {\n return new PatchState(\n PatchImplementation.Produce.MAPLE,\n CropState.DEAD,\n 8\n )\n }\n if (value >= 162 && value <= 163) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 164 && value <= 172) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DEAD,\n value - 163\n )\n }\n if (value === 174) {\n return new PatchState(\n PatchImplementation.Produce.YEW,\n CropState.DEAD,\n 10\n )\n }\n if (value >= 175 && value <= 176) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 177 && value <= 187) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DEAD,\n value - 176\n )\n }\n if (value === 189) {\n return new PatchState(\n PatchImplementation.Produce.MAGIC,\n CropState.DEAD,\n 12\n )\n }\n if (value >= 190 && value <= 191) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 192 && value <= 197) {\n return new PatchState(\n PatchImplementation.Produce.WILLOW,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 198 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$9_$WRAPPER = PatchImplementation$9_$WRAPPER\n /** @ignore */\n class PatchImplementation$10_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 15) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.TEAK\n ].getStages() - 1\n )\n }\n if (value === 16) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 23) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.DISEASED,\n value - 17\n )\n }\n if (value >= 24 && value <= 29) {\n return new PatchState(\n PatchImplementation.Produce.TEAK,\n CropState.DEAD,\n value - 23\n )\n }\n if (value >= 30 && value <= 37) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.GROWING,\n value - 30\n )\n }\n if (value === 38) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.MAHOGANY\n ].getStages() - 1\n )\n }\n if (value === 39) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value === 40) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 41 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.DISEASED,\n value - 40\n )\n }\n if (value >= 48 && value <= 54) {\n return new PatchState(\n PatchImplementation.Produce.MAHOGANY,\n CropState.DEAD,\n value - 47\n )\n }\n if (value >= 55 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$10_$WRAPPER = PatchImplementation$10_$WRAPPER\n /** @ignore */\n class PatchImplementation$11_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 17) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 18) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 19 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 28 && value <= 36) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.DEAD,\n value - 27\n )\n }\n if (value === 37) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.REDWOOD\n ].getStages() - 1\n )\n }\n if (value >= 41 && value <= 55) {\n return new PatchState(\n PatchImplementation.Produce.REDWOOD,\n CropState.HARVESTABLE,\n 0\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$11_$WRAPPER = PatchImplementation$11_$WRAPPER\n /** @ignore */\n class PatchImplementation$12_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 19) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 20) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n 12\n )\n }\n if (value >= 21 && value <= 31) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.DISEASED,\n value - 20\n )\n }\n if (value >= 32 && value <= 43) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.DEAD,\n value - 31\n )\n }\n if (value === 44) {\n return new PatchState(\n PatchImplementation.Produce.SPIRIT_TREE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.SPIRIT_TREE\n ].getStages() - 1\n )\n }\n if (value >= 45 && value <= 63) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$12_$WRAPPER = PatchImplementation$12_$WRAPPER\n /** @ignore */\n class PatchImplementation$13_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.ATTAS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 17 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.IASOR,\n CropState.GROWING,\n value - 17\n )\n }\n if (value >= 26 && value <= 34) {\n return new PatchState(\n PatchImplementation.Produce.KRONOS,\n CropState.GROWING,\n value - 26\n )\n }\n if (value >= 35 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$13_$WRAPPER = PatchImplementation$13_$WRAPPER\n /** @ignore */\n class PatchImplementation$14_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 14) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value >= 15 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.HARVESTABLE,\n value - 15\n )\n }\n if (value >= 19 && value <= 24) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 25 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.DEAD,\n value - 24\n )\n }\n if (value === 31) {\n return new PatchState(\n PatchImplementation.Produce.CACTUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CACTUS\n ].getStages() - 1\n )\n }\n if (value >= 32 && value <= 38) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.GROWING,\n value - 32\n )\n }\n if (value >= 39 && value <= 45) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.HARVESTABLE,\n value - 39\n )\n }\n if (value >= 46 && value <= 51) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.DISEASED,\n value - 45\n )\n }\n if (value >= 52 && value <= 57) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.DEAD,\n value - 51\n )\n }\n if (value === 58) {\n return new PatchState(\n PatchImplementation.Produce.POTATO_CACTUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.POTATO_CACTUS\n ].getStages() - 1\n )\n }\n if (value >= 59 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$14_$WRAPPER = PatchImplementation$14_$WRAPPER\n /** @ignore */\n class PatchImplementation$15_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 8 && value <= 10) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.HARVESTABLE,\n value - 8\n )\n }\n if (value >= 11 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.DISEASED,\n value - 10\n )\n }\n if (value >= 14 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.SEAWEED,\n CropState.DEAD,\n value - 13\n )\n }\n if (value >= 17 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$15_$WRAPPER = PatchImplementation$15_$WRAPPER\n /** @ignore */\n class PatchImplementation$16_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 11) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.GROWING,\n value - 4\n )\n }\n if (value >= 12 && value <= 18) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.HARVESTABLE,\n value - 12\n )\n }\n if (value >= 19 && value <= 25) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.DISEASED,\n value - 18\n )\n }\n if (value >= 26 && value <= 33) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.DEAD,\n value - 25\n )\n }\n if (value === 34) {\n return new PatchState(\n PatchImplementation.Produce.CALQUAT,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CALQUAT\n ].getStages() - 1\n )\n }\n if (value >= 35 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$16_$WRAPPER = PatchImplementation$16_$WRAPPER\n /** @ignore */\n class PatchImplementation$17_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 4 && value <= 7) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 8 && value <= 12) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 13) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CELASTRUS\n ].getStages() - 1\n )\n }\n if (value >= 14 && value <= 16) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n value - 14\n )\n }\n if (value === 17) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 18 && value <= 22) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.DISEASED,\n value - 17\n )\n }\n if (value >= 23 && value <= 27) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.DEAD,\n value - 22\n )\n }\n if (value === 28) {\n return new PatchState(\n PatchImplementation.Produce.CELASTRUS,\n CropState.HARVESTABLE,\n 0\n )\n }\n if (value >= 29 && value <= 255) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$17_$WRAPPER = PatchImplementation$17_$WRAPPER\n /** @ignore */\n class PatchImplementation$18_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 1) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3\n )\n }\n if (value >= 2 && value <= 9) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.GROWING,\n value - 2\n )\n }\n if (value === 10) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.GROWING,\n 7\n )\n }\n if (value >= 11 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.GRAPE,\n CropState.HARVESTABLE,\n value - 11\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$18_$WRAPPER = PatchImplementation$18_$WRAPPER\n /** @ignore */\n class PatchImplementation$19_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value >= 0 && value <= 3) {\n return new PatchState(\n PatchImplementation.Produce.WEEDS,\n CropState.GROWING,\n 3 - value\n )\n }\n if (value >= 8 && value <= 13) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.GROWING,\n value - 8\n )\n }\n if (value === 14) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.CRYSTAL_TREE\n ].getStages() - 1\n )\n }\n if (value === 15) {\n return new PatchState(\n PatchImplementation.Produce.CRYSTAL_TREE,\n CropState.HARVESTABLE,\n 0\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$19_$WRAPPER = PatchImplementation$19_$WRAPPER\n /** @ignore */\n class PatchImplementation$20_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value === 0) {\n return new PatchState(\n PatchImplementation.Produce.EMPTY_COMPOST_BIN,\n CropState.EMPTY,\n 0\n )\n }\n if (value >= 1 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.FILLING,\n value - 1\n )\n }\n if (value >= 16 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value === 31 || value === 32) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.GROWING,\n value - 31\n )\n }\n if (value >= 33 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.FILLING,\n value - 33\n )\n }\n if (value >= 48 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.HARVESTABLE,\n value - 48\n )\n }\n if (value === 94) {\n return new PatchState(\n PatchImplementation.Produce.COMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.COMPOST\n ].getStages() - 1\n )\n }\n if (value === 95 || value === 96) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.GROWING,\n value - 95\n )\n }\n if (value === 126) {\n return new PatchState(\n PatchImplementation.Produce.SUPERCOMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.SUPERCOMPOST\n ].getStages() - 1\n )\n }\n if (value >= 129 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.FILLING,\n value - 129\n )\n }\n if (value >= 144 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n value - 144\n )\n }\n if (value >= 159 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.ROTTEN_TOMATO,\n CropState.GROWING,\n value - 159\n )\n }\n if (value >= 176 && value <= 190) {\n return new PatchState(\n PatchImplementation.Produce.ULTRACOMPOST,\n CropState.HARVESTABLE,\n value - 176\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$20_$WRAPPER = PatchImplementation$20_$WRAPPER\n /** @ignore */\n class PatchImplementation$21_$WRAPPER extends PatchImplementation_$WRAPPER {\n constructor(_$ordinal, _$name, tab, name) {\n super(_$ordinal, _$name, tab, name)\n }\n /**\n *\n * @param {number} value\n * @return {PatchState}\n */\n forVarbitValue(value) {\n if (value === 0) {\n return new PatchState(\n PatchImplementation.Produce.EMPTY_GIANT_COMPOST_BIN,\n CropState.EMPTY,\n 0\n )\n }\n if (value >= 1 && value <= 15) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.FILLING,\n value - 1\n )\n }\n if (value >= 16 && value <= 30) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.HARVESTABLE,\n value - 16\n )\n }\n if (value >= 33 && value <= 47) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.FILLING,\n value - 33\n )\n }\n if (value >= 48 && value <= 62) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.HARVESTABLE,\n value - 48\n )\n }\n if (value >= 63 && value <= 77) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.FILLING,\n 15 + value - 63\n )\n }\n if (value >= 78 && value <= 92) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.HARVESTABLE,\n 15 + value - 78\n )\n }\n if (value === 93) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.GIANT_COMPOST\n ].getStages() - 1\n )\n }\n if (value >= 97 && value <= 99) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.GROWING,\n value - 97\n )\n }\n if (value >= 100 && value <= 114) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.HARVESTABLE,\n 15 + value - 100\n )\n }\n if (value >= 127 && value <= 128) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_COMPOST,\n CropState.GROWING,\n value - 127\n )\n }\n if (value >= 129 && value <= 143) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.FILLING,\n value - 129\n )\n }\n if (value >= 144 && value <= 158) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n value - 144\n )\n }\n if (value >= 159 && value <= 160) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.GROWING,\n value - 159\n )\n }\n if (value >= 161 && value <= 175) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_SUPERCOMPOST,\n CropState.FILLING,\n 15 + value - 161\n )\n }\n if (value >= 176 && value <= 205) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ULTRACOMPOST,\n CropState.HARVESTABLE,\n value - 176\n )\n }\n if (value >= 207 && value <= 221) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.HARVESTABLE,\n 15 + value - 207\n )\n }\n if (value === 222) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.GROWING,\n PatchImplementation.Produce['_$wrappers'][\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO\n ].getStages() - 1\n )\n }\n if (value >= 223 && value <= 237) {\n return new PatchState(\n PatchImplementation.Produce.GIANT_ROTTEN_TOMATO,\n CropState.FILLING,\n 15 + value - 223\n )\n }\n return null\n }\n }\n PatchImplementation.PatchImplementation$21_$WRAPPER = PatchImplementation$21_$WRAPPER\n})(PatchImplementation || (PatchImplementation = {}))\nPatchImplementation['_$wrappers'] = {\n 0: new PatchImplementation.PatchImplementation$0_$WRAPPER(\n 0,\n 'BELLADONNA',\n Tab.SPECIAL,\n ''\n ),\n 1: new PatchImplementation.PatchImplementation$1_$WRAPPER(\n 1,\n 'MUSHROOM',\n Tab.SPECIAL,\n ''\n ),\n 2: new PatchImplementation.PatchImplementation$2_$WRAPPER(\n 2,\n 'HESPORI',\n Tab.SPECIAL,\n ''\n ),\n 3: new PatchImplementation.PatchImplementation$3_$WRAPPER(\n 3,\n 'ALLOTMENT',\n Tab.ALLOTMENT,\n ''\n ),\n 4: new PatchImplementation.PatchImplementation$4_$WRAPPER(\n 4,\n 'HERB',\n Tab.HERB,\n ''\n ),\n 5: new PatchImplementation.PatchImplementation$5_$WRAPPER(\n 5,\n 'FLOWER',\n Tab.FLOWER,\n ''\n ),\n 6: new PatchImplementation.PatchImplementation$6_$WRAPPER(\n 6,\n 'BUSH',\n Tab.BUSH,\n ''\n ),\n 7: new PatchImplementation.PatchImplementation$7_$WRAPPER(\n 7,\n 'FRUIT_TREE',\n Tab.FRUIT_TREE,\n ''\n ),\n 8: new PatchImplementation.PatchImplementation$8_$WRAPPER(\n 8,\n 'HOPS',\n Tab.HOPS,\n ''\n ),\n 9: new PatchImplementation.PatchImplementation$9_$WRAPPER(\n 9,\n 'TREE',\n Tab.TREE,\n ''\n ),\n 10: new PatchImplementation.PatchImplementation$10_$WRAPPER(\n 10,\n 'HARDWOOD_TREE',\n Tab.TREE,\n 'Hardwood Trees'\n ),\n 11: new PatchImplementation.PatchImplementation$11_$WRAPPER(\n 11,\n 'REDWOOD',\n Tab.TREE,\n 'Redwood Trees'\n ),\n 12: new PatchImplementation.PatchImplementation$12_$WRAPPER(\n 12,\n 'SPIRIT_TREE',\n Tab.TREE,\n 'Spirit Trees'\n ),\n 13: new PatchImplementation.PatchImplementation$13_$WRAPPER(\n 13,\n 'ANIMA',\n Tab.SPECIAL,\n ''\n ),\n 14: new PatchImplementation.PatchImplementation$14_$WRAPPER(\n 14,\n 'CACTUS',\n Tab.SPECIAL,\n 'Cactus'\n ),\n 15: new PatchImplementation.PatchImplementation$15_$WRAPPER(\n 15,\n 'SEAWEED',\n Tab.SPECIAL,\n 'Seaweed'\n ),\n 16: new PatchImplementation.PatchImplementation$16_$WRAPPER(\n 16,\n 'CALQUAT',\n Tab.FRUIT_TREE,\n 'Calquat'\n ),\n 17: new PatchImplementation.PatchImplementation$17_$WRAPPER(\n 17,\n 'CELASTRUS',\n Tab.FRUIT_TREE,\n 'Celastrus'\n ),\n 18: new PatchImplementation.PatchImplementation$18_$WRAPPER(\n 18,\n 'GRAPES',\n Tab.GRAPE,\n ''\n ),\n 19: new PatchImplementation.PatchImplementation$19_$WRAPPER(\n 19,\n 'CRYSTAL_TREE',\n Tab.FRUIT_TREE,\n 'Crystal Tree'\n ),\n 20: new PatchImplementation.PatchImplementation$20_$WRAPPER(\n 20,\n 'COMPOST',\n Tab.SPECIAL,\n 'Compost Bin'\n ),\n 21: new PatchImplementation.PatchImplementation$21_$WRAPPER(\n 21,\n 'GIANT_COMPOST',\n Tab.SPECIAL,\n 'Giant Compost Bin'\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var Varbits\n;(function (Varbits) {\n /**\n * Transmog controllers for farming\n */\n Varbits[(Varbits['FARMING_4771'] = 0)] = 'FARMING_4771'\n Varbits[(Varbits['FARMING_4772'] = 1)] = 'FARMING_4772'\n Varbits[(Varbits['FARMING_4773'] = 2)] = 'FARMING_4773'\n Varbits[(Varbits['FARMING_4774'] = 3)] = 'FARMING_4774'\n Varbits[(Varbits['FARMING_4775'] = 4)] = 'FARMING_4775'\n Varbits[(Varbits['FARMING_7904'] = 5)] = 'FARMING_7904'\n Varbits[(Varbits['FARMING_7905'] = 6)] = 'FARMING_7905'\n Varbits[(Varbits['FARMING_7906'] = 7)] = 'FARMING_7906'\n Varbits[(Varbits['FARMING_7907'] = 8)] = 'FARMING_7907'\n Varbits[(Varbits['FARMING_7908'] = 9)] = 'FARMING_7908'\n Varbits[(Varbits['FARMING_7909'] = 10)] = 'FARMING_7909'\n Varbits[(Varbits['FARMING_7910'] = 11)] = 'FARMING_7910'\n Varbits[(Varbits['FARMING_7911'] = 12)] = 'FARMING_7911'\n Varbits[(Varbits['FARMING_7912'] = 13)] = 'FARMING_7912'\n /**\n * Transmog controllers for grapes\n */\n Varbits[(Varbits['GRAPES_4953'] = 14)] = 'GRAPES_4953'\n Varbits[(Varbits['GRAPES_4954'] = 15)] = 'GRAPES_4954'\n Varbits[(Varbits['GRAPES_4955'] = 16)] = 'GRAPES_4955'\n Varbits[(Varbits['GRAPES_4956'] = 17)] = 'GRAPES_4956'\n Varbits[(Varbits['GRAPES_4957'] = 18)] = 'GRAPES_4957'\n Varbits[(Varbits['GRAPES_4958'] = 19)] = 'GRAPES_4958'\n Varbits[(Varbits['GRAPES_4959'] = 20)] = 'GRAPES_4959'\n Varbits[(Varbits['GRAPES_4960'] = 21)] = 'GRAPES_4960'\n Varbits[(Varbits['GRAPES_4961'] = 22)] = 'GRAPES_4961'\n Varbits[(Varbits['GRAPES_4962'] = 23)] = 'GRAPES_4962'\n Varbits[(Varbits['GRAPES_4963'] = 24)] = 'GRAPES_4963'\n Varbits[(Varbits['GRAPES_4964'] = 25)] = 'GRAPES_4964'\n /**\n * Automatically weed farming patches\n */\n Varbits[(Varbits['AUTOWEED'] = 26)] = 'AUTOWEED'\n})(Varbits || (Varbits = {}))\n/** @ignore */\nexport class Varbits_$WRAPPER {\n constructor(_$ordinal, _$name, id) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.id === undefined) {\n this.id = 0\n }\n this.id = id\n }\n getId() {\n return this.id\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nVarbits['__class'] = 'timetracking.Varbits'\nVarbits['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nVarbits['_$wrappers'] = {\n 0: new Varbits_$WRAPPER(0, 'FARMING_4771', 4771),\n 1: new Varbits_$WRAPPER(1, 'FARMING_4772', 4772),\n 2: new Varbits_$WRAPPER(2, 'FARMING_4773', 4773),\n 3: new Varbits_$WRAPPER(3, 'FARMING_4774', 4774),\n 4: new Varbits_$WRAPPER(4, 'FARMING_4775', 4775),\n 5: new Varbits_$WRAPPER(5, 'FARMING_7904', 7904),\n 6: new Varbits_$WRAPPER(6, 'FARMING_7905', 7905),\n 7: new Varbits_$WRAPPER(7, 'FARMING_7906', 7906),\n 8: new Varbits_$WRAPPER(8, 'FARMING_7907', 7907),\n 9: new Varbits_$WRAPPER(9, 'FARMING_7908', 7908),\n 10: new Varbits_$WRAPPER(10, 'FARMING_7909', 7909),\n 11: new Varbits_$WRAPPER(11, 'FARMING_7910', 7910),\n 12: new Varbits_$WRAPPER(12, 'FARMING_7911', 7911),\n 13: new Varbits_$WRAPPER(13, 'FARMING_7912', 7912),\n 14: new Varbits_$WRAPPER(14, 'GRAPES_4953', 4953),\n 15: new Varbits_$WRAPPER(15, 'GRAPES_4954', 4954),\n 16: new Varbits_$WRAPPER(16, 'GRAPES_4955', 4955),\n 17: new Varbits_$WRAPPER(17, 'GRAPES_4956', 4956),\n 18: new Varbits_$WRAPPER(18, 'GRAPES_4957', 4957),\n 19: new Varbits_$WRAPPER(19, 'GRAPES_4958', 4958),\n 20: new Varbits_$WRAPPER(20, 'GRAPES_4959', 4959),\n 21: new Varbits_$WRAPPER(21, 'GRAPES_4960', 4960),\n 22: new Varbits_$WRAPPER(22, 'GRAPES_4961', 4961),\n 23: new Varbits_$WRAPPER(23, 'GRAPES_4962', 4962),\n 24: new Varbits_$WRAPPER(24, 'GRAPES_4963', 4963),\n 25: new Varbits_$WRAPPER(25, 'GRAPES_4964', 4964),\n 26: new Varbits_$WRAPPER(26, 'AUTOWEED', 5557)\n}\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * An enumeration of possible autoweed settings.\n * @enum\n * @property {Autoweed} UNOWNED\n * Access to autoweed has not been unlocked.\n * @property {Autoweed} OFF\n * Autoweed is disabled.\n * @property {Autoweed} ON\n * Autoweed is enabled.\n * @class\n */\nexport var Autoweed\n;(function (Autoweed) {\n /**\n * Access to autoweed has not been unlocked.\n */\n Autoweed[(Autoweed['UNOWNED'] = 0)] = 'UNOWNED'\n /**\n * Autoweed is disabled.\n */\n Autoweed[(Autoweed['OFF'] = 1)] = 'OFF'\n /**\n * Autoweed is enabled.\n */\n Autoweed[(Autoweed['ON'] = 2)] = 'ON'\n})(Autoweed || (Autoweed = {}))\n","// @ts-nocheck\n/* eslint-disable */\nexport class ItemID {}\nItemID.GRIMY_RANARR_WEED = 207\nItemID.LIMPWURT_ROOT = 225\nItemID.SNAPE_GRASS = 231\nItemID.WHITE_BERRIES = 239\nItemID.JANGERBERRIES = 247\nItemID.GUAM_LEAF = 249\nItemID.MARRENTILL = 251\nItemID.TARROMIN = 253\nItemID.HARRALANDER = 255\nItemID.RANARR_WEED = 257\nItemID.IRIT_LEAF = 259\nItemID.AVANTOE = 261\nItemID.KWUARM = 263\nItemID.CADANTINE = 265\nItemID.DWARF_WEED = 267\nItemID.TORSTOL = 269\nItemID.CADAVA_BERRIES = 753\nItemID.BATTLESTAFF = 1391\nItemID.MAGIC_LOGS = 1513\nItemID.YEW_LOGS = 1515\nItemID.MAPLE_LOGS = 1517\nItemID.WILLOW_LOGS = 1519\nItemID.OAK_LOGS = 1521\nItemID.WOAD_LEAF = 1793\nItemID.POTATO = 1942\nItemID.REDBERRIES = 1951\nItemID.COOKING_APPLE = 1955\nItemID.ONION = 1957\nItemID.BANANA = 1963\nItemID.CABBAGE = 1965\nItemID.TOMATO = 1982\nItemID.GRAPES = 1987\nItemID.ORANGE = 2108\nItemID.PINEAPPLE = 2114\nItemID.DWELLBERRIES = 2126\nItemID.CAVE_NIGHTSHADE = 2398\nItemID.RED_FLOWERS = 2462\nItemID.LANTADYME = 2481\nItemID.WATCH = 2575\nItemID.TOADFLAX = 2998\nItemID.SNAPDRAGON = 3000\nItemID.POTATO_CACTUS = 3138\nItemID.GOUTWEED = 3261\nItemID.STRAWBERRY = 5504\nItemID.JUTE_FIBRE = 5931\nItemID.CURRY_LEAF = 5970\nItemID.PAPAYA_FRUIT = 5972\nItemID.COCONUT = 5974\nItemID.CALQUAT_FRUIT = 5980\nItemID.WATERMELON = 5982\nItemID.SWEETCORN = 5986\nItemID.HAMMERSTONE_HOPS = 5994\nItemID.ASGARNIAN_HOPS = 5996\nItemID.YANILLIAN_HOPS = 5998\nItemID.KRANDORIAN_HOPS = 6000\nItemID.WILDBLOOD_HOPS = 6002\nItemID.MUSHROOM = 6004\nItemID.BARLEY = 6006\nItemID.MARIGOLDS = 6010\nItemID.NASTURTIUMS = 6012\nItemID.ROSEMARY = 6014\nItemID.CACTUS_SPINE = 6016\nItemID.POISON_IVY_BERRIES = 6018\nItemID.WEEDS = 6055\nItemID.SCARECROW = 6059\nItemID.SPIRIT_TREE = 6063\nItemID.MAHOGANY_LOGS = 6332\nItemID.TEAK_LOGS = 6333\nItemID.REDWOOD_LOGS = 19669\nItemID.GIANT_SEAWEED = 21504\nItemID.OLD_NOTES = 22051\nItemID.DRAGONFRUIT = 22929\nItemID.WHITE_LILY = 22932\nItemID.CRYSTAL_SHARDS = 23866\nItemID.BIRD_HOUSE = 21512\nItemID.OAK_BIRD_HOUSE = 21515\nItemID.WILLOW_BIRD_HOUSE = 21518\nItemID.TEAK_BIRD_HOUSE = 21521\nItemID.MAPLE_BIRD_HOUSE = 22192\nItemID.MAHOGANY_BIRD_HOUSE = 22195\nItemID.YEW_BIRD_HOUSE = 22198\nItemID.MAGIC_BIRD_HOUSE = 22201\nItemID.REDWOOD_BIRD_HOUSE = 22204\nItemID.FEATHER = 314\nItemID.COMPOST_BIN = 3271\nItemID.COMPOST = 6032\nItemID.SUPERCOMPOST = 6034\nItemID.ULTRACOMPOST = 21483\nItemID.ROTTEN_TOMATO = 2518\nItemID['__class'] = 'timetracking.ItemID'\n","// @ts-nocheck\n/* eslint-disable */\nexport class PatchState {\n constructor(produce, cropState, stage) {\n if (this.produce === undefined) {\n this.produce = null\n }\n if (this.cropState === undefined) {\n this.cropState = null\n }\n if (this.stage === undefined) {\n this.stage = 0\n }\n this.produce = produce\n this.cropState = cropState\n this.stage = stage\n }\n getStages() {\n return this.cropState === CropState.HARVESTABLE ||\n this.cropState === CropState.FILLING\n ? PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getHarvestStages()\n : PatchImplementation.Produce['_$wrappers'][this.produce].getStages()\n }\n getTickRate() {\n switch (this.cropState) {\n case CropState.HARVESTABLE:\n return PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getRegrowTickrate()\n case CropState.GROWING:\n return PatchImplementation.Produce['_$wrappers'][\n this.produce\n ].getTickrate()\n default:\n return 0\n }\n }\n getStage() {\n return this.stage\n }\n getProduce() {\n return this.produce\n }\n getCropState() {\n return this.cropState\n }\n}\nPatchState['__class'] = 'timetracking.PatchState'\nimport { CropState } from './CropState'\nimport { PatchImplementation } from './PatchImplementation'\n","// @ts-nocheck\n/* eslint-disable */\nexport class NullItemID {}\nNullItemID.NULL_22938 = 22938\nNullItemID.NULL_22939 = 22939\nNullItemID.NULL_22940 = 22940\nNullItemID.NULL_23044 = 23044\nNullItemID['__class'] = 'timetracking.NullItemID'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingPatch {\n constructor(name, varbit, implementation) {\n if (this.region === undefined) {\n this.region = null\n }\n if (this.name === undefined) {\n this.name = null\n }\n if (this.varbit === undefined) {\n this.varbit = null\n }\n if (this.implementation === undefined) {\n this.implementation = null\n }\n this.name = name\n this.varbit = varbit\n this.implementation = implementation\n }\n getName() {\n return this.name\n }\n getVarbit() {\n return this.varbit\n }\n getImplementation() {\n return this.implementation\n }\n getRegion() {\n return this.region\n }\n setRegion(region) {\n this.region = region\n }\n}\nFarmingPatch['__class'] = 'timetracking.FarmingPatch'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingRegion {\n constructor(name, regionID, ...patches) {\n if (this.name === undefined) {\n this.name = null\n }\n if (this.regionID === undefined) {\n this.regionID = 0\n }\n if (this.patches === undefined) {\n this.patches = null\n }\n if (this.varbits === undefined) {\n this.varbits = null\n }\n this.name = name\n this.regionID = regionID\n this.patches = patches\n this.varbits = (s => {\n let a = []\n while (s-- > 0) a.push(null)\n return a\n })(patches.length)\n for (let i = 0; i < patches.length; i++) {\n {\n const p = patches[i]\n p.setRegion(this)\n this.varbits[i] = p.getVarbit()\n }\n }\n }\n getName() {\n return this.name\n }\n getRegionID() {\n return this.regionID\n }\n getPatches() {\n return this.patches\n }\n getVarbits() {\n return this.varbits\n }\n}\nFarmingRegion['__class'] = 'timetracking.FarmingRegion'\n","// @ts-nocheck\n/* eslint-disable */\nexport class FarmingWorld {\n constructor() {\n this.regions = new Map()\n this.tabs = new Map()\n if (this.farmingGuildRegion === undefined) {\n this.farmingGuildRegion = null\n }\n this.add(\n new FarmingRegion(\n 'Al Kharid',\n 13106,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.CACTUS)\n ),\n 13362,\n 13105\n )\n this.add(\n new FarmingRegion(\n 'Ardougne',\n 10290,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n ),\n 10546\n )\n this.add(\n new FarmingRegion(\n 'Ardougne',\n 10548,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n )\n )\n this.add(\n new FarmingRegion(\n 'Brimhaven',\n 11058,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 11057\n )\n this.add(\n new FarmingRegion(\n 'Catherby',\n 11062,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n ),\n 11061,\n 11318,\n 11317\n )\n this.add(\n new FarmingRegion(\n 'Catherby',\n 11317,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n )\n )\n this.add(\n new FarmingRegion(\n \"Champions' Guild\",\n 12596,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n )\n )\n this.add(\n new FarmingRegion(\n 'Draynor Manor',\n 12340,\n new FarmingPatch(\n 'Belladonna',\n Varbits.FARMING_4771,\n PatchImplementation.BELLADONNA\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Entrana',\n 11060,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n ),\n 11316\n )\n this.add(\n new FarmingRegion(\n 'Etceteria',\n 10300,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.SPIRIT_TREE\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Falador',\n 11828,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12084\n )\n this.add(\n new FarmingRegion(\n 'Falador',\n 12083,\n new FarmingPatch(\n 'North West',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South East',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n )\n )\n this.add(\n new FarmingRegion(\n 'Fossil Island',\n 14651,\n new FarmingPatch(\n 'East',\n Varbits.FARMING_4771,\n PatchImplementation.HARDWOOD_TREE\n ),\n new FarmingPatch(\n 'Middle',\n Varbits.FARMING_4772,\n PatchImplementation.HARDWOOD_TREE\n ),\n new FarmingPatch(\n 'West',\n Varbits.FARMING_4773,\n PatchImplementation.HARDWOOD_TREE\n )\n ),\n 14907,\n 14908,\n 15164,\n 14652,\n 14906,\n 14650,\n 15162,\n 15163\n )\n this.add(\n new FarmingRegion(\n 'Seaweed',\n 15008,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.SEAWEED\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.SEAWEED\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Gnome Stronghold',\n 9781,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE),\n new FarmingPatch(\n '',\n Varbits.FARMING_4772,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 9782,\n 9526,\n 9525\n )\n this.add(\n new FarmingRegion(\n 'Harmony',\n 15148,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4772, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Kourend',\n 6967,\n new FarmingPatch(\n 'North East',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South West',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST),\n new FarmingPatch(\n '',\n Varbits.FARMING_7904,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 6711\n )\n this.add(\n new FarmingRegion(\n 'Kourend',\n 7223,\n new FarmingPatch(\n 'East 1',\n Varbits.GRAPES_4953,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 2',\n Varbits.GRAPES_4954,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 3',\n Varbits.GRAPES_4955,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 4',\n Varbits.GRAPES_4956,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 5',\n Varbits.GRAPES_4957,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'East 6',\n Varbits.GRAPES_4958,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 1',\n Varbits.GRAPES_4959,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 2',\n Varbits.GRAPES_4960,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 3',\n Varbits.GRAPES_4961,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 4',\n Varbits.GRAPES_4962,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 5',\n Varbits.GRAPES_4963,\n PatchImplementation.GRAPES\n ),\n new FarmingPatch(\n 'West 6',\n Varbits.GRAPES_4964,\n PatchImplementation.GRAPES\n )\n )\n )\n this.add(\n new FarmingRegion(\n 'Lletya',\n 9265,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 11103\n )\n this.add(\n new FarmingRegion(\n 'Lumbridge',\n 12851,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n )\n )\n this.add(\n new FarmingRegion(\n 'Lumbridge',\n 12594,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12850\n )\n this.add(\n new FarmingRegion(\n 'Morytania',\n 13622,\n new FarmingPatch(\n 'Mushroom',\n Varbits.FARMING_4771,\n PatchImplementation.MUSHROOM\n )\n ),\n 13878\n )\n this.add(\n new FarmingRegion(\n 'Morytania',\n 14391,\n new FarmingPatch(\n 'North West',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South East',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.COMPOST)\n ),\n 14390\n )\n this.add(\n new FarmingRegion(\n 'Port Sarim',\n 12082,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.SPIRIT_TREE\n )\n ),\n 12083\n )\n this.add(\n new FarmingRegion(\n 'Rimmington',\n 11570,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.BUSH)\n ),\n 11826\n )\n this.add(\n new FarmingRegion(\n \"Seers' Village\",\n 10551,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n ),\n 10550\n )\n this.add(\n new FarmingRegion(\n 'Tai Bwo Wannai',\n 11056,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.CALQUAT)\n )\n )\n this.add(\n new FarmingRegion(\n 'Taverley',\n 11573,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 11829\n )\n this.add(\n new FarmingRegion(\n 'Tree Gnome Village',\n 9777,\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.FRUIT_TREE\n )\n ),\n 10033\n )\n this.add(\n new FarmingRegion(\n 'Troll Stronghold',\n 11321,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Varrock',\n 12854,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.TREE)\n ),\n 12853\n )\n this.add(\n new FarmingRegion(\n 'Yanille',\n 10288,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HOPS)\n )\n )\n this.add(\n new FarmingRegion(\n 'Weiss',\n 11325,\n new FarmingPatch('', Varbits.FARMING_4771, PatchImplementation.HERB)\n )\n )\n this.add(\n new FarmingRegion(\n 'Farming Guild',\n 5021,\n new FarmingPatch(\n 'Hespori',\n Varbits.FARMING_7908,\n PatchImplementation.HESPORI\n )\n )\n )\n this.add(\n (this.farmingGuildRegion = new FarmingRegion(\n 'Farming Guild',\n 4922,\n new FarmingPatch('', Varbits.FARMING_7905, PatchImplementation.TREE),\n new FarmingPatch('', Varbits.FARMING_4775, PatchImplementation.HERB),\n new FarmingPatch('', Varbits.FARMING_4772, PatchImplementation.BUSH),\n new FarmingPatch('', Varbits.FARMING_7906, PatchImplementation.FLOWER),\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4773,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4774,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7912,\n PatchImplementation.GIANT_COMPOST\n ),\n new FarmingPatch('', Varbits.FARMING_7904, PatchImplementation.CACTUS),\n new FarmingPatch(\n '',\n Varbits.FARMING_4771,\n PatchImplementation.SPIRIT_TREE\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7909,\n PatchImplementation.FRUIT_TREE\n ),\n new FarmingPatch(\n 'Anima',\n Varbits.FARMING_7911,\n PatchImplementation.ANIMA\n ),\n new FarmingPatch(\n '',\n Varbits.FARMING_7910,\n PatchImplementation.CELASTRUS\n ),\n new FarmingPatch('', Varbits.FARMING_7907, PatchImplementation.REDWOOD)\n )),\n 5177,\n 5178,\n 5179,\n 4921,\n 4923,\n 4665,\n 4666,\n 4667\n )\n this.add(\n new FarmingRegion(\n 'Prifddinas',\n 13151,\n new FarmingPatch(\n 'North',\n Varbits.FARMING_4771,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch(\n 'South',\n Varbits.FARMING_4772,\n PatchImplementation.ALLOTMENT\n ),\n new FarmingPatch('', Varbits.FARMING_4773, PatchImplementation.FLOWER),\n new FarmingPatch(\n '',\n Varbits.FARMING_4775,\n PatchImplementation.CRYSTAL_TREE\n ),\n new FarmingPatch('', Varbits.FARMING_4774, PatchImplementation.COMPOST)\n ),\n 12895,\n 12894,\n 13150,\n 12994,\n 12993,\n 12737,\n 12738,\n 12126,\n 12127,\n 13250\n )\n }\n /*private*/ add(r, ...extraRegions) {\n this.regions.set(r.getRegionID(), r)\n for (let i = 0; i < extraRegions.length; i++) {\n {\n const er = extraRegions[i]\n this.regions.set(er, r)\n }\n }\n for (let i = 0; i < r.getPatches().length; i++) {\n {\n const p = r.getPatches()[i]\n const tab = PatchImplementation['_$wrappers'][\n p.getImplementation()\n ].getTab()\n if (!this.tabs.has(tab)) {\n this.tabs.set(tab, new Array())\n }\n this.tabs.get(tab).push(p)\n }\n }\n }\n getFarmingGuildRegion() {\n return this.farmingGuildRegion\n }\n getRegions() {\n return this.regions\n }\n getTabs() {\n return this.tabs\n }\n}\nFarmingWorld['__class'] = 'timetracking.FarmingWorld'\nimport { PatchImplementation } from './PatchImplementation'\nimport { Varbits } from './Varbits'\nimport { FarmingPatch } from './FarmingPatch'\nimport { FarmingRegion } from './FarmingRegion'\n","// @ts-nocheck\n/* eslint-disable */\nexport class TimeTrackingConfig {}\nTimeTrackingConfig.CONFIG_GROUP = 'timetracking'\nTimeTrackingConfig.FARM_TICK_OFFSET = 'farmTickOffset'\nTimeTrackingConfig.FARM_TICK_OFFSET_PRECISION = 'farmTickOffsetPrecision'\nTimeTrackingConfig.AUTOWEED = 'autoweed'\nTimeTrackingConfig.BIRD_HOUSE = 'birdhouse'\nTimeTrackingConfig.BOTANIST = 'botanist'\nTimeTrackingConfig.TIMERS = 'timers'\nTimeTrackingConfig.STOPWATCHES = 'stopwatches'\nTimeTrackingConfig['__class'] = 'timetracking.TimeTrackingConfig'\n","// @ts-nocheck\n/* eslint-disable */\nexport class PatchPrediction {\n constructor(produce, cropState, doneEstimate, stage, stages) {\n if (this.produce === undefined) {\n this.produce = null\n }\n if (this.cropState === undefined) {\n this.cropState = null\n }\n if (this.doneEstimate === undefined) {\n this.doneEstimate = 0\n }\n if (this.stage === undefined) {\n this.stage = 0\n }\n if (this.stages === undefined) {\n this.stages = 0\n }\n this.produce = produce\n this.cropState = cropState\n this.doneEstimate = doneEstimate\n this.stage = stage\n this.stages = stages\n }\n getProduce() {\n return this.produce\n }\n getCropState() {\n return this.cropState\n }\n getDoneEstimate() {\n return this.doneEstimate\n }\n getStage() {\n return this.stage\n }\n getStages() {\n return this.stages\n }\n}\nPatchPrediction['__class'] = 'timetracking.PatchPrediction'\n","// @ts-nocheck\n/* eslint-disable */\nimport { Varbits } from './Varbits'\nexport class FarmingTracker {\n predictPatch(patch, getConfiguration) {\n const unixNow = (n => (n < 0 ? Math.ceil(n) : Math.floor(n)))(\n new Date().getTime() / 1000\n )\n const autoweed =\n '' + /* Enum.ordinal */ Autoweed[Autoweed[Autoweed.ON]] ===\n (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.AUTOWEED)\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.AUTOWEED\n ))(getConfiguration)\n const botanist =\n true.toString() ===\n (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, TimeTrackingConfig.BOTANIST)\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.BOTANIST\n ))(getConfiguration)\n const key =\n patch.getRegion().getRegionID() +\n '.' +\n Varbits['_$wrappers'][patch.getVarbit()].getId()\n const storedValue = (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, key)\n : target.apply(TimeTrackingConfig.CONFIG_GROUP, key))(getConfiguration)\n if (storedValue == null) {\n return null\n }\n let unixTime = 0\n let value = 0\n {\n const parts = storedValue.split(':')\n if (parts.length === 2) {\n try {\n value = parseInt(parts[0])\n unixTime = parseInt(parts[1])\n } catch (e) {}\n }\n }\n if (unixTime <= 0) {\n return null\n }\n const state = PatchImplementation['_$wrappers'][\n patch.getImplementation()\n ].forVarbitValue(value)\n if (state == null) {\n return null\n }\n let stage = state.getStage()\n let stages = state.getStages()\n let tickrate = state.getTickRate()\n if (autoweed && state.getProduce() === PatchImplementation.Produce.WEEDS) {\n stage = 0\n stages = 1\n tickrate = 0\n }\n if (botanist) {\n tickrate = (n => (n < 0 ? Math.ceil(n) : Math.floor(n)))(tickrate / 5)\n }\n let doneEstimate = 0\n if (tickrate > 0) {\n const tickNow = FarmingTracker.getTickTime(\n tickrate,\n 0,\n unixNow,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n const tickTime = FarmingTracker.getTickTime(\n tickrate,\n 0,\n unixTime,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n const delta = (((tickNow - tickTime) | 0) / (tickrate * 60)) | 0\n doneEstimate = FarmingTracker.getTickTime(\n tickrate,\n stages - 1 - stage,\n tickTime,\n (funcInst => {\n if (typeof funcInst == 'function') {\n return funcInst\n }\n return (arg0, arg1) =>\n (funcInst['apply'] ? funcInst['apply'] : funcInst).call(\n funcInst,\n arg0,\n arg1\n )\n })(getConfiguration)\n )\n stage += delta\n if (stage >= stages) {\n stage = stages - 1\n }\n }\n return new PatchPrediction(\n state.getProduce(),\n state.getCropState(),\n doneEstimate,\n stage,\n stages\n )\n }\n /*private*/ static getTickTime(\n tickRate,\n ticks,\n requestedTime,\n getConfiguration\n ) {\n const offsetPrecisionMinsString = (target =>\n typeof target === 'function'\n ? target(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET_PRECISION\n )\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET_PRECISION\n ))(getConfiguration)\n const offsetTimeMinsString = (target =>\n typeof target === 'function'\n ? target(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET\n )\n : target.apply(\n TimeTrackingConfig.CONFIG_GROUP,\n TimeTrackingConfig.FARM_TICK_OFFSET\n ))(getConfiguration)\n const offsetPrecisionMins =\n offsetPrecisionMinsString != null &&\n !(offsetPrecisionMinsString.length === 0)\n ? /* parseInt */ parseInt(offsetPrecisionMinsString)\n : null\n const offsetTimeMins =\n offsetTimeMinsString != null && !(offsetTimeMinsString.length === 0)\n ? /* parseInt */ parseInt(offsetTimeMinsString)\n : null\n let calculatedOffsetTime = 0\n if (\n offsetPrecisionMins != null &&\n offsetTimeMins != null &&\n (offsetPrecisionMins >= tickRate || offsetPrecisionMins >= 40)\n ) {\n calculatedOffsetTime = (offsetTimeMins % tickRate) * 60\n }\n const unixNow = requestedTime + calculatedOffsetTime\n const timeOfCurrentTick = unixNow - (unixNow % (tickRate * 60))\n const timeOfGoalTick = timeOfCurrentTick + ticks * tickRate * 60\n return timeOfGoalTick - calculatedOffsetTime\n }\n}\nFarmingTracker['__class'] = 'timetracking.FarmingTracker'\nimport { PatchImplementation } from './PatchImplementation'\nimport { TimeTrackingConfig } from './TimeTrackingConfig'\nimport { Autoweed } from './Autoweed'\nimport { PatchPrediction } from './PatchPrediction'\n","// @ts-nocheck\n/* eslint-disable */\nimport { ItemID } from './ItemID'\nexport var BirdHouse\n;(function (BirdHouse) {\n BirdHouse[(BirdHouse['NORMAL'] = 0)] = 'NORMAL'\n BirdHouse[(BirdHouse['OAK'] = 1)] = 'OAK'\n BirdHouse[(BirdHouse['WILLOW'] = 2)] = 'WILLOW'\n BirdHouse[(BirdHouse['TEAK'] = 3)] = 'TEAK'\n BirdHouse[(BirdHouse['MAPLE'] = 4)] = 'MAPLE'\n BirdHouse[(BirdHouse['MAHOGANY'] = 5)] = 'MAHOGANY'\n BirdHouse[(BirdHouse['YEW'] = 6)] = 'YEW'\n BirdHouse[(BirdHouse['MAGIC'] = 7)] = 'MAGIC'\n BirdHouse[(BirdHouse['REDWOOD'] = 8)] = 'REDWOOD'\n})(BirdHouse || (BirdHouse = {}))\n/** @ignore */\nexport class BirdHouse_$WRAPPER {\n constructor(_$ordinal, _$name, name, itemID) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.itemID === undefined) {\n this.itemID = 0\n }\n this.__name = name\n this.itemID = itemID\n }\n getName() {\n return this.__name\n }\n getItemID() {\n return this.itemID\n }\n /**\n * Gets the {@code BirdHouse} corresponding to the given {@code VarPlayer} value.\n * @param {number} varp\n * @return {BirdHouse}\n */\n static fromVarpValue(varp) {\n const index = ((varp - 1) / 3) | 0\n if (\n varp <= 0 ||\n index >=\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length\n ) {\n return null\n }\n return /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })()[index]\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouse['__class'] = 'timetracking.BirdHouse'\nBirdHouse['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nBirdHouse['_$wrappers'] = {\n 0: new BirdHouse_$WRAPPER(0, 'NORMAL', 'Bird House', ItemID.BIRD_HOUSE),\n 1: new BirdHouse_$WRAPPER(1, 'OAK', 'Oak Bird House', ItemID.OAK_BIRD_HOUSE),\n 2: new BirdHouse_$WRAPPER(\n 2,\n 'WILLOW',\n 'Willow Bird House',\n ItemID.WILLOW_BIRD_HOUSE\n ),\n 3: new BirdHouse_$WRAPPER(\n 3,\n 'TEAK',\n 'Teak Bird House',\n ItemID.TEAK_BIRD_HOUSE\n ),\n 4: new BirdHouse_$WRAPPER(\n 4,\n 'MAPLE',\n 'Maple Bird House',\n ItemID.MAPLE_BIRD_HOUSE\n ),\n 5: new BirdHouse_$WRAPPER(\n 5,\n 'MAHOGANY',\n 'Mahogany Bird House',\n ItemID.MAHOGANY_BIRD_HOUSE\n ),\n 6: new BirdHouse_$WRAPPER(6, 'YEW', 'Yew Bird House', ItemID.YEW_BIRD_HOUSE),\n 7: new BirdHouse_$WRAPPER(\n 7,\n 'MAGIC',\n 'Magic Bird House',\n ItemID.MAGIC_BIRD_HOUSE\n ),\n 8: new BirdHouse_$WRAPPER(\n 8,\n 'REDWOOD',\n 'Redwood Bird House',\n ItemID.REDWOOD_BIRD_HOUSE\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\nexport var BirdHouseState\n;(function (BirdHouseState) {\n BirdHouseState[(BirdHouseState['SEEDED'] = 0)] = 'SEEDED'\n BirdHouseState[(BirdHouseState['BUILT'] = 1)] = 'BUILT'\n BirdHouseState[(BirdHouseState['EMPTY'] = 2)] = 'EMPTY'\n BirdHouseState[(BirdHouseState['UNKNOWN'] = 3)] = 'UNKNOWN'\n})(BirdHouseState || (BirdHouseState = {}))\n/** @ignore */\nexport class BirdHouseState_$WRAPPER {\n constructor(_$ordinal, _$name) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n }\n /**\n * Gets the {@code BirdHouseState} corresponding to the given {@code VarPlayer} value.\n * @param {number} varp\n * @return {BirdHouseState}\n */\n static fromVarpValue(varp) {\n if (\n varp < 0 ||\n varp >\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouse) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length *\n 3\n ) {\n return BirdHouseState.UNKNOWN\n } else if (varp === 0) {\n return BirdHouseState.EMPTY\n } else if (varp % 3 === 0) {\n return BirdHouseState.SEEDED\n } else {\n return BirdHouseState.BUILT\n }\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouseState['__class'] = 'timetracking.BirdHouseState'\nBirdHouseState['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\nBirdHouseState['_$wrappers'] = {\n 0: new BirdHouseState_$WRAPPER(0, 'SEEDED'),\n 1: new BirdHouseState_$WRAPPER(1, 'BUILT'),\n 2: new BirdHouseState_$WRAPPER(2, 'EMPTY'),\n 3: new BirdHouseState_$WRAPPER(3, 'UNKNOWN')\n}\nimport { BirdHouse } from './BirdHouse'\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * Server controlled \"content-developer\" integers.\n *\n * VarPlayers are stored per RuneScape player save, and synchronized\n * from the server to the client. The client can change them preemptively\n * if it thinks they will change the next tick as a lag-hiding measure.\n * The client CANNOT directly make the server change a varbit.\n * @enum\n * @property {VarPlayer} BIRD_HOUSE_MEADOW_NORTH\n * Bird house states\n * @property {VarPlayer} BIRD_HOUSE_MEADOW_SOUTH\n * @property {VarPlayer} BIRD_HOUSE_VALLEY_NORTH\n * @property {VarPlayer} BIRD_HOUSE_VALLEY_SOUTH\n * @class\n */\nexport var VarPlayer\n;(function (VarPlayer) {\n /**\n * Bird house states\n */\n VarPlayer[(VarPlayer['BIRD_HOUSE_MEADOW_NORTH'] = 0)] =\n 'BIRD_HOUSE_MEADOW_NORTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_MEADOW_SOUTH'] = 1)] =\n 'BIRD_HOUSE_MEADOW_SOUTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_VALLEY_NORTH'] = 2)] =\n 'BIRD_HOUSE_VALLEY_NORTH'\n VarPlayer[(VarPlayer['BIRD_HOUSE_VALLEY_SOUTH'] = 3)] =\n 'BIRD_HOUSE_VALLEY_SOUTH'\n})(VarPlayer || (VarPlayer = {}))\n/** @ignore */\nexport class VarPlayer_$WRAPPER {\n constructor(_$ordinal, _$name, id) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.id === undefined) {\n this.id = 0\n }\n this.id = id\n }\n getId() {\n return this.id\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nVarPlayer['__class'] = 'timetracking.VarPlayer'\nVarPlayer['__interfaces'] = ['java.lang.Comparable', 'java.io.Serializable']\nVarPlayer['_$wrappers'] = {\n 0: new VarPlayer_$WRAPPER(0, 'BIRD_HOUSE_MEADOW_NORTH', 1626),\n 1: new VarPlayer_$WRAPPER(1, 'BIRD_HOUSE_MEADOW_SOUTH', 1627),\n 2: new VarPlayer_$WRAPPER(2, 'BIRD_HOUSE_VALLEY_NORTH', 1628),\n 3: new VarPlayer_$WRAPPER(3, 'BIRD_HOUSE_VALLEY_SOUTH', 1629)\n}\n","// @ts-nocheck\n/* eslint-disable */\nimport { VarPlayer } from './VarPlayer'\nexport var BirdHouseSpace\n;(function (BirdHouseSpace) {\n BirdHouseSpace[(BirdHouseSpace['MEADOW_NORTH'] = 0)] = 'MEADOW_NORTH'\n BirdHouseSpace[(BirdHouseSpace['MEADOW_SOUTH'] = 1)] = 'MEADOW_SOUTH'\n BirdHouseSpace[(BirdHouseSpace['VALLEY_NORTH'] = 2)] = 'VALLEY_NORTH'\n BirdHouseSpace[(BirdHouseSpace['VALLEY_SOUTH'] = 3)] = 'VALLEY_SOUTH'\n})(BirdHouseSpace || (BirdHouseSpace = {}))\n/** @ignore */\nexport class BirdHouseSpace_$WRAPPER {\n constructor(_$ordinal, _$name, name, varp) {\n this._$ordinal = _$ordinal\n this._$name = _$name\n if (this.__name === undefined) {\n this.__name = null\n }\n if (this.varp === undefined) {\n this.varp = null\n }\n this.__name = name\n this.varp = varp\n }\n getName() {\n return this.__name\n }\n getVarp() {\n return this.varp\n }\n name() {\n return this._$name\n }\n ordinal() {\n return this._$ordinal\n }\n compareTo(other) {\n return this._$ordinal - (isNaN(other) ? other._$ordinal : other)\n }\n}\nBirdHouseSpace['__class'] = 'timetracking.BirdHouseSpace'\nBirdHouseSpace['__interfaces'] = [\n 'java.lang.Comparable',\n 'java.io.Serializable'\n]\nBirdHouseSpace['_$wrappers'] = {\n 0: new BirdHouseSpace_$WRAPPER(\n 0,\n 'MEADOW_NORTH',\n 'Mushroom Meadow (North)',\n VarPlayer.BIRD_HOUSE_MEADOW_NORTH\n ),\n 1: new BirdHouseSpace_$WRAPPER(\n 1,\n 'MEADOW_SOUTH',\n 'Mushroom Meadow (South)',\n VarPlayer.BIRD_HOUSE_MEADOW_SOUTH\n ),\n 2: new BirdHouseSpace_$WRAPPER(\n 2,\n 'VALLEY_NORTH',\n 'Verdant Valley (Northeast)',\n VarPlayer.BIRD_HOUSE_VALLEY_NORTH\n ),\n 3: new BirdHouseSpace_$WRAPPER(\n 3,\n 'VALLEY_SOUTH',\n 'Verdant Valley (Southwest)',\n VarPlayer.BIRD_HOUSE_VALLEY_SOUTH\n )\n}\n","// @ts-nocheck\n/* eslint-disable */\n/**\n * Contains data about the state of a particular {@link BirdHouseSpace}, at a particular point in time.\n * @param {BirdHouseSpace} space\n * @param {number} varp\n * @param {number} timestamp\n * @class\n */\nexport class BirdHouseData {\n constructor(space, varp, timestamp) {\n if (this.space === undefined) {\n this.space = null\n }\n if (this.varp === undefined) {\n this.varp = 0\n }\n if (this.timestamp === undefined) {\n this.timestamp = 0\n }\n this.space = space\n this.varp = varp\n this.timestamp = timestamp\n }\n getSpace() {\n return this.space\n }\n getVarp() {\n return this.varp\n }\n getTimestamp() {\n return this.timestamp\n }\n}\nBirdHouseData['__class'] = 'timetracking.BirdHouseData'\n","// @ts-nocheck\n/* eslint-disable */\nimport { VarPlayer } from './VarPlayer'\nexport class BirdHouseTracker {\n loadFromConfig(getConfiguration) {\n const birdHouseData = new Map()\n for (\n let i = 0;\n i <\n /* Enum.values */ (function () {\n let result = []\n for (let val in BirdHouseSpace) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })().length;\n i++\n ) {\n {\n const space = (function () {\n let result = []\n for (let val in BirdHouseSpace) {\n if (!isNaN(val)) {\n result.push(parseInt(val, 10))\n }\n }\n return result\n })()[i]\n const key =\n TimeTrackingConfig.BIRD_HOUSE +\n '.' +\n VarPlayer['_$wrappers'][\n BirdHouseSpace['_$wrappers'][space].getVarp()\n ].getId()\n const storedValue = (target =>\n typeof target === 'function'\n ? target(TimeTrackingConfig.CONFIG_GROUP, key)\n : target.apply(TimeTrackingConfig.CONFIG_GROUP, key))(\n getConfiguration\n )\n let updated = false\n if (storedValue != null) {\n const parts = storedValue.split(':')\n if (parts.length === 2) {\n try {\n const varp = parseInt(parts[0])\n const timestamp = parseInt(parts[1])\n birdHouseData.set(\n space,\n new BirdHouseData(space, varp, timestamp)\n )\n updated = true\n } catch (e) {}\n }\n }\n if (!updated) {\n birdHouseData.set(space, null)\n }\n }\n }\n return birdHouseData\n }\n}\nBirdHouseTracker['__class'] = 'timetracking.BirdHouseTracker'\nimport { TimeTrackingConfig } from './TimeTrackingConfig'\nimport { BirdHouseData } from './BirdHouseData'\nimport { BirdHouseSpace } from './BirdHouseSpace'\n","import { FarmingWorld } from './timetracking/FarmingWorld'\nimport { FarmingTracker } from './timetracking/FarmingTracker'\nimport { CropState } from './timetracking/CropState'\nimport { getConfig, getSelectedAccount } from './config'\nimport { createSelector } from 'reselect'\nimport { PatchImplementation } from './timetracking/PatchImplementation'\nimport { Tab } from './timetracking/Tab'\nimport { ItemID } from './timetracking/ItemID'\nimport {\n BirdHouseState,\n BirdHouseState_$WRAPPER\n} from './timetracking/BirdHouseState'\nimport { BirdHouseTracker } from './timetracking/BirdHouseTracker'\nimport { BirdHouse, BirdHouse_$WRAPPER } from './timetracking/BirdHouse'\nimport { BirdHouseSpace } from './timetracking/BirdHouseSpace'\n\nfunction adjustColor(color, amount) {\n return (\n '#' +\n color\n .replace(/^#/, '')\n .replace(/../g, color =>\n (\n '0' +\n Math.min(255, Math.max(0, parseInt(color, 16) + amount)).toString(16)\n ).substr(-2)\n )\n )\n}\n\nfunction getBirdStateColor(state) {\n switch (state) {\n case BirdHouseState.EMPTY:\n case BirdHouseState.UNKNOWN:\n return '#4D4D4D'\n case BirdHouseState.BUILT:\n return '#E6961E'\n case BirdHouseState.SEEDED:\n default:\n return '#26A831'\n }\n}\n\nfunction getCropStateColor(state) {\n switch (state) {\n case CropState.DEAD:\n return '#b81818'\n case CropState.DISEASED:\n case CropState.FILLING:\n return '#E6961E'\n case CropState.EMPTY:\n return '#FF4D4D4D'\n case CropState.HARVESTABLE:\n case CropState.GROWING:\n default:\n return '#26A831'\n }\n}\n\nfunction getFormattedEstimate(remainingSeconds) {\n let sb = 'in '\n const duration = Math.floor((remainingSeconds + 59) / 60)\n const minutes = Math.floor(duration % 60)\n const hours = Math.floor((duration / 60) % 24)\n const days = Math.floor(duration / (60 * 24))\n if (days > 0) {\n sb += days + 'd '\n }\n if (hours > 0) {\n sb += hours + 'h '\n }\n if (minutes > 0) {\n sb += minutes + 'm '\n }\n return sb\n}\n\nfunction preparePanel() {\n return {\n title: '',\n subtitle: '',\n icon: 0,\n estimateText: '',\n tooltipText: '',\n progress: {\n minimumValue: 0,\n maximumValue: 1,\n value: 0,\n visible: true,\n background: adjustColor('#26A831', -60),\n foreground: '#26A831'\n }\n }\n}\n\nfunction buildBirdhouseData(tabEntries, getConfiguration) {\n const birdhouseTracker = new BirdHouseTracker()\n const birdhouseTabs = birdhouseTracker.loadFromConfig(getConfiguration)\n const unixNow = new Date().getTime() / 1000\n const tab = Tab['_$wrappers'][Tab.BIRD_HOUSE]\n\n const tabEntry = {\n name: tab.getName(),\n icon: tab.getItemID(),\n panels: []\n }\n\n for (const [space, data] of birdhouseTabs.entries()) {\n const spaceValue = BirdHouseSpace['_$wrappers'][space]\n let value = -1\n let startTime = 0\n\n if (data != null) {\n value = data.getVarp()\n startTime = data.getTimestamp()\n }\n\n const birdHouse =\n BirdHouse['_$wrappers'][BirdHouse_$WRAPPER.fromVarpValue(value)]\n const state = BirdHouseState_$WRAPPER.fromVarpValue(value)\n const panel = preparePanel()\n panel.title = spaceValue.getName()\n panel.progress.maximumValue = 3000\n\n if (birdHouse == null) {\n panel.icon = ItemID.FEATHER\n panel.progress.visible = false\n } else {\n panel.icon = birdHouse.getItemID()\n panel.tooltipText = birdHouse.getName()\n panel.progress.visible = true\n }\n\n panel.progress.foreground = getBirdStateColor(state)\n panel.progress.background = adjustColor(getBirdStateColor(state), -60)\n\n switch (state) {\n case BirdHouseState.EMPTY:\n panel.tooltipText = 'Empty'\n panel.estimateText = 'Empty'\n break\n case BirdHouseState.BUILT:\n panel.progress.value = 0\n panel.estimateText = 'Built'\n break\n case BirdHouseState.SEEDED:\n const remainingTime = startTime + 3000 - unixNow\n if (remainingTime <= 0) {\n panel.progress.value = 3000\n panel.estimateText = 'Done'\n } else {\n panel.progress.value = 3000 - remainingTime\n panel.estimateText = 'Done ' + getFormattedEstimate(remainingTime)\n }\n break\n default:\n panel.tooltipText = 'Unknown state'\n panel.estimateText = 'Unknown'\n break\n }\n\n tabEntry.panels.push(panel)\n }\n\n tabEntries.push(tabEntry)\n}\n\nfunction buildFarmingData(tabEntries, getConfiguration) {\n const farmingTracker = new FarmingTracker()\n const farmingWorld = new FarmingWorld()\n const farmingTabs = farmingWorld.getTabs()\n\n for (const [tabsKey, tabList] of farmingTabs.entries()) {\n const tab = Tab['_$wrappers'][tabsKey]\n tabList.sort((a, b) => a.getName().localeCompare(b.getName()))\n tabList.sort((a, b) =>\n a.getRegion().getName().localeCompare(b.getRegion().getName())\n )\n\n const tabEntry = {\n name: tab.getName(),\n icon: tab.getItemID(),\n panels: []\n }\n\n const unixNow = new Date().getTime() / 1000\n\n for (let patch of tabList) {\n const panel = preparePanel()\n panel.icon = ItemID.WEEDS\n\n panel.title =\n patch.getRegion().getName() +\n (patch.getName() == null || patch.getName() === ''\n ? ''\n : ' (' + patch.getName() + ')')\n\n const implementation =\n PatchImplementation['_$wrappers'][patch.getImplementation()]\n\n panel.subtitle =\n implementation.getName() != null && implementation.getName() !== ''\n ? implementation.getName()\n : ''\n\n const prediction = farmingTracker.predictPatch(patch, getConfiguration)\n\n if (prediction == null) {\n panel.tooltipText = 'Unknown state'\n panel.estimateText = 'Unknown'\n panel.progress.visible = false\n tabEntry.panels.push(panel)\n continue\n }\n\n const produce =\n PatchImplementation.Produce['_$wrappers'][prediction.getProduce()]\n\n if (produce.getItemID() < 0) {\n panel.icon = ItemID.WEEDS\n panel.tooltipText = 'Unknown state'\n } else {\n panel.icon = produce.getItemID()\n panel.tooltipText = produce.getName()\n }\n\n switch (prediction.getCropState()) {\n case CropState.HARVESTABLE:\n panel.estimateText = 'Done'\n break\n case CropState.GROWING:\n if (prediction.getDoneEstimate() < unixNow) {\n panel.estimateText = 'Done'\n } else {\n panel.estimateText =\n 'Done ' +\n getFormattedEstimate(prediction.getDoneEstimate() - unixNow)\n panel.estimateText =\n 'Done ' +\n getFormattedEstimate(prediction.getDoneEstimate() - unixNow)\n }\n break\n case CropState.DISEASED:\n panel.estimateText = 'Diseased'\n break\n case CropState.DEAD:\n panel.estimateText = 'Dead'\n break\n case CropState.EMPTY:\n panel.estimateText = 'Empty'\n break\n case CropState.FILLING:\n panel.estimateText = 'Filling'\n break\n default:\n console.warn('Unknown crop state!')\n }\n\n /* Hide any fully grown weeds' progress bar. */\n if (\n prediction.getProduce() !== PatchImplementation.Produce.WEEDS ||\n prediction.getStage() < prediction.getStages() - 1\n ) {\n panel.progress.visible = true\n panel.progress.foreground = getCropStateColor(prediction.getCropState())\n panel.progress.background = adjustColor(\n getCropStateColor(prediction.getCropState()),\n -60\n )\n panel.progress.maximumValue = prediction.getStages() - 1\n panel.progress.value = prediction.getStage()\n } else {\n panel.progress.visible = false\n }\n\n tabEntry.panels.push(panel)\n }\n\n tabEntry.panels.sort((a, b) => a.title.localeCompare(b.title))\n tabEntry.panels.sort((a, b) => a.subtitle.localeCompare(b.subtitle))\n tabEntries.push(tabEntry)\n }\n}\n\nfunction buildData(account, configuration) {\n function getConfiguration(group, key) {\n if (!account) {\n return null\n }\n\n let value =\n configuration[group + '.rsprofile.' + account.accountId + '.' + key]\n\n if (!value) {\n value = null\n }\n\n return value\n }\n\n const tabEntries = []\n buildFarmingData(tabEntries, getConfiguration)\n buildBirdhouseData(tabEntries, getConfiguration)\n tabEntries.sort((a, b) => a.name.localeCompare(b.name))\n return tabEntries\n}\n\nexport const getTimeTracking = createSelector(\n getConfig,\n getSelectedAccount,\n (config, account) => {\n return buildData(account, config)\n }\n)\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport { fetchConfig } from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport '../../components/tooltip.css'\nimport '../tag.css'\nimport { getTimeTracking } from '../../modules/time-tracking'\nimport { formatIcon } from '../../util'\nimport '../../components/tooltip.css'\nimport './time-tracking.css'\n\nconst buildProgress = ({\n minimumValue,\n maximumValue,\n value,\n visible,\n foreground,\n background\n}) => {\n if (!visible) {\n return \n }\n\n const span = maximumValue - minimumValue\n const currentValue = value - minimumValue\n const pc = currentValue / span\n const width = 100\n const progressFill = width * Math.min(1, pc)\n return (\n \n )\n}\n\nconst buildTracker = panel => (\n \n \n
\n {panel.tooltipText} \n
\n
\n
\n
\n
\n
\n {panel.title + ' '}\n {panel.subtitle && {panel.subtitle} }\n \n {panel.estimateText} \n {buildProgress(panel.progress)}\n \n
\n \n)\n\nconst buildTab = tab => (\n \n \n
{tab.panels.map(buildTracker)} \n
\n)\n\nconst buildTopTab = tab => (\n \n
\n \n \n
\n {tab.name} \n
\n
\n)\n\nconst TimeTracking = ({ timeTracking }) => (\n \n \n {timeTracking.map(buildTopTab)}\n
\n {timeTracking.map(buildTab)}\n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n timeTracking: getTimeTracking(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(TimeTracking))\n","import { h } from 'preact'\nimport {\n changeAccount,\n fetchConfig,\n getProfileConfig,\n getSelectedAccount,\n updateConfig\n} from '../../modules/config'\nimport { bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport { route } from 'preact-router'\nimport { upperToTitleCase } from '../../util'\n\nconst deleteAccount = async (profileConfig, updateConfig, changeAccount) => {\n const newConfig = {\n ...profileConfig\n }\n\n Object.keys(newConfig).forEach(k => (newConfig[k] = null))\n changeAccount(null)\n await updateConfig(newConfig)\n route('/account/home')\n}\n\nconst changeList = profileConfig =>\n Object.keys(profileConfig)\n .map(k => k.split('.')[0])\n .filter((v, i, a) => a.indexOf(v) === i)\n .filter(k => k !== 'rsprofile')\n .map(k => (\n \n {k} \n \n ))\n\nconst accountType = type => {\n if (type !== 'STANDARD') {\n return ' for ' + upperToTitleCase(type)\n }\n\n return ''\n}\n\nconst Delete = ({\n selectedAccount,\n profileConfig,\n updateConfig,\n changeAccount\n}) => {\n if (!selectedAccount) {\n return (\n \n
No RuneScape profile selected
\n
\n )\n }\n\n return (\n \n \n
\n
\n This will delete the RuneScape profile{' '}\n {selectedAccount.displayName} \n {accountType(selectedAccount.type)} which also includes data for:\n
\n
{changeList(profileConfig)} \n
\n \n
\n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n selectedAccount: getSelectedAccount(state),\n profileConfig: getProfileConfig(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n updateConfig,\n fetchBootstrap,\n fetchConfig,\n changeAccount\n },\n dispatch\n )\n\nconst prepareComponentData = async ({ fetchBootstrap, fetchConfig }) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Delete))\n","import { h, Fragment } from 'preact'\nimport '@gouch/to-title-case'\nimport { bindActionCreators } from 'redux'\nimport {\n fetchConfig,\n getTileMarkers,\n getTileMarkersFilter,\n setTileMarkersFilter\n} from '../../modules/config'\nimport { connect } from 'react-redux'\nimport prepare from '../../components/prepare'\nimport { fetchBootstrap } from '../../modules/bootstrap'\nimport '../../components/tooltip.css'\nimport Choice from '../../components/choice'\nimport RuneScapeMap from '../../components/runescape-map'\n\nconst tileName = t => t.name + ' (' + t.region + ')'\n\nconst Tiles = ({ tiles, filter, setTileMarkersFilter }) => {\n if (tiles.length === 0) {\n return null\n }\n\n const choices = tiles.map(tileName)\n filter = filter || choices[0]\n const allTiles = tiles.flatMap(t => t.data)\n const selectedTiles = tiles.find(t => tileName(t) === filter).data\n const mapData = JSON.stringify(selectedTiles)\n\n return (\n \n \n \n
\n \n \n {mapData}\n \n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n tiles: getTileMarkers(state),\n filter: getTileMarkersFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n setTileMarkersFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchItems\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(Tiles))\n","import { h, Fragment } from 'preact'\nimport ago from 's-ago'\nimport { numberWithCommas } from '../../util'\nimport { connect } from 'react-redux'\nimport {\n fetchConfig,\n getFilteredGe,\n getGeFilter,\n setGeFilter\n} from '../../modules/config'\nimport { fetchItems } from '../../modules/item'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../../components/prepare'\nimport SearchBar from '../../components/search-bar'\nimport './grand-exchange.css'\nimport { fetchBootstrap } from '../../modules/bootstrap'\n\nconst formatGeIcon = id =>\n `https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id=${id}`\nconst formatGePage = id =>\n `http://services.runescape.com/m=itemdb_oldschool/viewitem?obj=${id}`\n\nconst buildRecord = record => (\n \n \n
\n
\n
\n {record.name} x {record.quantity}\n \n
\n \n {record.buy ? 'Bought' : 'Sold'} for{' '}\n {numberWithCommas(record.price * record.quantity)} gp (\n {numberWithCommas(record.price)} gp/ea)\n
\n
\n
\n \n {ago(record.date)}\n \n
\n
\n \n)\n\nconst handleChange = (event, setGeFilter) => setGeFilter(event.target.value)\n\nconst GrandExchange = ({ ge, geFilter, setGeFilter }) => (\n \n handleChange(e, setGeFilter)} />\n \n {ge.sort((a, b) => b.date - a.date).map(buildRecord)}\n \n \n)\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n ge: getFilteredGe(state),\n geFilter: getGeFilter(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchItems,\n fetchConfig,\n setGeFilter\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchItems,\n fetchConfig\n}) => {\n await fetchBootstrap()\n await fetchItems()\n await fetchConfig()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(GrandExchange))\n","import { h, Fragment } from 'preact'\nimport { connect } from 'react-redux'\nimport { Link } from 'preact-router'\nimport { bindActionCreators } from 'redux'\nimport Layout from '../components/layout'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { isLoggedIn, logout } from '../modules/account'\nimport Redirect from '../components/redirect'\nimport {\n changeAccount,\n getAccounts,\n getBossLog,\n getLoot,\n getSelectedAccount,\n getSlayerTask,\n getTags,\n getTileMarkers,\n getGe\n} from '../modules/config'\nimport Home from './account/home'\nimport LootTracker from './account/loot-tracker'\nimport NotFound from '../components/not-found'\nimport './account.scss'\nimport Tags from './account/tags'\nimport TimeTracking from './account/time-tracking'\nimport { getTimeTracking } from '../modules/time-tracking'\nimport { upperToTitleCase } from '../util'\nimport Delete from './account/delete'\nimport Tiles from './account/tiles'\nimport GrandExchange from './account/grand-exchange'\n\nconst menu = [\n {\n tag: 'home',\n label: 'Home',\n icon: 'fa-fw fas fa-home',\n component: Home,\n showAccounts: true,\n data: ({ slayerTask, bossLog }) => ({\n slayerTask,\n bossLog\n })\n },\n {\n tag: 'grand-exchange',\n label: 'Grand Exchange',\n icon: 'fa-fw fas fa-balance-scale',\n component: GrandExchange,\n showAccounts: true,\n data: ({ rawGe }) =>\n rawGe.map(ge => ({\n buy: ge.buy,\n itemId: ge.itemId,\n quantity: ge.quantity,\n price: ge.price,\n time: ge.time\n }))\n },\n {\n tag: 'loot-tracker',\n label: 'Loot Tracker',\n icon: 'fa-fw fas fa-file-invoice-dollar',\n component: LootTracker,\n showAccounts: true,\n data: ({ rawLoot }) => rawLoot\n },\n {\n tag: 'time-tracking',\n label: 'Time Tracking',\n icon: 'fa-fw fas fa-clock',\n component: TimeTracking,\n showAccounts: true,\n data: ({ rawTimeTracking }) => rawTimeTracking\n },\n {\n tag: 'tags',\n label: 'Tags',\n icon: 'fa-fw fas fa-code',\n component: Tags,\n data: ({ rawTags }) => rawTags\n },\n {\n tag: 'tile-markers',\n label: 'Tile markers',\n icon: 'fa-fw fas fa-tree',\n component: Tiles,\n data: ({ rawTiles }) => rawTiles\n },\n {\n tag: 'delete',\n label: 'Delete profile',\n icon: 'fa-fw fas fa-trash',\n class: 'list-group-item-danger',\n bottom: true,\n component: Delete,\n showAccounts: true\n }\n]\n\nconst menuItem = (currentMenu, m) => (\n \n {m.label}\n \n)\n\nconst menuBody = currentMenu => currentMenu.component\nconst menuExport = (currentMenu, props) => {\n if (!currentMenu.data) {\n return null\n }\n\n const currentSelector = currentMenu.data\n const dataJson = currentSelector(props)\n const data = URL.createObjectURL(\n new Blob([JSON.stringify(dataJson)], {\n type: 'application/octet-stream'\n })\n )\n return (\n \n Export {currentMenu.label}\n \n )\n}\n\nconst accountType = type => {\n if (type && type !== 'STANDARD') {\n return {upperToTitleCase(type)} \n }\n\n return ''\n}\n\nconst accountMenu = (account, selectedAccount, changeAccount) => (\n changeAccount(account)}\n >\n {account.displayName}{' '}\n {accountType(account.type)}\n \n)\n\nconst Account = ({\n tag,\n accounts,\n changeAccount,\n loggedIn,\n logout,\n ...props\n}) => {\n if (!loggedIn) {\n return \n }\n\n const currentMenu = menu.find(m => m.tag === tag)\n const topMenu = menu.filter(m => !m.bottom)\n const bottomMenu = menu.filter(m => m.bottom)\n\n if (!currentMenu) {\n return \n }\n\n const MenuBody = menuBody(currentMenu)\n\n return (\n \n \n \n \n
\n
\n
\n {topMenu.map(m => menuItem(currentMenu, m))}\n \n
\n {menuExport(currentMenu, props)}\n \n Logout\n \n \n {currentMenu.showAccounts && (\n
\n RuneScape Profile
\n \n {accounts\n .filter(a => a.displayName !== null)\n .map(a =>\n accountMenu(a, props.selectedAccount, changeAccount)\n )}\n {bottomMenu.map(m => menuItem(currentMenu, m))}\n \n \n )}\n
\n
\n \n
\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n loggedIn: isLoggedIn(state),\n accounts: getAccounts(state),\n selectedAccount: getSelectedAccount(state),\n slayerTask: getSlayerTask(state),\n bossLog: getBossLog(state),\n rawGe: getGe(state),\n rawLoot: getLoot(state),\n rawTags: getTags(state),\n rawTimeTracking: getTimeTracking(state),\n rawTiles: getTileMarkers(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n logout,\n changeAccount\n },\n dispatch\n )\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Account)\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/80.52e210e3.chunk.js b/static/js/80.c056eb10.chunk.js
similarity index 98%
rename from static/js/80.52e210e3.chunk.js
rename to static/js/80.c056eb10.chunk.js
index 13521707d..524e45a3e 100644
--- a/static/js/80.52e210e3.chunk.js
+++ b/static/js/80.c056eb10.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[80],{355:function(e,n){e.exports={title:"1.5.8 Release",description:"Menu collapsing and Kebos fixes",author:"Adam",body:' The ground items plugin now has an option to combine identical ground item menu\nentries.
\n
\nThe timers plugin has been updated with all of the new farming patches in the\nnew farming guild. Additionally, the slayer plugin has been fixed to recognize\nslayer tasks assigned with locations from Konar.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd clue scroll north of Mount Karuulm \nFix tile indicators to always show above tile markers \nAdd farming guild hot cold location to clue plugin \nFix prayer levels needed to next combat level calculation in combat level\nplugin \nAdd farming guild farming patches world map tooltips \nAdd Alchemical Hydra respawn timer \nAdd Aerial Fishing to fishing plugin \nFix agility shortcut requirements on the world map for the slayer tower\nshortcuts \nAdd Kebos Lowlands teleports and shortcuts to world map \nAdd task icons to slayer plugin for Kebos slayer monsters \nAdd hydra
abbreviation for !kc
command \nFix dropped item notifications to respect the only show loot
option \nAdd Wyrm, Drake, and Hydra bones to skill calculator plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (10):\n http api: add runelite user agent to requests\n http service: disable logback packaging data\n loot tracker service: correct kill expiry query to use idx_time propertly\n account service: default last_used to current time\n http service: fix servlet not starting\n Add menu entry collapsing to ground items plugin\n Revert "Merge pull request #7089 from TheStonedTurtle/OverlayRightClickMenu"\n http service: replace JedisPool with own pool implementation\n chat commands: make !qp async\n http service: remove unused import\n\nBrady (3):\n Add new farming patch trees to Menu Entry Swapper (pay) (#7286)\n Add clue scroll north of Mount Karruulm (#7285)\n Change tile indicator priority to be above ground markers (#7323)\n\nCharlie Waters (3):\n Slayer plugin: minor config rearranging\n Slayer plugin: change regex groups to named groups\n Slayer plugin: Add task location tracking\n\nDannysPVM (1):\n Only log the IOException message on failure to submit CML update.\n\nDustin Kieler (1):\n Update Tree Gnome Village h/c description and add Farming Guild h/c location (#7301)\n\nH\xe5kon Rosseland Paulsen (1):\n Accept frozen and volcanic whip as emote clue requirement (#7318)\n\nJake Wilson (1):\n timetracking: add default time in minutes to config (#7227)\n\nJordan Atwood (3):\n combatlevel: Clean up plugin code\n combatlevel: Fix prayer level needed to next combat\n Fix world map surface selector widget ID\n\nJourney (1):\n Add Farming Guild farming patch world map tooltips (#7268)\n\nKamiel (1):\n Fix hot/cold clue location description typo\n\nKeith-Cancel (2):\n Add "fog" and "draw distance" tags to GPU plugin (#7306)\n Add Alchemical Hydra Respawn timer (#7313)\n\nMagic fTail (2):\n Add Aerial Fishing to fishing plugin\n Add item mappings for items introduced in Kebos update\n\nMax Weber (4):\n cache: Generate NullItemID\n ThinProgressBar: Manually paint\n PatchImplementationTest: Don\'t immediately fail upon finding an error\n farming: Support Kebos Lowlands update\n\nMonster Sync (1):\n Remove misspelled \'piscarilius\' from achievement diary plugin.\n\nMonsterxSync (1):\n Add missing requirement to kourend & kebos diary plugin.\n\nRich (1):\n Correct the agility shortcuts at slayer tower (lvl 61 and 71) (#7293)\n\nSebastiaanVanspauwen (3):\n Worldmap: Add Kebos Lowlands teleports and shortcuts (#7291)\n Worldmap: Fix CIR fairy ring location (#7308)\n Slayer plugin: Add slayer icons for kebos slayer monsters (#7330)\n\nSteffen Hauge (1):\n Add Alchemical Hydra to kc abbreviations\n\nTheStonedTurtle (2):\n Move getImageSpritePixels to ImageUtil\n Add right click functionality to overlays\n\nTim Granata (2):\n Add Ring of Visibility emote clue requirement\n Correct chinchompa h/c clue typo\n\nTomas Slusny (6):\n Respect "Only show loot" option for item notifications\n Remove tags from loot tracker box title\n Add support for unarmed a speed, and inverse a speed display\n Update item variations to latest OSRS cache\n Add ClientTick event\n Use client real dimensions for canvasTopRight\n\nTrevor Guidry (1):\n Make Pyramid Plunder widget layoutable\n\nWilliam (1):\n Add Mount Karuulm agility shortcuts to agility plugin (#7302)\n\nermalsh (1):\n idle notifier: add Piscarilius crane repair\n\nsteffenhauge (1):\n Add support for "quick-open" at Hydra to MenuEntrySwapper (#7311)\n\nwonnetz (1):\n Add Wyrm Bones, Drake Bones, and Hydra Bones to SkillCalc plugin (#7274)\n
\n',image:"/img/blog/1.5.8-Release/menucollapse.png"}}}]);
-//# sourceMappingURL=80.52e210e3.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[80],{356:function(e,n){e.exports={title:"1.5.8 Release",description:"Menu collapsing and Kebos fixes",author:"Adam",body:'The ground items plugin now has an option to combine identical ground item menu\nentries.
\n
\nThe timers plugin has been updated with all of the new farming patches in the\nnew farming guild. Additionally, the slayer plugin has been fixed to recognize\nslayer tasks assigned with locations from Konar.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd clue scroll north of Mount Karuulm \nFix tile indicators to always show above tile markers \nAdd farming guild hot cold location to clue plugin \nFix prayer levels needed to next combat level calculation in combat level\nplugin \nAdd farming guild farming patches world map tooltips \nAdd Alchemical Hydra respawn timer \nAdd Aerial Fishing to fishing plugin \nFix agility shortcut requirements on the world map for the slayer tower\nshortcuts \nAdd Kebos Lowlands teleports and shortcuts to world map \nAdd task icons to slayer plugin for Kebos slayer monsters \nAdd hydra
abbreviation for !kc
command \nFix dropped item notifications to respect the only show loot
option \nAdd Wyrm, Drake, and Hydra bones to skill calculator plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 26 contributors this release!
\nAdam (10):\n http api: add runelite user agent to requests\n http service: disable logback packaging data\n loot tracker service: correct kill expiry query to use idx_time propertly\n account service: default last_used to current time\n http service: fix servlet not starting\n Add menu entry collapsing to ground items plugin\n Revert "Merge pull request #7089 from TheStonedTurtle/OverlayRightClickMenu"\n http service: replace JedisPool with own pool implementation\n chat commands: make !qp async\n http service: remove unused import\n\nBrady (3):\n Add new farming patch trees to Menu Entry Swapper (pay) (#7286)\n Add clue scroll north of Mount Karruulm (#7285)\n Change tile indicator priority to be above ground markers (#7323)\n\nCharlie Waters (3):\n Slayer plugin: minor config rearranging\n Slayer plugin: change regex groups to named groups\n Slayer plugin: Add task location tracking\n\nDannysPVM (1):\n Only log the IOException message on failure to submit CML update.\n\nDustin Kieler (1):\n Update Tree Gnome Village h/c description and add Farming Guild h/c location (#7301)\n\nH\xe5kon Rosseland Paulsen (1):\n Accept frozen and volcanic whip as emote clue requirement (#7318)\n\nJake Wilson (1):\n timetracking: add default time in minutes to config (#7227)\n\nJordan Atwood (3):\n combatlevel: Clean up plugin code\n combatlevel: Fix prayer level needed to next combat\n Fix world map surface selector widget ID\n\nJourney (1):\n Add Farming Guild farming patch world map tooltips (#7268)\n\nKamiel (1):\n Fix hot/cold clue location description typo\n\nKeith-Cancel (2):\n Add "fog" and "draw distance" tags to GPU plugin (#7306)\n Add Alchemical Hydra Respawn timer (#7313)\n\nMagic fTail (2):\n Add Aerial Fishing to fishing plugin\n Add item mappings for items introduced in Kebos update\n\nMax Weber (4):\n cache: Generate NullItemID\n ThinProgressBar: Manually paint\n PatchImplementationTest: Don\'t immediately fail upon finding an error\n farming: Support Kebos Lowlands update\n\nMonster Sync (1):\n Remove misspelled \'piscarilius\' from achievement diary plugin.\n\nMonsterxSync (1):\n Add missing requirement to kourend & kebos diary plugin.\n\nRich (1):\n Correct the agility shortcuts at slayer tower (lvl 61 and 71) (#7293)\n\nSebastiaanVanspauwen (3):\n Worldmap: Add Kebos Lowlands teleports and shortcuts (#7291)\n Worldmap: Fix CIR fairy ring location (#7308)\n Slayer plugin: Add slayer icons for kebos slayer monsters (#7330)\n\nSteffen Hauge (1):\n Add Alchemical Hydra to kc abbreviations\n\nTheStonedTurtle (2):\n Move getImageSpritePixels to ImageUtil\n Add right click functionality to overlays\n\nTim Granata (2):\n Add Ring of Visibility emote clue requirement\n Correct chinchompa h/c clue typo\n\nTomas Slusny (6):\n Respect "Only show loot" option for item notifications\n Remove tags from loot tracker box title\n Add support for unarmed a speed, and inverse a speed display\n Update item variations to latest OSRS cache\n Add ClientTick event\n Use client real dimensions for canvasTopRight\n\nTrevor Guidry (1):\n Make Pyramid Plunder widget layoutable\n\nWilliam (1):\n Add Mount Karuulm agility shortcuts to agility plugin (#7302)\n\nermalsh (1):\n idle notifier: add Piscarilius crane repair\n\nsteffenhauge (1):\n Add support for "quick-open" at Hydra to MenuEntrySwapper (#7311)\n\nwonnetz (1):\n Add Wyrm Bones, Drake Bones, and Hydra Bones to SkillCalc plugin (#7274)\n
\n',image:"/img/blog/1.5.8-Release/menucollapse.png"}}}]);
+//# sourceMappingURL=80.c056eb10.chunk.js.map
\ No newline at end of file
diff --git a/static/js/80.52e210e3.chunk.js.map b/static/js/80.c056eb10.chunk.js.map
similarity index 98%
rename from static/js/80.52e210e3.chunk.js.map
rename to static/js/80.c056eb10.chunk.js.map
index 3e30d5353..3ddd2c933 100644
--- a/static/js/80.52e210e3.chunk.js.map
+++ b/static/js/80.c056eb10.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-01-17-10-00-1.5.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kCAAkC,OAAS,OAAO,KAAO,6sKAA+sK,MAAQ","file":"static/js/80.52e210e3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.8 Release\",\"description\":\"Menu collapsing and Kebos fixes\",\"author\":\"Adam\",\"body\":\"The ground items plugin now has an option to combine identical ground item menu\\nentries.
\\n
\\nThe timers plugin has been updated with all of the new farming patches in the\\nnew farming guild. Additionally, the slayer plugin has been fixed to recognize\\nslayer tasks assigned with locations from Konar.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd clue scroll north of Mount Karuulm \\nFix tile indicators to always show above tile markers \\nAdd farming guild hot cold location to clue plugin \\nFix prayer levels needed to next combat level calculation in combat level\\nplugin \\nAdd farming guild farming patches world map tooltips \\nAdd Alchemical Hydra respawn timer \\nAdd Aerial Fishing to fishing plugin \\nFix agility shortcut requirements on the world map for the slayer tower\\nshortcuts \\nAdd Kebos Lowlands teleports and shortcuts to world map \\nAdd task icons to slayer plugin for Kebos slayer monsters \\nAdd hydra
abbreviation for !kc
command \\nFix dropped item notifications to respect the only show loot
option \\nAdd Wyrm, Drake, and Hydra bones to skill calculator plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (10):\\n http api: add runelite user agent to requests\\n http service: disable logback packaging data\\n loot tracker service: correct kill expiry query to use idx_time propertly\\n account service: default last_used to current time\\n http service: fix servlet not starting\\n Add menu entry collapsing to ground items plugin\\n Revert "Merge pull request #7089 from TheStonedTurtle/OverlayRightClickMenu"\\n http service: replace JedisPool with own pool implementation\\n chat commands: make !qp async\\n http service: remove unused import\\n\\nBrady (3):\\n Add new farming patch trees to Menu Entry Swapper (pay) (#7286)\\n Add clue scroll north of Mount Karruulm (#7285)\\n Change tile indicator priority to be above ground markers (#7323)\\n\\nCharlie Waters (3):\\n Slayer plugin: minor config rearranging\\n Slayer plugin: change regex groups to named groups\\n Slayer plugin: Add task location tracking\\n\\nDannysPVM (1):\\n Only log the IOException message on failure to submit CML update.\\n\\nDustin Kieler (1):\\n Update Tree Gnome Village h/c description and add Farming Guild h/c location (#7301)\\n\\nHåkon Rosseland Paulsen (1):\\n Accept frozen and volcanic whip as emote clue requirement (#7318)\\n\\nJake Wilson (1):\\n timetracking: add default time in minutes to config (#7227)\\n\\nJordan Atwood (3):\\n combatlevel: Clean up plugin code\\n combatlevel: Fix prayer level needed to next combat\\n Fix world map surface selector widget ID\\n\\nJourney (1):\\n Add Farming Guild farming patch world map tooltips (#7268)\\n\\nKamiel (1):\\n Fix hot/cold clue location description typo\\n\\nKeith-Cancel (2):\\n Add "fog" and "draw distance" tags to GPU plugin (#7306)\\n Add Alchemical Hydra Respawn timer (#7313)\\n\\nMagic fTail (2):\\n Add Aerial Fishing to fishing plugin\\n Add item mappings for items introduced in Kebos update\\n\\nMax Weber (4):\\n cache: Generate NullItemID\\n ThinProgressBar: Manually paint\\n PatchImplementationTest: Don't immediately fail upon finding an error\\n farming: Support Kebos Lowlands update\\n\\nMonster Sync (1):\\n Remove misspelled 'piscarilius' from achievement diary plugin.\\n\\nMonsterxSync (1):\\n Add missing requirement to kourend & kebos diary plugin.\\n\\nRich (1):\\n Correct the agility shortcuts at slayer tower (lvl 61 and 71) (#7293)\\n\\nSebastiaanVanspauwen (3):\\n Worldmap: Add Kebos Lowlands teleports and shortcuts (#7291)\\n Worldmap: Fix CIR fairy ring location (#7308)\\n Slayer plugin: Add slayer icons for kebos slayer monsters (#7330)\\n\\nSteffen Hauge (1):\\n Add Alchemical Hydra to kc abbreviations\\n\\nTheStonedTurtle (2):\\n Move getImageSpritePixels to ImageUtil\\n Add right click functionality to overlays\\n\\nTim Granata (2):\\n Add Ring of Visibility emote clue requirement\\n Correct chinchompa h/c clue typo\\n\\nTomas Slusny (6):\\n Respect "Only show loot" option for item notifications\\n Remove tags from loot tracker box title\\n Add support for unarmed a speed, and inverse a speed display\\n Update item variations to latest OSRS cache\\n Add ClientTick event\\n Use client real dimensions for canvasTopRight\\n\\nTrevor Guidry (1):\\n Make Pyramid Plunder widget layoutable\\n\\nWilliam (1):\\n Add Mount Karuulm agility shortcuts to agility plugin (#7302)\\n\\nermalsh (1):\\n idle notifier: add Piscarilius crane repair\\n\\nsteffenhauge (1):\\n Add support for "quick-open" at Hydra to MenuEntrySwapper (#7311)\\n\\nwonnetz (1):\\n Add Wyrm Bones, Drake Bones, and Hydra Bones to SkillCalc plugin (#7274)\\n
\\n\",\"image\":\"/img/blog/1.5.8-Release/menucollapse.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-01-17-10-00-1.5.8-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,kCAAkC,OAAS,OAAO,KAAO,6sKAA+sK,MAAQ","file":"static/js/80.c056eb10.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.8 Release\",\"description\":\"Menu collapsing and Kebos fixes\",\"author\":\"Adam\",\"body\":\"The ground items plugin now has an option to combine identical ground item menu\\nentries.
\\n
\\nThe timers plugin has been updated with all of the new farming patches in the\\nnew farming guild. Additionally, the slayer plugin has been fixed to recognize\\nslayer tasks assigned with locations from Konar.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd clue scroll north of Mount Karuulm \\nFix tile indicators to always show above tile markers \\nAdd farming guild hot cold location to clue plugin \\nFix prayer levels needed to next combat level calculation in combat level\\nplugin \\nAdd farming guild farming patches world map tooltips \\nAdd Alchemical Hydra respawn timer \\nAdd Aerial Fishing to fishing plugin \\nFix agility shortcut requirements on the world map for the slayer tower\\nshortcuts \\nAdd Kebos Lowlands teleports and shortcuts to world map \\nAdd task icons to slayer plugin for Kebos slayer monsters \\nAdd hydra
abbreviation for !kc
command \\nFix dropped item notifications to respect the only show loot
option \\nAdd Wyrm, Drake, and Hydra bones to skill calculator plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 26 contributors this release!
\\nAdam (10):\\n http api: add runelite user agent to requests\\n http service: disable logback packaging data\\n loot tracker service: correct kill expiry query to use idx_time propertly\\n account service: default last_used to current time\\n http service: fix servlet not starting\\n Add menu entry collapsing to ground items plugin\\n Revert "Merge pull request #7089 from TheStonedTurtle/OverlayRightClickMenu"\\n http service: replace JedisPool with own pool implementation\\n chat commands: make !qp async\\n http service: remove unused import\\n\\nBrady (3):\\n Add new farming patch trees to Menu Entry Swapper (pay) (#7286)\\n Add clue scroll north of Mount Karruulm (#7285)\\n Change tile indicator priority to be above ground markers (#7323)\\n\\nCharlie Waters (3):\\n Slayer plugin: minor config rearranging\\n Slayer plugin: change regex groups to named groups\\n Slayer plugin: Add task location tracking\\n\\nDannysPVM (1):\\n Only log the IOException message on failure to submit CML update.\\n\\nDustin Kieler (1):\\n Update Tree Gnome Village h/c description and add Farming Guild h/c location (#7301)\\n\\nHåkon Rosseland Paulsen (1):\\n Accept frozen and volcanic whip as emote clue requirement (#7318)\\n\\nJake Wilson (1):\\n timetracking: add default time in minutes to config (#7227)\\n\\nJordan Atwood (3):\\n combatlevel: Clean up plugin code\\n combatlevel: Fix prayer level needed to next combat\\n Fix world map surface selector widget ID\\n\\nJourney (1):\\n Add Farming Guild farming patch world map tooltips (#7268)\\n\\nKamiel (1):\\n Fix hot/cold clue location description typo\\n\\nKeith-Cancel (2):\\n Add "fog" and "draw distance" tags to GPU plugin (#7306)\\n Add Alchemical Hydra Respawn timer (#7313)\\n\\nMagic fTail (2):\\n Add Aerial Fishing to fishing plugin\\n Add item mappings for items introduced in Kebos update\\n\\nMax Weber (4):\\n cache: Generate NullItemID\\n ThinProgressBar: Manually paint\\n PatchImplementationTest: Don't immediately fail upon finding an error\\n farming: Support Kebos Lowlands update\\n\\nMonster Sync (1):\\n Remove misspelled 'piscarilius' from achievement diary plugin.\\n\\nMonsterxSync (1):\\n Add missing requirement to kourend & kebos diary plugin.\\n\\nRich (1):\\n Correct the agility shortcuts at slayer tower (lvl 61 and 71) (#7293)\\n\\nSebastiaanVanspauwen (3):\\n Worldmap: Add Kebos Lowlands teleports and shortcuts (#7291)\\n Worldmap: Fix CIR fairy ring location (#7308)\\n Slayer plugin: Add slayer icons for kebos slayer monsters (#7330)\\n\\nSteffen Hauge (1):\\n Add Alchemical Hydra to kc abbreviations\\n\\nTheStonedTurtle (2):\\n Move getImageSpritePixels to ImageUtil\\n Add right click functionality to overlays\\n\\nTim Granata (2):\\n Add Ring of Visibility emote clue requirement\\n Correct chinchompa h/c clue typo\\n\\nTomas Slusny (6):\\n Respect "Only show loot" option for item notifications\\n Remove tags from loot tracker box title\\n Add support for unarmed a speed, and inverse a speed display\\n Update item variations to latest OSRS cache\\n Add ClientTick event\\n Use client real dimensions for canvasTopRight\\n\\nTrevor Guidry (1):\\n Make Pyramid Plunder widget layoutable\\n\\nWilliam (1):\\n Add Mount Karuulm agility shortcuts to agility plugin (#7302)\\n\\nermalsh (1):\\n idle notifier: add Piscarilius crane repair\\n\\nsteffenhauge (1):\\n Add support for "quick-open" at Hydra to MenuEntrySwapper (#7311)\\n\\nwonnetz (1):\\n Add Wyrm Bones, Drake Bones, and Hydra Bones to SkillCalc plugin (#7274)\\n
\\n\",\"image\":\"/img/blog/1.5.8-Release/menucollapse.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/81.0460d9f7.chunk.js b/static/js/81.4a14a7bf.chunk.js
similarity index 98%
rename from static/js/81.0460d9f7.chunk.js
rename to static/js/81.4a14a7bf.chunk.js
index 8016dbf41..23097c171 100644
--- a/static/js/81.0460d9f7.chunk.js
+++ b/static/js/81.4a14a7bf.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[81],{356:function(e,n){e.exports={title:"1.5.9 Release",description:"!task command and plugin overlay menu options",author:"Jordan",body:'The Slayer plugin now offers a !task
command,\nwhich displays your current task, starting amount and, if applicable, task location.
\n
\nPlugin overlays now support adding right-click menus. Currently, you will only see a "Configure"\noption, but expect to see more relevant and useful options in the future.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nUsers will now be prompted to confirm plugin configuration resets \nThe Clue Scroll plugin correctly shows\nthe second emote required for the Mount Karuulm emote clue \nThe WASD Camera plugin operates correctly\nwhen holding modifier keys \nThe Idle Notifier plugin now sends\nnotifications after making magic tablets \nThe Attack skill color has been changed slightly to be easier to see against the\nXP Globes background \nThe Prayer plugin now recognizes prayer\nbonuses of the ancient staff, devout boots, and bonecrusher necklace \nNew items will now populate more quickly to be found using the\nGrand Exchange plugin search \nThe World Hopper plugin hop chat message\ncan now be disabled \nAnti-venom potions now display the proper time in the\nTimers plugin \n \nAn issue with the world hopper and prayer order plugins post-update has been\nfixed. We would like to remind users that we receive no special insight into\nupcoming updates and so we do not know what will change ahead of time. After an\nupdate, all or none of the client may be broken in unpredictable ways. Please\ndon\'t report issues to Jagex without checking it out on the vanilla client\nfirst.
\nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\nAdam (13):\n idle notifier: add tablet making animation\n item service: detect new items when price scraping\n api: mark getCollisionMaps as nullable\n Add overlay menu support\n Add support for Configuration overlay menus\n Add configure option to many overlays\n examine plugin: split item/quantity lookup from item price lookup\n examine plugin: drop examines for tradable items and large stacks\n examine service: split into controller and service\n examine service: use item descriptions from item service if available\n session manager: lazily open websocket\n loot tracker: move panel updating to EDT on config change\n Add task chat command\n\nBrandon Popson (1):\n Allow full Amulet of the Damned as clue requirement (#7423)\n\nCharlie Waters (1):\n ConfigPanel: Confirm plugin configuration reset\n\nDannysPVM (1):\n Cap fog depth to 100 in the GPU Plugin.\n\nErmal (2):\n Added SPIN after CLAP to Mount Karuulm Emote Clue Closes: #7416\n Removed an extra semicolon Found in IdleNotifierPlugin.java line 392 from latest release\n\nHydrox6 (1):\n Make Game Notification use the Game message highlight colour\n\nJeremy Plsek (1):\n world hopper: allow disabling chat hop message\n\nJoe Iaquinto (1):\n Correct spelling of Skybox bounds exception\n\nJosiah (1):\n Add ancient staff to prayer items list (#7513)\n\nMax Weber (5):\n cache: Add FlatStorage\n cache: Add equals and hashCode to all Definitions\n config: Add ModifierlessKeybind\n wasdcamera: Use modifierless keybinds\n runelite-api, runescape-api: Rename Area to mapElement\n\nTomas Slusny (15):\n Inverse collapse menu entry loop\n Shutdown plugins on window close\n Move close handling to windowClosed event\n Move configManager.sendConfig to RuneLite#shutdown\n Wrap DiscordEventHandlers in native lib try/catch\n Do not discard 1 second requests in Xp tracker\n Change xp tracker filter clean to 3 hours\n Remove OverlayManager#addMenu/removeMenu\n Remove overlayManager#overlayId\n Move overlay menu entries to Overlay class\n Add Text#fromCSV and Text#toCSV\n Replace usage of Spliter/Joiner with toCSV/fromCSV\n Revert "Move close handling to windowClosed event"\n Null-check local location in trap overlay\n Mark localToCanvas methods nullable\n\nermalsh (1):\n Change RGB variable for Attack on XP Globes (more bright) (#7454)\n\ngregg1494 (2):\n Correct agility configuration casing (#7393)\n Fix anti-venom potion timer (#7453)\n\nkevinisninja (1):\n prayer plugin: add devout boots and bonecrusher necklace to prayer items\n\nmaytonsw (1):\n time tracker: correct Iasor farming produce typo\n\ntrimbe (1):\n chat commands: rebuild chatbox input after using clear shortcuts\n
\n',image:"/img/blog/1.5.9-Release/task-command.gif"}}}]);
-//# sourceMappingURL=81.0460d9f7.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[81],{357:function(e,n){e.exports={title:"1.5.9 Release",description:"!task command and plugin overlay menu options",author:"Jordan",body:'The Slayer plugin now offers a !task
command,\nwhich displays your current task, starting amount and, if applicable, task location.
\n
\nPlugin overlays now support adding right-click menus. Currently, you will only see a "Configure"\noption, but expect to see more relevant and useful options in the future.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nUsers will now be prompted to confirm plugin configuration resets \nThe Clue Scroll plugin correctly shows\nthe second emote required for the Mount Karuulm emote clue \nThe WASD Camera plugin operates correctly\nwhen holding modifier keys \nThe Idle Notifier plugin now sends\nnotifications after making magic tablets \nThe Attack skill color has been changed slightly to be easier to see against the\nXP Globes background \nThe Prayer plugin now recognizes prayer\nbonuses of the ancient staff, devout boots, and bonecrusher necklace \nNew items will now populate more quickly to be found using the\nGrand Exchange plugin search \nThe World Hopper plugin hop chat message\ncan now be disabled \nAnti-venom potions now display the proper time in the\nTimers plugin \n \nAn issue with the world hopper and prayer order plugins post-update has been\nfixed. We would like to remind users that we receive no special insight into\nupcoming updates and so we do not know what will change ahead of time. After an\nupdate, all or none of the client may be broken in unpredictable ways. Please\ndon\'t report issues to Jagex without checking it out on the vanilla client\nfirst.
\nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\nAdam (13):\n idle notifier: add tablet making animation\n item service: detect new items when price scraping\n api: mark getCollisionMaps as nullable\n Add overlay menu support\n Add support for Configuration overlay menus\n Add configure option to many overlays\n examine plugin: split item/quantity lookup from item price lookup\n examine plugin: drop examines for tradable items and large stacks\n examine service: split into controller and service\n examine service: use item descriptions from item service if available\n session manager: lazily open websocket\n loot tracker: move panel updating to EDT on config change\n Add task chat command\n\nBrandon Popson (1):\n Allow full Amulet of the Damned as clue requirement (#7423)\n\nCharlie Waters (1):\n ConfigPanel: Confirm plugin configuration reset\n\nDannysPVM (1):\n Cap fog depth to 100 in the GPU Plugin.\n\nErmal (2):\n Added SPIN after CLAP to Mount Karuulm Emote Clue Closes: #7416\n Removed an extra semicolon Found in IdleNotifierPlugin.java line 392 from latest release\n\nHydrox6 (1):\n Make Game Notification use the Game message highlight colour\n\nJeremy Plsek (1):\n world hopper: allow disabling chat hop message\n\nJoe Iaquinto (1):\n Correct spelling of Skybox bounds exception\n\nJosiah (1):\n Add ancient staff to prayer items list (#7513)\n\nMax Weber (5):\n cache: Add FlatStorage\n cache: Add equals and hashCode to all Definitions\n config: Add ModifierlessKeybind\n wasdcamera: Use modifierless keybinds\n runelite-api, runescape-api: Rename Area to mapElement\n\nTomas Slusny (15):\n Inverse collapse menu entry loop\n Shutdown plugins on window close\n Move close handling to windowClosed event\n Move configManager.sendConfig to RuneLite#shutdown\n Wrap DiscordEventHandlers in native lib try/catch\n Do not discard 1 second requests in Xp tracker\n Change xp tracker filter clean to 3 hours\n Remove OverlayManager#addMenu/removeMenu\n Remove overlayManager#overlayId\n Move overlay menu entries to Overlay class\n Add Text#fromCSV and Text#toCSV\n Replace usage of Spliter/Joiner with toCSV/fromCSV\n Revert "Move close handling to windowClosed event"\n Null-check local location in trap overlay\n Mark localToCanvas methods nullable\n\nermalsh (1):\n Change RGB variable for Attack on XP Globes (more bright) (#7454)\n\ngregg1494 (2):\n Correct agility configuration casing (#7393)\n Fix anti-venom potion timer (#7453)\n\nkevinisninja (1):\n prayer plugin: add devout boots and bonecrusher necklace to prayer items\n\nmaytonsw (1):\n time tracker: correct Iasor farming produce typo\n\ntrimbe (1):\n chat commands: rebuild chatbox input after using clear shortcuts\n
\n',image:"/img/blog/1.5.9-Release/task-command.gif"}}}]);
+//# sourceMappingURL=81.4a14a7bf.chunk.js.map
\ No newline at end of file
diff --git a/static/js/81.0460d9f7.chunk.js.map b/static/js/81.4a14a7bf.chunk.js.map
similarity index 99%
rename from static/js/81.0460d9f7.chunk.js.map
rename to static/js/81.4a14a7bf.chunk.js.map
index a675fea2b..e987e3e54 100644
--- a/static/js/81.0460d9f7.chunk.js.map
+++ b/static/js/81.4a14a7bf.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-01-24-10-00-1.5.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gDAAgD,OAAS,SAAS,KAAO,6oLAA0sL,MAAQ","file":"static/js/81.0460d9f7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.9 Release\",\"description\":\"!task command and plugin overlay menu options\",\"author\":\"Jordan\",\"body\":\"The Slayer plugin now offers a !task
command,\\nwhich displays your current task, starting amount and, if applicable, task location.
\\n
\\nPlugin overlays now support adding right-click menus. Currently, you will only see a "Configure"\\noption, but expect to see more relevant and useful options in the future.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUsers will now be prompted to confirm plugin configuration resets \\nThe Clue Scroll plugin correctly shows\\nthe second emote required for the Mount Karuulm emote clue \\nThe WASD Camera plugin operates correctly\\nwhen holding modifier keys \\nThe Idle Notifier plugin now sends\\nnotifications after making magic tablets \\nThe Attack skill color has been changed slightly to be easier to see against the\\nXP Globes background \\nThe Prayer plugin now recognizes prayer\\nbonuses of the ancient staff, devout boots, and bonecrusher necklace \\nNew items will now populate more quickly to be found using the\\nGrand Exchange plugin search \\nThe World Hopper plugin hop chat message\\ncan now be disabled \\nAnti-venom potions now display the proper time in the\\nTimers plugin \\n \\nAn issue with the world hopper and prayer order plugins post-update has been\\nfixed. We would like to remind users that we receive no special insight into\\nupcoming updates and so we do not know what will change ahead of time. After an\\nupdate, all or none of the client may be broken in unpredictable ways. Please\\ndon't report issues to Jagex without checking it out on the vanilla client\\nfirst.
\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\nAdam (13):\\n idle notifier: add tablet making animation\\n item service: detect new items when price scraping\\n api: mark getCollisionMaps as nullable\\n Add overlay menu support\\n Add support for Configuration overlay menus\\n Add configure option to many overlays\\n examine plugin: split item/quantity lookup from item price lookup\\n examine plugin: drop examines for tradable items and large stacks\\n examine service: split into controller and service\\n examine service: use item descriptions from item service if available\\n session manager: lazily open websocket\\n loot tracker: move panel updating to EDT on config change\\n Add task chat command\\n\\nBrandon Popson (1):\\n Allow full Amulet of the Damned as clue requirement (#7423)\\n\\nCharlie Waters (1):\\n ConfigPanel: Confirm plugin configuration reset\\n\\nDannysPVM (1):\\n Cap fog depth to 100 in the GPU Plugin.\\n\\nErmal (2):\\n Added SPIN after CLAP to Mount Karuulm Emote Clue Closes: #7416\\n Removed an extra semicolon Found in IdleNotifierPlugin.java line 392 from latest release\\n\\nHydrox6 (1):\\n Make Game Notification use the Game message highlight colour\\n\\nJeremy Plsek (1):\\n world hopper: allow disabling chat hop message\\n\\nJoe Iaquinto (1):\\n Correct spelling of Skybox bounds exception\\n\\nJosiah (1):\\n Add ancient staff to prayer items list (#7513)\\n\\nMax Weber (5):\\n cache: Add FlatStorage\\n cache: Add equals and hashCode to all Definitions\\n config: Add ModifierlessKeybind\\n wasdcamera: Use modifierless keybinds\\n runelite-api, runescape-api: Rename Area to mapElement\\n\\nTomas Slusny (15):\\n Inverse collapse menu entry loop\\n Shutdown plugins on window close\\n Move close handling to windowClosed event\\n Move configManager.sendConfig to RuneLite#shutdown\\n Wrap DiscordEventHandlers in native lib try/catch\\n Do not discard 1 second requests in Xp tracker\\n Change xp tracker filter clean to 3 hours\\n Remove OverlayManager#addMenu/removeMenu\\n Remove overlayManager#overlayId\\n Move overlay menu entries to Overlay class\\n Add Text#fromCSV and Text#toCSV\\n Replace usage of Spliter/Joiner with toCSV/fromCSV\\n Revert "Move close handling to windowClosed event"\\n Null-check local location in trap overlay\\n Mark localToCanvas methods nullable\\n\\nermalsh (1):\\n Change RGB variable for Attack on XP Globes (more bright) (#7454)\\n\\ngregg1494 (2):\\n Correct agility configuration casing (#7393)\\n Fix anti-venom potion timer (#7453)\\n\\nkevinisninja (1):\\n prayer plugin: add devout boots and bonecrusher necklace to prayer items\\n\\nmaytonsw (1):\\n time tracker: correct Iasor farming produce typo\\n\\ntrimbe (1):\\n chat commands: rebuild chatbox input after using clear shortcuts\\n
\\n\",\"image\":\"/img/blog/1.5.9-Release/task-command.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-01-24-10-00-1.5.9-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,gBAAgB,YAAc,gDAAgD,OAAS,SAAS,KAAO,6oLAA0sL,MAAQ","file":"static/js/81.4a14a7bf.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.9 Release\",\"description\":\"!task command and plugin overlay menu options\",\"author\":\"Jordan\",\"body\":\"The Slayer plugin now offers a !task
command,\\nwhich displays your current task, starting amount and, if applicable, task location.
\\n
\\nPlugin overlays now support adding right-click menus. Currently, you will only see a "Configure"\\noption, but expect to see more relevant and useful options in the future.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUsers will now be prompted to confirm plugin configuration resets \\nThe Clue Scroll plugin correctly shows\\nthe second emote required for the Mount Karuulm emote clue \\nThe WASD Camera plugin operates correctly\\nwhen holding modifier keys \\nThe Idle Notifier plugin now sends\\nnotifications after making magic tablets \\nThe Attack skill color has been changed slightly to be easier to see against the\\nXP Globes background \\nThe Prayer plugin now recognizes prayer\\nbonuses of the ancient staff, devout boots, and bonecrusher necklace \\nNew items will now populate more quickly to be found using the\\nGrand Exchange plugin search \\nThe World Hopper plugin hop chat message\\ncan now be disabled \\nAnti-venom potions now display the proper time in the\\nTimers plugin \\n \\nAn issue with the world hopper and prayer order plugins post-update has been\\nfixed. We would like to remind users that we receive no special insight into\\nupcoming updates and so we do not know what will change ahead of time. After an\\nupdate, all or none of the client may be broken in unpredictable ways. Please\\ndon't report issues to Jagex without checking it out on the vanilla client\\nfirst.
\\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\nAdam (13):\\n idle notifier: add tablet making animation\\n item service: detect new items when price scraping\\n api: mark getCollisionMaps as nullable\\n Add overlay menu support\\n Add support for Configuration overlay menus\\n Add configure option to many overlays\\n examine plugin: split item/quantity lookup from item price lookup\\n examine plugin: drop examines for tradable items and large stacks\\n examine service: split into controller and service\\n examine service: use item descriptions from item service if available\\n session manager: lazily open websocket\\n loot tracker: move panel updating to EDT on config change\\n Add task chat command\\n\\nBrandon Popson (1):\\n Allow full Amulet of the Damned as clue requirement (#7423)\\n\\nCharlie Waters (1):\\n ConfigPanel: Confirm plugin configuration reset\\n\\nDannysPVM (1):\\n Cap fog depth to 100 in the GPU Plugin.\\n\\nErmal (2):\\n Added SPIN after CLAP to Mount Karuulm Emote Clue Closes: #7416\\n Removed an extra semicolon Found in IdleNotifierPlugin.java line 392 from latest release\\n\\nHydrox6 (1):\\n Make Game Notification use the Game message highlight colour\\n\\nJeremy Plsek (1):\\n world hopper: allow disabling chat hop message\\n\\nJoe Iaquinto (1):\\n Correct spelling of Skybox bounds exception\\n\\nJosiah (1):\\n Add ancient staff to prayer items list (#7513)\\n\\nMax Weber (5):\\n cache: Add FlatStorage\\n cache: Add equals and hashCode to all Definitions\\n config: Add ModifierlessKeybind\\n wasdcamera: Use modifierless keybinds\\n runelite-api, runescape-api: Rename Area to mapElement\\n\\nTomas Slusny (15):\\n Inverse collapse menu entry loop\\n Shutdown plugins on window close\\n Move close handling to windowClosed event\\n Move configManager.sendConfig to RuneLite#shutdown\\n Wrap DiscordEventHandlers in native lib try/catch\\n Do not discard 1 second requests in Xp tracker\\n Change xp tracker filter clean to 3 hours\\n Remove OverlayManager#addMenu/removeMenu\\n Remove overlayManager#overlayId\\n Move overlay menu entries to Overlay class\\n Add Text#fromCSV and Text#toCSV\\n Replace usage of Spliter/Joiner with toCSV/fromCSV\\n Revert "Move close handling to windowClosed event"\\n Null-check local location in trap overlay\\n Mark localToCanvas methods nullable\\n\\nermalsh (1):\\n Change RGB variable for Attack on XP Globes (more bright) (#7454)\\n\\ngregg1494 (2):\\n Correct agility configuration casing (#7393)\\n Fix anti-venom potion timer (#7453)\\n\\nkevinisninja (1):\\n prayer plugin: add devout boots and bonecrusher necklace to prayer items\\n\\nmaytonsw (1):\\n time tracker: correct Iasor farming produce typo\\n\\ntrimbe (1):\\n chat commands: rebuild chatbox input after using clear shortcuts\\n
\\n\",\"image\":\"/img/blog/1.5.9-Release/task-command.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/82.2c3ed5ad.chunk.js b/static/js/82.ceb045cf.chunk.js
similarity index 98%
rename from static/js/82.2c3ed5ad.chunk.js
rename to static/js/82.ceb045cf.chunk.js
index cfa7ea31f..1b6e10846 100644
--- a/static/js/82.2c3ed5ad.chunk.js
+++ b/static/js/82.ceb045cf.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[82],{357:function(e,n){e.exports={title:"1.5.10 Release",description:"Revamped color selector and boss personal best time chat command",author:"Jordan",body:'We have written a new color selector from scratch to offer a long-time requested feature for color\npicking: adjustable transparency values! This color selector now offers that functionality for the\nCannon , Ground\nMarker , Object\nMarker , Tile\nIndicator , and XP\nGlobe plugins. Thanks to\n@psikoi and @raiyni for this feature!
\n
\nA !pb
chat command has been added, which displays your personal best kill time of any boss which\nhas a kill timer. Make sure to secure a kill on the desired boss so RuneLite can store its best\nkill time to share!
\nThe NPC Indicators plugin has been\nupdated to allow tagging of NPCs which, because of technical limitations, could not previously have\na "Tag" menu entry added, such as Menaphite Thugs. As a side effect, however, the "Tag" menu entry\nwill now be listed just before the NPC\'s "Examine" menu entry, shown below.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nA number of Kebos area hot-cold clue locations have been added to the Clue Scroll\nplugin \nThe Time Tracking plugin now displays\nmore conservative estimates for farming patch growth timers to avoid showing a crop as finished\ntoo early \nAn option has been added to the Runelite\nsettings to require Shift to be pressed for\noverlay menu options to appear. Additionally, overlay menu options will no longer be a left-click\noption when positioned over other widgets. \nAn ore tracker has been added to the Motherlode Mine\nplugin \nThe World Map plugin now adds the type of\nrare tree to the tree icon tooltips \nUpon completion, anti-venom timers will now\nadd an anti-poison timer of the appropriate length \nThe Chambers of Xeric plugin now\nhas an option to send a game message with the raid layout when entering a new raid \nThe Barrows Brothers plugin will no\nlonger display minimap dots for NPCs which would not ordinarily draw one elsewhere (such as pets) \nThe Screenshot plugin now has an option to\nscreenshot duel wins and losses \nWhen buying slayer rewards, the Slayer plugin \ninfobox will now update the points displayed in its tooltip \nA Menu Entry Swapper plugin option\nhas been added to swap "Pick" with "Pick-lots" to help you grab empty gourds faster in Chambers of\nXeric \nA bug causing some minor render order issues in the GPU\nplugin has been fixed \nA bug causing the Mage Training Arena\nplugin\'s Telekinetic room helper\nto fail has been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n4444N (1):\n Remove tags from chat notifications (#7608)\n\nAdam (7):\n chat controller: fix method name of getQp\n Add !pb chat command\n chat commands: capitalize boss names\n http api: fix GameItem to have a no arg constructor\n stausbars: don\'t assume menu is always populated\n statusbars: avoid looking up item status unless the widget is the inventory\n gpu: fix priority renderer face cull checking\n\nJordan Atwood (1):\n chat commands: Add test case for PB without trailing period\n\nLucas (1):\n Add normal colour to the !clues command\n\nMagic fTail (1):\n Change menu manager to not modify npc composition\n\nMarshall Briggs (1):\n Add 3 new Kebos clue spots to HotColdLocation.\n\nMax Weber (7):\n farming: Centralize patch prediction\n farming: Give a more conservative estimate of when patches are done\n mixins: Force RUNELITE_OVERLAY menuops to not be left click\n mousehighlight: Don\'t show tooltips for right click only menuops\n cache: use lombok Data for all definitions\n cache: Include id in StructDefinition\n mixins: Don\'t clobber left click forced menuops\n\nRheon-D (1):\n Remove invalid OverlayMenuEntries\n\nRon Young (5):\n Config: add Alpha annotation\n ColorUtil: add color to/from methods\n Add RuneliteColorPicker\n Screen Markers: use new color picker\n plugins: Add alpha notation to configs\n\nRyan Bohannon (1):\n Change location of clue scroll coordinates in Feldip Hills\n\nSirGirion (1):\n mlm plugin: add ore tracker\n\nSpedwards (1):\n Add Rare Tree locations\n\nTomas Slusny (13):\n Move menu entry nulling to BeforeRender\n Add anti-poison timers to anti-venom potions\n Refresh infoboxes only when needed\n Add toRoomString and toCodeString Raid utilities\n Move ChatCommandsPlugin#sanitize to Text\n Send raid layout message on raid enter\n Limit only overlays that are not snapped\n Remove activity prefix from Discord plugin\n Add option to require shift for overlay menus\n Dont display bank value GE/HA text when not needed\n barrows plugin: don\'t draw dots for npcs which are hidden on the minimap\n Show xp globe goal only if goal > current xp\n Remove anymatch regex from chat commands plugin patterns\n\nZakru (1):\n Add option to screenshot duel wins and losses (#7576)\n\ndaiya7 (1):\n Update slayer points in tooltip while in rewards screen (#7620)\n\nwinterdaze (3):\n Add Hydra & Karuulm Area to Discord Plugin (#7560)\n Use better task icons for revs and ents (#7562)\n Swap pick with pick-lots in CoX (#7563)\n
\n',image:"/img/blog/1.5.10-Release/color-picker.gif"}}}]);
-//# sourceMappingURL=82.2c3ed5ad.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[82],{358:function(e,n){e.exports={title:"1.5.10 Release",description:"Revamped color selector and boss personal best time chat command",author:"Jordan",body:'We have written a new color selector from scratch to offer a long-time requested feature for color\npicking: adjustable transparency values! This color selector now offers that functionality for the\nCannon , Ground\nMarker , Object\nMarker , Tile\nIndicator , and XP\nGlobe plugins. Thanks to\n@psikoi and @raiyni for this feature!
\n
\nA !pb
chat command has been added, which displays your personal best kill time of any boss which\nhas a kill timer. Make sure to secure a kill on the desired boss so RuneLite can store its best\nkill time to share!
\nThe NPC Indicators plugin has been\nupdated to allow tagging of NPCs which, because of technical limitations, could not previously have\na "Tag" menu entry added, such as Menaphite Thugs. As a side effect, however, the "Tag" menu entry\nwill now be listed just before the NPC\'s "Examine" menu entry, shown below.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nA number of Kebos area hot-cold clue locations have been added to the Clue Scroll\nplugin \nThe Time Tracking plugin now displays\nmore conservative estimates for farming patch growth timers to avoid showing a crop as finished\ntoo early \nAn option has been added to the Runelite\nsettings to require Shift to be pressed for\noverlay menu options to appear. Additionally, overlay menu options will no longer be a left-click\noption when positioned over other widgets. \nAn ore tracker has been added to the Motherlode Mine\nplugin \nThe World Map plugin now adds the type of\nrare tree to the tree icon tooltips \nUpon completion, anti-venom timers will now\nadd an anti-poison timer of the appropriate length \nThe Chambers of Xeric plugin now\nhas an option to send a game message with the raid layout when entering a new raid \nThe Barrows Brothers plugin will no\nlonger display minimap dots for NPCs which would not ordinarily draw one elsewhere (such as pets) \nThe Screenshot plugin now has an option to\nscreenshot duel wins and losses \nWhen buying slayer rewards, the Slayer plugin \ninfobox will now update the points displayed in its tooltip \nA Menu Entry Swapper plugin option\nhas been added to swap "Pick" with "Pick-lots" to help you grab empty gourds faster in Chambers of\nXeric \nA bug causing some minor render order issues in the GPU\nplugin has been fixed \nA bug causing the Mage Training Arena\nplugin\'s Telekinetic room helper\nto fail has been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 16 contributors this release!
\n4444N (1):\n Remove tags from chat notifications (#7608)\n\nAdam (7):\n chat controller: fix method name of getQp\n Add !pb chat command\n chat commands: capitalize boss names\n http api: fix GameItem to have a no arg constructor\n stausbars: don\'t assume menu is always populated\n statusbars: avoid looking up item status unless the widget is the inventory\n gpu: fix priority renderer face cull checking\n\nJordan Atwood (1):\n chat commands: Add test case for PB without trailing period\n\nLucas (1):\n Add normal colour to the !clues command\n\nMagic fTail (1):\n Change menu manager to not modify npc composition\n\nMarshall Briggs (1):\n Add 3 new Kebos clue spots to HotColdLocation.\n\nMax Weber (7):\n farming: Centralize patch prediction\n farming: Give a more conservative estimate of when patches are done\n mixins: Force RUNELITE_OVERLAY menuops to not be left click\n mousehighlight: Don\'t show tooltips for right click only menuops\n cache: use lombok Data for all definitions\n cache: Include id in StructDefinition\n mixins: Don\'t clobber left click forced menuops\n\nRheon-D (1):\n Remove invalid OverlayMenuEntries\n\nRon Young (5):\n Config: add Alpha annotation\n ColorUtil: add color to/from methods\n Add RuneliteColorPicker\n Screen Markers: use new color picker\n plugins: Add alpha notation to configs\n\nRyan Bohannon (1):\n Change location of clue scroll coordinates in Feldip Hills\n\nSirGirion (1):\n mlm plugin: add ore tracker\n\nSpedwards (1):\n Add Rare Tree locations\n\nTomas Slusny (13):\n Move menu entry nulling to BeforeRender\n Add anti-poison timers to anti-venom potions\n Refresh infoboxes only when needed\n Add toRoomString and toCodeString Raid utilities\n Move ChatCommandsPlugin#sanitize to Text\n Send raid layout message on raid enter\n Limit only overlays that are not snapped\n Remove activity prefix from Discord plugin\n Add option to require shift for overlay menus\n Dont display bank value GE/HA text when not needed\n barrows plugin: don\'t draw dots for npcs which are hidden on the minimap\n Show xp globe goal only if goal > current xp\n Remove anymatch regex from chat commands plugin patterns\n\nZakru (1):\n Add option to screenshot duel wins and losses (#7576)\n\ndaiya7 (1):\n Update slayer points in tooltip while in rewards screen (#7620)\n\nwinterdaze (3):\n Add Hydra & Karuulm Area to Discord Plugin (#7560)\n Use better task icons for revs and ents (#7562)\n Swap pick with pick-lots in CoX (#7563)\n
\n',image:"/img/blog/1.5.10-Release/color-picker.gif"}}}]);
+//# sourceMappingURL=82.ceb045cf.chunk.js.map
\ No newline at end of file
diff --git a/static/js/82.2c3ed5ad.chunk.js.map b/static/js/82.ceb045cf.chunk.js.map
similarity index 99%
rename from static/js/82.2c3ed5ad.chunk.js.map
rename to static/js/82.ceb045cf.chunk.js.map
index 729b0fe78..630567c53 100644
--- a/static/js/82.2c3ed5ad.chunk.js.map
+++ b/static/js/82.ceb045cf.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-01-31-10-00-1.5.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mEAAmE,OAAS,SAAS,KAAO,+6OAA+iP,MAAQ","file":"static/js/82.2c3ed5ad.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.10 Release\",\"description\":\"Revamped color selector and boss personal best time chat command\",\"author\":\"Jordan\",\"body\":\"We have written a new color selector from scratch to offer a long-time requested feature for color\\npicking: adjustable transparency values! This color selector now offers that functionality for the\\nCannon , Ground\\nMarker , Object\\nMarker , Tile\\nIndicator , and XP\\nGlobe plugins. Thanks to\\n@psikoi and @raiyni for this feature!
\\n
\\nA !pb
chat command has been added, which displays your personal best kill time of any boss which\\nhas a kill timer. Make sure to secure a kill on the desired boss so RuneLite can store its best\\nkill time to share!
\\nThe NPC Indicators plugin has been\\nupdated to allow tagging of NPCs which, because of technical limitations, could not previously have\\na "Tag" menu entry added, such as Menaphite Thugs. As a side effect, however, the "Tag" menu entry\\nwill now be listed just before the NPC's "Examine" menu entry, shown below.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA number of Kebos area hot-cold clue locations have been added to the Clue Scroll\\nplugin \\nThe Time Tracking plugin now displays\\nmore conservative estimates for farming patch growth timers to avoid showing a crop as finished\\ntoo early \\nAn option has been added to the Runelite\\nsettings to require Shift to be pressed for\\noverlay menu options to appear. Additionally, overlay menu options will no longer be a left-click\\noption when positioned over other widgets. \\nAn ore tracker has been added to the Motherlode Mine\\nplugin \\nThe World Map plugin now adds the type of\\nrare tree to the tree icon tooltips \\nUpon completion, anti-venom timers will now\\nadd an anti-poison timer of the appropriate length \\nThe Chambers of Xeric plugin now\\nhas an option to send a game message with the raid layout when entering a new raid \\nThe Barrows Brothers plugin will no\\nlonger display minimap dots for NPCs which would not ordinarily draw one elsewhere (such as pets) \\nThe Screenshot plugin now has an option to\\nscreenshot duel wins and losses \\nWhen buying slayer rewards, the Slayer plugin \\ninfobox will now update the points displayed in its tooltip \\nA Menu Entry Swapper plugin option\\nhas been added to swap "Pick" with "Pick-lots" to help you grab empty gourds faster in Chambers of\\nXeric \\nA bug causing some minor render order issues in the GPU\\nplugin has been fixed \\nA bug causing the Mage Training Arena\\nplugin's Telekinetic room helper\\nto fail has been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n4444N (1):\\n Remove tags from chat notifications (#7608)\\n\\nAdam (7):\\n chat controller: fix method name of getQp\\n Add !pb chat command\\n chat commands: capitalize boss names\\n http api: fix GameItem to have a no arg constructor\\n stausbars: don't assume menu is always populated\\n statusbars: avoid looking up item status unless the widget is the inventory\\n gpu: fix priority renderer face cull checking\\n\\nJordan Atwood (1):\\n chat commands: Add test case for PB without trailing period\\n\\nLucas (1):\\n Add normal colour to the !clues command\\n\\nMagic fTail (1):\\n Change menu manager to not modify npc composition\\n\\nMarshall Briggs (1):\\n Add 3 new Kebos clue spots to HotColdLocation.\\n\\nMax Weber (7):\\n farming: Centralize patch prediction\\n farming: Give a more conservative estimate of when patches are done\\n mixins: Force RUNELITE_OVERLAY menuops to not be left click\\n mousehighlight: Don't show tooltips for right click only menuops\\n cache: use lombok Data for all definitions\\n cache: Include id in StructDefinition\\n mixins: Don't clobber left click forced menuops\\n\\nRheon-D (1):\\n Remove invalid OverlayMenuEntries\\n\\nRon Young (5):\\n Config: add Alpha annotation\\n ColorUtil: add color to/from methods\\n Add RuneliteColorPicker\\n Screen Markers: use new color picker\\n plugins: Add alpha notation to configs\\n\\nRyan Bohannon (1):\\n Change location of clue scroll coordinates in Feldip Hills\\n\\nSirGirion (1):\\n mlm plugin: add ore tracker\\n\\nSpedwards (1):\\n Add Rare Tree locations\\n\\nTomas Slusny (13):\\n Move menu entry nulling to BeforeRender\\n Add anti-poison timers to anti-venom potions\\n Refresh infoboxes only when needed\\n Add toRoomString and toCodeString Raid utilities\\n Move ChatCommandsPlugin#sanitize to Text\\n Send raid layout message on raid enter\\n Limit only overlays that are not snapped\\n Remove activity prefix from Discord plugin\\n Add option to require shift for overlay menus\\n Dont display bank value GE/HA text when not needed\\n barrows plugin: don't draw dots for npcs which are hidden on the minimap\\n Show xp globe goal only if goal > current xp\\n Remove anymatch regex from chat commands plugin patterns\\n\\nZakru (1):\\n Add option to screenshot duel wins and losses (#7576)\\n\\ndaiya7 (1):\\n Update slayer points in tooltip while in rewards screen (#7620)\\n\\nwinterdaze (3):\\n Add Hydra & Karuulm Area to Discord Plugin (#7560)\\n Use better task icons for revs and ents (#7562)\\n Swap pick with pick-lots in CoX (#7563)\\n
\\n\",\"image\":\"/img/blog/1.5.10-Release/color-picker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-01-31-10-00-1.5.10-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mEAAmE,OAAS,SAAS,KAAO,+6OAA+iP,MAAQ","file":"static/js/82.ceb045cf.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.10 Release\",\"description\":\"Revamped color selector and boss personal best time chat command\",\"author\":\"Jordan\",\"body\":\"We have written a new color selector from scratch to offer a long-time requested feature for color\\npicking: adjustable transparency values! This color selector now offers that functionality for the\\nCannon , Ground\\nMarker , Object\\nMarker , Tile\\nIndicator , and XP\\nGlobe plugins. Thanks to\\n@psikoi and @raiyni for this feature!
\\n
\\nA !pb
chat command has been added, which displays your personal best kill time of any boss which\\nhas a kill timer. Make sure to secure a kill on the desired boss so RuneLite can store its best\\nkill time to share!
\\nThe NPC Indicators plugin has been\\nupdated to allow tagging of NPCs which, because of technical limitations, could not previously have\\na "Tag" menu entry added, such as Menaphite Thugs. As a side effect, however, the "Tag" menu entry\\nwill now be listed just before the NPC's "Examine" menu entry, shown below.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nA number of Kebos area hot-cold clue locations have been added to the Clue Scroll\\nplugin \\nThe Time Tracking plugin now displays\\nmore conservative estimates for farming patch growth timers to avoid showing a crop as finished\\ntoo early \\nAn option has been added to the Runelite\\nsettings to require Shift to be pressed for\\noverlay menu options to appear. Additionally, overlay menu options will no longer be a left-click\\noption when positioned over other widgets. \\nAn ore tracker has been added to the Motherlode Mine\\nplugin \\nThe World Map plugin now adds the type of\\nrare tree to the tree icon tooltips \\nUpon completion, anti-venom timers will now\\nadd an anti-poison timer of the appropriate length \\nThe Chambers of Xeric plugin now\\nhas an option to send a game message with the raid layout when entering a new raid \\nThe Barrows Brothers plugin will no\\nlonger display minimap dots for NPCs which would not ordinarily draw one elsewhere (such as pets) \\nThe Screenshot plugin now has an option to\\nscreenshot duel wins and losses \\nWhen buying slayer rewards, the Slayer plugin \\ninfobox will now update the points displayed in its tooltip \\nA Menu Entry Swapper plugin option\\nhas been added to swap "Pick" with "Pick-lots" to help you grab empty gourds faster in Chambers of\\nXeric \\nA bug causing some minor render order issues in the GPU\\nplugin has been fixed \\nA bug causing the Mage Training Arena\\nplugin's Telekinetic room helper\\nto fail has been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 16 contributors this release!
\\n4444N (1):\\n Remove tags from chat notifications (#7608)\\n\\nAdam (7):\\n chat controller: fix method name of getQp\\n Add !pb chat command\\n chat commands: capitalize boss names\\n http api: fix GameItem to have a no arg constructor\\n stausbars: don't assume menu is always populated\\n statusbars: avoid looking up item status unless the widget is the inventory\\n gpu: fix priority renderer face cull checking\\n\\nJordan Atwood (1):\\n chat commands: Add test case for PB without trailing period\\n\\nLucas (1):\\n Add normal colour to the !clues command\\n\\nMagic fTail (1):\\n Change menu manager to not modify npc composition\\n\\nMarshall Briggs (1):\\n Add 3 new Kebos clue spots to HotColdLocation.\\n\\nMax Weber (7):\\n farming: Centralize patch prediction\\n farming: Give a more conservative estimate of when patches are done\\n mixins: Force RUNELITE_OVERLAY menuops to not be left click\\n mousehighlight: Don't show tooltips for right click only menuops\\n cache: use lombok Data for all definitions\\n cache: Include id in StructDefinition\\n mixins: Don't clobber left click forced menuops\\n\\nRheon-D (1):\\n Remove invalid OverlayMenuEntries\\n\\nRon Young (5):\\n Config: add Alpha annotation\\n ColorUtil: add color to/from methods\\n Add RuneliteColorPicker\\n Screen Markers: use new color picker\\n plugins: Add alpha notation to configs\\n\\nRyan Bohannon (1):\\n Change location of clue scroll coordinates in Feldip Hills\\n\\nSirGirion (1):\\n mlm plugin: add ore tracker\\n\\nSpedwards (1):\\n Add Rare Tree locations\\n\\nTomas Slusny (13):\\n Move menu entry nulling to BeforeRender\\n Add anti-poison timers to anti-venom potions\\n Refresh infoboxes only when needed\\n Add toRoomString and toCodeString Raid utilities\\n Move ChatCommandsPlugin#sanitize to Text\\n Send raid layout message on raid enter\\n Limit only overlays that are not snapped\\n Remove activity prefix from Discord plugin\\n Add option to require shift for overlay menus\\n Dont display bank value GE/HA text when not needed\\n barrows plugin: don't draw dots for npcs which are hidden on the minimap\\n Show xp globe goal only if goal > current xp\\n Remove anymatch regex from chat commands plugin patterns\\n\\nZakru (1):\\n Add option to screenshot duel wins and losses (#7576)\\n\\ndaiya7 (1):\\n Update slayer points in tooltip while in rewards screen (#7620)\\n\\nwinterdaze (3):\\n Add Hydra & Karuulm Area to Discord Plugin (#7560)\\n Use better task icons for revs and ents (#7562)\\n Swap pick with pick-lots in CoX (#7563)\\n
\\n\",\"image\":\"/img/blog/1.5.10-Release/color-picker.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/83.ab1d580e.chunk.js b/static/js/83.d111cf20.chunk.js
similarity index 97%
rename from static/js/83.ab1d580e.chunk.js
rename to static/js/83.d111cf20.chunk.js
index 984485334..4e5a13a90 100644
--- a/static/js/83.ab1d580e.chunk.js
+++ b/static/js/83.d111cf20.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[83],{358:function(e,n){e.exports={title:"1.5.11 Release",description:"Discord party integration",author:"Adam",body:'This release adds Discord party integration with the new party plugin. Click\n"Ask to join" on a friend\'s profile to request to join a party:
\n
\nThe party plugin shows an overlay with party members\' hitpoints and prayer:
\n
\nAllows pinging tiles via shift click:
\n
\nAnd shows where your party members are on the world map:
\n
\nThe base of the party plugin is exciting and will let us build neat features in\nthe future such as a party damage overlay.
\nThere are also several smaller improvements and bug fixes, including:
\n\nUpdate raids scouter plugin for the new rotations added in\nlast week\'s update \nFix MLM ore counter overlay sometimes counting ores twice \nAdd Amethyst crafting to the idle notifier plugin \nFix slayer plugin to recognize flesh crawler tasks \nAdd Kebos wieldable rods to fishing plugin \nFix Zeah magic tree locations on the world map \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (13):\n travis: encrypt irc notification\n xp trackers: fix not correctly fetching start xp\n Use websocket pings\n Use existing sessionid on login if available\n http api: fix useragent test\n api: remove projectile getInteracting\n chat controller/service: add boss to pb\n Clear stored npcs in fishing/pc/rc plugins\n mlm plugin: make MotherlodeSession a guice managed singleton\n mlm plugin: fix ore counter to not count already collected ore\n Fix npc spawn events sometimes occuring out of order\n Split WSClient from SessionManager\n Add party service\n\nJordan Atwood (10):\n client: Use isEmpty() for all Collection emptiness checks\n Remove deprecated WorldPoint.toPoint() method\n Remove deprecated WallObjectQuery class\n Remove deprecated PlayerQuery class\n Remove deprecated DecorativeObjectQuery class\n Remove deprecated GameObjectQuery class\n Remove deprecated GroundObjectQuery class\n Remove deprecated InventoryItemQuery class\n Remove deprecated ActorQuery class\n Remove deprecated TileObjectQuery class\n\nKamiel (1):\n raids plugin: Update LayoutSolver layout codes\n\nKaz Schmanski (1):\n slayer plugin: change task name for flesh crawlers to match task given\n\nMabel5 (1):\n Add Kebos wieldable rods to fishing plugin (#7689)\n\nMax Weber (2):\n http-api: Include commit hash in User-Agent\n client: Correctly format PartyChanged\n\nPuskunalis (2):\n Inventory Viewer: Fix stackable items not showing stack of "1" (#7654)\n World Map: Fix Zeah Magic tree location and add missing ones (#7683)\n\nRyan Bohannon (1):\n Fix typo in Kourend Library config\n\nShaun Dreclin (1):\n Add Sulphur Lizard to npc_health.json\n\nTheStonedTurtle (1):\n Add Bottomless compost bucket price mapping (#7674)\n\nTomas Slusny (22):\n Move timestamp color config to timestamp plugin\n Make WebsocketGsonFactory more extensible\n Add party-related websocket messages\n Prevent ProgressBarComponent from overflowing\n Save current Discord user in Discord service\n Use new /ws service\n Add party support to Discord plugin\n Add party plugin\n Add missing config check to party leave message\n Remove "Tag" toggle from NPC indicators\n Do not reset current activity on discord party update\n Request party sync on party plugin startup\n Check for localMember in party not being null on UserJoin\n Fix ConcurrentModification in party stats overlay\n Prevent WSMessage deserialization failure from closing websocket\n Fix Discord party size refresh\n Do not hide party bars when value is changed to 0\n Play party ping sound only when ping is in scene\n Prevent negative values when overlay is bigger than screen\n Make party UserSync event extend PartyMemberMessage\n Add ColorUtil#fromObject to generate color from object\n Recolor party pings and names based on name color hash\n\nTwinkiel0ver (1):\n Add Amethyst crafting to Idle Notifier plugin (#7712)\n\njbaker5011 (1):\n Use loot received event for pvp kill screenshots (#6920)\n
\n',image:"/img/blog/1.5.11-Release/discord-join.png"}}}]);
-//# sourceMappingURL=83.ab1d580e.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[83],{359:function(e,n){e.exports={title:"1.5.11 Release",description:"Discord party integration",author:"Adam",body:'This release adds Discord party integration with the new party plugin. Click\n"Ask to join" on a friend\'s profile to request to join a party:
\n
\nThe party plugin shows an overlay with party members\' hitpoints and prayer:
\n
\nAllows pinging tiles via shift click:
\n
\nAnd shows where your party members are on the world map:
\n
\nThe base of the party plugin is exciting and will let us build neat features in\nthe future such as a party damage overlay.
\nThere are also several smaller improvements and bug fixes, including:
\n\nUpdate raids scouter plugin for the new rotations added in\nlast week\'s update \nFix MLM ore counter overlay sometimes counting ores twice \nAdd Amethyst crafting to the idle notifier plugin \nFix slayer plugin to recognize flesh crawler tasks \nAdd Kebos wieldable rods to fishing plugin \nFix Zeah magic tree locations on the world map \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (13):\n travis: encrypt irc notification\n xp trackers: fix not correctly fetching start xp\n Use websocket pings\n Use existing sessionid on login if available\n http api: fix useragent test\n api: remove projectile getInteracting\n chat controller/service: add boss to pb\n Clear stored npcs in fishing/pc/rc plugins\n mlm plugin: make MotherlodeSession a guice managed singleton\n mlm plugin: fix ore counter to not count already collected ore\n Fix npc spawn events sometimes occuring out of order\n Split WSClient from SessionManager\n Add party service\n\nJordan Atwood (10):\n client: Use isEmpty() for all Collection emptiness checks\n Remove deprecated WorldPoint.toPoint() method\n Remove deprecated WallObjectQuery class\n Remove deprecated PlayerQuery class\n Remove deprecated DecorativeObjectQuery class\n Remove deprecated GameObjectQuery class\n Remove deprecated GroundObjectQuery class\n Remove deprecated InventoryItemQuery class\n Remove deprecated ActorQuery class\n Remove deprecated TileObjectQuery class\n\nKamiel (1):\n raids plugin: Update LayoutSolver layout codes\n\nKaz Schmanski (1):\n slayer plugin: change task name for flesh crawlers to match task given\n\nMabel5 (1):\n Add Kebos wieldable rods to fishing plugin (#7689)\n\nMax Weber (2):\n http-api: Include commit hash in User-Agent\n client: Correctly format PartyChanged\n\nPuskunalis (2):\n Inventory Viewer: Fix stackable items not showing stack of "1" (#7654)\n World Map: Fix Zeah Magic tree location and add missing ones (#7683)\n\nRyan Bohannon (1):\n Fix typo in Kourend Library config\n\nShaun Dreclin (1):\n Add Sulphur Lizard to npc_health.json\n\nTheStonedTurtle (1):\n Add Bottomless compost bucket price mapping (#7674)\n\nTomas Slusny (22):\n Move timestamp color config to timestamp plugin\n Make WebsocketGsonFactory more extensible\n Add party-related websocket messages\n Prevent ProgressBarComponent from overflowing\n Save current Discord user in Discord service\n Use new /ws service\n Add party support to Discord plugin\n Add party plugin\n Add missing config check to party leave message\n Remove "Tag" toggle from NPC indicators\n Do not reset current activity on discord party update\n Request party sync on party plugin startup\n Check for localMember in party not being null on UserJoin\n Fix ConcurrentModification in party stats overlay\n Prevent WSMessage deserialization failure from closing websocket\n Fix Discord party size refresh\n Do not hide party bars when value is changed to 0\n Play party ping sound only when ping is in scene\n Prevent negative values when overlay is bigger than screen\n Make party UserSync event extend PartyMemberMessage\n Add ColorUtil#fromObject to generate color from object\n Recolor party pings and names based on name color hash\n\nTwinkiel0ver (1):\n Add Amethyst crafting to Idle Notifier plugin (#7712)\n\njbaker5011 (1):\n Use loot received event for pvp kill screenshots (#6920)\n
\n',image:"/img/blog/1.5.11-Release/discord-join.png"}}}]);
+//# sourceMappingURL=83.d111cf20.chunk.js.map
\ No newline at end of file
diff --git a/static/js/83.ab1d580e.chunk.js.map b/static/js/83.d111cf20.chunk.js.map
similarity index 98%
rename from static/js/83.ab1d580e.chunk.js.map
rename to static/js/83.d111cf20.chunk.js.map
index a0cbc0e69..5068430e9 100644
--- a/static/js/83.ab1d580e.chunk.js.map
+++ b/static/js/83.d111cf20.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-02-07-10-00-1.5.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4BAA4B,OAAS,OAAO,KAAO,wrJAA2sJ,MAAQ","file":"static/js/83.ab1d580e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.11 Release\",\"description\":\"Discord party integration\",\"author\":\"Adam\",\"body\":\"This release adds Discord party integration with the new party plugin. Click\\n"Ask to join" on a friend's profile to request to join a party:
\\n
\\nThe party plugin shows an overlay with party members' hitpoints and prayer:
\\n
\\nAllows pinging tiles via shift click:
\\n
\\nAnd shows where your party members are on the world map:
\\n
\\nThe base of the party plugin is exciting and will let us build neat features in\\nthe future such as a party damage overlay.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUpdate raids scouter plugin for the new rotations added in\\nlast week's update \\nFix MLM ore counter overlay sometimes counting ores twice \\nAdd Amethyst crafting to the idle notifier plugin \\nFix slayer plugin to recognize flesh crawler tasks \\nAdd Kebos wieldable rods to fishing plugin \\nFix Zeah magic tree locations on the world map \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (13):\\n travis: encrypt irc notification\\n xp trackers: fix not correctly fetching start xp\\n Use websocket pings\\n Use existing sessionid on login if available\\n http api: fix useragent test\\n api: remove projectile getInteracting\\n chat controller/service: add boss to pb\\n Clear stored npcs in fishing/pc/rc plugins\\n mlm plugin: make MotherlodeSession a guice managed singleton\\n mlm plugin: fix ore counter to not count already collected ore\\n Fix npc spawn events sometimes occuring out of order\\n Split WSClient from SessionManager\\n Add party service\\n\\nJordan Atwood (10):\\n client: Use isEmpty() for all Collection emptiness checks\\n Remove deprecated WorldPoint.toPoint() method\\n Remove deprecated WallObjectQuery class\\n Remove deprecated PlayerQuery class\\n Remove deprecated DecorativeObjectQuery class\\n Remove deprecated GameObjectQuery class\\n Remove deprecated GroundObjectQuery class\\n Remove deprecated InventoryItemQuery class\\n Remove deprecated ActorQuery class\\n Remove deprecated TileObjectQuery class\\n\\nKamiel (1):\\n raids plugin: Update LayoutSolver layout codes\\n\\nKaz Schmanski (1):\\n slayer plugin: change task name for flesh crawlers to match task given\\n\\nMabel5 (1):\\n Add Kebos wieldable rods to fishing plugin (#7689)\\n\\nMax Weber (2):\\n http-api: Include commit hash in User-Agent\\n client: Correctly format PartyChanged\\n\\nPuskunalis (2):\\n Inventory Viewer: Fix stackable items not showing stack of "1" (#7654)\\n World Map: Fix Zeah Magic tree location and add missing ones (#7683)\\n\\nRyan Bohannon (1):\\n Fix typo in Kourend Library config\\n\\nShaun Dreclin (1):\\n Add Sulphur Lizard to npc_health.json\\n\\nTheStonedTurtle (1):\\n Add Bottomless compost bucket price mapping (#7674)\\n\\nTomas Slusny (22):\\n Move timestamp color config to timestamp plugin\\n Make WebsocketGsonFactory more extensible\\n Add party-related websocket messages\\n Prevent ProgressBarComponent from overflowing\\n Save current Discord user in Discord service\\n Use new /ws service\\n Add party support to Discord plugin\\n Add party plugin\\n Add missing config check to party leave message\\n Remove "Tag" toggle from NPC indicators\\n Do not reset current activity on discord party update\\n Request party sync on party plugin startup\\n Check for localMember in party not being null on UserJoin\\n Fix ConcurrentModification in party stats overlay\\n Prevent WSMessage deserialization failure from closing websocket\\n Fix Discord party size refresh\\n Do not hide party bars when value is changed to 0\\n Play party ping sound only when ping is in scene\\n Prevent negative values when overlay is bigger than screen\\n Make party UserSync event extend PartyMemberMessage\\n Add ColorUtil#fromObject to generate color from object\\n Recolor party pings and names based on name color hash\\n\\nTwinkiel0ver (1):\\n Add Amethyst crafting to Idle Notifier plugin (#7712)\\n\\njbaker5011 (1):\\n Use loot received event for pvp kill screenshots (#6920)\\n
\\n\",\"image\":\"/img/blog/1.5.11-Release/discord-join.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-02-07-10-00-1.5.11-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4BAA4B,OAAS,OAAO,KAAO,wrJAA2sJ,MAAQ","file":"static/js/83.d111cf20.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.11 Release\",\"description\":\"Discord party integration\",\"author\":\"Adam\",\"body\":\"This release adds Discord party integration with the new party plugin. Click\\n"Ask to join" on a friend's profile to request to join a party:
\\n
\\nThe party plugin shows an overlay with party members' hitpoints and prayer:
\\n
\\nAllows pinging tiles via shift click:
\\n
\\nAnd shows where your party members are on the world map:
\\n
\\nThe base of the party plugin is exciting and will let us build neat features in\\nthe future such as a party damage overlay.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nUpdate raids scouter plugin for the new rotations added in\\nlast week's update \\nFix MLM ore counter overlay sometimes counting ores twice \\nAdd Amethyst crafting to the idle notifier plugin \\nFix slayer plugin to recognize flesh crawler tasks \\nAdd Kebos wieldable rods to fishing plugin \\nFix Zeah magic tree locations on the world map \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (13):\\n travis: encrypt irc notification\\n xp trackers: fix not correctly fetching start xp\\n Use websocket pings\\n Use existing sessionid on login if available\\n http api: fix useragent test\\n api: remove projectile getInteracting\\n chat controller/service: add boss to pb\\n Clear stored npcs in fishing/pc/rc plugins\\n mlm plugin: make MotherlodeSession a guice managed singleton\\n mlm plugin: fix ore counter to not count already collected ore\\n Fix npc spawn events sometimes occuring out of order\\n Split WSClient from SessionManager\\n Add party service\\n\\nJordan Atwood (10):\\n client: Use isEmpty() for all Collection emptiness checks\\n Remove deprecated WorldPoint.toPoint() method\\n Remove deprecated WallObjectQuery class\\n Remove deprecated PlayerQuery class\\n Remove deprecated DecorativeObjectQuery class\\n Remove deprecated GameObjectQuery class\\n Remove deprecated GroundObjectQuery class\\n Remove deprecated InventoryItemQuery class\\n Remove deprecated ActorQuery class\\n Remove deprecated TileObjectQuery class\\n\\nKamiel (1):\\n raids plugin: Update LayoutSolver layout codes\\n\\nKaz Schmanski (1):\\n slayer plugin: change task name for flesh crawlers to match task given\\n\\nMabel5 (1):\\n Add Kebos wieldable rods to fishing plugin (#7689)\\n\\nMax Weber (2):\\n http-api: Include commit hash in User-Agent\\n client: Correctly format PartyChanged\\n\\nPuskunalis (2):\\n Inventory Viewer: Fix stackable items not showing stack of "1" (#7654)\\n World Map: Fix Zeah Magic tree location and add missing ones (#7683)\\n\\nRyan Bohannon (1):\\n Fix typo in Kourend Library config\\n\\nShaun Dreclin (1):\\n Add Sulphur Lizard to npc_health.json\\n\\nTheStonedTurtle (1):\\n Add Bottomless compost bucket price mapping (#7674)\\n\\nTomas Slusny (22):\\n Move timestamp color config to timestamp plugin\\n Make WebsocketGsonFactory more extensible\\n Add party-related websocket messages\\n Prevent ProgressBarComponent from overflowing\\n Save current Discord user in Discord service\\n Use new /ws service\\n Add party support to Discord plugin\\n Add party plugin\\n Add missing config check to party leave message\\n Remove "Tag" toggle from NPC indicators\\n Do not reset current activity on discord party update\\n Request party sync on party plugin startup\\n Check for localMember in party not being null on UserJoin\\n Fix ConcurrentModification in party stats overlay\\n Prevent WSMessage deserialization failure from closing websocket\\n Fix Discord party size refresh\\n Do not hide party bars when value is changed to 0\\n Play party ping sound only when ping is in scene\\n Prevent negative values when overlay is bigger than screen\\n Make party UserSync event extend PartyMemberMessage\\n Add ColorUtil#fromObject to generate color from object\\n Recolor party pings and names based on name color hash\\n\\nTwinkiel0ver (1):\\n Add Amethyst crafting to Idle Notifier plugin (#7712)\\n\\njbaker5011 (1):\\n Use loot received event for pvp kill screenshots (#6920)\\n
\\n\",\"image\":\"/img/blog/1.5.11-Release/discord-join.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/84.a8182589.chunk.js b/static/js/84.aa7afdc0.chunk.js
similarity index 97%
rename from static/js/84.a8182589.chunk.js
rename to static/js/84.aa7afdc0.chunk.js
index 4471ee220..51c7888b2 100644
--- a/static/js/84.a8182589.chunk.js
+++ b/static/js/84.aa7afdc0.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[84],{359:function(e,n){e.exports={title:"1.5.12 Release",description:"Wiki plugin and poison plugin",author:"Adam",body:'A wiki plugin was added which allows quickly looking up items, npcs, quests, and\nmore on the OldSchool RuneScape Wiki . It\nalso has a built in search feature which lets you quickly search for articles\nusing the in game chatbox.
\n
\n
\n
\nA poison plugin was added which shows time until next damage, cure, and next\npoison damage in an overlay on the hitpoints orb. It can also optionally add an\ninfobox.
\n \n \n
\nThe player indicator plugin now has an option on where to draw the players name\non screen.
\n \n
\nAn option to hide the auto retaliate button has been added to the attack styles\nplugin.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix loottracker losing loot on logout from RuneLite \nFix world hopper not functioning correctly if the plugin is restarted \nFix xp tracker progress bars to be more visible \nFix "A Basic Anti Pot" anagram clue answer for removal of Veos\'s boat \nAdd Hydra slayer helmet to the slayer plugin \nAdd Kebos swamp cryptic clue \nUpdate skilling calculator for Hydra, Drake and Wyrm bones XP change \nAdd Rada\'s Blessings to Prayer plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this release!
\nAdam (9):\n api: add MessageNode and timestamp to ChatMessage event\n api: remove SetMessage event\n client: update SetMessage usages to ChatMessage\n plugin manager test: check plugins don\'t error when registering with eventbus\n http api: rename OSB ge classes with OSB prefix\n client: add poison plugin to track poison damage\n scene uploader: swap seColor/nwColor which had their mappings swapped\n loottracker service: correct kills foreign key\n Add GE history tracker\n\nAndrew Fulton (1):\n client: flash only during LOGGED_IN game state (#7782)\n\nHenry Zhang (2):\n Migrate onSetMessage to onChatMessage\n Make sure WorldHopperPlugin\'s executor is active on startup\n\nHydrox6 (1):\n Delay party instruction message if user is not logged in (#7696)\n\nJakob Ankarhem (1):\n Remove dulling from progress bar positions (#7781)\n\nJordan Atwood (4):\n perspective: Allow empty text for getCanvasTextLocation\n actor: Mark getCanvasTextLocation as Nullable\n player indicators: Add name position configuration\n item stats: Represent boost data as ints\n\nKalle (2):\n Fix anagram clue "A Basic Anti Pot" (answer changed to 6) (#7764)\n World Map: Fix Ape Atoll tree type\n\nLucas (2):\n Add kebos swamp cryptic clue\n Add hydra slayer helms to slayer plugin\n\nMatthew Abel (1):\n Hide auto retaliate from combat options (#7713)\n\nMax Weber (3):\n runelite-client: centralize sprite overrides\n ChatboxTextInput: Don\'t set built in update\n Add Wiki plugin\n\nNoah Pittinger (1):\n Add EqualsAndHashCode to Lombok data/value that do not extend Object\n\nNokkasiili (1):\n Fix isVisable and isMinimapVisable spelling (Visable -> Visible) (#7766)\n\nRyan Bohannon (1):\n Add agility shortcut entry for Taverly Dungeon upper level\n\nSpedwards (1):\n Update Wyrm bone xp in skill calc based on passed polls (#7614)\n\nTomas Slusny (11):\n Unhide barrows widgets on plugin shutdown\n Unhide NMZ widgets on plugin shutdown\n Unhide raids widgets on plugin shutdown\n Do not draw yellow dot for local player in barrows plugin\n Use correct player dot color in barrows plugin\n Push sidebar non-tab buttons to bottom\n Clear Cerberus ghost on LOADING game state\n Use CLANCHAT_INFO for party messages\n Fix unmapped target property "time" warning\n Use ItemVariations when using Reset option for shift-click\n Add offset to loot tracker API\n\nWillThomas (1):\n Reorder skill calc json values based on prayer XP (#7751)\n\nbjornenalfa (1):\n Add Rada\'s Blessings to Prayer plugin\n\nrejectedpromise (1):\n Add new lines at .rs2asm <EOF> to resolve build warnings (#7812)\n\nsyngfaa (1):\n Fix SOUL_JOURNEY typo in Kourend Library plugin (#7733)\n
\n',image:"/img/blog/1.5.12-Release/wiki-lookup.gif"}}}]);
-//# sourceMappingURL=84.a8182589.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[84],{360:function(e,n){e.exports={title:"1.5.12 Release",description:"Wiki plugin and poison plugin",author:"Adam",body:'A wiki plugin was added which allows quickly looking up items, npcs, quests, and\nmore on the OldSchool RuneScape Wiki . It\nalso has a built in search feature which lets you quickly search for articles\nusing the in game chatbox.
\n
\n
\n
\nA poison plugin was added which shows time until next damage, cure, and next\npoison damage in an overlay on the hitpoints orb. It can also optionally add an\ninfobox.
\n \n \n
\nThe player indicator plugin now has an option on where to draw the players name\non screen.
\n \n
\nAn option to hide the auto retaliate button has been added to the attack styles\nplugin.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix loottracker losing loot on logout from RuneLite \nFix world hopper not functioning correctly if the plugin is restarted \nFix xp tracker progress bars to be more visible \nFix "A Basic Anti Pot" anagram clue answer for removal of Veos\'s boat \nAdd Hydra slayer helmet to the slayer plugin \nAdd Kebos swamp cryptic clue \nUpdate skilling calculator for Hydra, Drake and Wyrm bones XP change \nAdd Rada\'s Blessings to Prayer plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 19 contributors this release!
\nAdam (9):\n api: add MessageNode and timestamp to ChatMessage event\n api: remove SetMessage event\n client: update SetMessage usages to ChatMessage\n plugin manager test: check plugins don\'t error when registering with eventbus\n http api: rename OSB ge classes with OSB prefix\n client: add poison plugin to track poison damage\n scene uploader: swap seColor/nwColor which had their mappings swapped\n loottracker service: correct kills foreign key\n Add GE history tracker\n\nAndrew Fulton (1):\n client: flash only during LOGGED_IN game state (#7782)\n\nHenry Zhang (2):\n Migrate onSetMessage to onChatMessage\n Make sure WorldHopperPlugin\'s executor is active on startup\n\nHydrox6 (1):\n Delay party instruction message if user is not logged in (#7696)\n\nJakob Ankarhem (1):\n Remove dulling from progress bar positions (#7781)\n\nJordan Atwood (4):\n perspective: Allow empty text for getCanvasTextLocation\n actor: Mark getCanvasTextLocation as Nullable\n player indicators: Add name position configuration\n item stats: Represent boost data as ints\n\nKalle (2):\n Fix anagram clue "A Basic Anti Pot" (answer changed to 6) (#7764)\n World Map: Fix Ape Atoll tree type\n\nLucas (2):\n Add kebos swamp cryptic clue\n Add hydra slayer helms to slayer plugin\n\nMatthew Abel (1):\n Hide auto retaliate from combat options (#7713)\n\nMax Weber (3):\n runelite-client: centralize sprite overrides\n ChatboxTextInput: Don\'t set built in update\n Add Wiki plugin\n\nNoah Pittinger (1):\n Add EqualsAndHashCode to Lombok data/value that do not extend Object\n\nNokkasiili (1):\n Fix isVisable and isMinimapVisable spelling (Visable -> Visible) (#7766)\n\nRyan Bohannon (1):\n Add agility shortcut entry for Taverly Dungeon upper level\n\nSpedwards (1):\n Update Wyrm bone xp in skill calc based on passed polls (#7614)\n\nTomas Slusny (11):\n Unhide barrows widgets on plugin shutdown\n Unhide NMZ widgets on plugin shutdown\n Unhide raids widgets on plugin shutdown\n Do not draw yellow dot for local player in barrows plugin\n Use correct player dot color in barrows plugin\n Push sidebar non-tab buttons to bottom\n Clear Cerberus ghost on LOADING game state\n Use CLANCHAT_INFO for party messages\n Fix unmapped target property "time" warning\n Use ItemVariations when using Reset option for shift-click\n Add offset to loot tracker API\n\nWillThomas (1):\n Reorder skill calc json values based on prayer XP (#7751)\n\nbjornenalfa (1):\n Add Rada\'s Blessings to Prayer plugin\n\nrejectedpromise (1):\n Add new lines at .rs2asm <EOF> to resolve build warnings (#7812)\n\nsyngfaa (1):\n Fix SOUL_JOURNEY typo in Kourend Library plugin (#7733)\n
\n',image:"/img/blog/1.5.12-Release/wiki-lookup.gif"}}}]);
+//# sourceMappingURL=84.aa7afdc0.chunk.js.map
\ No newline at end of file
diff --git a/static/js/84.a8182589.chunk.js.map b/static/js/84.aa7afdc0.chunk.js.map
similarity index 98%
rename from static/js/84.a8182589.chunk.js.map
rename to static/js/84.aa7afdc0.chunk.js.map
index 4b79079eb..3d79dc82e 100644
--- a/static/js/84.a8182589.chunk.js.map
+++ b/static/js/84.aa7afdc0.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-02-14-10-00-1.5.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gCAAgC,OAAS,OAAO,KAAO,w2JAAw4J,MAAQ","file":"static/js/84.a8182589.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.12 Release\",\"description\":\"Wiki plugin and poison plugin\",\"author\":\"Adam\",\"body\":\"A wiki plugin was added which allows quickly looking up items, npcs, quests, and\\nmore on the OldSchool RuneScape Wiki . It\\nalso has a built in search feature which lets you quickly search for articles\\nusing the in game chatbox.
\\n
\\n
\\n
\\nA poison plugin was added which shows time until next damage, cure, and next\\npoison damage in an overlay on the hitpoints orb. It can also optionally add an\\ninfobox.
\\n \\n \\n
\\nThe player indicator plugin now has an option on where to draw the players name\\non screen.
\\n \\n
\\nAn option to hide the auto retaliate button has been added to the attack styles\\nplugin.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix loottracker losing loot on logout from RuneLite \\nFix world hopper not functioning correctly if the plugin is restarted \\nFix xp tracker progress bars to be more visible \\nFix "A Basic Anti Pot" anagram clue answer for removal of Veos's boat \\nAdd Hydra slayer helmet to the slayer plugin \\nAdd Kebos swamp cryptic clue \\nUpdate skilling calculator for Hydra, Drake and Wyrm bones XP change \\nAdd Rada's Blessings to Prayer plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (9):\\n api: add MessageNode and timestamp to ChatMessage event\\n api: remove SetMessage event\\n client: update SetMessage usages to ChatMessage\\n plugin manager test: check plugins don't error when registering with eventbus\\n http api: rename OSB ge classes with OSB prefix\\n client: add poison plugin to track poison damage\\n scene uploader: swap seColor/nwColor which had their mappings swapped\\n loottracker service: correct kills foreign key\\n Add GE history tracker\\n\\nAndrew Fulton (1):\\n client: flash only during LOGGED_IN game state (#7782)\\n\\nHenry Zhang (2):\\n Migrate onSetMessage to onChatMessage\\n Make sure WorldHopperPlugin's executor is active on startup\\n\\nHydrox6 (1):\\n Delay party instruction message if user is not logged in (#7696)\\n\\nJakob Ankarhem (1):\\n Remove dulling from progress bar positions (#7781)\\n\\nJordan Atwood (4):\\n perspective: Allow empty text for getCanvasTextLocation\\n actor: Mark getCanvasTextLocation as Nullable\\n player indicators: Add name position configuration\\n item stats: Represent boost data as ints\\n\\nKalle (2):\\n Fix anagram clue "A Basic Anti Pot" (answer changed to 6) (#7764)\\n World Map: Fix Ape Atoll tree type\\n\\nLucas (2):\\n Add kebos swamp cryptic clue\\n Add hydra slayer helms to slayer plugin\\n\\nMatthew Abel (1):\\n Hide auto retaliate from combat options (#7713)\\n\\nMax Weber (3):\\n runelite-client: centralize sprite overrides\\n ChatboxTextInput: Don't set built in update\\n Add Wiki plugin\\n\\nNoah Pittinger (1):\\n Add EqualsAndHashCode to Lombok data/value that do not extend Object\\n\\nNokkasiili (1):\\n Fix isVisable and isMinimapVisable spelling (Visable -> Visible) (#7766)\\n\\nRyan Bohannon (1):\\n Add agility shortcut entry for Taverly Dungeon upper level\\n\\nSpedwards (1):\\n Update Wyrm bone xp in skill calc based on passed polls (#7614)\\n\\nTomas Slusny (11):\\n Unhide barrows widgets on plugin shutdown\\n Unhide NMZ widgets on plugin shutdown\\n Unhide raids widgets on plugin shutdown\\n Do not draw yellow dot for local player in barrows plugin\\n Use correct player dot color in barrows plugin\\n Push sidebar non-tab buttons to bottom\\n Clear Cerberus ghost on LOADING game state\\n Use CLANCHAT_INFO for party messages\\n Fix unmapped target property "time" warning\\n Use ItemVariations when using Reset option for shift-click\\n Add offset to loot tracker API\\n\\nWillThomas (1):\\n Reorder skill calc json values based on prayer XP (#7751)\\n\\nbjornenalfa (1):\\n Add Rada's Blessings to Prayer plugin\\n\\nrejectedpromise (1):\\n Add new lines at .rs2asm <EOF> to resolve build warnings (#7812)\\n\\nsyngfaa (1):\\n Fix SOUL_JOURNEY typo in Kourend Library plugin (#7733)\\n
\\n\",\"image\":\"/img/blog/1.5.12-Release/wiki-lookup.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-02-14-10-00-1.5.12-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gCAAgC,OAAS,OAAO,KAAO,w2JAAw4J,MAAQ","file":"static/js/84.aa7afdc0.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.12 Release\",\"description\":\"Wiki plugin and poison plugin\",\"author\":\"Adam\",\"body\":\"A wiki plugin was added which allows quickly looking up items, npcs, quests, and\\nmore on the OldSchool RuneScape Wiki . It\\nalso has a built in search feature which lets you quickly search for articles\\nusing the in game chatbox.
\\n
\\n
\\n
\\nA poison plugin was added which shows time until next damage, cure, and next\\npoison damage in an overlay on the hitpoints orb. It can also optionally add an\\ninfobox.
\\n \\n \\n
\\nThe player indicator plugin now has an option on where to draw the players name\\non screen.
\\n \\n
\\nAn option to hide the auto retaliate button has been added to the attack styles\\nplugin.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix loottracker losing loot on logout from RuneLite \\nFix world hopper not functioning correctly if the plugin is restarted \\nFix xp tracker progress bars to be more visible \\nFix "A Basic Anti Pot" anagram clue answer for removal of Veos's boat \\nAdd Hydra slayer helmet to the slayer plugin \\nAdd Kebos swamp cryptic clue \\nUpdate skilling calculator for Hydra, Drake and Wyrm bones XP change \\nAdd Rada's Blessings to Prayer plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (9):\\n api: add MessageNode and timestamp to ChatMessage event\\n api: remove SetMessage event\\n client: update SetMessage usages to ChatMessage\\n plugin manager test: check plugins don't error when registering with eventbus\\n http api: rename OSB ge classes with OSB prefix\\n client: add poison plugin to track poison damage\\n scene uploader: swap seColor/nwColor which had their mappings swapped\\n loottracker service: correct kills foreign key\\n Add GE history tracker\\n\\nAndrew Fulton (1):\\n client: flash only during LOGGED_IN game state (#7782)\\n\\nHenry Zhang (2):\\n Migrate onSetMessage to onChatMessage\\n Make sure WorldHopperPlugin's executor is active on startup\\n\\nHydrox6 (1):\\n Delay party instruction message if user is not logged in (#7696)\\n\\nJakob Ankarhem (1):\\n Remove dulling from progress bar positions (#7781)\\n\\nJordan Atwood (4):\\n perspective: Allow empty text for getCanvasTextLocation\\n actor: Mark getCanvasTextLocation as Nullable\\n player indicators: Add name position configuration\\n item stats: Represent boost data as ints\\n\\nKalle (2):\\n Fix anagram clue "A Basic Anti Pot" (answer changed to 6) (#7764)\\n World Map: Fix Ape Atoll tree type\\n\\nLucas (2):\\n Add kebos swamp cryptic clue\\n Add hydra slayer helms to slayer plugin\\n\\nMatthew Abel (1):\\n Hide auto retaliate from combat options (#7713)\\n\\nMax Weber (3):\\n runelite-client: centralize sprite overrides\\n ChatboxTextInput: Don't set built in update\\n Add Wiki plugin\\n\\nNoah Pittinger (1):\\n Add EqualsAndHashCode to Lombok data/value that do not extend Object\\n\\nNokkasiili (1):\\n Fix isVisable and isMinimapVisable spelling (Visable -> Visible) (#7766)\\n\\nRyan Bohannon (1):\\n Add agility shortcut entry for Taverly Dungeon upper level\\n\\nSpedwards (1):\\n Update Wyrm bone xp in skill calc based on passed polls (#7614)\\n\\nTomas Slusny (11):\\n Unhide barrows widgets on plugin shutdown\\n Unhide NMZ widgets on plugin shutdown\\n Unhide raids widgets on plugin shutdown\\n Do not draw yellow dot for local player in barrows plugin\\n Use correct player dot color in barrows plugin\\n Push sidebar non-tab buttons to bottom\\n Clear Cerberus ghost on LOADING game state\\n Use CLANCHAT_INFO for party messages\\n Fix unmapped target property "time" warning\\n Use ItemVariations when using Reset option for shift-click\\n Add offset to loot tracker API\\n\\nWillThomas (1):\\n Reorder skill calc json values based on prayer XP (#7751)\\n\\nbjornenalfa (1):\\n Add Rada's Blessings to Prayer plugin\\n\\nrejectedpromise (1):\\n Add new lines at .rs2asm <EOF> to resolve build warnings (#7812)\\n\\nsyngfaa (1):\\n Fix SOUL_JOURNEY typo in Kourend Library plugin (#7733)\\n
\\n\",\"image\":\"/img/blog/1.5.12-Release/wiki-lookup.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/85.4400d580.chunk.js b/static/js/85.89a78590.chunk.js
similarity index 87%
rename from static/js/85.4400d580.chunk.js
rename to static/js/85.89a78590.chunk.js
index b2d06c2e2..64604d3b0 100644
--- a/static/js/85.4400d580.chunk.js
+++ b/static/js/85.89a78590.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[85],{360:function(e,n){e.exports={title:"Launcher 1.6.2 Release",description:"Linux AppImage and bugfixes for OSX",author:"Adam",skip:!0,body:'Launcher 1.6.2 was released yesterday which now includes a\n64bit Linux AppImage \nfor easy installation on Linux. The OSX download was also updated to fix\ninstallations on multi-user systems and to not require high performance graphics\nmode.
\nAdditionally, the launcher was fixed to work with --nojvm
on Java 9+ and will\nalso clean up old client releases on startup.
\nThe Windows releases have not changed and remains on 1.6.0
\n- Adam
\n'}}}]);
-//# sourceMappingURL=85.4400d580.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[85],{361:function(e,n){e.exports={title:"Launcher 1.6.2 Release",description:"Linux AppImage and bugfixes for OSX",author:"Adam",skip:!0,body:'Launcher 1.6.2 was released yesterday which now includes a\n64bit Linux AppImage \nfor easy installation on Linux. The OSX download was also updated to fix\ninstallations on multi-user systems and to not require high performance graphics\nmode.
\nAdditionally, the launcher was fixed to work with --nojvm
on Java 9+ and will\nalso clean up old client releases on startup.
\nThe Windows releases have not changed and remains on 1.6.0
\n- Adam
\n'}}}]);
+//# sourceMappingURL=85.89a78590.chunk.js.map
\ No newline at end of file
diff --git a/static/js/85.4400d580.chunk.js.map b/static/js/85.89a78590.chunk.js.map
similarity index 93%
rename from static/js/85.4400d580.chunk.js.map
rename to static/js/85.89a78590.chunk.js.map
index 2ec901c1b..4f956a776 100644
--- a/static/js/85.4400d580.chunk.js.map
+++ b/static/js/85.89a78590.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-02-16-16-00-Launcher-1.6.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,yBAAyB,YAAc,sCAAsC,OAAS,OAAO,MAAO,EAAK,KAAO","file":"static/js/85.4400d580.chunk.js","sourcesContent":["module.exports = {\"title\":\"Launcher 1.6.2 Release\",\"description\":\"Linux AppImage and bugfixes for OSX\",\"author\":\"Adam\",\"skip\":true,\"body\":\"Launcher 1.6.2 was released yesterday which now includes a\\n64bit Linux AppImage \\nfor easy installation on Linux. The OSX download was also updated to fix\\ninstallations on multi-user systems and to not require high performance graphics\\nmode.
\\nAdditionally, the launcher was fixed to work with --nojvm
on Java 9+ and will\\nalso clean up old client releases on startup.
\\nThe Windows releases have not changed and remains on 1.6.0
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-02-16-16-00-Launcher-1.6.2-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,yBAAyB,YAAc,sCAAsC,OAAS,OAAO,MAAO,EAAK,KAAO","file":"static/js/85.89a78590.chunk.js","sourcesContent":["module.exports = {\"title\":\"Launcher 1.6.2 Release\",\"description\":\"Linux AppImage and bugfixes for OSX\",\"author\":\"Adam\",\"skip\":true,\"body\":\"Launcher 1.6.2 was released yesterday which now includes a\\n64bit Linux AppImage \\nfor easy installation on Linux. The OSX download was also updated to fix\\ninstallations on multi-user systems and to not require high performance graphics\\nmode.
\\nAdditionally, the launcher was fixed to work with --nojvm
on Java 9+ and will\\nalso clean up old client releases on startup.
\\nThe Windows releases have not changed and remains on 1.6.0
\\n- Adam
\\n\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/86.d29ae419.chunk.js b/static/js/86.03025b7e.chunk.js
similarity index 98%
rename from static/js/86.d29ae419.chunk.js
rename to static/js/86.03025b7e.chunk.js
index 31283cdbe..e656059b7 100644
--- a/static/js/86.d29ae419.chunk.js
+++ b/static/js/86.03025b7e.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[86],{361:function(e,n){e.exports={title:"1.5.13 Release",description:"Item charge infoboxes, PM recipient cycling, and high-level agility obstacle highlighting",author:"Jordan",body:'The Item Charges plugin now has an option\nto display infoboxes for equipped charged items. Thanks to @Hydrox6 \nfor adding this feature!
\n
\nThe Chat History plugin can now cycle\nthrough private message senders. By hitting Tab, you can easily keep chatting with all of your\nfriends! Thanks to @TheStonedTurtle for writing this feature.
\n
\nThe Agility plugin will now highlight shortcuts\norange if you do not meet the agility level requirement to cross them. Thanks to\n@MrGroggle for adding this feature.
\n
\nThe Item Prices plugin now has an\noption to display profit from casting High Alchemy on an item
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Object Markers plugin properly\nhighlights some objects which could not previously be highlighted, such as mounted glory amulets\nand wall paintings \nOur custom chatbox text input now wraps long lines, such as heavily-tagged items in the\nBank Tags plugin \nYou can now configure the outline color of the current hovered tile in the Tile Indicators\nplugin \nTooltips for the new Kourend quests and X Marks the Spot quest have been added to the World Map\nplugin. Additionally, the tree tooltips\nfor the Yew Trees in Rimmington have been updated since Veos\'s arrival. \nChallenge Mode raids now have their time tracked in the Chambers of Xeric\nplugin, and can have their kill count\nlooked up via the Chat Commands plugin\nusing the !kc
command followed by cox cm
, xeric cm
, chambers cm
, olm cm
, or raids cm
.\nAdditionally, the Screenshot plugin\nhas learned to take screenshots of Challenge Mode raids upon completion. \nThe Wiki plugin now adds a skill guide lookup menu option to skills in your stats tab \nFalador teleport has had its magic XP corrected in the Skill Calculator\nplugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 18 contributors this release!
\nAdam (13):\n api: add method to find instanced tiles in the scene\n xptracker: limit how often the same players are looked up\n xptracker: treat players with rank -1 as unranked\n http service: use gson instead of jackson for json serialization\n http service: use spring datasource configuration\n http service: add loottracker controller test\n http service: use http-api gson instance\n config service: split into service and controller\n config controller: add test\n http service: fix overwriting all default message converters\n client: change Counter infobox to store count as an integer\n item prices: add high alch profit to overlay\n client: only enable developer mode if launcher version isn\'t set\n\nDennis (1):\n gpu: remove unnecessary texture bind\n\nDesetude (1):\n Use xdg-open for link browsing on Linux\n\nHarry Semple (1):\n agility plugin: color shortcuts you don\'t have the level to use differently\n\nHydrox6 (1):\n Add infoboxes to item charges plugin\n\nJaysc (1):\n Make color of hovered tile highlight configurable\n\nMax Weber (5):\n mixins: Fix DecorativeObject ConvexHulls\n DevTools: draw both DecorativeObject Renderables\n mixins: Include game crash string in log\n mixins: rename gameDraw to renderWidgetLayer\n runelite-api: Add missing widget types\n\nMinghan Li (1):\n Add new Kourend quests to world map plugin (#7864)\n\nNokkasiili (1):\n Add X Marks the Spot quest to world map plugin (#7877)\n\nRobert (1):\n Add support for third floor timer to Raids plugin (Challenge Mode) (#7871)\n\nRon Young (4):\n ChatboxTextInput: rename this.cursor to this.cursorStart\n ChatboxTextInput: support line wrapping\n ChatboxTextInput: support moving between lines with up/down keys\n Limit wiki input lines to 1\n\nTheStonedTurtle (2):\n Add PM Target Cycling to Chat History plugin\n Add Chat History config options\n\nTomas Slusny (15):\n Add .getBounds() to LayoutableRenderableEntity\n Use new LayoutableRenderableEntity#getBounds in InfoboxOverlay\n Export ItemCompositionCache\n Reset item composition cache on menu shift click change\n Normalize CoX CM naming from boss long and chat message\n Use default PanelComponent size in Cooking plugin\n Make party stats overlay consistent with other overlays\n Log only exception message on feed lookup failures\n Null-check cache when getting items in http service\n Log infobox removal only if infobox was removed\n Support new Hydra slayer helmet in clue scroll plugin\n Add version information to Discord tooltip\n Check for area update on Discord plugin startup\n Do not use default smallImageKey for Rich Presence\n Remove dodgy charges variable from item charges plugin\n\nUsernamerino (1):\n Add chat command shorthand for challenge mode raids killcount\n\nWill Thomas (2):\n screenshot plugin: Add Challenge Mode raid support\n wiki plugin: Add skill guide lookup\n\nYani (1):\n Update Rimmington yew tree location after Veos moved (#7889)\n\nmabel5 (1):\n Added decoration objects to object markers\n\ntheGeekPirate (1):\n Correct Falador teleport XP in Skill Calc (#7943)\n
\n',image:"/img/blog/1.5.13-Release/item-charge-infoboxes.gif"}}}]);
-//# sourceMappingURL=86.d29ae419.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[86],{362:function(e,n){e.exports={title:"1.5.13 Release",description:"Item charge infoboxes, PM recipient cycling, and high-level agility obstacle highlighting",author:"Jordan",body:'The Item Charges plugin now has an option\nto display infoboxes for equipped charged items. Thanks to @Hydrox6 \nfor adding this feature!
\n
\nThe Chat History plugin can now cycle\nthrough private message senders. By hitting Tab, you can easily keep chatting with all of your\nfriends! Thanks to @TheStonedTurtle for writing this feature.
\n
\nThe Agility plugin will now highlight shortcuts\norange if you do not meet the agility level requirement to cross them. Thanks to\n@MrGroggle for adding this feature.
\n
\nThe Item Prices plugin now has an\noption to display profit from casting High Alchemy on an item
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Object Markers plugin properly\nhighlights some objects which could not previously be highlighted, such as mounted glory amulets\nand wall paintings \nOur custom chatbox text input now wraps long lines, such as heavily-tagged items in the\nBank Tags plugin \nYou can now configure the outline color of the current hovered tile in the Tile Indicators\nplugin \nTooltips for the new Kourend quests and X Marks the Spot quest have been added to the World Map\nplugin. Additionally, the tree tooltips\nfor the Yew Trees in Rimmington have been updated since Veos\'s arrival. \nChallenge Mode raids now have their time tracked in the Chambers of Xeric\nplugin, and can have their kill count\nlooked up via the Chat Commands plugin\nusing the !kc
command followed by cox cm
, xeric cm
, chambers cm
, olm cm
, or raids cm
.\nAdditionally, the Screenshot plugin\nhas learned to take screenshots of Challenge Mode raids upon completion. \nThe Wiki plugin now adds a skill guide lookup menu option to skills in your stats tab \nFalador teleport has had its magic XP corrected in the Skill Calculator\nplugin \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 18 contributors this release!
\nAdam (13):\n api: add method to find instanced tiles in the scene\n xptracker: limit how often the same players are looked up\n xptracker: treat players with rank -1 as unranked\n http service: use gson instead of jackson for json serialization\n http service: use spring datasource configuration\n http service: add loottracker controller test\n http service: use http-api gson instance\n config service: split into service and controller\n config controller: add test\n http service: fix overwriting all default message converters\n client: change Counter infobox to store count as an integer\n item prices: add high alch profit to overlay\n client: only enable developer mode if launcher version isn\'t set\n\nDennis (1):\n gpu: remove unnecessary texture bind\n\nDesetude (1):\n Use xdg-open for link browsing on Linux\n\nHarry Semple (1):\n agility plugin: color shortcuts you don\'t have the level to use differently\n\nHydrox6 (1):\n Add infoboxes to item charges plugin\n\nJaysc (1):\n Make color of hovered tile highlight configurable\n\nMax Weber (5):\n mixins: Fix DecorativeObject ConvexHulls\n DevTools: draw both DecorativeObject Renderables\n mixins: Include game crash string in log\n mixins: rename gameDraw to renderWidgetLayer\n runelite-api: Add missing widget types\n\nMinghan Li (1):\n Add new Kourend quests to world map plugin (#7864)\n\nNokkasiili (1):\n Add X Marks the Spot quest to world map plugin (#7877)\n\nRobert (1):\n Add support for third floor timer to Raids plugin (Challenge Mode) (#7871)\n\nRon Young (4):\n ChatboxTextInput: rename this.cursor to this.cursorStart\n ChatboxTextInput: support line wrapping\n ChatboxTextInput: support moving between lines with up/down keys\n Limit wiki input lines to 1\n\nTheStonedTurtle (2):\n Add PM Target Cycling to Chat History plugin\n Add Chat History config options\n\nTomas Slusny (15):\n Add .getBounds() to LayoutableRenderableEntity\n Use new LayoutableRenderableEntity#getBounds in InfoboxOverlay\n Export ItemCompositionCache\n Reset item composition cache on menu shift click change\n Normalize CoX CM naming from boss long and chat message\n Use default PanelComponent size in Cooking plugin\n Make party stats overlay consistent with other overlays\n Log only exception message on feed lookup failures\n Null-check cache when getting items in http service\n Log infobox removal only if infobox was removed\n Support new Hydra slayer helmet in clue scroll plugin\n Add version information to Discord tooltip\n Check for area update on Discord plugin startup\n Do not use default smallImageKey for Rich Presence\n Remove dodgy charges variable from item charges plugin\n\nUsernamerino (1):\n Add chat command shorthand for challenge mode raids killcount\n\nWill Thomas (2):\n screenshot plugin: Add Challenge Mode raid support\n wiki plugin: Add skill guide lookup\n\nYani (1):\n Update Rimmington yew tree location after Veos moved (#7889)\n\nmabel5 (1):\n Added decoration objects to object markers\n\ntheGeekPirate (1):\n Correct Falador teleport XP in Skill Calc (#7943)\n
\n',image:"/img/blog/1.5.13-Release/item-charge-infoboxes.gif"}}}]);
+//# sourceMappingURL=86.03025b7e.chunk.js.map
\ No newline at end of file
diff --git a/static/js/86.d29ae419.chunk.js.map b/static/js/86.03025b7e.chunk.js.map
similarity index 99%
rename from static/js/86.d29ae419.chunk.js.map
rename to static/js/86.03025b7e.chunk.js.map
index 9b1319656..f7f846558 100644
--- a/static/js/86.d29ae419.chunk.js.map
+++ b/static/js/86.03025b7e.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-02-21-10-00-1.5.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4FAA4F,OAAS,SAAS,KAAO,yrMAA4uM,MAAQ","file":"static/js/86.d29ae419.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.13 Release\",\"description\":\"Item charge infoboxes, PM recipient cycling, and high-level agility obstacle highlighting\",\"author\":\"Jordan\",\"body\":\"The Item Charges plugin now has an option\\nto display infoboxes for equipped charged items. Thanks to @Hydrox6 \\nfor adding this feature!
\\n
\\nThe Chat History plugin can now cycle\\nthrough private message senders. By hitting Tab, you can easily keep chatting with all of your\\nfriends! Thanks to @TheStonedTurtle for writing this feature.
\\n
\\nThe Agility plugin will now highlight shortcuts\\norange if you do not meet the agility level requirement to cross them. Thanks to\\n@MrGroggle for adding this feature.
\\n
\\nThe Item Prices plugin now has an\\noption to display profit from casting High Alchemy on an item
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Object Markers plugin properly\\nhighlights some objects which could not previously be highlighted, such as mounted glory amulets\\nand wall paintings \\nOur custom chatbox text input now wraps long lines, such as heavily-tagged items in the\\nBank Tags plugin \\nYou can now configure the outline color of the current hovered tile in the Tile Indicators\\nplugin \\nTooltips for the new Kourend quests and X Marks the Spot quest have been added to the World Map\\nplugin. Additionally, the tree tooltips\\nfor the Yew Trees in Rimmington have been updated since Veos's arrival. \\nChallenge Mode raids now have their time tracked in the Chambers of Xeric\\nplugin, and can have their kill count\\nlooked up via the Chat Commands plugin\\nusing the !kc
command followed by cox cm
, xeric cm
, chambers cm
, olm cm
, or raids cm
.\\nAdditionally, the Screenshot plugin\\nhas learned to take screenshots of Challenge Mode raids upon completion. \\nThe Wiki plugin now adds a skill guide lookup menu option to skills in your stats tab \\nFalador teleport has had its magic XP corrected in the Skill Calculator\\nplugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (13):\\n api: add method to find instanced tiles in the scene\\n xptracker: limit how often the same players are looked up\\n xptracker: treat players with rank -1 as unranked\\n http service: use gson instead of jackson for json serialization\\n http service: use spring datasource configuration\\n http service: add loottracker controller test\\n http service: use http-api gson instance\\n config service: split into service and controller\\n config controller: add test\\n http service: fix overwriting all default message converters\\n client: change Counter infobox to store count as an integer\\n item prices: add high alch profit to overlay\\n client: only enable developer mode if launcher version isn't set\\n\\nDennis (1):\\n gpu: remove unnecessary texture bind\\n\\nDesetude (1):\\n Use xdg-open for link browsing on Linux\\n\\nHarry Semple (1):\\n agility plugin: color shortcuts you don't have the level to use differently\\n\\nHydrox6 (1):\\n Add infoboxes to item charges plugin\\n\\nJaysc (1):\\n Make color of hovered tile highlight configurable\\n\\nMax Weber (5):\\n mixins: Fix DecorativeObject ConvexHulls\\n DevTools: draw both DecorativeObject Renderables\\n mixins: Include game crash string in log\\n mixins: rename gameDraw to renderWidgetLayer\\n runelite-api: Add missing widget types\\n\\nMinghan Li (1):\\n Add new Kourend quests to world map plugin (#7864)\\n\\nNokkasiili (1):\\n Add X Marks the Spot quest to world map plugin (#7877)\\n\\nRobert (1):\\n Add support for third floor timer to Raids plugin (Challenge Mode) (#7871)\\n\\nRon Young (4):\\n ChatboxTextInput: rename this.cursor to this.cursorStart\\n ChatboxTextInput: support line wrapping\\n ChatboxTextInput: support moving between lines with up/down keys\\n Limit wiki input lines to 1\\n\\nTheStonedTurtle (2):\\n Add PM Target Cycling to Chat History plugin\\n Add Chat History config options\\n\\nTomas Slusny (15):\\n Add .getBounds() to LayoutableRenderableEntity\\n Use new LayoutableRenderableEntity#getBounds in InfoboxOverlay\\n Export ItemCompositionCache\\n Reset item composition cache on menu shift click change\\n Normalize CoX CM naming from boss long and chat message\\n Use default PanelComponent size in Cooking plugin\\n Make party stats overlay consistent with other overlays\\n Log only exception message on feed lookup failures\\n Null-check cache when getting items in http service\\n Log infobox removal only if infobox was removed\\n Support new Hydra slayer helmet in clue scroll plugin\\n Add version information to Discord tooltip\\n Check for area update on Discord plugin startup\\n Do not use default smallImageKey for Rich Presence\\n Remove dodgy charges variable from item charges plugin\\n\\nUsernamerino (1):\\n Add chat command shorthand for challenge mode raids killcount\\n\\nWill Thomas (2):\\n screenshot plugin: Add Challenge Mode raid support\\n wiki plugin: Add skill guide lookup\\n\\nYani (1):\\n Update Rimmington yew tree location after Veos moved (#7889)\\n\\nmabel5 (1):\\n Added decoration objects to object markers\\n\\ntheGeekPirate (1):\\n Correct Falador teleport XP in Skill Calc (#7943)\\n
\\n\",\"image\":\"/img/blog/1.5.13-Release/item-charge-infoboxes.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-02-21-10-00-1.5.13-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4FAA4F,OAAS,SAAS,KAAO,yrMAA4uM,MAAQ","file":"static/js/86.03025b7e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.13 Release\",\"description\":\"Item charge infoboxes, PM recipient cycling, and high-level agility obstacle highlighting\",\"author\":\"Jordan\",\"body\":\"The Item Charges plugin now has an option\\nto display infoboxes for equipped charged items. Thanks to @Hydrox6 \\nfor adding this feature!
\\n
\\nThe Chat History plugin can now cycle\\nthrough private message senders. By hitting Tab, you can easily keep chatting with all of your\\nfriends! Thanks to @TheStonedTurtle for writing this feature.
\\n
\\nThe Agility plugin will now highlight shortcuts\\norange if you do not meet the agility level requirement to cross them. Thanks to\\n@MrGroggle for adding this feature.
\\n
\\nThe Item Prices plugin now has an\\noption to display profit from casting High Alchemy on an item
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Object Markers plugin properly\\nhighlights some objects which could not previously be highlighted, such as mounted glory amulets\\nand wall paintings \\nOur custom chatbox text input now wraps long lines, such as heavily-tagged items in the\\nBank Tags plugin \\nYou can now configure the outline color of the current hovered tile in the Tile Indicators\\nplugin \\nTooltips for the new Kourend quests and X Marks the Spot quest have been added to the World Map\\nplugin. Additionally, the tree tooltips\\nfor the Yew Trees in Rimmington have been updated since Veos's arrival. \\nChallenge Mode raids now have their time tracked in the Chambers of Xeric\\nplugin, and can have their kill count\\nlooked up via the Chat Commands plugin\\nusing the !kc
command followed by cox cm
, xeric cm
, chambers cm
, olm cm
, or raids cm
.\\nAdditionally, the Screenshot plugin\\nhas learned to take screenshots of Challenge Mode raids upon completion. \\nThe Wiki plugin now adds a skill guide lookup menu option to skills in your stats tab \\nFalador teleport has had its magic XP corrected in the Skill Calculator\\nplugin \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 18 contributors this release!
\\nAdam (13):\\n api: add method to find instanced tiles in the scene\\n xptracker: limit how often the same players are looked up\\n xptracker: treat players with rank -1 as unranked\\n http service: use gson instead of jackson for json serialization\\n http service: use spring datasource configuration\\n http service: add loottracker controller test\\n http service: use http-api gson instance\\n config service: split into service and controller\\n config controller: add test\\n http service: fix overwriting all default message converters\\n client: change Counter infobox to store count as an integer\\n item prices: add high alch profit to overlay\\n client: only enable developer mode if launcher version isn't set\\n\\nDennis (1):\\n gpu: remove unnecessary texture bind\\n\\nDesetude (1):\\n Use xdg-open for link browsing on Linux\\n\\nHarry Semple (1):\\n agility plugin: color shortcuts you don't have the level to use differently\\n\\nHydrox6 (1):\\n Add infoboxes to item charges plugin\\n\\nJaysc (1):\\n Make color of hovered tile highlight configurable\\n\\nMax Weber (5):\\n mixins: Fix DecorativeObject ConvexHulls\\n DevTools: draw both DecorativeObject Renderables\\n mixins: Include game crash string in log\\n mixins: rename gameDraw to renderWidgetLayer\\n runelite-api: Add missing widget types\\n\\nMinghan Li (1):\\n Add new Kourend quests to world map plugin (#7864)\\n\\nNokkasiili (1):\\n Add X Marks the Spot quest to world map plugin (#7877)\\n\\nRobert (1):\\n Add support for third floor timer to Raids plugin (Challenge Mode) (#7871)\\n\\nRon Young (4):\\n ChatboxTextInput: rename this.cursor to this.cursorStart\\n ChatboxTextInput: support line wrapping\\n ChatboxTextInput: support moving between lines with up/down keys\\n Limit wiki input lines to 1\\n\\nTheStonedTurtle (2):\\n Add PM Target Cycling to Chat History plugin\\n Add Chat History config options\\n\\nTomas Slusny (15):\\n Add .getBounds() to LayoutableRenderableEntity\\n Use new LayoutableRenderableEntity#getBounds in InfoboxOverlay\\n Export ItemCompositionCache\\n Reset item composition cache on menu shift click change\\n Normalize CoX CM naming from boss long and chat message\\n Use default PanelComponent size in Cooking plugin\\n Make party stats overlay consistent with other overlays\\n Log only exception message on feed lookup failures\\n Null-check cache when getting items in http service\\n Log infobox removal only if infobox was removed\\n Support new Hydra slayer helmet in clue scroll plugin\\n Add version information to Discord tooltip\\n Check for area update on Discord plugin startup\\n Do not use default smallImageKey for Rich Presence\\n Remove dodgy charges variable from item charges plugin\\n\\nUsernamerino (1):\\n Add chat command shorthand for challenge mode raids killcount\\n\\nWill Thomas (2):\\n screenshot plugin: Add Challenge Mode raid support\\n wiki plugin: Add skill guide lookup\\n\\nYani (1):\\n Update Rimmington yew tree location after Veos moved (#7889)\\n\\nmabel5 (1):\\n Added decoration objects to object markers\\n\\ntheGeekPirate (1):\\n Correct Falador teleport XP in Skill Calc (#7943)\\n
\\n\",\"image\":\"/img/blog/1.5.13-Release/item-charge-infoboxes.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/87.69c15fb7.chunk.js b/static/js/87.dd24a7aa.chunk.js
similarity index 97%
rename from static/js/87.69c15fb7.chunk.js
rename to static/js/87.dd24a7aa.chunk.js
index b68cfd82f..fac9f6ac0 100644
--- a/static/js/87.69c15fb7.chunk.js
+++ b/static/js/87.dd24a7aa.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[87],{362:function(n,e){n.exports={title:"1.5.14 Release",description:"Web based loot tracker, Grand Exchange history, and account overview",author:"Adam",body:'This weeks update is focused on improvements to the website. You can now login\non https://runelite.net and view details about your\nRuneLite account which includes current slayer task, a boss log, the loot\ntracker, and a new Grand Exchange history tracker which tracks completed trades\nyou have made on the GE.
\nLoot tracker:
\n\n![loot](/img/blog/1.5.14-Release/loot.png)\n
\nAccount overview:
\n\n![account](/img/blog/1.5.14-Release/account.png)\n
\nGrand Exchange history:
\n\n![ge](/img/blog/1.5.14-Release/ge.png)\n
\nBoth the loot tracker and Grand Exchange tracker allow easily exporting their\ndata into JSON format. Both keep up to 1 month of history.
\nThanks to @deathbeam for creating the site over\nthe last few weeks.
\nThe hitpoints plugin can now recolor the hitpoints icons based on the type of\npoison you have:
\n
\nLocal RuneLite settings can now be imported into an account\'s settings by\nclicking the Import button in the Info panel when logged in:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix item prices plugin to show negative alch profits too \nFix fishing overlay disappearing whenever a new map is loaded \nAdd heal amount for castle wars bandages to item stats \nkourend library plugin: add config option to hide duplicate books \nAdd support for looking up game objects with the wiki plugin \nAdd enchanting jewelry to the idle notification plugin \nAdd link to Wiki guide from achievement diaries \nAllow bank tag tabs to be renamed \nAdd new farming crops to skill calculator \nAdd Twisted bow spawn near farming guild \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (12):\n http service: disable spring jmx\n item prices: show negative high alch profits too\n xptracker service: only update last_updated after hiscores are saved\n xptracker: up xp threshold to 10k\n api: add RS Enum API\n client: fix indenting of getItemCompositionCache javadoc\n Revert "Clear stored npcs in fishing/pc/rc plugins"\n Clear stored npcs in fishing/pc/rc plugins\n Revert "Clear Cerberus ghost on LOADING game state"\n cerb plugin: clear ghosts on connection lost too\n http service: remove ws service\n mixins: inject Client constructor for initialization of enumCache\n\nGio (1):\n Add heal amount for castle wars bandages (#7878)\n\nHydrox6 (1):\n Add account prompt to the OAuth URL\n\nKoekkruimels (3):\n Add color to the library customer based on player inventory (#7951)\n kourend library plugin: add config option to hide duplicate books\n Refactor changes of #7951 to use doesPlayerContainBook\n\nMagic fTail (1):\n Split synchronizing and uploading loot data into separate configs\n\nMax Weber (3):\n WikiPlugin: Strip tags from names given to RSLookup\n WikiPlugin: Allow lookup of Objects\n WikiPlugin: Eschew URLEncoder in favor of HttpUrl\n\nRon Young (2):\n TabInterface: remove deprecated widget calls\n TabInterface: move icon search into method TabManager: add remove/set icon\n\nRoyce Mathews (1):\n Add enchanting jewelry to the idle notification plugin. (#7977)\n\nRyBo (1):\n Highlight more efficient ledge in the Falador Agility course (#7938)\n\nShaun Dreclin (1):\n wiki plugin: Add support for achievement diaries\n\nTanner Chauncy (1):\n banktags: add tag tab renaming\n\nTheStonedTurtle (1):\n Add dynamic hitpoints orb icon to poison plugin (#6517)\n\nTomas Slusny (11):\n Do not try to draw infobox caption if text is null or empty\n Remove emptyOrNull text check from InfoboxOverlay\n Add button to sync local config with remote\n Backup RuneLite account settings before overwriting them\n Log config property changes only if they really change\n Properly split config properties loaded from config client\n Catch JVM incompatible library JNA error when initializing Discord\n Move slayer weakness overlay 1 layer up above\n Limit access levels for InfoBox fields\n Fix infobox impl access levels and remove unused values\n Convert item stats mapping to use item ids instead of names\n\nWill Thomas (1):\n skills calc: add new farmable crops and trees\n\nchestnut1693 (1):\n Add home tag to Default World plugin\n
\n',image:"/img/blog/1.5.14-Release/orbs.png"}}}]);
-//# sourceMappingURL=87.69c15fb7.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[87],{363:function(n,e){n.exports={title:"1.5.14 Release",description:"Web based loot tracker, Grand Exchange history, and account overview",author:"Adam",body:'This weeks update is focused on improvements to the website. You can now login\non https://runelite.net and view details about your\nRuneLite account which includes current slayer task, a boss log, the loot\ntracker, and a new Grand Exchange history tracker which tracks completed trades\nyou have made on the GE.
\nLoot tracker:
\n\n![loot](/img/blog/1.5.14-Release/loot.png)\n
\nAccount overview:
\n\n![account](/img/blog/1.5.14-Release/account.png)\n
\nGrand Exchange history:
\n\n![ge](/img/blog/1.5.14-Release/ge.png)\n
\nBoth the loot tracker and Grand Exchange tracker allow easily exporting their\ndata into JSON format. Both keep up to 1 month of history.
\nThanks to @deathbeam for creating the site over\nthe last few weeks.
\nThe hitpoints plugin can now recolor the hitpoints icons based on the type of\npoison you have:
\n
\nLocal RuneLite settings can now be imported into an account\'s settings by\nclicking the Import button in the Info panel when logged in:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix item prices plugin to show negative alch profits too \nFix fishing overlay disappearing whenever a new map is loaded \nAdd heal amount for castle wars bandages to item stats \nkourend library plugin: add config option to hide duplicate books \nAdd support for looking up game objects with the wiki plugin \nAdd enchanting jewelry to the idle notification plugin \nAdd link to Wiki guide from achievement diaries \nAllow bank tag tabs to be renamed \nAdd new farming crops to skill calculator \nAdd Twisted bow spawn near farming guild \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 15 contributors this release!
\nAdam (12):\n http service: disable spring jmx\n item prices: show negative high alch profits too\n xptracker service: only update last_updated after hiscores are saved\n xptracker: up xp threshold to 10k\n api: add RS Enum API\n client: fix indenting of getItemCompositionCache javadoc\n Revert "Clear stored npcs in fishing/pc/rc plugins"\n Clear stored npcs in fishing/pc/rc plugins\n Revert "Clear Cerberus ghost on LOADING game state"\n cerb plugin: clear ghosts on connection lost too\n http service: remove ws service\n mixins: inject Client constructor for initialization of enumCache\n\nGio (1):\n Add heal amount for castle wars bandages (#7878)\n\nHydrox6 (1):\n Add account prompt to the OAuth URL\n\nKoekkruimels (3):\n Add color to the library customer based on player inventory (#7951)\n kourend library plugin: add config option to hide duplicate books\n Refactor changes of #7951 to use doesPlayerContainBook\n\nMagic fTail (1):\n Split synchronizing and uploading loot data into separate configs\n\nMax Weber (3):\n WikiPlugin: Strip tags from names given to RSLookup\n WikiPlugin: Allow lookup of Objects\n WikiPlugin: Eschew URLEncoder in favor of HttpUrl\n\nRon Young (2):\n TabInterface: remove deprecated widget calls\n TabInterface: move icon search into method TabManager: add remove/set icon\n\nRoyce Mathews (1):\n Add enchanting jewelry to the idle notification plugin. (#7977)\n\nRyBo (1):\n Highlight more efficient ledge in the Falador Agility course (#7938)\n\nShaun Dreclin (1):\n wiki plugin: Add support for achievement diaries\n\nTanner Chauncy (1):\n banktags: add tag tab renaming\n\nTheStonedTurtle (1):\n Add dynamic hitpoints orb icon to poison plugin (#6517)\n\nTomas Slusny (11):\n Do not try to draw infobox caption if text is null or empty\n Remove emptyOrNull text check from InfoboxOverlay\n Add button to sync local config with remote\n Backup RuneLite account settings before overwriting them\n Log config property changes only if they really change\n Properly split config properties loaded from config client\n Catch JVM incompatible library JNA error when initializing Discord\n Move slayer weakness overlay 1 layer up above\n Limit access levels for InfoBox fields\n Fix infobox impl access levels and remove unused values\n Convert item stats mapping to use item ids instead of names\n\nWill Thomas (1):\n skills calc: add new farmable crops and trees\n\nchestnut1693 (1):\n Add home tag to Default World plugin\n
\n',image:"/img/blog/1.5.14-Release/orbs.png"}}}]);
+//# sourceMappingURL=87.dd24a7aa.chunk.js.map
\ No newline at end of file
diff --git a/static/js/87.69c15fb7.chunk.js.map b/static/js/87.dd24a7aa.chunk.js.map
similarity index 98%
rename from static/js/87.69c15fb7.chunk.js.map
rename to static/js/87.dd24a7aa.chunk.js.map
index 21cbbfe62..e495e48a1 100644
--- a/static/js/87.69c15fb7.chunk.js.map
+++ b/static/js/87.dd24a7aa.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-02-28-10-00-1.5.14-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uEAAuE,OAAS,OAAO,KAAO,63JAAs5J,MAAQ","file":"static/js/87.69c15fb7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.14 Release\",\"description\":\"Web based loot tracker, Grand Exchange history, and account overview\",\"author\":\"Adam\",\"body\":\"This weeks update is focused on improvements to the website. You can now login\\non https://runelite.net and view details about your\\nRuneLite account which includes current slayer task, a boss log, the loot\\ntracker, and a new Grand Exchange history tracker which tracks completed trades\\nyou have made on the GE.
\\nLoot tracker:
\\n\\n![loot](/img/blog/1.5.14-Release/loot.png)\\n
\\nAccount overview:
\\n\\n![account](/img/blog/1.5.14-Release/account.png)\\n
\\nGrand Exchange history:
\\n\\n![ge](/img/blog/1.5.14-Release/ge.png)\\n
\\nBoth the loot tracker and Grand Exchange tracker allow easily exporting their\\ndata into JSON format. Both keep up to 1 month of history.
\\nThanks to @deathbeam for creating the site over\\nthe last few weeks.
\\nThe hitpoints plugin can now recolor the hitpoints icons based on the type of\\npoison you have:
\\n
\\nLocal RuneLite settings can now be imported into an account's settings by\\nclicking the Import button in the Info panel when logged in:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix item prices plugin to show negative alch profits too \\nFix fishing overlay disappearing whenever a new map is loaded \\nAdd heal amount for castle wars bandages to item stats \\nkourend library plugin: add config option to hide duplicate books \\nAdd support for looking up game objects with the wiki plugin \\nAdd enchanting jewelry to the idle notification plugin \\nAdd link to Wiki guide from achievement diaries \\nAllow bank tag tabs to be renamed \\nAdd new farming crops to skill calculator \\nAdd Twisted bow spawn near farming guild \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (12):\\n http service: disable spring jmx\\n item prices: show negative high alch profits too\\n xptracker service: only update last_updated after hiscores are saved\\n xptracker: up xp threshold to 10k\\n api: add RS Enum API\\n client: fix indenting of getItemCompositionCache javadoc\\n Revert "Clear stored npcs in fishing/pc/rc plugins"\\n Clear stored npcs in fishing/pc/rc plugins\\n Revert "Clear Cerberus ghost on LOADING game state"\\n cerb plugin: clear ghosts on connection lost too\\n http service: remove ws service\\n mixins: inject Client constructor for initialization of enumCache\\n\\nGio (1):\\n Add heal amount for castle wars bandages (#7878)\\n\\nHydrox6 (1):\\n Add account prompt to the OAuth URL\\n\\nKoekkruimels (3):\\n Add color to the library customer based on player inventory (#7951)\\n kourend library plugin: add config option to hide duplicate books\\n Refactor changes of #7951 to use doesPlayerContainBook\\n\\nMagic fTail (1):\\n Split synchronizing and uploading loot data into separate configs\\n\\nMax Weber (3):\\n WikiPlugin: Strip tags from names given to RSLookup\\n WikiPlugin: Allow lookup of Objects\\n WikiPlugin: Eschew URLEncoder in favor of HttpUrl\\n\\nRon Young (2):\\n TabInterface: remove deprecated widget calls\\n TabInterface: move icon search into method TabManager: add remove/set icon\\n\\nRoyce Mathews (1):\\n Add enchanting jewelry to the idle notification plugin. (#7977)\\n\\nRyBo (1):\\n Highlight more efficient ledge in the Falador Agility course (#7938)\\n\\nShaun Dreclin (1):\\n wiki plugin: Add support for achievement diaries\\n\\nTanner Chauncy (1):\\n banktags: add tag tab renaming\\n\\nTheStonedTurtle (1):\\n Add dynamic hitpoints orb icon to poison plugin (#6517)\\n\\nTomas Slusny (11):\\n Do not try to draw infobox caption if text is null or empty\\n Remove emptyOrNull text check from InfoboxOverlay\\n Add button to sync local config with remote\\n Backup RuneLite account settings before overwriting them\\n Log config property changes only if they really change\\n Properly split config properties loaded from config client\\n Catch JVM incompatible library JNA error when initializing Discord\\n Move slayer weakness overlay 1 layer up above\\n Limit access levels for InfoBox fields\\n Fix infobox impl access levels and remove unused values\\n Convert item stats mapping to use item ids instead of names\\n\\nWill Thomas (1):\\n skills calc: add new farmable crops and trees\\n\\nchestnut1693 (1):\\n Add home tag to Default World plugin\\n
\\n\",\"image\":\"/img/blog/1.5.14-Release/orbs.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-02-28-10-00-1.5.14-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,uEAAuE,OAAS,OAAO,KAAO,63JAAs5J,MAAQ","file":"static/js/87.dd24a7aa.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.14 Release\",\"description\":\"Web based loot tracker, Grand Exchange history, and account overview\",\"author\":\"Adam\",\"body\":\"This weeks update is focused on improvements to the website. You can now login\\non https://runelite.net and view details about your\\nRuneLite account which includes current slayer task, a boss log, the loot\\ntracker, and a new Grand Exchange history tracker which tracks completed trades\\nyou have made on the GE.
\\nLoot tracker:
\\n\\n![loot](/img/blog/1.5.14-Release/loot.png)\\n
\\nAccount overview:
\\n\\n![account](/img/blog/1.5.14-Release/account.png)\\n
\\nGrand Exchange history:
\\n\\n![ge](/img/blog/1.5.14-Release/ge.png)\\n
\\nBoth the loot tracker and Grand Exchange tracker allow easily exporting their\\ndata into JSON format. Both keep up to 1 month of history.
\\nThanks to @deathbeam for creating the site over\\nthe last few weeks.
\\nThe hitpoints plugin can now recolor the hitpoints icons based on the type of\\npoison you have:
\\n
\\nLocal RuneLite settings can now be imported into an account's settings by\\nclicking the Import button in the Info panel when logged in:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix item prices plugin to show negative alch profits too \\nFix fishing overlay disappearing whenever a new map is loaded \\nAdd heal amount for castle wars bandages to item stats \\nkourend library plugin: add config option to hide duplicate books \\nAdd support for looking up game objects with the wiki plugin \\nAdd enchanting jewelry to the idle notification plugin \\nAdd link to Wiki guide from achievement diaries \\nAllow bank tag tabs to be renamed \\nAdd new farming crops to skill calculator \\nAdd Twisted bow spawn near farming guild \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 15 contributors this release!
\\nAdam (12):\\n http service: disable spring jmx\\n item prices: show negative high alch profits too\\n xptracker service: only update last_updated after hiscores are saved\\n xptracker: up xp threshold to 10k\\n api: add RS Enum API\\n client: fix indenting of getItemCompositionCache javadoc\\n Revert "Clear stored npcs in fishing/pc/rc plugins"\\n Clear stored npcs in fishing/pc/rc plugins\\n Revert "Clear Cerberus ghost on LOADING game state"\\n cerb plugin: clear ghosts on connection lost too\\n http service: remove ws service\\n mixins: inject Client constructor for initialization of enumCache\\n\\nGio (1):\\n Add heal amount for castle wars bandages (#7878)\\n\\nHydrox6 (1):\\n Add account prompt to the OAuth URL\\n\\nKoekkruimels (3):\\n Add color to the library customer based on player inventory (#7951)\\n kourend library plugin: add config option to hide duplicate books\\n Refactor changes of #7951 to use doesPlayerContainBook\\n\\nMagic fTail (1):\\n Split synchronizing and uploading loot data into separate configs\\n\\nMax Weber (3):\\n WikiPlugin: Strip tags from names given to RSLookup\\n WikiPlugin: Allow lookup of Objects\\n WikiPlugin: Eschew URLEncoder in favor of HttpUrl\\n\\nRon Young (2):\\n TabInterface: remove deprecated widget calls\\n TabInterface: move icon search into method TabManager: add remove/set icon\\n\\nRoyce Mathews (1):\\n Add enchanting jewelry to the idle notification plugin. (#7977)\\n\\nRyBo (1):\\n Highlight more efficient ledge in the Falador Agility course (#7938)\\n\\nShaun Dreclin (1):\\n wiki plugin: Add support for achievement diaries\\n\\nTanner Chauncy (1):\\n banktags: add tag tab renaming\\n\\nTheStonedTurtle (1):\\n Add dynamic hitpoints orb icon to poison plugin (#6517)\\n\\nTomas Slusny (11):\\n Do not try to draw infobox caption if text is null or empty\\n Remove emptyOrNull text check from InfoboxOverlay\\n Add button to sync local config with remote\\n Backup RuneLite account settings before overwriting them\\n Log config property changes only if they really change\\n Properly split config properties loaded from config client\\n Catch JVM incompatible library JNA error when initializing Discord\\n Move slayer weakness overlay 1 layer up above\\n Limit access levels for InfoBox fields\\n Fix infobox impl access levels and remove unused values\\n Convert item stats mapping to use item ids instead of names\\n\\nWill Thomas (1):\\n skills calc: add new farmable crops and trees\\n\\nchestnut1693 (1):\\n Add home tag to Default World plugin\\n
\\n\",\"image\":\"/img/blog/1.5.14-Release/orbs.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/88.d0fe3dac.chunk.js b/static/js/88.5bb31be6.chunk.js
similarity index 97%
rename from static/js/88.d0fe3dac.chunk.js
rename to static/js/88.5bb31be6.chunk.js
index 5c0444d4a..f0450d406 100644
--- a/static/js/88.d0fe3dac.chunk.js
+++ b/static/js/88.5bb31be6.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[88],{363:function(n,e){n.exports={title:"1.5.15 Release",description:"Music unlock notifications, clan chat join messages and member counter",author:"Adam",body:'A music notification plugin was added which sends you a message whenever a new\npiece of music is unlocked.
\n
\nThe clan plugin now has an option to show when players join or leave clan chats.\nThe messages disappear after a short duration, and can also be filtered by\nplayer rank.
\n
\nThe clan plugin also has an option to show an infobox of the number of clan\nmembers near you.
\n
\nFinally, the clan plugin has a new option to show clan member rank in public and\nprivate messages too.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Monkey Madness I requirement on the Kourend Diary \nFix twitter feed links not working in the news panel with newer Twitter theme \nAdd pestle and mortar to idle notifier \nReplaced our raids point overlay with the ingame one, and made it movable with\nalt. \nMove Tai Bwo Wannai Emote location closer to STASH unit \nFix logging into RuneLite accounts after having just logged out \nAdd Compost, Bastion and Battlemage potions to Herblore skill calc \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (15):\n Move session events from api to client\n api: add changed varp index to VarbitChanged event\n runescape-api: make RSNameableContainer a generic type\n xptracker: remove unused exception\n xptracker: use tracked overall xpstate to calculate total xp\n xptracker: use long for tracking overall xp\n api: add method to remove MessageNodes\n api: add clan member join and leave events\n api: add methods to get clan owner and chat name\n clanchat plugin: add join/leave messages\n Revert "Merge pull request #8070 from Nightfirecat/fix-ground-markers-bug"\n Revert "Merge pull request #5890 from Nightfirecat/colored-ground-markers"\n clan chat: cleanup onGameStateChanged logic from earlier merge\n account plugin: move logout off of swing thread\n session manager: change to null session on close\n\nBrennan Williams (1):\n Add Hydra shortcut pipes to agility plugin (#8052)\n\nChives (2):\n Remove Monkey Madness I requirement from Kourend Diary.\n Replace assert keyword with JUnit assert functions\n\nJordan Atwood (7):\n worldpoint: Fix plane value in toLocalInstance\n worldpoint: Add static fromRegion method\n worldpoint: Add getRegionX() and getRegionY()\n ground markers plugin: Clean up legacy code\n ground markers: Fix startup and shutdown bug\n ground markers: Allow different colored markers\n ground markers: Fix marking non-marked tiles\n\nLotto (1):\n http-service: fix twitter feed links not working with newer theme\n\nSebastiaan Vanspauwen (1):\n Clanchat: added onClanChanged event to count players already in scene\n\nSebastiaanVanspauwen (2):\n Clanchat: Show amount of members near you in infobox\n Clanchat: clear counter on login/connection lost instead of loading (#8068)\n\nShaun Dreclin (7):\n idle notifier: Add support for grinding with pestle and mortar\n daily task indicator: Fix plugin not checking tasks when first enabled\n api: Add EnumID class\n api: Add getKeys() to EnumComposition\n api: Add unlocked music tracks to VarPlayer\n client: Add Music Track Indicator plugin\n rogues den: Update plugin to use ItemContainerChanged event\n\nTheStonedTurtle (1):\n clanchat plugin: add CC rank icons to oublic and private messages\n\nTomas Slusny (11):\n Add missing toggle for clan chat icons\n Fix RAIDS_POINTS_INFOBOX widget ID\n Make raids widget moveable\n Remove raids points overlay\n Null-check remote configuration in config manager\n Change logged-in redir to redirect to HTTPS\n Update suppressions.xml dtd link to one that exists\n Fix SpringBootWebApplication auto-configuration annotation\n Migrate SpringBootWebApplicationTest to spring profiles\n Migrate Spring unit tests to spring profiles\n clanchat: Update clan members set on join/leave events\n\nWoneTooPhree (1):\n Move Tai Bwo Wannai Emote location closer to STASH\n\nchivesrs (2):\n Update CheckStyle XML dtd link to one that exists (#8079)\n Enable checkstyle on test sources\n\npiebandit (1):\n Add Compost, Bastion and Battlemage potions to Herblore skill calc (#8031)\n\ntrimbe (4):\n mixins: use a ClanMember for ClanMemberJoined/Left\n clanchat: retrieve rank from ClanMember rather than ClanManager\n clanchat: respect rank icon config for join/leave messages\n clanchat: remove activity in buffer in ClanMemberLeft as well\n
\n',image:"/img/blog/1.5.15-Release/music.png"}}}]);
-//# sourceMappingURL=88.d0fe3dac.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[88],{364:function(n,e){n.exports={title:"1.5.15 Release",description:"Music unlock notifications, clan chat join messages and member counter",author:"Adam",body:'A music notification plugin was added which sends you a message whenever a new\npiece of music is unlocked.
\n
\nThe clan plugin now has an option to show when players join or leave clan chats.\nThe messages disappear after a short duration, and can also be filtered by\nplayer rank.
\n
\nThe clan plugin also has an option to show an infobox of the number of clan\nmembers near you.
\n
\nFinally, the clan plugin has a new option to show clan member rank in public and\nprivate messages too.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Monkey Madness I requirement on the Kourend Diary \nFix twitter feed links not working in the news panel with newer Twitter theme \nAdd pestle and mortar to idle notifier \nReplaced our raids point overlay with the ingame one, and made it movable with\nalt. \nMove Tai Bwo Wannai Emote location closer to STASH unit \nFix logging into RuneLite accounts after having just logged out \nAdd Compost, Bastion and Battlemage potions to Herblore skill calc \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 13 contributors this release!
\nAdam (15):\n Move session events from api to client\n api: add changed varp index to VarbitChanged event\n runescape-api: make RSNameableContainer a generic type\n xptracker: remove unused exception\n xptracker: use tracked overall xpstate to calculate total xp\n xptracker: use long for tracking overall xp\n api: add method to remove MessageNodes\n api: add clan member join and leave events\n api: add methods to get clan owner and chat name\n clanchat plugin: add join/leave messages\n Revert "Merge pull request #8070 from Nightfirecat/fix-ground-markers-bug"\n Revert "Merge pull request #5890 from Nightfirecat/colored-ground-markers"\n clan chat: cleanup onGameStateChanged logic from earlier merge\n account plugin: move logout off of swing thread\n session manager: change to null session on close\n\nBrennan Williams (1):\n Add Hydra shortcut pipes to agility plugin (#8052)\n\nChives (2):\n Remove Monkey Madness I requirement from Kourend Diary.\n Replace assert keyword with JUnit assert functions\n\nJordan Atwood (7):\n worldpoint: Fix plane value in toLocalInstance\n worldpoint: Add static fromRegion method\n worldpoint: Add getRegionX() and getRegionY()\n ground markers plugin: Clean up legacy code\n ground markers: Fix startup and shutdown bug\n ground markers: Allow different colored markers\n ground markers: Fix marking non-marked tiles\n\nLotto (1):\n http-service: fix twitter feed links not working with newer theme\n\nSebastiaan Vanspauwen (1):\n Clanchat: added onClanChanged event to count players already in scene\n\nSebastiaanVanspauwen (2):\n Clanchat: Show amount of members near you in infobox\n Clanchat: clear counter on login/connection lost instead of loading (#8068)\n\nShaun Dreclin (7):\n idle notifier: Add support for grinding with pestle and mortar\n daily task indicator: Fix plugin not checking tasks when first enabled\n api: Add EnumID class\n api: Add getKeys() to EnumComposition\n api: Add unlocked music tracks to VarPlayer\n client: Add Music Track Indicator plugin\n rogues den: Update plugin to use ItemContainerChanged event\n\nTheStonedTurtle (1):\n clanchat plugin: add CC rank icons to oublic and private messages\n\nTomas Slusny (11):\n Add missing toggle for clan chat icons\n Fix RAIDS_POINTS_INFOBOX widget ID\n Make raids widget moveable\n Remove raids points overlay\n Null-check remote configuration in config manager\n Change logged-in redir to redirect to HTTPS\n Update suppressions.xml dtd link to one that exists\n Fix SpringBootWebApplication auto-configuration annotation\n Migrate SpringBootWebApplicationTest to spring profiles\n Migrate Spring unit tests to spring profiles\n clanchat: Update clan members set on join/leave events\n\nWoneTooPhree (1):\n Move Tai Bwo Wannai Emote location closer to STASH\n\nchivesrs (2):\n Update CheckStyle XML dtd link to one that exists (#8079)\n Enable checkstyle on test sources\n\npiebandit (1):\n Add Compost, Bastion and Battlemage potions to Herblore skill calc (#8031)\n\ntrimbe (4):\n mixins: use a ClanMember for ClanMemberJoined/Left\n clanchat: retrieve rank from ClanMember rather than ClanManager\n clanchat: respect rank icon config for join/leave messages\n clanchat: remove activity in buffer in ClanMemberLeft as well\n
\n',image:"/img/blog/1.5.15-Release/music.png"}}}]);
+//# sourceMappingURL=88.5bb31be6.chunk.js.map
\ No newline at end of file
diff --git a/static/js/88.d0fe3dac.chunk.js.map b/static/js/88.5bb31be6.chunk.js.map
similarity index 98%
rename from static/js/88.d0fe3dac.chunk.js.map
rename to static/js/88.5bb31be6.chunk.js.map
index 26a256a00..813d0736f 100644
--- a/static/js/88.d0fe3dac.chunk.js.map
+++ b/static/js/88.5bb31be6.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-03-07-10-00-1.5.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yEAAyE,OAAS,OAAO,KAAO,44JAAw5J,MAAQ","file":"static/js/88.d0fe3dac.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.15 Release\",\"description\":\"Music unlock notifications, clan chat join messages and member counter\",\"author\":\"Adam\",\"body\":\"A music notification plugin was added which sends you a message whenever a new\\npiece of music is unlocked.
\\n
\\nThe clan plugin now has an option to show when players join or leave clan chats.\\nThe messages disappear after a short duration, and can also be filtered by\\nplayer rank.
\\n
\\nThe clan plugin also has an option to show an infobox of the number of clan\\nmembers near you.
\\n
\\nFinally, the clan plugin has a new option to show clan member rank in public and\\nprivate messages too.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Monkey Madness I requirement on the Kourend Diary \\nFix twitter feed links not working in the news panel with newer Twitter theme \\nAdd pestle and mortar to idle notifier \\nReplaced our raids point overlay with the ingame one, and made it movable with\\nalt. \\nMove Tai Bwo Wannai Emote location closer to STASH unit \\nFix logging into RuneLite accounts after having just logged out \\nAdd Compost, Bastion and Battlemage potions to Herblore skill calc \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (15):\\n Move session events from api to client\\n api: add changed varp index to VarbitChanged event\\n runescape-api: make RSNameableContainer a generic type\\n xptracker: remove unused exception\\n xptracker: use tracked overall xpstate to calculate total xp\\n xptracker: use long for tracking overall xp\\n api: add method to remove MessageNodes\\n api: add clan member join and leave events\\n api: add methods to get clan owner and chat name\\n clanchat plugin: add join/leave messages\\n Revert "Merge pull request #8070 from Nightfirecat/fix-ground-markers-bug"\\n Revert "Merge pull request #5890 from Nightfirecat/colored-ground-markers"\\n clan chat: cleanup onGameStateChanged logic from earlier merge\\n account plugin: move logout off of swing thread\\n session manager: change to null session on close\\n\\nBrennan Williams (1):\\n Add Hydra shortcut pipes to agility plugin (#8052)\\n\\nChives (2):\\n Remove Monkey Madness I requirement from Kourend Diary.\\n Replace assert keyword with JUnit assert functions\\n\\nJordan Atwood (7):\\n worldpoint: Fix plane value in toLocalInstance\\n worldpoint: Add static fromRegion method\\n worldpoint: Add getRegionX() and getRegionY()\\n ground markers plugin: Clean up legacy code\\n ground markers: Fix startup and shutdown bug\\n ground markers: Allow different colored markers\\n ground markers: Fix marking non-marked tiles\\n\\nLotto (1):\\n http-service: fix twitter feed links not working with newer theme\\n\\nSebastiaan Vanspauwen (1):\\n Clanchat: added onClanChanged event to count players already in scene\\n\\nSebastiaanVanspauwen (2):\\n Clanchat: Show amount of members near you in infobox\\n Clanchat: clear counter on login/connection lost instead of loading (#8068)\\n\\nShaun Dreclin (7):\\n idle notifier: Add support for grinding with pestle and mortar\\n daily task indicator: Fix plugin not checking tasks when first enabled\\n api: Add EnumID class\\n api: Add getKeys() to EnumComposition\\n api: Add unlocked music tracks to VarPlayer\\n client: Add Music Track Indicator plugin\\n rogues den: Update plugin to use ItemContainerChanged event\\n\\nTheStonedTurtle (1):\\n clanchat plugin: add CC rank icons to oublic and private messages\\n\\nTomas Slusny (11):\\n Add missing toggle for clan chat icons\\n Fix RAIDS_POINTS_INFOBOX widget ID\\n Make raids widget moveable\\n Remove raids points overlay\\n Null-check remote configuration in config manager\\n Change logged-in redir to redirect to HTTPS\\n Update suppressions.xml dtd link to one that exists\\n Fix SpringBootWebApplication auto-configuration annotation\\n Migrate SpringBootWebApplicationTest to spring profiles\\n Migrate Spring unit tests to spring profiles\\n clanchat: Update clan members set on join/leave events\\n\\nWoneTooPhree (1):\\n Move Tai Bwo Wannai Emote location closer to STASH\\n\\nchivesrs (2):\\n Update CheckStyle XML dtd link to one that exists (#8079)\\n Enable checkstyle on test sources\\n\\npiebandit (1):\\n Add Compost, Bastion and Battlemage potions to Herblore skill calc (#8031)\\n\\ntrimbe (4):\\n mixins: use a ClanMember for ClanMemberJoined/Left\\n clanchat: retrieve rank from ClanMember rather than ClanManager\\n clanchat: respect rank icon config for join/leave messages\\n clanchat: remove activity in buffer in ClanMemberLeft as well\\n
\\n\",\"image\":\"/img/blog/1.5.15-Release/music.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-03-07-10-00-1.5.15-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yEAAyE,OAAS,OAAO,KAAO,44JAAw5J,MAAQ","file":"static/js/88.5bb31be6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.15 Release\",\"description\":\"Music unlock notifications, clan chat join messages and member counter\",\"author\":\"Adam\",\"body\":\"A music notification plugin was added which sends you a message whenever a new\\npiece of music is unlocked.
\\n
\\nThe clan plugin now has an option to show when players join or leave clan chats.\\nThe messages disappear after a short duration, and can also be filtered by\\nplayer rank.
\\n
\\nThe clan plugin also has an option to show an infobox of the number of clan\\nmembers near you.
\\n
\\nFinally, the clan plugin has a new option to show clan member rank in public and\\nprivate messages too.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Monkey Madness I requirement on the Kourend Diary \\nFix twitter feed links not working in the news panel with newer Twitter theme \\nAdd pestle and mortar to idle notifier \\nReplaced our raids point overlay with the ingame one, and made it movable with\\nalt. \\nMove Tai Bwo Wannai Emote location closer to STASH unit \\nFix logging into RuneLite accounts after having just logged out \\nAdd Compost, Bastion and Battlemage potions to Herblore skill calc \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 13 contributors this release!
\\nAdam (15):\\n Move session events from api to client\\n api: add changed varp index to VarbitChanged event\\n runescape-api: make RSNameableContainer a generic type\\n xptracker: remove unused exception\\n xptracker: use tracked overall xpstate to calculate total xp\\n xptracker: use long for tracking overall xp\\n api: add method to remove MessageNodes\\n api: add clan member join and leave events\\n api: add methods to get clan owner and chat name\\n clanchat plugin: add join/leave messages\\n Revert "Merge pull request #8070 from Nightfirecat/fix-ground-markers-bug"\\n Revert "Merge pull request #5890 from Nightfirecat/colored-ground-markers"\\n clan chat: cleanup onGameStateChanged logic from earlier merge\\n account plugin: move logout off of swing thread\\n session manager: change to null session on close\\n\\nBrennan Williams (1):\\n Add Hydra shortcut pipes to agility plugin (#8052)\\n\\nChives (2):\\n Remove Monkey Madness I requirement from Kourend Diary.\\n Replace assert keyword with JUnit assert functions\\n\\nJordan Atwood (7):\\n worldpoint: Fix plane value in toLocalInstance\\n worldpoint: Add static fromRegion method\\n worldpoint: Add getRegionX() and getRegionY()\\n ground markers plugin: Clean up legacy code\\n ground markers: Fix startup and shutdown bug\\n ground markers: Allow different colored markers\\n ground markers: Fix marking non-marked tiles\\n\\nLotto (1):\\n http-service: fix twitter feed links not working with newer theme\\n\\nSebastiaan Vanspauwen (1):\\n Clanchat: added onClanChanged event to count players already in scene\\n\\nSebastiaanVanspauwen (2):\\n Clanchat: Show amount of members near you in infobox\\n Clanchat: clear counter on login/connection lost instead of loading (#8068)\\n\\nShaun Dreclin (7):\\n idle notifier: Add support for grinding with pestle and mortar\\n daily task indicator: Fix plugin not checking tasks when first enabled\\n api: Add EnumID class\\n api: Add getKeys() to EnumComposition\\n api: Add unlocked music tracks to VarPlayer\\n client: Add Music Track Indicator plugin\\n rogues den: Update plugin to use ItemContainerChanged event\\n\\nTheStonedTurtle (1):\\n clanchat plugin: add CC rank icons to oublic and private messages\\n\\nTomas Slusny (11):\\n Add missing toggle for clan chat icons\\n Fix RAIDS_POINTS_INFOBOX widget ID\\n Make raids widget moveable\\n Remove raids points overlay\\n Null-check remote configuration in config manager\\n Change logged-in redir to redirect to HTTPS\\n Update suppressions.xml dtd link to one that exists\\n Fix SpringBootWebApplication auto-configuration annotation\\n Migrate SpringBootWebApplicationTest to spring profiles\\n Migrate Spring unit tests to spring profiles\\n clanchat: Update clan members set on join/leave events\\n\\nWoneTooPhree (1):\\n Move Tai Bwo Wannai Emote location closer to STASH\\n\\nchivesrs (2):\\n Update CheckStyle XML dtd link to one that exists (#8079)\\n Enable checkstyle on test sources\\n\\npiebandit (1):\\n Add Compost, Bastion and Battlemage potions to Herblore skill calc (#8031)\\n\\ntrimbe (4):\\n mixins: use a ClanMember for ClanMemberJoined/Left\\n clanchat: retrieve rank from ClanMember rather than ClanManager\\n clanchat: respect rank icon config for join/leave messages\\n clanchat: remove activity in buffer in ClanMemberLeft as well\\n
\\n\",\"image\":\"/img/blog/1.5.15-Release/music.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/89.49ebc6b5.chunk.js b/static/js/89.4ee2219b.chunk.js
similarity index 96%
rename from static/js/89.49ebc6b5.chunk.js
rename to static/js/89.4ee2219b.chunk.js
index 683ca36d8..a7412f679 100644
--- a/static/js/89.49ebc6b5.chunk.js
+++ b/static/js/89.4ee2219b.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[89],{364:function(e,n){e.exports={title:"1.5.16 Release",description:"Grand Exchange item stats and multicolor ground markers",author:"Adam",body:'The item stats plugin will now show the stats of gear when selected in a buy\noffer on the Grand Exchange.
\n
\nThe ground markers plugin now supports having multiple ground markers of\ndifferent colors. The plugin will remember the color that was in use at the time\nthe marker was placed. Existing markers from prior to the update have no color\nand will use whatever the current color is.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFixed XP tracker sometimes not initializing correctly on login, which caused it\nto show very wrong XP rates \nFix friend notes to work on players with spaces on their names \nUpdate Chaos Fanatic\'s slayer task icon to match respawn timer icon \nFix Ardougne easy diary combat training camp requirement \nAdd Hydra slayer helm to examine and bank value prices \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 9 contributors this release!
\nAdam (4):\n config manager: throttle config saves to file\n friend notes: replace nbsp from friend names in config keys\n chat commands: check message length before use\n xptracker: fix initiailizing overall xp on login\n\nDennis (1):\n wiki plugin: add deselect on shutdown\n\nHydrox6 (1):\n wiki: Update the Fixed Minimap Clickbox to account for the spec orb\n\nJordan Atwood (5):\n ground markers plugin: Clean up legacy code\n ground markers: Fix startup and shutdown bug\n worldpoint: Add static fromRegion method\n worldpoint: Add getRegionX() and getRegionY()\n ground markers: Allow different colored markers\n\nMax Weber (2):\n runelite-client: Remove ChatboxInputManager\n cache: use RuneStar cs2 opcode names\n\nNate Brown (1):\n Change Chaos Fanatic\'s slayer task icon to match respawn timer icon (#8162)\n\nSeven-Ate (1):\n Add missing item mappings for hydra slayer helm\n\nTomas Slusny (1):\n Remove unnecessary .get() on OkHttp request\n\ntrimbe (6):\n diary requirements: add missing period in combat camp task\n add GE offer building script\n item stats: add item information panel when buying items in the ge\n mixins: use last non-null child to determine index for new widgets\n item stats: use GameTick to determine when GE is closed\n item stats: use ClientThread where necessary for resetting\n
\n',image:"/img/blog/1.5.16-Release/ge.png"}}}]);
-//# sourceMappingURL=89.49ebc6b5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[89],{365:function(e,n){e.exports={title:"1.5.16 Release",description:"Grand Exchange item stats and multicolor ground markers",author:"Adam",body:'The item stats plugin will now show the stats of gear when selected in a buy\noffer on the Grand Exchange.
\n
\nThe ground markers plugin now supports having multiple ground markers of\ndifferent colors. The plugin will remember the color that was in use at the time\nthe marker was placed. Existing markers from prior to the update have no color\nand will use whatever the current color is.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nFixed XP tracker sometimes not initializing correctly on login, which caused it\nto show very wrong XP rates \nFix friend notes to work on players with spaces on their names \nUpdate Chaos Fanatic\'s slayer task icon to match respawn timer icon \nFix Ardougne easy diary combat training camp requirement \nAdd Hydra slayer helm to examine and bank value prices \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 9 contributors this release!
\nAdam (4):\n config manager: throttle config saves to file\n friend notes: replace nbsp from friend names in config keys\n chat commands: check message length before use\n xptracker: fix initiailizing overall xp on login\n\nDennis (1):\n wiki plugin: add deselect on shutdown\n\nHydrox6 (1):\n wiki: Update the Fixed Minimap Clickbox to account for the spec orb\n\nJordan Atwood (5):\n ground markers plugin: Clean up legacy code\n ground markers: Fix startup and shutdown bug\n worldpoint: Add static fromRegion method\n worldpoint: Add getRegionX() and getRegionY()\n ground markers: Allow different colored markers\n\nMax Weber (2):\n runelite-client: Remove ChatboxInputManager\n cache: use RuneStar cs2 opcode names\n\nNate Brown (1):\n Change Chaos Fanatic\'s slayer task icon to match respawn timer icon (#8162)\n\nSeven-Ate (1):\n Add missing item mappings for hydra slayer helm\n\nTomas Slusny (1):\n Remove unnecessary .get() on OkHttp request\n\ntrimbe (6):\n diary requirements: add missing period in combat camp task\n add GE offer building script\n item stats: add item information panel when buying items in the ge\n mixins: use last non-null child to determine index for new widgets\n item stats: use GameTick to determine when GE is closed\n item stats: use ClientThread where necessary for resetting\n
\n',image:"/img/blog/1.5.16-Release/ge.png"}}}]);
+//# sourceMappingURL=89.4ee2219b.chunk.js.map
\ No newline at end of file
diff --git a/static/js/89.49ebc6b5.chunk.js.map b/static/js/89.4ee2219b.chunk.js.map
similarity index 97%
rename from static/js/89.49ebc6b5.chunk.js.map
rename to static/js/89.4ee2219b.chunk.js.map
index 96ecc6ee7..0a9698596 100644
--- a/static/js/89.49ebc6b5.chunk.js.map
+++ b/static/js/89.4ee2219b.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-03-14-10-00-1.5.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0DAA0D,OAAS,OAAO,KAAO,shFAA4hF,MAAQ","file":"static/js/89.49ebc6b5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.16 Release\",\"description\":\"Grand Exchange item stats and multicolor ground markers\",\"author\":\"Adam\",\"body\":\"The item stats plugin will now show the stats of gear when selected in a buy\\noffer on the Grand Exchange.
\\n
\\nThe ground markers plugin now supports having multiple ground markers of\\ndifferent colors. The plugin will remember the color that was in use at the time\\nthe marker was placed. Existing markers from prior to the update have no color\\nand will use whatever the current color is.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFixed XP tracker sometimes not initializing correctly on login, which caused it\\nto show very wrong XP rates \\nFix friend notes to work on players with spaces on their names \\nUpdate Chaos Fanatic's slayer task icon to match respawn timer icon \\nFix Ardougne easy diary combat training camp requirement \\nAdd Hydra slayer helm to examine and bank value prices \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 9 contributors this release!
\\nAdam (4):\\n config manager: throttle config saves to file\\n friend notes: replace nbsp from friend names in config keys\\n chat commands: check message length before use\\n xptracker: fix initiailizing overall xp on login\\n\\nDennis (1):\\n wiki plugin: add deselect on shutdown\\n\\nHydrox6 (1):\\n wiki: Update the Fixed Minimap Clickbox to account for the spec orb\\n\\nJordan Atwood (5):\\n ground markers plugin: Clean up legacy code\\n ground markers: Fix startup and shutdown bug\\n worldpoint: Add static fromRegion method\\n worldpoint: Add getRegionX() and getRegionY()\\n ground markers: Allow different colored markers\\n\\nMax Weber (2):\\n runelite-client: Remove ChatboxInputManager\\n cache: use RuneStar cs2 opcode names\\n\\nNate Brown (1):\\n Change Chaos Fanatic's slayer task icon to match respawn timer icon (#8162)\\n\\nSeven-Ate (1):\\n Add missing item mappings for hydra slayer helm\\n\\nTomas Slusny (1):\\n Remove unnecessary .get() on OkHttp request\\n\\ntrimbe (6):\\n diary requirements: add missing period in combat camp task\\n add GE offer building script\\n item stats: add item information panel when buying items in the ge\\n mixins: use last non-null child to determine index for new widgets\\n item stats: use GameTick to determine when GE is closed\\n item stats: use ClientThread where necessary for resetting\\n
\\n\",\"image\":\"/img/blog/1.5.16-Release/ge.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-03-14-10-00-1.5.16-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0DAA0D,OAAS,OAAO,KAAO,shFAA4hF,MAAQ","file":"static/js/89.4ee2219b.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.16 Release\",\"description\":\"Grand Exchange item stats and multicolor ground markers\",\"author\":\"Adam\",\"body\":\"The item stats plugin will now show the stats of gear when selected in a buy\\noffer on the Grand Exchange.
\\n
\\nThe ground markers plugin now supports having multiple ground markers of\\ndifferent colors. The plugin will remember the color that was in use at the time\\nthe marker was placed. Existing markers from prior to the update have no color\\nand will use whatever the current color is.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFixed XP tracker sometimes not initializing correctly on login, which caused it\\nto show very wrong XP rates \\nFix friend notes to work on players with spaces on their names \\nUpdate Chaos Fanatic's slayer task icon to match respawn timer icon \\nFix Ardougne easy diary combat training camp requirement \\nAdd Hydra slayer helm to examine and bank value prices \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 9 contributors this release!
\\nAdam (4):\\n config manager: throttle config saves to file\\n friend notes: replace nbsp from friend names in config keys\\n chat commands: check message length before use\\n xptracker: fix initiailizing overall xp on login\\n\\nDennis (1):\\n wiki plugin: add deselect on shutdown\\n\\nHydrox6 (1):\\n wiki: Update the Fixed Minimap Clickbox to account for the spec orb\\n\\nJordan Atwood (5):\\n ground markers plugin: Clean up legacy code\\n ground markers: Fix startup and shutdown bug\\n worldpoint: Add static fromRegion method\\n worldpoint: Add getRegionX() and getRegionY()\\n ground markers: Allow different colored markers\\n\\nMax Weber (2):\\n runelite-client: Remove ChatboxInputManager\\n cache: use RuneStar cs2 opcode names\\n\\nNate Brown (1):\\n Change Chaos Fanatic's slayer task icon to match respawn timer icon (#8162)\\n\\nSeven-Ate (1):\\n Add missing item mappings for hydra slayer helm\\n\\nTomas Slusny (1):\\n Remove unnecessary .get() on OkHttp request\\n\\ntrimbe (6):\\n diary requirements: add missing period in combat camp task\\n add GE offer building script\\n item stats: add item information panel when buying items in the ge\\n mixins: use last non-null child to determine index for new widgets\\n item stats: use GameTick to determine when GE is closed\\n item stats: use ClientThread where necessary for resetting\\n
\\n\",\"image\":\"/img/blog/1.5.16-Release/ge.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/9.e7f73084.chunk.js b/static/js/9.ed7568ef.chunk.js
similarity index 95%
rename from static/js/9.e7f73084.chunk.js
rename to static/js/9.ed7568ef.chunk.js
index d90b0216d..71447999c 100644
--- a/static/js/9.e7f73084.chunk.js
+++ b/static/js/9.ed7568ef.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[9],{126:function(t,e,a){"use strict";var i=a(0);var s=()=>Object(i.g)("section",{id:"footer"},Object(i.g)("div",{class:"content-section"},Object(i.g)("footer",null,Object(i.g)("hr",null),"Developed with ",Object(i.g)("i",{class:"fas fa-heart"})," and"," ",Object(i.g)("i",{class:"fas fa-coffee"})," using"," ",Object(i.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(i.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(i.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(i.g)("a",{href:"/atom.xml",class:"float-right"},Object(i.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...l}=t;return l.class=l.class?"container "+l.class:"container",l.style={...l.style||{},maxWidth:a?"100%":""},Object(i.g)("div",Object.assign({},l,{id:"layout"}),e,Object(i.g)(s,null))}},127:function(t,e,a){"use strict";var i=a(0);var s=()=>Object(i.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(i.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(i.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(i.g)("div",{class:"fa-4x"},Object(i.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends i.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:a}=this.state;return a?Object(i.g)(s,null):Object(i.g)(e,t)}}},130:function(t,e,a){},131:function(t,e,a){},285:function(t,e,a){"use strict";var i=a(0);a(291);e.a=t=>{let{value:e,onInput:a}=t;return Object(i.g)("div",{class:"search input-group mb-3"},Object(i.g)("div",{class:"input-group-prepend"},Object(i.g)("span",{class:"input-group-text"},Object(i.g)("i",{class:"fas fa-search"}))),Object(i.g)("input",{type:"text",class:"form-control",placeholder:"Search...",value:e,onInput:a,ref:t=>t&&t.focus()}))}},291:function(t,e,a){},292:function(t,e,a){"use strict";var i=a(0);e.a=t=>{let{prefix:e,choices:a,value:s,onClick:l}=t;return Object(i.g)("div",{class:"dropdown"},Object(i.g)("button",{class:"dropdown-toggle btn btn-block btn-dark",id:"choice"+e},e," ",s),Object(i.g)("div",{class:"dropdown-menu"},a.map(t=>Object(i.g)("button",{class:"dropdown-item",onClick:()=>l(t)},e," ",t))))}},466:function(t,e,a){"use strict";a.r(e);var i=a(0),s=a(27),l=a(11),c=a(127),n=a(126),o=(a(131),a(130),a(18));var g=t=>{let{displayName:e,author:a,description:s,internalName:l,imageUrl:c,installed:n,count:g,working:b,unavailableReason:r}=t;return Object(i.g)("div",{class:"col-md-4 col-sm-6 col-xs-12 mb-2"},Object(i.g)("div",{class:"card"},Object(i.g)("div",{class:"card-body d-flex align-self-stretch"},Object(i.g)("div",{className:"mr-2 d-flex align-items-start"},Object(i.g)("img",{width:"36",alt:"",src:c||"/img/plugin-hub/missingicon.png"})),Object(i.g)("div",null,Object(i.g)("h5",{class:"card-title"},Object(i.g)("a",{href:"/plugin-hub/show/"+l},e)),Object(i.g)("h6",{class:"card-subtitle mb-2 text-muted"},Object(i.g)("a",{href:"/plugin-hub/"+a},a)),Object(i.g)("p",{class:"card-text"},g>0&&Object(i.g)(i.b,null,Object(i.g)("span",{class:"badge badge-primary"},Object(o.f)(g)," ",g>1?"active installs":"active install")," "),n&&Object(i.g)(i.b,null,Object(i.g)("span",{class:"badge badge-success"},"installed")," "),!b&&Object(i.g)("div",{className:"tooltip-tag"},Object(i.g)("div",{className:"tooltip-tag-text tooltip-tag-text-simple"},r?Object(i.g)(i.b,null,r):Object(i.g)(i.b,null,"The plugin is incompatible with the latest RuneLite version, and requires its author to update it.")),Object(i.g)("div",null,Object(i.g)("span",{className:"badge badge-danger"},"unavailable")))),Object(i.g)("p",{class:"card-text"},s)))))},b=a(7),r=a.n(b),u=a(46),d=a(4),j=a(50),O=a(285),p=a(28),h=a(292);const f="The Plugin Hub is a repository of plugins that are created and maintained by members of the community who are not officially affiliated with RuneLite. These plugins are verified by RuneLite Developers to ensure they comply with Jagex's 3rd party client rules and are not malicious in some other way.";e.default=Object(s.b)((t,e)=>({...e,externalPlugins:Object(j.h)(t),pluginFilter:Object(j.f)(t),pluginSorting:Object(j.g)(t)}),t=>Object(l.b)({fetchBootstrap:d.b,fetchConfig:p.c,fetchExternalPlugins:j.c,fetchPluginHubStats:j.d,setPluginFilter:j.i,setPluginSorting:j.j},t))(Object(c.a)(async t=>{let{fetchBootstrap:e,fetchConfig:a,fetchExternalPlugins:i,fetchPluginHubStats:s}=t;await e(),await a(),await i(),await s()})(t=>{let{author:e,externalPlugins:a,pluginFilter:s,pluginSorting:l,setPluginFilter:c,setPluginSorting:b}=t;a=a.filter(t=>!e||t.author===e);const d=a.length,j=a.filter(t=>t.installed).length,p=a.reduce((t,e)=>t+e.count,0),m=["active installs","name","time updated","time added"];return j>0&&m.push("installed"),Object(i.g)(n.a,null,Object(i.g)(u.a,{title:`${e?e+" ":""}Plugin Hub - ${r.a.title}`,description:f}),Object(i.g)("section",{id:"externalPlugins"},Object(i.g)("div",{class:"content-section pb-0"},Object(i.g)("h1",{class:"page-header"},e?e+" ":"","Plugin Hub"),Object(i.g)("div",{class:"row"},Object(i.g)("div",{class:"col-sm-8"},Object(i.g)("p",null,f),Object(i.g)("p",null,"For more information about the Plugin Hub and how to install these plugins, read the"," ",Object(i.g)("a",{href:"https://github.com/runelite/runelite/wiki/Information-about-the-Plugin-Hub"},"guide on our wiki"),".")),Object(i.g)("div",{class:"col-sm-4"},p>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(p))," ",p>1?"active installs":"active install"),d>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(d))," ",d>1?"plugins":"plugin"),j>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(j))," ",j>1?"installed plugins":"installed plugin"))),Object(i.g)("div",{class:"row"},Object(i.g)("div",{class:"col-sm-8"},Object(i.g)(O.a,{value:s.name,onInput:t=>((t,e)=>e({name:t.target.value}))(t,c)})),Object(i.g)("div",{class:"col-sm-4"},Object(i.g)(h.a,{prefix:"Sort by",value:l,choices:m,onClick:b}))),Object(i.g)("div",{class:"row"},a.map(t=>Object(i.g)(g,Object.assign({key:t.internalName},t)))))))}))}}]);
-//# sourceMappingURL=9.e7f73084.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[9],{126:function(t,e,a){"use strict";var i=a(0);var s=()=>Object(i.g)("section",{id:"footer"},Object(i.g)("div",{class:"content-section"},Object(i.g)("footer",null,Object(i.g)("hr",null),"Developed with ",Object(i.g)("i",{class:"fas fa-heart"})," and"," ",Object(i.g)("i",{class:"fas fa-coffee"})," using"," ",Object(i.g)("a",{href:"https://getbootstrap.com/"},"Bootstrap"),","," ",Object(i.g)("a",{href:"https://reactjs.org/"},"React")," and"," ",Object(i.g)("a",{href:"https://fontawesome.com/"},"Font Awesome"),Object(i.g)("a",{href:"/atom.xml",class:"float-right"},Object(i.g)("i",{class:"fas fa-rss"})," Subscribe via RSS"))));e.a=t=>{let{children:e,fullWidth:a,...l}=t;return l.class=l.class?"container "+l.class:"container",l.style={...l.style||{},maxWidth:a?"100%":""},Object(i.g)("div",Object.assign({},l,{id:"layout"}),e,Object(i.g)(s,null))}},127:function(t,e,a){"use strict";var i=a(0);var s=()=>Object(i.g)("div",{style:{display:"table",width:"100%",height:"100%"}},Object(i.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(i.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700,color:"white"}},Object(i.g)("div",{class:"fa-4x"},Object(i.g)("i",{class:"fas fa-spinner fa-spin"})))));e.a=t=>e=>class extends i.a{constructor(){super(),this.state={loading:!0}}componentDidMount(){const e=t(this.props);e instanceof Promise?e.then(()=>this.setState({loading:!1})):this.setState({loading:!1})}render(t){const{loading:a}=this.state;return a?Object(i.g)(s,null):Object(i.g)(e,t)}}},130:function(t,e,a){},131:function(t,e,a){},286:function(t,e,a){"use strict";var i=a(0);a(292);e.a=t=>{let{value:e,onInput:a}=t;return Object(i.g)("div",{class:"search input-group mb-3"},Object(i.g)("div",{class:"input-group-prepend"},Object(i.g)("span",{class:"input-group-text"},Object(i.g)("i",{class:"fas fa-search"}))),Object(i.g)("input",{type:"text",class:"form-control",placeholder:"Search...",value:e,onInput:a,ref:t=>t&&t.focus()}))}},292:function(t,e,a){},293:function(t,e,a){"use strict";var i=a(0);e.a=t=>{let{prefix:e,choices:a,value:s,onClick:l}=t;return Object(i.g)("div",{class:"dropdown"},Object(i.g)("button",{class:"dropdown-toggle btn btn-block btn-dark",id:"choice"+e},e," ",s),Object(i.g)("div",{class:"dropdown-menu"},a.map(t=>Object(i.g)("button",{class:"dropdown-item",onClick:()=>l(t)},e," ",t))))}},468:function(t,e,a){"use strict";a.r(e);var i=a(0),s=a(27),l=a(11),c=a(127),n=a(126),o=(a(131),a(130),a(18));var g=t=>{let{displayName:e,author:a,description:s,internalName:l,imageUrl:c,installed:n,count:g,working:b,unavailableReason:r}=t;return Object(i.g)("div",{class:"col-md-4 col-sm-6 col-xs-12 mb-2"},Object(i.g)("div",{class:"card"},Object(i.g)("div",{class:"card-body d-flex align-self-stretch"},Object(i.g)("div",{className:"mr-2 d-flex align-items-start"},Object(i.g)("img",{width:"36",alt:"",src:c||"/img/plugin-hub/missingicon.png"})),Object(i.g)("div",null,Object(i.g)("h5",{class:"card-title"},Object(i.g)("a",{href:"/plugin-hub/show/"+l},e)),Object(i.g)("h6",{class:"card-subtitle mb-2 text-muted"},Object(i.g)("a",{href:"/plugin-hub/"+a},a)),Object(i.g)("p",{class:"card-text"},g>0&&Object(i.g)(i.b,null,Object(i.g)("span",{class:"badge badge-primary"},Object(o.f)(g)," ",g>1?"active installs":"active install")," "),n&&Object(i.g)(i.b,null,Object(i.g)("span",{class:"badge badge-success"},"installed")," "),!b&&Object(i.g)("div",{className:"tooltip-tag"},Object(i.g)("div",{className:"tooltip-tag-text tooltip-tag-text-simple"},r?Object(i.g)(i.b,null,r):Object(i.g)(i.b,null,"The plugin is incompatible with the latest RuneLite version, and requires its author to update it.")),Object(i.g)("div",null,Object(i.g)("span",{className:"badge badge-danger"},"unavailable")))),Object(i.g)("p",{class:"card-text"},s)))))},b=a(7),r=a.n(b),u=a(46),d=a(4),j=a(50),O=a(286),p=a(28),h=a(293);const f="The Plugin Hub is a repository of plugins that are created and maintained by members of the community who are not officially affiliated with RuneLite. These plugins are verified by RuneLite Developers to ensure they comply with Jagex's 3rd party client rules and are not malicious in some other way.";e.default=Object(s.b)((t,e)=>({...e,externalPlugins:Object(j.h)(t),pluginFilter:Object(j.f)(t),pluginSorting:Object(j.g)(t)}),t=>Object(l.b)({fetchBootstrap:d.b,fetchConfig:p.c,fetchExternalPlugins:j.c,fetchPluginHubStats:j.d,setPluginFilter:j.i,setPluginSorting:j.j},t))(Object(c.a)(async t=>{let{fetchBootstrap:e,fetchConfig:a,fetchExternalPlugins:i,fetchPluginHubStats:s}=t;await e(),await a(),await i(),await s()})(t=>{let{author:e,externalPlugins:a,pluginFilter:s,pluginSorting:l,setPluginFilter:c,setPluginSorting:b}=t;a=a.filter(t=>!e||t.author===e);const d=a.length,j=a.filter(t=>t.installed).length,p=a.reduce((t,e)=>t+e.count,0),m=["active installs","name","time updated","time added"];return j>0&&m.push("installed"),Object(i.g)(n.a,null,Object(i.g)(u.a,{title:`${e?e+" ":""}Plugin Hub - ${r.a.title}`,description:f}),Object(i.g)("section",{id:"externalPlugins"},Object(i.g)("div",{class:"content-section pb-0"},Object(i.g)("h1",{class:"page-header"},e?e+" ":"","Plugin Hub"),Object(i.g)("div",{class:"row"},Object(i.g)("div",{class:"col-sm-8"},Object(i.g)("p",null,f),Object(i.g)("p",null,"For more information about the Plugin Hub and how to install these plugins, read the"," ",Object(i.g)("a",{href:"https://github.com/runelite/runelite/wiki/Information-about-the-Plugin-Hub"},"guide on our wiki"),".")),Object(i.g)("div",{class:"col-sm-4"},p>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(p))," ",p>1?"active installs":"active install"),d>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(d))," ",d>1?"plugins":"plugin"),j>0&&Object(i.g)("div",{class:"btn btn-block btn-dark disabled"},Object(i.g)("b",null,Object(o.f)(j))," ",j>1?"installed plugins":"installed plugin"))),Object(i.g)("div",{class:"row"},Object(i.g)("div",{class:"col-sm-8"},Object(i.g)(O.a,{value:s.name,onInput:t=>((t,e)=>e({name:t.target.value}))(t,c)})),Object(i.g)("div",{class:"col-sm-4"},Object(i.g)(h.a,{prefix:"Sort by",value:l,choices:m,onClick:b}))),Object(i.g)("div",{class:"row"},a.map(t=>Object(i.g)(g,Object.assign({key:t.internalName},t)))))))}))}}]);
+//# sourceMappingURL=9.ed7568ef.chunk.js.map
\ No newline at end of file
diff --git a/static/js/9.e7f73084.chunk.js.map b/static/js/9.ed7568ef.chunk.js.map
similarity index 99%
rename from static/js/9.e7f73084.chunk.js.map
rename to static/js/9.ed7568ef.chunk.js.map
index e6241824b..2c0bdb0d2 100644
--- a/static/js/9.e7f73084.chunk.js.map
+++ b/static/js/9.ed7568ef.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","components/search-bar.js","components/choice.js","components/external-plugin.js","routes/plugin-hub.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","SearchBar","value","onInput","type","placeholder","ref","input","focus","Choice","prefix","choices","onClick","map","choice","ExternalPlugin","displayName","author","description","internalName","imageUrl","installed","count","working","unavailableReason","className","alt","src","Fragment","numberWithCommas","connect","mapStateToProps","externalPlugins","getSortedExternalPlugins","pluginFilter","getPluginFilter","pluginSorting","getPluginSorting","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","fetchExternalPlugins","fetchPluginHubStats","setPluginFilter","setPluginSorting","async","_ref2","filter","plugin","pluginCount","length","installedPluginCount","p","totalCount","reduce","a","b","sortChoices","push","Meta","title","hero","name","e","handleChange","event","target","key"],"mappings":"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","file":"static/js/9.e7f73084.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\nimport './search-bar.css'\n\nconst SearchBar = ({ value, onInput }) => (\n \n
\n \n \n \n
\n
input && input.focus()}\n />\n
\n)\n\nexport default SearchBar\n","import { h } from 'preact'\n\nconst Choice = ({ prefix, choices, value, onClick }) => (\n \n \n {prefix} {value}\n \n \n
\n)\n\nexport default Choice\n","import { h, Fragment } from 'preact'\nimport './feature.scss'\nimport './tooltip.css'\nimport { numberWithCommas } from '../util'\n\nconst ExternalPlugin = ({\n displayName,\n author,\n description,\n internalName,\n imageUrl,\n installed,\n count,\n working,\n unavailableReason\n}) => (\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n {count > 0 && (\n \n \n {numberWithCommas(count)}{' '}\n {count > 1 ? 'active installs' : 'active install'}\n {' '}\n \n )}\n {installed && (\n \n installed {' '}\n \n )}\n {!working && (\n
\n
\n {unavailableReason ? (\n {unavailableReason} \n ) : (\n \n The plugin is incompatible with the latest RuneLite\n version, and requires its author to update it.\n \n )}\n
\n
\n unavailable \n
\n
\n )}\n \n
{description}
\n
\n
\n
\n
\n)\n\nexport default ExternalPlugin\n","import { h } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport Layout from '../components/layout'\nimport ExternalPlugin from '../components/external-plugin'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { fetchBootstrap } from '../modules/bootstrap'\nimport {\n fetchExternalPlugins,\n fetchPluginHubStats,\n getPluginFilter,\n getPluginSorting,\n getSortedExternalPlugins,\n setPluginFilter,\n setPluginSorting\n} from '../modules/plugin-hub'\nimport SearchBar from '../components/search-bar'\nimport { fetchConfig } from '../modules/config'\nimport Choice from '../components/choice'\nimport { numberWithCommas } from '../util'\n\nconst description =\n 'The Plugin Hub is a repository of plugins that are created and ' +\n 'maintained by members of the community who are not officially ' +\n 'affiliated with RuneLite. These plugins are verified by RuneLite ' +\n \"Developers to ensure they comply with Jagex's 3rd party client rules \" +\n 'and are not malicious in some other way.'\n\nconst handleChange = (event, setPluginFilter) =>\n setPluginFilter({\n name: event.target.value\n })\n\nconst PluginHub = ({\n author,\n externalPlugins,\n pluginFilter,\n pluginSorting,\n setPluginFilter,\n setPluginSorting\n}) => {\n externalPlugins = externalPlugins.filter(plugin =>\n author ? plugin.author === author : true\n )\n\n const pluginCount = externalPlugins.length\n const installedPluginCount = externalPlugins.filter(p => p.installed).length\n const totalCount = externalPlugins.reduce((a, b) => a + b.count, 0)\n const sortChoices = ['active installs', 'name', 'time updated', 'time added']\n\n if (installedPluginCount > 0) {\n sortChoices.push('installed')\n }\n\n return (\n \n \n\n \n \n \n
\n
\n
{description}
\n
\n For more information about the Plugin Hub and how to install\n these plugins, read the{' '}\n \n guide on our wiki\n \n .\n
\n
\n
\n {totalCount > 0 && (\n
\n {numberWithCommas(totalCount)} {' '}\n {totalCount > 1 ? 'active installs' : 'active install'}\n
\n )}\n {pluginCount > 0 && (\n
\n {numberWithCommas(pluginCount)} {' '}\n {pluginCount > 1 ? 'plugins' : 'plugin'}\n
\n )}\n {installedPluginCount > 0 && (\n
\n {numberWithCommas(installedPluginCount)} {' '}\n {installedPluginCount > 1\n ? 'installed plugins'\n : 'installed plugin'}\n
\n )}\n
\n
\n
\n
\n handleChange(e, setPluginFilter)}\n />\n
\n
\n \n
\n
\n
\n {externalPlugins.map(plugin => (\n \n ))}\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n externalPlugins: getSortedExternalPlugins(state),\n pluginFilter: getPluginFilter(state),\n pluginSorting: getPluginSorting(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchPluginHubStats,\n setPluginFilter,\n setPluginSorting\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchPluginHubStats\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchExternalPlugins()\n await fetchPluginHubStats()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(PluginHub))\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["components/footer.js","components/layout.js","components/loading.js","components/prepare.js","components/search-bar.js","components/choice.js","components/external-plugin.js","routes/plugin-hub.js"],"names":["Footer","h","id","class","href","Layout","_ref","children","fullWidth","props","style","maxWidth","Object","assign","Loading","display","width","height","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","color","prepare","prepareComponentData","WrappedComponent","Component","constructor","super","this","state","loading","componentDidMount","ret","Promise","then","setState","render","SearchBar","value","onInput","type","placeholder","ref","input","focus","Choice","prefix","choices","onClick","map","choice","ExternalPlugin","displayName","author","description","internalName","imageUrl","installed","count","working","unavailableReason","className","alt","src","Fragment","numberWithCommas","connect","mapStateToProps","externalPlugins","getSortedExternalPlugins","pluginFilter","getPluginFilter","pluginSorting","getPluginSorting","dispatch","bindActionCreators","fetchBootstrap","fetchConfig","fetchExternalPlugins","fetchPluginHubStats","setPluginFilter","setPluginSorting","async","_ref2","filter","plugin","pluginCount","length","installedPluginCount","p","totalCount","reduce","a","b","sortChoices","push","Meta","title","hero","name","e","handleChange","event","target","key"],"mappings":"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","file":"static/js/9.ed7568ef.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n \n)\n\nexport default Footer\n","import { h } from 'preact'\nimport Footer from './footer'\n\nconst Layout = ({ children, fullWidth, ...props }) => {\n props.class = props.class ? 'container ' + props.class : 'container'\n props.style = {\n ...(props.style || {}),\n maxWidth: fullWidth ? '100%' : ''\n }\n\n return (\n \n {children}\n \n
\n )\n}\n\nexport default Layout\n","import { h } from 'preact'\n\nconst Loading = () => (\n \n)\n\nexport default Loading\n","import { h, Component } from 'preact'\nimport Loading from './loading'\n\nconst prepare = prepareComponentData => WrappedComponent => {\n return class extends Component {\n constructor() {\n super()\n this.state = {\n loading: true\n }\n }\n\n componentDidMount() {\n const ret = prepareComponentData(this.props)\n if (ret instanceof Promise) {\n ret.then(() =>\n this.setState({\n loading: false\n })\n )\n } else {\n this.setState({\n loading: false\n })\n }\n }\n\n render(props) {\n const { loading } = this.state\n return loading ? : \n }\n }\n}\n\nexport default prepare\n","import { h } from 'preact'\nimport './search-bar.css'\n\nconst SearchBar = ({ value, onInput }) => (\n \n
\n \n \n \n
\n
input && input.focus()}\n />\n
\n)\n\nexport default SearchBar\n","import { h } from 'preact'\n\nconst Choice = ({ prefix, choices, value, onClick }) => (\n \n \n {prefix} {value}\n \n \n
\n)\n\nexport default Choice\n","import { h, Fragment } from 'preact'\nimport './feature.scss'\nimport './tooltip.css'\nimport { numberWithCommas } from '../util'\n\nconst ExternalPlugin = ({\n displayName,\n author,\n description,\n internalName,\n imageUrl,\n installed,\n count,\n working,\n unavailableReason\n}) => (\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n {count > 0 && (\n \n \n {numberWithCommas(count)}{' '}\n {count > 1 ? 'active installs' : 'active install'}\n {' '}\n \n )}\n {installed && (\n \n installed {' '}\n \n )}\n {!working && (\n
\n
\n {unavailableReason ? (\n {unavailableReason} \n ) : (\n \n The plugin is incompatible with the latest RuneLite\n version, and requires its author to update it.\n \n )}\n
\n
\n unavailable \n
\n
\n )}\n \n
{description}
\n
\n
\n
\n
\n)\n\nexport default ExternalPlugin\n","import { h } from 'preact'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport prepare from '../components/prepare'\nimport Layout from '../components/layout'\nimport ExternalPlugin from '../components/external-plugin'\nimport hero from '../_data/hero'\nimport Meta from '../components/meta'\nimport { fetchBootstrap } from '../modules/bootstrap'\nimport {\n fetchExternalPlugins,\n fetchPluginHubStats,\n getPluginFilter,\n getPluginSorting,\n getSortedExternalPlugins,\n setPluginFilter,\n setPluginSorting\n} from '../modules/plugin-hub'\nimport SearchBar from '../components/search-bar'\nimport { fetchConfig } from '../modules/config'\nimport Choice from '../components/choice'\nimport { numberWithCommas } from '../util'\n\nconst description =\n 'The Plugin Hub is a repository of plugins that are created and ' +\n 'maintained by members of the community who are not officially ' +\n 'affiliated with RuneLite. These plugins are verified by RuneLite ' +\n \"Developers to ensure they comply with Jagex's 3rd party client rules \" +\n 'and are not malicious in some other way.'\n\nconst handleChange = (event, setPluginFilter) =>\n setPluginFilter({\n name: event.target.value\n })\n\nconst PluginHub = ({\n author,\n externalPlugins,\n pluginFilter,\n pluginSorting,\n setPluginFilter,\n setPluginSorting\n}) => {\n externalPlugins = externalPlugins.filter(plugin =>\n author ? plugin.author === author : true\n )\n\n const pluginCount = externalPlugins.length\n const installedPluginCount = externalPlugins.filter(p => p.installed).length\n const totalCount = externalPlugins.reduce((a, b) => a + b.count, 0)\n const sortChoices = ['active installs', 'name', 'time updated', 'time added']\n\n if (installedPluginCount > 0) {\n sortChoices.push('installed')\n }\n\n return (\n \n \n\n \n \n \n
\n
\n
{description}
\n
\n For more information about the Plugin Hub and how to install\n these plugins, read the{' '}\n \n guide on our wiki\n \n .\n
\n
\n
\n {totalCount > 0 && (\n
\n {numberWithCommas(totalCount)} {' '}\n {totalCount > 1 ? 'active installs' : 'active install'}\n
\n )}\n {pluginCount > 0 && (\n
\n {numberWithCommas(pluginCount)} {' '}\n {pluginCount > 1 ? 'plugins' : 'plugin'}\n
\n )}\n {installedPluginCount > 0 && (\n
\n {numberWithCommas(installedPluginCount)} {' '}\n {installedPluginCount > 1\n ? 'installed plugins'\n : 'installed plugin'}\n
\n )}\n
\n
\n
\n
\n handleChange(e, setPluginFilter)}\n />\n
\n
\n \n
\n
\n
\n {externalPlugins.map(plugin => (\n \n ))}\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state, props) => ({\n ...props,\n externalPlugins: getSortedExternalPlugins(state),\n pluginFilter: getPluginFilter(state),\n pluginSorting: getPluginSorting(state)\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(\n {\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchPluginHubStats,\n setPluginFilter,\n setPluginSorting\n },\n dispatch\n )\n\nconst prepareComponentData = async ({\n fetchBootstrap,\n fetchConfig,\n fetchExternalPlugins,\n fetchPluginHubStats\n}) => {\n await fetchBootstrap()\n await fetchConfig()\n await fetchExternalPlugins()\n await fetchPluginHubStats()\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(prepare(prepareComponentData)(PluginHub))\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/90.e2935278.chunk.js b/static/js/90.c74f5723.chunk.js
similarity index 97%
rename from static/js/90.e2935278.chunk.js
rename to static/js/90.c74f5723.chunk.js
index 732807ae4..ca66a98d8 100644
--- a/static/js/90.e2935278.chunk.js
+++ b/static/js/90.c74f5723.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[90],{365:function(e,n){e.exports={title:"1.5.17 Release",description:"NPC unaggro timer and chat filter",author:"Adam",body:'A NPC Aggression Timer plugin was added, which shows how long until NPCs near\nyou will become unaggressive, and how far away you have to walk before they will\nbecome aggressive once again.
\n
\nThe combat level plugin can now show the level range of attackable players near\nthe wilderness skull icon, similar to how it is on PVP worlds.
\n
\nMost coordinate clues now show a description of where they are in addition to\nshowing on the world map.
\n
\nA chat filter plugin was added, which lets you define words and\npatterns \nto filter or block from chat messages. With a handful of patterns it is\neasy to filter out a majority of the bot spam at the GE.
\nFor example the patterns:
\n5[0-9]x[0-9]\n^Player\n[0-9.]\\s*usd\n[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\ndoubling\ntripling\nI don\'t scam\nFire cape & accounts\n
\nis highly effective against the current spam.
\n
\nWe may open up a channel on Discord for users to share patterns similar to bank\ntabs.
\nEven though this is a rather crude solution to the spam epidemic in RS, and\nspamfilters are in general a solved problem, any solution which is much more\ntechnically involved would require us to:
\n\ncontinuously update training data for the spam categorization\nmodels (the bad guys can see this, too) \ncentrally process game chat in real time, which is not only hard, and\nexpensive, but also would have some privacy issues \n \nAdditionally, it would allow the project to unilaterally decide what is and is not spam,\nwhich I would rather it not be capable of doing.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Twitch plugin sometimes showing duplicate chat \nBank tag tabs no longer reset when clicking withdraw-x \nAdd a menu swap for Contract on guildmaster Jane \nFix the GE item stats interface not closing correctly if the GE is closed with\nescape key \nFix the slayer plugin not recognizing Crazy Archaeologist tasks \nFix many missing or wrong diary requirements in the achievement diary plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (4):\n travis: add openjdk11\n client: load jagex config and client over https\n news service: load news over https\n twitch: fix race in connect establishing multiple connections\n\nJason Xie (1):\n Change produce image of maple and yew trees to their respective logs (#8222)\n\nJordan Atwood (4):\n widgetinfo: Fix wilderness level definition\n Add pvp widget builder script\n combat level plugin: Add attack level range option\n boosts plugin: Fix overlay below-threshold color\n\nJuan Ortiz (1):\n npc highlight: remove tags from npc names\n\nMagic fTail (3):\n api: rename getOverhead to getOverheadText\n api: add overhead text changed event and setOverheadText\n Add chat filter plugin\n\nNathaniel Ngo (1):\n Log whole HTTP response instead of just message (#8126)\n\nRon Young (1):\n TabInterface: remember search when clicking withdraw-x\n\nRyBo (1):\n achievement diary: add or correct various requirements\n\nTomas Slusny (2):\n Add Swagger static document generation\n Fix RequestMapping annotations in http-service\n\nWoneTooPhree (1):\n Add location description to coordinate clues (#8148)\n\nWooxSolo (3):\n config manager: add support for WorldPoint\n config manager: add support for Duration\n Add NPC unaggression timer\n\ngregg1494 (1):\n menu swapper: add contract for farming guildmaster Jane\n\ntrimbe (1):\n item stats: check if GE container is hidden when detecting GE close\n\nwhartd (1):\n slayer plugin: fix task name for Crazy Archaeologists\n
\n',image:"/img/blog/1.5.17-Release/aggro.png"}}}]);
-//# sourceMappingURL=90.e2935278.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[90],{366:function(e,n){e.exports={title:"1.5.17 Release",description:"NPC unaggro timer and chat filter",author:"Adam",body:'A NPC Aggression Timer plugin was added, which shows how long until NPCs near\nyou will become unaggressive, and how far away you have to walk before they will\nbecome aggressive once again.
\n
\nThe combat level plugin can now show the level range of attackable players near\nthe wilderness skull icon, similar to how it is on PVP worlds.
\n
\nMost coordinate clues now show a description of where they are in addition to\nshowing on the world map.
\n
\nA chat filter plugin was added, which lets you define words and\npatterns \nto filter or block from chat messages. With a handful of patterns it is\neasy to filter out a majority of the bot spam at the GE.
\nFor example the patterns:
\n5[0-9]x[0-9]\n^Player\n[0-9.]\\s*usd\n[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\ndoubling\ntripling\nI don\'t scam\nFire cape & accounts\n
\nis highly effective against the current spam.
\n
\nWe may open up a channel on Discord for users to share patterns similar to bank\ntabs.
\nEven though this is a rather crude solution to the spam epidemic in RS, and\nspamfilters are in general a solved problem, any solution which is much more\ntechnically involved would require us to:
\n\ncontinuously update training data for the spam categorization\nmodels (the bad guys can see this, too) \ncentrally process game chat in real time, which is not only hard, and\nexpensive, but also would have some privacy issues \n \nAdditionally, it would allow the project to unilaterally decide what is and is not spam,\nwhich I would rather it not be capable of doing.
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix Twitch plugin sometimes showing duplicate chat \nBank tag tabs no longer reset when clicking withdraw-x \nAdd a menu swap for Contract on guildmaster Jane \nFix the GE item stats interface not closing correctly if the GE is closed with\nescape key \nFix the slayer plugin not recognizing Crazy Archaeologist tasks \nFix many missing or wrong diary requirements in the achievement diary plugin \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (4):\n travis: add openjdk11\n client: load jagex config and client over https\n news service: load news over https\n twitch: fix race in connect establishing multiple connections\n\nJason Xie (1):\n Change produce image of maple and yew trees to their respective logs (#8222)\n\nJordan Atwood (4):\n widgetinfo: Fix wilderness level definition\n Add pvp widget builder script\n combat level plugin: Add attack level range option\n boosts plugin: Fix overlay below-threshold color\n\nJuan Ortiz (1):\n npc highlight: remove tags from npc names\n\nMagic fTail (3):\n api: rename getOverhead to getOverheadText\n api: add overhead text changed event and setOverheadText\n Add chat filter plugin\n\nNathaniel Ngo (1):\n Log whole HTTP response instead of just message (#8126)\n\nRon Young (1):\n TabInterface: remember search when clicking withdraw-x\n\nRyBo (1):\n achievement diary: add or correct various requirements\n\nTomas Slusny (2):\n Add Swagger static document generation\n Fix RequestMapping annotations in http-service\n\nWoneTooPhree (1):\n Add location description to coordinate clues (#8148)\n\nWooxSolo (3):\n config manager: add support for WorldPoint\n config manager: add support for Duration\n Add NPC unaggression timer\n\ngregg1494 (1):\n menu swapper: add contract for farming guildmaster Jane\n\ntrimbe (1):\n item stats: check if GE container is hidden when detecting GE close\n\nwhartd (1):\n slayer plugin: fix task name for Crazy Archaeologists\n
\n',image:"/img/blog/1.5.17-Release/aggro.png"}}}]);
+//# sourceMappingURL=90.c74f5723.chunk.js.map
\ No newline at end of file
diff --git a/static/js/90.e2935278.chunk.js.map b/static/js/90.c74f5723.chunk.js.map
similarity index 98%
rename from static/js/90.e2935278.chunk.js.map
rename to static/js/90.c74f5723.chunk.js.map
index 4c2a88982..dc6435663 100644
--- a/static/js/90.e2935278.chunk.js.map
+++ b/static/js/90.c74f5723.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-03-21-12-00-1.5.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oCAAoC,OAAS,OAAO,KAAO,usIAA4tI,MAAQ","file":"static/js/90.e2935278.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.17 Release\",\"description\":\"NPC unaggro timer and chat filter\",\"author\":\"Adam\",\"body\":\"A NPC Aggression Timer plugin was added, which shows how long until NPCs near\\nyou will become unaggressive, and how far away you have to walk before they will\\nbecome aggressive once again.
\\n
\\nThe combat level plugin can now show the level range of attackable players near\\nthe wilderness skull icon, similar to how it is on PVP worlds.
\\n
\\nMost coordinate clues now show a description of where they are in addition to\\nshowing on the world map.
\\n
\\nA chat filter plugin was added, which lets you define words and\\npatterns \\nto filter or block from chat messages. With a handful of patterns it is\\neasy to filter out a majority of the bot spam at the GE.
\\nFor example the patterns:
\\n5[0-9]x[0-9]\\n^Player\\n[0-9.]\\\\s*usd\\n[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\\ndoubling\\ntripling\\nI don't scam\\nFire cape & accounts\\n
\\nis highly effective against the current spam.
\\n
\\nWe may open up a channel on Discord for users to share patterns similar to bank\\ntabs.
\\nEven though this is a rather crude solution to the spam epidemic in RS, and\\nspamfilters are in general a solved problem, any solution which is much more\\ntechnically involved would require us to:
\\n\\ncontinuously update training data for the spam categorization\\nmodels (the bad guys can see this, too) \\ncentrally process game chat in real time, which is not only hard, and\\nexpensive, but also would have some privacy issues \\n \\nAdditionally, it would allow the project to unilaterally decide what is and is not spam,\\nwhich I would rather it not be capable of doing.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Twitch plugin sometimes showing duplicate chat \\nBank tag tabs no longer reset when clicking withdraw-x \\nAdd a menu swap for Contract on guildmaster Jane \\nFix the GE item stats interface not closing correctly if the GE is closed with\\nescape key \\nFix the slayer plugin not recognizing Crazy Archaeologist tasks \\nFix many missing or wrong diary requirements in the achievement diary plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (4):\\n travis: add openjdk11\\n client: load jagex config and client over https\\n news service: load news over https\\n twitch: fix race in connect establishing multiple connections\\n\\nJason Xie (1):\\n Change produce image of maple and yew trees to their respective logs (#8222)\\n\\nJordan Atwood (4):\\n widgetinfo: Fix wilderness level definition\\n Add pvp widget builder script\\n combat level plugin: Add attack level range option\\n boosts plugin: Fix overlay below-threshold color\\n\\nJuan Ortiz (1):\\n npc highlight: remove tags from npc names\\n\\nMagic fTail (3):\\n api: rename getOverhead to getOverheadText\\n api: add overhead text changed event and setOverheadText\\n Add chat filter plugin\\n\\nNathaniel Ngo (1):\\n Log whole HTTP response instead of just message (#8126)\\n\\nRon Young (1):\\n TabInterface: remember search when clicking withdraw-x\\n\\nRyBo (1):\\n achievement diary: add or correct various requirements\\n\\nTomas Slusny (2):\\n Add Swagger static document generation\\n Fix RequestMapping annotations in http-service\\n\\nWoneTooPhree (1):\\n Add location description to coordinate clues (#8148)\\n\\nWooxSolo (3):\\n config manager: add support for WorldPoint\\n config manager: add support for Duration\\n Add NPC unaggression timer\\n\\ngregg1494 (1):\\n menu swapper: add contract for farming guildmaster Jane\\n\\ntrimbe (1):\\n item stats: check if GE container is hidden when detecting GE close\\n\\nwhartd (1):\\n slayer plugin: fix task name for Crazy Archaeologists\\n
\\n\",\"image\":\"/img/blog/1.5.17-Release/aggro.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-03-21-12-00-1.5.17-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oCAAoC,OAAS,OAAO,KAAO,usIAA4tI,MAAQ","file":"static/js/90.c74f5723.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.17 Release\",\"description\":\"NPC unaggro timer and chat filter\",\"author\":\"Adam\",\"body\":\"A NPC Aggression Timer plugin was added, which shows how long until NPCs near\\nyou will become unaggressive, and how far away you have to walk before they will\\nbecome aggressive once again.
\\n
\\nThe combat level plugin can now show the level range of attackable players near\\nthe wilderness skull icon, similar to how it is on PVP worlds.
\\n
\\nMost coordinate clues now show a description of where they are in addition to\\nshowing on the world map.
\\n
\\nA chat filter plugin was added, which lets you define words and\\npatterns \\nto filter or block from chat messages. With a handful of patterns it is\\neasy to filter out a majority of the bot spam at the GE.
\\nFor example the patterns:
\\n5[0-9]x[0-9]\\n^Player\\n[0-9.]\\\\s*usd\\n[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\\ndoubling\\ntripling\\nI don't scam\\nFire cape & accounts\\n
\\nis highly effective against the current spam.
\\n
\\nWe may open up a channel on Discord for users to share patterns similar to bank\\ntabs.
\\nEven though this is a rather crude solution to the spam epidemic in RS, and\\nspamfilters are in general a solved problem, any solution which is much more\\ntechnically involved would require us to:
\\n\\ncontinuously update training data for the spam categorization\\nmodels (the bad guys can see this, too) \\ncentrally process game chat in real time, which is not only hard, and\\nexpensive, but also would have some privacy issues \\n \\nAdditionally, it would allow the project to unilaterally decide what is and is not spam,\\nwhich I would rather it not be capable of doing.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix Twitch plugin sometimes showing duplicate chat \\nBank tag tabs no longer reset when clicking withdraw-x \\nAdd a menu swap for Contract on guildmaster Jane \\nFix the GE item stats interface not closing correctly if the GE is closed with\\nescape key \\nFix the slayer plugin not recognizing Crazy Archaeologist tasks \\nFix many missing or wrong diary requirements in the achievement diary plugin \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (4):\\n travis: add openjdk11\\n client: load jagex config and client over https\\n news service: load news over https\\n twitch: fix race in connect establishing multiple connections\\n\\nJason Xie (1):\\n Change produce image of maple and yew trees to their respective logs (#8222)\\n\\nJordan Atwood (4):\\n widgetinfo: Fix wilderness level definition\\n Add pvp widget builder script\\n combat level plugin: Add attack level range option\\n boosts plugin: Fix overlay below-threshold color\\n\\nJuan Ortiz (1):\\n npc highlight: remove tags from npc names\\n\\nMagic fTail (3):\\n api: rename getOverhead to getOverheadText\\n api: add overhead text changed event and setOverheadText\\n Add chat filter plugin\\n\\nNathaniel Ngo (1):\\n Log whole HTTP response instead of just message (#8126)\\n\\nRon Young (1):\\n TabInterface: remember search when clicking withdraw-x\\n\\nRyBo (1):\\n achievement diary: add or correct various requirements\\n\\nTomas Slusny (2):\\n Add Swagger static document generation\\n Fix RequestMapping annotations in http-service\\n\\nWoneTooPhree (1):\\n Add location description to coordinate clues (#8148)\\n\\nWooxSolo (3):\\n config manager: add support for WorldPoint\\n config manager: add support for Duration\\n Add NPC unaggression timer\\n\\ngregg1494 (1):\\n menu swapper: add contract for farming guildmaster Jane\\n\\ntrimbe (1):\\n item stats: check if GE container is hidden when detecting GE close\\n\\nwhartd (1):\\n slayer plugin: fix task name for Crazy Archaeologists\\n
\\n\",\"image\":\"/img/blog/1.5.17-Release/aggro.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/91.622a457c.chunk.js b/static/js/91.f3121ab6.chunk.js
similarity index 97%
rename from static/js/91.622a457c.chunk.js
rename to static/js/91.f3121ab6.chunk.js
index 8658f1a36..051b41b41 100644
--- a/static/js/91.622a457c.chunk.js
+++ b/static/js/91.f3121ab6.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[91],{366:function(e,n){e.exports={title:"1.5.18 Release",description:"Quest list plugin and special attack sharing enhancement",author:"Jordan",body:'A Quest List plugin has been added, which adds a button to toggle visibility of completed quests,\nand adds a search button to limit the shown quests in the list. Thanks to\n@spudjb for adding this feature!
\n \n
\nThe\nSpecial Attack Counter plugin \nnow shares special attack hits with your party members, with this information displayed in the\ntooltip.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Bank Value plugin has been renamed to the Bank plugin, and now offers options to force\nright-clicking on the deposit inventory/worn buttons \nThe XP tracker no longer resets the overall XP display when using the "Reset others" right-click\noption \nThe Special Attack Counter plugin no longer tracks special attacks on other players \nThe loot tracker now tracks loot obtained from the Brimstone chest \nThe !kc
chat command will now track herbiboar harvest counts \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 10 contributors this release!
\nAdam (11):\n api: add event for controlling menu left click behavior\n Revert "client: load jagex config and client over https"\n config service: return an empty config if no config is found\n xptracker: fix "Reset others" resetting overall xp\n client: show error dialog when unable to load client\n client: verify client signature\n http-service: update mysql driver to mariadb 2.2.3\n spec plugin: only count specs on npcs\n spec plugin: share specs with party\n mixins: fix incorrect usage of getNameables()\n chat message builder: escape messages\n\nAdam Ballinger (1):\n Add brimstone chest support to loot tracker\n\nAndrew Ghaly (1):\n hooks: fix typos in javadoc\n\nHydrox6 (3):\n client: rename `Bank Value` plugin to `Bank`\n bank: add option to force right click on deposit container buttons\n chat filter: Fix issue where special attack overheads crashed the game\n\nJim Frode Nilsen (1):\n chat commands: add herbiboar kc\n\nKevin Zita (1):\n Fix "Bandind" typo in coordinate clue descriptions (#8287)\n\nMax Weber (1):\n ChatboxPanelManager: Be more resilient when scripts mismatch\n\nTomas Slusny (6):\n Make GPU plugin DPI aware on Java 9+\n Check for empty strings when initializing twitch client\n Always close twitch client in connect() method\n Normalize configuration between cache-updater and http-service\n Migrate OAuth callback to Spring configuration property\n Add development configuration for Spring http-service\n\nspudjb (1):\n Add quest list plugin\n\nxDemoN (2):\n Remove incorrect farming guild location (#8250)\n Clue Scroll: Fixe Varrock East Bank Cryptic Clue (#8241)\n
\n',image:"/img/blog/1.5.18-Release/completed-quest-toggle.png"}}}]);
-//# sourceMappingURL=91.622a457c.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[91],{367:function(e,n){e.exports={title:"1.5.18 Release",description:"Quest list plugin and special attack sharing enhancement",author:"Jordan",body:'A Quest List plugin has been added, which adds a button to toggle visibility of completed quests,\nand adds a search button to limit the shown quests in the list. Thanks to\n@spudjb for adding this feature!
\n \n
\nThe\nSpecial Attack Counter plugin \nnow shares special attack hits with your party members, with this information displayed in the\ntooltip.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe Bank Value plugin has been renamed to the Bank plugin, and now offers options to force\nright-clicking on the deposit inventory/worn buttons \nThe XP tracker no longer resets the overall XP display when using the "Reset others" right-click\noption \nThe Special Attack Counter plugin no longer tracks special attacks on other players \nThe loot tracker now tracks loot obtained from the Brimstone chest \nThe !kc
chat command will now track herbiboar harvest counts \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 10 contributors this release!
\nAdam (11):\n api: add event for controlling menu left click behavior\n Revert "client: load jagex config and client over https"\n config service: return an empty config if no config is found\n xptracker: fix "Reset others" resetting overall xp\n client: show error dialog when unable to load client\n client: verify client signature\n http-service: update mysql driver to mariadb 2.2.3\n spec plugin: only count specs on npcs\n spec plugin: share specs with party\n mixins: fix incorrect usage of getNameables()\n chat message builder: escape messages\n\nAdam Ballinger (1):\n Add brimstone chest support to loot tracker\n\nAndrew Ghaly (1):\n hooks: fix typos in javadoc\n\nHydrox6 (3):\n client: rename `Bank Value` plugin to `Bank`\n bank: add option to force right click on deposit container buttons\n chat filter: Fix issue where special attack overheads crashed the game\n\nJim Frode Nilsen (1):\n chat commands: add herbiboar kc\n\nKevin Zita (1):\n Fix "Bandind" typo in coordinate clue descriptions (#8287)\n\nMax Weber (1):\n ChatboxPanelManager: Be more resilient when scripts mismatch\n\nTomas Slusny (6):\n Make GPU plugin DPI aware on Java 9+\n Check for empty strings when initializing twitch client\n Always close twitch client in connect() method\n Normalize configuration between cache-updater and http-service\n Migrate OAuth callback to Spring configuration property\n Add development configuration for Spring http-service\n\nspudjb (1):\n Add quest list plugin\n\nxDemoN (2):\n Remove incorrect farming guild location (#8250)\n Clue Scroll: Fixe Varrock East Bank Cryptic Clue (#8241)\n
\n',image:"/img/blog/1.5.18-Release/completed-quest-toggle.png"}}}]);
+//# sourceMappingURL=91.f3121ab6.chunk.js.map
\ No newline at end of file
diff --git a/static/js/91.622a457c.chunk.js.map b/static/js/91.f3121ab6.chunk.js.map
similarity index 98%
rename from static/js/91.622a457c.chunk.js.map
rename to static/js/91.f3121ab6.chunk.js.map
index 7c6745a62..5d032d5f6 100644
--- a/static/js/91.622a457c.chunk.js.map
+++ b/static/js/91.f3121ab6.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-03-28-10-00-1.5.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2DAA2D,OAAS,SAAS,KAAO,qxGAA6yG,MAAQ","file":"static/js/91.622a457c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.18 Release\",\"description\":\"Quest list plugin and special attack sharing enhancement\",\"author\":\"Jordan\",\"body\":\"A Quest List plugin has been added, which adds a button to toggle visibility of completed quests,\\nand adds a search button to limit the shown quests in the list. Thanks to\\n@spudjb for adding this feature!
\\n \\n
\\nThe\\nSpecial Attack Counter plugin \\nnow shares special attack hits with your party members, with this information displayed in the\\ntooltip.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Bank Value plugin has been renamed to the Bank plugin, and now offers options to force\\nright-clicking on the deposit inventory/worn buttons \\nThe XP tracker no longer resets the overall XP display when using the "Reset others" right-click\\noption \\nThe Special Attack Counter plugin no longer tracks special attacks on other players \\nThe loot tracker now tracks loot obtained from the Brimstone chest \\nThe !kc
chat command will now track herbiboar harvest counts \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (11):\\n api: add event for controlling menu left click behavior\\n Revert "client: load jagex config and client over https"\\n config service: return an empty config if no config is found\\n xptracker: fix "Reset others" resetting overall xp\\n client: show error dialog when unable to load client\\n client: verify client signature\\n http-service: update mysql driver to mariadb 2.2.3\\n spec plugin: only count specs on npcs\\n spec plugin: share specs with party\\n mixins: fix incorrect usage of getNameables()\\n chat message builder: escape messages\\n\\nAdam Ballinger (1):\\n Add brimstone chest support to loot tracker\\n\\nAndrew Ghaly (1):\\n hooks: fix typos in javadoc\\n\\nHydrox6 (3):\\n client: rename `Bank Value` plugin to `Bank`\\n bank: add option to force right click on deposit container buttons\\n chat filter: Fix issue where special attack overheads crashed the game\\n\\nJim Frode Nilsen (1):\\n chat commands: add herbiboar kc\\n\\nKevin Zita (1):\\n Fix "Bandind" typo in coordinate clue descriptions (#8287)\\n\\nMax Weber (1):\\n ChatboxPanelManager: Be more resilient when scripts mismatch\\n\\nTomas Slusny (6):\\n Make GPU plugin DPI aware on Java 9+\\n Check for empty strings when initializing twitch client\\n Always close twitch client in connect() method\\n Normalize configuration between cache-updater and http-service\\n Migrate OAuth callback to Spring configuration property\\n Add development configuration for Spring http-service\\n\\nspudjb (1):\\n Add quest list plugin\\n\\nxDemoN (2):\\n Remove incorrect farming guild location (#8250)\\n Clue Scroll: Fixe Varrock East Bank Cryptic Clue (#8241)\\n
\\n\",\"image\":\"/img/blog/1.5.18-Release/completed-quest-toggle.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-03-28-10-00-1.5.18-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,2DAA2D,OAAS,SAAS,KAAO,qxGAA6yG,MAAQ","file":"static/js/91.f3121ab6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.18 Release\",\"description\":\"Quest list plugin and special attack sharing enhancement\",\"author\":\"Jordan\",\"body\":\"A Quest List plugin has been added, which adds a button to toggle visibility of completed quests,\\nand adds a search button to limit the shown quests in the list. Thanks to\\n@spudjb for adding this feature!
\\n \\n
\\nThe\\nSpecial Attack Counter plugin \\nnow shares special attack hits with your party members, with this information displayed in the\\ntooltip.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Bank Value plugin has been renamed to the Bank plugin, and now offers options to force\\nright-clicking on the deposit inventory/worn buttons \\nThe XP tracker no longer resets the overall XP display when using the "Reset others" right-click\\noption \\nThe Special Attack Counter plugin no longer tracks special attacks on other players \\nThe loot tracker now tracks loot obtained from the Brimstone chest \\nThe !kc
chat command will now track herbiboar harvest counts \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 10 contributors this release!
\\nAdam (11):\\n api: add event for controlling menu left click behavior\\n Revert "client: load jagex config and client over https"\\n config service: return an empty config if no config is found\\n xptracker: fix "Reset others" resetting overall xp\\n client: show error dialog when unable to load client\\n client: verify client signature\\n http-service: update mysql driver to mariadb 2.2.3\\n spec plugin: only count specs on npcs\\n spec plugin: share specs with party\\n mixins: fix incorrect usage of getNameables()\\n chat message builder: escape messages\\n\\nAdam Ballinger (1):\\n Add brimstone chest support to loot tracker\\n\\nAndrew Ghaly (1):\\n hooks: fix typos in javadoc\\n\\nHydrox6 (3):\\n client: rename `Bank Value` plugin to `Bank`\\n bank: add option to force right click on deposit container buttons\\n chat filter: Fix issue where special attack overheads crashed the game\\n\\nJim Frode Nilsen (1):\\n chat commands: add herbiboar kc\\n\\nKevin Zita (1):\\n Fix "Bandind" typo in coordinate clue descriptions (#8287)\\n\\nMax Weber (1):\\n ChatboxPanelManager: Be more resilient when scripts mismatch\\n\\nTomas Slusny (6):\\n Make GPU plugin DPI aware on Java 9+\\n Check for empty strings when initializing twitch client\\n Always close twitch client in connect() method\\n Normalize configuration between cache-updater and http-service\\n Migrate OAuth callback to Spring configuration property\\n Add development configuration for Spring http-service\\n\\nspudjb (1):\\n Add quest list plugin\\n\\nxDemoN (2):\\n Remove incorrect farming guild location (#8250)\\n Clue Scroll: Fixe Varrock East Bank Cryptic Clue (#8241)\\n
\\n\",\"image\":\"/img/blog/1.5.18-Release/completed-quest-toggle.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/92.7d97e979.chunk.js b/static/js/92.d837cc39.chunk.js
similarity index 98%
rename from static/js/92.7d97e979.chunk.js
rename to static/js/92.d837cc39.chunk.js
index d57c22b2c..86c502a88 100644
--- a/static/js/92.7d97e979.chunk.js
+++ b/static/js/92.d837cc39.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[92],{367:function(e,n){e.exports={title:"1.5.19 Release",description:"HD health bars and ground marker minimap display",author:"Jordan",body:'The Interface Styles plugin now\nsupports an option to display HD health bars from 2009-era RuneScape. This option can be enabled\nseparately from the rest of the interface styles, and a "Default" style option has been added so\nplayers can use the vanilla interface and still use HD health bars. Big thanks to\n@devLotto for implementing this feature.
\n
\nThe Ground Markers plugin now has an\noption to draw minimap squares at their locations. Thanks to\n@genetic-soybean for adding this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nBinding necklaces are now tracked in the Item Charge plugin \nBinding necklaces can now be displayed as infobox and have their own notification when they break \nThe Ground Items plugin now has a configuration to allow highlighting based on Grand Exchange\nvalue, High Alchemy value, or based on whichever of the two is higher \nThe Special Attack Counter plugin no longer has incorrect values when used in a party \nThe Clue Scroll plugin now displays a warning when you are missing a spade for hot-cold clues and\ncryptic clues with a dig location \nFree/Member\'s world filters have been added to the World Hopper plugin \nThe Loot Tracker plugin no longer confuses the crystal chest with the brimstone chest \nThe Prayer plugin now takes into account the higher prayer restoration of super restores and\nsanfew serums when displaying its dose indicator \nThe Idle Notifier now correctly notifies you should you go idle while enchanting amulets \nCerberus\'s lair now has a skybox color assigned to it \nAerial fishing spots close enough to be caught in one tick are now highlighted in green in the\nFishing plugin \nThe Timestamp plugin now allows configuring the timestamp format \nKaruulm volcano monsters now display their HP values in the Opponent Information plugin \nThe Daily Task Indicators plugin correctly shows relog messages for fewer daily tasks \nSome missing pies have been added to the Skill Calculator plugin \nThe runecrafting experience for crafting blood and soul runes has been slightly increased to\naccount for the experience gained from creating dark essence blocks \nThe Quest List plugin can now filter quests by any completion state \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 20 contributors this release!
\nAbel Briggs (1):\n ground items: add configuration for which coin value color highlighting uses\n\nAdam (10):\n speccounter: fix tracking multiple weapons in party\n pom: add reproducable build plugin\n clue plugin: centralize spade check\n clue plugin: add require spade overlay to hot cold clue\n mixins: set array capacity in getVertices\n runescape-api: rename CombatInfo2 to HealthBar\n cache: datafile: simplify next sector calculation\n interface styles: simplify loading sprites\n ground markers: add option to disable ground markers on minimap\n worldhopper: add free/member world filter option\n\nAdam Ballinger (1):\n loot tracker: add crystal chest\n\nDylan Critz (1):\n Fix Dragonfuit Tree Level (82-81) in skillcalc plugin (#8311)\n\nEric (2):\n Improve the outpost coordinate clue description (#8414)\n Rename indicators->infoboxes in boosts plugin config (#8405)\n\nHydrox6 (1):\n prayer: make dose indicator handle super restores and sanfews\n\nJoshua Filby (1):\n refactor: change ChatMessageType names to follow ones given\n\nLotto (3):\n client: fix npe when puzzle solver hasn\'t been executed yet\n client: add HD health bars to Interface Styles\n interface styles: add default skin type\n\nLucwousin (1):\n idle notifier: add amulet enchanting animations\n\nMax Weber (2):\n skybox: Add Cerberus area\n mixins: Fix convex hulls being incorrectly contoured\n\nMichael41000 (1):\n fishing plugin: highlight 1 tick fishing spots at Lake Molch\n\nPaul Cook (1):\n Use consistent rounding for XP bar markers\n\nQuasindro (1):\n quest list plugin: add ability to filter quests by any completion state\n\nRoman Alexander (1):\n Fix plugin list layout when a plugin dynamically adds / removes buttons.\n\nTheStonedTurtle (3):\n Remove binding necklace from Runecraft plugin\n Add binding necklace to Item Charge plugin\n Add destroy support to Item Charge plugin\n\nTrevor Guidry (1):\n timestamp plugin: allow configuring timestamp\n\nTwinkiel0ver (1):\n Add Karuulm slayer monsters to the NPC health list\n\nksergio39 (2):\n Fix wrong name on world map for Shayzien Teleport\n daily task reminders: correct relog messages\n\nwhartd (1):\n skill calculator: add missing pies\n\nxDemoN (3):\n clue scroll plugin: clarify Pointed Blue Snelm\n clue scroll plugin: add spade warning to cryptic clues\n skillcalc: update soul & blood rune xp\n
\n',image:"/img/blog/1.5.19-Release/hd-health-bars.png"}}}]);
-//# sourceMappingURL=92.7d97e979.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[92],{368:function(e,n){e.exports={title:"1.5.19 Release",description:"HD health bars and ground marker minimap display",author:"Jordan",body:'The Interface Styles plugin now\nsupports an option to display HD health bars from 2009-era RuneScape. This option can be enabled\nseparately from the rest of the interface styles, and a "Default" style option has been added so\nplayers can use the vanilla interface and still use HD health bars. Big thanks to\n@devLotto for implementing this feature.
\n
\nThe Ground Markers plugin now has an\noption to draw minimap squares at their locations. Thanks to\n@genetic-soybean for adding this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nBinding necklaces are now tracked in the Item Charge plugin \nBinding necklaces can now be displayed as infobox and have their own notification when they break \nThe Ground Items plugin now has a configuration to allow highlighting based on Grand Exchange\nvalue, High Alchemy value, or based on whichever of the two is higher \nThe Special Attack Counter plugin no longer has incorrect values when used in a party \nThe Clue Scroll plugin now displays a warning when you are missing a spade for hot-cold clues and\ncryptic clues with a dig location \nFree/Member\'s world filters have been added to the World Hopper plugin \nThe Loot Tracker plugin no longer confuses the crystal chest with the brimstone chest \nThe Prayer plugin now takes into account the higher prayer restoration of super restores and\nsanfew serums when displaying its dose indicator \nThe Idle Notifier now correctly notifies you should you go idle while enchanting amulets \nCerberus\'s lair now has a skybox color assigned to it \nAerial fishing spots close enough to be caught in one tick are now highlighted in green in the\nFishing plugin \nThe Timestamp plugin now allows configuring the timestamp format \nKaruulm volcano monsters now display their HP values in the Opponent Information plugin \nThe Daily Task Indicators plugin correctly shows relog messages for fewer daily tasks \nSome missing pies have been added to the Skill Calculator plugin \nThe runecrafting experience for crafting blood and soul runes has been slightly increased to\naccount for the experience gained from creating dark essence blocks \nThe Quest List plugin can now filter quests by any completion state \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 20 contributors this release!
\nAbel Briggs (1):\n ground items: add configuration for which coin value color highlighting uses\n\nAdam (10):\n speccounter: fix tracking multiple weapons in party\n pom: add reproducable build plugin\n clue plugin: centralize spade check\n clue plugin: add require spade overlay to hot cold clue\n mixins: set array capacity in getVertices\n runescape-api: rename CombatInfo2 to HealthBar\n cache: datafile: simplify next sector calculation\n interface styles: simplify loading sprites\n ground markers: add option to disable ground markers on minimap\n worldhopper: add free/member world filter option\n\nAdam Ballinger (1):\n loot tracker: add crystal chest\n\nDylan Critz (1):\n Fix Dragonfuit Tree Level (82-81) in skillcalc plugin (#8311)\n\nEric (2):\n Improve the outpost coordinate clue description (#8414)\n Rename indicators->infoboxes in boosts plugin config (#8405)\n\nHydrox6 (1):\n prayer: make dose indicator handle super restores and sanfews\n\nJoshua Filby (1):\n refactor: change ChatMessageType names to follow ones given\n\nLotto (3):\n client: fix npe when puzzle solver hasn\'t been executed yet\n client: add HD health bars to Interface Styles\n interface styles: add default skin type\n\nLucwousin (1):\n idle notifier: add amulet enchanting animations\n\nMax Weber (2):\n skybox: Add Cerberus area\n mixins: Fix convex hulls being incorrectly contoured\n\nMichael41000 (1):\n fishing plugin: highlight 1 tick fishing spots at Lake Molch\n\nPaul Cook (1):\n Use consistent rounding for XP bar markers\n\nQuasindro (1):\n quest list plugin: add ability to filter quests by any completion state\n\nRoman Alexander (1):\n Fix plugin list layout when a plugin dynamically adds / removes buttons.\n\nTheStonedTurtle (3):\n Remove binding necklace from Runecraft plugin\n Add binding necklace to Item Charge plugin\n Add destroy support to Item Charge plugin\n\nTrevor Guidry (1):\n timestamp plugin: allow configuring timestamp\n\nTwinkiel0ver (1):\n Add Karuulm slayer monsters to the NPC health list\n\nksergio39 (2):\n Fix wrong name on world map for Shayzien Teleport\n daily task reminders: correct relog messages\n\nwhartd (1):\n skill calculator: add missing pies\n\nxDemoN (3):\n clue scroll plugin: clarify Pointed Blue Snelm\n clue scroll plugin: add spade warning to cryptic clues\n skillcalc: update soul & blood rune xp\n
\n',image:"/img/blog/1.5.19-Release/hd-health-bars.png"}}}]);
+//# sourceMappingURL=92.d837cc39.chunk.js.map
\ No newline at end of file
diff --git a/static/js/92.7d97e979.chunk.js.map b/static/js/92.d837cc39.chunk.js.map
similarity index 98%
rename from static/js/92.7d97e979.chunk.js.map
rename to static/js/92.d837cc39.chunk.js.map
index a265d8b17..d97feed56 100644
--- a/static/js/92.7d97e979.chunk.js.map
+++ b/static/js/92.d837cc39.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-04-11-10-00-1.5.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mDAAmD,OAAS,SAAS,KAAO,4/KAAyhL,MAAQ","file":"static/js/92.7d97e979.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.19 Release\",\"description\":\"HD health bars and ground marker minimap display\",\"author\":\"Jordan\",\"body\":\"The Interface Styles plugin now\\nsupports an option to display HD health bars from 2009-era RuneScape. This option can be enabled\\nseparately from the rest of the interface styles, and a "Default" style option has been added so\\nplayers can use the vanilla interface and still use HD health bars. Big thanks to\\n@devLotto for implementing this feature.
\\n
\\nThe Ground Markers plugin now has an\\noption to draw minimap squares at their locations. Thanks to\\n@genetic-soybean for adding this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nBinding necklaces are now tracked in the Item Charge plugin \\nBinding necklaces can now be displayed as infobox and have their own notification when they break \\nThe Ground Items plugin now has a configuration to allow highlighting based on Grand Exchange\\nvalue, High Alchemy value, or based on whichever of the two is higher \\nThe Special Attack Counter plugin no longer has incorrect values when used in a party \\nThe Clue Scroll plugin now displays a warning when you are missing a spade for hot-cold clues and\\ncryptic clues with a dig location \\nFree/Member's world filters have been added to the World Hopper plugin \\nThe Loot Tracker plugin no longer confuses the crystal chest with the brimstone chest \\nThe Prayer plugin now takes into account the higher prayer restoration of super restores and\\nsanfew serums when displaying its dose indicator \\nThe Idle Notifier now correctly notifies you should you go idle while enchanting amulets \\nCerberus's lair now has a skybox color assigned to it \\nAerial fishing spots close enough to be caught in one tick are now highlighted in green in the\\nFishing plugin \\nThe Timestamp plugin now allows configuring the timestamp format \\nKaruulm volcano monsters now display their HP values in the Opponent Information plugin \\nThe Daily Task Indicators plugin correctly shows relog messages for fewer daily tasks \\nSome missing pies have been added to the Skill Calculator plugin \\nThe runecrafting experience for crafting blood and soul runes has been slightly increased to\\naccount for the experience gained from creating dark essence blocks \\nThe Quest List plugin can now filter quests by any completion state \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 20 contributors this release!
\\nAbel Briggs (1):\\n ground items: add configuration for which coin value color highlighting uses\\n\\nAdam (10):\\n speccounter: fix tracking multiple weapons in party\\n pom: add reproducable build plugin\\n clue plugin: centralize spade check\\n clue plugin: add require spade overlay to hot cold clue\\n mixins: set array capacity in getVertices\\n runescape-api: rename CombatInfo2 to HealthBar\\n cache: datafile: simplify next sector calculation\\n interface styles: simplify loading sprites\\n ground markers: add option to disable ground markers on minimap\\n worldhopper: add free/member world filter option\\n\\nAdam Ballinger (1):\\n loot tracker: add crystal chest\\n\\nDylan Critz (1):\\n Fix Dragonfuit Tree Level (82-81) in skillcalc plugin (#8311)\\n\\nEric (2):\\n Improve the outpost coordinate clue description (#8414)\\n Rename indicators->infoboxes in boosts plugin config (#8405)\\n\\nHydrox6 (1):\\n prayer: make dose indicator handle super restores and sanfews\\n\\nJoshua Filby (1):\\n refactor: change ChatMessageType names to follow ones given\\n\\nLotto (3):\\n client: fix npe when puzzle solver hasn't been executed yet\\n client: add HD health bars to Interface Styles\\n interface styles: add default skin type\\n\\nLucwousin (1):\\n idle notifier: add amulet enchanting animations\\n\\nMax Weber (2):\\n skybox: Add Cerberus area\\n mixins: Fix convex hulls being incorrectly contoured\\n\\nMichael41000 (1):\\n fishing plugin: highlight 1 tick fishing spots at Lake Molch\\n\\nPaul Cook (1):\\n Use consistent rounding for XP bar markers\\n\\nQuasindro (1):\\n quest list plugin: add ability to filter quests by any completion state\\n\\nRoman Alexander (1):\\n Fix plugin list layout when a plugin dynamically adds / removes buttons.\\n\\nTheStonedTurtle (3):\\n Remove binding necklace from Runecraft plugin\\n Add binding necklace to Item Charge plugin\\n Add destroy support to Item Charge plugin\\n\\nTrevor Guidry (1):\\n timestamp plugin: allow configuring timestamp\\n\\nTwinkiel0ver (1):\\n Add Karuulm slayer monsters to the NPC health list\\n\\nksergio39 (2):\\n Fix wrong name on world map for Shayzien Teleport\\n daily task reminders: correct relog messages\\n\\nwhartd (1):\\n skill calculator: add missing pies\\n\\nxDemoN (3):\\n clue scroll plugin: clarify Pointed Blue Snelm\\n clue scroll plugin: add spade warning to cryptic clues\\n skillcalc: update soul & blood rune xp\\n
\\n\",\"image\":\"/img/blog/1.5.19-Release/hd-health-bars.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-04-11-10-00-1.5.19-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,mDAAmD,OAAS,SAAS,KAAO,4/KAAyhL,MAAQ","file":"static/js/92.d837cc39.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.19 Release\",\"description\":\"HD health bars and ground marker minimap display\",\"author\":\"Jordan\",\"body\":\"The Interface Styles plugin now\\nsupports an option to display HD health bars from 2009-era RuneScape. This option can be enabled\\nseparately from the rest of the interface styles, and a "Default" style option has been added so\\nplayers can use the vanilla interface and still use HD health bars. Big thanks to\\n@devLotto for implementing this feature.
\\n
\\nThe Ground Markers plugin now has an\\noption to draw minimap squares at their locations. Thanks to\\n@genetic-soybean for adding this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nBinding necklaces are now tracked in the Item Charge plugin \\nBinding necklaces can now be displayed as infobox and have their own notification when they break \\nThe Ground Items plugin now has a configuration to allow highlighting based on Grand Exchange\\nvalue, High Alchemy value, or based on whichever of the two is higher \\nThe Special Attack Counter plugin no longer has incorrect values when used in a party \\nThe Clue Scroll plugin now displays a warning when you are missing a spade for hot-cold clues and\\ncryptic clues with a dig location \\nFree/Member's world filters have been added to the World Hopper plugin \\nThe Loot Tracker plugin no longer confuses the crystal chest with the brimstone chest \\nThe Prayer plugin now takes into account the higher prayer restoration of super restores and\\nsanfew serums when displaying its dose indicator \\nThe Idle Notifier now correctly notifies you should you go idle while enchanting amulets \\nCerberus's lair now has a skybox color assigned to it \\nAerial fishing spots close enough to be caught in one tick are now highlighted in green in the\\nFishing plugin \\nThe Timestamp plugin now allows configuring the timestamp format \\nKaruulm volcano monsters now display their HP values in the Opponent Information plugin \\nThe Daily Task Indicators plugin correctly shows relog messages for fewer daily tasks \\nSome missing pies have been added to the Skill Calculator plugin \\nThe runecrafting experience for crafting blood and soul runes has been slightly increased to\\naccount for the experience gained from creating dark essence blocks \\nThe Quest List plugin can now filter quests by any completion state \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 20 contributors this release!
\\nAbel Briggs (1):\\n ground items: add configuration for which coin value color highlighting uses\\n\\nAdam (10):\\n speccounter: fix tracking multiple weapons in party\\n pom: add reproducable build plugin\\n clue plugin: centralize spade check\\n clue plugin: add require spade overlay to hot cold clue\\n mixins: set array capacity in getVertices\\n runescape-api: rename CombatInfo2 to HealthBar\\n cache: datafile: simplify next sector calculation\\n interface styles: simplify loading sprites\\n ground markers: add option to disable ground markers on minimap\\n worldhopper: add free/member world filter option\\n\\nAdam Ballinger (1):\\n loot tracker: add crystal chest\\n\\nDylan Critz (1):\\n Fix Dragonfuit Tree Level (82-81) in skillcalc plugin (#8311)\\n\\nEric (2):\\n Improve the outpost coordinate clue description (#8414)\\n Rename indicators->infoboxes in boosts plugin config (#8405)\\n\\nHydrox6 (1):\\n prayer: make dose indicator handle super restores and sanfews\\n\\nJoshua Filby (1):\\n refactor: change ChatMessageType names to follow ones given\\n\\nLotto (3):\\n client: fix npe when puzzle solver hasn't been executed yet\\n client: add HD health bars to Interface Styles\\n interface styles: add default skin type\\n\\nLucwousin (1):\\n idle notifier: add amulet enchanting animations\\n\\nMax Weber (2):\\n skybox: Add Cerberus area\\n mixins: Fix convex hulls being incorrectly contoured\\n\\nMichael41000 (1):\\n fishing plugin: highlight 1 tick fishing spots at Lake Molch\\n\\nPaul Cook (1):\\n Use consistent rounding for XP bar markers\\n\\nQuasindro (1):\\n quest list plugin: add ability to filter quests by any completion state\\n\\nRoman Alexander (1):\\n Fix plugin list layout when a plugin dynamically adds / removes buttons.\\n\\nTheStonedTurtle (3):\\n Remove binding necklace from Runecraft plugin\\n Add binding necklace to Item Charge plugin\\n Add destroy support to Item Charge plugin\\n\\nTrevor Guidry (1):\\n timestamp plugin: allow configuring timestamp\\n\\nTwinkiel0ver (1):\\n Add Karuulm slayer monsters to the NPC health list\\n\\nksergio39 (2):\\n Fix wrong name on world map for Shayzien Teleport\\n daily task reminders: correct relog messages\\n\\nwhartd (1):\\n skill calculator: add missing pies\\n\\nxDemoN (3):\\n clue scroll plugin: clarify Pointed Blue Snelm\\n clue scroll plugin: add spade warning to cryptic clues\\n skillcalc: update soul & blood rune xp\\n
\\n\",\"image\":\"/img/blog/1.5.19-Release/hd-health-bars.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/93.f4fab4e5.chunk.js b/static/js/93.e5b6e0d7.chunk.js
similarity index 97%
rename from static/js/93.f4fab4e5.chunk.js
rename to static/js/93.e5b6e0d7.chunk.js
index 75363d7eb..bd70e2014 100644
--- a/static/js/93.f4fab4e5.chunk.js
+++ b/static/js/93.e5b6e0d7.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[93],{368:function(n,e){n.exports={title:"1.5.20 Release",description:"Clue updates and world map transportation tooltips",author:"Adam",body:'This release adds many of the new clues released last week, with only beginner\nhot/cold and beginner map clues not done yet. Thanks to everyone working to get\nthose added.
\nThe hiscore plugin was updated for beginner clues:
\n
\nThe world map plugin now adds tooltips to all transportation icons so you can\ntell what kind of transportation method it is:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd all new anagram, cipher, coordinate, cryptic, and emote clues \nAdd support for music clues, and highlighting the correct track to play \nAdd new wilderness hot cold spot in the Graveyard of Shadows \nFix the hiscore plugin looking up clues and LMS rank \nAdd beginner clues to the !clues chat command \nAdd beginner clues to the loot tracker \nFix status bars plugin sometimes not correctly showing the poison background\ncolor \nFix NPC aggro plugin not showing the instructions after being toggled on \n \nAn issue was fixed which prevented configuration from syncing across devices for\nusers with newly created RuneLite accounts (in the last 3-4 weeks). A side effect of\nfixing this caused the client to wipe its configuration for these users over the\nlast week. Sorry about that.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (16):\n Revert "pom: add reproducable build plugin"\n pom: add reproducable build plugin\n http api: update for beginner clues\n chat commands: add beginner clues\n hiscore plugin: add beginner clues\n config service: remove writing to sql\n clue plugin: move widget highlights to plugin\n clue plugin: add music clues\n clue plugin: add beginner anagram clues\n clue plugin: add beginner cryptic clues\n clue plugin: add beginner emote clues\n mixins: set thread name on client thread\n clue plugin: fix text matching anagrams\n clue plugin: fix emote clue overlay with no item requirements\n config service: fix not upserting documents when setting config keys\n devtools: add setstat command\n\nDaniel Robaina (1):\n clue plugin: add easy cryptic clues\n\nHydrox6 (1):\n loottracker: add support for beginner clues\n\nJordan Atwood (3):\n clue plugin: Add new cipher clues\n clue plugin: Add new cryptic clues\n clue plugin: Add new coordinate clue descriptions\n\nScapeRune (3):\n Fix item mapping of Saradomin\'s Blessed Sword and Saradomin\'s Tear (#8453)\n clue scroll plugin: add new medium and master anagrams\n npc aggro timer: fix instructions not showing up when plugin is turned on\n\nTheStonedTurtle (2):\n LootTracker: Change rigid area to compound border\n Fix status bar poison background color\n\nTomas Slusny (2):\n Fix access control in clue scroll plugin\n Properly use Lombok in MusicClue class\n\nWhitehooder (1):\n clue plugin: add lvl 27 wilderness hot-cold clue location\n\nYuuki-chan (1):\n Fix grammar in Skybox plugin description (#8496)\n\nbjornenalfa (1):\n Remove duplicate coordinate clue\n\nksergio39 (1):\n world map plugin: add tooltips for transportation icon\n
\n',image:"/img/blog/1.5.20-Release/hiscore.png"}}}]);
-//# sourceMappingURL=93.f4fab4e5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[93],{369:function(n,e){n.exports={title:"1.5.20 Release",description:"Clue updates and world map transportation tooltips",author:"Adam",body:'This release adds many of the new clues released last week, with only beginner\nhot/cold and beginner map clues not done yet. Thanks to everyone working to get\nthose added.
\nThe hiscore plugin was updated for beginner clues:
\n
\nThe world map plugin now adds tooltips to all transportation icons so you can\ntell what kind of transportation method it is:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nAdd all new anagram, cipher, coordinate, cryptic, and emote clues \nAdd support for music clues, and highlighting the correct track to play \nAdd new wilderness hot cold spot in the Graveyard of Shadows \nFix the hiscore plugin looking up clues and LMS rank \nAdd beginner clues to the !clues chat command \nAdd beginner clues to the loot tracker \nFix status bars plugin sometimes not correctly showing the poison background\ncolor \nFix NPC aggro plugin not showing the instructions after being toggled on \n \nAn issue was fixed which prevented configuration from syncing across devices for\nusers with newly created RuneLite accounts (in the last 3-4 weeks). A side effect of\nfixing this caused the client to wipe its configuration for these users over the\nlast week. Sorry about that.
\nEnjoy!
\n- Adam
\nNew commits \nWe had 11 contributors this release!
\nAdam (16):\n Revert "pom: add reproducable build plugin"\n pom: add reproducable build plugin\n http api: update for beginner clues\n chat commands: add beginner clues\n hiscore plugin: add beginner clues\n config service: remove writing to sql\n clue plugin: move widget highlights to plugin\n clue plugin: add music clues\n clue plugin: add beginner anagram clues\n clue plugin: add beginner cryptic clues\n clue plugin: add beginner emote clues\n mixins: set thread name on client thread\n clue plugin: fix text matching anagrams\n clue plugin: fix emote clue overlay with no item requirements\n config service: fix not upserting documents when setting config keys\n devtools: add setstat command\n\nDaniel Robaina (1):\n clue plugin: add easy cryptic clues\n\nHydrox6 (1):\n loottracker: add support for beginner clues\n\nJordan Atwood (3):\n clue plugin: Add new cipher clues\n clue plugin: Add new cryptic clues\n clue plugin: Add new coordinate clue descriptions\n\nScapeRune (3):\n Fix item mapping of Saradomin\'s Blessed Sword and Saradomin\'s Tear (#8453)\n clue scroll plugin: add new medium and master anagrams\n npc aggro timer: fix instructions not showing up when plugin is turned on\n\nTheStonedTurtle (2):\n LootTracker: Change rigid area to compound border\n Fix status bar poison background color\n\nTomas Slusny (2):\n Fix access control in clue scroll plugin\n Properly use Lombok in MusicClue class\n\nWhitehooder (1):\n clue plugin: add lvl 27 wilderness hot-cold clue location\n\nYuuki-chan (1):\n Fix grammar in Skybox plugin description (#8496)\n\nbjornenalfa (1):\n Remove duplicate coordinate clue\n\nksergio39 (1):\n world map plugin: add tooltips for transportation icon\n
\n',image:"/img/blog/1.5.20-Release/hiscore.png"}}}]);
+//# sourceMappingURL=93.e5b6e0d7.chunk.js.map
\ No newline at end of file
diff --git a/static/js/93.f4fab4e5.chunk.js.map b/static/js/93.e5b6e0d7.chunk.js.map
similarity index 98%
rename from static/js/93.f4fab4e5.chunk.js.map
rename to static/js/93.e5b6e0d7.chunk.js.map
index 5c51108fe..5f0f5d237 100644
--- a/static/js/93.f4fab4e5.chunk.js.map
+++ b/static/js/93.e5b6e0d7.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-04-18-10-00-1.5.20-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qDAAqD,OAAS,OAAO,KAAO,g5GAAs5G,MAAQ","file":"static/js/93.f4fab4e5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.20 Release\",\"description\":\"Clue updates and world map transportation tooltips\",\"author\":\"Adam\",\"body\":\"This release adds many of the new clues released last week, with only beginner\\nhot/cold and beginner map clues not done yet. Thanks to everyone working to get\\nthose added.
\\nThe hiscore plugin was updated for beginner clues:
\\n
\\nThe world map plugin now adds tooltips to all transportation icons so you can\\ntell what kind of transportation method it is:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd all new anagram, cipher, coordinate, cryptic, and emote clues \\nAdd support for music clues, and highlighting the correct track to play \\nAdd new wilderness hot cold spot in the Graveyard of Shadows \\nFix the hiscore plugin looking up clues and LMS rank \\nAdd beginner clues to the !clues chat command \\nAdd beginner clues to the loot tracker \\nFix status bars plugin sometimes not correctly showing the poison background\\ncolor \\nFix NPC aggro plugin not showing the instructions after being toggled on \\n \\nAn issue was fixed which prevented configuration from syncing across devices for\\nusers with newly created RuneLite accounts (in the last 3-4 weeks). A side effect of\\nfixing this caused the client to wipe its configuration for these users over the\\nlast week. Sorry about that.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (16):\\n Revert "pom: add reproducable build plugin"\\n pom: add reproducable build plugin\\n http api: update for beginner clues\\n chat commands: add beginner clues\\n hiscore plugin: add beginner clues\\n config service: remove writing to sql\\n clue plugin: move widget highlights to plugin\\n clue plugin: add music clues\\n clue plugin: add beginner anagram clues\\n clue plugin: add beginner cryptic clues\\n clue plugin: add beginner emote clues\\n mixins: set thread name on client thread\\n clue plugin: fix text matching anagrams\\n clue plugin: fix emote clue overlay with no item requirements\\n config service: fix not upserting documents when setting config keys\\n devtools: add setstat command\\n\\nDaniel Robaina (1):\\n clue plugin: add easy cryptic clues\\n\\nHydrox6 (1):\\n loottracker: add support for beginner clues\\n\\nJordan Atwood (3):\\n clue plugin: Add new cipher clues\\n clue plugin: Add new cryptic clues\\n clue plugin: Add new coordinate clue descriptions\\n\\nScapeRune (3):\\n Fix item mapping of Saradomin's Blessed Sword and Saradomin's Tear (#8453)\\n clue scroll plugin: add new medium and master anagrams\\n npc aggro timer: fix instructions not showing up when plugin is turned on\\n\\nTheStonedTurtle (2):\\n LootTracker: Change rigid area to compound border\\n Fix status bar poison background color\\n\\nTomas Slusny (2):\\n Fix access control in clue scroll plugin\\n Properly use Lombok in MusicClue class\\n\\nWhitehooder (1):\\n clue plugin: add lvl 27 wilderness hot-cold clue location\\n\\nYuuki-chan (1):\\n Fix grammar in Skybox plugin description (#8496)\\n\\nbjornenalfa (1):\\n Remove duplicate coordinate clue\\n\\nksergio39 (1):\\n world map plugin: add tooltips for transportation icon\\n
\\n\",\"image\":\"/img/blog/1.5.20-Release/hiscore.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-04-18-10-00-1.5.20-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,qDAAqD,OAAS,OAAO,KAAO,g5GAAs5G,MAAQ","file":"static/js/93.e5b6e0d7.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.20 Release\",\"description\":\"Clue updates and world map transportation tooltips\",\"author\":\"Adam\",\"body\":\"This release adds many of the new clues released last week, with only beginner\\nhot/cold and beginner map clues not done yet. Thanks to everyone working to get\\nthose added.
\\nThe hiscore plugin was updated for beginner clues:
\\n
\\nThe world map plugin now adds tooltips to all transportation icons so you can\\ntell what kind of transportation method it is:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nAdd all new anagram, cipher, coordinate, cryptic, and emote clues \\nAdd support for music clues, and highlighting the correct track to play \\nAdd new wilderness hot cold spot in the Graveyard of Shadows \\nFix the hiscore plugin looking up clues and LMS rank \\nAdd beginner clues to the !clues chat command \\nAdd beginner clues to the loot tracker \\nFix status bars plugin sometimes not correctly showing the poison background\\ncolor \\nFix NPC aggro plugin not showing the instructions after being toggled on \\n \\nAn issue was fixed which prevented configuration from syncing across devices for\\nusers with newly created RuneLite accounts (in the last 3-4 weeks). A side effect of\\nfixing this caused the client to wipe its configuration for these users over the\\nlast week. Sorry about that.
\\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 11 contributors this release!
\\nAdam (16):\\n Revert "pom: add reproducable build plugin"\\n pom: add reproducable build plugin\\n http api: update for beginner clues\\n chat commands: add beginner clues\\n hiscore plugin: add beginner clues\\n config service: remove writing to sql\\n clue plugin: move widget highlights to plugin\\n clue plugin: add music clues\\n clue plugin: add beginner anagram clues\\n clue plugin: add beginner cryptic clues\\n clue plugin: add beginner emote clues\\n mixins: set thread name on client thread\\n clue plugin: fix text matching anagrams\\n clue plugin: fix emote clue overlay with no item requirements\\n config service: fix not upserting documents when setting config keys\\n devtools: add setstat command\\n\\nDaniel Robaina (1):\\n clue plugin: add easy cryptic clues\\n\\nHydrox6 (1):\\n loottracker: add support for beginner clues\\n\\nJordan Atwood (3):\\n clue plugin: Add new cipher clues\\n clue plugin: Add new cryptic clues\\n clue plugin: Add new coordinate clue descriptions\\n\\nScapeRune (3):\\n Fix item mapping of Saradomin's Blessed Sword and Saradomin's Tear (#8453)\\n clue scroll plugin: add new medium and master anagrams\\n npc aggro timer: fix instructions not showing up when plugin is turned on\\n\\nTheStonedTurtle (2):\\n LootTracker: Change rigid area to compound border\\n Fix status bar poison background color\\n\\nTomas Slusny (2):\\n Fix access control in clue scroll plugin\\n Properly use Lombok in MusicClue class\\n\\nWhitehooder (1):\\n clue plugin: add lvl 27 wilderness hot-cold clue location\\n\\nYuuki-chan (1):\\n Fix grammar in Skybox plugin description (#8496)\\n\\nbjornenalfa (1):\\n Remove duplicate coordinate clue\\n\\nksergio39 (1):\\n world map plugin: add tooltips for transportation icon\\n
\\n\",\"image\":\"/img/blog/1.5.20-Release/hiscore.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/94.9d487d33.chunk.js b/static/js/94.68619e77.chunk.js
similarity index 96%
rename from static/js/94.9d487d33.chunk.js
rename to static/js/94.68619e77.chunk.js
index 6f726f53c..05847b34f 100644
--- a/static/js/94.9d487d33.chunk.js
+++ b/static/js/94.68619e77.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[94],{369:function(e,n){e.exports={title:"1.5.21 Release",description:"2010 menu interface style, Ammo plugin, and barrows puzzle solver",author:"Adam",body:'The interface styles plugin now has a "High Detail menu" option which changes\nthe game menu to look similar to how it did after the release of RSHD:
\n
\nAn ammo plugin was added which adds your current ammo and count as an infobox:
\n
\nThe barrows plugin now has an option to show the answer to the barrows door\npuzzles:
\n
\nAn option was added to the fishing plugin to make the fishing trawler time left\nmore accurate:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nHD healthbars now shows more visible green at very low hitpoints \nAdd Neitiznot bridges to agility shortcuts \nFix Yanille wall and grapple shortcut overlays indicating the wrong level\nrequirements \nFix clan counter to not count yourself as a "nearby clan member" \nVarious new clues and fixes to clues added last week \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (6):\n Add WidgetItemOverlay\n client: modify plugins to use WidgetItemOverlay\n api: remove Query api\n widgetitem: associate Widget with WidgetItem\n widgetitem overlay: allow configuring which interfaces to overlay\n interface styles: increase padding of overridden healthbar\n\nBrianAllred (1):\n npc aggro timer: Add option to hide hint overlay (#8610)\n\nElliott (1):\n fishing plugin: add trawler timer\n\nHydrox6 (3):\n mixins: renderWidgetLayer: skip hidden widgets\n Add Ammo plugin (#8113)\n ammo: fix weapon check\n\nJacobThompson (1):\n Update lap counter overlay strings for clarity.\n\nJamy C (1):\n Add missing Neitiznot bridges agility shortcuts\n\nJordan Atwood (2):\n WorldType: Fix HIGH_RISK world type name\n Remove PVP references to HIGH_RISK world type\n\nNate Brown (1):\n slayer plugin: use addy and rune masks for metal dragon tasks\n\nRon Young (3):\n skybox: calculate brightness increase in HSB format\n api: add before menu render event\n interface styles: add 2010 menu\n\nSebastiaanVanspauwen (1):\n barrows plugin: add puzzle solver\n\nSergz39 (2):\n agility shortcuts: fix Yanille wall and grapple shortcut object ids\n Fix Pirate\'s tresure quest start location (#8564)\n\nTomas Slusny (2):\n Do not count local player in nearby clan member counter\n Add missing \'knows\' to Hans beginner clue\n\ntrimbe (2):\n scripts: add quest list progress script\n quest list plugin: use progress script to trigger hiding quests\n\nxDemoN (3):\n World Map: Identify Both Shield of Arrav Quest Start Points (#8442)\n add lv32 wildy hot cold clue location\n reword lv27 wildy hot cold clue location\n
\n',image:"/img/blog/1.5.21-Release/menu.png"}}}]);
-//# sourceMappingURL=94.9d487d33.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[94],{370:function(e,n){e.exports={title:"1.5.21 Release",description:"2010 menu interface style, Ammo plugin, and barrows puzzle solver",author:"Adam",body:'The interface styles plugin now has a "High Detail menu" option which changes\nthe game menu to look similar to how it did after the release of RSHD:
\n
\nAn ammo plugin was added which adds your current ammo and count as an infobox:
\n
\nThe barrows plugin now has an option to show the answer to the barrows door\npuzzles:
\n
\nAn option was added to the fishing plugin to make the fishing trawler time left\nmore accurate:
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nHD healthbars now shows more visible green at very low hitpoints \nAdd Neitiznot bridges to agility shortcuts \nFix Yanille wall and grapple shortcut overlays indicating the wrong level\nrequirements \nFix clan counter to not count yourself as a "nearby clan member" \nVarious new clues and fixes to clues added last week \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 14 contributors this release!
\nAdam (6):\n Add WidgetItemOverlay\n client: modify plugins to use WidgetItemOverlay\n api: remove Query api\n widgetitem: associate Widget with WidgetItem\n widgetitem overlay: allow configuring which interfaces to overlay\n interface styles: increase padding of overridden healthbar\n\nBrianAllred (1):\n npc aggro timer: Add option to hide hint overlay (#8610)\n\nElliott (1):\n fishing plugin: add trawler timer\n\nHydrox6 (3):\n mixins: renderWidgetLayer: skip hidden widgets\n Add Ammo plugin (#8113)\n ammo: fix weapon check\n\nJacobThompson (1):\n Update lap counter overlay strings for clarity.\n\nJamy C (1):\n Add missing Neitiznot bridges agility shortcuts\n\nJordan Atwood (2):\n WorldType: Fix HIGH_RISK world type name\n Remove PVP references to HIGH_RISK world type\n\nNate Brown (1):\n slayer plugin: use addy and rune masks for metal dragon tasks\n\nRon Young (3):\n skybox: calculate brightness increase in HSB format\n api: add before menu render event\n interface styles: add 2010 menu\n\nSebastiaanVanspauwen (1):\n barrows plugin: add puzzle solver\n\nSergz39 (2):\n agility shortcuts: fix Yanille wall and grapple shortcut object ids\n Fix Pirate\'s tresure quest start location (#8564)\n\nTomas Slusny (2):\n Do not count local player in nearby clan member counter\n Add missing \'knows\' to Hans beginner clue\n\ntrimbe (2):\n scripts: add quest list progress script\n quest list plugin: use progress script to trigger hiding quests\n\nxDemoN (3):\n World Map: Identify Both Shield of Arrav Quest Start Points (#8442)\n add lv32 wildy hot cold clue location\n reword lv27 wildy hot cold clue location\n
\n',image:"/img/blog/1.5.21-Release/menu.png"}}}]);
+//# sourceMappingURL=94.68619e77.chunk.js.map
\ No newline at end of file
diff --git a/static/js/94.9d487d33.chunk.js.map b/static/js/94.68619e77.chunk.js.map
similarity index 98%
rename from static/js/94.9d487d33.chunk.js.map
rename to static/js/94.68619e77.chunk.js.map
index 28bec50a1..2dc184303 100644
--- a/static/js/94.9d487d33.chunk.js.map
+++ b/static/js/94.68619e77.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-04-25-10-00-1.5.21-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,OAAO,KAAO,ghGAA6hG,MAAQ","file":"static/js/94.9d487d33.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.21 Release\",\"description\":\"2010 menu interface style, Ammo plugin, and barrows puzzle solver\",\"author\":\"Adam\",\"body\":\"The interface styles plugin now has a "High Detail menu" option which changes\\nthe game menu to look similar to how it did after the release of RSHD:
\\n
\\nAn ammo plugin was added which adds your current ammo and count as an infobox:
\\n
\\nThe barrows plugin now has an option to show the answer to the barrows door\\npuzzles:
\\n
\\nAn option was added to the fishing plugin to make the fishing trawler time left\\nmore accurate:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nHD healthbars now shows more visible green at very low hitpoints \\nAdd Neitiznot bridges to agility shortcuts \\nFix Yanille wall and grapple shortcut overlays indicating the wrong level\\nrequirements \\nFix clan counter to not count yourself as a "nearby clan member" \\nVarious new clues and fixes to clues added last week \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (6):\\n Add WidgetItemOverlay\\n client: modify plugins to use WidgetItemOverlay\\n api: remove Query api\\n widgetitem: associate Widget with WidgetItem\\n widgetitem overlay: allow configuring which interfaces to overlay\\n interface styles: increase padding of overridden healthbar\\n\\nBrianAllred (1):\\n npc aggro timer: Add option to hide hint overlay (#8610)\\n\\nElliott (1):\\n fishing plugin: add trawler timer\\n\\nHydrox6 (3):\\n mixins: renderWidgetLayer: skip hidden widgets\\n Add Ammo plugin (#8113)\\n ammo: fix weapon check\\n\\nJacobThompson (1):\\n Update lap counter overlay strings for clarity.\\n\\nJamy C (1):\\n Add missing Neitiznot bridges agility shortcuts\\n\\nJordan Atwood (2):\\n WorldType: Fix HIGH_RISK world type name\\n Remove PVP references to HIGH_RISK world type\\n\\nNate Brown (1):\\n slayer plugin: use addy and rune masks for metal dragon tasks\\n\\nRon Young (3):\\n skybox: calculate brightness increase in HSB format\\n api: add before menu render event\\n interface styles: add 2010 menu\\n\\nSebastiaanVanspauwen (1):\\n barrows plugin: add puzzle solver\\n\\nSergz39 (2):\\n agility shortcuts: fix Yanille wall and grapple shortcut object ids\\n Fix Pirate's tresure quest start location (#8564)\\n\\nTomas Slusny (2):\\n Do not count local player in nearby clan member counter\\n Add missing 'knows' to Hans beginner clue\\n\\ntrimbe (2):\\n scripts: add quest list progress script\\n quest list plugin: use progress script to trigger hiding quests\\n\\nxDemoN (3):\\n World Map: Identify Both Shield of Arrav Quest Start Points (#8442)\\n add lv32 wildy hot cold clue location\\n reword lv27 wildy hot cold clue location\\n
\\n\",\"image\":\"/img/blog/1.5.21-Release/menu.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-04-25-10-00-1.5.21-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,oEAAoE,OAAS,OAAO,KAAO,ghGAA6hG,MAAQ","file":"static/js/94.68619e77.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.21 Release\",\"description\":\"2010 menu interface style, Ammo plugin, and barrows puzzle solver\",\"author\":\"Adam\",\"body\":\"The interface styles plugin now has a "High Detail menu" option which changes\\nthe game menu to look similar to how it did after the release of RSHD:
\\n
\\nAn ammo plugin was added which adds your current ammo and count as an infobox:
\\n
\\nThe barrows plugin now has an option to show the answer to the barrows door\\npuzzles:
\\n
\\nAn option was added to the fishing plugin to make the fishing trawler time left\\nmore accurate:
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nHD healthbars now shows more visible green at very low hitpoints \\nAdd Neitiznot bridges to agility shortcuts \\nFix Yanille wall and grapple shortcut overlays indicating the wrong level\\nrequirements \\nFix clan counter to not count yourself as a "nearby clan member" \\nVarious new clues and fixes to clues added last week \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (6):\\n Add WidgetItemOverlay\\n client: modify plugins to use WidgetItemOverlay\\n api: remove Query api\\n widgetitem: associate Widget with WidgetItem\\n widgetitem overlay: allow configuring which interfaces to overlay\\n interface styles: increase padding of overridden healthbar\\n\\nBrianAllred (1):\\n npc aggro timer: Add option to hide hint overlay (#8610)\\n\\nElliott (1):\\n fishing plugin: add trawler timer\\n\\nHydrox6 (3):\\n mixins: renderWidgetLayer: skip hidden widgets\\n Add Ammo plugin (#8113)\\n ammo: fix weapon check\\n\\nJacobThompson (1):\\n Update lap counter overlay strings for clarity.\\n\\nJamy C (1):\\n Add missing Neitiznot bridges agility shortcuts\\n\\nJordan Atwood (2):\\n WorldType: Fix HIGH_RISK world type name\\n Remove PVP references to HIGH_RISK world type\\n\\nNate Brown (1):\\n slayer plugin: use addy and rune masks for metal dragon tasks\\n\\nRon Young (3):\\n skybox: calculate brightness increase in HSB format\\n api: add before menu render event\\n interface styles: add 2010 menu\\n\\nSebastiaanVanspauwen (1):\\n barrows plugin: add puzzle solver\\n\\nSergz39 (2):\\n agility shortcuts: fix Yanille wall and grapple shortcut object ids\\n Fix Pirate's tresure quest start location (#8564)\\n\\nTomas Slusny (2):\\n Do not count local player in nearby clan member counter\\n Add missing 'knows' to Hans beginner clue\\n\\ntrimbe (2):\\n scripts: add quest list progress script\\n quest list plugin: use progress script to trigger hiding quests\\n\\nxDemoN (3):\\n World Map: Identify Both Shield of Arrav Quest Start Points (#8442)\\n add lv32 wildy hot cold clue location\\n reword lv27 wildy hot cold clue location\\n
\\n\",\"image\":\"/img/blog/1.5.21-Release/menu.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/95.4eeed231.chunk.js b/static/js/95.a3e15dc4.chunk.js
similarity index 97%
rename from static/js/95.4eeed231.chunk.js
rename to static/js/95.a3e15dc4.chunk.js
index 48cd37521..83a8b3553 100644
--- a/static/js/95.4eeed231.chunk.js
+++ b/static/js/95.a3e15dc4.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[95],{370:function(e,n){e.exports={title:"1.5.22 Release",description:"Custom Cursor and Item Identification plugins, Falo the Bard clue support",author:"Jordan",body:'A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when\nhovering the client to one of a number of iconic RuneScape cursors, including the RS3 gold and\nsilver cursors, a trout, and the iconic dragon scimitar. Thanks to\n@Kruithne and @Trevor159 for making\nthis happen!
\n \n
\nHave you ever confused your herbs, seeds, or tree saplings? We\'ve added an Item Identification\nplugin to help combat that. When enabled, it will overlay the name (or abbreviated name) on the\nitem when in most non-bank interfaces. Thanks to @Hydrox6 for adding\nthis feature.
\n
\nThe Clue Scroll plugin has had support added for Falo the Bard clues, thanks to\n@Twiglet1022 .
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe loot tracker plugin now tracks Herbiboar harvest loot \nWhen completing beginner-level music clue steps, the Clue Scroll plugin will scroll your music\nlist to the requested song when first opened after reading the clue \nAn option has been added to the NPC Indicators plugin to also highlight the right-click menu\noptions of marked NPCs \nThe Slayer plugin will now highlight Mutated Zygomites sooner when they are weak and can be\nsprayed \nThe Idle Notifier plugin will now alert you should you go idle after crafting pottery \nAn icon for the battlefront teleport has been added to the World Map plugin \nThe Daily Task plugin now has an option to notify you when Thirus\'s dynamite is available for\npick-up \nThe Virtual Levels plugin now has an option to disable showing virtual total level \nBronze darts are now shown at the proper level in the Skill Calculator plugin \nFixed a bug which could cause the Ammo plugin\'s infobox to not be removed properly \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (5):\n interface styles: invalidate healthbar cache on shutdown\n travis: update dist to xenial\n travis: switch to openjdk8\n client: add custom cursor plugin\n world hopper: disable Hop-to pvp worlds from regular worlds\n\nAlexsuperfly (2):\n slayer: add \'south of\' to task regex\n slayer: add test including \'south of\'\n\nBeau (1):\n Optionally prevent virtual levels from effecting total level\n\nCrow (1):\n Fix bronze dart requirement in skillcalculator (1->10) (#8690)\n\nHydrox6 (3):\n clue plugin: add widget scroll feature\n ammo: fix the infobox not getting removed\n client: add item identification plugin\n\nTheStonedTurtle (2):\n chat history: fix pm cycling deque max size\n chat history: clear friend deque when clearing pm history\n\nTomas Slusny (2):\n Fix Mutated Zygomite fungicide weaknes threshold\n Use proxy methods for settings cursor via ClientUI\n\nTwiglet1022 (2):\n worldmap: add Battlefront teleport\n clue scroll plugin: add Falo the Bard clues\n\nbeaumitch (1):\n npcindicators: Add option to highlight NPC name in right click menu (#8673)\n\nlanghillie (1):\n daily task plugin: add Thirus\'s dynamite\n\nxDemoN (1):\n idlenotifier: add support pottery crafting (#8674)\n\nzaydsalah (1):\n Add Herbiboar support to the Loottracker (#8663)\n
\n',image:"/img/blog/1.5.22-Release/rs3-gold-cursor.png"}}}]);
-//# sourceMappingURL=95.4eeed231.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[95],{371:function(e,n){e.exports={title:"1.5.22 Release",description:"Custom Cursor and Item Identification plugins, Falo the Bard clue support",author:"Jordan",body:'A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when\nhovering the client to one of a number of iconic RuneScape cursors, including the RS3 gold and\nsilver cursors, a trout, and the iconic dragon scimitar. Thanks to\n@Kruithne and @Trevor159 for making\nthis happen!
\n \n
\nHave you ever confused your herbs, seeds, or tree saplings? We\'ve added an Item Identification\nplugin to help combat that. When enabled, it will overlay the name (or abbreviated name) on the\nitem when in most non-bank interfaces. Thanks to @Hydrox6 for adding\nthis feature.
\n
\nThe Clue Scroll plugin has had support added for Falo the Bard clues, thanks to\n@Twiglet1022 .
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe loot tracker plugin now tracks Herbiboar harvest loot \nWhen completing beginner-level music clue steps, the Clue Scroll plugin will scroll your music\nlist to the requested song when first opened after reading the clue \nAn option has been added to the NPC Indicators plugin to also highlight the right-click menu\noptions of marked NPCs \nThe Slayer plugin will now highlight Mutated Zygomites sooner when they are weak and can be\nsprayed \nThe Idle Notifier plugin will now alert you should you go idle after crafting pottery \nAn icon for the battlefront teleport has been added to the World Map plugin \nThe Daily Task plugin now has an option to notify you when Thirus\'s dynamite is available for\npick-up \nThe Virtual Levels plugin now has an option to disable showing virtual total level \nBronze darts are now shown at the proper level in the Skill Calculator plugin \nFixed a bug which could cause the Ammo plugin\'s infobox to not be removed properly \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 12 contributors this release!
\nAdam (5):\n interface styles: invalidate healthbar cache on shutdown\n travis: update dist to xenial\n travis: switch to openjdk8\n client: add custom cursor plugin\n world hopper: disable Hop-to pvp worlds from regular worlds\n\nAlexsuperfly (2):\n slayer: add \'south of\' to task regex\n slayer: add test including \'south of\'\n\nBeau (1):\n Optionally prevent virtual levels from effecting total level\n\nCrow (1):\n Fix bronze dart requirement in skillcalculator (1->10) (#8690)\n\nHydrox6 (3):\n clue plugin: add widget scroll feature\n ammo: fix the infobox not getting removed\n client: add item identification plugin\n\nTheStonedTurtle (2):\n chat history: fix pm cycling deque max size\n chat history: clear friend deque when clearing pm history\n\nTomas Slusny (2):\n Fix Mutated Zygomite fungicide weaknes threshold\n Use proxy methods for settings cursor via ClientUI\n\nTwiglet1022 (2):\n worldmap: add Battlefront teleport\n clue scroll plugin: add Falo the Bard clues\n\nbeaumitch (1):\n npcindicators: Add option to highlight NPC name in right click menu (#8673)\n\nlanghillie (1):\n daily task plugin: add Thirus\'s dynamite\n\nxDemoN (1):\n idlenotifier: add support pottery crafting (#8674)\n\nzaydsalah (1):\n Add Herbiboar support to the Loottracker (#8663)\n
\n',image:"/img/blog/1.5.22-Release/rs3-gold-cursor.png"}}}]);
+//# sourceMappingURL=95.a3e15dc4.chunk.js.map
\ No newline at end of file
diff --git a/static/js/95.4eeed231.chunk.js.map b/static/js/95.a3e15dc4.chunk.js.map
similarity index 98%
rename from static/js/95.4eeed231.chunk.js.map
rename to static/js/95.a3e15dc4.chunk.js.map
index bcac89eb8..32cc9fe6c 100644
--- a/static/js/95.4eeed231.chunk.js.map
+++ b/static/js/95.a3e15dc4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-05-03-10-00-1.5.22-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4EAA4E,OAAS,SAAS,KAAO,shIAAsjI,MAAQ","file":"static/js/95.4eeed231.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.22 Release\",\"description\":\"Custom Cursor and Item Identification plugins, Falo the Bard clue support\",\"author\":\"Jordan\",\"body\":\"A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when\\nhovering the client to one of a number of iconic RuneScape cursors, including the RS3 gold and\\nsilver cursors, a trout, and the iconic dragon scimitar. Thanks to\\n@Kruithne and @Trevor159 for making\\nthis happen!
\\n \\n
\\nHave you ever confused your herbs, seeds, or tree saplings? We've added an Item Identification\\nplugin to help combat that. When enabled, it will overlay the name (or abbreviated name) on the\\nitem when in most non-bank interfaces. Thanks to @Hydrox6 for adding\\nthis feature.
\\n
\\nThe Clue Scroll plugin has had support added for Falo the Bard clues, thanks to\\n@Twiglet1022 .
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe loot tracker plugin now tracks Herbiboar harvest loot \\nWhen completing beginner-level music clue steps, the Clue Scroll plugin will scroll your music\\nlist to the requested song when first opened after reading the clue \\nAn option has been added to the NPC Indicators plugin to also highlight the right-click menu\\noptions of marked NPCs \\nThe Slayer plugin will now highlight Mutated Zygomites sooner when they are weak and can be\\nsprayed \\nThe Idle Notifier plugin will now alert you should you go idle after crafting pottery \\nAn icon for the battlefront teleport has been added to the World Map plugin \\nThe Daily Task plugin now has an option to notify you when Thirus's dynamite is available for\\npick-up \\nThe Virtual Levels plugin now has an option to disable showing virtual total level \\nBronze darts are now shown at the proper level in the Skill Calculator plugin \\nFixed a bug which could cause the Ammo plugin's infobox to not be removed properly \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (5):\\n interface styles: invalidate healthbar cache on shutdown\\n travis: update dist to xenial\\n travis: switch to openjdk8\\n client: add custom cursor plugin\\n world hopper: disable Hop-to pvp worlds from regular worlds\\n\\nAlexsuperfly (2):\\n slayer: add 'south of' to task regex\\n slayer: add test including 'south of'\\n\\nBeau (1):\\n Optionally prevent virtual levels from effecting total level\\n\\nCrow (1):\\n Fix bronze dart requirement in skillcalculator (1->10) (#8690)\\n\\nHydrox6 (3):\\n clue plugin: add widget scroll feature\\n ammo: fix the infobox not getting removed\\n client: add item identification plugin\\n\\nTheStonedTurtle (2):\\n chat history: fix pm cycling deque max size\\n chat history: clear friend deque when clearing pm history\\n\\nTomas Slusny (2):\\n Fix Mutated Zygomite fungicide weaknes threshold\\n Use proxy methods for settings cursor via ClientUI\\n\\nTwiglet1022 (2):\\n worldmap: add Battlefront teleport\\n clue scroll plugin: add Falo the Bard clues\\n\\nbeaumitch (1):\\n npcindicators: Add option to highlight NPC name in right click menu (#8673)\\n\\nlanghillie (1):\\n daily task plugin: add Thirus's dynamite\\n\\nxDemoN (1):\\n idlenotifier: add support pottery crafting (#8674)\\n\\nzaydsalah (1):\\n Add Herbiboar support to the Loottracker (#8663)\\n
\\n\",\"image\":\"/img/blog/1.5.22-Release/rs3-gold-cursor.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-05-03-10-00-1.5.22-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,4EAA4E,OAAS,SAAS,KAAO,shIAAsjI,MAAQ","file":"static/js/95.a3e15dc4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.22 Release\",\"description\":\"Custom Cursor and Item Identification plugins, Falo the Bard clue support\",\"author\":\"Jordan\",\"body\":\"A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when\\nhovering the client to one of a number of iconic RuneScape cursors, including the RS3 gold and\\nsilver cursors, a trout, and the iconic dragon scimitar. Thanks to\\n@Kruithne and @Trevor159 for making\\nthis happen!
\\n \\n
\\nHave you ever confused your herbs, seeds, or tree saplings? We've added an Item Identification\\nplugin to help combat that. When enabled, it will overlay the name (or abbreviated name) on the\\nitem when in most non-bank interfaces. Thanks to @Hydrox6 for adding\\nthis feature.
\\n
\\nThe Clue Scroll plugin has had support added for Falo the Bard clues, thanks to\\n@Twiglet1022 .
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe loot tracker plugin now tracks Herbiboar harvest loot \\nWhen completing beginner-level music clue steps, the Clue Scroll plugin will scroll your music\\nlist to the requested song when first opened after reading the clue \\nAn option has been added to the NPC Indicators plugin to also highlight the right-click menu\\noptions of marked NPCs \\nThe Slayer plugin will now highlight Mutated Zygomites sooner when they are weak and can be\\nsprayed \\nThe Idle Notifier plugin will now alert you should you go idle after crafting pottery \\nAn icon for the battlefront teleport has been added to the World Map plugin \\nThe Daily Task plugin now has an option to notify you when Thirus's dynamite is available for\\npick-up \\nThe Virtual Levels plugin now has an option to disable showing virtual total level \\nBronze darts are now shown at the proper level in the Skill Calculator plugin \\nFixed a bug which could cause the Ammo plugin's infobox to not be removed properly \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 12 contributors this release!
\\nAdam (5):\\n interface styles: invalidate healthbar cache on shutdown\\n travis: update dist to xenial\\n travis: switch to openjdk8\\n client: add custom cursor plugin\\n world hopper: disable Hop-to pvp worlds from regular worlds\\n\\nAlexsuperfly (2):\\n slayer: add 'south of' to task regex\\n slayer: add test including 'south of'\\n\\nBeau (1):\\n Optionally prevent virtual levels from effecting total level\\n\\nCrow (1):\\n Fix bronze dart requirement in skillcalculator (1->10) (#8690)\\n\\nHydrox6 (3):\\n clue plugin: add widget scroll feature\\n ammo: fix the infobox not getting removed\\n client: add item identification plugin\\n\\nTheStonedTurtle (2):\\n chat history: fix pm cycling deque max size\\n chat history: clear friend deque when clearing pm history\\n\\nTomas Slusny (2):\\n Fix Mutated Zygomite fungicide weaknes threshold\\n Use proxy methods for settings cursor via ClientUI\\n\\nTwiglet1022 (2):\\n worldmap: add Battlefront teleport\\n clue scroll plugin: add Falo the Bard clues\\n\\nbeaumitch (1):\\n npcindicators: Add option to highlight NPC name in right click menu (#8673)\\n\\nlanghillie (1):\\n daily task plugin: add Thirus's dynamite\\n\\nxDemoN (1):\\n idlenotifier: add support pottery crafting (#8674)\\n\\nzaydsalah (1):\\n Add Herbiboar support to the Loottracker (#8663)\\n
\\n\",\"image\":\"/img/blog/1.5.22-Release/rs3-gold-cursor.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/96.6458f147.chunk.js b/static/js/96.2979ec7d.chunk.js
similarity index 97%
rename from static/js/96.6458f147.chunk.js
rename to static/js/96.2979ec7d.chunk.js
index c2c1ae45b..b9797bccc 100644
--- a/static/js/96.6458f147.chunk.js
+++ b/static/js/96.2979ec7d.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[96],{371:function(e,n){e.exports={title:"1.5.23 Release",description:"On screen xp trackers and emoji plugin",author:"Adam",body:'The xp tracker plugin can now add the xp tracker panels to the game canvas,\nallowing you move them around like any other overlay:
\n
\nAn emoji plugin was added, which when enabled, replaces common and not-so-common\nemoticons such as :)
with emoji images in game chat. You can find a complete\nlist of supported emoji and their triggers\non our wiki
\n
\nA smelting plugin was added, which works similar to the woodcutting plugin, and\nkeeps track of how many bars and cannonballs you have smelted as well as whether\nor not you are currently smelting.
\n
\nThe barrows plugin now has a prayer drain timer which tracks how long until the\nnext barrows prayer drain.
\nThe blast furnace plugin now has a foreman fee timer for those under 60\nsmithing.
\nFinally, the cooking plugin now has a wine ferment timer
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix north Arceuus Dense essence mine shortcut \nAdd option to notify before next hp regen to the regenmeter plugin \nAdd plank make to the idle notifier \nFix item overlays not appearing on the inventory with the seed vault open \nAdd missing CoX fish, and fix Leckish fish healing value in item stats plugin \nFix npcindicators highlight npc option from the previous release \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 21 contributors this release!
\n15987632 (4):\n chat message manager: don\'t send messages on tutorial island\n daily tasks plugin: tidy up if statements\n daily tasks plugin: make less config options on by default\n daily tasks plugin: fix broken if statement\n\nAbex (1):\n Remove references to zeah houses (#8692)\n\nAdam (8):\n Revert "npcindicators: Add option to highlight NPC name in right click menu (#8673)"\n npcindicators: Add option to highlight NPC name in right click menu\n cooking plugin: rename session to cooking session\n cooking plugin: add wine ferment timer\n chat: ensure queued messages are always cleared after adding\n party plugin: add partyinfo debug command\n party service: check joins are for the current party\n client: use immutablemap for maps built in class initializers\n\nAlec Mikell (1):\n Fix Hot/Cold Misthalin Location Spelling Error\n\nBrandon White (1):\n blast furance plugin: add foreman fee timer\n\nJZomerlei (1):\n itemstats: Add missing CoX fish, fix Leckish fish healing value (#8831)\n\nJohn Kryspin (1):\n fishing plugin: fix trawler timer with one tick left\n\nJordan Atwood (2):\n western diary: Fix elf pickpocket quest requirement\n game timers: Don\'t remove antipoison effects on death\n\nJustin (1):\n clue scroll plugin: fix typo in Arnold Lydspor clue (#8832)\n\nLotto (12):\n ba: use equipment ItemContainer instead of PlayerComposition\n xp tracker: display >1m exp with thousandths precision\n ui: add SplitComponent\n xp tracker: show on canvas\n xp tracker: add start and goal levels to on-canvas tracker\n xp tracker (onscreen): add toggle between displaying XP Left/XP Gained\n xp tracker: add right-click configure on on-screen trackers\n client: format enum config options as "Config Opt" instead of CONFIG_OPT\n client: remove overrides in config enums with same converted name\n client: add BufferedImage -> IndexedSprite converter to ImageUtil\n client: change ClanManager to use ImageUtil image converter\n client: add emoji plugin\n\nLucas (1):\n Aggro area: only add a timer if the time left isn\'t negative\n\nMacweese (1):\n agility shortcuts: fix north Arceuus Dense essence mine shortcut\n\nRyan H (1):\n barrows plugin: add prayer drain timer\n\nStephen Zhu (1):\n client: add smelting plugin\n\nTomas Slusny (3):\n Add options for actions left and done for on screen XP\n Add loop timer infobox\n Use LoopTimer in Barrows plugin\n\nVille Kopio (1):\n combatlevel plugin: fix prayer levels until combat level calculation\n\nVincent Sevilla (1):\n notifier: Log notifications to console in debug mode (#8805)\n\nWilliam Collishaw (1):\n Upgrade git commit id plugin from 2.2.5 to 2.2.6\n\nseandewar (2):\n constants: add GAME_TICK_LENGTH and use where needed\n regenmeter: add option to notify before next hp regen\n\nxDemoN (1):\n idlenotifier: add plank-make\n\nxdesr (2):\n widget item overlay: add seed vault inventory\n Remove gray pixel from Dragon Scimitar cursor (#8725)\n
\n',image:"/img/blog/1.5.23-Release/xptracker.png"}}}]);
-//# sourceMappingURL=96.6458f147.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[96],{372:function(e,n){e.exports={title:"1.5.23 Release",description:"On screen xp trackers and emoji plugin",author:"Adam",body:'The xp tracker plugin can now add the xp tracker panels to the game canvas,\nallowing you move them around like any other overlay:
\n
\nAn emoji plugin was added, which when enabled, replaces common and not-so-common\nemoticons such as :)
with emoji images in game chat. You can find a complete\nlist of supported emoji and their triggers\non our wiki
\n
\nA smelting plugin was added, which works similar to the woodcutting plugin, and\nkeeps track of how many bars and cannonballs you have smelted as well as whether\nor not you are currently smelting.
\n
\nThe barrows plugin now has a prayer drain timer which tracks how long until the\nnext barrows prayer drain.
\nThe blast furnace plugin now has a foreman fee timer for those under 60\nsmithing.
\nFinally, the cooking plugin now has a wine ferment timer
\nThere are also several smaller improvements and bug fixes, including:
\n\nFix north Arceuus Dense essence mine shortcut \nAdd option to notify before next hp regen to the regenmeter plugin \nAdd plank make to the idle notifier \nFix item overlays not appearing on the inventory with the seed vault open \nAdd missing CoX fish, and fix Leckish fish healing value in item stats plugin \nFix npcindicators highlight npc option from the previous release \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 21 contributors this release!
\n15987632 (4):\n chat message manager: don\'t send messages on tutorial island\n daily tasks plugin: tidy up if statements\n daily tasks plugin: make less config options on by default\n daily tasks plugin: fix broken if statement\n\nAbex (1):\n Remove references to zeah houses (#8692)\n\nAdam (8):\n Revert "npcindicators: Add option to highlight NPC name in right click menu (#8673)"\n npcindicators: Add option to highlight NPC name in right click menu\n cooking plugin: rename session to cooking session\n cooking plugin: add wine ferment timer\n chat: ensure queued messages are always cleared after adding\n party plugin: add partyinfo debug command\n party service: check joins are for the current party\n client: use immutablemap for maps built in class initializers\n\nAlec Mikell (1):\n Fix Hot/Cold Misthalin Location Spelling Error\n\nBrandon White (1):\n blast furance plugin: add foreman fee timer\n\nJZomerlei (1):\n itemstats: Add missing CoX fish, fix Leckish fish healing value (#8831)\n\nJohn Kryspin (1):\n fishing plugin: fix trawler timer with one tick left\n\nJordan Atwood (2):\n western diary: Fix elf pickpocket quest requirement\n game timers: Don\'t remove antipoison effects on death\n\nJustin (1):\n clue scroll plugin: fix typo in Arnold Lydspor clue (#8832)\n\nLotto (12):\n ba: use equipment ItemContainer instead of PlayerComposition\n xp tracker: display >1m exp with thousandths precision\n ui: add SplitComponent\n xp tracker: show on canvas\n xp tracker: add start and goal levels to on-canvas tracker\n xp tracker (onscreen): add toggle between displaying XP Left/XP Gained\n xp tracker: add right-click configure on on-screen trackers\n client: format enum config options as "Config Opt" instead of CONFIG_OPT\n client: remove overrides in config enums with same converted name\n client: add BufferedImage -> IndexedSprite converter to ImageUtil\n client: change ClanManager to use ImageUtil image converter\n client: add emoji plugin\n\nLucas (1):\n Aggro area: only add a timer if the time left isn\'t negative\n\nMacweese (1):\n agility shortcuts: fix north Arceuus Dense essence mine shortcut\n\nRyan H (1):\n barrows plugin: add prayer drain timer\n\nStephen Zhu (1):\n client: add smelting plugin\n\nTomas Slusny (3):\n Add options for actions left and done for on screen XP\n Add loop timer infobox\n Use LoopTimer in Barrows plugin\n\nVille Kopio (1):\n combatlevel plugin: fix prayer levels until combat level calculation\n\nVincent Sevilla (1):\n notifier: Log notifications to console in debug mode (#8805)\n\nWilliam Collishaw (1):\n Upgrade git commit id plugin from 2.2.5 to 2.2.6\n\nseandewar (2):\n constants: add GAME_TICK_LENGTH and use where needed\n regenmeter: add option to notify before next hp regen\n\nxDemoN (1):\n idlenotifier: add plank-make\n\nxdesr (2):\n widget item overlay: add seed vault inventory\n Remove gray pixel from Dragon Scimitar cursor (#8725)\n
\n',image:"/img/blog/1.5.23-Release/xptracker.png"}}}]);
+//# sourceMappingURL=96.2979ec7d.chunk.js.map
\ No newline at end of file
diff --git a/static/js/96.6458f147.chunk.js.map b/static/js/96.2979ec7d.chunk.js.map
similarity index 98%
rename from static/js/96.6458f147.chunk.js.map
rename to static/js/96.2979ec7d.chunk.js.map
index 714f569a2..ac0297e7e 100644
--- a/static/js/96.6458f147.chunk.js.map
+++ b/static/js/96.2979ec7d.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-05-16-10-00-1.5.23-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yCAAyC,OAAS,OAAO,KAAO,u3JAAs4J,MAAQ","file":"static/js/96.6458f147.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.23 Release\",\"description\":\"On screen xp trackers and emoji plugin\",\"author\":\"Adam\",\"body\":\"The xp tracker plugin can now add the xp tracker panels to the game canvas,\\nallowing you move them around like any other overlay:
\\n
\\nAn emoji plugin was added, which when enabled, replaces common and not-so-common\\nemoticons such as :)
with emoji images in game chat. You can find a complete\\nlist of supported emoji and their triggers\\non our wiki
\\n
\\nA smelting plugin was added, which works similar to the woodcutting plugin, and\\nkeeps track of how many bars and cannonballs you have smelted as well as whether\\nor not you are currently smelting.
\\n
\\nThe barrows plugin now has a prayer drain timer which tracks how long until the\\nnext barrows prayer drain.
\\nThe blast furnace plugin now has a foreman fee timer for those under 60\\nsmithing.
\\nFinally, the cooking plugin now has a wine ferment timer
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix north Arceuus Dense essence mine shortcut \\nAdd option to notify before next hp regen to the regenmeter plugin \\nAdd plank make to the idle notifier \\nFix item overlays not appearing on the inventory with the seed vault open \\nAdd missing CoX fish, and fix Leckish fish healing value in item stats plugin \\nFix npcindicators highlight npc option from the previous release \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 21 contributors this release!
\\n15987632 (4):\\n chat message manager: don't send messages on tutorial island\\n daily tasks plugin: tidy up if statements\\n daily tasks plugin: make less config options on by default\\n daily tasks plugin: fix broken if statement\\n\\nAbex (1):\\n Remove references to zeah houses (#8692)\\n\\nAdam (8):\\n Revert "npcindicators: Add option to highlight NPC name in right click menu (#8673)"\\n npcindicators: Add option to highlight NPC name in right click menu\\n cooking plugin: rename session to cooking session\\n cooking plugin: add wine ferment timer\\n chat: ensure queued messages are always cleared after adding\\n party plugin: add partyinfo debug command\\n party service: check joins are for the current party\\n client: use immutablemap for maps built in class initializers\\n\\nAlec Mikell (1):\\n Fix Hot/Cold Misthalin Location Spelling Error\\n\\nBrandon White (1):\\n blast furance plugin: add foreman fee timer\\n\\nJZomerlei (1):\\n itemstats: Add missing CoX fish, fix Leckish fish healing value (#8831)\\n\\nJohn Kryspin (1):\\n fishing plugin: fix trawler timer with one tick left\\n\\nJordan Atwood (2):\\n western diary: Fix elf pickpocket quest requirement\\n game timers: Don't remove antipoison effects on death\\n\\nJustin (1):\\n clue scroll plugin: fix typo in Arnold Lydspor clue (#8832)\\n\\nLotto (12):\\n ba: use equipment ItemContainer instead of PlayerComposition\\n xp tracker: display >1m exp with thousandths precision\\n ui: add SplitComponent\\n xp tracker: show on canvas\\n xp tracker: add start and goal levels to on-canvas tracker\\n xp tracker (onscreen): add toggle between displaying XP Left/XP Gained\\n xp tracker: add right-click configure on on-screen trackers\\n client: format enum config options as "Config Opt" instead of CONFIG_OPT\\n client: remove overrides in config enums with same converted name\\n client: add BufferedImage -> IndexedSprite converter to ImageUtil\\n client: change ClanManager to use ImageUtil image converter\\n client: add emoji plugin\\n\\nLucas (1):\\n Aggro area: only add a timer if the time left isn't negative\\n\\nMacweese (1):\\n agility shortcuts: fix north Arceuus Dense essence mine shortcut\\n\\nRyan H (1):\\n barrows plugin: add prayer drain timer\\n\\nStephen Zhu (1):\\n client: add smelting plugin\\n\\nTomas Slusny (3):\\n Add options for actions left and done for on screen XP\\n Add loop timer infobox\\n Use LoopTimer in Barrows plugin\\n\\nVille Kopio (1):\\n combatlevel plugin: fix prayer levels until combat level calculation\\n\\nVincent Sevilla (1):\\n notifier: Log notifications to console in debug mode (#8805)\\n\\nWilliam Collishaw (1):\\n Upgrade git commit id plugin from 2.2.5 to 2.2.6\\n\\nseandewar (2):\\n constants: add GAME_TICK_LENGTH and use where needed\\n regenmeter: add option to notify before next hp regen\\n\\nxDemoN (1):\\n idlenotifier: add plank-make\\n\\nxdesr (2):\\n widget item overlay: add seed vault inventory\\n Remove gray pixel from Dragon Scimitar cursor (#8725)\\n
\\n\",\"image\":\"/img/blog/1.5.23-Release/xptracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-05-16-10-00-1.5.23-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,yCAAyC,OAAS,OAAO,KAAO,u3JAAs4J,MAAQ","file":"static/js/96.2979ec7d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.23 Release\",\"description\":\"On screen xp trackers and emoji plugin\",\"author\":\"Adam\",\"body\":\"The xp tracker plugin can now add the xp tracker panels to the game canvas,\\nallowing you move them around like any other overlay:
\\n
\\nAn emoji plugin was added, which when enabled, replaces common and not-so-common\\nemoticons such as :)
with emoji images in game chat. You can find a complete\\nlist of supported emoji and their triggers\\non our wiki
\\n
\\nA smelting plugin was added, which works similar to the woodcutting plugin, and\\nkeeps track of how many bars and cannonballs you have smelted as well as whether\\nor not you are currently smelting.
\\n
\\nThe barrows plugin now has a prayer drain timer which tracks how long until the\\nnext barrows prayer drain.
\\nThe blast furnace plugin now has a foreman fee timer for those under 60\\nsmithing.
\\nFinally, the cooking plugin now has a wine ferment timer
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nFix north Arceuus Dense essence mine shortcut \\nAdd option to notify before next hp regen to the regenmeter plugin \\nAdd plank make to the idle notifier \\nFix item overlays not appearing on the inventory with the seed vault open \\nAdd missing CoX fish, and fix Leckish fish healing value in item stats plugin \\nFix npcindicators highlight npc option from the previous release \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 21 contributors this release!
\\n15987632 (4):\\n chat message manager: don't send messages on tutorial island\\n daily tasks plugin: tidy up if statements\\n daily tasks plugin: make less config options on by default\\n daily tasks plugin: fix broken if statement\\n\\nAbex (1):\\n Remove references to zeah houses (#8692)\\n\\nAdam (8):\\n Revert "npcindicators: Add option to highlight NPC name in right click menu (#8673)"\\n npcindicators: Add option to highlight NPC name in right click menu\\n cooking plugin: rename session to cooking session\\n cooking plugin: add wine ferment timer\\n chat: ensure queued messages are always cleared after adding\\n party plugin: add partyinfo debug command\\n party service: check joins are for the current party\\n client: use immutablemap for maps built in class initializers\\n\\nAlec Mikell (1):\\n Fix Hot/Cold Misthalin Location Spelling Error\\n\\nBrandon White (1):\\n blast furance plugin: add foreman fee timer\\n\\nJZomerlei (1):\\n itemstats: Add missing CoX fish, fix Leckish fish healing value (#8831)\\n\\nJohn Kryspin (1):\\n fishing plugin: fix trawler timer with one tick left\\n\\nJordan Atwood (2):\\n western diary: Fix elf pickpocket quest requirement\\n game timers: Don't remove antipoison effects on death\\n\\nJustin (1):\\n clue scroll plugin: fix typo in Arnold Lydspor clue (#8832)\\n\\nLotto (12):\\n ba: use equipment ItemContainer instead of PlayerComposition\\n xp tracker: display >1m exp with thousandths precision\\n ui: add SplitComponent\\n xp tracker: show on canvas\\n xp tracker: add start and goal levels to on-canvas tracker\\n xp tracker (onscreen): add toggle between displaying XP Left/XP Gained\\n xp tracker: add right-click configure on on-screen trackers\\n client: format enum config options as "Config Opt" instead of CONFIG_OPT\\n client: remove overrides in config enums with same converted name\\n client: add BufferedImage -> IndexedSprite converter to ImageUtil\\n client: change ClanManager to use ImageUtil image converter\\n client: add emoji plugin\\n\\nLucas (1):\\n Aggro area: only add a timer if the time left isn't negative\\n\\nMacweese (1):\\n agility shortcuts: fix north Arceuus Dense essence mine shortcut\\n\\nRyan H (1):\\n barrows plugin: add prayer drain timer\\n\\nStephen Zhu (1):\\n client: add smelting plugin\\n\\nTomas Slusny (3):\\n Add options for actions left and done for on screen XP\\n Add loop timer infobox\\n Use LoopTimer in Barrows plugin\\n\\nVille Kopio (1):\\n combatlevel plugin: fix prayer levels until combat level calculation\\n\\nVincent Sevilla (1):\\n notifier: Log notifications to console in debug mode (#8805)\\n\\nWilliam Collishaw (1):\\n Upgrade git commit id plugin from 2.2.5 to 2.2.6\\n\\nseandewar (2):\\n constants: add GAME_TICK_LENGTH and use where needed\\n regenmeter: add option to notify before next hp regen\\n\\nxDemoN (1):\\n idlenotifier: add plank-make\\n\\nxdesr (2):\\n widget item overlay: add seed vault inventory\\n Remove gray pixel from Dragon Scimitar cursor (#8725)\\n
\\n\",\"image\":\"/img/blog/1.5.23-Release/xptracker.png\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/97.4babdf4d.chunk.js b/static/js/97.168452c4.chunk.js
similarity index 98%
rename from static/js/97.4babdf4d.chunk.js
rename to static/js/97.168452c4.chunk.js
index 4467d0303..2cb970732 100644
--- a/static/js/97.4babdf4d.chunk.js
+++ b/static/js/97.168452c4.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[97],{372:function(e,n){e.exports={title:"1.5.25 Release",description:"Stash unit build status, mobile-style clan tab chat, and music list searching",author:"Jordan",body:'The Clue Scroll plugin will now display\nwhether you have built the STASH unit for emote clues and will mark the tile of nearby STASH units\nwhen travelling to complete your clue. Thanks to @hex-agon for this\ncontribution!
\n
\nThe Clan Chat plugin now offers an option to\nallow chat typed in the Clan tab to be sent to your clan chat without the need for your message to\nstart with /
, just like on mobile!
\nA Music List plugin has been added, which\nadds similar functionality as is found in the\nQuest List plugin , that is ability to show\nonly unlocked or locked songs, and search functionality. Thanks to\n@achencoms for adding this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nPlugin names in the plugin list panel now display a pop-up menu when clicked, linking directly to\ntheir wiki pages \nThe\nSpecial Attack Counter plugin \nno longer resets recorded special attacks when interacting with NPCs which cannot be attacked \nThe Cooking plugin properly displays the time\nto fermentation when making a full inventory of wines \nThe Clue Scroll plugin will now display\nsolutions for\nbeginner-level map clues \nA bug which would cause the special attack bar to not be updated when hide auto retaliate was on has been fixed \nThe World Map plugin now shows the location\nof the Camulet teleport \nAn option has been added to the\nMenu Entry Swapper plugin to swap\n"Send-parcel" and "Quick-pay(100)" for quick and easy access to the hardwood grove in Tai Bwo\nWannai \nThe Chat Filter plugin now has options to\nprevent filtering messages sent by friends and clan members, and will now never filter messages from yourself \nThe Opponent Information plugin \ncan now display both HP value and percent at once on the displayed opponent HP bar \nThe Clue Scroll, Time Tracking, and World Map plugins have had updates to reflect last week\'s\nHosidius rework \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (6):\n quest list plugin: fix removing widets on shutdown\n xtea service: fix bulk query returning duplicates\n clanchat plugin: add clan tab chat option\n client: fix spec bar not updating with hide auto retaliate on\n spec counter: ignore non attacakble npcs\n clue plugin: update Hosidius clue hint from rework\n\nAustin Bryant (1):\n cooking plugin: fix wine fermentation timer to begin at appropriate time\n\nCistoran (1):\n worldmap: update Xeric\'s Glade teleport location\n\nHexagon (1):\n clue plugin: add stash unit built status to emote clue overlay\n\nHydrox6 (2):\n clues: add support for beginner maps\n Fix Hosidius Easy Cryptic clue after rework (#8940)\n\nJacky Liang (1):\n Add camulet teleport icon to worldmap (#8934)\n\nJared N (1):\n menu swapper: add Hardwood Grove menu swap option\n\nJordan Atwood (3):\n PluginManagerTest: Ensure config keyNames are not duplicated\n plugins panel: Add wiki link to name labels\n attack styles: Attach spec bar redraw listener to weapon text\n\nMax Weber (5):\n runelite-api: Correct WallObject documentation\n mixins: Correct WallObject\'s clickbox\n mixins: Correct DecorativeObject\'s clickbox\n timetracking: Update farming patches for the Hosidius rework\n timetracking: Don\'t crash when seeing a garbage varbit value\n\nTomas Slusny (1):\n Add support for center label to ProgressBarComponent\n\nachencoms (1):\n client: add music list plugin and search filter\n\nosrs-music-map (1):\n chat filter: add options to filter friends and clan members\n\nseandewar (1):\n opponentinfo: add option to show both hp value and percent\n\nxDemoN (1):\n Fix amulet of fury spelling error in ItemMapping.java (#8885)\n
\n',image:"/img/blog/1.5.25-Release/stash-unit-status.gif"}}}]);
-//# sourceMappingURL=97.4babdf4d.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[97],{373:function(e,n){e.exports={title:"1.5.25 Release",description:"Stash unit build status, mobile-style clan tab chat, and music list searching",author:"Jordan",body:'The Clue Scroll plugin will now display\nwhether you have built the STASH unit for emote clues and will mark the tile of nearby STASH units\nwhen travelling to complete your clue. Thanks to @hex-agon for this\ncontribution!
\n
\nThe Clan Chat plugin now offers an option to\nallow chat typed in the Clan tab to be sent to your clan chat without the need for your message to\nstart with /
, just like on mobile!
\nA Music List plugin has been added, which\nadds similar functionality as is found in the\nQuest List plugin , that is ability to show\nonly unlocked or locked songs, and search functionality. Thanks to\n@achencoms for adding this feature.
\n
\nThere are also several smaller improvements and bug fixes, including:
\n\nPlugin names in the plugin list panel now display a pop-up menu when clicked, linking directly to\ntheir wiki pages \nThe\nSpecial Attack Counter plugin \nno longer resets recorded special attacks when interacting with NPCs which cannot be attacked \nThe Cooking plugin properly displays the time\nto fermentation when making a full inventory of wines \nThe Clue Scroll plugin will now display\nsolutions for\nbeginner-level map clues \nA bug which would cause the special attack bar to not be updated when hide auto retaliate was on has been fixed \nThe World Map plugin now shows the location\nof the Camulet teleport \nAn option has been added to the\nMenu Entry Swapper plugin to swap\n"Send-parcel" and "Quick-pay(100)" for quick and easy access to the hardwood grove in Tai Bwo\nWannai \nThe Chat Filter plugin now has options to\nprevent filtering messages sent by friends and clan members, and will now never filter messages from yourself \nThe Opponent Information plugin \ncan now display both HP value and percent at once on the displayed opponent HP bar \nThe Clue Scroll, Time Tracking, and World Map plugins have had updates to reflect last week\'s\nHosidius rework \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 14 contributors this release!
\nAdam (6):\n quest list plugin: fix removing widets on shutdown\n xtea service: fix bulk query returning duplicates\n clanchat plugin: add clan tab chat option\n client: fix spec bar not updating with hide auto retaliate on\n spec counter: ignore non attacakble npcs\n clue plugin: update Hosidius clue hint from rework\n\nAustin Bryant (1):\n cooking plugin: fix wine fermentation timer to begin at appropriate time\n\nCistoran (1):\n worldmap: update Xeric\'s Glade teleport location\n\nHexagon (1):\n clue plugin: add stash unit built status to emote clue overlay\n\nHydrox6 (2):\n clues: add support for beginner maps\n Fix Hosidius Easy Cryptic clue after rework (#8940)\n\nJacky Liang (1):\n Add camulet teleport icon to worldmap (#8934)\n\nJared N (1):\n menu swapper: add Hardwood Grove menu swap option\n\nJordan Atwood (3):\n PluginManagerTest: Ensure config keyNames are not duplicated\n plugins panel: Add wiki link to name labels\n attack styles: Attach spec bar redraw listener to weapon text\n\nMax Weber (5):\n runelite-api: Correct WallObject documentation\n mixins: Correct WallObject\'s clickbox\n mixins: Correct DecorativeObject\'s clickbox\n timetracking: Update farming patches for the Hosidius rework\n timetracking: Don\'t crash when seeing a garbage varbit value\n\nTomas Slusny (1):\n Add support for center label to ProgressBarComponent\n\nachencoms (1):\n client: add music list plugin and search filter\n\nosrs-music-map (1):\n chat filter: add options to filter friends and clan members\n\nseandewar (1):\n opponentinfo: add option to show both hp value and percent\n\nxDemoN (1):\n Fix amulet of fury spelling error in ItemMapping.java (#8885)\n
\n',image:"/img/blog/1.5.25-Release/stash-unit-status.gif"}}}]);
+//# sourceMappingURL=97.168452c4.chunk.js.map
\ No newline at end of file
diff --git a/static/js/97.4babdf4d.chunk.js.map b/static/js/97.168452c4.chunk.js.map
similarity index 98%
rename from static/js/97.4babdf4d.chunk.js.map
rename to static/js/97.168452c4.chunk.js.map
index 066e96924..a5b556290 100644
--- a/static/js/97.4babdf4d.chunk.js.map
+++ b/static/js/97.168452c4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-05-30-10-00-1.5.25-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,SAAS,KAAO,62KAAo8K,MAAQ","file":"static/js/97.4babdf4d.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.25 Release\",\"description\":\"Stash unit build status, mobile-style clan tab chat, and music list searching\",\"author\":\"Jordan\",\"body\":\"The Clue Scroll plugin will now display\\nwhether you have built the STASH unit for emote clues and will mark the tile of nearby STASH units\\nwhen travelling to complete your clue. Thanks to @hex-agon for this\\ncontribution!
\\n
\\nThe Clan Chat plugin now offers an option to\\nallow chat typed in the Clan tab to be sent to your clan chat without the need for your message to\\nstart with /
, just like on mobile!
\\nA Music List plugin has been added, which\\nadds similar functionality as is found in the\\nQuest List plugin , that is ability to show\\nonly unlocked or locked songs, and search functionality. Thanks to\\n@achencoms for adding this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nPlugin names in the plugin list panel now display a pop-up menu when clicked, linking directly to\\ntheir wiki pages \\nThe\\nSpecial Attack Counter plugin \\nno longer resets recorded special attacks when interacting with NPCs which cannot be attacked \\nThe Cooking plugin properly displays the time\\nto fermentation when making a full inventory of wines \\nThe Clue Scroll plugin will now display\\nsolutions for\\nbeginner-level map clues \\nA bug which would cause the special attack bar to not be updated when hide auto retaliate was on has been fixed \\nThe World Map plugin now shows the location\\nof the Camulet teleport \\nAn option has been added to the\\nMenu Entry Swapper plugin to swap\\n"Send-parcel" and "Quick-pay(100)" for quick and easy access to the hardwood grove in Tai Bwo\\nWannai \\nThe Chat Filter plugin now has options to\\nprevent filtering messages sent by friends and clan members, and will now never filter messages from yourself \\nThe Opponent Information plugin \\ncan now display both HP value and percent at once on the displayed opponent HP bar \\nThe Clue Scroll, Time Tracking, and World Map plugins have had updates to reflect last week's\\nHosidius rework \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (6):\\n quest list plugin: fix removing widets on shutdown\\n xtea service: fix bulk query returning duplicates\\n clanchat plugin: add clan tab chat option\\n client: fix spec bar not updating with hide auto retaliate on\\n spec counter: ignore non attacakble npcs\\n clue plugin: update Hosidius clue hint from rework\\n\\nAustin Bryant (1):\\n cooking plugin: fix wine fermentation timer to begin at appropriate time\\n\\nCistoran (1):\\n worldmap: update Xeric's Glade teleport location\\n\\nHexagon (1):\\n clue plugin: add stash unit built status to emote clue overlay\\n\\nHydrox6 (2):\\n clues: add support for beginner maps\\n Fix Hosidius Easy Cryptic clue after rework (#8940)\\n\\nJacky Liang (1):\\n Add camulet teleport icon to worldmap (#8934)\\n\\nJared N (1):\\n menu swapper: add Hardwood Grove menu swap option\\n\\nJordan Atwood (3):\\n PluginManagerTest: Ensure config keyNames are not duplicated\\n plugins panel: Add wiki link to name labels\\n attack styles: Attach spec bar redraw listener to weapon text\\n\\nMax Weber (5):\\n runelite-api: Correct WallObject documentation\\n mixins: Correct WallObject's clickbox\\n mixins: Correct DecorativeObject's clickbox\\n timetracking: Update farming patches for the Hosidius rework\\n timetracking: Don't crash when seeing a garbage varbit value\\n\\nTomas Slusny (1):\\n Add support for center label to ProgressBarComponent\\n\\nachencoms (1):\\n client: add music list plugin and search filter\\n\\nosrs-music-map (1):\\n chat filter: add options to filter friends and clan members\\n\\nseandewar (1):\\n opponentinfo: add option to show both hp value and percent\\n\\nxDemoN (1):\\n Fix amulet of fury spelling error in ItemMapping.java (#8885)\\n
\\n\",\"image\":\"/img/blog/1.5.25-Release/stash-unit-status.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-05-30-10-00-1.5.25-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,gFAAgF,OAAS,SAAS,KAAO,62KAAo8K,MAAQ","file":"static/js/97.168452c4.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.25 Release\",\"description\":\"Stash unit build status, mobile-style clan tab chat, and music list searching\",\"author\":\"Jordan\",\"body\":\"The Clue Scroll plugin will now display\\nwhether you have built the STASH unit for emote clues and will mark the tile of nearby STASH units\\nwhen travelling to complete your clue. Thanks to @hex-agon for this\\ncontribution!
\\n
\\nThe Clan Chat plugin now offers an option to\\nallow chat typed in the Clan tab to be sent to your clan chat without the need for your message to\\nstart with /
, just like on mobile!
\\nA Music List plugin has been added, which\\nadds similar functionality as is found in the\\nQuest List plugin , that is ability to show\\nonly unlocked or locked songs, and search functionality. Thanks to\\n@achencoms for adding this feature.
\\n
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nPlugin names in the plugin list panel now display a pop-up menu when clicked, linking directly to\\ntheir wiki pages \\nThe\\nSpecial Attack Counter plugin \\nno longer resets recorded special attacks when interacting with NPCs which cannot be attacked \\nThe Cooking plugin properly displays the time\\nto fermentation when making a full inventory of wines \\nThe Clue Scroll plugin will now display\\nsolutions for\\nbeginner-level map clues \\nA bug which would cause the special attack bar to not be updated when hide auto retaliate was on has been fixed \\nThe World Map plugin now shows the location\\nof the Camulet teleport \\nAn option has been added to the\\nMenu Entry Swapper plugin to swap\\n"Send-parcel" and "Quick-pay(100)" for quick and easy access to the hardwood grove in Tai Bwo\\nWannai \\nThe Chat Filter plugin now has options to\\nprevent filtering messages sent by friends and clan members, and will now never filter messages from yourself \\nThe Opponent Information plugin \\ncan now display both HP value and percent at once on the displayed opponent HP bar \\nThe Clue Scroll, Time Tracking, and World Map plugins have had updates to reflect last week's\\nHosidius rework \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 14 contributors this release!
\\nAdam (6):\\n quest list plugin: fix removing widets on shutdown\\n xtea service: fix bulk query returning duplicates\\n clanchat plugin: add clan tab chat option\\n client: fix spec bar not updating with hide auto retaliate on\\n spec counter: ignore non attacakble npcs\\n clue plugin: update Hosidius clue hint from rework\\n\\nAustin Bryant (1):\\n cooking plugin: fix wine fermentation timer to begin at appropriate time\\n\\nCistoran (1):\\n worldmap: update Xeric's Glade teleport location\\n\\nHexagon (1):\\n clue plugin: add stash unit built status to emote clue overlay\\n\\nHydrox6 (2):\\n clues: add support for beginner maps\\n Fix Hosidius Easy Cryptic clue after rework (#8940)\\n\\nJacky Liang (1):\\n Add camulet teleport icon to worldmap (#8934)\\n\\nJared N (1):\\n menu swapper: add Hardwood Grove menu swap option\\n\\nJordan Atwood (3):\\n PluginManagerTest: Ensure config keyNames are not duplicated\\n plugins panel: Add wiki link to name labels\\n attack styles: Attach spec bar redraw listener to weapon text\\n\\nMax Weber (5):\\n runelite-api: Correct WallObject documentation\\n mixins: Correct WallObject's clickbox\\n mixins: Correct DecorativeObject's clickbox\\n timetracking: Update farming patches for the Hosidius rework\\n timetracking: Don't crash when seeing a garbage varbit value\\n\\nTomas Slusny (1):\\n Add support for center label to ProgressBarComponent\\n\\nachencoms (1):\\n client: add music list plugin and search filter\\n\\nosrs-music-map (1):\\n chat filter: add options to filter friends and clan members\\n\\nseandewar (1):\\n opponentinfo: add option to show both hp value and percent\\n\\nxDemoN (1):\\n Fix amulet of fury spelling error in ItemMapping.java (#8885)\\n
\\n\",\"image\":\"/img/blog/1.5.25-Release/stash-unit-status.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/98.9e189f61.chunk.js b/static/js/98.34346848.chunk.js
similarity index 97%
rename from static/js/98.9e189f61.chunk.js
rename to static/js/98.34346848.chunk.js
index e06e36277..53d553889 100644
--- a/static/js/98.9e189f61.chunk.js
+++ b/static/js/98.34346848.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[98],{373:function(e,n){e.exports={title:"1.5.26 Release",description:"Mining rock respawn timer, inventory grid, and F-key remapping",author:"Adam",body:'A mining plugin has been added which shows respawn times for rocks.
\n
\nAn inventory grid plugin was added which will overlay a grid of each item slot\nin the inventory when an item is dragged, aiding with rearranging inventory\nitems.
\n
\nThe WASD plugin has been renamed to the Key Remapping plugin. If you had it on\nprior to the update you will need to turn it on again. It now also supports\nremapping the number keys (0-9
, -
, and =
) to the F keys, to aid Mac users.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe wine ferment timer was fixed, again, and actually works now \nThe Barbarian Assault plugin was updated for last week\'s game update and now\ncorrectly shows the wave time again \nFix the agility plugin not highlighting the Al-Kharid zipline \nFix the clue plugin to identify the correct stash unit near the Exam Centre \nThe authenticator code can now be pasted into the login screen, similar to\nusername and password \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 7 contributors this release!
\nAdam (19):\n Revert "cooking plugin: fix wine fermentation timer to begin at appropriate time"\n Revert "cooking plugin: add wine ferment timer"\n Revert "cooking plugin: rename session to cooking session"\n cooking plugin: add wine ferment timer\n mixins: fix game object events to not fire for actors, projectiles, and graphic objects\n client: add mining plugin\n ba: update to no longer use icons to determine role\n ba: fix wave timer announce from exiting a tutorial\n ba: null game time after the game has been finished\n music plugin: delete all child widgets before adding buttons\n quest plugin: delete all child widgets before adding buttons\n wasd plugin: rename to keyremapping plugin\n keyremapping plugin: add F-key remapping\n keyremapping: fix keys getting stuck from map loading\n keyremappinig: replace some lambdas with method references\n achievement diary: fix legends guild jewllery task\n api: modify Widget.getWidgetItem to return widget items when no item exists\n client: add inventory grid plugin\n inventory grid: add delay before activating overlay\n\nHydrox6 (1):\n agility: Fix highlighting of Al Kharid zip line\n\nJordan Atwood (1):\n HotColdLocation: Replace nbsp with normal spaces\n\nRon Young (2):\n mixins: correct widget item bounds location for if1\n client: readjust widget item overlay positions for modified widget item bounds\n\nTomas Slusny (3):\n Expose loginIndex and otp fields from runescape client\n Add LOGIN_SCREEN_AUTHENTICATOR game state\n Add support for pasting authenticator code on login screen\n\nWilliam Collishaw (2):\n Remove redundant subString endindex .length() calls\n Replace redundant StringBuilder append String.subString with append CharSequence\n\nxDemoN (2):\n Fix numulite buy limit in GE plugin (#8962)\n Cluescrolls: Swap STASH Units for Exam Centre Emote Clues (#8963)\n
\n',image:"/img/blog/1.5.26-Release/mining.gif"}}}]);
-//# sourceMappingURL=98.9e189f61.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[98],{374:function(e,n){e.exports={title:"1.5.26 Release",description:"Mining rock respawn timer, inventory grid, and F-key remapping",author:"Adam",body:'A mining plugin has been added which shows respawn times for rocks.
\n
\nAn inventory grid plugin was added which will overlay a grid of each item slot\nin the inventory when an item is dragged, aiding with rearranging inventory\nitems.
\n
\nThe WASD plugin has been renamed to the Key Remapping plugin. If you had it on\nprior to the update you will need to turn it on again. It now also supports\nremapping the number keys (0-9
, -
, and =
) to the F keys, to aid Mac users.
\nThere are also several smaller improvements and bug fixes, including:
\n\nThe wine ferment timer was fixed, again, and actually works now \nThe Barbarian Assault plugin was updated for last week\'s game update and now\ncorrectly shows the wave time again \nFix the agility plugin not highlighting the Al-Kharid zipline \nFix the clue plugin to identify the correct stash unit near the Exam Centre \nThe authenticator code can now be pasted into the login screen, similar to\nusername and password \n \nEnjoy!
\n- Adam
\nNew commits \nWe had 7 contributors this release!
\nAdam (19):\n Revert "cooking plugin: fix wine fermentation timer to begin at appropriate time"\n Revert "cooking plugin: add wine ferment timer"\n Revert "cooking plugin: rename session to cooking session"\n cooking plugin: add wine ferment timer\n mixins: fix game object events to not fire for actors, projectiles, and graphic objects\n client: add mining plugin\n ba: update to no longer use icons to determine role\n ba: fix wave timer announce from exiting a tutorial\n ba: null game time after the game has been finished\n music plugin: delete all child widgets before adding buttons\n quest plugin: delete all child widgets before adding buttons\n wasd plugin: rename to keyremapping plugin\n keyremapping plugin: add F-key remapping\n keyremapping: fix keys getting stuck from map loading\n keyremappinig: replace some lambdas with method references\n achievement diary: fix legends guild jewllery task\n api: modify Widget.getWidgetItem to return widget items when no item exists\n client: add inventory grid plugin\n inventory grid: add delay before activating overlay\n\nHydrox6 (1):\n agility: Fix highlighting of Al Kharid zip line\n\nJordan Atwood (1):\n HotColdLocation: Replace nbsp with normal spaces\n\nRon Young (2):\n mixins: correct widget item bounds location for if1\n client: readjust widget item overlay positions for modified widget item bounds\n\nTomas Slusny (3):\n Expose loginIndex and otp fields from runescape client\n Add LOGIN_SCREEN_AUTHENTICATOR game state\n Add support for pasting authenticator code on login screen\n\nWilliam Collishaw (2):\n Remove redundant subString endindex .length() calls\n Replace redundant StringBuilder append String.subString with append CharSequence\n\nxDemoN (2):\n Fix numulite buy limit in GE plugin (#8962)\n Cluescrolls: Swap STASH Units for Exam Centre Emote Clues (#8963)\n
\n',image:"/img/blog/1.5.26-Release/mining.gif"}}}]);
+//# sourceMappingURL=98.34346848.chunk.js.map
\ No newline at end of file
diff --git a/static/js/98.9e189f61.chunk.js.map b/static/js/98.34346848.chunk.js.map
similarity index 98%
rename from static/js/98.9e189f61.chunk.js.map
rename to static/js/98.34346848.chunk.js.map
index 839c4ef7f..0944ae5ed 100644
--- a/static/js/98.9e189f61.chunk.js.map
+++ b/static/js/98.34346848.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-06-06-10-00-1.5.26-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iEAAiE,OAAS,OAAO,KAAO,wzGAA+zG,MAAQ","file":"static/js/98.9e189f61.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.26 Release\",\"description\":\"Mining rock respawn timer, inventory grid, and F-key remapping\",\"author\":\"Adam\",\"body\":\"A mining plugin has been added which shows respawn times for rocks.
\\n
\\nAn inventory grid plugin was added which will overlay a grid of each item slot\\nin the inventory when an item is dragged, aiding with rearranging inventory\\nitems.
\\n
\\nThe WASD plugin has been renamed to the Key Remapping plugin. If you had it on\\nprior to the update you will need to turn it on again. It now also supports\\nremapping the number keys (0-9
, -
, and =
) to the F keys, to aid Mac users.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe wine ferment timer was fixed, again, and actually works now \\nThe Barbarian Assault plugin was updated for last week's game update and now\\ncorrectly shows the wave time again \\nFix the agility plugin not highlighting the Al-Kharid zipline \\nFix the clue plugin to identify the correct stash unit near the Exam Centre \\nThe authenticator code can now be pasted into the login screen, similar to\\nusername and password \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 7 contributors this release!
\\nAdam (19):\\n Revert "cooking plugin: fix wine fermentation timer to begin at appropriate time"\\n Revert "cooking plugin: add wine ferment timer"\\n Revert "cooking plugin: rename session to cooking session"\\n cooking plugin: add wine ferment timer\\n mixins: fix game object events to not fire for actors, projectiles, and graphic objects\\n client: add mining plugin\\n ba: update to no longer use icons to determine role\\n ba: fix wave timer announce from exiting a tutorial\\n ba: null game time after the game has been finished\\n music plugin: delete all child widgets before adding buttons\\n quest plugin: delete all child widgets before adding buttons\\n wasd plugin: rename to keyremapping plugin\\n keyremapping plugin: add F-key remapping\\n keyremapping: fix keys getting stuck from map loading\\n keyremappinig: replace some lambdas with method references\\n achievement diary: fix legends guild jewllery task\\n api: modify Widget.getWidgetItem to return widget items when no item exists\\n client: add inventory grid plugin\\n inventory grid: add delay before activating overlay\\n\\nHydrox6 (1):\\n agility: Fix highlighting of Al Kharid zip line\\n\\nJordan Atwood (1):\\n HotColdLocation: Replace nbsp with normal spaces\\n\\nRon Young (2):\\n mixins: correct widget item bounds location for if1\\n client: readjust widget item overlay positions for modified widget item bounds\\n\\nTomas Slusny (3):\\n Expose loginIndex and otp fields from runescape client\\n Add LOGIN_SCREEN_AUTHENTICATOR game state\\n Add support for pasting authenticator code on login screen\\n\\nWilliam Collishaw (2):\\n Remove redundant subString endindex .length() calls\\n Replace redundant StringBuilder append String.subString with append CharSequence\\n\\nxDemoN (2):\\n Fix numulite buy limit in GE plugin (#8962)\\n Cluescrolls: Swap STASH Units for Exam Centre Emote Clues (#8963)\\n
\\n\",\"image\":\"/img/blog/1.5.26-Release/mining.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-06-06-10-00-1.5.26-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,iEAAiE,OAAS,OAAO,KAAO,wzGAA+zG,MAAQ","file":"static/js/98.34346848.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.26 Release\",\"description\":\"Mining rock respawn timer, inventory grid, and F-key remapping\",\"author\":\"Adam\",\"body\":\"A mining plugin has been added which shows respawn times for rocks.
\\n
\\nAn inventory grid plugin was added which will overlay a grid of each item slot\\nin the inventory when an item is dragged, aiding with rearranging inventory\\nitems.
\\n
\\nThe WASD plugin has been renamed to the Key Remapping plugin. If you had it on\\nprior to the update you will need to turn it on again. It now also supports\\nremapping the number keys (0-9
, -
, and =
) to the F keys, to aid Mac users.
\\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe wine ferment timer was fixed, again, and actually works now \\nThe Barbarian Assault plugin was updated for last week's game update and now\\ncorrectly shows the wave time again \\nFix the agility plugin not highlighting the Al-Kharid zipline \\nFix the clue plugin to identify the correct stash unit near the Exam Centre \\nThe authenticator code can now be pasted into the login screen, similar to\\nusername and password \\n \\nEnjoy!
\\n- Adam
\\nNew commits \\nWe had 7 contributors this release!
\\nAdam (19):\\n Revert "cooking plugin: fix wine fermentation timer to begin at appropriate time"\\n Revert "cooking plugin: add wine ferment timer"\\n Revert "cooking plugin: rename session to cooking session"\\n cooking plugin: add wine ferment timer\\n mixins: fix game object events to not fire for actors, projectiles, and graphic objects\\n client: add mining plugin\\n ba: update to no longer use icons to determine role\\n ba: fix wave timer announce from exiting a tutorial\\n ba: null game time after the game has been finished\\n music plugin: delete all child widgets before adding buttons\\n quest plugin: delete all child widgets before adding buttons\\n wasd plugin: rename to keyremapping plugin\\n keyremapping plugin: add F-key remapping\\n keyremapping: fix keys getting stuck from map loading\\n keyremappinig: replace some lambdas with method references\\n achievement diary: fix legends guild jewllery task\\n api: modify Widget.getWidgetItem to return widget items when no item exists\\n client: add inventory grid plugin\\n inventory grid: add delay before activating overlay\\n\\nHydrox6 (1):\\n agility: Fix highlighting of Al Kharid zip line\\n\\nJordan Atwood (1):\\n HotColdLocation: Replace nbsp with normal spaces\\n\\nRon Young (2):\\n mixins: correct widget item bounds location for if1\\n client: readjust widget item overlay positions for modified widget item bounds\\n\\nTomas Slusny (3):\\n Expose loginIndex and otp fields from runescape client\\n Add LOGIN_SCREEN_AUTHENTICATOR game state\\n Add support for pasting authenticator code on login screen\\n\\nWilliam Collishaw (2):\\n Remove redundant subString endindex .length() calls\\n Replace redundant StringBuilder append String.subString with append CharSequence\\n\\nxDemoN (2):\\n Fix numulite buy limit in GE plugin (#8962)\\n Cluescrolls: Swap STASH Units for Exam Centre Emote Clues (#8963)\\n
\\n\",\"image\":\"/img/blog/1.5.26-Release/mining.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/99.4e8bcaf6.chunk.js b/static/js/99.b8a48a85.chunk.js
similarity index 98%
rename from static/js/99.4e8bcaf6.chunk.js
rename to static/js/99.b8a48a85.chunk.js
index 2ddffbda4..0ce543837 100644
--- a/static/js/99.4e8bcaf6.chunk.js
+++ b/static/js/99.b8a48a85.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[99],{374:function(e,n){e.exports={title:"1.5.27 Release",description:"Items Kept on Death plugin, World Map Quest Completion Icons, bug fixes",author:"Jordan",body:'You\'ve asked for\nit ,\nand we\'re here to deliver! We have added an\nItems Kept on Death plugin which\nmore accurately displays the items you will lose upon dying, and adds toggle buttons which simulate\ncertain statuses which would affect that, such as being skulled or having the Protect Item prayer\nactive. Thanks to @TheStonedTurtle\'s for the hard work that\nwent into making this possible.
\nPlease note that while we have tested this with as many situations as we had access to, our\nknowledge and understanding of the death mechanics may not be perfectly in line with what will occur\ningame. If you discover a situation where this interface is inaccurate, please report such bugs on\nour issue tracker. For this\nreason, this plugin is disabled by default . Make sure to look for it and turn it on if you\'d like\nto try it!
\n
\nThe World Map plugin has been updated to\ndisplay quest completion states. Thanks to @connorjclark for\nadding this feature.
\n
\nIn addition to the new features mentioned above, a small number of notable bugs have been fixed.
\n\nObject markers for objects larger than\none tile will no longer become duplicated. This means you should no longer see a black overlay on\nsuch objects, and this will no longer impact your FPS ingame. \nThe Key Remapping plugin will no longer\nchange your tabs when an NPC dialog is open, allowing you to properly input chat options. \nWe have fixed the\nInterface Styles plugin\'s HD\nhealthbars. \n \nThere are also several smaller improvements and bug fixes, including:
\n\nThe Chat Notifications plugin now\ncorrectly matches <
and >
\nEmojis added to a message will no longer reset\nthe message\'s chat color \nThe Mining plugin now recognizes ash piles,\nhas some missing and inaccurate ore timers corrected, and draws its progress pie at the proper\nheight for motherlode mine and amethyst veins. In addition, it displays its progress pie in a\ndifferent color for motherlode mine veins during the random timer of their respawn. \nClue scrolls affected by the Hosidius rework have had their locations updated \nA coordinate clue scroll located in Weiss has been added to the\nClue Scroll plugin \nThe skill challenge clue scroll requiring killing a spiritual mage is now properly recognized \nThe Clue Scroll plugin will now recognize\nmore Falo the Bard clue scrolls \nThe Item Stats plugin now has an option to\nremove the "Weight" stat from the stats tooltip \nThe Item Identification plugin \nwill now overlay items shown in the seed box, looting bag, and in Miscellania\'s collection screen \nThe Timers plugin will properly add a\nteleblock timer now, since the ingame message has changed \nThe Discord plugin will show your ingame\nstatus as "Training: Fishing" instead of Strength or Agility when performing barbarian fly fishing \nNew flash notification options have been added to\nRuneLite\'s global configuration \nThe Agility plugin now recognizes a\npreviously-missing Falador rooftop agility course obstacle \nYou can now configure the drag delay of the Inventory Grid\nplugin \nThe Menu Entry Swapper plugin will\nnow swap the "Shop" menu entry of the Witchhaven shop when the "Trade" option is enabled \nA bug in the Item Prices plugin \npreventing high alchemy profits from being displayed unless the item\'s high alchemy value was also\ndisplayed has been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (7):\n mixins: fix duplicate spawn events for large gameobjects\n key remapping: don\'t remap fkeys when options dialog is open\n key remapping: remove some unused widget and keylistener checks\n key remapping: fix clearing input when plugin is turned on\n scripts: correctly pop unused input string when blocking chat input\n chat notifier: fix matching < and > in chat messages\n emoji plugin: fix stripping chat recolor tags\n\nAdelaidian (1):\n mining plugin: add ash piles\n\nAundron (1):\n clue plugin: update Hosidius allotment clue location for rework\n\nConnor Clark (1):\n world map plugin: show quest completion state\n\nDava (1):\n items stats: add option to show weight\n\nHydrox6 (6):\n Add ItemIdentification to Seed Box, Looting Bag, and Miscellania collection screen (#8999)\n mining plugin: add missing silver id\n timers: fix teleblock message\n api: implement resetHealthBarCaches and getHealthBarFrontSpriteId\n api: remove unneeded Health Bar Override code\n interface styles: update HD Health bar to work with new sprites\n\nJacky (1):\n Add additional info to waterbirth coordinate clue\n\nJacky Liang (2):\n clue plugin: add Weiss coordinate clue description\n clue plugin: improve Champions Guild clue hint\n\nJarred Vardy (1):\n Set priority \'1\' for TRAINING_FISHING DiscordGameEvent (#9061)\n\nJordan Atwood (2):\n cluescrolls: Fix Hosidius mess hall clue locations\n HotColdLocation: Center northeastern Kharazi jungle location\n\nMax Weber (2):\n runelite-client: centralize item sprite dimensions\n runelite-client: Centralize the high alchemy multiplier\n\nSander de Groot (1):\n Fix typo in spiritual mage master cryptic clue (#9105)\n\nTheStonedTurtle (2):\n Add scroll price to Magic shortbow (i) and Row (i)\n runelite-client: add items kept on death plugin\n\nTwiglet1022 (7):\n mining plugin: draw overlay at correct height for mlm and amethyst\n mining plugin: correct coal timer, missing copper rock and other fixes\n clues: correct text of falo the bard warrior guild token clue\n mining plugin: remove progress pie from mlm veins that respawn early\n mining plugin: recolour pie in MLM during random segment of timer\n clues: correct text of falo the bard obby maul clue\n notifier: add customisation to flash notification\n\nUnknown (1):\n Added missing falador rooftop course agility obstacle\n\nWilliam Collishaw (7):\n Fix typo in \'dumpJson\' function name\n Fix typo in \'sessionCheck\' function name\n Fix typo in \'getProperties\' function name\n Fix \'Jewellery\' typo in PohConfig show jewellery box description\n Optimize if statements in the client module (#8998)\n Fix \'ABERRANT_SPECTRE\' typo in SlayerUnlock and CannonSpot enums\n Fix \'GROTESQUE_GUARDIAN\' typo in SlayerUnlock enum\n\nWilliam Maga (1):\n inventory grid: add config for drag delay\n\ncjamcl (1):\n MenuEntrySwapper: include "shop" for trade option\n\ngregg1494 (2):\n mining plugin: add sandstone and granite\n itemprices: fix showing high alch profit with show ha value disabled\n
\n',image:"/img/blog/1.5.27-Release/items-kept-on-death-plugin.gif"}}}]);
-//# sourceMappingURL=99.4e8bcaf6.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[99],{375:function(e,n){e.exports={title:"1.5.27 Release",description:"Items Kept on Death plugin, World Map Quest Completion Icons, bug fixes",author:"Jordan",body:'You\'ve asked for\nit ,\nand we\'re here to deliver! We have added an\nItems Kept on Death plugin which\nmore accurately displays the items you will lose upon dying, and adds toggle buttons which simulate\ncertain statuses which would affect that, such as being skulled or having the Protect Item prayer\nactive. Thanks to @TheStonedTurtle\'s for the hard work that\nwent into making this possible.
\nPlease note that while we have tested this with as many situations as we had access to, our\nknowledge and understanding of the death mechanics may not be perfectly in line with what will occur\ningame. If you discover a situation where this interface is inaccurate, please report such bugs on\nour issue tracker. For this\nreason, this plugin is disabled by default . Make sure to look for it and turn it on if you\'d like\nto try it!
\n
\nThe World Map plugin has been updated to\ndisplay quest completion states. Thanks to @connorjclark for\nadding this feature.
\n
\nIn addition to the new features mentioned above, a small number of notable bugs have been fixed.
\n\nObject markers for objects larger than\none tile will no longer become duplicated. This means you should no longer see a black overlay on\nsuch objects, and this will no longer impact your FPS ingame. \nThe Key Remapping plugin will no longer\nchange your tabs when an NPC dialog is open, allowing you to properly input chat options. \nWe have fixed the\nInterface Styles plugin\'s HD\nhealthbars. \n \nThere are also several smaller improvements and bug fixes, including:
\n\nThe Chat Notifications plugin now\ncorrectly matches <
and >
\nEmojis added to a message will no longer reset\nthe message\'s chat color \nThe Mining plugin now recognizes ash piles,\nhas some missing and inaccurate ore timers corrected, and draws its progress pie at the proper\nheight for motherlode mine and amethyst veins. In addition, it displays its progress pie in a\ndifferent color for motherlode mine veins during the random timer of their respawn. \nClue scrolls affected by the Hosidius rework have had their locations updated \nA coordinate clue scroll located in Weiss has been added to the\nClue Scroll plugin \nThe skill challenge clue scroll requiring killing a spiritual mage is now properly recognized \nThe Clue Scroll plugin will now recognize\nmore Falo the Bard clue scrolls \nThe Item Stats plugin now has an option to\nremove the "Weight" stat from the stats tooltip \nThe Item Identification plugin \nwill now overlay items shown in the seed box, looting bag, and in Miscellania\'s collection screen \nThe Timers plugin will properly add a\nteleblock timer now, since the ingame message has changed \nThe Discord plugin will show your ingame\nstatus as "Training: Fishing" instead of Strength or Agility when performing barbarian fly fishing \nNew flash notification options have been added to\nRuneLite\'s global configuration \nThe Agility plugin now recognizes a\npreviously-missing Falador rooftop agility course obstacle \nYou can now configure the drag delay of the Inventory Grid\nplugin \nThe Menu Entry Swapper plugin will\nnow swap the "Shop" menu entry of the Witchhaven shop when the "Trade" option is enabled \nA bug in the Item Prices plugin \npreventing high alchemy profits from being displayed unless the item\'s high alchemy value was also\ndisplayed has been fixed \n \nEnjoy!
\n- Jordan
\nNew commits \nWe had 19 contributors this release!
\nAdam (7):\n mixins: fix duplicate spawn events for large gameobjects\n key remapping: don\'t remap fkeys when options dialog is open\n key remapping: remove some unused widget and keylistener checks\n key remapping: fix clearing input when plugin is turned on\n scripts: correctly pop unused input string when blocking chat input\n chat notifier: fix matching < and > in chat messages\n emoji plugin: fix stripping chat recolor tags\n\nAdelaidian (1):\n mining plugin: add ash piles\n\nAundron (1):\n clue plugin: update Hosidius allotment clue location for rework\n\nConnor Clark (1):\n world map plugin: show quest completion state\n\nDava (1):\n items stats: add option to show weight\n\nHydrox6 (6):\n Add ItemIdentification to Seed Box, Looting Bag, and Miscellania collection screen (#8999)\n mining plugin: add missing silver id\n timers: fix teleblock message\n api: implement resetHealthBarCaches and getHealthBarFrontSpriteId\n api: remove unneeded Health Bar Override code\n interface styles: update HD Health bar to work with new sprites\n\nJacky (1):\n Add additional info to waterbirth coordinate clue\n\nJacky Liang (2):\n clue plugin: add Weiss coordinate clue description\n clue plugin: improve Champions Guild clue hint\n\nJarred Vardy (1):\n Set priority \'1\' for TRAINING_FISHING DiscordGameEvent (#9061)\n\nJordan Atwood (2):\n cluescrolls: Fix Hosidius mess hall clue locations\n HotColdLocation: Center northeastern Kharazi jungle location\n\nMax Weber (2):\n runelite-client: centralize item sprite dimensions\n runelite-client: Centralize the high alchemy multiplier\n\nSander de Groot (1):\n Fix typo in spiritual mage master cryptic clue (#9105)\n\nTheStonedTurtle (2):\n Add scroll price to Magic shortbow (i) and Row (i)\n runelite-client: add items kept on death plugin\n\nTwiglet1022 (7):\n mining plugin: draw overlay at correct height for mlm and amethyst\n mining plugin: correct coal timer, missing copper rock and other fixes\n clues: correct text of falo the bard warrior guild token clue\n mining plugin: remove progress pie from mlm veins that respawn early\n mining plugin: recolour pie in MLM during random segment of timer\n clues: correct text of falo the bard obby maul clue\n notifier: add customisation to flash notification\n\nUnknown (1):\n Added missing falador rooftop course agility obstacle\n\nWilliam Collishaw (7):\n Fix typo in \'dumpJson\' function name\n Fix typo in \'sessionCheck\' function name\n Fix typo in \'getProperties\' function name\n Fix \'Jewellery\' typo in PohConfig show jewellery box description\n Optimize if statements in the client module (#8998)\n Fix \'ABERRANT_SPECTRE\' typo in SlayerUnlock and CannonSpot enums\n Fix \'GROTESQUE_GUARDIAN\' typo in SlayerUnlock enum\n\nWilliam Maga (1):\n inventory grid: add config for drag delay\n\ncjamcl (1):\n MenuEntrySwapper: include "shop" for trade option\n\ngregg1494 (2):\n mining plugin: add sandstone and granite\n itemprices: fix showing high alch profit with show ha value disabled\n
\n',image:"/img/blog/1.5.27-Release/items-kept-on-death-plugin.gif"}}}]);
+//# sourceMappingURL=99.b8a48a85.chunk.js.map
\ No newline at end of file
diff --git a/static/js/99.4e8bcaf6.chunk.js.map b/static/js/99.b8a48a85.chunk.js.map
similarity index 99%
rename from static/js/99.4e8bcaf6.chunk.js.map
rename to static/js/99.b8a48a85.chunk.js.map
index 19f2091d0..6850618ae 100644
--- a/static/js/99.4e8bcaf6.chunk.js.map
+++ b/static/js/99.b8a48a85.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["_posts/2019-06-20-10-00-1.5.27-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0EAA0E,OAAS,SAAS,KAAO,y2SAAy+S,MAAQ","file":"static/js/99.4e8bcaf6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.27 Release\",\"description\":\"Items Kept on Death plugin, World Map Quest Completion Icons, bug fixes\",\"author\":\"Jordan\",\"body\":\"You've asked for\\nit ,\\nand we're here to deliver! We have added an\\nItems Kept on Death plugin which\\nmore accurately displays the items you will lose upon dying, and adds toggle buttons which simulate\\ncertain statuses which would affect that, such as being skulled or having the Protect Item prayer\\nactive. Thanks to @TheStonedTurtle's for the hard work that\\nwent into making this possible.
\\nPlease note that while we have tested this with as many situations as we had access to, our\\nknowledge and understanding of the death mechanics may not be perfectly in line with what will occur\\ningame. If you discover a situation where this interface is inaccurate, please report such bugs on\\nour issue tracker. For this\\nreason, this plugin is disabled by default . Make sure to look for it and turn it on if you'd like\\nto try it!
\\n
\\nThe World Map plugin has been updated to\\ndisplay quest completion states. Thanks to @connorjclark for\\nadding this feature.
\\n
\\nIn addition to the new features mentioned above, a small number of notable bugs have been fixed.
\\n\\nObject markers for objects larger than\\none tile will no longer become duplicated. This means you should no longer see a black overlay on\\nsuch objects, and this will no longer impact your FPS ingame. \\nThe Key Remapping plugin will no longer\\nchange your tabs when an NPC dialog is open, allowing you to properly input chat options. \\nWe have fixed the\\nInterface Styles plugin's HD\\nhealthbars. \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Chat Notifications plugin now\\ncorrectly matches <
and >
\\nEmojis added to a message will no longer reset\\nthe message's chat color \\nThe Mining plugin now recognizes ash piles,\\nhas some missing and inaccurate ore timers corrected, and draws its progress pie at the proper\\nheight for motherlode mine and amethyst veins. In addition, it displays its progress pie in a\\ndifferent color for motherlode mine veins during the random timer of their respawn. \\nClue scrolls affected by the Hosidius rework have had their locations updated \\nA coordinate clue scroll located in Weiss has been added to the\\nClue Scroll plugin \\nThe skill challenge clue scroll requiring killing a spiritual mage is now properly recognized \\nThe Clue Scroll plugin will now recognize\\nmore Falo the Bard clue scrolls \\nThe Item Stats plugin now has an option to\\nremove the "Weight" stat from the stats tooltip \\nThe Item Identification plugin \\nwill now overlay items shown in the seed box, looting bag, and in Miscellania's collection screen \\nThe Timers plugin will properly add a\\nteleblock timer now, since the ingame message has changed \\nThe Discord plugin will show your ingame\\nstatus as "Training: Fishing" instead of Strength or Agility when performing barbarian fly fishing \\nNew flash notification options have been added to\\nRuneLite's global configuration \\nThe Agility plugin now recognizes a\\npreviously-missing Falador rooftop agility course obstacle \\nYou can now configure the drag delay of the Inventory Grid\\nplugin \\nThe Menu Entry Swapper plugin will\\nnow swap the "Shop" menu entry of the Witchhaven shop when the "Trade" option is enabled \\nA bug in the Item Prices plugin \\npreventing high alchemy profits from being displayed unless the item's high alchemy value was also\\ndisplayed has been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (7):\\n mixins: fix duplicate spawn events for large gameobjects\\n key remapping: don't remap fkeys when options dialog is open\\n key remapping: remove some unused widget and keylistener checks\\n key remapping: fix clearing input when plugin is turned on\\n scripts: correctly pop unused input string when blocking chat input\\n chat notifier: fix matching < and > in chat messages\\n emoji plugin: fix stripping chat recolor tags\\n\\nAdelaidian (1):\\n mining plugin: add ash piles\\n\\nAundron (1):\\n clue plugin: update Hosidius allotment clue location for rework\\n\\nConnor Clark (1):\\n world map plugin: show quest completion state\\n\\nDava (1):\\n items stats: add option to show weight\\n\\nHydrox6 (6):\\n Add ItemIdentification to Seed Box, Looting Bag, and Miscellania collection screen (#8999)\\n mining plugin: add missing silver id\\n timers: fix teleblock message\\n api: implement resetHealthBarCaches and getHealthBarFrontSpriteId\\n api: remove unneeded Health Bar Override code\\n interface styles: update HD Health bar to work with new sprites\\n\\nJacky (1):\\n Add additional info to waterbirth coordinate clue\\n\\nJacky Liang (2):\\n clue plugin: add Weiss coordinate clue description\\n clue plugin: improve Champions Guild clue hint\\n\\nJarred Vardy (1):\\n Set priority '1' for TRAINING_FISHING DiscordGameEvent (#9061)\\n\\nJordan Atwood (2):\\n cluescrolls: Fix Hosidius mess hall clue locations\\n HotColdLocation: Center northeastern Kharazi jungle location\\n\\nMax Weber (2):\\n runelite-client: centralize item sprite dimensions\\n runelite-client: Centralize the high alchemy multiplier\\n\\nSander de Groot (1):\\n Fix typo in spiritual mage master cryptic clue (#9105)\\n\\nTheStonedTurtle (2):\\n Add scroll price to Magic shortbow (i) and Row (i)\\n runelite-client: add items kept on death plugin\\n\\nTwiglet1022 (7):\\n mining plugin: draw overlay at correct height for mlm and amethyst\\n mining plugin: correct coal timer, missing copper rock and other fixes\\n clues: correct text of falo the bard warrior guild token clue\\n mining plugin: remove progress pie from mlm veins that respawn early\\n mining plugin: recolour pie in MLM during random segment of timer\\n clues: correct text of falo the bard obby maul clue\\n notifier: add customisation to flash notification\\n\\nUnknown (1):\\n Added missing falador rooftop course agility obstacle\\n\\nWilliam Collishaw (7):\\n Fix typo in 'dumpJson' function name\\n Fix typo in 'sessionCheck' function name\\n Fix typo in 'getProperties' function name\\n Fix 'Jewellery' typo in PohConfig show jewellery box description\\n Optimize if statements in the client module (#8998)\\n Fix 'ABERRANT_SPECTRE' typo in SlayerUnlock and CannonSpot enums\\n Fix 'GROTESQUE_GUARDIAN' typo in SlayerUnlock enum\\n\\nWilliam Maga (1):\\n inventory grid: add config for drag delay\\n\\ncjamcl (1):\\n MenuEntrySwapper: include "shop" for trade option\\n\\ngregg1494 (2):\\n mining plugin: add sandstone and granite\\n itemprices: fix showing high alch profit with show ha value disabled\\n
\\n\",\"image\":\"/img/blog/1.5.27-Release/items-kept-on-death-plugin.gif\"}"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["_posts/2019-06-20-10-00-1.5.27-Release.md"],"names":["module","exports"],"mappings":"sGAAAA,EAAOC,QAAU,CAAC,MAAQ,iBAAiB,YAAc,0EAA0E,OAAS,SAAS,KAAO,y2SAAy+S,MAAQ","file":"static/js/99.b8a48a85.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.5.27 Release\",\"description\":\"Items Kept on Death plugin, World Map Quest Completion Icons, bug fixes\",\"author\":\"Jordan\",\"body\":\"You've asked for\\nit ,\\nand we're here to deliver! We have added an\\nItems Kept on Death plugin which\\nmore accurately displays the items you will lose upon dying, and adds toggle buttons which simulate\\ncertain statuses which would affect that, such as being skulled or having the Protect Item prayer\\nactive. Thanks to @TheStonedTurtle's for the hard work that\\nwent into making this possible.
\\nPlease note that while we have tested this with as many situations as we had access to, our\\nknowledge and understanding of the death mechanics may not be perfectly in line with what will occur\\ningame. If you discover a situation where this interface is inaccurate, please report such bugs on\\nour issue tracker. For this\\nreason, this plugin is disabled by default . Make sure to look for it and turn it on if you'd like\\nto try it!
\\n
\\nThe World Map plugin has been updated to\\ndisplay quest completion states. Thanks to @connorjclark for\\nadding this feature.
\\n
\\nIn addition to the new features mentioned above, a small number of notable bugs have been fixed.
\\n\\nObject markers for objects larger than\\none tile will no longer become duplicated. This means you should no longer see a black overlay on\\nsuch objects, and this will no longer impact your FPS ingame. \\nThe Key Remapping plugin will no longer\\nchange your tabs when an NPC dialog is open, allowing you to properly input chat options. \\nWe have fixed the\\nInterface Styles plugin's HD\\nhealthbars. \\n \\nThere are also several smaller improvements and bug fixes, including:
\\n\\nThe Chat Notifications plugin now\\ncorrectly matches <
and >
\\nEmojis added to a message will no longer reset\\nthe message's chat color \\nThe Mining plugin now recognizes ash piles,\\nhas some missing and inaccurate ore timers corrected, and draws its progress pie at the proper\\nheight for motherlode mine and amethyst veins. In addition, it displays its progress pie in a\\ndifferent color for motherlode mine veins during the random timer of their respawn. \\nClue scrolls affected by the Hosidius rework have had their locations updated \\nA coordinate clue scroll located in Weiss has been added to the\\nClue Scroll plugin \\nThe skill challenge clue scroll requiring killing a spiritual mage is now properly recognized \\nThe Clue Scroll plugin will now recognize\\nmore Falo the Bard clue scrolls \\nThe Item Stats plugin now has an option to\\nremove the "Weight" stat from the stats tooltip \\nThe Item Identification plugin \\nwill now overlay items shown in the seed box, looting bag, and in Miscellania's collection screen \\nThe Timers plugin will properly add a\\nteleblock timer now, since the ingame message has changed \\nThe Discord plugin will show your ingame\\nstatus as "Training: Fishing" instead of Strength or Agility when performing barbarian fly fishing \\nNew flash notification options have been added to\\nRuneLite's global configuration \\nThe Agility plugin now recognizes a\\npreviously-missing Falador rooftop agility course obstacle \\nYou can now configure the drag delay of the Inventory Grid\\nplugin \\nThe Menu Entry Swapper plugin will\\nnow swap the "Shop" menu entry of the Witchhaven shop when the "Trade" option is enabled \\nA bug in the Item Prices plugin \\npreventing high alchemy profits from being displayed unless the item's high alchemy value was also\\ndisplayed has been fixed \\n \\nEnjoy!
\\n- Jordan
\\nNew commits \\nWe had 19 contributors this release!
\\nAdam (7):\\n mixins: fix duplicate spawn events for large gameobjects\\n key remapping: don't remap fkeys when options dialog is open\\n key remapping: remove some unused widget and keylistener checks\\n key remapping: fix clearing input when plugin is turned on\\n scripts: correctly pop unused input string when blocking chat input\\n chat notifier: fix matching < and > in chat messages\\n emoji plugin: fix stripping chat recolor tags\\n\\nAdelaidian (1):\\n mining plugin: add ash piles\\n\\nAundron (1):\\n clue plugin: update Hosidius allotment clue location for rework\\n\\nConnor Clark (1):\\n world map plugin: show quest completion state\\n\\nDava (1):\\n items stats: add option to show weight\\n\\nHydrox6 (6):\\n Add ItemIdentification to Seed Box, Looting Bag, and Miscellania collection screen (#8999)\\n mining plugin: add missing silver id\\n timers: fix teleblock message\\n api: implement resetHealthBarCaches and getHealthBarFrontSpriteId\\n api: remove unneeded Health Bar Override code\\n interface styles: update HD Health bar to work with new sprites\\n\\nJacky (1):\\n Add additional info to waterbirth coordinate clue\\n\\nJacky Liang (2):\\n clue plugin: add Weiss coordinate clue description\\n clue plugin: improve Champions Guild clue hint\\n\\nJarred Vardy (1):\\n Set priority '1' for TRAINING_FISHING DiscordGameEvent (#9061)\\n\\nJordan Atwood (2):\\n cluescrolls: Fix Hosidius mess hall clue locations\\n HotColdLocation: Center northeastern Kharazi jungle location\\n\\nMax Weber (2):\\n runelite-client: centralize item sprite dimensions\\n runelite-client: Centralize the high alchemy multiplier\\n\\nSander de Groot (1):\\n Fix typo in spiritual mage master cryptic clue (#9105)\\n\\nTheStonedTurtle (2):\\n Add scroll price to Magic shortbow (i) and Row (i)\\n runelite-client: add items kept on death plugin\\n\\nTwiglet1022 (7):\\n mining plugin: draw overlay at correct height for mlm and amethyst\\n mining plugin: correct coal timer, missing copper rock and other fixes\\n clues: correct text of falo the bard warrior guild token clue\\n mining plugin: remove progress pie from mlm veins that respawn early\\n mining plugin: recolour pie in MLM during random segment of timer\\n clues: correct text of falo the bard obby maul clue\\n notifier: add customisation to flash notification\\n\\nUnknown (1):\\n Added missing falador rooftop course agility obstacle\\n\\nWilliam Collishaw (7):\\n Fix typo in 'dumpJson' function name\\n Fix typo in 'sessionCheck' function name\\n Fix typo in 'getProperties' function name\\n Fix 'Jewellery' typo in PohConfig show jewellery box description\\n Optimize if statements in the client module (#8998)\\n Fix 'ABERRANT_SPECTRE' typo in SlayerUnlock and CannonSpot enums\\n Fix 'GROTESQUE_GUARDIAN' typo in SlayerUnlock enum\\n\\nWilliam Maga (1):\\n inventory grid: add config for drag delay\\n\\ncjamcl (1):\\n MenuEntrySwapper: include "shop" for trade option\\n\\ngregg1494 (2):\\n mining plugin: add sandstone and granite\\n itemprices: fix showing high alch profit with show ha value disabled\\n
\\n\",\"image\":\"/img/blog/1.5.27-Release/items-kept-on-death-plugin.gif\"}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/main.0c8840cd.chunk.js b/static/js/main.6bc5f8c1.chunk.js
similarity index 97%
rename from static/js/main.0c8840cd.chunk.js
rename to static/js/main.6bc5f8c1.chunk.js
index 7222f14ef..f269ac3e4 100644
--- a/static/js/main.0c8840cd.chunk.js
+++ b/static/js/main.6bc5f8c1.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[2],{113:function(e,n,t){},114:function(e,n,t){},115:function(e,n,t){},116:function(e,n,t){},117:function(e,n,t){},124:function(e,n,t){"use strict";t.r(n);t(77),t(108);var a=t(0),r=t(27),o=t(8),i=t(11),s=(t(113),t(114),t(115),t(116),t(7)),l=t.n(s),c=t(33),g=t(69);function u(){const e=document.getElementsByClassName("navbar-collapse")[0],n=e.style.display,t="none"===n||""===n;e.style.display=t?"block":"none"}var m=e=>{let{dark:n,login:t,loggedIn:r,username:i}=e;return Object(a.g)("nav",{class:"navbar navbar-expand-lg fixed-top navbar-dark"},Object(a.g)(o.a,{onClick:u,class:"navbar-brand",activeClassName:"active",href:"/"},Object(a.g)("img",{src:Object(g.a)(l.a.logo),class:"icon",alt:"RuneLite"})," "),Object(a.g)("input",{type:"checkbox",id:"navbar-check-box"}),Object(a.g)("label",{for:"navbar-check-box",class:"navbar-toggler"},Object(a.g)("span",{class:"navbar-toggler-icon",onClick:u})),Object(a.g)("div",{class:"collapse navbar-collapse",id:"navbar"},Object(a.g)("ul",{class:"navbar-nav"},Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/features"},"Features")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/blog"},"Blog")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/pulse"},"Pulse")),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link",href:"https://github.com/runelite/runelite/wiki"},"Wiki")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/tag"},"Tags")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/tile"},"Tile markers")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/plugin-hub"},"Plugin Hub"))),Object(a.g)("ul",{class:"navbar-nav ml-auto"},Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link",href:c.a.patreon},"Become a patron")),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:"https://runelite.net/discord",title:"Discord"},Object(a.g)("i",{class:"fab fa-discord"}),Object(a.g)("span",{class:"d-lg-none"}," Discord"))),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:c.a.twitter,title:"Twitter"},Object(a.g)("i",{class:"fab fa-twitter"}),Object(a.g)("span",{class:"d-lg-none"}," Twitter"))),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:c.a.github,title:"GitHub"},Object(a.g)("i",{class:"fab fa-github"}),Object(a.g)("span",{class:"d-lg-none"}," GitHub"))),Object(a.g)("li",{class:"nav-item",onClick:u},r?Object(a.g)("a",{class:"nav-link",href:"/account/home"},Object(a.g)("i",{class:"fas fa-user fa-fw"})," ",i):Object(a.g)("form",{class:"form-inline"},Object(a.g)("button",{class:"btn btn-primary",type:"button",onClick:t},"Login"))))))};t(117);var d=e=>{let{loading:n}=e;return Object(a.g)("div",{class:"fixed-top animated loader",style:{display:n?"block":"none"}})},h=t(5),p=t(47),f=t(20);var b=Object(r.b)(e=>({loggedIn:Object(f.b)(e),...e.app,...e.account}),e=>Object(i.b)({login:f.c},e))(e=>{let{loading:n,navbarDark:r,login:i,logout:s,loggedIn:l,username:c}=e;return Object(a.g)("div",{style:{height:"100%"}},Object(a.g)(d,{loading:n>0}),Object(a.g)(m,{dark:r,login:i,logout:s,loggedIn:l,username:c}),Object(a.g)(o.b,null,Object(a.g)(h.a,{path:"/",getComponent:()=>t.e(4).then(t.bind(null,465))}),Object(a.g)(h.a,{path:"/blog",getComponent:()=>t.e(6).then(t.bind(null,447))}),Object(a.g)(h.a,{path:"/blog/show/:id",getComponent:()=>t.e(5).then(t.bind(null,448))}),Object(a.g)(h.a,{path:"/features",getComponent:()=>t.e(12).then(t.bind(null,449))}),Object(a.g)(h.a,{path:"/pulse",getComponent:()=>t.e(10).then(t.bind(null,450))}),Object(a.g)(h.a,{path:"/plugin-hub/:author?",getComponent:()=>t.e(9).then(t.bind(null,466))}),Object(a.g)(h.a,{path:"/plugin-hub/show/:internalName",getComponent:()=>t.e(13).then(t.bind(null,451))}),Object(a.g)(h.a,{path:"/logged-in",getComponent:()=>t.e(19).then(t.bind(null,452))}),Object(a.g)(h.a,{path:"/gh-auth-code",getComponent:()=>t.e(17).then(t.bind(null,453))}),Object(a.g)(h.a,{path:"/loading",getComponent:()=>t.e(18).then(t.bind(null,454))}),Object(a.g)(h.a,{path:"/tag",getComponent:()=>t.e(15).then(t.bind(null,455))}),Object(a.g)(h.a,{path:"/tag/show/:csv",getComponent:()=>t.e(11).then(t.bind(null,456))}),Object(a.g)(h.a,{path:"/tile",getComponent:()=>t.e(16).then(t.bind(null,457))}),Object(a.g)(h.a,{path:"/tile/show",getComponent:()=>Promise.all([t.e(0),t.e(1)]).then(t.bind(null,458))}),Object(a.g)(h.a,{path:"/tile/show/:b64",getComponent:()=>Promise.all([t.e(0),t.e(1)]).then(t.bind(null,458))}),Object(a.g)(h.a,{path:"/account/:tag",getComponent:()=>Promise.all([t.e(0),t.e(8)]).then(t.bind(null,463))}),Object(a.g)(h.a,{path:"/verify",getComponent:()=>t.e(14).then(t.bind(null,467))}),Object(a.g)(p.a,{default:!0})))}),O=t(37),w=t(74),C=t.n(w),T=t(21);function j(e,n,t){e(Object(T.e)());const a=t(e,n);return a instanceof Promise?a.then(n=>(e(Object(T.f)()),n)).catch(n=>(e(Object(T.f)()),n)):(e(Object(T.f)()),a)}var S=e=>{let{dispatch:n,getState:t}=e;return e=>a=>"function"===typeof a?j(n,t,a):a&&"function"===typeof a.payload?j(n,t,a.payload):e(a)},y=t(4),v=t(28),E=t(48),A=t(24),k=t(70),I=t(71),L=t(32),_=t(50),M=t(72),D={account:f.a,app:T.a,bootstrap:y.a,config:v.b,externalPlugins:_.a,git:E.a,item:A.a,session:k.a,tag:I.a,prices:L.a,tile:M.a};if(window&&window.history){const e={};let{pushState:n}=window.history;window.history.pushState=(t,a,r)=>{e[window.location.pathname]=window.scrollY||window.pageYOffset,n.call(window.history,t,a,r),r.includes("#")||window.scrollTo(0,0)},window.onpopstate=()=>{if(window.location.hash)return;const n=e[window.location.pathname]||0;window.setTimeout(()=>window.scrollTo(0,n),1)}}const{store:N}=(e=>{const n=[S];const t=Object(i.c)(D),a=Object(O.b)({key:"runelite",storage:C.a,debug:!1,whitelist:["account","git"],transforms:[Object(O.a)(JSON.stringify,e=>JSON.parse(e,(e,n)=>"string"===typeof n&&n.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/)?new Date(n):n))]},t),r=Object(i.d)(a,Object(i.a)(...n)),o=Object(O.c)(r,null,()=>e(r));return{store:r,persistor:o}})(async e=>{await e.dispatch(Object(y.b)()),await e.dispatch(Object(f.e)())}),P=document.getElementById("root");Object(a.j)(Object(a.g)(()=>Object(a.g)(r.a,{store:N},Object(a.g)(b,null)),null),P)},18:function(e,n,t){"use strict";t.d(n,"e",(function(){return o})),t.d(n,"d",(function(){return i})),t.d(n,"f",(function(){return s})),t.d(n,"b",(function(){return l})),t.d(n,"g",(function(){return c})),t.d(n,"i",(function(){return g})),t.d(n,"c",(function(){return u})),t.d(n,"h",(function(){return m})),t.d(n,"a",(function(){return h}));var a=t(7),r=t.n(a);const o=()=>window?r.a.url+window.location.pathname:r.a.url,i=()=>{if(!window)return r.a.url;const e=window.location;return e.protocol+"//"+e.host},s=e=>e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),l=e=>e instanceof Map?[...e.keys()].map(n=>({name:n,...e.get(n)})):Object.keys(e).map(n=>({name:n,...e[n]})),c=e=>{const n=Math.floor(e/60),t=Math.round(e%60*10)/10;return String(n).padStart(2,"0")+":"+String(t).padStart(2,"0")},g=e=>{let{id:n,name:t}=e;return`https://oldschool.runescape.wiki/w/Special:Lookup?type=item&id=${n}&name=${encodeURIComponent(t)}&utm_source=runelite.net`},u=e=>`https://static.runelite.net/cache/item/icon/${e}.png`,m=e=>{let n=e.toLowerCase().split("_");for(let t=0;t{if(!e)return null;const n=new Uint8Array(e),t=[];for(let a=0;a{!!window.MSInputMethodContext&&!!document.documentMode?window.msCrypto.subtle.digest({name:"SHA-256"},e).oncomplete=e=>{const t=d(e.target.result);n(t)}:window.crypto.subtle.digest({name:"SHA-256"},e).then(e=>{const t=d(e);n(t)})}},20:function(e,n,t){"use strict";t.d(n,"c",(function(){return g})),t.d(n,"d",(function(){return u})),t.d(n,"e",(function(){return m})),t.d(n,"f",(function(){return d})),t.d(n,"b",(function(){return p}));var a=t(75),r=t(16),o=t(17),i=t(3),s=t(4),l=t(18);const c=Object(i.a)("https://api.runelite.net/"),{login:g,logout:u,sessionCheck:m,setSession:d,resetSession:h}=Object(r.a)({LOGIN:()=>async(e,n)=>{const t=Object(s.c)(n()),a=Object(l.d)()+"/logged-in",r=await c(`runelite-${t}/account/login?redirectUrl=${a}&port=0000`,{method:"GET"});return window.location.href=r.oauthUrl,r},LOGOUT:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;try{return await c(`runelite-${t}/account/logout`,{method:"GET",headers:{"RUNELITE-AUTH":a}})}finally{e(h())}},SESSION_CHECK:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;try{return await c(`runelite-${t}/account/session-check`,{method:"GET",headers:{"RUNELITE-AUTH":a}})}catch(r){e(h())}}},"SET_SESSION","RESET_SESSION");n.a=Object(o.a)({[d]:(e,n)=>{let{payload:t}=n;return{...e,...t}},[h]:e=>({...e,uuid:a.a(),username:""})},{uuid:a.a(),username:""});const p=e=>!!e.account.username},21:function(e,n,t){"use strict";t.d(n,"e",(function(){return o})),t.d(n,"f",(function(){return i})),t.d(n,"b",(function(){return s})),t.d(n,"c",(function(){return l})),t.d(n,"d",(function(){return c}));var a=t(16),r=t(17);const{startLoading:o,stopLoading:i,makeNavbarDark:s,makeNavbarDefault:l,nextHeroImage:c}=Object(a.a)("START_LOADING","STOP_LOADING","MAKE_NAVBAR_DARK","MAKE_NAVBAR_DEFAULT","NEXT_HERO_IMAGE");n.a=Object(r.a)({[o]:e=>({...e,loading:e.loading+1}),[i]:e=>({...e,loading:e.loading-1}),[s]:e=>({...e,navbarDark:!0}),[l]:e=>({...e,navbarDark:!1}),[c]:(e,n)=>{let{payload:t}=n;return{...e,heroImage:(e.heroImage+1)%t}}},{loading:0,navbarDark:!1,heroImage:0})},24:function(e,n,t){"use strict";t.d(n,"b",(function(){return s})),t.d(n,"c",(function(){return c}));var a=t(16),r=t(17),o=t(3);const i=Object(o.a)("https://static.runelite.net/"),{fetchItems:s,setItems:l}=Object(a.a)({FETCH_ITEMS:()=>async e=>{const n=await i("cache/item/names.json",{method:"GET"}),t=[];for(let[a,r]of Object.entries(n))t.push({id:parseInt(a),name:r});return e(l(t)),t}},"SET_ITEMS");n.a=Object(r.a)({[l]:(e,n)=>{let{payload:t}=n;return t}},[]);const c=e=>e.item},28:function(e,n,t){"use strict";t.d(n,"c",(function(){return d})),t.d(n,"w",(function(){return h})),t.d(n,"a",(function(){return f})),t.d(n,"v",(function(){return b})),t.d(n,"u",(function(){return O})),t.d(n,"t",(function(){return w})),t.d(n,"f",(function(){return C})),t.d(n,"o",(function(){return T})),t.d(n,"s",(function(){return j})),t.d(n,"m",(function(){return S})),t.d(n,"k",(function(){return y})),t.d(n,"d",(function(){return v})),t.d(n,"p",(function(){return E})),t.d(n,"l",(function(){return A})),t.d(n,"i",(function(){return k})),t.d(n,"e",(function(){return I})),t.d(n,"g",(function(){return L})),t.d(n,"q",(function(){return _})),t.d(n,"r",(function(){return M})),t.d(n,"n",(function(){return D})),t.d(n,"j",(function(){return N})),t.d(n,"h",(function(){return P}));var a=t(16),r=t(17),o=t(2),i=t(3),s=t(4),l=t(18),c=t(24),g=t(49),u=t(32);const m=Object(i.a)("https://api.runelite.net/"),{fetchConfig:d,updateConfig:h,setConfig:p,changeAccount:f,setTileMarkersFilter:b,setLootFilter:O,setGeFilter:w}=Object(a.a)({FETCH_CONFIG:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;if(!a)return{};const r=await m(`runelite-${t}/config/v2`,{method:"GET",headers:{"RUNELITE-AUTH":a}});e(p(r));const o=n();if(!T(o)){const n=v(o);n.length>0&&e(f(n[0]))}return r},UPDATE_CONFIG:e=>async(n,t)=>{const a=Object(s.c)(t()),r=t().account.uuid;if(!r)return{};const o={},i=[];for(const[s,c]of Object.entries(e))null!==c&&""!==c?o[s]=c:i.push(s);const l={edit:o,unset:i};await m(`runelite-${a}/config/v2`,{method:"PATCH",headers:{"RUNELITE-AUTH":r,"content-type":"application/json"},mode:"cors",body:l}),await n(d())}},"SET_CONFIG","CHANGE_ACCOUNT","SET_TILE_MARKERS_FILTER","SET_LOOT_FILTER","SET_GE_FILTER");n.b=Object(r.a)({[p]:(e,n)=>{let{payload:t}=n;return{...e,config:t}},[f]:(e,n)=>{let{payload:t}=n;return{...e,selectedAccount:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,tileMarkers:t}}},[O]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,loot:t}}},[w]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,ge:t}}}},{config:{},selectedAccount:null,filter:{tileMarkers:"",loot:"",ge:""}});const C=e=>e.config.config,T=e=>e.config.selectedAccount,j=e=>e.config.filter.tileMarkers,S=e=>e.config.filter.loot,y=e=>e.config.filter.ge,v=Object(o.a)(C,e=>{const n=[];for(let t in e)if(t.startsWith("rsprofile.rsprofile.")){const a=t.split("."),r=a[2],o=a[3];let i=n.find(e=>e.accountId===r);void 0===i&&(i={accountId:r},n.push(i)),i[o]=e[t]}return n}),E=Object(o.a)(C,T,(e,n)=>{if(!n)return{hasTask:!1};const t="slayer.rsprofile."+n.accountId+".";return e[t+"taskName"]?{hasTask:!0,name:e[t+"taskName"],location:e[t+"taskLocation"],start:e[t+"initialAmount"],remaining:e[t+"amount"],streak:e[t+"streak"],points:e[t+"points"]}:{hasTask:!1}}),A=Object(o.a)(C,T,c.c,u.c,(e,n,t,a)=>{if(!n)return[];const r=[],o="loottracker.rsprofile."+n.accountId+".drops_";for(let[i,s]of Object.entries(e)){if(!i.startsWith(o))continue;if(s=JSON.parse(s),!("name"in s))continue;const e={name:s.name||"",count:parseInt(s.kills||""),type:s.type||"",drops:[]};if(e.date=new Date(0),e.date.setUTCSeconds(parseFloat(s.last)),"drops"in s)for(let n=0;ne.id===r.id);r.name=o&&o.name?o.name:"null";const i=r.name&&t.find(e=>e.id===r.id-1),l=i&&i.name===r.name&&i.id;let c=a[r.id];l&&(isNaN(c)||c<=0)&&(c=a[l]),r.price=(c||0)*r.qty,e.drops.push(r)}e.price=e.drops.reduce((e,n)=>e+n.price,0),r.push(e)}return r}),k=Object(o.a)(A,S,(e,n)=>e.filter(e=>!n||-1!==e.type.toLowerCase().indexOf(n.toLowerCase())||e.drops.filter(e=>-1!==e.name.toLowerCase().indexOf(n.toLowerCase())).length>=1).sort((e,n)=>n.date-e.date)),I=Object(o.a)(C,T,(e,n)=>{const t=new Map;if(!n)return Object(l.b)(t);const a=n.accountId;for(let[r,o]of Object.entries(e))if(r.startsWith("killcount.rsprofile.")){if(r=r.replace("killcount.rsprofile.",""),!r.startsWith(a))continue;if(r=r.replace(a+".",""),t.has(r)){t.get(r).kc=o}else t.set(r,{kc:o})}else if(r.startsWith("personalbest.rsprofile.")){if(r=r.replace("personalbest.rsprofile.",""),!r.startsWith(a))continue;if(r=r.replace(a+".",""),t.has(r)){t.get(r).pb=o}else t.set(r,{pb:o})}return Object(l.b)(t)}),L=Object(o.a)(C,e=>e["runelite.externalPlugins"]?e["runelite.externalPlugins"].split(","):[]),_=Object(o.a)(C,c.c,(e,n)=>{const t=new Map;function a(e,n){e.has(n)||e.set(n,{items:[],icon:-1})}for(let[r,o]of Object.entries(e))if(r.startsWith("banktags."))if(r=r.replace("banktags.",""),r.startsWith("item_")){const e=r.replace("item_","");o.split(",").forEach(r=>{r=r.trim(),a(t,r);const o=Math.abs(parseInt(e)),i=n.find(e=>e.id===o),s=i&&i.name;t.get(r).items.push({id:o,name:s})})}else if(r.startsWith("icon_")){const e=r.replace("icon_","");a(t,e),t.get(e).icon=parseInt(o)}return Object(l.b)(t)}),M=Object(o.a)(C,e=>{const n=e=>{for(const n of g.a)if(n.regions.includes(e))return n.name;return""},t=[];for(let[a,r]of Object.entries(e)){if(!a.startsWith("groundMarker.region_"))continue;const e=parseInt(a.replace("groundMarker.region_",""));t.push({name:n(e),region:e,data:JSON.parse(r)})}return t.sort((e,n)=>(e.name+e.region).toLowerCase().localeCompare((n.name+n.region).toLowerCase())),t}),D=Object(o.a)(C,T,(e,n)=>{const t={};if(!n)return t;const a=n.accountId;for(let[r,o]of Object.entries(e))r.includes(a)&&(t[r]=o);return t}),N=Object(o.a)(C,c.c,T,(e,n,t)=>{if(!t)return[];const a=[],r="grandexchange.rsprofile."+t.accountId+".tradeHistory";if(e[r]){const t=JSON.parse(e[r]);for(const e of t){const t=new Date(0);t.setUTCSeconds(Math.floor(e.t/1e3));const r=n.find(n=>n.id===e.i),o={itemId:e.i,name:r&&r.name?r.name:"null",price:e.p,quantity:e.q,buy:e.b,time:e.t,date:t};a.push(o)}}return a}),P=Object(o.a)(N,y,(e,n)=>e.filter(e=>!n||-1!==e.name.toLowerCase().indexOf(n.toLowerCase())).sort((e,n)=>n.date-e.date))},3:function(e,n,t){"use strict";n.a=e=>async function(n,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=t||{};t.body&&(r.body=JSON.stringify(t.body));const o=`${e}${n}`;let i=await window.fetch(o,r);if(!i.ok)throw new Error(i.statusText);const s=i.headers.get("Content-Type"),l=s&&s.includes("json");if(i=a?await i.arrayBuffer():l?await i.json():await i.text(),i.error)throw new Error(i.statusText);return i}},32:function(e,n,t){"use strict";t.d(n,"b",(function(){return l})),t.d(n,"c",(function(){return g}));var a=t(16),r=t(17),o=t(3),i=t(4);const s=Object(o.a)("https://api.runelite.net/"),{fetchPrices:l,setPrices:c}=Object(a.a)({FETCH_PRICES:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await s(`runelite-${t}/item/prices.js`,{method:"GET"}),r={995:1,13204:1e3};for(const o of a)r[o.id]=o.price;e(c(r))}},"SET_PRICES");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return t}},{});const g=e=>e.prices},33:function(e,n,t){"use strict";n.a={patreon:"https://www.patreon.com/runelite",twitter:"https://twitter.com/RuneLiteClient",github:"https://github.com/runelite",contribute:"https://github.com/runelite/runelite/wiki/Developer-Guide"}},4:function(e,n,t){"use strict";t.d(n,"b",(function(){return l})),t.d(n,"c",(function(){return g}));var a=t(16),r=t(17),o=t(2),i=t(3);const s=Object(i.a)("https://static.runelite.net/"),{fetchBootstrap:l,setBootstrap:c}=Object(a.a)({FETCH_BOOTSTRAP:()=>async e=>{const n=await s("bootstrap.json",{method:"GET"});return e(c(n)),n}},"SET_BOOTSTRAP");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return t}},{});const g=Object(o.a)(e=>e.bootstrap,e=>"version"in e?e.version:"")},46:function(e,n,t){"use strict";var a=t(0),r=t(18),o=t(7),i=t.n(o);const s=(e,n)=>document.querySelector(`meta[${e}]`).setAttribute("content",n);class l extends a.a{render(e){let{title:n,description:t,author:a,image:o,type:l}=e;const c=Object(r.e)();return n=n||"",t=t||"",a=a||"",o=o||i.a.url+i.a.logo,l=l||"website",o.startsWith("/")&&(o=i.a.url+o),document.querySelector("title").text=n,s("name=description",t),s("name=author",a),s("property='og:url'",c),s("property='og:title'",n),s("property='og:description'",t),s("property='og:image'",o),s("property='og:type'",l),null}}n.a=l},47:function(e,n,t){"use strict";var a=t(0),r=t(7),o=t.n(r),i=t(46),s=t(8);n.a=()=>Object(a.g)("div",{style:{backgroundImage:"url(/img/cat.jpg)",backgroundSize:"cover",display:"table",width:"100%",height:"100%",boxShadow:"inset 0 0 5rem rgba(0,0,0,.5)"}},Object(a.g)(i.a,{title:"404 - "+o.a.title}),Object(a.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(a.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700}},Object(a.g)("h1",null,"404"),Object(a.g)("p",{class:"lead"},"Page not found. Click ",Object(a.g)(s.a,{href:"/"},"here")," to return to home page."))))},48:function(e,n,t){"use strict";t.d(n,"b",(function(){return u})),t.d(n,"f",(function(){return m})),t.d(n,"e",(function(){return d})),t.d(n,"d",(function(){return h})),t.d(n,"c",(function(){return p})),t.d(n,"h",(function(){return E})),t.d(n,"i",(function(){return A})),t.d(n,"l",(function(){return k})),t.d(n,"k",(function(){return I})),t.d(n,"j",(function(){return L})),t.d(n,"m",(function(){return _})),t.d(n,"n",(function(){return M})),t.d(n,"p",(function(){return D})),t.d(n,"g",(function(){return N})),t.d(n,"o",(function(){return P}));var a=t(16),r=t(17),o=t(2),i=t(4),s="runelite",l="runelite",c=t(3);const g=Object(c.a)("https://api.github.com/"),{fetchCommits:u,fetchReleases:m,fetchPulls:d,fetchIssues:h,fetchHashes:p,setCommits:f,setLatestCommit:b,setReleases:O,setPulls:w,setDetails:C,setIssues:T,setHashes:j,setFileNames:S}=Object(a.a)({FETCH_COMMITS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await g(`repos/${s}/${l}/compare/${l}:runelite-parent-${t}...${l}:master`,{method:"GET"});let r=e=>{const n=e.commit.message.split("\n");return{title:n.shift(),body:n.join("\n"),url:e.html_url,date:new Date(e.commit.committer.date),author:{name:e.commit.author?e.commit.author.name:"",url:e.author?e.author.html_url:null,avatar:e.author?e.author.avatar_url:null}}};const o=a.commits.filter(e=>!e.commit.message.startsWith("Merge pull request #")).map(r).reverse();let c;c=o.length>0?o[0]:r(a.merge_base_commit);const u=a.files.reduce((e,n)=>({additions:e.additions+n.additions,deletions:e.deletions+n.deletions,changes:e.changes+n.changes}),{additions:0,deletions:0,changes:0});return u.files=a.files.length,u.authors=new Set(o.map(e=>e.author.name)).size,u.commits=o.length,e(C(u)),e(f(o)),e(b(c)),o},FETCH_RELEASES:()=>async e=>{const n=await g(`repos/${s}/${l}/tags`,{method:"GET"}),t=n[0],a=t.commit.sha,r=await g(`repos/${s}/${l}/commits/${a}`,{method:"GET"});t.date=new Date(r.commit.committer.date);const o=n.map(e=>({name:e.name.substr(e.name.lastIndexOf("-")+1,e.name.length),date:e.date,url:e.html_url}));return 0===o.length||e(O(o)),o},FETCH_PULLS:()=>async(e,n)=>{const t=_(n()),a=(await Promise.all([...Array(5).keys()].map(e=>g(`repos/${s}/${l}/pulls?page=${e+1}&state=all&sort=updated&direction=desc&since=${t.date.toISOString()}`,{method:"GET"})))).flat().map(e=>({url:e.html_url,title:e.title,draft:e.draft,mergedAt:e.merged_at?new Date(e.merged_at):null,createdAt:e.created_at?new Date(e.created_at):null,closedAt:e.closed_at?new Date(e.closed_at):null,labels:e.labels.map(e=>({name:e.name,color:e.color}))}));return 0===a.length||e(w(a)),a},FETCH_ISSUES:()=>async(e,n)=>{const t=_(n()),a=(await Promise.all([...Array(5).keys()].map(e=>g(`repos/${s}/${l}/issues?page=${e+1}&state=all&sort=updated&direction=desc&since=${t.date.toISOString()}`,{method:"GET"})))).flat().filter(e=>!e.pull_request).map(e=>({url:e.html_url,title:e.title,draft:e.draft,createdAt:e.created_at?new Date(e.created_at):null,closedAt:e.closed_at?new Date(e.closed_at):null,labels:e.labels.map(e=>({name:e.name,color:e.color}))}));return 0===a.length||e(T(a)),a},FETCH_HASHES:()=>async(e,n)=>{const t=await g(`repos/${s}/launcher/releases`,{method:"GET"}),a={},r={},o=new RegExp(/([a-zA-Z0-9]{64})\s+\*?(([\w-]+)?RuneLite[.\w-]+)/gi);return t.forEach(e=>{if(!e.body)return;let n=o.exec(e.body);for(;n;)a[n[1]]=1,r[n[2].toLowerCase()]=1,n=o.exec(e.body)}),e(j(a)),e(S(r)),a}},"SET_COMMITS","SET_LATEST_COMMIT","SET_RELEASES","SET_PULLS","SET_DETAILS","SET_ISSUES","SET_HASHES","SET_FILE_NAMES");n.a=Object(r.a)({[f]:(e,n)=>{let{payload:t}=n;return{...e,commits:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,latestCommit:t}},[O]:(e,n)=>{let{payload:t}=n;return{...e,releases:t}},[w]:(e,n)=>{let{payload:t}=n;return{...e,pulls:t}},[C]:(e,n)=>{let{payload:t}=n;return{...e,details:t}},[T]:(e,n)=>{let{payload:t}=n;return{...e,issues:t}},[j]:(e,n)=>{let{payload:t}=n;return{...e,hashes:t}},[S]:(e,n)=>{let{payload:t}=n;return{...e,fileNames:t}}},{commits:[],pulls:[],releases:[],issues:[],details:{additions:0,deletions:0,changes:0,authors:0,commits:0,files:0},hashes:{},fileNames:{}});const y=e=>e.git.pulls,v=e=>e.git.issues,E=e=>e.git.commits,A=e=>e.git.details,k=e=>e.git.latestCommit,I=e=>e.git.hashes,L=e=>e.git.fileNames,_=Object(o.a)(e=>e.git.releases,e=>e.length>0?e[0]:{}),M=Object(o.a)(_,y,(e,n)=>n?n.filter(n=>n.mergedAt&&n.mergedAt>=e.date).sort((e,n)=>n.mergedAt-e.mergedAt):[]),D=Object(o.a)(_,y,(e,n)=>n?n.filter(n=>!n.mergedAt&&!n.closedAt&&n.createdAt>=e.date).sort((e,n)=>n.createdAt-e.createdAt):[]),N=Object(o.a)(_,v,(e,n)=>n?n.filter(n=>n.closedAt&&n.closedAt>=e.date).filter(e=>!e.labels.some(e=>"invalid"===e.name||"duplicate"===e.name)).sort((e,n)=>n.closedAt-e.closedAt):[]),P=Object(o.a)(_,v,(e,n)=>n?n.filter(n=>!n.closedAt&&n.createdAt>=e.date).sort((e,n)=>n.createdAt-e.createdAt):[])},49:function(e,n,t){"use strict";n.a=[{name:"Abyssal Sire",regions:[11851,11850,12363,12362]},{name:"Cerberus",regions:[4883,5140,5395]},{name:"Commander Zilyana",regions:[11602]},{name:"Corporeal Beast",regions:[11842,11844]},{name:"Dagannoth Kings",regions:[11588,11589]},{name:"General Graardor",regions:[11347]},{name:"Giant Mole",regions:[6993,6992]},{name:"Grotesque Guardians",regions:[6727]},{name:"Hespori",regions:[5021]},{name:"Alchemical Hydra",regions:[5536]},{name:"Kalphite Queen",regions:[13972]},{name:"Kraken",regions:[9116]},{name:"Kree'arra",regions:[11346]},{name:"K'ril Tsutsaroth",regions:[11603]},{name:"Nightmare of Ashihama",regions:[15515]},{name:"Sarachnis",regions:[7322]},{name:"Skotizo",regions:[6810]},{name:"Thermonuclear smoke devil",regions:[9363,9619]},{name:"Vorkath",regions:[9023]},{name:"Wintertodt",regions:[6462]},{name:"Zalcano",regions:[12126]},{name:"Zulrah",regions:[9007]},{name:"Al Kharid",regions:[13105,13106]},{name:"Arceuus",regions:[6458,6459,6460,6714,6715]},{name:"Ardougne",regions:[9779,9780,10035,10036,10291,10292,10547,10548]},{name:"Bandit Camp",regions:[12590]},{name:"Barbarian Outpost",regions:[10039]},{name:"Barbarian Village",regions:[12341]},{name:"Bedabin Camp",regions:[12591]},{name:"Brimhaven",regions:[11057,11058]},{name:"Burgh de Rott",regions:[13874,13873,14130,14129]},{name:"Burthorpe",regions:[11319,11575]},{name:"Canifis",regions:[13878]},{name:"Catherby",regions:[11317,11318,11061]},{name:"Corsair Cove",regions:[10028,10284]},{name:"Darkmeyer",regions:[14388,14644]},{name:"Dorgesh-Kaan",regions:[10835,10834]},{name:"Draynor",regions:[12338,12339]},{name:"Edgeville",regions:[12342]},{name:"Entrana",regions:[11060,11316]},{name:"Etceteria",regions:[10300]},{name:"Falador",regions:[11828,11572,11827,12084]},{name:"Gu'Tanoth",regions:[10031]},{name:"Gwenith",regions:[8757]},{name:"Hosidius",regions:[6710,6711,6712,6455,6456,6966,6967,6968,7221,7223,7224,7478,7479]},{name:"Jatizso",regions:[9531]},{name:"Keldagrim",regions:[11423,11422,11679,11678]},{name:"Land's End",regions:[5941]},{name:"Lletya",regions:[9265,11103]},{name:"Lovakengj",regions:[5692,5691,5947,6203,6202,5690,5946]},{name:"Lumbridge",regions:[12850]},{name:"Lunar Isle",regions:[8253,8252,8509,8508]},{name:"Marim",regions:[11051]},{name:"Meiyerditch",regions:[14132,14387,14386,14385]},{name:"Miscellania",regions:[10044]},{name:"Mor Ul Rek",regions:[9808,9807,10064,10063]},{name:"Mort'ton",regions:[13875]},{name:"Mos Le'Harmless",regions:[14638,14639,14894,14895,15151,15406,15407]},{name:"Mount Karuulm",regions:[5179,4923,5180]},{name:"Mountain Camp",regions:[11065]},{name:"Mynydd",regions:[8501]},{name:"Nardah",regions:[13613]},{name:"Neitiznot",regions:[9275]},{name:"Port Piscarilius",regions:[6971,7227,6970,7226]},{name:"Piscatoris",regions:[9273]},{name:"Pollnivneach",regions:[13358]},{name:"Port Khazard",regions:[10545]},{name:"Port Phasmatys",regions:[14646]},{name:"Port Sarim",regions:[12081,12082]},{name:"Prifddinas",regions:[8499,8500,8755,8756,9011,9012,9013,12894,12895,13150,13151]},{name:"Rellekka",regions:[10297,10553]},{name:"Rimmington",regions:[11826,11570]},{name:"Seers' Village",regions:[10806]},{name:"Shayzien",regions:[5944,5943,6200,6199,5686,5687,5688,5689,5945]},{name:"Shilo Village",regions:[11310]},{name:"Slepe",regions:[14643,14899,14900,14901]},{name:"Sophanem",regions:[13099]},{name:"Tai Bwo Wannai",regions:[11056,11055]},{name:"Taverley",regions:[11574,11573]},{name:"Tree Gnome Stronghold",regions:[9525,9526,9782,9781]},{name:"Tree Gnome Village",regions:[10033]},{name:"Troll Stronghold",regions:[11321,11421]},{name:"Uzer",regions:[13872]},{name:"Varrock",regions:[12596,12597,12852,12853,12854,13108,13109,13110]},{name:"Ver Sinhaza",regions:[14642]},{name:"Void Knights' Outpost",regions:[10537]},{name:"Weiss",regions:[11325,11581]},{name:"Witchaven",regions:[10803]},{name:"Yanille",regions:[10288,10032]},{name:"Zanaris",regions:[9285,9541,9540,9797]},{name:"Zul-Andra",regions:[8495,8751]},{name:"Abandoned Mine",regions:[13718,11079,11078,11077,10823,10822,10821]},{name:"Ah Za Rhoon",regions:[11666]},{name:"Ancient Cavern",regions:[6483,6995]},{name:"Ape Atoll Dungeon",regions:[11150,10894]},{name:"Ape Atoll Banana Plantation",regions:[10895]},{name:"Ardougne Sewers",regions:[10136,10647]},{name:"Asgarnian Ice Caves",regions:[11925,12181]},{name:"Tomb of Bervirius",regions:[11154]},{name:"Brimhaven Dungeon",regions:[10901,10900,10899,10645,10644,10643]},{name:"Brine Rat Cavern",regions:[10910]},{name:"Catacombs of Kourend",regions:[6557,6556,6813,6812]},{name:"Champions' Challenge",regions:[12696]},{name:"Chaos Druid Tower",regions:[10392]},{name:"Chasm of Fire",regions:[5789]},{name:"Chasm of Tears",regions:[12948]},{name:"Chinchompa Hunting Ground",regions:[10129]},{name:"Clock Tower Basement",regions:[10390]},{name:"Corsair Cove Dungeon",regions:[8076,8332]},{name:"Crabclaw Caves",regions:[6553,6809]},{name:"Crandor Dungeon",regions:[11414]},{name:"Crash Site Cavern",regions:[8280,8536]},{name:"Crumbling Tower",regions:[7827]},{name:"Daeyalt Essence Mine",regions:[14744]},{name:"Digsite Dungeon",regions:[13464,13465]},{name:"Dorgesh-Kaan South Dungeon",regions:[10833]},{name:"Dorgeshuun Mines",regions:[12950,13206]},{name:"Draynor Sewers",regions:[12439,12438]},{name:"Dwarven Mines",regions:[12185,12184,12183]},{name:"Eagles' Peak Dungeon",regions:[8013]},{name:"Ectofuntus",regions:[14746]},{name:"Edgeville Dungeon",regions:[12441,12442,12443,12698]},{name:"Elemental Workshop",regions:[10906,7760]},{name:"Enakhra's Temple",regions:[12423]},{name:"Evil Chicken's Lair",regions:[9796]},{name:"Experiment Cave",regions:[14235,13979]},{name:"Ferox Enclave Dungeon",regions:[12700]},{name:"Forthos Dungeon",regions:[7323]},{name:"Fremennik Slayer Dungeon",regions:[10907,10908,11164]},{name:"Glarial's Tomb",regions:[10137]},{name:"Goblin Cave",regions:[10393]},{name:"Grand Tree Tunnels",regions:[9882]},{name:"H.A.M. Hideout",regions:[12694]},{name:"H.A.M. Store room",regions:[10321]},{name:"Heroes' Guild Mine",regions:[11674]},{name:"Iorwerth Dungeon",regions:[12737,12738,12993,12994]},{name:"Isle of Souls Dungeon",regions:[8593]},{name:"Jatizso Mines",regions:[9631]},{name:"Jiggig Burial Tomb",regions:[9875,9874]},{name:"Jogre Dungeon",regions:[11412]},{name:"Karamja Dungeon",regions:[11413]},{name:"Karuulm Slayer Dungeon",regions:[5280,5279,5023,5535,5022,4766,4510,4511,4767,4768,4512]},{name:"KGP Headquarters",regions:[10658]},{name:"Kruk's Dungeon",regions:[9358,9359,9360,9615,9616,9871,10125,10126,10127,10128,10381,10382,10383,10384,10637,10638,10639,10640]},{name:"Legends' Guild Dungeon",regions:[10904]},{name:"Lighthouse",regions:[10140]},{name:"Lizardman Caves",regions:[5275]},{name:"Lizardman Temple",regions:[5277]},{name:"Lumbridge Swamp Caves",regions:[12693,12949]},{name:"Lunar Isle Mine",regions:[9377]},{name:"Maniacal Monkey Hunter Area",regions:[11662]},{name:"Meiyerditch Mine",regions:[9544]},{name:"Miscellania Dungeon",regions:[10144,10400]},{name:"Mogre Camp",regions:[11924]},{name:"Mos Le'Harmless Caves",regions:[14994,14995,15251]},{name:"Motherlode Mine",regions:[14679,14680,14681,14935,14936,14937,15191,15192,15193]},{name:"Mourner Tunnels",regions:[7752,8008]},{name:"Mouse Hole",regions:[9046]},{name:"Myreditch Laboratories",regions:[14232,14233,14487,14488]},{name:"Myreque Hideout",regions:[13721,13974,13977,13978]},{name:"Myths' Guild Dungeon",regions:[7564,7820,7821]},{name:"Observatory Dungeon",regions:[9362]},{name:"Ogre Enclave",regions:[10387]},{name:"Ourania Cave",regions:[12119]},{name:"Quidamortem Cave",regions:[4763]},{name:"Rashiliyta's Tomb",regions:[11668]},{name:"Saradomin Shrine (Paterdomus]",regions:[13722]},{name:"Shade Catacombs",regions:[13975]},{name:"Shadow Dungeon",regions:[10575,10831]},{name:"Shayzien Crypts",regions:[6043]},{name:"Sisterhood Sanctuary",regions:[14999,15e3,15001,15255,15256,15257,15511,15512,15513]},{name:"Smoke Dungeon",regions:[12946,13202]},{name:"Sophanem Dungeon",regions:[13200]},{name:"Sourhog Cave",regions:[12695]},{name:"Stronghold of Security",regions:[7505,8017,8530,9297]},{name:"Stronghold Slayer Cave",regions:[9624,9625,9880,9881]},{name:"Tarn's Lair",regions:[12616,12615]},{name:"Taverley Dungeon",regions:[11416,11417,11671,11672,11673,11928,11929]},{name:"Temple of Ikov",regions:[10649,10905,10650]},{name:"Temple of Light",regions:[7496]},{name:"Temple of Marimbo",regions:[11151]},{name:"The Warrens",regions:[7070,7326]},{name:"Dungeon of Tolna",regions:[13209]},{name:"Tower of Life Basement",regions:[12100]},{name:"Trahaearn Mine",regions:[13250]},{name:"Tunnel of Chaos",regions:[12625]},{name:"Underground Pass",regions:[9369,9370]},{name:"Varrock Sewers",regions:[12954,13210]},{name:"Viyeldi Caves",regions:[9545,11153]},{name:"Warriors' Guild Basement",regions:[11675]},{name:"Water Ravine",regions:[13461]},{name:"Waterbirth Dungeon",regions:[9886,10142,7492,7748]},{name:"Waterfall Dungeon",regions:[10394]},{name:"Werewolf Agility Course",regions:[14234]},{name:"White Wolf Mountain Caves",regions:[11418,11419]},{name:"Witchhaven Shrine Dungeon",regions:[10903]},{name:"Wizards' Tower Basement",regions:[12437]},{name:"Woodcutting Guild Dungeon",regions:[6298]},{name:"Wyvern Cave",regions:[14495,14496]},{name:"Yanille Agility Dungeon",regions:[10388]},{name:"Ardougne Rat Pits",regions:[10646]},{name:"Barbarian Assault",regions:[7508,7509,10322]},{name:"Barrows",regions:[14131,14231]},{name:"Blast Furnace",regions:[7757]},{name:"Brimhaven Agility Arena",regions:[11157]},{name:"Burthorpe Games Room",regions:[8781]},{name:"Castle Wars",regions:[9520,9620]},{name:"Clan Wars",regions:[12621,12622,12623,13130,13131,13133,13134,13135,13386,13387,13390,13641,13642,13643,13644,13645,13646,13647,13899,13900,14155,14156]},{name:"Duel Arena",regions:[13362,13363]},{name:"Fishing Trawler",regions:[7499]},{name:"The Gauntlet",regions:[12127,7512,7768]},{name:"Hallowed Sepulchre",regions:[8797,9051,9052,9053,9054,9309,9563,9565,9821,10074,10075,10077]},{name:"The Inferno",regions:[9043]},{name:"Keldagrim Rat Pits",regions:[7753]},{name:"LMS - Deserted Island",regions:[13658,13659,13660,13914,13915,13916]},{name:"LMS - Wild Varrock",regions:[13918,13919,13920,14174,14175,14176,14430,14431,14432]},{name:"Mage Training Arena",regions:[13462,13463]},{name:"Nightmare Zone",regions:[9033]},{name:"Pest Control",regions:[10536]},{name:"Port Sarim Rat Pits",regions:[11926]},{name:"Pyramid Plunder",regions:[7749]},{name:"Rogues' Den",regions:[11855,11854,12111,12110]},{name:"Sorceress's Garden",regions:[11605]},{name:"Soul Wars",regions:[8493,8748,8749,9005]},{name:"Temple Trekking",regions:[8014,8270,8256,8782,9038,9294,9550,9806]},{name:"Tithe Farm",regions:[7222]},{name:"Trouble Brewing",regions:[15150]},{name:"Tzhaar Fight Caves",regions:[9551]},{name:"Tzhaar Fight Pits",regions:[9552]},{name:"Varrock Rat Pits",regions:[11599]},{name:"Volcanic Mine",regions:[15263,15262]},{name:"Chambers of Xeric",regions:[12889,13136,13137,13138,13139,13140,13141,13145,13393,13394,13395,13396,13397,13401]},{name:"Theatre of Blood",regions:[12611,12612,12613,12867,12869,13122,13123,13125,13379]},{name:"Abyssal Area",regions:[12108]},{name:"Abyssal Nexus",regions:[12106]},{name:"Agility Pyramid",regions:[12105,13356]},{name:"Air Altar",regions:[11339]},{name:"Al Kharid Mine",regions:[13107]},{name:"Ape Atoll",regions:[10795,10974,11050]},{name:"Arandar",regions:[9266,9267,9523]},{name:"Asgarnia",regions:[11825,11829,11830,12085,12086]},{name:"Battlefield",regions:[10034]},{name:"Battlefront",regions:[5433,5434]},{name:"Blast Mine",regions:[5948]},{name:"Body Altar",regions:[10059]},{name:"Chaos Altar",regions:[9035]},{name:"Cosmic Altar",regions:[8523]},{name:"Cosmic Entity's Plane",regions:[8267]},{name:"Crabclaw Isle",regions:[6965]},{name:"Crafting Guild",regions:[11571]},{name:"Crandor",regions:[11314,11315]},{name:"Crash Island",regions:[11562]},{name:"Dark Altar",regions:[6716]},{name:"Death Altar",regions:[8779]},{name:"Death Plateau",regions:[11320]},{name:"Dense Essence Mine",regions:[6972]},{name:"Digsite",regions:[13365]},{name:"Dragontooth Island",regions:[15159]},{name:"Draynor Manor",regions:[12340]},{name:"Drill Sergeant's Training Camp",regions:[12619]},{name:"Eagles' Peak",regions:[9270]},{name:"Earth Altar",regions:[10571]},{name:"Enchanted Valley",regions:[12102]},{name:"Evil Twin Crane Room",regions:[7504]},{name:"Exam Centre",regions:[13364]},{name:"Falador Farm",regions:[12083]},{name:"Farming Guild",regions:[4922]},{name:"Feldip Hills",regions:[9773,9774,10029,10030,10285,10286,10287,10542,10543]},{name:"Fenkenstrain's Castle",regions:[14135]},{name:"Fire Altar",regions:[10315]},{name:"Fisher Realm",regions:[10569]},{name:"Fishing Guild",regions:[10293]},{name:"Fishing Platform",regions:[11059]},{name:"The Forsaken Tower",regions:[5435]},{name:"Fossil Island",regions:[14650,14651,14652,14906,14907,14908,15162,15163,15164]},{name:"Freaky Forester's Clearing",regions:[10314]},{name:"Fremennik Province",regions:[10296,10552,10808,10809,10810,10811,11064]},{name:"Fremennik Isles",regions:[9276,9532]},{name:"Frogland",regions:[9802]},{name:"Galvek Shipwrecks",regions:[6486,6487,6488,6489,6742,6743,6744,6745]},{name:"Gorak's Plane",regions:[12115]},{name:"Grand Exchange",regions:[12598]},{name:"God Wars Dungeon",regions:[11578]},{name:"Harmony Island",regions:[15148]},{name:"Ice Path",regions:[11322,11323]},{name:"Iceberg",regions:[10558,10559]},{name:"Icyene Graveyard",regions:[14641,14897,14898]},{name:"Isafdar",regions:[8497,8753,8754,9009,9010]},{name:"Island of Stone",regions:[9790]},{name:"Isle of Souls",regions:[8236,8237,8238,8491,8492,8494,8747,8750,9003,9004,9006,9260,9261,9262]},{name:"Jiggig",regions:[9775]},{name:"Kandarin",regions:[9014,9263,9264,9519,9524,9527,9776,9783,10037,10290,10294,10546,10551,10805]},{name:"Karamja",regions:[10801,10802,11054,11311,11312,11313,11566,11567,11568,11569,11822]},{name:"Kebos Lowlands",regions:[4665,4666,4921,5178]},{name:"Kebos Swamp",regions:[4664,4920,5174,5175,5176,5430,5431]},{name:"Kharazi Jungle",regions:[11053,11309,11565,11821]},{name:"Kharidian Desert",regions:[12844,12845,12846,12847,12848,13100,13101,13102,13103,13104,13357,13359,13360,13614,13615,13616]},{name:"Killerwatt Plane",regions:[10577]},{name:"Great Kourend",regions:[6201,6457,6713]},{name:"Kourend Woodland",regions:[5942,6197,6453]},{name:"Law Altar",regions:[9803]},{name:"Legends' Guild",regions:[10804]},{name:"Lighthouse",regions:[10040]},{name:"Lithkren",regions:[14142,14398]},{name:"Lumbridge Swamp",regions:[12593,12849]},{name:"Max Island",regions:[11063]},{name:"McGrubor's Wood",regions:[10550]},{name:"Mime's Stage",regions:[8010]},{name:"Mind Altar",regions:[11083]},{name:"Misthalin",regions:[12594,12595,12851]},{name:"Molch",regions:[5177]},{name:"Molch Island",regions:[5432]},{name:"Morytania",regions:[13619,13620,13621,13622,13876,13877,13879,14133,14134,14389,14390,14391,14645,14647]},{name:"Mount Quidamortem",regions:[4662,4663,4918,4919]},{name:"Mr. Mordaut's Classroom",regions:[7502]},{name:"Mudskipper Point",regions:[11824]},{name:"Mysterious Old Man's Maze",regions:[11590,11591,11846,11847]},{name:"Myths' Guild",regions:[9772]},{name:"Nature Altar",regions:[9547]},{name:"Northern Tundras",regions:[6204,6205,6717]},{name:"Observatory",regions:[9777]},{name:"Odd One Out",regions:[7754]},{name:"Otto's Grotto",regions:[10038]},{name:"Ourania Hunter Area",regions:[9778]},{name:"Pirates' Cove",regions:[8763]},{name:"Piscatoris Hunter Area",regions:[9015,9016,9271,9272,9528]},{name:"Player Owned House",regions:[7513,7514,7769,7770]},{name:"Poison Waste",regions:[8752,9008]},{name:"Port Tyras",regions:[8496]},{name:"Puro Puro",regions:[10307]},{name:"Quarry",regions:[12589]},{name:"Ranging Guild",regions:[10549]},{name:"Ratcatchers Mansion",regions:[11343]},{name:"Rune Essence Mine",regions:[11595]},{name:"ScapeRune",regions:[10058,7758,8261]},{name:"Ship Yard",regions:[11823]},{name:"Silvarea",regions:[13366]},{name:"Sinclair Mansion",regions:[10807]},{name:"Slayer Tower",regions:[13623,13723]},{name:"Soul Altar",regions:[7228]},{name:"Troll Arena",regions:[11576]},{name:"Trollheim",regions:[11577]},{name:"Trollweiss Mountain",regions:[11066,11067,11068]},{name:"Underwater",regions:[15008,15264]},{name:"Water Altar",regions:[10827]},{name:"Wintertodt Camp",regions:[6461]},{name:"Wizards' Tower",regions:[12337]},{name:"Woodcutting Guild",regions:[6198,6454]},{name:"Wrath Altar",regions:[9291]}]},5:function(e,n,t){"use strict";var a=t(0);class r extends a.a{constructor(){super(),this.state={componentData:null}}loadComponent(){const e=this.props.getComponent();e&&(e.then?e.then(e=>{this.setState({componentData:e.default||e})}):this.setState({componentData:e.default||e}))}componentWillMount(){this.loadComponent()}componentWillReceiveProps(e){this.props.path&&this.props.path!==e.path&&this.setState({componentData:null},()=>{this.loadComponent()})}render(){return this.state.componentData?this.props.path||this.props.default?Object(a.g)(this.state.componentData,this.props):this.state.componentData:Object(a.g)("span",null,"Loading....")}}n.a=r},50:function(e,n,t){"use strict";t.d(n,"c",(function(){return d})),t.d(n,"b",(function(){return h})),t.d(n,"d",(function(){return p})),t.d(n,"i",(function(){return w})),t.d(n,"j",(function(){return C})),t.d(n,"f",(function(){return T})),t.d(n,"g",(function(){return j})),t.d(n,"e",(function(){return S})),t.d(n,"h",(function(){return v}));var a=t(16),r=t(17),o=t(2),i=t(4),s=t(28),l=t(3);const c=Object(l.a)("https://repo.runelite.net/plugins/"),g=Object(l.a)("https://api.runelite.net/"),u=Object(l.a)("https://api.github.com/"),m=Object(l.a)("https://raw.githubusercontent.com/runelite/plugin-hub/master/plugins/"),{fetchExternalPlugins:d,fetchExternalPluginInfo:h,fetchPluginHubStats:p,setExternalPlugins:f,setExternalPluginInfo:b,setPluginHubStats:O,setPluginFilter:w,setPluginSorting:C}=Object(a.a)({FETCH_EXTERNAL_PLUGINS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await c(`manifest/${t}_full.js`,{method:"GET"},!0),r=new DataView(a).getUint32(0),o=new TextDecoder("utf-8").decode(new Uint8Array(a.slice(r+4))),s=JSON.parse(o),l=s.display,g=s.jars,u=l.map(e=>(e.iconHash&&(e.imageUrl=`https://repo.runelite.net/plugins/icon/${e.internalName}_${e.iconHash}.png`),e.working=!!g.find(n=>n.internalName===e.internalName),e.description=e.description.replace(/ /g,"\n").replace(/<[^>]+>/g,""),e.unavailableReason=(e.unavailableReason||"").replace(/ /g,"\n").replace(/<[^>]+>/g,""),e));return e(f(u)),u},FETCH_EXTERNAL_PLUGIN_INFO:e=>async(n,t)=>{const a=await m(e,{method:"GET"});let r="",o="";if(a.split("\n").forEach(e=>{const n=e.split("=");"repository"===n[0]&&(r=n[1]),"commit"===n[0]&&(o=n[1])}),!r)return;const i=r.replace("https://","").replace("http://","").split("/");if(i.length<3)return;const s=i[1],l=i[2].replace(".git","");let c=await u(`repos/${s}/${l}/readme?ref=${o}`,{method:"GET",headers:{accept:"application/vnd.github.VERSION.html"}}),g="";function d(e,n){if(e.startsWith("#"))return"#user-content-"+e.substring(1);e.startsWith("/")&&(e=e.substring(1));let t=`https://github.com/${s}/${l}/tree/${o}/`;return"IMG"===n.tagName&&(t=`https://raw.githubusercontent.com/${s}/${l}/${o}/`),e=new URL(e,t).toString()}try{let e=(new DOMParser).parseFromString(c,"text/html");e.querySelectorAll("a").forEach(e=>{e.href=d(e.getAttribute("href"),e)}),e.querySelectorAll("img").forEach(e=>{let n=e.getAttribute("src");if(n.endsWith(".gif")){var t;let a=e.title||e.alt||n;if("A"===(null===(t=e.parentElement)||void 0===t?void 0:t.tagName))e.parentElement.textContent=a;else{let t=document.createElement("a");t.target="_blank",t.textContent=a,t.href=d(n,t),e.replaceWith(t)}}else e.src=d(n,e)}),g=e.body.innerHTML}catch(h){console.error("Loading readme failed",h)}return n(b({internalName:e,github:{readme:g,user:s,repo:l,commit:o}})),g},FETCH_PLUGIN_HUB_STATS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await g(`runelite-${t}/pluginhub`,{method:"GET"});return e(O(a)),a}},"SET_EXTERNAL_PLUGINS","SET_EXTERNAL_PLUGIN_INFO","SET_PLUGIN_HUB_STATS","SET_PLUGIN_FILTER","SET_PLUGIN_SORTING");n.a=Object(r.a)({[f]:(e,n)=>{let{payload:t}=n;return{...e,data:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,data:e.data.filter(e=>e.internalName!==t.internalName).concat([{...e.data.find(e=>e.internalName===t.internalName),...t}])}},[O]:(e,n)=>{let{payload:t}=n;return{...e,stats:t}},[w]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,...t}}},[C]:(e,n)=>{let{payload:t}=n;return{...e,sorting:t}}},{filter:{name:""},sorting:"active installs",data:[],stats:{}});const T=e=>e.externalPlugins.filter,j=e=>e.externalPlugins.sorting,S=Object(o.a)(e=>e.externalPlugins.data,e=>e.externalPlugins.stats,s.g,(e,n,t)=>e.map(e=>(e.installed=t.includes(e.internalName),e.count=n.hasOwnProperty(e.internalName)?n[e.internalName]:0,e))),y=Object(o.a)(S,T,(e,n)=>e.filter(e=>!n.name||-1!==e.displayName.toLowerCase().indexOf(n.name.toLowerCase())||-1!==e.author.toLowerCase().indexOf(n.name.toLowerCase())||-1!==e.description.toLowerCase().indexOf(n.name.toLowerCase())||e.tags&&e.tags.some(e=>e.toLowerCase().includes(n.name.toLowerCase())))),v=Object(o.a)(j,y,(e,n)=>{switch(n=n.sort((e,n)=>e.displayName.toLowerCase().localeCompare(n.displayName.toLowerCase())).sort((e,n)=>n.working-e.working),e){case"active installs":return n.sort((e,n)=>n.count-e.count);case"time updated":return n.sort((e,n)=>n.lastUpdatedAt-e.lastUpdatedAt);case"time added":return n.sort((e,n)=>n.createdAt-e.createdAt);case"installed":return n.sort((e,n)=>e.installed===n.installed?0:e.installed?-1:1);case"name":default:return n}})},69:function(e,n,t){"use strict";t.d(n,"a",(function(){return a}));const a=e=>11===(new Date).getMonth()?e.replace(".webp","_xmas.webp"):e},7:function(e,n){e.exports={title:"RuneLite",url:"https://runelite.net",logo:"/img/runelite_logo_transparent_small.webp",description:"A popular free, open-source and super fast client for Old School RuneScape",images:["/img/carousel/1.webp","/img/carousel/2.webp","/img/carousel/3.webp"],buttons:[{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetup.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"64 bit"},os:"Windows64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetup32.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"32 bit"},os:"Windows32"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetupAArch64.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"ARM64"},os:"WindowsArm64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-x64.dmg",icon:"fab fa-fw fa-apple",text:{os:"macOS",arch:"Intel"},os:"macOS"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-aarch64.dmg",icon:"fab fa-fw fa-apple",text:{os:"macOS",arch:"Apple silicon"},os:"macOS"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite.AppImage",icon:"fab fa-fw fa-linux",text:{os:"Linux",arch:"x64"},os:"Linux64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-aarch64.AppImage",icon:"fab fa-fw fa-linux",text:{os:"Linux",arch:"ARM64"},os:"LinuxAarch64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite.jar",icon:"fas fa-fw fa-coffee",text:{os:"All platforms"},os:"all"}]}},70:function(e,n,t){"use strict";t.d(n,"c",(function(){return s})),t.d(n,"b",(function(){return l})),t.d(n,"e",(function(){return u})),t.d(n,"d",(function(){return m}));var a=t(16),r=t(17),o=t(3);const i=Object(o.a)("https://api.runelite.net/"),{fetchSessionCount:s,fetchLoggedInCount:l,setSessionCount:c,setLoggedInCount:g}=Object(a.a)({FETCH_SESSION_COUNT:()=>async e=>{const n=await i("session/count",{method:"GET"});return e(c(n)),n},FETCH_LOGGED_IN_COUNT:()=>async e=>{const n=await i("session/count/logged-in",{method:"GET"});return e(g(n)),n}},"SET_SESSION_COUNT","SET_LOGGED_IN_COUNT");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return{...e,sessionCount:t}},[g]:(e,n)=>{let{payload:t}=n;return{...e,loggedInCount:t}}},{sessionCount:0,loggedInCount:0});const u=e=>e.session.sessionCount,m=e=>e.session.loggedInCount},71:function(e,n,t){"use strict";t.d(n,"b",(function(){return o}));var a=t(16),r=t(17);const{setActiveTag:o}=Object(a.a)("SET_ACTIVE_TAG");n.a=Object(r.a)({[o]:(e,n)=>{let{payload:t}=n;return{...e,activeTag:t}}},{activeTag:""})},72:function(e,n,t){"use strict";t.d(n,"b",(function(){return o}));var a=t(16),r=t(17);const{setActiveTile:o}=Object(a.a)("SET_ACTIVE_TILE");n.a=Object(r.a)({[o]:(e,n)=>{let{payload:t}=n;return{...e,activeTile:t}}},{activeTile:""})},76:function(e,n,t){e.exports=t(124)}},[[76,3,7]]]);
-//# sourceMappingURL=main.0c8840cd.chunk.js.map
\ No newline at end of file
+(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[2],{113:function(e,n,t){},114:function(e,n,t){},115:function(e,n,t){},116:function(e,n,t){},117:function(e,n,t){},124:function(e,n,t){"use strict";t.r(n);t(77),t(108);var a=t(0),r=t(27),o=t(8),i=t(11),s=(t(113),t(114),t(115),t(116),t(7)),l=t.n(s),c=t(33),g=t(69);function u(){const e=document.getElementsByClassName("navbar-collapse")[0],n=e.style.display,t="none"===n||""===n;e.style.display=t?"block":"none"}var m=e=>{let{dark:n,login:t,loggedIn:r,username:i}=e;return Object(a.g)("nav",{class:"navbar navbar-expand-lg fixed-top navbar-dark"},Object(a.g)(o.a,{onClick:u,class:"navbar-brand",activeClassName:"active",href:"/"},Object(a.g)("img",{src:Object(g.a)(l.a.logo),class:"icon",alt:"RuneLite"})," "),Object(a.g)("input",{type:"checkbox",id:"navbar-check-box"}),Object(a.g)("label",{for:"navbar-check-box",class:"navbar-toggler"},Object(a.g)("span",{class:"navbar-toggler-icon",onClick:u})),Object(a.g)("div",{class:"collapse navbar-collapse",id:"navbar"},Object(a.g)("ul",{class:"navbar-nav"},Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/features"},"Features")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/blog"},"Blog")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/pulse"},"Pulse")),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link",href:"https://github.com/runelite/runelite/wiki"},"Wiki")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/tag"},"Tags")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/tile"},"Tile markers")),Object(a.g)("li",{class:"nav-item"},Object(a.g)(o.a,{onClick:u,class:"nav-link",activeClassName:"active",href:"/plugin-hub"},"Plugin Hub"))),Object(a.g)("ul",{class:"navbar-nav ml-auto"},Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link",href:c.a.patreon},"Become a patron")),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:"https://runelite.net/discord",title:"Discord"},Object(a.g)("i",{class:"fab fa-discord"}),Object(a.g)("span",{class:"d-lg-none"}," Discord"))),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:c.a.twitter,title:"Twitter"},Object(a.g)("i",{class:"fab fa-twitter"}),Object(a.g)("span",{class:"d-lg-none"}," Twitter"))),Object(a.g)("li",{class:"nav-item"},Object(a.g)("a",{class:"nav-link nav-icon",href:c.a.github,title:"GitHub"},Object(a.g)("i",{class:"fab fa-github"}),Object(a.g)("span",{class:"d-lg-none"}," GitHub"))),Object(a.g)("li",{class:"nav-item",onClick:u},r?Object(a.g)("a",{class:"nav-link",href:"/account/home"},Object(a.g)("i",{class:"fas fa-user fa-fw"})," ",i):Object(a.g)("form",{class:"form-inline"},Object(a.g)("button",{class:"btn btn-primary",type:"button",onClick:t},"Login"))))))};t(117);var d=e=>{let{loading:n}=e;return Object(a.g)("div",{class:"fixed-top animated loader",style:{display:n?"block":"none"}})},h=t(5),p=t(47),f=t(20);var b=Object(r.b)(e=>({loggedIn:Object(f.b)(e),...e.app,...e.account}),e=>Object(i.b)({login:f.c},e))(e=>{let{loading:n,navbarDark:r,login:i,logout:s,loggedIn:l,username:c}=e;return Object(a.g)("div",{style:{height:"100%"}},Object(a.g)(d,{loading:n>0}),Object(a.g)(m,{dark:r,login:i,logout:s,loggedIn:l,username:c}),Object(a.g)(o.b,null,Object(a.g)(h.a,{path:"/",getComponent:()=>t.e(4).then(t.bind(null,467))}),Object(a.g)(h.a,{path:"/blog",getComponent:()=>t.e(6).then(t.bind(null,449))}),Object(a.g)(h.a,{path:"/blog/show/:id",getComponent:()=>t.e(5).then(t.bind(null,450))}),Object(a.g)(h.a,{path:"/features",getComponent:()=>t.e(12).then(t.bind(null,451))}),Object(a.g)(h.a,{path:"/pulse",getComponent:()=>t.e(10).then(t.bind(null,452))}),Object(a.g)(h.a,{path:"/plugin-hub/:author?",getComponent:()=>t.e(9).then(t.bind(null,468))}),Object(a.g)(h.a,{path:"/plugin-hub/show/:internalName",getComponent:()=>t.e(13).then(t.bind(null,453))}),Object(a.g)(h.a,{path:"/logged-in",getComponent:()=>t.e(19).then(t.bind(null,454))}),Object(a.g)(h.a,{path:"/gh-auth-code",getComponent:()=>t.e(17).then(t.bind(null,455))}),Object(a.g)(h.a,{path:"/loading",getComponent:()=>t.e(18).then(t.bind(null,456))}),Object(a.g)(h.a,{path:"/tag",getComponent:()=>t.e(15).then(t.bind(null,457))}),Object(a.g)(h.a,{path:"/tag/show/:csv",getComponent:()=>t.e(11).then(t.bind(null,458))}),Object(a.g)(h.a,{path:"/tile",getComponent:()=>t.e(16).then(t.bind(null,459))}),Object(a.g)(h.a,{path:"/tile/show",getComponent:()=>Promise.all([t.e(0),t.e(1)]).then(t.bind(null,460))}),Object(a.g)(h.a,{path:"/tile/show/:b64",getComponent:()=>Promise.all([t.e(0),t.e(1)]).then(t.bind(null,460))}),Object(a.g)(h.a,{path:"/account/:tag",getComponent:()=>Promise.all([t.e(0),t.e(8)]).then(t.bind(null,465))}),Object(a.g)(h.a,{path:"/verify",getComponent:()=>t.e(14).then(t.bind(null,469))}),Object(a.g)(p.a,{default:!0})))}),O=t(37),w=t(74),C=t.n(w),T=t(21);function j(e,n,t){e(Object(T.e)());const a=t(e,n);return a instanceof Promise?a.then(n=>(e(Object(T.f)()),n)).catch(n=>(e(Object(T.f)()),n)):(e(Object(T.f)()),a)}var S=e=>{let{dispatch:n,getState:t}=e;return e=>a=>"function"===typeof a?j(n,t,a):a&&"function"===typeof a.payload?j(n,t,a.payload):e(a)},y=t(4),v=t(28),E=t(48),A=t(24),k=t(70),I=t(71),L=t(32),_=t(50),M=t(72),D={account:f.a,app:T.a,bootstrap:y.a,config:v.b,externalPlugins:_.a,git:E.a,item:A.a,session:k.a,tag:I.a,prices:L.a,tile:M.a};if(window&&window.history){const e={};let{pushState:n}=window.history;window.history.pushState=(t,a,r)=>{e[window.location.pathname]=window.scrollY||window.pageYOffset,n.call(window.history,t,a,r),r.includes("#")||window.scrollTo(0,0)},window.onpopstate=()=>{if(window.location.hash)return;const n=e[window.location.pathname]||0;window.setTimeout(()=>window.scrollTo(0,n),1)}}const{store:N}=(e=>{const n=[S];const t=Object(i.c)(D),a=Object(O.b)({key:"runelite",storage:C.a,debug:!1,whitelist:["account","git"],transforms:[Object(O.a)(JSON.stringify,e=>JSON.parse(e,(e,n)=>"string"===typeof n&&n.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/)?new Date(n):n))]},t),r=Object(i.d)(a,Object(i.a)(...n)),o=Object(O.c)(r,null,()=>e(r));return{store:r,persistor:o}})(async e=>{await e.dispatch(Object(y.b)()),await e.dispatch(Object(f.e)())}),P=document.getElementById("root");Object(a.j)(Object(a.g)(()=>Object(a.g)(r.a,{store:N},Object(a.g)(b,null)),null),P)},18:function(e,n,t){"use strict";t.d(n,"e",(function(){return o})),t.d(n,"d",(function(){return i})),t.d(n,"f",(function(){return s})),t.d(n,"b",(function(){return l})),t.d(n,"g",(function(){return c})),t.d(n,"i",(function(){return g})),t.d(n,"c",(function(){return u})),t.d(n,"h",(function(){return m})),t.d(n,"a",(function(){return h}));var a=t(7),r=t.n(a);const o=()=>window?r.a.url+window.location.pathname:r.a.url,i=()=>{if(!window)return r.a.url;const e=window.location;return e.protocol+"//"+e.host},s=e=>e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),l=e=>e instanceof Map?[...e.keys()].map(n=>({name:n,...e.get(n)})):Object.keys(e).map(n=>({name:n,...e[n]})),c=e=>{const n=Math.floor(e/60),t=Math.round(e%60*10)/10;return String(n).padStart(2,"0")+":"+String(t).padStart(2,"0")},g=e=>{let{id:n,name:t}=e;return`https://oldschool.runescape.wiki/w/Special:Lookup?type=item&id=${n}&name=${encodeURIComponent(t)}&utm_source=runelite.net`},u=e=>`https://static.runelite.net/cache/item/icon/${e}.png`,m=e=>{let n=e.toLowerCase().split("_");for(let t=0;t{if(!e)return null;const n=new Uint8Array(e),t=[];for(let a=0;a{!!window.MSInputMethodContext&&!!document.documentMode?window.msCrypto.subtle.digest({name:"SHA-256"},e).oncomplete=e=>{const t=d(e.target.result);n(t)}:window.crypto.subtle.digest({name:"SHA-256"},e).then(e=>{const t=d(e);n(t)})}},20:function(e,n,t){"use strict";t.d(n,"c",(function(){return g})),t.d(n,"d",(function(){return u})),t.d(n,"e",(function(){return m})),t.d(n,"f",(function(){return d})),t.d(n,"b",(function(){return p}));var a=t(75),r=t(16),o=t(17),i=t(3),s=t(4),l=t(18);const c=Object(i.a)("https://api.runelite.net/"),{login:g,logout:u,sessionCheck:m,setSession:d,resetSession:h}=Object(r.a)({LOGIN:()=>async(e,n)=>{const t=Object(s.c)(n()),a=Object(l.d)()+"/logged-in",r=await c(`runelite-${t}/account/login?redirectUrl=${a}&port=0000`,{method:"GET"});return window.location.href=r.oauthUrl,r},LOGOUT:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;try{return await c(`runelite-${t}/account/logout`,{method:"GET",headers:{"RUNELITE-AUTH":a}})}finally{e(h())}},SESSION_CHECK:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;try{return await c(`runelite-${t}/account/session-check`,{method:"GET",headers:{"RUNELITE-AUTH":a}})}catch(r){e(h())}}},"SET_SESSION","RESET_SESSION");n.a=Object(o.a)({[d]:(e,n)=>{let{payload:t}=n;return{...e,...t}},[h]:e=>({...e,uuid:a.a(),username:""})},{uuid:a.a(),username:""});const p=e=>!!e.account.username},21:function(e,n,t){"use strict";t.d(n,"e",(function(){return o})),t.d(n,"f",(function(){return i})),t.d(n,"b",(function(){return s})),t.d(n,"c",(function(){return l})),t.d(n,"d",(function(){return c}));var a=t(16),r=t(17);const{startLoading:o,stopLoading:i,makeNavbarDark:s,makeNavbarDefault:l,nextHeroImage:c}=Object(a.a)("START_LOADING","STOP_LOADING","MAKE_NAVBAR_DARK","MAKE_NAVBAR_DEFAULT","NEXT_HERO_IMAGE");n.a=Object(r.a)({[o]:e=>({...e,loading:e.loading+1}),[i]:e=>({...e,loading:e.loading-1}),[s]:e=>({...e,navbarDark:!0}),[l]:e=>({...e,navbarDark:!1}),[c]:(e,n)=>{let{payload:t}=n;return{...e,heroImage:(e.heroImage+1)%t}}},{loading:0,navbarDark:!1,heroImage:0})},24:function(e,n,t){"use strict";t.d(n,"b",(function(){return s})),t.d(n,"c",(function(){return c}));var a=t(16),r=t(17),o=t(3);const i=Object(o.a)("https://static.runelite.net/"),{fetchItems:s,setItems:l}=Object(a.a)({FETCH_ITEMS:()=>async e=>{const n=await i("cache/item/names.json",{method:"GET"}),t=[];for(let[a,r]of Object.entries(n))t.push({id:parseInt(a),name:r});return e(l(t)),t}},"SET_ITEMS");n.a=Object(r.a)({[l]:(e,n)=>{let{payload:t}=n;return t}},[]);const c=e=>e.item},28:function(e,n,t){"use strict";t.d(n,"c",(function(){return d})),t.d(n,"w",(function(){return h})),t.d(n,"a",(function(){return f})),t.d(n,"v",(function(){return b})),t.d(n,"u",(function(){return O})),t.d(n,"t",(function(){return w})),t.d(n,"f",(function(){return C})),t.d(n,"o",(function(){return T})),t.d(n,"s",(function(){return j})),t.d(n,"m",(function(){return S})),t.d(n,"k",(function(){return y})),t.d(n,"d",(function(){return v})),t.d(n,"p",(function(){return E})),t.d(n,"l",(function(){return A})),t.d(n,"i",(function(){return k})),t.d(n,"e",(function(){return I})),t.d(n,"g",(function(){return L})),t.d(n,"q",(function(){return _})),t.d(n,"r",(function(){return M})),t.d(n,"n",(function(){return D})),t.d(n,"j",(function(){return N})),t.d(n,"h",(function(){return P}));var a=t(16),r=t(17),o=t(2),i=t(3),s=t(4),l=t(18),c=t(24),g=t(49),u=t(32);const m=Object(i.a)("https://api.runelite.net/"),{fetchConfig:d,updateConfig:h,setConfig:p,changeAccount:f,setTileMarkersFilter:b,setLootFilter:O,setGeFilter:w}=Object(a.a)({FETCH_CONFIG:()=>async(e,n)=>{const t=Object(s.c)(n()),a=n().account.uuid;if(!a)return{};const r=await m(`runelite-${t}/config/v2`,{method:"GET",headers:{"RUNELITE-AUTH":a}});e(p(r));const o=n();if(!T(o)){const n=v(o);n.length>0&&e(f(n[0]))}return r},UPDATE_CONFIG:e=>async(n,t)=>{const a=Object(s.c)(t()),r=t().account.uuid;if(!r)return{};const o={},i=[];for(const[s,c]of Object.entries(e))null!==c&&""!==c?o[s]=c:i.push(s);const l={edit:o,unset:i};await m(`runelite-${a}/config/v2`,{method:"PATCH",headers:{"RUNELITE-AUTH":r,"content-type":"application/json"},mode:"cors",body:l}),await n(d())}},"SET_CONFIG","CHANGE_ACCOUNT","SET_TILE_MARKERS_FILTER","SET_LOOT_FILTER","SET_GE_FILTER");n.b=Object(r.a)({[p]:(e,n)=>{let{payload:t}=n;return{...e,config:t}},[f]:(e,n)=>{let{payload:t}=n;return{...e,selectedAccount:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,tileMarkers:t}}},[O]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,loot:t}}},[w]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,ge:t}}}},{config:{},selectedAccount:null,filter:{tileMarkers:"",loot:"",ge:""}});const C=e=>e.config.config,T=e=>e.config.selectedAccount,j=e=>e.config.filter.tileMarkers,S=e=>e.config.filter.loot,y=e=>e.config.filter.ge,v=Object(o.a)(C,e=>{const n=[];for(let t in e)if(t.startsWith("rsprofile.rsprofile.")){const a=t.split("."),r=a[2],o=a[3];let i=n.find(e=>e.accountId===r);void 0===i&&(i={accountId:r},n.push(i)),i[o]=e[t]}return n}),E=Object(o.a)(C,T,(e,n)=>{if(!n)return{hasTask:!1};const t="slayer.rsprofile."+n.accountId+".";return e[t+"taskName"]?{hasTask:!0,name:e[t+"taskName"],location:e[t+"taskLocation"],start:e[t+"initialAmount"],remaining:e[t+"amount"],streak:e[t+"streak"],points:e[t+"points"]}:{hasTask:!1}}),A=Object(o.a)(C,T,c.c,u.c,(e,n,t,a)=>{if(!n)return[];const r=[],o="loottracker.rsprofile."+n.accountId+".drops_";for(let[i,s]of Object.entries(e)){if(!i.startsWith(o))continue;if(s=JSON.parse(s),!("name"in s))continue;const e={name:s.name||"",count:parseInt(s.kills||""),type:s.type||"",drops:[]};if(e.date=new Date(0),e.date.setUTCSeconds(parseFloat(s.last)),"drops"in s)for(let n=0;ne.id===r.id);r.name=o&&o.name?o.name:"null";const i=r.name&&t.find(e=>e.id===r.id-1),l=i&&i.name===r.name&&i.id;let c=a[r.id];l&&(isNaN(c)||c<=0)&&(c=a[l]),r.price=(c||0)*r.qty,e.drops.push(r)}e.price=e.drops.reduce((e,n)=>e+n.price,0),r.push(e)}return r}),k=Object(o.a)(A,S,(e,n)=>e.filter(e=>!n||-1!==e.type.toLowerCase().indexOf(n.toLowerCase())||e.drops.filter(e=>-1!==e.name.toLowerCase().indexOf(n.toLowerCase())).length>=1).sort((e,n)=>n.date-e.date)),I=Object(o.a)(C,T,(e,n)=>{const t=new Map;if(!n)return Object(l.b)(t);const a=n.accountId;for(let[r,o]of Object.entries(e))if(r.startsWith("killcount.rsprofile.")){if(r=r.replace("killcount.rsprofile.",""),!r.startsWith(a))continue;if(r=r.replace(a+".",""),t.has(r)){t.get(r).kc=o}else t.set(r,{kc:o})}else if(r.startsWith("personalbest.rsprofile.")){if(r=r.replace("personalbest.rsprofile.",""),!r.startsWith(a))continue;if(r=r.replace(a+".",""),t.has(r)){t.get(r).pb=o}else t.set(r,{pb:o})}return Object(l.b)(t)}),L=Object(o.a)(C,e=>e["runelite.externalPlugins"]?e["runelite.externalPlugins"].split(","):[]),_=Object(o.a)(C,c.c,(e,n)=>{const t=new Map;function a(e,n){e.has(n)||e.set(n,{items:[],icon:-1})}for(let[r,o]of Object.entries(e))if(r.startsWith("banktags."))if(r=r.replace("banktags.",""),r.startsWith("item_")){const e=r.replace("item_","");o.split(",").forEach(r=>{r=r.trim(),a(t,r);const o=Math.abs(parseInt(e)),i=n.find(e=>e.id===o),s=i&&i.name;t.get(r).items.push({id:o,name:s})})}else if(r.startsWith("icon_")){const e=r.replace("icon_","");a(t,e),t.get(e).icon=parseInt(o)}return Object(l.b)(t)}),M=Object(o.a)(C,e=>{const n=e=>{for(const n of g.a)if(n.regions.includes(e))return n.name;return""},t=[];for(let[a,r]of Object.entries(e)){if(!a.startsWith("groundMarker.region_"))continue;const e=parseInt(a.replace("groundMarker.region_",""));t.push({name:n(e),region:e,data:JSON.parse(r)})}return t.sort((e,n)=>(e.name+e.region).toLowerCase().localeCompare((n.name+n.region).toLowerCase())),t}),D=Object(o.a)(C,T,(e,n)=>{const t={};if(!n)return t;const a=n.accountId;for(let[r,o]of Object.entries(e))r.includes(a)&&(t[r]=o);return t}),N=Object(o.a)(C,c.c,T,(e,n,t)=>{if(!t)return[];const a=[],r="grandexchange.rsprofile."+t.accountId+".tradeHistory";if(e[r]){const t=JSON.parse(e[r]);for(const e of t){const t=new Date(0);t.setUTCSeconds(Math.floor(e.t/1e3));const r=n.find(n=>n.id===e.i),o={itemId:e.i,name:r&&r.name?r.name:"null",price:e.p,quantity:e.q,buy:e.b,time:e.t,date:t};a.push(o)}}return a}),P=Object(o.a)(N,y,(e,n)=>e.filter(e=>!n||-1!==e.name.toLowerCase().indexOf(n.toLowerCase())).sort((e,n)=>n.date-e.date))},3:function(e,n,t){"use strict";n.a=e=>async function(n,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=t||{};t.body&&(r.body=JSON.stringify(t.body));const o=`${e}${n}`;let i=await window.fetch(o,r);if(!i.ok)throw new Error(i.statusText);const s=i.headers.get("Content-Type"),l=s&&s.includes("json");if(i=a?await i.arrayBuffer():l?await i.json():await i.text(),i.error)throw new Error(i.statusText);return i}},32:function(e,n,t){"use strict";t.d(n,"b",(function(){return l})),t.d(n,"c",(function(){return g}));var a=t(16),r=t(17),o=t(3),i=t(4);const s=Object(o.a)("https://api.runelite.net/"),{fetchPrices:l,setPrices:c}=Object(a.a)({FETCH_PRICES:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await s(`runelite-${t}/item/prices.js`,{method:"GET"}),r={995:1,13204:1e3};for(const o of a)r[o.id]=o.price;e(c(r))}},"SET_PRICES");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return t}},{});const g=e=>e.prices},33:function(e,n,t){"use strict";n.a={patreon:"https://www.patreon.com/runelite",twitter:"https://twitter.com/RuneLiteClient",github:"https://github.com/runelite",contribute:"https://github.com/runelite/runelite/wiki/Developer-Guide"}},4:function(e,n,t){"use strict";t.d(n,"b",(function(){return l})),t.d(n,"c",(function(){return g}));var a=t(16),r=t(17),o=t(2),i=t(3);const s=Object(i.a)("https://static.runelite.net/"),{fetchBootstrap:l,setBootstrap:c}=Object(a.a)({FETCH_BOOTSTRAP:()=>async e=>{const n=await s("bootstrap.json",{method:"GET"});return e(c(n)),n}},"SET_BOOTSTRAP");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return t}},{});const g=Object(o.a)(e=>e.bootstrap,e=>"version"in e?e.version:"")},46:function(e,n,t){"use strict";var a=t(0),r=t(18),o=t(7),i=t.n(o);const s=(e,n)=>document.querySelector(`meta[${e}]`).setAttribute("content",n);class l extends a.a{render(e){let{title:n,description:t,author:a,image:o,type:l}=e;const c=Object(r.e)();return n=n||"",t=t||"",a=a||"",o=o||i.a.url+i.a.logo,l=l||"website",o.startsWith("/")&&(o=i.a.url+o),document.querySelector("title").text=n,s("name=description",t),s("name=author",a),s("property='og:url'",c),s("property='og:title'",n),s("property='og:description'",t),s("property='og:image'",o),s("property='og:type'",l),null}}n.a=l},47:function(e,n,t){"use strict";var a=t(0),r=t(7),o=t.n(r),i=t(46),s=t(8);n.a=()=>Object(a.g)("div",{style:{backgroundImage:"url(/img/cat.jpg)",backgroundSize:"cover",display:"table",width:"100%",height:"100%",boxShadow:"inset 0 0 5rem rgba(0,0,0,.5)"}},Object(a.g)(i.a,{title:"404 - "+o.a.title}),Object(a.g)("div",{style:{display:"table-cell",verticalAlign:"middle"}},Object(a.g)("div",{style:{marginLeft:"auto",marginRight:"auto",textAlign:"center",fontWeight:700}},Object(a.g)("h1",null,"404"),Object(a.g)("p",{class:"lead"},"Page not found. Click ",Object(a.g)(s.a,{href:"/"},"here")," to return to home page."))))},48:function(e,n,t){"use strict";t.d(n,"b",(function(){return u})),t.d(n,"f",(function(){return m})),t.d(n,"e",(function(){return d})),t.d(n,"d",(function(){return h})),t.d(n,"c",(function(){return p})),t.d(n,"h",(function(){return E})),t.d(n,"i",(function(){return A})),t.d(n,"l",(function(){return k})),t.d(n,"k",(function(){return I})),t.d(n,"j",(function(){return L})),t.d(n,"m",(function(){return _})),t.d(n,"n",(function(){return M})),t.d(n,"p",(function(){return D})),t.d(n,"g",(function(){return N})),t.d(n,"o",(function(){return P}));var a=t(16),r=t(17),o=t(2),i=t(4),s="runelite",l="runelite",c=t(3);const g=Object(c.a)("https://api.github.com/"),{fetchCommits:u,fetchReleases:m,fetchPulls:d,fetchIssues:h,fetchHashes:p,setCommits:f,setLatestCommit:b,setReleases:O,setPulls:w,setDetails:C,setIssues:T,setHashes:j,setFileNames:S}=Object(a.a)({FETCH_COMMITS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await g(`repos/${s}/${l}/compare/${l}:runelite-parent-${t}...${l}:master`,{method:"GET"});let r=e=>{const n=e.commit.message.split("\n");return{title:n.shift(),body:n.join("\n"),url:e.html_url,date:new Date(e.commit.committer.date),author:{name:e.commit.author?e.commit.author.name:"",url:e.author?e.author.html_url:null,avatar:e.author?e.author.avatar_url:null}}};const o=a.commits.filter(e=>!e.commit.message.startsWith("Merge pull request #")).map(r).reverse();let c;c=o.length>0?o[0]:r(a.merge_base_commit);const u=a.files.reduce((e,n)=>({additions:e.additions+n.additions,deletions:e.deletions+n.deletions,changes:e.changes+n.changes}),{additions:0,deletions:0,changes:0});return u.files=a.files.length,u.authors=new Set(o.map(e=>e.author.name)).size,u.commits=o.length,e(C(u)),e(f(o)),e(b(c)),o},FETCH_RELEASES:()=>async e=>{const n=await g(`repos/${s}/${l}/tags`,{method:"GET"}),t=n[0],a=t.commit.sha,r=await g(`repos/${s}/${l}/commits/${a}`,{method:"GET"});t.date=new Date(r.commit.committer.date);const o=n.map(e=>({name:e.name.substr(e.name.lastIndexOf("-")+1,e.name.length),date:e.date,url:e.html_url}));return 0===o.length||e(O(o)),o},FETCH_PULLS:()=>async(e,n)=>{const t=_(n()),a=(await Promise.all([...Array(5).keys()].map(e=>g(`repos/${s}/${l}/pulls?page=${e+1}&state=all&sort=updated&direction=desc&since=${t.date.toISOString()}`,{method:"GET"})))).flat().map(e=>({url:e.html_url,title:e.title,draft:e.draft,mergedAt:e.merged_at?new Date(e.merged_at):null,createdAt:e.created_at?new Date(e.created_at):null,closedAt:e.closed_at?new Date(e.closed_at):null,labels:e.labels.map(e=>({name:e.name,color:e.color}))}));return 0===a.length||e(w(a)),a},FETCH_ISSUES:()=>async(e,n)=>{const t=_(n()),a=(await Promise.all([...Array(5).keys()].map(e=>g(`repos/${s}/${l}/issues?page=${e+1}&state=all&sort=updated&direction=desc&since=${t.date.toISOString()}`,{method:"GET"})))).flat().filter(e=>!e.pull_request).map(e=>({url:e.html_url,title:e.title,draft:e.draft,createdAt:e.created_at?new Date(e.created_at):null,closedAt:e.closed_at?new Date(e.closed_at):null,labels:e.labels.map(e=>({name:e.name,color:e.color}))}));return 0===a.length||e(T(a)),a},FETCH_HASHES:()=>async(e,n)=>{const t=await g(`repos/${s}/launcher/releases`,{method:"GET"}),a={},r={},o=new RegExp(/([a-zA-Z0-9]{64})\s+\*?(([\w-]+)?RuneLite[.\w-]+)/gi);return t.forEach(e=>{if(!e.body)return;let n=o.exec(e.body);for(;n;)a[n[1]]=1,r[n[2].toLowerCase()]=1,n=o.exec(e.body)}),e(j(a)),e(S(r)),a}},"SET_COMMITS","SET_LATEST_COMMIT","SET_RELEASES","SET_PULLS","SET_DETAILS","SET_ISSUES","SET_HASHES","SET_FILE_NAMES");n.a=Object(r.a)({[f]:(e,n)=>{let{payload:t}=n;return{...e,commits:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,latestCommit:t}},[O]:(e,n)=>{let{payload:t}=n;return{...e,releases:t}},[w]:(e,n)=>{let{payload:t}=n;return{...e,pulls:t}},[C]:(e,n)=>{let{payload:t}=n;return{...e,details:t}},[T]:(e,n)=>{let{payload:t}=n;return{...e,issues:t}},[j]:(e,n)=>{let{payload:t}=n;return{...e,hashes:t}},[S]:(e,n)=>{let{payload:t}=n;return{...e,fileNames:t}}},{commits:[],pulls:[],releases:[],issues:[],details:{additions:0,deletions:0,changes:0,authors:0,commits:0,files:0},hashes:{},fileNames:{}});const y=e=>e.git.pulls,v=e=>e.git.issues,E=e=>e.git.commits,A=e=>e.git.details,k=e=>e.git.latestCommit,I=e=>e.git.hashes,L=e=>e.git.fileNames,_=Object(o.a)(e=>e.git.releases,e=>e.length>0?e[0]:{}),M=Object(o.a)(_,y,(e,n)=>n?n.filter(n=>n.mergedAt&&n.mergedAt>=e.date).sort((e,n)=>n.mergedAt-e.mergedAt):[]),D=Object(o.a)(_,y,(e,n)=>n?n.filter(n=>!n.mergedAt&&!n.closedAt&&n.createdAt>=e.date).sort((e,n)=>n.createdAt-e.createdAt):[]),N=Object(o.a)(_,v,(e,n)=>n?n.filter(n=>n.closedAt&&n.closedAt>=e.date).filter(e=>!e.labels.some(e=>"invalid"===e.name||"duplicate"===e.name)).sort((e,n)=>n.closedAt-e.closedAt):[]),P=Object(o.a)(_,v,(e,n)=>n?n.filter(n=>!n.closedAt&&n.createdAt>=e.date).sort((e,n)=>n.createdAt-e.createdAt):[])},49:function(e,n,t){"use strict";n.a=[{name:"Abyssal Sire",regions:[11851,11850,12363,12362]},{name:"Cerberus",regions:[4883,5140,5395]},{name:"Commander Zilyana",regions:[11602]},{name:"Corporeal Beast",regions:[11842,11844]},{name:"Dagannoth Kings",regions:[11588,11589]},{name:"General Graardor",regions:[11347]},{name:"Giant Mole",regions:[6993,6992]},{name:"Grotesque Guardians",regions:[6727]},{name:"Hespori",regions:[5021]},{name:"Alchemical Hydra",regions:[5536]},{name:"Kalphite Queen",regions:[13972]},{name:"Kraken",regions:[9116]},{name:"Kree'arra",regions:[11346]},{name:"K'ril Tsutsaroth",regions:[11603]},{name:"Nightmare of Ashihama",regions:[15515]},{name:"Sarachnis",regions:[7322]},{name:"Skotizo",regions:[6810]},{name:"Thermonuclear smoke devil",regions:[9363,9619]},{name:"Vorkath",regions:[9023]},{name:"Wintertodt",regions:[6462]},{name:"Zalcano",regions:[12126]},{name:"Zulrah",regions:[9007]},{name:"Al Kharid",regions:[13105,13106]},{name:"Arceuus",regions:[6458,6459,6460,6714,6715]},{name:"Ardougne",regions:[9779,9780,10035,10036,10291,10292,10547,10548]},{name:"Bandit Camp",regions:[12590]},{name:"Barbarian Outpost",regions:[10039]},{name:"Barbarian Village",regions:[12341]},{name:"Bedabin Camp",regions:[12591]},{name:"Brimhaven",regions:[11057,11058]},{name:"Burgh de Rott",regions:[13874,13873,14130,14129]},{name:"Burthorpe",regions:[11319,11575]},{name:"Canifis",regions:[13878]},{name:"Catherby",regions:[11317,11318,11061]},{name:"Corsair Cove",regions:[10028,10284]},{name:"Darkmeyer",regions:[14388,14644]},{name:"Dorgesh-Kaan",regions:[10835,10834]},{name:"Draynor",regions:[12338,12339]},{name:"Edgeville",regions:[12342]},{name:"Entrana",regions:[11060,11316]},{name:"Etceteria",regions:[10300]},{name:"Falador",regions:[11828,11572,11827,12084]},{name:"Gu'Tanoth",regions:[10031]},{name:"Gwenith",regions:[8757]},{name:"Hosidius",regions:[6710,6711,6712,6455,6456,6966,6967,6968,7221,7223,7224,7478,7479]},{name:"Jatizso",regions:[9531]},{name:"Keldagrim",regions:[11423,11422,11679,11678]},{name:"Land's End",regions:[5941]},{name:"Lletya",regions:[9265,11103]},{name:"Lovakengj",regions:[5692,5691,5947,6203,6202,5690,5946]},{name:"Lumbridge",regions:[12850]},{name:"Lunar Isle",regions:[8253,8252,8509,8508]},{name:"Marim",regions:[11051]},{name:"Meiyerditch",regions:[14132,14387,14386,14385]},{name:"Miscellania",regions:[10044]},{name:"Mor Ul Rek",regions:[9808,9807,10064,10063]},{name:"Mort'ton",regions:[13875]},{name:"Mos Le'Harmless",regions:[14638,14639,14894,14895,15151,15406,15407]},{name:"Mount Karuulm",regions:[5179,4923,5180]},{name:"Mountain Camp",regions:[11065]},{name:"Mynydd",regions:[8501]},{name:"Nardah",regions:[13613]},{name:"Neitiznot",regions:[9275]},{name:"Port Piscarilius",regions:[6971,7227,6970,7226]},{name:"Piscatoris",regions:[9273]},{name:"Pollnivneach",regions:[13358]},{name:"Port Khazard",regions:[10545]},{name:"Port Phasmatys",regions:[14646]},{name:"Port Sarim",regions:[12081,12082]},{name:"Prifddinas",regions:[8499,8500,8755,8756,9011,9012,9013,12894,12895,13150,13151]},{name:"Rellekka",regions:[10297,10553]},{name:"Rimmington",regions:[11826,11570]},{name:"Seers' Village",regions:[10806]},{name:"Shayzien",regions:[5944,5943,6200,6199,5686,5687,5688,5689,5945]},{name:"Shilo Village",regions:[11310]},{name:"Slepe",regions:[14643,14899,14900,14901]},{name:"Sophanem",regions:[13099]},{name:"Tai Bwo Wannai",regions:[11056,11055]},{name:"Taverley",regions:[11574,11573]},{name:"Tree Gnome Stronghold",regions:[9525,9526,9782,9781]},{name:"Tree Gnome Village",regions:[10033]},{name:"Troll Stronghold",regions:[11321,11421]},{name:"Uzer",regions:[13872]},{name:"Varrock",regions:[12596,12597,12852,12853,12854,13108,13109,13110]},{name:"Ver Sinhaza",regions:[14642]},{name:"Void Knights' Outpost",regions:[10537]},{name:"Weiss",regions:[11325,11581]},{name:"Witchaven",regions:[10803]},{name:"Yanille",regions:[10288,10032]},{name:"Zanaris",regions:[9285,9541,9540,9797]},{name:"Zul-Andra",regions:[8495,8751]},{name:"Abandoned Mine",regions:[13718,11079,11078,11077,10823,10822,10821]},{name:"Ah Za Rhoon",regions:[11666]},{name:"Ancient Cavern",regions:[6483,6995]},{name:"Ape Atoll Dungeon",regions:[11150,10894]},{name:"Ape Atoll Banana Plantation",regions:[10895]},{name:"Ardougne Sewers",regions:[10136,10647]},{name:"Asgarnian Ice Caves",regions:[11925,12181]},{name:"Tomb of Bervirius",regions:[11154]},{name:"Brimhaven Dungeon",regions:[10901,10900,10899,10645,10644,10643]},{name:"Brine Rat Cavern",regions:[10910]},{name:"Catacombs of Kourend",regions:[6557,6556,6813,6812]},{name:"Champions' Challenge",regions:[12696]},{name:"Chaos Druid Tower",regions:[10392]},{name:"Chasm of Fire",regions:[5789]},{name:"Chasm of Tears",regions:[12948]},{name:"Chinchompa Hunting Ground",regions:[10129]},{name:"Clock Tower Basement",regions:[10390]},{name:"Corsair Cove Dungeon",regions:[8076,8332]},{name:"Crabclaw Caves",regions:[6553,6809]},{name:"Crandor Dungeon",regions:[11414]},{name:"Crash Site Cavern",regions:[8280,8536]},{name:"Crumbling Tower",regions:[7827]},{name:"Daeyalt Essence Mine",regions:[14744]},{name:"Digsite Dungeon",regions:[13464,13465]},{name:"Dorgesh-Kaan South Dungeon",regions:[10833]},{name:"Dorgeshuun Mines",regions:[12950,13206]},{name:"Draynor Sewers",regions:[12439,12438]},{name:"Dwarven Mines",regions:[12185,12184,12183]},{name:"Eagles' Peak Dungeon",regions:[8013]},{name:"Ectofuntus",regions:[14746]},{name:"Edgeville Dungeon",regions:[12441,12442,12443,12698]},{name:"Elemental Workshop",regions:[10906,7760]},{name:"Enakhra's Temple",regions:[12423]},{name:"Evil Chicken's Lair",regions:[9796]},{name:"Experiment Cave",regions:[14235,13979]},{name:"Ferox Enclave Dungeon",regions:[12700]},{name:"Forthos Dungeon",regions:[7323]},{name:"Fremennik Slayer Dungeon",regions:[10907,10908,11164]},{name:"Glarial's Tomb",regions:[10137]},{name:"Goblin Cave",regions:[10393]},{name:"Grand Tree Tunnels",regions:[9882]},{name:"H.A.M. Hideout",regions:[12694]},{name:"H.A.M. Store room",regions:[10321]},{name:"Heroes' Guild Mine",regions:[11674]},{name:"Iorwerth Dungeon",regions:[12737,12738,12993,12994]},{name:"Isle of Souls Dungeon",regions:[8593]},{name:"Jatizso Mines",regions:[9631]},{name:"Jiggig Burial Tomb",regions:[9875,9874]},{name:"Jogre Dungeon",regions:[11412]},{name:"Karamja Dungeon",regions:[11413]},{name:"Karuulm Slayer Dungeon",regions:[5280,5279,5023,5535,5022,4766,4510,4511,4767,4768,4512]},{name:"KGP Headquarters",regions:[10658]},{name:"Kruk's Dungeon",regions:[9358,9359,9360,9615,9616,9871,10125,10126,10127,10128,10381,10382,10383,10384,10637,10638,10639,10640]},{name:"Legends' Guild Dungeon",regions:[10904]},{name:"Lighthouse",regions:[10140]},{name:"Lizardman Caves",regions:[5275]},{name:"Lizardman Temple",regions:[5277]},{name:"Lumbridge Swamp Caves",regions:[12693,12949]},{name:"Lunar Isle Mine",regions:[9377]},{name:"Maniacal Monkey Hunter Area",regions:[11662]},{name:"Meiyerditch Mine",regions:[9544]},{name:"Miscellania Dungeon",regions:[10144,10400]},{name:"Mogre Camp",regions:[11924]},{name:"Mos Le'Harmless Caves",regions:[14994,14995,15251]},{name:"Motherlode Mine",regions:[14679,14680,14681,14935,14936,14937,15191,15192,15193]},{name:"Mourner Tunnels",regions:[7752,8008]},{name:"Mouse Hole",regions:[9046]},{name:"Myreditch Laboratories",regions:[14232,14233,14487,14488]},{name:"Myreque Hideout",regions:[13721,13974,13977,13978]},{name:"Myths' Guild Dungeon",regions:[7564,7820,7821]},{name:"Observatory Dungeon",regions:[9362]},{name:"Ogre Enclave",regions:[10387]},{name:"Ourania Cave",regions:[12119]},{name:"Quidamortem Cave",regions:[4763]},{name:"Rashiliyta's Tomb",regions:[11668]},{name:"Saradomin Shrine (Paterdomus]",regions:[13722]},{name:"Shade Catacombs",regions:[13975]},{name:"Shadow Dungeon",regions:[10575,10831]},{name:"Shayzien Crypts",regions:[6043]},{name:"Sisterhood Sanctuary",regions:[14999,15e3,15001,15255,15256,15257,15511,15512,15513]},{name:"Smoke Dungeon",regions:[12946,13202]},{name:"Sophanem Dungeon",regions:[13200]},{name:"Sourhog Cave",regions:[12695]},{name:"Stronghold of Security",regions:[7505,8017,8530,9297]},{name:"Stronghold Slayer Cave",regions:[9624,9625,9880,9881]},{name:"Tarn's Lair",regions:[12616,12615]},{name:"Taverley Dungeon",regions:[11416,11417,11671,11672,11673,11928,11929]},{name:"Temple of Ikov",regions:[10649,10905,10650]},{name:"Temple of Light",regions:[7496]},{name:"Temple of Marimbo",regions:[11151]},{name:"The Warrens",regions:[7070,7326]},{name:"Dungeon of Tolna",regions:[13209]},{name:"Tower of Life Basement",regions:[12100]},{name:"Trahaearn Mine",regions:[13250]},{name:"Tunnel of Chaos",regions:[12625]},{name:"Underground Pass",regions:[9369,9370]},{name:"Varrock Sewers",regions:[12954,13210]},{name:"Viyeldi Caves",regions:[9545,11153]},{name:"Warriors' Guild Basement",regions:[11675]},{name:"Water Ravine",regions:[13461]},{name:"Waterbirth Dungeon",regions:[9886,10142,7492,7748]},{name:"Waterfall Dungeon",regions:[10394]},{name:"Werewolf Agility Course",regions:[14234]},{name:"White Wolf Mountain Caves",regions:[11418,11419]},{name:"Witchhaven Shrine Dungeon",regions:[10903]},{name:"Wizards' Tower Basement",regions:[12437]},{name:"Woodcutting Guild Dungeon",regions:[6298]},{name:"Wyvern Cave",regions:[14495,14496]},{name:"Yanille Agility Dungeon",regions:[10388]},{name:"Ardougne Rat Pits",regions:[10646]},{name:"Barbarian Assault",regions:[7508,7509,10322]},{name:"Barrows",regions:[14131,14231]},{name:"Blast Furnace",regions:[7757]},{name:"Brimhaven Agility Arena",regions:[11157]},{name:"Burthorpe Games Room",regions:[8781]},{name:"Castle Wars",regions:[9520,9620]},{name:"Clan Wars",regions:[12621,12622,12623,13130,13131,13133,13134,13135,13386,13387,13390,13641,13642,13643,13644,13645,13646,13647,13899,13900,14155,14156]},{name:"Duel Arena",regions:[13362,13363]},{name:"Fishing Trawler",regions:[7499]},{name:"The Gauntlet",regions:[12127,7512,7768]},{name:"Hallowed Sepulchre",regions:[8797,9051,9052,9053,9054,9309,9563,9565,9821,10074,10075,10077]},{name:"The Inferno",regions:[9043]},{name:"Keldagrim Rat Pits",regions:[7753]},{name:"LMS - Deserted Island",regions:[13658,13659,13660,13914,13915,13916]},{name:"LMS - Wild Varrock",regions:[13918,13919,13920,14174,14175,14176,14430,14431,14432]},{name:"Mage Training Arena",regions:[13462,13463]},{name:"Nightmare Zone",regions:[9033]},{name:"Pest Control",regions:[10536]},{name:"Port Sarim Rat Pits",regions:[11926]},{name:"Pyramid Plunder",regions:[7749]},{name:"Rogues' Den",regions:[11855,11854,12111,12110]},{name:"Sorceress's Garden",regions:[11605]},{name:"Soul Wars",regions:[8493,8748,8749,9005]},{name:"Temple Trekking",regions:[8014,8270,8256,8782,9038,9294,9550,9806]},{name:"Tithe Farm",regions:[7222]},{name:"Trouble Brewing",regions:[15150]},{name:"Tzhaar Fight Caves",regions:[9551]},{name:"Tzhaar Fight Pits",regions:[9552]},{name:"Varrock Rat Pits",regions:[11599]},{name:"Volcanic Mine",regions:[15263,15262]},{name:"Chambers of Xeric",regions:[12889,13136,13137,13138,13139,13140,13141,13145,13393,13394,13395,13396,13397,13401]},{name:"Theatre of Blood",regions:[12611,12612,12613,12867,12869,13122,13123,13125,13379]},{name:"Abyssal Area",regions:[12108]},{name:"Abyssal Nexus",regions:[12106]},{name:"Agility Pyramid",regions:[12105,13356]},{name:"Air Altar",regions:[11339]},{name:"Al Kharid Mine",regions:[13107]},{name:"Ape Atoll",regions:[10795,10974,11050]},{name:"Arandar",regions:[9266,9267,9523]},{name:"Asgarnia",regions:[11825,11829,11830,12085,12086]},{name:"Battlefield",regions:[10034]},{name:"Battlefront",regions:[5433,5434]},{name:"Blast Mine",regions:[5948]},{name:"Body Altar",regions:[10059]},{name:"Chaos Altar",regions:[9035]},{name:"Cosmic Altar",regions:[8523]},{name:"Cosmic Entity's Plane",regions:[8267]},{name:"Crabclaw Isle",regions:[6965]},{name:"Crafting Guild",regions:[11571]},{name:"Crandor",regions:[11314,11315]},{name:"Crash Island",regions:[11562]},{name:"Dark Altar",regions:[6716]},{name:"Death Altar",regions:[8779]},{name:"Death Plateau",regions:[11320]},{name:"Dense Essence Mine",regions:[6972]},{name:"Digsite",regions:[13365]},{name:"Dragontooth Island",regions:[15159]},{name:"Draynor Manor",regions:[12340]},{name:"Drill Sergeant's Training Camp",regions:[12619]},{name:"Eagles' Peak",regions:[9270]},{name:"Earth Altar",regions:[10571]},{name:"Enchanted Valley",regions:[12102]},{name:"Evil Twin Crane Room",regions:[7504]},{name:"Exam Centre",regions:[13364]},{name:"Falador Farm",regions:[12083]},{name:"Farming Guild",regions:[4922]},{name:"Feldip Hills",regions:[9773,9774,10029,10030,10285,10286,10287,10542,10543]},{name:"Fenkenstrain's Castle",regions:[14135]},{name:"Fire Altar",regions:[10315]},{name:"Fisher Realm",regions:[10569]},{name:"Fishing Guild",regions:[10293]},{name:"Fishing Platform",regions:[11059]},{name:"The Forsaken Tower",regions:[5435]},{name:"Fossil Island",regions:[14650,14651,14652,14906,14907,14908,15162,15163,15164]},{name:"Freaky Forester's Clearing",regions:[10314]},{name:"Fremennik Province",regions:[10296,10552,10808,10809,10810,10811,11064]},{name:"Fremennik Isles",regions:[9276,9532]},{name:"Frogland",regions:[9802]},{name:"Galvek Shipwrecks",regions:[6486,6487,6488,6489,6742,6743,6744,6745]},{name:"Gorak's Plane",regions:[12115]},{name:"Grand Exchange",regions:[12598]},{name:"God Wars Dungeon",regions:[11578]},{name:"Harmony Island",regions:[15148]},{name:"Ice Path",regions:[11322,11323]},{name:"Iceberg",regions:[10558,10559]},{name:"Icyene Graveyard",regions:[14641,14897,14898]},{name:"Isafdar",regions:[8497,8753,8754,9009,9010]},{name:"Island of Stone",regions:[9790]},{name:"Isle of Souls",regions:[8236,8237,8238,8491,8492,8494,8747,8750,9003,9004,9006,9260,9261,9262]},{name:"Jiggig",regions:[9775]},{name:"Kandarin",regions:[9014,9263,9264,9519,9524,9527,9776,9783,10037,10290,10294,10546,10551,10805]},{name:"Karamja",regions:[10801,10802,11054,11311,11312,11313,11566,11567,11568,11569,11822]},{name:"Kebos Lowlands",regions:[4665,4666,4921,5178]},{name:"Kebos Swamp",regions:[4664,4920,5174,5175,5176,5430,5431]},{name:"Kharazi Jungle",regions:[11053,11309,11565,11821]},{name:"Kharidian Desert",regions:[12844,12845,12846,12847,12848,13100,13101,13102,13103,13104,13357,13359,13360,13614,13615,13616]},{name:"Killerwatt Plane",regions:[10577]},{name:"Great Kourend",regions:[6201,6457,6713]},{name:"Kourend Woodland",regions:[5942,6197,6453]},{name:"Law Altar",regions:[9803]},{name:"Legends' Guild",regions:[10804]},{name:"Lighthouse",regions:[10040]},{name:"Lithkren",regions:[14142,14398]},{name:"Lumbridge Swamp",regions:[12593,12849]},{name:"Max Island",regions:[11063]},{name:"McGrubor's Wood",regions:[10550]},{name:"Mime's Stage",regions:[8010]},{name:"Mind Altar",regions:[11083]},{name:"Misthalin",regions:[12594,12595,12851]},{name:"Molch",regions:[5177]},{name:"Molch Island",regions:[5432]},{name:"Morytania",regions:[13619,13620,13621,13622,13876,13877,13879,14133,14134,14389,14390,14391,14645,14647]},{name:"Mount Quidamortem",regions:[4662,4663,4918,4919]},{name:"Mr. Mordaut's Classroom",regions:[7502]},{name:"Mudskipper Point",regions:[11824]},{name:"Mysterious Old Man's Maze",regions:[11590,11591,11846,11847]},{name:"Myths' Guild",regions:[9772]},{name:"Nature Altar",regions:[9547]},{name:"Northern Tundras",regions:[6204,6205,6717]},{name:"Observatory",regions:[9777]},{name:"Odd One Out",regions:[7754]},{name:"Otto's Grotto",regions:[10038]},{name:"Ourania Hunter Area",regions:[9778]},{name:"Pirates' Cove",regions:[8763]},{name:"Piscatoris Hunter Area",regions:[9015,9016,9271,9272,9528]},{name:"Player Owned House",regions:[7513,7514,7769,7770]},{name:"Poison Waste",regions:[8752,9008]},{name:"Port Tyras",regions:[8496]},{name:"Puro Puro",regions:[10307]},{name:"Quarry",regions:[12589]},{name:"Ranging Guild",regions:[10549]},{name:"Ratcatchers Mansion",regions:[11343]},{name:"Rune Essence Mine",regions:[11595]},{name:"ScapeRune",regions:[10058,7758,8261]},{name:"Ship Yard",regions:[11823]},{name:"Silvarea",regions:[13366]},{name:"Sinclair Mansion",regions:[10807]},{name:"Slayer Tower",regions:[13623,13723]},{name:"Soul Altar",regions:[7228]},{name:"Troll Arena",regions:[11576]},{name:"Trollheim",regions:[11577]},{name:"Trollweiss Mountain",regions:[11066,11067,11068]},{name:"Underwater",regions:[15008,15264]},{name:"Water Altar",regions:[10827]},{name:"Wintertodt Camp",regions:[6461]},{name:"Wizards' Tower",regions:[12337]},{name:"Woodcutting Guild",regions:[6198,6454]},{name:"Wrath Altar",regions:[9291]}]},5:function(e,n,t){"use strict";var a=t(0);class r extends a.a{constructor(){super(),this.state={componentData:null}}loadComponent(){const e=this.props.getComponent();e&&(e.then?e.then(e=>{this.setState({componentData:e.default||e})}):this.setState({componentData:e.default||e}))}componentWillMount(){this.loadComponent()}componentWillReceiveProps(e){this.props.path&&this.props.path!==e.path&&this.setState({componentData:null},()=>{this.loadComponent()})}render(){return this.state.componentData?this.props.path||this.props.default?Object(a.g)(this.state.componentData,this.props):this.state.componentData:Object(a.g)("span",null,"Loading....")}}n.a=r},50:function(e,n,t){"use strict";t.d(n,"c",(function(){return d})),t.d(n,"b",(function(){return h})),t.d(n,"d",(function(){return p})),t.d(n,"i",(function(){return w})),t.d(n,"j",(function(){return C})),t.d(n,"f",(function(){return T})),t.d(n,"g",(function(){return j})),t.d(n,"e",(function(){return S})),t.d(n,"h",(function(){return v}));var a=t(16),r=t(17),o=t(2),i=t(4),s=t(28),l=t(3);const c=Object(l.a)("https://repo.runelite.net/plugins/"),g=Object(l.a)("https://api.runelite.net/"),u=Object(l.a)("https://api.github.com/"),m=Object(l.a)("https://raw.githubusercontent.com/runelite/plugin-hub/master/plugins/"),{fetchExternalPlugins:d,fetchExternalPluginInfo:h,fetchPluginHubStats:p,setExternalPlugins:f,setExternalPluginInfo:b,setPluginHubStats:O,setPluginFilter:w,setPluginSorting:C}=Object(a.a)({FETCH_EXTERNAL_PLUGINS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await c(`manifest/${t}_full.js`,{method:"GET"},!0),r=new DataView(a).getUint32(0),o=new TextDecoder("utf-8").decode(new Uint8Array(a.slice(r+4))),s=JSON.parse(o),l=s.display,g=s.jars,u=l.map(e=>(e.iconHash&&(e.imageUrl=`https://repo.runelite.net/plugins/icon/${e.internalName}_${e.iconHash}.png`),e.working=!!g.find(n=>n.internalName===e.internalName),e.description=e.description.replace(/ /g,"\n").replace(/<[^>]+>/g,""),e.unavailableReason=(e.unavailableReason||"").replace(/ /g,"\n").replace(/<[^>]+>/g,""),e));return e(f(u)),u},FETCH_EXTERNAL_PLUGIN_INFO:e=>async(n,t)=>{const a=await m(e,{method:"GET"});let r="",o="";if(a.split("\n").forEach(e=>{const n=e.split("=");"repository"===n[0]&&(r=n[1]),"commit"===n[0]&&(o=n[1])}),!r)return;const i=r.replace("https://","").replace("http://","").split("/");if(i.length<3)return;const s=i[1],l=i[2].replace(".git","");let c=await u(`repos/${s}/${l}/readme?ref=${o}`,{method:"GET",headers:{accept:"application/vnd.github.VERSION.html"}}),g="";function d(e,n){if(e.startsWith("#"))return"#user-content-"+e.substring(1);e.startsWith("/")&&(e=e.substring(1));let t=`https://github.com/${s}/${l}/tree/${o}/`;return"IMG"===n.tagName&&(t=`https://raw.githubusercontent.com/${s}/${l}/${o}/`),e=new URL(e,t).toString()}try{let e=(new DOMParser).parseFromString(c,"text/html");e.querySelectorAll("a").forEach(e=>{e.href=d(e.getAttribute("href"),e)}),e.querySelectorAll("img").forEach(e=>{let n=e.getAttribute("src");if(n.endsWith(".gif")){var t;let a=e.title||e.alt||n;if("A"===(null===(t=e.parentElement)||void 0===t?void 0:t.tagName))e.parentElement.textContent=a;else{let t=document.createElement("a");t.target="_blank",t.textContent=a,t.href=d(n,t),e.replaceWith(t)}}else e.src=d(n,e)}),g=e.body.innerHTML}catch(h){console.error("Loading readme failed",h)}return n(b({internalName:e,github:{readme:g,user:s,repo:l,commit:o}})),g},FETCH_PLUGIN_HUB_STATS:()=>async(e,n)=>{const t=Object(i.c)(n()),a=await g(`runelite-${t}/pluginhub`,{method:"GET"});return e(O(a)),a}},"SET_EXTERNAL_PLUGINS","SET_EXTERNAL_PLUGIN_INFO","SET_PLUGIN_HUB_STATS","SET_PLUGIN_FILTER","SET_PLUGIN_SORTING");n.a=Object(r.a)({[f]:(e,n)=>{let{payload:t}=n;return{...e,data:t}},[b]:(e,n)=>{let{payload:t}=n;return{...e,data:e.data.filter(e=>e.internalName!==t.internalName).concat([{...e.data.find(e=>e.internalName===t.internalName),...t}])}},[O]:(e,n)=>{let{payload:t}=n;return{...e,stats:t}},[w]:(e,n)=>{let{payload:t}=n;return{...e,filter:{...e.filter,...t}}},[C]:(e,n)=>{let{payload:t}=n;return{...e,sorting:t}}},{filter:{name:""},sorting:"active installs",data:[],stats:{}});const T=e=>e.externalPlugins.filter,j=e=>e.externalPlugins.sorting,S=Object(o.a)(e=>e.externalPlugins.data,e=>e.externalPlugins.stats,s.g,(e,n,t)=>e.map(e=>(e.installed=t.includes(e.internalName),e.count=n.hasOwnProperty(e.internalName)?n[e.internalName]:0,e))),y=Object(o.a)(S,T,(e,n)=>e.filter(e=>!n.name||-1!==e.displayName.toLowerCase().indexOf(n.name.toLowerCase())||-1!==e.author.toLowerCase().indexOf(n.name.toLowerCase())||-1!==e.description.toLowerCase().indexOf(n.name.toLowerCase())||e.tags&&e.tags.some(e=>e.toLowerCase().includes(n.name.toLowerCase())))),v=Object(o.a)(j,y,(e,n)=>{switch(n=n.sort((e,n)=>e.displayName.toLowerCase().localeCompare(n.displayName.toLowerCase())).sort((e,n)=>n.working-e.working),e){case"active installs":return n.sort((e,n)=>n.count-e.count);case"time updated":return n.sort((e,n)=>n.lastUpdatedAt-e.lastUpdatedAt);case"time added":return n.sort((e,n)=>n.createdAt-e.createdAt);case"installed":return n.sort((e,n)=>e.installed===n.installed?0:e.installed?-1:1);case"name":default:return n}})},69:function(e,n,t){"use strict";t.d(n,"a",(function(){return a}));const a=e=>11===(new Date).getMonth()?e.replace(".webp","_xmas.webp"):e},7:function(e,n){e.exports={title:"RuneLite",url:"https://runelite.net",logo:"/img/runelite_logo_transparent_small.webp",description:"A popular free, open-source and super fast client for Old School RuneScape",images:["/img/carousel/1.webp","/img/carousel/2.webp","/img/carousel/3.webp"],buttons:[{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetup.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"64 bit"},os:"Windows64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetup32.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"32 bit"},os:"Windows32"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLiteSetupAArch64.exe",icon:"fab fa-fw fa-windows",text:{os:"Windows",arch:"ARM64"},os:"WindowsArm64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-x64.dmg",icon:"fab fa-fw fa-apple",text:{os:"macOS",arch:"Intel"},os:"macOS"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-aarch64.dmg",icon:"fab fa-fw fa-apple",text:{os:"macOS",arch:"Apple silicon"},os:"macOS"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite.AppImage",icon:"fab fa-fw fa-linux",text:{os:"Linux",arch:"x64"},os:"Linux64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite-aarch64.AppImage",icon:"fab fa-fw fa-linux",text:{os:"Linux",arch:"ARM64"},os:"LinuxAarch64"},{link:"https://github.com/runelite/launcher/releases/download/2.6.13/RuneLite.jar",icon:"fas fa-fw fa-coffee",text:{os:"All platforms"},os:"all"}]}},70:function(e,n,t){"use strict";t.d(n,"c",(function(){return s})),t.d(n,"b",(function(){return l})),t.d(n,"e",(function(){return u})),t.d(n,"d",(function(){return m}));var a=t(16),r=t(17),o=t(3);const i=Object(o.a)("https://api.runelite.net/"),{fetchSessionCount:s,fetchLoggedInCount:l,setSessionCount:c,setLoggedInCount:g}=Object(a.a)({FETCH_SESSION_COUNT:()=>async e=>{const n=await i("session/count",{method:"GET"});return e(c(n)),n},FETCH_LOGGED_IN_COUNT:()=>async e=>{const n=await i("session/count/logged-in",{method:"GET"});return e(g(n)),n}},"SET_SESSION_COUNT","SET_LOGGED_IN_COUNT");n.a=Object(r.a)({[c]:(e,n)=>{let{payload:t}=n;return{...e,sessionCount:t}},[g]:(e,n)=>{let{payload:t}=n;return{...e,loggedInCount:t}}},{sessionCount:0,loggedInCount:0});const u=e=>e.session.sessionCount,m=e=>e.session.loggedInCount},71:function(e,n,t){"use strict";t.d(n,"b",(function(){return o}));var a=t(16),r=t(17);const{setActiveTag:o}=Object(a.a)("SET_ACTIVE_TAG");n.a=Object(r.a)({[o]:(e,n)=>{let{payload:t}=n;return{...e,activeTag:t}}},{activeTag:""})},72:function(e,n,t){"use strict";t.d(n,"b",(function(){return o}));var a=t(16),r=t(17);const{setActiveTile:o}=Object(a.a)("SET_ACTIVE_TILE");n.a=Object(r.a)({[o]:(e,n)=>{let{payload:t}=n;return{...e,activeTile:t}}},{activeTile:""})},76:function(e,n,t){e.exports=t(124)}},[[76,3,7]]]);
+//# sourceMappingURL=main.6bc5f8c1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.0c8840cd.chunk.js.map b/static/js/main.6bc5f8c1.chunk.js.map
similarity index 99%
rename from static/js/main.0c8840cd.chunk.js.map
rename to static/js/main.6bc5f8c1.chunk.js.map
index 4215ffb2e..78abb130b 100644
--- a/static/js/main.0c8840cd.chunk.js.map
+++ b/static/js/main.6bc5f8c1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["components/navigation.js","components/loader.js","components/app.js","middleware/thunk-middleware.js","modules/index.js","index.js","store.js","util.js","modules/account.js","modules/app.js","modules/item.js","modules/config.js","api.js","modules/prices.js","_data/links.js","modules/bootstrap.js","components/meta.js","components/not-found.js","_data/git.js","modules/git.js","_data/regions.js","components/async.js","modules/plugin-hub.js","season.js","_data/hero.js","modules/session.js","modules/tag.js","modules/tile.js"],"names":["toggleMenu","nav","document","getElementsByClassName","curDisplay","style","display","isHidden","Navigation","_ref","dark","login","loggedIn","username","h","class","Link","onClick","activeClassName","href","src","getChristmasImage","hero","logo","alt","type","id","for","links","patreon","title","twitter","github","Loader","loading","connect","state","isLoggedIn","app","account","dispatch","bindActionCreators","navbarDark","logout","height","Router","Async","path","getComponent","NotFound","default","wrapAsync","getState","action","startLoading","result","Promise","then","r","stopLoading","catch","e","createThunkMiddleware","next","payload","accountReducer","appReducer","bootstrap","bootstrapReducer","config","configReducer","externalPlugins","externalPluginsReducer","git","gitReducer","item","itemReducer","session","sessionReducer","tag","tagReducer","prices","pricesReducer","tile","tileReducer","window","history","scrollHistory","pushState","a","b","url","location","pathname","scrollY","pageYOffset","call","includes","scrollTo","onpopstate","hash","y","setTimeout","store","callback","middlewares","thunkMiddleware","reducer","combineReducers","rootReducer","persistedReducer","persistReducer","key","storage","debug","process","whitelist","transforms","createTransform","JSON","stringify","toRehydrate","parse","value","match","Date","createStore","applyMiddleware","persistor","persistStore","configureStore","async","fetchBootstrap","sessionCheck","root","getElementById","render","Main","Provider","App","getCurrentUrl","getBaseUrl","getUrl","protocol","host","numberWithCommas","x","toString","replace","flattenMap","map","Map","keys","name","get","Object","toMMSS","s","minutes","Math","floor","seconds","round","String","padStart","wikiURLForItem","encodeURIComponent","formatIcon","icon","upperToTitleCase","string","sentence","toLowerCase","split","i","length","toUpperCase","slice","join","bytesToHexString","bytes","uint","Uint8Array","hexBytes","byteString","push","digest","data","MSInputMethodContext","documentMode","msCrypto","subtle","oncomplete","sha256","target","crypto","runeliteApi","api","setSession","resetSession","createActions","LOGIN","version","getLatestRelease","redirUrl","authResponse","method","oauthUrl","LOGOUT","localUuid","uuid","headers","SESSION_CHECK","handleActions","makeNavbarDark","makeNavbarDefault","nextHeroImage","heroImage","runeliteStaticApi","fetchItems","setItems","FETCH_ITEMS","names","items","entries","parseInt","getItems","fetchConfig","updateConfig","setConfig","changeAccount","setTileMarkersFilter","setLootFilter","setGeFilter","FETCH_CONFIG","getSelectedAccount","accounts","getAccounts","UPDATE_CONFIG","edit","unset","patch","mode","body","_ref2","selectedAccount","_ref3","filter","tileMarkers","_ref4","loot","_ref5","ge","getConfig","getTileMarkersFilter","getLootFilter","getGeFilter","createSelector","startsWith","tokens","pkey","find","accountId","undefined","getSlayerTask","hasTask","prefix","start","remaining","streak","points","getLoot","getPrices","entry","count","drops","date","setUTCSeconds","parseFloat","drop","qty","note","unnoted","price","isNaN","reduce","acc","getFilteredLoot","l","indexOf","sort","getBossLog","has","kc","set","pb","getExternalPlugins","getTags","checkData","t","forEach","trim","itemId","abs","itemData","itemName","getTileMarkers","findCurrentRegion","regionNumber","region","regions","tiles","localeCompare","getProfileConfig","profileConfig","getGe","allData","quantity","buy","time","getFilteredGe","base","options","returnRaw","arguments","correctedOptions","correctedUrl","response","fetch","ok","Error","statusText","isJson","arrayBuffer","json","text","error","fetchPrices","setPrices","FETCH_PRICES","priceMap","contribute","srnApi","setBootstrap","FETCH_BOOTSTRAP","meta","selector","content","querySelector","setAttribute","Meta","Component","description","author","image","currentUrl","backgroundImage","backgroundSize","width","boxShadow","verticalAlign","marginLeft","marginRight","textAlign","fontWeight","githubApi","fetchCommits","fetchReleases","fetchPulls","fetchIssues","fetchHashes","setCommits","setLatestCommit","setReleases","setPulls","setDetails","setIssues","setHashes","setFileNames","FETCH_COMMITS","getLatestBootstrapRelease","createCommit","commit","message","shift","html_url","committer","avatar","avatar_url","commits","reverse","latestCommit","merge_base_commit","details","files","additions","deletions","changes","authors","Set","size","FETCH_RELEASES","latest","commitId","sha","releases","release","substr","lastIndexOf","FETCH_PULLS","pulls","all","Array","page","toISOString","flat","pull","draft","mergedAt","merged_at","createdAt","created_at","closedAt","closed_at","labels","label","color","FETCH_ISSUES","issues","issue","pull_request","FETCH_HASHES","hashes","regex","RegExp","line","exec","_ref6","_ref7","_ref8","fileNames","getPulls","getIssues","getCommits","getDetails","getLatestCommit","getHashes","getFileNames","getMergedPullsSinceLastRelease","getOpenedPullsSinceLastRelease","getClosedIssues","some","getOpenedIssues","constructor","super","this","componentData","loadComponent","props","component","setState","componentWillMount","componentWillReceiveProps","nextProps","pluginHubApi","githubRawApi","fetchExternalPlugins","fetchExternalPluginInfo","fetchPluginHubStats","setExternalPlugins","setExternalPluginInfo","setPluginHubStats","setPluginFilter","setPluginSorting","FETCH_EXTERNAL_PLUGINS","signatureSize","DataView","getUint32","jsonStr","TextDecoder","decode","pluginManifest","pluginDisplay","pluginJars","jars","plugins","p","iconHash","imageUrl","internalName","working","j","unavailableReason","FETCH_EXTERNAL_PLUGIN_INFO","repository","kv","repoSplit","user","repo","rawReadmeHTML","accept","readme","mungeURL","context","substring","newRoot","tagName","URL","dom","DOMParser","parseFromString","querySelectorAll","el","getAttribute","endsWith","_el$parentElement","parentElement","textContent","replacement","createElement","replaceWith","innerHTML","console","FETCH_PLUGIN_HUB_STATS","concat","d","stats","sorting","getPluginFilter","getPluginSorting","getExternalPluginsWithState","getConfigExternalPlugins","pluginHubStats","configExternal","installed","hasOwnProperty","getFilteredExternalPlugins","displayName","tags","getSortedExternalPlugins","pluginSorting","lastUpdatedAt","getMonth","module","exports","images","buttons","link","os","arch","fetchSessionCount","fetchLoggedInCount","setSessionCount","setLoggedInCount","FETCH_SESSION_COUNT","FETCH_LOGGED_IN_COUNT","sessionCount","loggedInCount","getSessionCount","getLoggedInCount","setActiveTag","activeTag","setActiveTile","activeTile"],"mappings":"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","file":"static/js/main.0c8840cd.chunk.js","sourcesContent":["import { h } from 'preact'\nimport './navigation.css'\nimport hero from '../_data/hero'\nimport links from '../_data/links'\nimport { Link } from 'preact-router'\nimport { getChristmasImage } from '../season'\n\nfunction toggleMenu() {\n const nav = document.getElementsByClassName('navbar-collapse')[0]\n const curDisplay = nav.style.display\n const isHidden = curDisplay === 'none' || curDisplay === ''\n nav.style.display = isHidden ? 'block' : 'none'\n}\n\nconst Navigation = ({ dark, login, loggedIn, username }) => (\n \n \n {' '}\n \n \n \n \n \n \n
\n \n \n Features\n \n \n \n \n Blog\n \n \n \n \n Pulse\n \n \n \n \n Wiki\n \n \n \n \n Tags\n \n \n \n \n Tile markers\n \n \n \n \n Plugin Hub\n \n \n \n
\n
\n \n)\n\nexport default Navigation\n","import { h } from 'preact'\nimport './loader.css'\n\nconst Loader = ({ loading }) => (\n
\n)\n\nexport default Loader\n","import { h } from 'preact'\nimport { connect } from 'react-redux'\nimport Router from 'preact-router'\nimport { bindActionCreators } from 'redux'\nimport './app.scss'\nimport './hero.scss'\nimport './layout.scss'\nimport Navigation from './navigation'\nimport Loader from './loader'\nimport Async from './async'\nimport NotFound from './not-found'\nimport { isLoggedIn, login } from '../modules/account'\n\nconst App = ({ loading, navbarDark, login, logout, loggedIn, username }) => (\n \n
0} />\n \n \n import('../routes/home')} />\n import('../routes/blog')} />\n import('../routes/blog-show')}\n />\n import('../routes/features')}\n />\n import('../routes/pulse')} />\n