From 912c1ae0afa12a08fb94a56e6de5629f4bf47285 Mon Sep 17 00:00:00 2001 From: Adam- Date: Wed, 17 Apr 2024 13:36:15 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20runelite?= =?UTF-8?q?/runelite.net@8bdb38735bb194bd3a46e33de24375009cad34fd=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset-manifest.json | 674 +++++++-------- atom.xml | 226 ++++- blog/index.html | 2 +- blog/show/2017-12-13-New-Site/index.html | 4 +- .../show/2017-12-21-1.2.10-Release/index.html | 4 +- .../show/2018-01-12-1.2.11-Release/index.html | 4 +- .../show/2018-01-18-1.2.12-Release/index.html | 4 +- .../show/2018-01-25-1.2.13-Release/index.html | 4 +- .../show/2018-02-01-1.2.14-Release/index.html | 4 +- .../show/2018-02-08-1.2.15-Release/index.html | 4 +- .../show/2018-02-15-1.2.16-Release/index.html | 4 +- .../show/2018-02-22-1.2.17-Release/index.html | 4 +- .../show/2018-03-01-1.2.18-Release/index.html | 4 +- .../show/2018-03-08-1.2.19-Release/index.html | 4 +- blog/show/2018-03-15-1.3.0-Release/index.html | 4 +- blog/show/2018-03-22-1.3.1-Release/index.html | 4 +- blog/show/2018-03-29-1.3.2-Release/index.html | 4 +- blog/show/2018-04-05-1.3.3-Release/index.html | 4 +- blog/show/2018-04-12-1.3.4-Release/index.html | 4 +- blog/show/2018-04-19-1.3.5-Release/index.html | 4 +- blog/show/2018-04-26-1.3.6-Release/index.html | 4 +- blog/show/2018-05-03-1.3.7-Release/index.html | 4 +- blog/show/2018-05-10-1.3.8-Release/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- blog/show/2018-05-18-1.3.9-Release/index.html | 4 +- blog/show/2018-05-24-1.4.0-Release/index.html | 4 +- .../2018-05-25-Phishing-Attempts/index.html | 4 +- blog/show/2018-05-31-1.4.1-Release/index.html | 4 +- blog/show/2018-06-07-1.4.2-Release/index.html | 4 +- blog/show/2018-06-14-1.4.3-Release/index.html | 4 +- blog/show/2018-06-21-1.4.4-Release/index.html | 4 +- blog/show/2018-06-28-1.4.5-Release/index.html | 4 +- blog/show/2018-07-05-1.4.6-Release/index.html | 4 +- blog/show/2018-07-12-1.4.7-Release/index.html | 4 +- blog/show/2018-07-19-1.4.8-Release/index.html | 4 +- blog/show/2018-07-26-1.4.9-Release/index.html | 4 +- .../show/2018-08-02-1.4.10-Release/index.html | 4 +- .../show/2018-08-09-1.4.11-Release/index.html | 4 +- .../show/2018-08-16-1.4.12-Release/index.html | 4 +- .../show/2018-08-23-1.4.13-Release/index.html | 4 +- .../show/2018-08-30-1.4.15-Release/index.html | 4 +- .../show/2018-09-06-1.4.16-Release/index.html | 4 +- .../show/2018-09-13-1.4.17-Release/index.html | 4 +- .../index.html | 4 +- .../show/2018-09-20-1.4.18-Release/index.html | 4 +- .../show/2018-09-27-1.4.19-Release/index.html | 4 +- .../show/2018-10-04-1.4.20-Release/index.html | 4 +- .../show/2018-10-11-1.4.21-Release/index.html | 4 +- .../show/2018-10-18-1.4.22-Release/index.html | 4 +- .../show/2018-10-25-1.4.23-Release/index.html | 4 +- .../show/2018-11-01-1.4.24-Release/index.html | 4 +- .../show/2018-11-08-1.4.25-Release/index.html | 4 +- .../show/2018-11-15-1.4.26-Release/index.html | 4 +- blog/show/2018-11-16-1.5.0-Release/index.html | 4 +- blog/show/2018-11-22-1.5.1-Release/index.html | 4 +- blog/show/2018-11-29-1.5.2-Release/index.html | 4 +- blog/show/2018-12-06-1.5.3-Release/index.html | 4 +- blog/show/2018-12-13-1.5.4-Release/index.html | 4 +- blog/show/2018-12-20-1.5.5-Release/index.html | 4 +- blog/show/2019-01-03-1.5.6-Release/index.html | 4 +- blog/show/2019-01-10-1.5.7-Release/index.html | 4 +- blog/show/2019-01-17-1.5.8-Release/index.html | 4 +- blog/show/2019-01-24-1.5.9-Release/index.html | 4 +- .../show/2019-01-31-1.5.10-Release/index.html | 4 +- .../show/2019-02-07-1.5.11-Release/index.html | 4 +- .../show/2019-02-14-1.5.12-Release/index.html | 4 +- .../index.html | 4 +- .../show/2019-02-21-1.5.13-Release/index.html | 4 +- .../show/2019-02-28-1.5.14-Release/index.html | 4 +- .../show/2019-03-07-1.5.15-Release/index.html | 4 +- .../show/2019-03-14-1.5.16-Release/index.html | 4 +- .../show/2019-03-21-1.5.17-Release/index.html | 4 +- .../show/2019-03-28-1.5.18-Release/index.html | 4 +- .../show/2019-04-11-1.5.19-Release/index.html | 4 +- .../show/2019-04-18-1.5.20-Release/index.html | 4 +- .../show/2019-04-25-1.5.21-Release/index.html | 4 +- .../show/2019-05-03-1.5.22-Release/index.html | 4 +- .../show/2019-05-16-1.5.23-Release/index.html | 4 +- .../show/2019-05-30-1.5.25-Release/index.html | 4 +- .../show/2019-06-06-1.5.26-Release/index.html | 4 +- .../show/2019-06-20-1.5.27-Release/index.html | 4 +- .../show/2019-07-04-1.5.28-Release/index.html | 4 +- .../show/2019-07-18-1.5.29-Release/index.html | 4 +- .../show/2019-08-01-1.5.30-Release/index.html | 4 +- .../show/2019-08-15-1.5.31-Release/index.html | 4 +- .../index.html | 4 +- .../show/2019-08-29-1.5.32-Release/index.html | 4 +- .../show/2019-09-12-1.5.33-Release/index.html | 4 +- .../show/2019-09-26-1.5.34-Release/index.html | 4 +- .../show/2019-10-02-1.5.35-Release/index.html | 4 +- .../show/2019-10-17-1.5.36-Release/index.html | 4 +- .../show/2019-10-30-1.5.37-Release/index.html | 4 +- .../show/2019-11-14-1.5.40-Release/index.html | 4 +- .../show/2019-11-28-1.5.42-Release/index.html | 4 +- .../show/2019-12-16-1.5.43-Release/index.html | 4 +- blog/show/2019-12-19-1.6.0-Release/index.html | 4 +- blog/show/2020-01-09-1.6.1-Release/index.html | 4 +- blog/show/2020-01-16-1.6.2-Release/index.html | 4 +- blog/show/2020-01-22-1.6.4-Release/index.html | 4 +- blog/show/2020-01-29-1.6.5-Release/index.html | 4 +- blog/show/2020-02-13-1.6.6-Release/index.html | 4 +- blog/show/2020-02-27-1.6.8-Release/index.html | 4 +- blog/show/2020-03-05-1.6.9-Release/index.html | 4 +- .../show/2020-03-26-1.6.10-Release/index.html | 4 +- .../show/2020-04-16-1.6.11-Release/index.html | 4 +- .../show/2020-05-01-1.6.13-Release/index.html | 4 +- .../show/2020-05-09-1.6.14-Release/index.html | 4 +- .../show/2020-05-28-1.6.17-Release/index.html | 4 +- .../show/2020-06-12-1.6.19-Release/index.html | 4 +- .../show/2020-06-18-1.6.20-Release/index.html | 4 +- .../show/2020-06-25-1.6.21-Release/index.html | 4 +- .../show/2020-07-16-1.6.22-Release/index.html | 4 +- .../show/2020-07-23-1.6.23-Release/index.html | 4 +- .../show/2020-08-26-1.6.25-Release/index.html | 4 +- .../show/2020-09-23-1.6.27-Release/index.html | 4 +- .../show/2020-10-07-1.6.28-Release/index.html | 4 +- .../show/2020-11-11-1.6.31-Release/index.html | 4 +- .../show/2020-12-02-1.6.33-Release/index.html | 4 +- .../show/2021-01-06-1.6.36-Release/index.html | 4 +- .../show/2021-01-27-1.6.38-Release/index.html | 4 +- blog/show/2021-02-13-1.7.0-Release/index.html | 4 +- .../2021-03-08-Wiki-Ge-Partnership/index.html | 4 +- blog/show/2021-03-24-1.7.3-Release/index.html | 4 +- blog/show/2021-05-12-1.7.7-Release/index.html | 4 +- .../show/2021-05-28-1.7.10-Release/index.html | 4 +- .../show/2021-06-23-1.7.13-Release/index.html | 4 +- .../show/2021-07-14-1.7.16-Release/index.html | 4 +- .../show/2021-07-21-1.7.17-Release/index.html | 4 +- .../show/2021-09-06-1.7.22-Release/index.html | 4 +- .../show/2021-10-06-1.7.25-Release/index.html | 4 +- blog/show/2021-10-28-1.8.0-Release/index.html | 4 +- blog/show/2021-12-16-1.8.7-Release/index.html | 4 +- .../show/2022-03-09-1.8.13-Release/index.html | 4 +- .../show/2022-05-11-1.8.19-Release/index.html | 4 +- .../show/2022-06-17-1.8.24-Release/index.html | 4 +- .../show/2022-07-13-1.8.27-Release/index.html | 4 +- .../show/2022-08-21-1.8.31-Release/index.html | 4 +- .../index.html | 4 +- blog/show/2022-10-05-1.9.0-Release/index.html | 4 +- blog/show/2022-12-07-1.9.5-Release/index.html | 4 +- .../index.html | 4 +- .../show/2023-02-18-1.9.11-Release/index.html | 4 +- .../show/2023-05-13-1.10.0-Release/index.html | 4 +- .../show/2023-07-01-1.10.6-Release/index.html | 4 +- .../2023-09-09-1.10.12-Release/index.html | 4 +- .../2023-11-05-1.10.15-Release/index.html | 4 +- .../2024-02-24-1.10.23-Release/index.html | 4 +- .../2024-03-21-1.10.25-Release/index.html | 4 +- .../2024-04-17-1.10.27-Release/index.html | 215 +++++ features/index.html | 2 +- img/blog/1.10.27-Release/notif1.png | Bin 0 -> 1195 bytes img/blog/1.10.27-Release/notif2.png | Bin 0 -> 7223 bytes img/blog/1.10.27-Release/spellbook.mp4 | Bin 0 -> 503353 bytes img/blog/1.10.27-Release/teleports.png | Bin 0 -> 50404 bytes index.html | 2 +- plugin-hub/index.html | 8 +- ...nifest.768a9a6250686716214c8bd5d8285774.js | 810 ++++++++++++++++++ ...nifest.7924f308ee95e745e78d38ef45bc2ee6.js | 806 ----------------- service-worker.js | 2 +- sitemap.xml | 2 +- sitemap.xml.gz | Bin 1898 -> 1910 bytes ....aea5108a.chunk.js => 0.da263fb4.chunk.js} | 6 +- ...SE.txt => 0.da263fb4.chunk.js.LICENSE.txt} | 0 ...a.chunk.js.map => 0.da263fb4.chunk.js.map} | 2 +- ....d63cf247.chunk.js => 1.c7f6ac57.chunk.js} | 4 +- ...7.chunk.js.map => 1.c7f6ac57.chunk.js.map} | 2 +- ...87860120.chunk.js => 10.d21eec56.chunk.js} | 4 +- ....chunk.js.map => 10.d21eec56.chunk.js.map} | 2 +- ...48aed76.chunk.js => 100.4c100485.chunk.js} | 4 +- ...chunk.js.map => 100.4c100485.chunk.js.map} | 2 +- ...980d76e.chunk.js => 101.485729cc.chunk.js} | 4 +- ...chunk.js.map => 101.485729cc.chunk.js.map} | 2 +- ...54c378c.chunk.js => 102.62e061d0.chunk.js} | 4 +- ...chunk.js.map => 102.62e061d0.chunk.js.map} | 2 +- ...68abdfe.chunk.js => 103.de89b958.chunk.js} | 4 +- ...chunk.js.map => 103.de89b958.chunk.js.map} | 2 +- ...984f63f.chunk.js => 104.e2fafda2.chunk.js} | 4 +- ...chunk.js.map => 104.e2fafda2.chunk.js.map} | 2 +- ...655bd95.chunk.js => 105.26922674.chunk.js} | 4 +- ...chunk.js.map => 105.26922674.chunk.js.map} | 2 +- ...1b8ecb4.chunk.js => 106.aaba779d.chunk.js} | 4 +- ...chunk.js.map => 106.aaba779d.chunk.js.map} | 2 +- ...829d84b.chunk.js => 107.8f09dd19.chunk.js} | 4 +- ...chunk.js.map => 107.8f09dd19.chunk.js.map} | 2 +- ...26dd588.chunk.js => 108.4f31c7e5.chunk.js} | 4 +- ...chunk.js.map => 108.4f31c7e5.chunk.js.map} | 2 +- ...999bff3.chunk.js => 109.267273f1.chunk.js} | 4 +- ...chunk.js.map => 109.267273f1.chunk.js.map} | 2 +- ...eb3139be.chunk.js => 11.56560e92.chunk.js} | 4 +- ....chunk.js.map => 11.56560e92.chunk.js.map} | 2 +- ...da76866.chunk.js => 110.eec0da7d.chunk.js} | 4 +- ...chunk.js.map => 110.eec0da7d.chunk.js.map} | 2 +- ...f764d67.chunk.js => 111.4fb08f3f.chunk.js} | 4 +- ...chunk.js.map => 111.4fb08f3f.chunk.js.map} | 2 +- ...0488108.chunk.js => 112.f3767d44.chunk.js} | 4 +- ...chunk.js.map => 112.f3767d44.chunk.js.map} | 2 +- ...ea5ca47.chunk.js => 113.5f398440.chunk.js} | 4 +- ...chunk.js.map => 113.5f398440.chunk.js.map} | 2 +- ...5d08486.chunk.js => 114.483266ef.chunk.js} | 4 +- ...chunk.js.map => 114.483266ef.chunk.js.map} | 2 +- ...315bee9.chunk.js => 115.723ab803.chunk.js} | 4 +- ...chunk.js.map => 115.723ab803.chunk.js.map} | 2 +- ...c4acf03.chunk.js => 116.82cfb4c3.chunk.js} | 4 +- ...chunk.js.map => 116.82cfb4c3.chunk.js.map} | 2 +- ...74fa60a.chunk.js => 117.ce3dd0bd.chunk.js} | 4 +- ...chunk.js.map => 117.ce3dd0bd.chunk.js.map} | 2 +- ...cb728a3.chunk.js => 118.c46f0032.chunk.js} | 4 +- ...chunk.js.map => 118.c46f0032.chunk.js.map} | 2 +- ...bff61ff.chunk.js => 119.79bd2e9d.chunk.js} | 4 +- ...chunk.js.map => 119.79bd2e9d.chunk.js.map} | 2 +- ...d7e9e6ce.chunk.js => 12.490f3107.chunk.js} | 4 +- ....chunk.js.map => 12.490f3107.chunk.js.map} | 2 +- ...bdb867f.chunk.js => 120.16e25e66.chunk.js} | 4 +- ...chunk.js.map => 120.16e25e66.chunk.js.map} | 2 +- ...3d36392.chunk.js => 121.ad0efbf8.chunk.js} | 4 +- ...chunk.js.map => 121.ad0efbf8.chunk.js.map} | 2 +- ...7ed9bc1.chunk.js => 122.867c12a6.chunk.js} | 4 +- ...chunk.js.map => 122.867c12a6.chunk.js.map} | 2 +- ...98a1837.chunk.js => 123.00eab965.chunk.js} | 4 +- ...chunk.js.map => 123.00eab965.chunk.js.map} | 2 +- ...1bd1575.chunk.js => 124.64d8a114.chunk.js} | 4 +- ...chunk.js.map => 124.64d8a114.chunk.js.map} | 2 +- ...7e6895b.chunk.js => 125.013abb3a.chunk.js} | 4 +- ...chunk.js.map => 125.013abb3a.chunk.js.map} | 2 +- ...9448497.chunk.js => 126.c97413d0.chunk.js} | 4 +- ...chunk.js.map => 126.c97413d0.chunk.js.map} | 2 +- ...454f424.chunk.js => 127.f68008e1.chunk.js} | 4 +- ...chunk.js.map => 127.f68008e1.chunk.js.map} | 2 +- ...47aab4e.chunk.js => 128.b10d1c80.chunk.js} | 4 +- ...chunk.js.map => 128.b10d1c80.chunk.js.map} | 2 +- ...a2f0451.chunk.js => 129.68e53a78.chunk.js} | 4 +- ...chunk.js.map => 129.68e53a78.chunk.js.map} | 2 +- ...865c04a4.chunk.js => 13.dfdb92fe.chunk.js} | 4 +- ....chunk.js.map => 13.dfdb92fe.chunk.js.map} | 2 +- ...94d6caa.chunk.js => 130.f9bedcf3.chunk.js} | 4 +- ...chunk.js.map => 130.f9bedcf3.chunk.js.map} | 2 +- ...1f72eda.chunk.js => 131.4de7b85e.chunk.js} | 4 +- ...chunk.js.map => 131.4de7b85e.chunk.js.map} | 2 +- ...6329c2e.chunk.js => 132.f0dc0d4c.chunk.js} | 4 +- ...chunk.js.map => 132.f0dc0d4c.chunk.js.map} | 2 +- ...7f934d4.chunk.js => 133.476ae942.chunk.js} | 4 +- ...chunk.js.map => 133.476ae942.chunk.js.map} | 2 +- ...66c306b.chunk.js => 134.4992c71c.chunk.js} | 4 +- ...chunk.js.map => 134.4992c71c.chunk.js.map} | 2 +- ...db3fff1.chunk.js => 135.13177433.chunk.js} | 4 +- ...chunk.js.map => 135.13177433.chunk.js.map} | 2 +- ...50cc0fc.chunk.js => 136.5d1414a8.chunk.js} | 4 +- ...chunk.js.map => 136.5d1414a8.chunk.js.map} | 2 +- ...001ca4c.chunk.js => 137.4994fc2b.chunk.js} | 4 +- ...chunk.js.map => 137.4994fc2b.chunk.js.map} | 2 +- ...59316b0.chunk.js => 138.4fb392c9.chunk.js} | 4 +- ...chunk.js.map => 138.4fb392c9.chunk.js.map} | 2 +- ...ec830bb.chunk.js => 139.7c533985.chunk.js} | 4 +- ...chunk.js.map => 139.7c533985.chunk.js.map} | 2 +- ...15d2d6c8.chunk.js => 14.5fee5def.chunk.js} | 4 +- ....chunk.js.map => 14.5fee5def.chunk.js.map} | 2 +- ...5d283f7.chunk.js => 140.8ac8b0e1.chunk.js} | 4 +- ...chunk.js.map => 140.8ac8b0e1.chunk.js.map} | 2 +- ...d369817.chunk.js => 141.2565231e.chunk.js} | 4 +- ...chunk.js.map => 141.2565231e.chunk.js.map} | 2 +- ...ef81b98.chunk.js => 142.fa0d2df4.chunk.js} | 4 +- ...chunk.js.map => 142.fa0d2df4.chunk.js.map} | 2 +- ...9d890ca.chunk.js => 143.96cc9182.chunk.js} | 4 +- ...chunk.js.map => 143.96cc9182.chunk.js.map} | 2 +- ...0f1e2de.chunk.js => 144.498696a6.chunk.js} | 4 +- ...chunk.js.map => 144.498696a6.chunk.js.map} | 2 +- ...322b12c.chunk.js => 145.8bdb0315.chunk.js} | 4 +- ...chunk.js.map => 145.8bdb0315.chunk.js.map} | 2 +- ...a2d51de.chunk.js => 146.c5fa6642.chunk.js} | 4 +- ...chunk.js.map => 146.c5fa6642.chunk.js.map} | 2 +- ...ae687bf.chunk.js => 147.32e24664.chunk.js} | 4 +- ...chunk.js.map => 147.32e24664.chunk.js.map} | 2 +- ...770baa3.chunk.js => 148.eac46e76.chunk.js} | 4 +- ...chunk.js.map => 148.eac46e76.chunk.js.map} | 2 +- ...d4a1d41.chunk.js => 149.4b7bc910.chunk.js} | 4 +- ...chunk.js.map => 149.4b7bc910.chunk.js.map} | 2 +- ...39c21782.chunk.js => 15.480db188.chunk.js} | 4 +- ....chunk.js.map => 15.480db188.chunk.js.map} | 2 +- ...7713b63.chunk.js => 150.55b9afa9.chunk.js} | 4 +- ...chunk.js.map => 150.55b9afa9.chunk.js.map} | 2 +- ...a0c3bd8.chunk.js => 151.205738ca.chunk.js} | 4 +- ...chunk.js.map => 151.205738ca.chunk.js.map} | 2 +- ...6939e7a.chunk.js => 152.b02cf8a2.chunk.js} | 4 +- ...chunk.js.map => 152.b02cf8a2.chunk.js.map} | 2 +- ...59e3066.chunk.js => 153.4533f6dc.chunk.js} | 4 +- ...chunk.js.map => 153.4533f6dc.chunk.js.map} | 2 +- ...82f372d.chunk.js => 154.ae70fd4e.chunk.js} | 4 +- ...chunk.js.map => 154.ae70fd4e.chunk.js.map} | 2 +- ...94bbfa6.chunk.js => 155.aa3f28a1.chunk.js} | 4 +- ...chunk.js.map => 155.aa3f28a1.chunk.js.map} | 2 +- ...b2198d0.chunk.js => 156.75b7ff6b.chunk.js} | 4 +- ...chunk.js.map => 156.75b7ff6b.chunk.js.map} | 2 +- ...5898266.chunk.js => 157.019e45fe.chunk.js} | 4 +- ...chunk.js.map => 157.019e45fe.chunk.js.map} | 2 +- ...d94cd27.chunk.js => 158.b057afef.chunk.js} | 4 +- ...chunk.js.map => 158.b057afef.chunk.js.map} | 2 +- ...98105ca.chunk.js => 159.90e89192.chunk.js} | 4 +- ...chunk.js.map => 159.90e89192.chunk.js.map} | 2 +- ...06b43ad9.chunk.js => 16.19625a89.chunk.js} | 4 +- ....chunk.js.map => 16.19625a89.chunk.js.map} | 2 +- ...39ae5ed.chunk.js => 160.97d2cc95.chunk.js} | 4 +- ...chunk.js.map => 160.97d2cc95.chunk.js.map} | 2 +- ...0f472fd.chunk.js => 161.341e9f6e.chunk.js} | 4 +- ...chunk.js.map => 161.341e9f6e.chunk.js.map} | 2 +- ...70a8e5c.chunk.js => 162.739b9a95.chunk.js} | 4 +- ...chunk.js.map => 162.739b9a95.chunk.js.map} | 2 +- ...318864c.chunk.js => 163.a8adb4ef.chunk.js} | 4 +- ...chunk.js.map => 163.a8adb4ef.chunk.js.map} | 2 +- ...232149d.chunk.js => 164.3802dd6f.chunk.js} | 4 +- ...chunk.js.map => 164.3802dd6f.chunk.js.map} | 2 +- ...b5bbdee.chunk.js => 165.31cc8912.chunk.js} | 4 +- ...chunk.js.map => 165.31cc8912.chunk.js.map} | 2 +- ...49971e3.chunk.js => 166.2f841439.chunk.js} | 4 +- ...chunk.js.map => 166.2f841439.chunk.js.map} | 2 +- static/js/167.b292f1e5.chunk.js | 2 + static/js/167.b292f1e5.chunk.js.map | 1 + ...749ecabc.chunk.js => 17.429a6923.chunk.js} | 4 +- ....chunk.js.map => 17.429a6923.chunk.js.map} | 2 +- ...c42c1b0d.chunk.js => 18.ab757883.chunk.js} | 4 +- ....chunk.js.map => 18.ab757883.chunk.js.map} | 2 +- ...d890df25.chunk.js => 19.965cd23c.chunk.js} | 4 +- ....chunk.js.map => 19.965cd23c.chunk.js.map} | 2 +- ...50501647.chunk.js => 20.71ae775c.chunk.js} | 4 +- ....chunk.js.map => 20.71ae775c.chunk.js.map} | 2 +- ...6728bb30.chunk.js => 21.b69ae13a.chunk.js} | 4 +- ....chunk.js.map => 21.b69ae13a.chunk.js.map} | 2 +- ...763fd789.chunk.js => 22.ead97899.chunk.js} | 4 +- ....chunk.js.map => 22.ead97899.chunk.js.map} | 2 +- ...099ac622.chunk.js => 23.d0f7f215.chunk.js} | 4 +- ....chunk.js.map => 23.d0f7f215.chunk.js.map} | 2 +- ...e3cbefe4.chunk.js => 24.ed21d2d5.chunk.js} | 4 +- ....chunk.js.map => 24.ed21d2d5.chunk.js.map} | 2 +- ...a9e71e71.chunk.js => 25.2fcb3630.chunk.js} | 4 +- ....chunk.js.map => 25.2fcb3630.chunk.js.map} | 2 +- ...a8c58ff8.chunk.js => 26.03657595.chunk.js} | 4 +- ....chunk.js.map => 26.03657595.chunk.js.map} | 2 +- ...295ad2c8.chunk.js => 27.650ef959.chunk.js} | 4 +- ....chunk.js.map => 27.650ef959.chunk.js.map} | 2 +- ...d344fb98.chunk.js => 28.61c87868.chunk.js} | 4 +- ....chunk.js.map => 28.61c87868.chunk.js.map} | 2 +- ...d49afaed.chunk.js => 29.de5b64b9.chunk.js} | 4 +- ....chunk.js.map => 29.de5b64b9.chunk.js.map} | 2 +- ...2b2c87c8.chunk.js => 30.3df49031.chunk.js} | 4 +- ....chunk.js.map => 30.3df49031.chunk.js.map} | 2 +- ...7dd40ba1.chunk.js => 31.4a4c233f.chunk.js} | 4 +- ....chunk.js.map => 31.4a4c233f.chunk.js.map} | 2 +- ...4583ab7d.chunk.js => 32.4474bc7f.chunk.js} | 4 +- ....chunk.js.map => 32.4474bc7f.chunk.js.map} | 2 +- ...c5534493.chunk.js => 33.c4289d83.chunk.js} | 4 +- ....chunk.js.map => 33.c4289d83.chunk.js.map} | 2 +- ...f75ad7c3.chunk.js => 34.ad76e96a.chunk.js} | 4 +- ....chunk.js.map => 34.ad76e96a.chunk.js.map} | 2 +- ...a739d48c.chunk.js => 35.77d3866f.chunk.js} | 4 +- ....chunk.js.map => 35.77d3866f.chunk.js.map} | 2 +- ...8bd4edc4.chunk.js => 36.c3f93721.chunk.js} | 4 +- ....chunk.js.map => 36.c3f93721.chunk.js.map} | 2 +- ...92c716e2.chunk.js => 37.0e895e23.chunk.js} | 4 +- ....chunk.js.map => 37.0e895e23.chunk.js.map} | 2 +- ...4e4930d9.chunk.js => 38.aa273ffd.chunk.js} | 4 +- ....chunk.js.map => 38.aa273ffd.chunk.js.map} | 2 +- ...92d7af0d.chunk.js => 39.246782de.chunk.js} | 4 +- ....chunk.js.map => 39.246782de.chunk.js.map} | 2 +- static/js/4.aa61be93.chunk.js | 2 - static/js/4.aa61be93.chunk.js.map | 1 - static/js/4.c7f743bf.chunk.js | 2 + static/js/4.c7f743bf.chunk.js.map | 1 + ...9aaf62be.chunk.js => 40.a15a7621.chunk.js} | 4 +- ....chunk.js.map => 40.a15a7621.chunk.js.map} | 2 +- ...592215a6.chunk.js => 41.5172a0ab.chunk.js} | 4 +- ....chunk.js.map => 41.5172a0ab.chunk.js.map} | 2 +- ...903c5167.chunk.js => 42.b64f47e5.chunk.js} | 4 +- ....chunk.js.map => 42.b64f47e5.chunk.js.map} | 2 +- ...b1e16791.chunk.js => 43.7b5e24c0.chunk.js} | 4 +- ....chunk.js.map => 43.7b5e24c0.chunk.js.map} | 2 +- ...0adcba78.chunk.js => 44.15cb5c09.chunk.js} | 4 +- ....chunk.js.map => 44.15cb5c09.chunk.js.map} | 2 +- ...c4bbc4cf.chunk.js => 45.4620406b.chunk.js} | 4 +- ....chunk.js.map => 45.4620406b.chunk.js.map} | 2 +- ...8227b11c.chunk.js => 46.702693cd.chunk.js} | 4 +- ....chunk.js.map => 46.702693cd.chunk.js.map} | 2 +- ...7c49292c.chunk.js => 47.495473b8.chunk.js} | 4 +- ....chunk.js.map => 47.495473b8.chunk.js.map} | 2 +- ...c0d72fee.chunk.js => 48.563ff224.chunk.js} | 4 +- ....chunk.js.map => 48.563ff224.chunk.js.map} | 2 +- ...198f8502.chunk.js => 49.dcd54463.chunk.js} | 4 +- ....chunk.js.map => 49.dcd54463.chunk.js.map} | 2 +- static/js/5.387ebcc8.chunk.js | 2 - static/js/5.387ebcc8.chunk.js.map | 1 - static/js/5.ca584576.chunk.js | 2 + static/js/5.ca584576.chunk.js.map | 1 + ...c0161ec5.chunk.js => 50.e486c0fa.chunk.js} | 4 +- ....chunk.js.map => 50.e486c0fa.chunk.js.map} | 2 +- ...605852c3.chunk.js => 51.b7dad8dd.chunk.js} | 4 +- ....chunk.js.map => 51.b7dad8dd.chunk.js.map} | 2 +- ...6e287ecc.chunk.js => 52.5b975a19.chunk.js} | 4 +- ....chunk.js.map => 52.5b975a19.chunk.js.map} | 2 +- ...182d04ca.chunk.js => 53.a5a4cd5a.chunk.js} | 4 +- ....chunk.js.map => 53.a5a4cd5a.chunk.js.map} | 2 +- ...fbfa5538.chunk.js => 54.08c5d72d.chunk.js} | 4 +- ....chunk.js.map => 54.08c5d72d.chunk.js.map} | 2 +- ...c6dac92d.chunk.js => 55.26f9d5db.chunk.js} | 4 +- ....chunk.js.map => 55.26f9d5db.chunk.js.map} | 2 +- ...b5ab65d9.chunk.js => 56.042a9f61.chunk.js} | 4 +- ....chunk.js.map => 56.042a9f61.chunk.js.map} | 2 +- ...b4ec6473.chunk.js => 57.1560ecd1.chunk.js} | 4 +- ....chunk.js.map => 57.1560ecd1.chunk.js.map} | 2 +- ...c505ca02.chunk.js => 58.0ffde795.chunk.js} | 4 +- ....chunk.js.map => 58.0ffde795.chunk.js.map} | 2 +- ...bd3d8da5.chunk.js => 59.7f3967e3.chunk.js} | 4 +- ....chunk.js.map => 59.7f3967e3.chunk.js.map} | 2 +- static/js/6.1374853e.chunk.js | 2 - static/js/6.1374853e.chunk.js.map | 1 - static/js/6.8b31eff6.chunk.js | 2 + static/js/6.8b31eff6.chunk.js.map | 1 + ...ed179461.chunk.js => 60.7bfb81d4.chunk.js} | 4 +- ....chunk.js.map => 60.7bfb81d4.chunk.js.map} | 2 +- ...47dcf177.chunk.js => 61.601b2085.chunk.js} | 4 +- ....chunk.js.map => 61.601b2085.chunk.js.map} | 2 +- ...73ea7cbc.chunk.js => 62.5a073228.chunk.js} | 4 +- ....chunk.js.map => 62.5a073228.chunk.js.map} | 2 +- ...024514d1.chunk.js => 63.d344125a.chunk.js} | 4 +- ....chunk.js.map => 63.d344125a.chunk.js.map} | 2 +- ...0d8de512.chunk.js => 64.ac4863b7.chunk.js} | 4 +- ....chunk.js.map => 64.ac4863b7.chunk.js.map} | 2 +- ...eaf4b8e3.chunk.js => 65.1f63a476.chunk.js} | 4 +- ....chunk.js.map => 65.1f63a476.chunk.js.map} | 2 +- ...b9608f5d.chunk.js => 66.aac767c4.chunk.js} | 4 +- ....chunk.js.map => 66.aac767c4.chunk.js.map} | 2 +- ...af3df1eb.chunk.js => 67.613c11a8.chunk.js} | 4 +- ....chunk.js.map => 67.613c11a8.chunk.js.map} | 2 +- ...ec9d010e.chunk.js => 68.88ba4792.chunk.js} | 4 +- ....chunk.js.map => 68.88ba4792.chunk.js.map} | 2 +- ...0e1bedb0.chunk.js => 69.eedabcd7.chunk.js} | 4 +- ....chunk.js.map => 69.eedabcd7.chunk.js.map} | 2 +- ...9ca1515e.chunk.js => 70.64a0e193.chunk.js} | 4 +- ....chunk.js.map => 70.64a0e193.chunk.js.map} | 2 +- ...aa3651ff.chunk.js => 71.8ad630e3.chunk.js} | 4 +- ....chunk.js.map => 71.8ad630e3.chunk.js.map} | 2 +- ...1808ce35.chunk.js => 72.53d1a1c5.chunk.js} | 4 +- ....chunk.js.map => 72.53d1a1c5.chunk.js.map} | 2 +- ...79d53550.chunk.js => 73.494e7d44.chunk.js} | 4 +- ....chunk.js.map => 73.494e7d44.chunk.js.map} | 2 +- ...94c75616.chunk.js => 74.621a6485.chunk.js} | 4 +- ....chunk.js.map => 74.621a6485.chunk.js.map} | 2 +- ...c4d418ac.chunk.js => 75.69a4b1bf.chunk.js} | 4 +- ....chunk.js.map => 75.69a4b1bf.chunk.js.map} | 2 +- ...24221d23.chunk.js => 76.eef5a2d5.chunk.js} | 4 +- ....chunk.js.map => 76.eef5a2d5.chunk.js.map} | 2 +- ...fcbd2fa1.chunk.js => 77.7018f253.chunk.js} | 4 +- ....chunk.js.map => 77.7018f253.chunk.js.map} | 2 +- ...e0cdb49e.chunk.js => 78.e0340fa9.chunk.js} | 4 +- ....chunk.js.map => 78.e0340fa9.chunk.js.map} | 2 +- ...4fd5727b.chunk.js => 79.e9258a3a.chunk.js} | 4 +- ....chunk.js.map => 79.e9258a3a.chunk.js.map} | 2 +- ....c51bfff0.chunk.js => 8.e46392e3.chunk.js} | 4 +- ...0.chunk.js.map => 8.e46392e3.chunk.js.map} | 2 +- ...cc919a1a.chunk.js => 80.8fdde840.chunk.js} | 4 +- ....chunk.js.map => 80.8fdde840.chunk.js.map} | 2 +- ...6d907df1.chunk.js => 81.84330a7b.chunk.js} | 4 +- ....chunk.js.map => 81.84330a7b.chunk.js.map} | 2 +- ...e378a04c.chunk.js => 82.6cf52313.chunk.js} | 4 +- ....chunk.js.map => 82.6cf52313.chunk.js.map} | 2 +- ...de903a04.chunk.js => 83.923205ea.chunk.js} | 4 +- ....chunk.js.map => 83.923205ea.chunk.js.map} | 2 +- ...6d668161.chunk.js => 84.9ed526bb.chunk.js} | 4 +- ....chunk.js.map => 84.9ed526bb.chunk.js.map} | 2 +- ...e5fd6fe5.chunk.js => 85.8ecb5036.chunk.js} | 4 +- ....chunk.js.map => 85.8ecb5036.chunk.js.map} | 2 +- ...fef39be4.chunk.js => 86.0fac9206.chunk.js} | 4 +- ....chunk.js.map => 86.0fac9206.chunk.js.map} | 2 +- ...ac7910b0.chunk.js => 87.b1d5a080.chunk.js} | 4 +- ....chunk.js.map => 87.b1d5a080.chunk.js.map} | 2 +- ...b995a874.chunk.js => 88.05655334.chunk.js} | 4 +- ....chunk.js.map => 88.05655334.chunk.js.map} | 2 +- ...2427a52d.chunk.js => 89.b3791ef4.chunk.js} | 4 +- ....chunk.js.map => 89.b3791ef4.chunk.js.map} | 2 +- ....41457976.chunk.js => 9.cff2c3bf.chunk.js} | 4 +- ...6.chunk.js.map => 9.cff2c3bf.chunk.js.map} | 2 +- ...8b140935.chunk.js => 90.e98cc0d4.chunk.js} | 4 +- ....chunk.js.map => 90.e98cc0d4.chunk.js.map} | 2 +- ...bbe172a6.chunk.js => 91.89730dda.chunk.js} | 4 +- ....chunk.js.map => 91.89730dda.chunk.js.map} | 2 +- ...7129e6d4.chunk.js => 92.0161b2c3.chunk.js} | 4 +- ....chunk.js.map => 92.0161b2c3.chunk.js.map} | 2 +- ...badbdcfc.chunk.js => 93.8e4a6aa7.chunk.js} | 4 +- ....chunk.js.map => 93.8e4a6aa7.chunk.js.map} | 2 +- ...38aa73c4.chunk.js => 94.d13ad504.chunk.js} | 4 +- ....chunk.js.map => 94.d13ad504.chunk.js.map} | 2 +- ...292d25fe.chunk.js => 95.f77fcb17.chunk.js} | 4 +- ....chunk.js.map => 95.f77fcb17.chunk.js.map} | 2 +- ...a38e03c8.chunk.js => 96.383e51be.chunk.js} | 4 +- ....chunk.js.map => 96.383e51be.chunk.js.map} | 2 +- ...62ac06e4.chunk.js => 97.1ce3b748.chunk.js} | 4 +- ....chunk.js.map => 97.1ce3b748.chunk.js.map} | 2 +- ...c8e387f6.chunk.js => 98.38a93077.chunk.js} | 4 +- ....chunk.js.map => 98.38a93077.chunk.js.map} | 2 +- ...0e80284c.chunk.js => 99.99888f24.chunk.js} | 4 +- ....chunk.js.map => 99.99888f24.chunk.js.map} | 2 +- ...26d3a5.chunk.js => main.3922a676.chunk.js} | 4 +- ...hunk.js.map => main.3922a676.chunk.js.map} | 2 +- static/js/runtime-main.343f8325.js | 2 + static/js/runtime-main.343f8325.js.map | 1 + static/js/runtime-main.72783661.js | 2 - static/js/runtime-main.72783661.js.map | 1 - tag/index.html | 2 +- tile/index.html | 2 +- verify/index.html | 2 +- 509 files changed, 2396 insertions(+), 1948 deletions(-) create mode 100644 blog/show/2024-04-17-1.10.27-Release/index.html create mode 100644 img/blog/1.10.27-Release/notif1.png create mode 100644 img/blog/1.10.27-Release/notif2.png create mode 100644 img/blog/1.10.27-Release/spellbook.mp4 create mode 100644 img/blog/1.10.27-Release/teleports.png create mode 100644 precache-manifest.768a9a6250686716214c8bd5d8285774.js delete mode 100644 precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js rename static/js/{0.aea5108a.chunk.js => 0.da263fb4.chunk.js} (99%) rename static/js/{0.aea5108a.chunk.js.LICENSE.txt => 0.da263fb4.chunk.js.LICENSE.txt} (100%) rename static/js/{0.aea5108a.chunk.js.map => 0.da263fb4.chunk.js.map} (99%) rename static/js/{1.d63cf247.chunk.js => 1.c7f6ac57.chunk.js} (92%) rename static/js/{1.d63cf247.chunk.js.map => 1.c7f6ac57.chunk.js.map} (99%) rename static/js/{10.87860120.chunk.js => 10.d21eec56.chunk.js} (96%) rename static/js/{10.87860120.chunk.js.map => 10.d21eec56.chunk.js.map} (99%) rename static/js/{100.a48aed76.chunk.js => 100.4c100485.chunk.js} (98%) rename static/js/{100.a48aed76.chunk.js.map => 100.4c100485.chunk.js.map} (98%) rename static/js/{101.0980d76e.chunk.js => 101.485729cc.chunk.js} (98%) rename static/js/{101.0980d76e.chunk.js.map => 101.485729cc.chunk.js.map} (99%) rename static/js/{102.854c378c.chunk.js => 102.62e061d0.chunk.js} (98%) rename static/js/{102.854c378c.chunk.js.map => 102.62e061d0.chunk.js.map} (99%) rename static/js/{103.e68abdfe.chunk.js => 103.de89b958.chunk.js} (98%) rename static/js/{103.e68abdfe.chunk.js.map => 103.de89b958.chunk.js.map} (99%) rename static/js/{104.c984f63f.chunk.js => 104.e2fafda2.chunk.js} (89%) rename static/js/{104.c984f63f.chunk.js.map => 104.e2fafda2.chunk.js.map} (94%) rename static/js/{105.8655bd95.chunk.js => 105.26922674.chunk.js} (98%) rename static/js/{105.8655bd95.chunk.js.map => 105.26922674.chunk.js.map} (99%) rename static/js/{106.b1b8ecb4.chunk.js => 106.aaba779d.chunk.js} (96%) rename static/js/{106.b1b8ecb4.chunk.js.map => 106.aaba779d.chunk.js.map} (98%) rename static/js/{107.e829d84b.chunk.js => 107.8f09dd19.chunk.js} (97%) rename static/js/{107.e829d84b.chunk.js.map => 107.8f09dd19.chunk.js.map} (98%) rename static/js/{108.226dd588.chunk.js => 108.4f31c7e5.chunk.js} (93%) rename static/js/{108.226dd588.chunk.js.map => 108.4f31c7e5.chunk.js.map} (96%) rename static/js/{109.c999bff3.chunk.js => 109.267273f1.chunk.js} (98%) rename static/js/{109.c999bff3.chunk.js.map => 109.267273f1.chunk.js.map} (98%) rename static/js/{11.eb3139be.chunk.js => 11.56560e92.chunk.js} (96%) rename static/js/{11.eb3139be.chunk.js.map => 11.56560e92.chunk.js.map} (99%) rename static/js/{110.3da76866.chunk.js => 110.eec0da7d.chunk.js} (98%) rename static/js/{110.3da76866.chunk.js.map => 110.eec0da7d.chunk.js.map} (99%) rename static/js/{111.0f764d67.chunk.js => 111.4fb08f3f.chunk.js} (98%) rename static/js/{111.0f764d67.chunk.js.map => 111.4fb08f3f.chunk.js.map} (98%) rename static/js/{112.60488108.chunk.js => 112.f3767d44.chunk.js} (98%) rename static/js/{112.60488108.chunk.js.map => 112.f3767d44.chunk.js.map} (99%) rename static/js/{113.cea5ca47.chunk.js => 113.5f398440.chunk.js} (98%) rename static/js/{113.cea5ca47.chunk.js.map => 113.5f398440.chunk.js.map} (98%) rename static/js/{114.05d08486.chunk.js => 114.483266ef.chunk.js} (96%) rename static/js/{114.05d08486.chunk.js.map => 114.483266ef.chunk.js.map} (97%) rename static/js/{115.f315bee9.chunk.js => 115.723ab803.chunk.js} (97%) rename static/js/{115.f315bee9.chunk.js.map => 115.723ab803.chunk.js.map} (98%) rename static/js/{116.ec4acf03.chunk.js => 116.82cfb4c3.chunk.js} (94%) rename static/js/{116.ec4acf03.chunk.js.map => 116.82cfb4c3.chunk.js.map} (97%) rename static/js/{117.a74fa60a.chunk.js => 117.ce3dd0bd.chunk.js} (95%) rename static/js/{117.a74fa60a.chunk.js.map => 117.ce3dd0bd.chunk.js.map} (97%) rename static/js/{118.5cb728a3.chunk.js => 118.c46f0032.chunk.js} (95%) rename static/js/{118.5cb728a3.chunk.js.map => 118.c46f0032.chunk.js.map} (97%) rename static/js/{119.bbff61ff.chunk.js => 119.79bd2e9d.chunk.js} (98%) rename static/js/{119.bbff61ff.chunk.js.map => 119.79bd2e9d.chunk.js.map} (99%) rename static/js/{12.d7e9e6ce.chunk.js => 12.490f3107.chunk.js} (98%) rename static/js/{12.d7e9e6ce.chunk.js.map => 12.490f3107.chunk.js.map} (99%) rename static/js/{120.6bdb867f.chunk.js => 120.16e25e66.chunk.js} (97%) rename static/js/{120.6bdb867f.chunk.js.map => 120.16e25e66.chunk.js.map} (98%) rename static/js/{121.53d36392.chunk.js => 121.ad0efbf8.chunk.js} (98%) rename static/js/{121.53d36392.chunk.js.map => 121.ad0efbf8.chunk.js.map} (99%) rename static/js/{122.27ed9bc1.chunk.js => 122.867c12a6.chunk.js} (98%) rename static/js/{122.27ed9bc1.chunk.js.map => 122.867c12a6.chunk.js.map} (99%) rename static/js/{123.698a1837.chunk.js => 123.00eab965.chunk.js} (99%) rename static/js/{123.698a1837.chunk.js.map => 123.00eab965.chunk.js.map} (99%) rename static/js/{124.c1bd1575.chunk.js => 124.64d8a114.chunk.js} (98%) rename static/js/{124.c1bd1575.chunk.js.map => 124.64d8a114.chunk.js.map} (99%) rename static/js/{125.b7e6895b.chunk.js => 125.013abb3a.chunk.js} (98%) rename static/js/{125.b7e6895b.chunk.js.map => 125.013abb3a.chunk.js.map} (99%) rename static/js/{126.49448497.chunk.js => 126.c97413d0.chunk.js} (99%) rename static/js/{126.49448497.chunk.js.map => 126.c97413d0.chunk.js.map} (99%) rename static/js/{127.4454f424.chunk.js => 127.f68008e1.chunk.js} (98%) rename static/js/{127.4454f424.chunk.js.map => 127.f68008e1.chunk.js.map} (99%) rename static/js/{128.447aab4e.chunk.js => 128.b10d1c80.chunk.js} (98%) rename static/js/{128.447aab4e.chunk.js.map => 128.b10d1c80.chunk.js.map} (99%) rename static/js/{129.ba2f0451.chunk.js => 129.68e53a78.chunk.js} (98%) rename static/js/{129.ba2f0451.chunk.js.map => 129.68e53a78.chunk.js.map} (99%) rename static/js/{13.865c04a4.chunk.js => 13.dfdb92fe.chunk.js} (93%) rename static/js/{13.865c04a4.chunk.js.map => 13.dfdb92fe.chunk.js.map} (99%) rename static/js/{130.694d6caa.chunk.js => 130.f9bedcf3.chunk.js} (98%) rename static/js/{130.694d6caa.chunk.js.map => 130.f9bedcf3.chunk.js.map} (99%) rename static/js/{131.f1f72eda.chunk.js => 131.4de7b85e.chunk.js} (97%) rename static/js/{131.f1f72eda.chunk.js.map => 131.4de7b85e.chunk.js.map} (98%) rename static/js/{132.46329c2e.chunk.js => 132.f0dc0d4c.chunk.js} (99%) rename static/js/{132.46329c2e.chunk.js.map => 132.f0dc0d4c.chunk.js.map} (99%) rename static/js/{133.e7f934d4.chunk.js => 133.476ae942.chunk.js} (98%) rename static/js/{133.e7f934d4.chunk.js.map => 133.476ae942.chunk.js.map} (99%) rename static/js/{134.466c306b.chunk.js => 134.4992c71c.chunk.js} (97%) rename static/js/{134.466c306b.chunk.js.map => 134.4992c71c.chunk.js.map} (98%) rename static/js/{135.3db3fff1.chunk.js => 135.13177433.chunk.js} (99%) rename static/js/{135.3db3fff1.chunk.js.map => 135.13177433.chunk.js.map} (99%) rename static/js/{136.f50cc0fc.chunk.js => 136.5d1414a8.chunk.js} (98%) rename static/js/{136.f50cc0fc.chunk.js.map => 136.5d1414a8.chunk.js.map} (99%) rename static/js/{137.b001ca4c.chunk.js => 137.4994fc2b.chunk.js} (98%) rename static/js/{137.b001ca4c.chunk.js.map => 137.4994fc2b.chunk.js.map} (99%) rename static/js/{138.359316b0.chunk.js => 138.4fb392c9.chunk.js} (98%) rename static/js/{138.359316b0.chunk.js.map => 138.4fb392c9.chunk.js.map} (99%) rename static/js/{139.4ec830bb.chunk.js => 139.7c533985.chunk.js} (98%) rename static/js/{139.4ec830bb.chunk.js.map => 139.7c533985.chunk.js.map} (99%) rename static/js/{14.15d2d6c8.chunk.js => 14.5fee5def.chunk.js} (98%) rename static/js/{14.15d2d6c8.chunk.js.map => 14.5fee5def.chunk.js.map} (99%) rename static/js/{140.35d283f7.chunk.js => 140.8ac8b0e1.chunk.js} (92%) rename static/js/{140.35d283f7.chunk.js.map => 140.8ac8b0e1.chunk.js.map} (96%) rename static/js/{141.ad369817.chunk.js => 141.2565231e.chunk.js} (98%) rename static/js/{141.ad369817.chunk.js.map => 141.2565231e.chunk.js.map} (99%) rename static/js/{142.0ef81b98.chunk.js => 142.fa0d2df4.chunk.js} (98%) rename static/js/{142.0ef81b98.chunk.js.map => 142.fa0d2df4.chunk.js.map} (99%) rename static/js/{143.69d890ca.chunk.js => 143.96cc9182.chunk.js} (98%) rename static/js/{143.69d890ca.chunk.js.map => 143.96cc9182.chunk.js.map} (98%) rename static/js/{144.90f1e2de.chunk.js => 144.498696a6.chunk.js} (98%) rename static/js/{144.90f1e2de.chunk.js.map => 144.498696a6.chunk.js.map} (99%) rename static/js/{145.c322b12c.chunk.js => 145.8bdb0315.chunk.js} (99%) rename static/js/{145.c322b12c.chunk.js.map => 145.8bdb0315.chunk.js.map} (99%) rename static/js/{146.da2d51de.chunk.js => 146.c5fa6642.chunk.js} (97%) rename static/js/{146.da2d51de.chunk.js.map => 146.c5fa6642.chunk.js.map} (98%) rename static/js/{147.cae687bf.chunk.js => 147.32e24664.chunk.js} (98%) rename static/js/{147.cae687bf.chunk.js.map => 147.32e24664.chunk.js.map} (99%) rename static/js/{148.0770baa3.chunk.js => 148.eac46e76.chunk.js} (98%) rename static/js/{148.0770baa3.chunk.js.map => 148.eac46e76.chunk.js.map} (99%) rename static/js/{149.7d4a1d41.chunk.js => 149.4b7bc910.chunk.js} (97%) rename static/js/{149.7d4a1d41.chunk.js.map => 149.4b7bc910.chunk.js.map} (98%) rename static/js/{15.39c21782.chunk.js => 15.480db188.chunk.js} (94%) rename static/js/{15.39c21782.chunk.js.map => 15.480db188.chunk.js.map} (98%) rename static/js/{150.67713b63.chunk.js => 150.55b9afa9.chunk.js} (98%) rename static/js/{150.67713b63.chunk.js.map => 150.55b9afa9.chunk.js.map} (99%) rename static/js/{151.ea0c3bd8.chunk.js => 151.205738ca.chunk.js} (99%) rename static/js/{151.ea0c3bd8.chunk.js.map => 151.205738ca.chunk.js.map} (99%) rename static/js/{152.86939e7a.chunk.js => 152.b02cf8a2.chunk.js} (99%) rename static/js/{152.86939e7a.chunk.js.map => 152.b02cf8a2.chunk.js.map} (99%) rename static/js/{153.559e3066.chunk.js => 153.4533f6dc.chunk.js} (98%) rename static/js/{153.559e3066.chunk.js.map => 153.4533f6dc.chunk.js.map} (99%) rename static/js/{154.782f372d.chunk.js => 154.ae70fd4e.chunk.js} (98%) rename static/js/{154.782f372d.chunk.js.map => 154.ae70fd4e.chunk.js.map} (99%) rename static/js/{155.094bbfa6.chunk.js => 155.aa3f28a1.chunk.js} (98%) rename static/js/{155.094bbfa6.chunk.js.map => 155.aa3f28a1.chunk.js.map} (99%) rename static/js/{156.cb2198d0.chunk.js => 156.75b7ff6b.chunk.js} (98%) rename static/js/{156.cb2198d0.chunk.js.map => 156.75b7ff6b.chunk.js.map} (99%) rename static/js/{157.35898266.chunk.js => 157.019e45fe.chunk.js} (98%) rename static/js/{157.35898266.chunk.js.map => 157.019e45fe.chunk.js.map} (99%) rename static/js/{158.3d94cd27.chunk.js => 158.b057afef.chunk.js} (98%) rename static/js/{158.3d94cd27.chunk.js.map => 158.b057afef.chunk.js.map} (99%) rename static/js/{159.898105ca.chunk.js => 159.90e89192.chunk.js} (93%) rename static/js/{159.898105ca.chunk.js.map => 159.90e89192.chunk.js.map} (96%) rename static/js/{16.06b43ad9.chunk.js => 16.19625a89.chunk.js} (94%) rename static/js/{16.06b43ad9.chunk.js.map => 16.19625a89.chunk.js.map} (98%) rename static/js/{160.439ae5ed.chunk.js => 160.97d2cc95.chunk.js} (98%) rename static/js/{160.439ae5ed.chunk.js.map => 160.97d2cc95.chunk.js.map} (99%) rename static/js/{161.b0f472fd.chunk.js => 161.341e9f6e.chunk.js} (98%) rename static/js/{161.b0f472fd.chunk.js.map => 161.341e9f6e.chunk.js.map} (99%) rename static/js/{162.670a8e5c.chunk.js => 162.739b9a95.chunk.js} (98%) rename static/js/{162.670a8e5c.chunk.js.map => 162.739b9a95.chunk.js.map} (98%) rename static/js/{163.5318864c.chunk.js => 163.a8adb4ef.chunk.js} (99%) rename static/js/{163.5318864c.chunk.js.map => 163.a8adb4ef.chunk.js.map} (99%) rename static/js/{164.8232149d.chunk.js => 164.3802dd6f.chunk.js} (98%) rename static/js/{164.8232149d.chunk.js.map => 164.3802dd6f.chunk.js.map} (99%) rename static/js/{165.bb5bbdee.chunk.js => 165.31cc8912.chunk.js} (99%) rename static/js/{165.bb5bbdee.chunk.js.map => 165.31cc8912.chunk.js.map} (99%) rename static/js/{166.649971e3.chunk.js => 166.2f841439.chunk.js} (98%) rename static/js/{166.649971e3.chunk.js.map => 166.2f841439.chunk.js.map} (99%) create mode 100644 static/js/167.b292f1e5.chunk.js create mode 100644 static/js/167.b292f1e5.chunk.js.map rename static/js/{17.749ecabc.chunk.js => 17.429a6923.chunk.js} (93%) rename static/js/{17.749ecabc.chunk.js.map => 17.429a6923.chunk.js.map} (97%) rename static/js/{18.c42c1b0d.chunk.js => 18.ab757883.chunk.js} (91%) rename static/js/{18.c42c1b0d.chunk.js.map => 18.ab757883.chunk.js.map} (95%) rename static/js/{19.d890df25.chunk.js => 19.965cd23c.chunk.js} (94%) rename static/js/{19.d890df25.chunk.js.map => 19.965cd23c.chunk.js.map} (98%) rename static/js/{20.50501647.chunk.js => 20.71ae775c.chunk.js} (90%) rename static/js/{20.50501647.chunk.js.map => 20.71ae775c.chunk.js.map} (90%) rename static/js/{21.6728bb30.chunk.js => 21.b69ae13a.chunk.js} (98%) rename static/js/{21.6728bb30.chunk.js.map => 21.b69ae13a.chunk.js.map} (99%) rename static/js/{22.763fd789.chunk.js => 22.ead97899.chunk.js} (98%) rename static/js/{22.763fd789.chunk.js.map => 22.ead97899.chunk.js.map} (99%) rename static/js/{23.099ac622.chunk.js => 23.d0f7f215.chunk.js} (98%) rename static/js/{23.099ac622.chunk.js.map => 23.d0f7f215.chunk.js.map} (99%) rename static/js/{24.e3cbefe4.chunk.js => 24.ed21d2d5.chunk.js} (98%) rename static/js/{24.e3cbefe4.chunk.js.map => 24.ed21d2d5.chunk.js.map} (99%) rename static/js/{25.a9e71e71.chunk.js => 25.2fcb3630.chunk.js} (98%) rename static/js/{25.a9e71e71.chunk.js.map => 25.2fcb3630.chunk.js.map} (99%) rename static/js/{26.a8c58ff8.chunk.js => 26.03657595.chunk.js} (97%) rename static/js/{26.a8c58ff8.chunk.js.map => 26.03657595.chunk.js.map} (98%) rename static/js/{27.295ad2c8.chunk.js => 27.650ef959.chunk.js} (97%) rename static/js/{27.295ad2c8.chunk.js.map => 27.650ef959.chunk.js.map} (98%) rename static/js/{28.d344fb98.chunk.js => 28.61c87868.chunk.js} (98%) rename static/js/{28.d344fb98.chunk.js.map => 28.61c87868.chunk.js.map} (99%) rename static/js/{29.d49afaed.chunk.js => 29.de5b64b9.chunk.js} (98%) rename static/js/{29.d49afaed.chunk.js.map => 29.de5b64b9.chunk.js.map} (99%) rename static/js/{30.2b2c87c8.chunk.js => 30.3df49031.chunk.js} (98%) rename static/js/{30.2b2c87c8.chunk.js.map => 30.3df49031.chunk.js.map} (99%) rename static/js/{31.7dd40ba1.chunk.js => 31.4a4c233f.chunk.js} (98%) rename static/js/{31.7dd40ba1.chunk.js.map => 31.4a4c233f.chunk.js.map} (99%) rename static/js/{32.4583ab7d.chunk.js => 32.4474bc7f.chunk.js} (98%) rename static/js/{32.4583ab7d.chunk.js.map => 32.4474bc7f.chunk.js.map} (99%) rename static/js/{33.c5534493.chunk.js => 33.c4289d83.chunk.js} (98%) rename static/js/{33.c5534493.chunk.js.map => 33.c4289d83.chunk.js.map} (99%) rename static/js/{34.f75ad7c3.chunk.js => 34.ad76e96a.chunk.js} (98%) rename static/js/{34.f75ad7c3.chunk.js.map => 34.ad76e96a.chunk.js.map} (99%) rename static/js/{35.a739d48c.chunk.js => 35.77d3866f.chunk.js} (98%) rename static/js/{35.a739d48c.chunk.js.map => 35.77d3866f.chunk.js.map} (99%) rename static/js/{36.8bd4edc4.chunk.js => 36.c3f93721.chunk.js} (98%) rename static/js/{36.8bd4edc4.chunk.js.map => 36.c3f93721.chunk.js.map} (99%) rename static/js/{37.92c716e2.chunk.js => 37.0e895e23.chunk.js} (98%) rename static/js/{37.92c716e2.chunk.js.map => 37.0e895e23.chunk.js.map} (99%) rename static/js/{38.4e4930d9.chunk.js => 38.aa273ffd.chunk.js} (98%) rename static/js/{38.4e4930d9.chunk.js.map => 38.aa273ffd.chunk.js.map} (99%) rename static/js/{39.92d7af0d.chunk.js => 39.246782de.chunk.js} (98%) rename static/js/{39.92d7af0d.chunk.js.map => 39.246782de.chunk.js.map} (99%) delete mode 100644 static/js/4.aa61be93.chunk.js delete mode 100644 static/js/4.aa61be93.chunk.js.map create mode 100644 static/js/4.c7f743bf.chunk.js create mode 100644 static/js/4.c7f743bf.chunk.js.map rename static/js/{40.9aaf62be.chunk.js => 40.a15a7621.chunk.js} (94%) rename static/js/{40.9aaf62be.chunk.js.map => 40.a15a7621.chunk.js.map} (97%) rename static/js/{41.592215a6.chunk.js => 41.5172a0ab.chunk.js} (95%) rename static/js/{41.592215a6.chunk.js.map => 41.5172a0ab.chunk.js.map} (97%) rename static/js/{42.903c5167.chunk.js => 42.b64f47e5.chunk.js} (91%) rename static/js/{42.903c5167.chunk.js.map => 42.b64f47e5.chunk.js.map} (95%) rename static/js/{43.b1e16791.chunk.js => 43.7b5e24c0.chunk.js} (98%) rename static/js/{43.b1e16791.chunk.js.map => 43.7b5e24c0.chunk.js.map} (99%) rename static/js/{44.0adcba78.chunk.js => 44.15cb5c09.chunk.js} (98%) rename static/js/{44.0adcba78.chunk.js.map => 44.15cb5c09.chunk.js.map} (99%) rename static/js/{45.c4bbc4cf.chunk.js => 45.4620406b.chunk.js} (87%) rename static/js/{45.c4bbc4cf.chunk.js.map => 45.4620406b.chunk.js.map} (93%) rename static/js/{46.8227b11c.chunk.js => 46.702693cd.chunk.js} (98%) rename static/js/{46.8227b11c.chunk.js.map => 46.702693cd.chunk.js.map} (99%) rename static/js/{47.7c49292c.chunk.js => 47.495473b8.chunk.js} (98%) rename static/js/{47.7c49292c.chunk.js.map => 47.495473b8.chunk.js.map} (99%) rename static/js/{48.c0d72fee.chunk.js => 48.563ff224.chunk.js} (97%) rename static/js/{48.c0d72fee.chunk.js.map => 48.563ff224.chunk.js.map} (98%) rename static/js/{49.198f8502.chunk.js => 49.dcd54463.chunk.js} (98%) rename static/js/{49.198f8502.chunk.js.map => 49.dcd54463.chunk.js.map} (98%) delete mode 100644 static/js/5.387ebcc8.chunk.js delete mode 100644 static/js/5.387ebcc8.chunk.js.map create mode 100644 static/js/5.ca584576.chunk.js create mode 100644 static/js/5.ca584576.chunk.js.map rename static/js/{50.c0161ec5.chunk.js => 50.e486c0fa.chunk.js} (98%) rename static/js/{50.c0161ec5.chunk.js.map => 50.e486c0fa.chunk.js.map} (98%) rename static/js/{51.605852c3.chunk.js => 51.b7dad8dd.chunk.js} (98%) rename static/js/{51.605852c3.chunk.js.map => 51.b7dad8dd.chunk.js.map} (99%) rename static/js/{52.6e287ecc.chunk.js => 52.5b975a19.chunk.js} (97%) rename static/js/{52.6e287ecc.chunk.js.map => 52.5b975a19.chunk.js.map} (98%) rename static/js/{53.182d04ca.chunk.js => 53.a5a4cd5a.chunk.js} (97%) rename static/js/{53.182d04ca.chunk.js.map => 53.a5a4cd5a.chunk.js.map} (98%) rename static/js/{54.fbfa5538.chunk.js => 54.08c5d72d.chunk.js} (97%) rename static/js/{54.fbfa5538.chunk.js.map => 54.08c5d72d.chunk.js.map} (98%) rename static/js/{55.c6dac92d.chunk.js => 55.26f9d5db.chunk.js} (98%) rename static/js/{55.c6dac92d.chunk.js.map => 55.26f9d5db.chunk.js.map} (99%) rename static/js/{56.b5ab65d9.chunk.js => 56.042a9f61.chunk.js} (97%) rename static/js/{56.b5ab65d9.chunk.js.map => 56.042a9f61.chunk.js.map} (98%) rename static/js/{57.b4ec6473.chunk.js => 57.1560ecd1.chunk.js} (97%) rename static/js/{57.b4ec6473.chunk.js.map => 57.1560ecd1.chunk.js.map} (98%) rename static/js/{58.c505ca02.chunk.js => 58.0ffde795.chunk.js} (98%) rename static/js/{58.c505ca02.chunk.js.map => 58.0ffde795.chunk.js.map} (98%) rename static/js/{59.bd3d8da5.chunk.js => 59.7f3967e3.chunk.js} (97%) rename static/js/{59.bd3d8da5.chunk.js.map => 59.7f3967e3.chunk.js.map} (98%) delete mode 100644 static/js/6.1374853e.chunk.js delete mode 100644 static/js/6.1374853e.chunk.js.map create mode 100644 static/js/6.8b31eff6.chunk.js create mode 100644 static/js/6.8b31eff6.chunk.js.map rename static/js/{60.ed179461.chunk.js => 60.7bfb81d4.chunk.js} (98%) rename static/js/{60.ed179461.chunk.js.map => 60.7bfb81d4.chunk.js.map} (98%) rename static/js/{61.47dcf177.chunk.js => 61.601b2085.chunk.js} (98%) rename static/js/{61.47dcf177.chunk.js.map => 61.601b2085.chunk.js.map} (99%) rename static/js/{62.73ea7cbc.chunk.js => 62.5a073228.chunk.js} (80%) rename static/js/{62.73ea7cbc.chunk.js.map => 62.5a073228.chunk.js.map} (90%) rename static/js/{63.024514d1.chunk.js => 63.d344125a.chunk.js} (97%) rename static/js/{63.024514d1.chunk.js.map => 63.d344125a.chunk.js.map} (98%) rename static/js/{64.0d8de512.chunk.js => 64.ac4863b7.chunk.js} (98%) rename static/js/{64.0d8de512.chunk.js.map => 64.ac4863b7.chunk.js.map} (98%) rename static/js/{65.eaf4b8e3.chunk.js => 65.1f63a476.chunk.js} (98%) rename static/js/{65.eaf4b8e3.chunk.js.map => 65.1f63a476.chunk.js.map} (99%) rename static/js/{66.b9608f5d.chunk.js => 66.aac767c4.chunk.js} (98%) rename static/js/{66.b9608f5d.chunk.js.map => 66.aac767c4.chunk.js.map} (99%) rename static/js/{67.af3df1eb.chunk.js => 67.613c11a8.chunk.js} (98%) rename static/js/{67.af3df1eb.chunk.js.map => 67.613c11a8.chunk.js.map} (99%) rename static/js/{68.ec9d010e.chunk.js => 68.88ba4792.chunk.js} (98%) rename static/js/{68.ec9d010e.chunk.js.map => 68.88ba4792.chunk.js.map} (99%) rename static/js/{69.0e1bedb0.chunk.js => 69.eedabcd7.chunk.js} (97%) rename static/js/{69.0e1bedb0.chunk.js.map => 69.eedabcd7.chunk.js.map} (98%) rename static/js/{70.9ca1515e.chunk.js => 70.64a0e193.chunk.js} (98%) rename static/js/{70.9ca1515e.chunk.js.map => 70.64a0e193.chunk.js.map} (98%) rename static/js/{71.aa3651ff.chunk.js => 71.8ad630e3.chunk.js} (98%) rename static/js/{71.aa3651ff.chunk.js.map => 71.8ad630e3.chunk.js.map} (98%) rename static/js/{72.1808ce35.chunk.js => 72.53d1a1c5.chunk.js} (93%) rename static/js/{72.1808ce35.chunk.js.map => 72.53d1a1c5.chunk.js.map} (93%) rename static/js/{73.79d53550.chunk.js => 73.494e7d44.chunk.js} (97%) rename static/js/{73.79d53550.chunk.js.map => 73.494e7d44.chunk.js.map} (98%) rename static/js/{74.94c75616.chunk.js => 74.621a6485.chunk.js} (97%) rename static/js/{74.94c75616.chunk.js.map => 74.621a6485.chunk.js.map} (98%) rename static/js/{75.c4d418ac.chunk.js => 75.69a4b1bf.chunk.js} (97%) rename static/js/{75.c4d418ac.chunk.js.map => 75.69a4b1bf.chunk.js.map} (98%) rename static/js/{76.24221d23.chunk.js => 76.eef5a2d5.chunk.js} (97%) rename static/js/{76.24221d23.chunk.js.map => 76.eef5a2d5.chunk.js.map} (98%) rename static/js/{77.fcbd2fa1.chunk.js => 77.7018f253.chunk.js} (97%) rename static/js/{77.fcbd2fa1.chunk.js.map => 77.7018f253.chunk.js.map} (98%) rename static/js/{78.e0cdb49e.chunk.js => 78.e0340fa9.chunk.js} (97%) rename static/js/{78.e0cdb49e.chunk.js.map => 78.e0340fa9.chunk.js.map} (98%) rename static/js/{79.4fd5727b.chunk.js => 79.e9258a3a.chunk.js} (97%) rename static/js/{79.4fd5727b.chunk.js.map => 79.e9258a3a.chunk.js.map} (98%) rename static/js/{8.c51bfff0.chunk.js => 8.e46392e3.chunk.js} (98%) rename static/js/{8.c51bfff0.chunk.js.map => 8.e46392e3.chunk.js.map} (99%) rename static/js/{80.cc919a1a.chunk.js => 80.8fdde840.chunk.js} (98%) rename static/js/{80.cc919a1a.chunk.js.map => 80.8fdde840.chunk.js.map} (98%) rename static/js/{81.6d907df1.chunk.js => 81.84330a7b.chunk.js} (98%) rename static/js/{81.6d907df1.chunk.js.map => 81.84330a7b.chunk.js.map} (99%) rename static/js/{82.e378a04c.chunk.js => 82.6cf52313.chunk.js} (98%) rename static/js/{82.e378a04c.chunk.js.map => 82.6cf52313.chunk.js.map} (99%) rename static/js/{83.de903a04.chunk.js => 83.923205ea.chunk.js} (97%) rename static/js/{83.de903a04.chunk.js.map => 83.923205ea.chunk.js.map} (98%) rename static/js/{84.6d668161.chunk.js => 84.9ed526bb.chunk.js} (97%) rename static/js/{84.6d668161.chunk.js.map => 84.9ed526bb.chunk.js.map} (98%) rename static/js/{85.e5fd6fe5.chunk.js => 85.8ecb5036.chunk.js} (87%) rename static/js/{85.e5fd6fe5.chunk.js.map => 85.8ecb5036.chunk.js.map} (93%) rename static/js/{86.fef39be4.chunk.js => 86.0fac9206.chunk.js} (98%) rename static/js/{86.fef39be4.chunk.js.map => 86.0fac9206.chunk.js.map} (99%) rename static/js/{87.ac7910b0.chunk.js => 87.b1d5a080.chunk.js} (97%) rename static/js/{87.ac7910b0.chunk.js.map => 87.b1d5a080.chunk.js.map} (98%) rename static/js/{88.b995a874.chunk.js => 88.05655334.chunk.js} (97%) rename static/js/{88.b995a874.chunk.js.map => 88.05655334.chunk.js.map} (98%) rename static/js/{89.2427a52d.chunk.js => 89.b3791ef4.chunk.js} (96%) rename static/js/{89.2427a52d.chunk.js.map => 89.b3791ef4.chunk.js.map} (97%) rename static/js/{9.41457976.chunk.js => 9.cff2c3bf.chunk.js} (95%) rename static/js/{9.41457976.chunk.js.map => 9.cff2c3bf.chunk.js.map} (99%) rename static/js/{90.8b140935.chunk.js => 90.e98cc0d4.chunk.js} (97%) rename static/js/{90.8b140935.chunk.js.map => 90.e98cc0d4.chunk.js.map} (98%) rename static/js/{91.bbe172a6.chunk.js => 91.89730dda.chunk.js} (97%) rename static/js/{91.bbe172a6.chunk.js.map => 91.89730dda.chunk.js.map} (98%) rename static/js/{92.7129e6d4.chunk.js => 92.0161b2c3.chunk.js} (98%) rename static/js/{92.7129e6d4.chunk.js.map => 92.0161b2c3.chunk.js.map} (98%) rename static/js/{93.badbdcfc.chunk.js => 93.8e4a6aa7.chunk.js} (97%) rename static/js/{93.badbdcfc.chunk.js.map => 93.8e4a6aa7.chunk.js.map} (98%) rename static/js/{94.38aa73c4.chunk.js => 94.d13ad504.chunk.js} (96%) rename static/js/{94.38aa73c4.chunk.js.map => 94.d13ad504.chunk.js.map} (98%) rename static/js/{95.292d25fe.chunk.js => 95.f77fcb17.chunk.js} (97%) rename static/js/{95.292d25fe.chunk.js.map => 95.f77fcb17.chunk.js.map} (98%) rename static/js/{96.a38e03c8.chunk.js => 96.383e51be.chunk.js} (97%) rename static/js/{96.a38e03c8.chunk.js.map => 96.383e51be.chunk.js.map} (98%) rename static/js/{97.62ac06e4.chunk.js => 97.1ce3b748.chunk.js} (98%) rename static/js/{97.62ac06e4.chunk.js.map => 97.1ce3b748.chunk.js.map} (98%) rename static/js/{98.c8e387f6.chunk.js => 98.38a93077.chunk.js} (97%) rename static/js/{98.c8e387f6.chunk.js.map => 98.38a93077.chunk.js.map} (98%) rename static/js/{99.0e80284c.chunk.js => 99.99888f24.chunk.js} (98%) rename static/js/{99.0e80284c.chunk.js.map => 99.99888f24.chunk.js.map} (99%) rename static/js/{main.e826d3a5.chunk.js => main.3922a676.chunk.js} (97%) rename static/js/{main.e826d3a5.chunk.js.map => main.3922a676.chunk.js.map} (99%) create mode 100644 static/js/runtime-main.343f8325.js create mode 100644 static/js/runtime-main.343f8325.js.map delete mode 100644 static/js/runtime-main.72783661.js delete mode 100644 static/js/runtime-main.72783661.js.map diff --git a/asset-manifest.json b/asset-manifest.json index c181de07a6..a47848dfc3 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,358 +1,360 @@ { "files": { - "static/js/0.aea5108a.chunk.js": "/static/js/0.aea5108a.chunk.js", - "static/js/0.aea5108a.chunk.js.map": "/static/js/0.aea5108a.chunk.js.map", + "static/js/0.da263fb4.chunk.js": "/static/js/0.da263fb4.chunk.js", + "static/js/0.da263fb4.chunk.js.map": "/static/js/0.da263fb4.chunk.js.map", "static/css/1.a84d955d.chunk.css": "/static/css/1.a84d955d.chunk.css", - "static/js/1.d63cf247.chunk.js": "/static/js/1.d63cf247.chunk.js", - "static/js/1.d63cf247.chunk.js.map": "/static/js/1.d63cf247.chunk.js.map", + "static/js/1.c7f6ac57.chunk.js": "/static/js/1.c7f6ac57.chunk.js", + "static/js/1.c7f6ac57.chunk.js.map": "/static/js/1.c7f6ac57.chunk.js.map", "main.css": "/static/css/main.dd2bec91.chunk.css", - "main.js": "/static/js/main.e826d3a5.chunk.js", - "main.js.map": "/static/js/main.e826d3a5.chunk.js.map", - "runtime-main.js": "/static/js/runtime-main.72783661.js", - "runtime-main.js.map": "/static/js/runtime-main.72783661.js.map", + "main.js": "/static/js/main.3922a676.chunk.js", + "main.js.map": "/static/js/main.3922a676.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.343f8325.js", + "runtime-main.js.map": "/static/js/runtime-main.343f8325.js.map", "static/css/4.0e1cf7b6.chunk.css": "/static/css/4.0e1cf7b6.chunk.css", - "static/js/4.aa61be93.chunk.js": "/static/js/4.aa61be93.chunk.js", - "static/js/4.aa61be93.chunk.js.map": "/static/js/4.aa61be93.chunk.js.map", + "static/js/4.c7f743bf.chunk.js": "/static/js/4.c7f743bf.chunk.js", + "static/js/4.c7f743bf.chunk.js.map": "/static/js/4.c7f743bf.chunk.js.map", "static/css/5.80a8d347.chunk.css": "/static/css/5.80a8d347.chunk.css", - "static/js/5.387ebcc8.chunk.js": "/static/js/5.387ebcc8.chunk.js", - "static/js/5.387ebcc8.chunk.js.map": "/static/js/5.387ebcc8.chunk.js.map", + "static/js/5.ca584576.chunk.js": "/static/js/5.ca584576.chunk.js", + "static/js/5.ca584576.chunk.js.map": "/static/js/5.ca584576.chunk.js.map", "static/css/6.80a8d347.chunk.css": "/static/css/6.80a8d347.chunk.css", - "static/js/6.1374853e.chunk.js": "/static/js/6.1374853e.chunk.js", - "static/js/6.1374853e.chunk.js.map": "/static/js/6.1374853e.chunk.js.map", + "static/js/6.8b31eff6.chunk.js": "/static/js/6.8b31eff6.chunk.js", + "static/js/6.8b31eff6.chunk.js.map": "/static/js/6.8b31eff6.chunk.js.map", "static/css/7.7b033bdf.chunk.css": "/static/css/7.7b033bdf.chunk.css", "static/js/7.27d25fc0.chunk.js": "/static/js/7.27d25fc0.chunk.js", "static/js/7.27d25fc0.chunk.js.map": "/static/js/7.27d25fc0.chunk.js.map", "static/css/8.ce29400d.chunk.css": "/static/css/8.ce29400d.chunk.css", - "static/js/8.c51bfff0.chunk.js": "/static/js/8.c51bfff0.chunk.js", - "static/js/8.c51bfff0.chunk.js.map": "/static/js/8.c51bfff0.chunk.js.map", + "static/js/8.e46392e3.chunk.js": "/static/js/8.e46392e3.chunk.js", + "static/js/8.e46392e3.chunk.js.map": "/static/js/8.e46392e3.chunk.js.map", "static/css/9.4531eef3.chunk.css": "/static/css/9.4531eef3.chunk.css", - "static/js/9.41457976.chunk.js": "/static/js/9.41457976.chunk.js", - "static/js/9.41457976.chunk.js.map": "/static/js/9.41457976.chunk.js.map", + "static/js/9.cff2c3bf.chunk.js": "/static/js/9.cff2c3bf.chunk.js", + "static/js/9.cff2c3bf.chunk.js.map": "/static/js/9.cff2c3bf.chunk.js.map", "static/css/10.564de6f4.chunk.css": "/static/css/10.564de6f4.chunk.css", - "static/js/10.87860120.chunk.js": "/static/js/10.87860120.chunk.js", - "static/js/10.87860120.chunk.js.map": "/static/js/10.87860120.chunk.js.map", + "static/js/10.d21eec56.chunk.js": "/static/js/10.d21eec56.chunk.js", + "static/js/10.d21eec56.chunk.js.map": "/static/js/10.d21eec56.chunk.js.map", "static/css/11.331a4702.chunk.css": "/static/css/11.331a4702.chunk.css", - "static/js/11.eb3139be.chunk.js": "/static/js/11.eb3139be.chunk.js", - "static/js/11.eb3139be.chunk.js.map": "/static/js/11.eb3139be.chunk.js.map", + "static/js/11.56560e92.chunk.js": "/static/js/11.56560e92.chunk.js", + "static/js/11.56560e92.chunk.js.map": "/static/js/11.56560e92.chunk.js.map", "static/css/12.e4e96a00.chunk.css": "/static/css/12.e4e96a00.chunk.css", - "static/js/12.d7e9e6ce.chunk.js": "/static/js/12.d7e9e6ce.chunk.js", - "static/js/12.d7e9e6ce.chunk.js.map": "/static/js/12.d7e9e6ce.chunk.js.map", + "static/js/12.490f3107.chunk.js": "/static/js/12.490f3107.chunk.js", + "static/js/12.490f3107.chunk.js.map": "/static/js/12.490f3107.chunk.js.map", "static/css/13.e4e96a00.chunk.css": "/static/css/13.e4e96a00.chunk.css", - "static/js/13.865c04a4.chunk.js": "/static/js/13.865c04a4.chunk.js", - "static/js/13.865c04a4.chunk.js.map": "/static/js/13.865c04a4.chunk.js.map", + "static/js/13.dfdb92fe.chunk.js": "/static/js/13.dfdb92fe.chunk.js", + "static/js/13.dfdb92fe.chunk.js.map": "/static/js/13.dfdb92fe.chunk.js.map", "static/css/14.c81f7f39.chunk.css": "/static/css/14.c81f7f39.chunk.css", - "static/js/14.15d2d6c8.chunk.js": "/static/js/14.15d2d6c8.chunk.js", - "static/js/14.15d2d6c8.chunk.js.map": "/static/js/14.15d2d6c8.chunk.js.map", + "static/js/14.5fee5def.chunk.js": "/static/js/14.5fee5def.chunk.js", + "static/js/14.5fee5def.chunk.js.map": "/static/js/14.5fee5def.chunk.js.map", "static/css/15.05f3feda.chunk.css": "/static/css/15.05f3feda.chunk.css", - "static/js/15.39c21782.chunk.js": "/static/js/15.39c21782.chunk.js", - "static/js/15.39c21782.chunk.js.map": "/static/js/15.39c21782.chunk.js.map", + "static/js/15.480db188.chunk.js": "/static/js/15.480db188.chunk.js", + "static/js/15.480db188.chunk.js.map": "/static/js/15.480db188.chunk.js.map", "static/css/16.05f3feda.chunk.css": "/static/css/16.05f3feda.chunk.css", - "static/js/16.06b43ad9.chunk.js": "/static/js/16.06b43ad9.chunk.js", - "static/js/16.06b43ad9.chunk.js.map": "/static/js/16.06b43ad9.chunk.js.map", - "static/js/17.749ecabc.chunk.js": "/static/js/17.749ecabc.chunk.js", - "static/js/17.749ecabc.chunk.js.map": "/static/js/17.749ecabc.chunk.js.map", - "static/js/18.c42c1b0d.chunk.js": "/static/js/18.c42c1b0d.chunk.js", - "static/js/18.c42c1b0d.chunk.js.map": "/static/js/18.c42c1b0d.chunk.js.map", - "static/js/19.d890df25.chunk.js": "/static/js/19.d890df25.chunk.js", - "static/js/19.d890df25.chunk.js.map": "/static/js/19.d890df25.chunk.js.map", - "static/js/20.50501647.chunk.js": "/static/js/20.50501647.chunk.js", - "static/js/20.50501647.chunk.js.map": "/static/js/20.50501647.chunk.js.map", - "static/js/21.6728bb30.chunk.js": "/static/js/21.6728bb30.chunk.js", - "static/js/21.6728bb30.chunk.js.map": "/static/js/21.6728bb30.chunk.js.map", - "static/js/22.763fd789.chunk.js": "/static/js/22.763fd789.chunk.js", - "static/js/22.763fd789.chunk.js.map": "/static/js/22.763fd789.chunk.js.map", - "static/js/23.099ac622.chunk.js": "/static/js/23.099ac622.chunk.js", - "static/js/23.099ac622.chunk.js.map": "/static/js/23.099ac622.chunk.js.map", - "static/js/24.e3cbefe4.chunk.js": "/static/js/24.e3cbefe4.chunk.js", - "static/js/24.e3cbefe4.chunk.js.map": "/static/js/24.e3cbefe4.chunk.js.map", - "static/js/25.a9e71e71.chunk.js": "/static/js/25.a9e71e71.chunk.js", - "static/js/25.a9e71e71.chunk.js.map": "/static/js/25.a9e71e71.chunk.js.map", - "static/js/26.a8c58ff8.chunk.js": "/static/js/26.a8c58ff8.chunk.js", - "static/js/26.a8c58ff8.chunk.js.map": "/static/js/26.a8c58ff8.chunk.js.map", - "static/js/27.295ad2c8.chunk.js": "/static/js/27.295ad2c8.chunk.js", - "static/js/27.295ad2c8.chunk.js.map": "/static/js/27.295ad2c8.chunk.js.map", - "static/js/28.d344fb98.chunk.js": "/static/js/28.d344fb98.chunk.js", - "static/js/28.d344fb98.chunk.js.map": "/static/js/28.d344fb98.chunk.js.map", - "static/js/29.d49afaed.chunk.js": "/static/js/29.d49afaed.chunk.js", - "static/js/29.d49afaed.chunk.js.map": "/static/js/29.d49afaed.chunk.js.map", - "static/js/30.2b2c87c8.chunk.js": "/static/js/30.2b2c87c8.chunk.js", - "static/js/30.2b2c87c8.chunk.js.map": "/static/js/30.2b2c87c8.chunk.js.map", - "static/js/31.7dd40ba1.chunk.js": "/static/js/31.7dd40ba1.chunk.js", - "static/js/31.7dd40ba1.chunk.js.map": "/static/js/31.7dd40ba1.chunk.js.map", - "static/js/32.4583ab7d.chunk.js": "/static/js/32.4583ab7d.chunk.js", - "static/js/32.4583ab7d.chunk.js.map": "/static/js/32.4583ab7d.chunk.js.map", - "static/js/33.c5534493.chunk.js": "/static/js/33.c5534493.chunk.js", - "static/js/33.c5534493.chunk.js.map": "/static/js/33.c5534493.chunk.js.map", - "static/js/34.f75ad7c3.chunk.js": "/static/js/34.f75ad7c3.chunk.js", - "static/js/34.f75ad7c3.chunk.js.map": "/static/js/34.f75ad7c3.chunk.js.map", - "static/js/35.a739d48c.chunk.js": "/static/js/35.a739d48c.chunk.js", - "static/js/35.a739d48c.chunk.js.map": "/static/js/35.a739d48c.chunk.js.map", - "static/js/36.8bd4edc4.chunk.js": "/static/js/36.8bd4edc4.chunk.js", - "static/js/36.8bd4edc4.chunk.js.map": "/static/js/36.8bd4edc4.chunk.js.map", - "static/js/37.92c716e2.chunk.js": "/static/js/37.92c716e2.chunk.js", - "static/js/37.92c716e2.chunk.js.map": "/static/js/37.92c716e2.chunk.js.map", - "static/js/38.4e4930d9.chunk.js": "/static/js/38.4e4930d9.chunk.js", - "static/js/38.4e4930d9.chunk.js.map": "/static/js/38.4e4930d9.chunk.js.map", - "static/js/39.92d7af0d.chunk.js": "/static/js/39.92d7af0d.chunk.js", - "static/js/39.92d7af0d.chunk.js.map": "/static/js/39.92d7af0d.chunk.js.map", - "static/js/40.9aaf62be.chunk.js": "/static/js/40.9aaf62be.chunk.js", - "static/js/40.9aaf62be.chunk.js.map": "/static/js/40.9aaf62be.chunk.js.map", - "static/js/41.592215a6.chunk.js": "/static/js/41.592215a6.chunk.js", - "static/js/41.592215a6.chunk.js.map": "/static/js/41.592215a6.chunk.js.map", - "static/js/42.903c5167.chunk.js": "/static/js/42.903c5167.chunk.js", - "static/js/42.903c5167.chunk.js.map": "/static/js/42.903c5167.chunk.js.map", - "static/js/43.b1e16791.chunk.js": "/static/js/43.b1e16791.chunk.js", - "static/js/43.b1e16791.chunk.js.map": "/static/js/43.b1e16791.chunk.js.map", - "static/js/44.0adcba78.chunk.js": "/static/js/44.0adcba78.chunk.js", - "static/js/44.0adcba78.chunk.js.map": "/static/js/44.0adcba78.chunk.js.map", - "static/js/45.c4bbc4cf.chunk.js": "/static/js/45.c4bbc4cf.chunk.js", - "static/js/45.c4bbc4cf.chunk.js.map": "/static/js/45.c4bbc4cf.chunk.js.map", - "static/js/46.8227b11c.chunk.js": "/static/js/46.8227b11c.chunk.js", - "static/js/46.8227b11c.chunk.js.map": "/static/js/46.8227b11c.chunk.js.map", - "static/js/47.7c49292c.chunk.js": "/static/js/47.7c49292c.chunk.js", - "static/js/47.7c49292c.chunk.js.map": "/static/js/47.7c49292c.chunk.js.map", - "static/js/48.c0d72fee.chunk.js": "/static/js/48.c0d72fee.chunk.js", - "static/js/48.c0d72fee.chunk.js.map": "/static/js/48.c0d72fee.chunk.js.map", - "static/js/49.198f8502.chunk.js": "/static/js/49.198f8502.chunk.js", - "static/js/49.198f8502.chunk.js.map": "/static/js/49.198f8502.chunk.js.map", - "static/js/50.c0161ec5.chunk.js": "/static/js/50.c0161ec5.chunk.js", - "static/js/50.c0161ec5.chunk.js.map": "/static/js/50.c0161ec5.chunk.js.map", - "static/js/51.605852c3.chunk.js": "/static/js/51.605852c3.chunk.js", - "static/js/51.605852c3.chunk.js.map": "/static/js/51.605852c3.chunk.js.map", - "static/js/52.6e287ecc.chunk.js": "/static/js/52.6e287ecc.chunk.js", - "static/js/52.6e287ecc.chunk.js.map": "/static/js/52.6e287ecc.chunk.js.map", - "static/js/53.182d04ca.chunk.js": "/static/js/53.182d04ca.chunk.js", - "static/js/53.182d04ca.chunk.js.map": "/static/js/53.182d04ca.chunk.js.map", - "static/js/54.fbfa5538.chunk.js": "/static/js/54.fbfa5538.chunk.js", - "static/js/54.fbfa5538.chunk.js.map": "/static/js/54.fbfa5538.chunk.js.map", - "static/js/55.c6dac92d.chunk.js": "/static/js/55.c6dac92d.chunk.js", - "static/js/55.c6dac92d.chunk.js.map": "/static/js/55.c6dac92d.chunk.js.map", - "static/js/56.b5ab65d9.chunk.js": "/static/js/56.b5ab65d9.chunk.js", - "static/js/56.b5ab65d9.chunk.js.map": "/static/js/56.b5ab65d9.chunk.js.map", - "static/js/57.b4ec6473.chunk.js": "/static/js/57.b4ec6473.chunk.js", - "static/js/57.b4ec6473.chunk.js.map": "/static/js/57.b4ec6473.chunk.js.map", - "static/js/58.c505ca02.chunk.js": "/static/js/58.c505ca02.chunk.js", - "static/js/58.c505ca02.chunk.js.map": "/static/js/58.c505ca02.chunk.js.map", - "static/js/59.bd3d8da5.chunk.js": "/static/js/59.bd3d8da5.chunk.js", - "static/js/59.bd3d8da5.chunk.js.map": "/static/js/59.bd3d8da5.chunk.js.map", - "static/js/60.ed179461.chunk.js": "/static/js/60.ed179461.chunk.js", - "static/js/60.ed179461.chunk.js.map": "/static/js/60.ed179461.chunk.js.map", - "static/js/61.47dcf177.chunk.js": "/static/js/61.47dcf177.chunk.js", - "static/js/61.47dcf177.chunk.js.map": "/static/js/61.47dcf177.chunk.js.map", - "static/js/62.73ea7cbc.chunk.js": "/static/js/62.73ea7cbc.chunk.js", - "static/js/62.73ea7cbc.chunk.js.map": "/static/js/62.73ea7cbc.chunk.js.map", - "static/js/63.024514d1.chunk.js": "/static/js/63.024514d1.chunk.js", - "static/js/63.024514d1.chunk.js.map": "/static/js/63.024514d1.chunk.js.map", - "static/js/64.0d8de512.chunk.js": "/static/js/64.0d8de512.chunk.js", - "static/js/64.0d8de512.chunk.js.map": "/static/js/64.0d8de512.chunk.js.map", - "static/js/65.eaf4b8e3.chunk.js": "/static/js/65.eaf4b8e3.chunk.js", - "static/js/65.eaf4b8e3.chunk.js.map": "/static/js/65.eaf4b8e3.chunk.js.map", - "static/js/66.b9608f5d.chunk.js": "/static/js/66.b9608f5d.chunk.js", - "static/js/66.b9608f5d.chunk.js.map": "/static/js/66.b9608f5d.chunk.js.map", - "static/js/67.af3df1eb.chunk.js": "/static/js/67.af3df1eb.chunk.js", - "static/js/67.af3df1eb.chunk.js.map": "/static/js/67.af3df1eb.chunk.js.map", - "static/js/68.ec9d010e.chunk.js": "/static/js/68.ec9d010e.chunk.js", - "static/js/68.ec9d010e.chunk.js.map": "/static/js/68.ec9d010e.chunk.js.map", - "static/js/69.0e1bedb0.chunk.js": "/static/js/69.0e1bedb0.chunk.js", - "static/js/69.0e1bedb0.chunk.js.map": "/static/js/69.0e1bedb0.chunk.js.map", - "static/js/70.9ca1515e.chunk.js": "/static/js/70.9ca1515e.chunk.js", - "static/js/70.9ca1515e.chunk.js.map": "/static/js/70.9ca1515e.chunk.js.map", - "static/js/71.aa3651ff.chunk.js": "/static/js/71.aa3651ff.chunk.js", - "static/js/71.aa3651ff.chunk.js.map": "/static/js/71.aa3651ff.chunk.js.map", - "static/js/72.1808ce35.chunk.js": "/static/js/72.1808ce35.chunk.js", - "static/js/72.1808ce35.chunk.js.map": "/static/js/72.1808ce35.chunk.js.map", - "static/js/73.79d53550.chunk.js": "/static/js/73.79d53550.chunk.js", - "static/js/73.79d53550.chunk.js.map": "/static/js/73.79d53550.chunk.js.map", - "static/js/74.94c75616.chunk.js": "/static/js/74.94c75616.chunk.js", - "static/js/74.94c75616.chunk.js.map": "/static/js/74.94c75616.chunk.js.map", - "static/js/75.c4d418ac.chunk.js": "/static/js/75.c4d418ac.chunk.js", - "static/js/75.c4d418ac.chunk.js.map": "/static/js/75.c4d418ac.chunk.js.map", - "static/js/76.24221d23.chunk.js": "/static/js/76.24221d23.chunk.js", - "static/js/76.24221d23.chunk.js.map": "/static/js/76.24221d23.chunk.js.map", - "static/js/77.fcbd2fa1.chunk.js": "/static/js/77.fcbd2fa1.chunk.js", - "static/js/77.fcbd2fa1.chunk.js.map": "/static/js/77.fcbd2fa1.chunk.js.map", - "static/js/78.e0cdb49e.chunk.js": "/static/js/78.e0cdb49e.chunk.js", - "static/js/78.e0cdb49e.chunk.js.map": "/static/js/78.e0cdb49e.chunk.js.map", - "static/js/79.4fd5727b.chunk.js": "/static/js/79.4fd5727b.chunk.js", - "static/js/79.4fd5727b.chunk.js.map": "/static/js/79.4fd5727b.chunk.js.map", - "static/js/80.cc919a1a.chunk.js": "/static/js/80.cc919a1a.chunk.js", - "static/js/80.cc919a1a.chunk.js.map": "/static/js/80.cc919a1a.chunk.js.map", - "static/js/81.6d907df1.chunk.js": "/static/js/81.6d907df1.chunk.js", - "static/js/81.6d907df1.chunk.js.map": "/static/js/81.6d907df1.chunk.js.map", - "static/js/82.e378a04c.chunk.js": "/static/js/82.e378a04c.chunk.js", - "static/js/82.e378a04c.chunk.js.map": "/static/js/82.e378a04c.chunk.js.map", - "static/js/83.de903a04.chunk.js": "/static/js/83.de903a04.chunk.js", - "static/js/83.de903a04.chunk.js.map": "/static/js/83.de903a04.chunk.js.map", - "static/js/84.6d668161.chunk.js": "/static/js/84.6d668161.chunk.js", - "static/js/84.6d668161.chunk.js.map": "/static/js/84.6d668161.chunk.js.map", - "static/js/85.e5fd6fe5.chunk.js": "/static/js/85.e5fd6fe5.chunk.js", - "static/js/85.e5fd6fe5.chunk.js.map": "/static/js/85.e5fd6fe5.chunk.js.map", - "static/js/86.fef39be4.chunk.js": "/static/js/86.fef39be4.chunk.js", - "static/js/86.fef39be4.chunk.js.map": "/static/js/86.fef39be4.chunk.js.map", - "static/js/87.ac7910b0.chunk.js": "/static/js/87.ac7910b0.chunk.js", - "static/js/87.ac7910b0.chunk.js.map": "/static/js/87.ac7910b0.chunk.js.map", - "static/js/88.b995a874.chunk.js": "/static/js/88.b995a874.chunk.js", - "static/js/88.b995a874.chunk.js.map": "/static/js/88.b995a874.chunk.js.map", - "static/js/89.2427a52d.chunk.js": "/static/js/89.2427a52d.chunk.js", - "static/js/89.2427a52d.chunk.js.map": "/static/js/89.2427a52d.chunk.js.map", - "static/js/90.8b140935.chunk.js": "/static/js/90.8b140935.chunk.js", - "static/js/90.8b140935.chunk.js.map": "/static/js/90.8b140935.chunk.js.map", - "static/js/91.bbe172a6.chunk.js": "/static/js/91.bbe172a6.chunk.js", - "static/js/91.bbe172a6.chunk.js.map": "/static/js/91.bbe172a6.chunk.js.map", - "static/js/92.7129e6d4.chunk.js": "/static/js/92.7129e6d4.chunk.js", - "static/js/92.7129e6d4.chunk.js.map": "/static/js/92.7129e6d4.chunk.js.map", - "static/js/93.badbdcfc.chunk.js": "/static/js/93.badbdcfc.chunk.js", - "static/js/93.badbdcfc.chunk.js.map": "/static/js/93.badbdcfc.chunk.js.map", - "static/js/94.38aa73c4.chunk.js": "/static/js/94.38aa73c4.chunk.js", - "static/js/94.38aa73c4.chunk.js.map": "/static/js/94.38aa73c4.chunk.js.map", - "static/js/95.292d25fe.chunk.js": "/static/js/95.292d25fe.chunk.js", - "static/js/95.292d25fe.chunk.js.map": "/static/js/95.292d25fe.chunk.js.map", - "static/js/96.a38e03c8.chunk.js": "/static/js/96.a38e03c8.chunk.js", - "static/js/96.a38e03c8.chunk.js.map": "/static/js/96.a38e03c8.chunk.js.map", - "static/js/97.62ac06e4.chunk.js": "/static/js/97.62ac06e4.chunk.js", - "static/js/97.62ac06e4.chunk.js.map": "/static/js/97.62ac06e4.chunk.js.map", - "static/js/98.c8e387f6.chunk.js": "/static/js/98.c8e387f6.chunk.js", - "static/js/98.c8e387f6.chunk.js.map": "/static/js/98.c8e387f6.chunk.js.map", - "static/js/99.0e80284c.chunk.js": "/static/js/99.0e80284c.chunk.js", - "static/js/99.0e80284c.chunk.js.map": "/static/js/99.0e80284c.chunk.js.map", - "static/js/100.a48aed76.chunk.js": "/static/js/100.a48aed76.chunk.js", - "static/js/100.a48aed76.chunk.js.map": "/static/js/100.a48aed76.chunk.js.map", - "static/js/101.0980d76e.chunk.js": "/static/js/101.0980d76e.chunk.js", - "static/js/101.0980d76e.chunk.js.map": "/static/js/101.0980d76e.chunk.js.map", - "static/js/102.854c378c.chunk.js": "/static/js/102.854c378c.chunk.js", - "static/js/102.854c378c.chunk.js.map": "/static/js/102.854c378c.chunk.js.map", - "static/js/103.e68abdfe.chunk.js": "/static/js/103.e68abdfe.chunk.js", - "static/js/103.e68abdfe.chunk.js.map": "/static/js/103.e68abdfe.chunk.js.map", - "static/js/104.c984f63f.chunk.js": "/static/js/104.c984f63f.chunk.js", - "static/js/104.c984f63f.chunk.js.map": "/static/js/104.c984f63f.chunk.js.map", - "static/js/105.8655bd95.chunk.js": "/static/js/105.8655bd95.chunk.js", - "static/js/105.8655bd95.chunk.js.map": "/static/js/105.8655bd95.chunk.js.map", - "static/js/106.b1b8ecb4.chunk.js": "/static/js/106.b1b8ecb4.chunk.js", - "static/js/106.b1b8ecb4.chunk.js.map": "/static/js/106.b1b8ecb4.chunk.js.map", - "static/js/107.e829d84b.chunk.js": "/static/js/107.e829d84b.chunk.js", - "static/js/107.e829d84b.chunk.js.map": "/static/js/107.e829d84b.chunk.js.map", - "static/js/108.226dd588.chunk.js": "/static/js/108.226dd588.chunk.js", - "static/js/108.226dd588.chunk.js.map": "/static/js/108.226dd588.chunk.js.map", - "static/js/109.c999bff3.chunk.js": "/static/js/109.c999bff3.chunk.js", - "static/js/109.c999bff3.chunk.js.map": "/static/js/109.c999bff3.chunk.js.map", - "static/js/110.3da76866.chunk.js": "/static/js/110.3da76866.chunk.js", - "static/js/110.3da76866.chunk.js.map": "/static/js/110.3da76866.chunk.js.map", - "static/js/111.0f764d67.chunk.js": "/static/js/111.0f764d67.chunk.js", - "static/js/111.0f764d67.chunk.js.map": "/static/js/111.0f764d67.chunk.js.map", - "static/js/112.60488108.chunk.js": "/static/js/112.60488108.chunk.js", - "static/js/112.60488108.chunk.js.map": "/static/js/112.60488108.chunk.js.map", - "static/js/113.cea5ca47.chunk.js": "/static/js/113.cea5ca47.chunk.js", - "static/js/113.cea5ca47.chunk.js.map": "/static/js/113.cea5ca47.chunk.js.map", - "static/js/114.05d08486.chunk.js": "/static/js/114.05d08486.chunk.js", - "static/js/114.05d08486.chunk.js.map": "/static/js/114.05d08486.chunk.js.map", - "static/js/115.f315bee9.chunk.js": "/static/js/115.f315bee9.chunk.js", - "static/js/115.f315bee9.chunk.js.map": "/static/js/115.f315bee9.chunk.js.map", - "static/js/116.ec4acf03.chunk.js": "/static/js/116.ec4acf03.chunk.js", - "static/js/116.ec4acf03.chunk.js.map": "/static/js/116.ec4acf03.chunk.js.map", - "static/js/117.a74fa60a.chunk.js": "/static/js/117.a74fa60a.chunk.js", - "static/js/117.a74fa60a.chunk.js.map": "/static/js/117.a74fa60a.chunk.js.map", - "static/js/118.5cb728a3.chunk.js": "/static/js/118.5cb728a3.chunk.js", - "static/js/118.5cb728a3.chunk.js.map": "/static/js/118.5cb728a3.chunk.js.map", - "static/js/119.bbff61ff.chunk.js": "/static/js/119.bbff61ff.chunk.js", - "static/js/119.bbff61ff.chunk.js.map": "/static/js/119.bbff61ff.chunk.js.map", - "static/js/120.6bdb867f.chunk.js": "/static/js/120.6bdb867f.chunk.js", - "static/js/120.6bdb867f.chunk.js.map": "/static/js/120.6bdb867f.chunk.js.map", - "static/js/121.53d36392.chunk.js": "/static/js/121.53d36392.chunk.js", - "static/js/121.53d36392.chunk.js.map": "/static/js/121.53d36392.chunk.js.map", - "static/js/122.27ed9bc1.chunk.js": "/static/js/122.27ed9bc1.chunk.js", - "static/js/122.27ed9bc1.chunk.js.map": "/static/js/122.27ed9bc1.chunk.js.map", - "static/js/123.698a1837.chunk.js": "/static/js/123.698a1837.chunk.js", - "static/js/123.698a1837.chunk.js.map": "/static/js/123.698a1837.chunk.js.map", - "static/js/124.c1bd1575.chunk.js": "/static/js/124.c1bd1575.chunk.js", - "static/js/124.c1bd1575.chunk.js.map": "/static/js/124.c1bd1575.chunk.js.map", - "static/js/125.b7e6895b.chunk.js": "/static/js/125.b7e6895b.chunk.js", - "static/js/125.b7e6895b.chunk.js.map": "/static/js/125.b7e6895b.chunk.js.map", - "static/js/126.49448497.chunk.js": "/static/js/126.49448497.chunk.js", - "static/js/126.49448497.chunk.js.map": "/static/js/126.49448497.chunk.js.map", - "static/js/127.4454f424.chunk.js": "/static/js/127.4454f424.chunk.js", - "static/js/127.4454f424.chunk.js.map": "/static/js/127.4454f424.chunk.js.map", - "static/js/128.447aab4e.chunk.js": "/static/js/128.447aab4e.chunk.js", - "static/js/128.447aab4e.chunk.js.map": "/static/js/128.447aab4e.chunk.js.map", - "static/js/129.ba2f0451.chunk.js": "/static/js/129.ba2f0451.chunk.js", - "static/js/129.ba2f0451.chunk.js.map": "/static/js/129.ba2f0451.chunk.js.map", - "static/js/130.694d6caa.chunk.js": "/static/js/130.694d6caa.chunk.js", - "static/js/130.694d6caa.chunk.js.map": "/static/js/130.694d6caa.chunk.js.map", - "static/js/131.f1f72eda.chunk.js": "/static/js/131.f1f72eda.chunk.js", - "static/js/131.f1f72eda.chunk.js.map": "/static/js/131.f1f72eda.chunk.js.map", - "static/js/132.46329c2e.chunk.js": "/static/js/132.46329c2e.chunk.js", - "static/js/132.46329c2e.chunk.js.map": "/static/js/132.46329c2e.chunk.js.map", - "static/js/133.e7f934d4.chunk.js": "/static/js/133.e7f934d4.chunk.js", - "static/js/133.e7f934d4.chunk.js.map": "/static/js/133.e7f934d4.chunk.js.map", - "static/js/134.466c306b.chunk.js": "/static/js/134.466c306b.chunk.js", - "static/js/134.466c306b.chunk.js.map": "/static/js/134.466c306b.chunk.js.map", - "static/js/135.3db3fff1.chunk.js": "/static/js/135.3db3fff1.chunk.js", - "static/js/135.3db3fff1.chunk.js.map": "/static/js/135.3db3fff1.chunk.js.map", - "static/js/136.f50cc0fc.chunk.js": "/static/js/136.f50cc0fc.chunk.js", - "static/js/136.f50cc0fc.chunk.js.map": "/static/js/136.f50cc0fc.chunk.js.map", - "static/js/137.b001ca4c.chunk.js": "/static/js/137.b001ca4c.chunk.js", - "static/js/137.b001ca4c.chunk.js.map": "/static/js/137.b001ca4c.chunk.js.map", - "static/js/138.359316b0.chunk.js": "/static/js/138.359316b0.chunk.js", - "static/js/138.359316b0.chunk.js.map": "/static/js/138.359316b0.chunk.js.map", - "static/js/139.4ec830bb.chunk.js": "/static/js/139.4ec830bb.chunk.js", - "static/js/139.4ec830bb.chunk.js.map": "/static/js/139.4ec830bb.chunk.js.map", - "static/js/140.35d283f7.chunk.js": "/static/js/140.35d283f7.chunk.js", - "static/js/140.35d283f7.chunk.js.map": "/static/js/140.35d283f7.chunk.js.map", - "static/js/141.ad369817.chunk.js": "/static/js/141.ad369817.chunk.js", - "static/js/141.ad369817.chunk.js.map": "/static/js/141.ad369817.chunk.js.map", - "static/js/142.0ef81b98.chunk.js": "/static/js/142.0ef81b98.chunk.js", - "static/js/142.0ef81b98.chunk.js.map": "/static/js/142.0ef81b98.chunk.js.map", - "static/js/143.69d890ca.chunk.js": "/static/js/143.69d890ca.chunk.js", - "static/js/143.69d890ca.chunk.js.map": "/static/js/143.69d890ca.chunk.js.map", - "static/js/144.90f1e2de.chunk.js": "/static/js/144.90f1e2de.chunk.js", - "static/js/144.90f1e2de.chunk.js.map": "/static/js/144.90f1e2de.chunk.js.map", - "static/js/145.c322b12c.chunk.js": "/static/js/145.c322b12c.chunk.js", - "static/js/145.c322b12c.chunk.js.map": "/static/js/145.c322b12c.chunk.js.map", - "static/js/146.da2d51de.chunk.js": "/static/js/146.da2d51de.chunk.js", - "static/js/146.da2d51de.chunk.js.map": "/static/js/146.da2d51de.chunk.js.map", - "static/js/147.cae687bf.chunk.js": "/static/js/147.cae687bf.chunk.js", - "static/js/147.cae687bf.chunk.js.map": "/static/js/147.cae687bf.chunk.js.map", - "static/js/148.0770baa3.chunk.js": "/static/js/148.0770baa3.chunk.js", - "static/js/148.0770baa3.chunk.js.map": "/static/js/148.0770baa3.chunk.js.map", - "static/js/149.7d4a1d41.chunk.js": "/static/js/149.7d4a1d41.chunk.js", - "static/js/149.7d4a1d41.chunk.js.map": "/static/js/149.7d4a1d41.chunk.js.map", - "static/js/150.67713b63.chunk.js": "/static/js/150.67713b63.chunk.js", - "static/js/150.67713b63.chunk.js.map": "/static/js/150.67713b63.chunk.js.map", - "static/js/151.ea0c3bd8.chunk.js": "/static/js/151.ea0c3bd8.chunk.js", - "static/js/151.ea0c3bd8.chunk.js.map": "/static/js/151.ea0c3bd8.chunk.js.map", - "static/js/152.86939e7a.chunk.js": "/static/js/152.86939e7a.chunk.js", - "static/js/152.86939e7a.chunk.js.map": "/static/js/152.86939e7a.chunk.js.map", - "static/js/153.559e3066.chunk.js": "/static/js/153.559e3066.chunk.js", - "static/js/153.559e3066.chunk.js.map": "/static/js/153.559e3066.chunk.js.map", - "static/js/154.782f372d.chunk.js": "/static/js/154.782f372d.chunk.js", - "static/js/154.782f372d.chunk.js.map": "/static/js/154.782f372d.chunk.js.map", - "static/js/155.094bbfa6.chunk.js": "/static/js/155.094bbfa6.chunk.js", - "static/js/155.094bbfa6.chunk.js.map": "/static/js/155.094bbfa6.chunk.js.map", - "static/js/156.cb2198d0.chunk.js": "/static/js/156.cb2198d0.chunk.js", - "static/js/156.cb2198d0.chunk.js.map": "/static/js/156.cb2198d0.chunk.js.map", - "static/js/157.35898266.chunk.js": "/static/js/157.35898266.chunk.js", - "static/js/157.35898266.chunk.js.map": "/static/js/157.35898266.chunk.js.map", - "static/js/158.3d94cd27.chunk.js": "/static/js/158.3d94cd27.chunk.js", - "static/js/158.3d94cd27.chunk.js.map": "/static/js/158.3d94cd27.chunk.js.map", - "static/js/159.898105ca.chunk.js": "/static/js/159.898105ca.chunk.js", - "static/js/159.898105ca.chunk.js.map": "/static/js/159.898105ca.chunk.js.map", - "static/js/160.439ae5ed.chunk.js": "/static/js/160.439ae5ed.chunk.js", - "static/js/160.439ae5ed.chunk.js.map": "/static/js/160.439ae5ed.chunk.js.map", - "static/js/161.b0f472fd.chunk.js": "/static/js/161.b0f472fd.chunk.js", - "static/js/161.b0f472fd.chunk.js.map": "/static/js/161.b0f472fd.chunk.js.map", - "static/js/162.670a8e5c.chunk.js": "/static/js/162.670a8e5c.chunk.js", - "static/js/162.670a8e5c.chunk.js.map": "/static/js/162.670a8e5c.chunk.js.map", - "static/js/163.5318864c.chunk.js": "/static/js/163.5318864c.chunk.js", - "static/js/163.5318864c.chunk.js.map": "/static/js/163.5318864c.chunk.js.map", - "static/js/164.8232149d.chunk.js": "/static/js/164.8232149d.chunk.js", - "static/js/164.8232149d.chunk.js.map": "/static/js/164.8232149d.chunk.js.map", - "static/js/165.bb5bbdee.chunk.js": "/static/js/165.bb5bbdee.chunk.js", - "static/js/165.bb5bbdee.chunk.js.map": "/static/js/165.bb5bbdee.chunk.js.map", - "static/js/166.649971e3.chunk.js": "/static/js/166.649971e3.chunk.js", - "static/js/166.649971e3.chunk.js.map": "/static/js/166.649971e3.chunk.js.map", + "static/js/16.19625a89.chunk.js": "/static/js/16.19625a89.chunk.js", + "static/js/16.19625a89.chunk.js.map": "/static/js/16.19625a89.chunk.js.map", + "static/js/17.429a6923.chunk.js": "/static/js/17.429a6923.chunk.js", + "static/js/17.429a6923.chunk.js.map": "/static/js/17.429a6923.chunk.js.map", + "static/js/18.ab757883.chunk.js": "/static/js/18.ab757883.chunk.js", + "static/js/18.ab757883.chunk.js.map": "/static/js/18.ab757883.chunk.js.map", + "static/js/19.965cd23c.chunk.js": "/static/js/19.965cd23c.chunk.js", + "static/js/19.965cd23c.chunk.js.map": "/static/js/19.965cd23c.chunk.js.map", + "static/js/20.71ae775c.chunk.js": "/static/js/20.71ae775c.chunk.js", + "static/js/20.71ae775c.chunk.js.map": "/static/js/20.71ae775c.chunk.js.map", + "static/js/21.b69ae13a.chunk.js": "/static/js/21.b69ae13a.chunk.js", + "static/js/21.b69ae13a.chunk.js.map": "/static/js/21.b69ae13a.chunk.js.map", + "static/js/22.ead97899.chunk.js": "/static/js/22.ead97899.chunk.js", + "static/js/22.ead97899.chunk.js.map": "/static/js/22.ead97899.chunk.js.map", + "static/js/23.d0f7f215.chunk.js": "/static/js/23.d0f7f215.chunk.js", + "static/js/23.d0f7f215.chunk.js.map": "/static/js/23.d0f7f215.chunk.js.map", + "static/js/24.ed21d2d5.chunk.js": "/static/js/24.ed21d2d5.chunk.js", + "static/js/24.ed21d2d5.chunk.js.map": "/static/js/24.ed21d2d5.chunk.js.map", + "static/js/25.2fcb3630.chunk.js": "/static/js/25.2fcb3630.chunk.js", + "static/js/25.2fcb3630.chunk.js.map": "/static/js/25.2fcb3630.chunk.js.map", + "static/js/26.03657595.chunk.js": "/static/js/26.03657595.chunk.js", + "static/js/26.03657595.chunk.js.map": "/static/js/26.03657595.chunk.js.map", + "static/js/27.650ef959.chunk.js": "/static/js/27.650ef959.chunk.js", + "static/js/27.650ef959.chunk.js.map": "/static/js/27.650ef959.chunk.js.map", + "static/js/28.61c87868.chunk.js": "/static/js/28.61c87868.chunk.js", + "static/js/28.61c87868.chunk.js.map": "/static/js/28.61c87868.chunk.js.map", + "static/js/29.de5b64b9.chunk.js": "/static/js/29.de5b64b9.chunk.js", + "static/js/29.de5b64b9.chunk.js.map": "/static/js/29.de5b64b9.chunk.js.map", + "static/js/30.3df49031.chunk.js": "/static/js/30.3df49031.chunk.js", + "static/js/30.3df49031.chunk.js.map": "/static/js/30.3df49031.chunk.js.map", + "static/js/31.4a4c233f.chunk.js": "/static/js/31.4a4c233f.chunk.js", + "static/js/31.4a4c233f.chunk.js.map": "/static/js/31.4a4c233f.chunk.js.map", + "static/js/32.4474bc7f.chunk.js": "/static/js/32.4474bc7f.chunk.js", + "static/js/32.4474bc7f.chunk.js.map": "/static/js/32.4474bc7f.chunk.js.map", + "static/js/33.c4289d83.chunk.js": "/static/js/33.c4289d83.chunk.js", + "static/js/33.c4289d83.chunk.js.map": "/static/js/33.c4289d83.chunk.js.map", + "static/js/34.ad76e96a.chunk.js": "/static/js/34.ad76e96a.chunk.js", + "static/js/34.ad76e96a.chunk.js.map": "/static/js/34.ad76e96a.chunk.js.map", + "static/js/35.77d3866f.chunk.js": "/static/js/35.77d3866f.chunk.js", + "static/js/35.77d3866f.chunk.js.map": "/static/js/35.77d3866f.chunk.js.map", + "static/js/36.c3f93721.chunk.js": "/static/js/36.c3f93721.chunk.js", + "static/js/36.c3f93721.chunk.js.map": "/static/js/36.c3f93721.chunk.js.map", + "static/js/37.0e895e23.chunk.js": "/static/js/37.0e895e23.chunk.js", + "static/js/37.0e895e23.chunk.js.map": "/static/js/37.0e895e23.chunk.js.map", + "static/js/38.aa273ffd.chunk.js": "/static/js/38.aa273ffd.chunk.js", + "static/js/38.aa273ffd.chunk.js.map": "/static/js/38.aa273ffd.chunk.js.map", + "static/js/39.246782de.chunk.js": "/static/js/39.246782de.chunk.js", + "static/js/39.246782de.chunk.js.map": "/static/js/39.246782de.chunk.js.map", + "static/js/40.a15a7621.chunk.js": "/static/js/40.a15a7621.chunk.js", + "static/js/40.a15a7621.chunk.js.map": "/static/js/40.a15a7621.chunk.js.map", + "static/js/41.5172a0ab.chunk.js": "/static/js/41.5172a0ab.chunk.js", + "static/js/41.5172a0ab.chunk.js.map": "/static/js/41.5172a0ab.chunk.js.map", + "static/js/42.b64f47e5.chunk.js": "/static/js/42.b64f47e5.chunk.js", + "static/js/42.b64f47e5.chunk.js.map": "/static/js/42.b64f47e5.chunk.js.map", + "static/js/43.7b5e24c0.chunk.js": "/static/js/43.7b5e24c0.chunk.js", + "static/js/43.7b5e24c0.chunk.js.map": "/static/js/43.7b5e24c0.chunk.js.map", + "static/js/44.15cb5c09.chunk.js": "/static/js/44.15cb5c09.chunk.js", + "static/js/44.15cb5c09.chunk.js.map": "/static/js/44.15cb5c09.chunk.js.map", + "static/js/45.4620406b.chunk.js": "/static/js/45.4620406b.chunk.js", + "static/js/45.4620406b.chunk.js.map": "/static/js/45.4620406b.chunk.js.map", + "static/js/46.702693cd.chunk.js": "/static/js/46.702693cd.chunk.js", + "static/js/46.702693cd.chunk.js.map": "/static/js/46.702693cd.chunk.js.map", + "static/js/47.495473b8.chunk.js": "/static/js/47.495473b8.chunk.js", + "static/js/47.495473b8.chunk.js.map": "/static/js/47.495473b8.chunk.js.map", + "static/js/48.563ff224.chunk.js": "/static/js/48.563ff224.chunk.js", + "static/js/48.563ff224.chunk.js.map": "/static/js/48.563ff224.chunk.js.map", + "static/js/49.dcd54463.chunk.js": "/static/js/49.dcd54463.chunk.js", + "static/js/49.dcd54463.chunk.js.map": "/static/js/49.dcd54463.chunk.js.map", + "static/js/50.e486c0fa.chunk.js": "/static/js/50.e486c0fa.chunk.js", + "static/js/50.e486c0fa.chunk.js.map": "/static/js/50.e486c0fa.chunk.js.map", + "static/js/51.b7dad8dd.chunk.js": "/static/js/51.b7dad8dd.chunk.js", + "static/js/51.b7dad8dd.chunk.js.map": "/static/js/51.b7dad8dd.chunk.js.map", + "static/js/52.5b975a19.chunk.js": "/static/js/52.5b975a19.chunk.js", + "static/js/52.5b975a19.chunk.js.map": "/static/js/52.5b975a19.chunk.js.map", + "static/js/53.a5a4cd5a.chunk.js": "/static/js/53.a5a4cd5a.chunk.js", + "static/js/53.a5a4cd5a.chunk.js.map": "/static/js/53.a5a4cd5a.chunk.js.map", + "static/js/54.08c5d72d.chunk.js": "/static/js/54.08c5d72d.chunk.js", + "static/js/54.08c5d72d.chunk.js.map": "/static/js/54.08c5d72d.chunk.js.map", + "static/js/55.26f9d5db.chunk.js": "/static/js/55.26f9d5db.chunk.js", + "static/js/55.26f9d5db.chunk.js.map": "/static/js/55.26f9d5db.chunk.js.map", + "static/js/56.042a9f61.chunk.js": "/static/js/56.042a9f61.chunk.js", + "static/js/56.042a9f61.chunk.js.map": "/static/js/56.042a9f61.chunk.js.map", + "static/js/57.1560ecd1.chunk.js": "/static/js/57.1560ecd1.chunk.js", + "static/js/57.1560ecd1.chunk.js.map": "/static/js/57.1560ecd1.chunk.js.map", + "static/js/58.0ffde795.chunk.js": "/static/js/58.0ffde795.chunk.js", + "static/js/58.0ffde795.chunk.js.map": "/static/js/58.0ffde795.chunk.js.map", + "static/js/59.7f3967e3.chunk.js": "/static/js/59.7f3967e3.chunk.js", + "static/js/59.7f3967e3.chunk.js.map": "/static/js/59.7f3967e3.chunk.js.map", + "static/js/60.7bfb81d4.chunk.js": "/static/js/60.7bfb81d4.chunk.js", + "static/js/60.7bfb81d4.chunk.js.map": "/static/js/60.7bfb81d4.chunk.js.map", + "static/js/61.601b2085.chunk.js": "/static/js/61.601b2085.chunk.js", + "static/js/61.601b2085.chunk.js.map": "/static/js/61.601b2085.chunk.js.map", + "static/js/62.5a073228.chunk.js": "/static/js/62.5a073228.chunk.js", + "static/js/62.5a073228.chunk.js.map": "/static/js/62.5a073228.chunk.js.map", + "static/js/63.d344125a.chunk.js": "/static/js/63.d344125a.chunk.js", + "static/js/63.d344125a.chunk.js.map": "/static/js/63.d344125a.chunk.js.map", + "static/js/64.ac4863b7.chunk.js": "/static/js/64.ac4863b7.chunk.js", + "static/js/64.ac4863b7.chunk.js.map": "/static/js/64.ac4863b7.chunk.js.map", + "static/js/65.1f63a476.chunk.js": "/static/js/65.1f63a476.chunk.js", + "static/js/65.1f63a476.chunk.js.map": "/static/js/65.1f63a476.chunk.js.map", + "static/js/66.aac767c4.chunk.js": "/static/js/66.aac767c4.chunk.js", + "static/js/66.aac767c4.chunk.js.map": "/static/js/66.aac767c4.chunk.js.map", + "static/js/67.613c11a8.chunk.js": "/static/js/67.613c11a8.chunk.js", + "static/js/67.613c11a8.chunk.js.map": "/static/js/67.613c11a8.chunk.js.map", + "static/js/68.88ba4792.chunk.js": "/static/js/68.88ba4792.chunk.js", + "static/js/68.88ba4792.chunk.js.map": "/static/js/68.88ba4792.chunk.js.map", + "static/js/69.eedabcd7.chunk.js": "/static/js/69.eedabcd7.chunk.js", + "static/js/69.eedabcd7.chunk.js.map": "/static/js/69.eedabcd7.chunk.js.map", + "static/js/70.64a0e193.chunk.js": "/static/js/70.64a0e193.chunk.js", + "static/js/70.64a0e193.chunk.js.map": "/static/js/70.64a0e193.chunk.js.map", + "static/js/71.8ad630e3.chunk.js": "/static/js/71.8ad630e3.chunk.js", + "static/js/71.8ad630e3.chunk.js.map": "/static/js/71.8ad630e3.chunk.js.map", + "static/js/72.53d1a1c5.chunk.js": "/static/js/72.53d1a1c5.chunk.js", + "static/js/72.53d1a1c5.chunk.js.map": "/static/js/72.53d1a1c5.chunk.js.map", + "static/js/73.494e7d44.chunk.js": "/static/js/73.494e7d44.chunk.js", + "static/js/73.494e7d44.chunk.js.map": "/static/js/73.494e7d44.chunk.js.map", + "static/js/74.621a6485.chunk.js": "/static/js/74.621a6485.chunk.js", + "static/js/74.621a6485.chunk.js.map": "/static/js/74.621a6485.chunk.js.map", + "static/js/75.69a4b1bf.chunk.js": "/static/js/75.69a4b1bf.chunk.js", + "static/js/75.69a4b1bf.chunk.js.map": "/static/js/75.69a4b1bf.chunk.js.map", + "static/js/76.eef5a2d5.chunk.js": "/static/js/76.eef5a2d5.chunk.js", + "static/js/76.eef5a2d5.chunk.js.map": "/static/js/76.eef5a2d5.chunk.js.map", + "static/js/77.7018f253.chunk.js": "/static/js/77.7018f253.chunk.js", + "static/js/77.7018f253.chunk.js.map": "/static/js/77.7018f253.chunk.js.map", + "static/js/78.e0340fa9.chunk.js": "/static/js/78.e0340fa9.chunk.js", + "static/js/78.e0340fa9.chunk.js.map": "/static/js/78.e0340fa9.chunk.js.map", + "static/js/79.e9258a3a.chunk.js": "/static/js/79.e9258a3a.chunk.js", + "static/js/79.e9258a3a.chunk.js.map": "/static/js/79.e9258a3a.chunk.js.map", + "static/js/80.8fdde840.chunk.js": "/static/js/80.8fdde840.chunk.js", + "static/js/80.8fdde840.chunk.js.map": "/static/js/80.8fdde840.chunk.js.map", + "static/js/81.84330a7b.chunk.js": "/static/js/81.84330a7b.chunk.js", + "static/js/81.84330a7b.chunk.js.map": "/static/js/81.84330a7b.chunk.js.map", + "static/js/82.6cf52313.chunk.js": "/static/js/82.6cf52313.chunk.js", + "static/js/82.6cf52313.chunk.js.map": "/static/js/82.6cf52313.chunk.js.map", + "static/js/83.923205ea.chunk.js": "/static/js/83.923205ea.chunk.js", + "static/js/83.923205ea.chunk.js.map": "/static/js/83.923205ea.chunk.js.map", + "static/js/84.9ed526bb.chunk.js": "/static/js/84.9ed526bb.chunk.js", + "static/js/84.9ed526bb.chunk.js.map": "/static/js/84.9ed526bb.chunk.js.map", + "static/js/85.8ecb5036.chunk.js": "/static/js/85.8ecb5036.chunk.js", + "static/js/85.8ecb5036.chunk.js.map": "/static/js/85.8ecb5036.chunk.js.map", + "static/js/86.0fac9206.chunk.js": "/static/js/86.0fac9206.chunk.js", + "static/js/86.0fac9206.chunk.js.map": "/static/js/86.0fac9206.chunk.js.map", + "static/js/87.b1d5a080.chunk.js": "/static/js/87.b1d5a080.chunk.js", + "static/js/87.b1d5a080.chunk.js.map": "/static/js/87.b1d5a080.chunk.js.map", + "static/js/88.05655334.chunk.js": "/static/js/88.05655334.chunk.js", + "static/js/88.05655334.chunk.js.map": "/static/js/88.05655334.chunk.js.map", + "static/js/89.b3791ef4.chunk.js": "/static/js/89.b3791ef4.chunk.js", + "static/js/89.b3791ef4.chunk.js.map": "/static/js/89.b3791ef4.chunk.js.map", + "static/js/90.e98cc0d4.chunk.js": "/static/js/90.e98cc0d4.chunk.js", + "static/js/90.e98cc0d4.chunk.js.map": "/static/js/90.e98cc0d4.chunk.js.map", + "static/js/91.89730dda.chunk.js": "/static/js/91.89730dda.chunk.js", + "static/js/91.89730dda.chunk.js.map": "/static/js/91.89730dda.chunk.js.map", + "static/js/92.0161b2c3.chunk.js": "/static/js/92.0161b2c3.chunk.js", + "static/js/92.0161b2c3.chunk.js.map": "/static/js/92.0161b2c3.chunk.js.map", + "static/js/93.8e4a6aa7.chunk.js": "/static/js/93.8e4a6aa7.chunk.js", + "static/js/93.8e4a6aa7.chunk.js.map": "/static/js/93.8e4a6aa7.chunk.js.map", + "static/js/94.d13ad504.chunk.js": "/static/js/94.d13ad504.chunk.js", + "static/js/94.d13ad504.chunk.js.map": "/static/js/94.d13ad504.chunk.js.map", + "static/js/95.f77fcb17.chunk.js": "/static/js/95.f77fcb17.chunk.js", + "static/js/95.f77fcb17.chunk.js.map": "/static/js/95.f77fcb17.chunk.js.map", + "static/js/96.383e51be.chunk.js": "/static/js/96.383e51be.chunk.js", + "static/js/96.383e51be.chunk.js.map": "/static/js/96.383e51be.chunk.js.map", + "static/js/97.1ce3b748.chunk.js": "/static/js/97.1ce3b748.chunk.js", + "static/js/97.1ce3b748.chunk.js.map": "/static/js/97.1ce3b748.chunk.js.map", + "static/js/98.38a93077.chunk.js": "/static/js/98.38a93077.chunk.js", + "static/js/98.38a93077.chunk.js.map": "/static/js/98.38a93077.chunk.js.map", + "static/js/99.99888f24.chunk.js": "/static/js/99.99888f24.chunk.js", + "static/js/99.99888f24.chunk.js.map": "/static/js/99.99888f24.chunk.js.map", + "static/js/100.4c100485.chunk.js": "/static/js/100.4c100485.chunk.js", + "static/js/100.4c100485.chunk.js.map": "/static/js/100.4c100485.chunk.js.map", + "static/js/101.485729cc.chunk.js": "/static/js/101.485729cc.chunk.js", + "static/js/101.485729cc.chunk.js.map": "/static/js/101.485729cc.chunk.js.map", + "static/js/102.62e061d0.chunk.js": "/static/js/102.62e061d0.chunk.js", + "static/js/102.62e061d0.chunk.js.map": "/static/js/102.62e061d0.chunk.js.map", + "static/js/103.de89b958.chunk.js": "/static/js/103.de89b958.chunk.js", + "static/js/103.de89b958.chunk.js.map": "/static/js/103.de89b958.chunk.js.map", + "static/js/104.e2fafda2.chunk.js": "/static/js/104.e2fafda2.chunk.js", + "static/js/104.e2fafda2.chunk.js.map": "/static/js/104.e2fafda2.chunk.js.map", + "static/js/105.26922674.chunk.js": "/static/js/105.26922674.chunk.js", + "static/js/105.26922674.chunk.js.map": "/static/js/105.26922674.chunk.js.map", + "static/js/106.aaba779d.chunk.js": "/static/js/106.aaba779d.chunk.js", + "static/js/106.aaba779d.chunk.js.map": "/static/js/106.aaba779d.chunk.js.map", + "static/js/107.8f09dd19.chunk.js": "/static/js/107.8f09dd19.chunk.js", + "static/js/107.8f09dd19.chunk.js.map": "/static/js/107.8f09dd19.chunk.js.map", + "static/js/108.4f31c7e5.chunk.js": "/static/js/108.4f31c7e5.chunk.js", + "static/js/108.4f31c7e5.chunk.js.map": "/static/js/108.4f31c7e5.chunk.js.map", + "static/js/109.267273f1.chunk.js": "/static/js/109.267273f1.chunk.js", + "static/js/109.267273f1.chunk.js.map": "/static/js/109.267273f1.chunk.js.map", + "static/js/110.eec0da7d.chunk.js": "/static/js/110.eec0da7d.chunk.js", + "static/js/110.eec0da7d.chunk.js.map": "/static/js/110.eec0da7d.chunk.js.map", + "static/js/111.4fb08f3f.chunk.js": "/static/js/111.4fb08f3f.chunk.js", + "static/js/111.4fb08f3f.chunk.js.map": "/static/js/111.4fb08f3f.chunk.js.map", + "static/js/112.f3767d44.chunk.js": "/static/js/112.f3767d44.chunk.js", + "static/js/112.f3767d44.chunk.js.map": "/static/js/112.f3767d44.chunk.js.map", + "static/js/113.5f398440.chunk.js": "/static/js/113.5f398440.chunk.js", + "static/js/113.5f398440.chunk.js.map": "/static/js/113.5f398440.chunk.js.map", + "static/js/114.483266ef.chunk.js": "/static/js/114.483266ef.chunk.js", + "static/js/114.483266ef.chunk.js.map": "/static/js/114.483266ef.chunk.js.map", + "static/js/115.723ab803.chunk.js": "/static/js/115.723ab803.chunk.js", + "static/js/115.723ab803.chunk.js.map": "/static/js/115.723ab803.chunk.js.map", + "static/js/116.82cfb4c3.chunk.js": "/static/js/116.82cfb4c3.chunk.js", + "static/js/116.82cfb4c3.chunk.js.map": "/static/js/116.82cfb4c3.chunk.js.map", + "static/js/117.ce3dd0bd.chunk.js": "/static/js/117.ce3dd0bd.chunk.js", + "static/js/117.ce3dd0bd.chunk.js.map": "/static/js/117.ce3dd0bd.chunk.js.map", + "static/js/118.c46f0032.chunk.js": "/static/js/118.c46f0032.chunk.js", + "static/js/118.c46f0032.chunk.js.map": "/static/js/118.c46f0032.chunk.js.map", + "static/js/119.79bd2e9d.chunk.js": "/static/js/119.79bd2e9d.chunk.js", + "static/js/119.79bd2e9d.chunk.js.map": "/static/js/119.79bd2e9d.chunk.js.map", + "static/js/120.16e25e66.chunk.js": "/static/js/120.16e25e66.chunk.js", + "static/js/120.16e25e66.chunk.js.map": "/static/js/120.16e25e66.chunk.js.map", + "static/js/121.ad0efbf8.chunk.js": "/static/js/121.ad0efbf8.chunk.js", + "static/js/121.ad0efbf8.chunk.js.map": "/static/js/121.ad0efbf8.chunk.js.map", + "static/js/122.867c12a6.chunk.js": "/static/js/122.867c12a6.chunk.js", + "static/js/122.867c12a6.chunk.js.map": "/static/js/122.867c12a6.chunk.js.map", + "static/js/123.00eab965.chunk.js": "/static/js/123.00eab965.chunk.js", + "static/js/123.00eab965.chunk.js.map": "/static/js/123.00eab965.chunk.js.map", + "static/js/124.64d8a114.chunk.js": "/static/js/124.64d8a114.chunk.js", + "static/js/124.64d8a114.chunk.js.map": "/static/js/124.64d8a114.chunk.js.map", + "static/js/125.013abb3a.chunk.js": "/static/js/125.013abb3a.chunk.js", + "static/js/125.013abb3a.chunk.js.map": "/static/js/125.013abb3a.chunk.js.map", + "static/js/126.c97413d0.chunk.js": "/static/js/126.c97413d0.chunk.js", + "static/js/126.c97413d0.chunk.js.map": "/static/js/126.c97413d0.chunk.js.map", + "static/js/127.f68008e1.chunk.js": "/static/js/127.f68008e1.chunk.js", + "static/js/127.f68008e1.chunk.js.map": "/static/js/127.f68008e1.chunk.js.map", + "static/js/128.b10d1c80.chunk.js": "/static/js/128.b10d1c80.chunk.js", + "static/js/128.b10d1c80.chunk.js.map": "/static/js/128.b10d1c80.chunk.js.map", + "static/js/129.68e53a78.chunk.js": "/static/js/129.68e53a78.chunk.js", + "static/js/129.68e53a78.chunk.js.map": "/static/js/129.68e53a78.chunk.js.map", + "static/js/130.f9bedcf3.chunk.js": "/static/js/130.f9bedcf3.chunk.js", + "static/js/130.f9bedcf3.chunk.js.map": "/static/js/130.f9bedcf3.chunk.js.map", + "static/js/131.4de7b85e.chunk.js": "/static/js/131.4de7b85e.chunk.js", + "static/js/131.4de7b85e.chunk.js.map": "/static/js/131.4de7b85e.chunk.js.map", + "static/js/132.f0dc0d4c.chunk.js": "/static/js/132.f0dc0d4c.chunk.js", + "static/js/132.f0dc0d4c.chunk.js.map": "/static/js/132.f0dc0d4c.chunk.js.map", + "static/js/133.476ae942.chunk.js": "/static/js/133.476ae942.chunk.js", + "static/js/133.476ae942.chunk.js.map": "/static/js/133.476ae942.chunk.js.map", + "static/js/134.4992c71c.chunk.js": "/static/js/134.4992c71c.chunk.js", + "static/js/134.4992c71c.chunk.js.map": "/static/js/134.4992c71c.chunk.js.map", + "static/js/135.13177433.chunk.js": "/static/js/135.13177433.chunk.js", + "static/js/135.13177433.chunk.js.map": "/static/js/135.13177433.chunk.js.map", + "static/js/136.5d1414a8.chunk.js": "/static/js/136.5d1414a8.chunk.js", + "static/js/136.5d1414a8.chunk.js.map": "/static/js/136.5d1414a8.chunk.js.map", + "static/js/137.4994fc2b.chunk.js": "/static/js/137.4994fc2b.chunk.js", + "static/js/137.4994fc2b.chunk.js.map": "/static/js/137.4994fc2b.chunk.js.map", + "static/js/138.4fb392c9.chunk.js": "/static/js/138.4fb392c9.chunk.js", + "static/js/138.4fb392c9.chunk.js.map": "/static/js/138.4fb392c9.chunk.js.map", + "static/js/139.7c533985.chunk.js": "/static/js/139.7c533985.chunk.js", + "static/js/139.7c533985.chunk.js.map": "/static/js/139.7c533985.chunk.js.map", + "static/js/140.8ac8b0e1.chunk.js": "/static/js/140.8ac8b0e1.chunk.js", + "static/js/140.8ac8b0e1.chunk.js.map": "/static/js/140.8ac8b0e1.chunk.js.map", + "static/js/141.2565231e.chunk.js": "/static/js/141.2565231e.chunk.js", + "static/js/141.2565231e.chunk.js.map": "/static/js/141.2565231e.chunk.js.map", + "static/js/142.fa0d2df4.chunk.js": "/static/js/142.fa0d2df4.chunk.js", + "static/js/142.fa0d2df4.chunk.js.map": "/static/js/142.fa0d2df4.chunk.js.map", + "static/js/143.96cc9182.chunk.js": "/static/js/143.96cc9182.chunk.js", + "static/js/143.96cc9182.chunk.js.map": "/static/js/143.96cc9182.chunk.js.map", + "static/js/144.498696a6.chunk.js": "/static/js/144.498696a6.chunk.js", + "static/js/144.498696a6.chunk.js.map": "/static/js/144.498696a6.chunk.js.map", + "static/js/145.8bdb0315.chunk.js": "/static/js/145.8bdb0315.chunk.js", + "static/js/145.8bdb0315.chunk.js.map": "/static/js/145.8bdb0315.chunk.js.map", + "static/js/146.c5fa6642.chunk.js": "/static/js/146.c5fa6642.chunk.js", + "static/js/146.c5fa6642.chunk.js.map": "/static/js/146.c5fa6642.chunk.js.map", + "static/js/147.32e24664.chunk.js": "/static/js/147.32e24664.chunk.js", + "static/js/147.32e24664.chunk.js.map": "/static/js/147.32e24664.chunk.js.map", + "static/js/148.eac46e76.chunk.js": "/static/js/148.eac46e76.chunk.js", + "static/js/148.eac46e76.chunk.js.map": "/static/js/148.eac46e76.chunk.js.map", + "static/js/149.4b7bc910.chunk.js": "/static/js/149.4b7bc910.chunk.js", + "static/js/149.4b7bc910.chunk.js.map": "/static/js/149.4b7bc910.chunk.js.map", + "static/js/150.55b9afa9.chunk.js": "/static/js/150.55b9afa9.chunk.js", + "static/js/150.55b9afa9.chunk.js.map": "/static/js/150.55b9afa9.chunk.js.map", + "static/js/151.205738ca.chunk.js": "/static/js/151.205738ca.chunk.js", + "static/js/151.205738ca.chunk.js.map": "/static/js/151.205738ca.chunk.js.map", + "static/js/152.b02cf8a2.chunk.js": "/static/js/152.b02cf8a2.chunk.js", + "static/js/152.b02cf8a2.chunk.js.map": "/static/js/152.b02cf8a2.chunk.js.map", + "static/js/153.4533f6dc.chunk.js": "/static/js/153.4533f6dc.chunk.js", + "static/js/153.4533f6dc.chunk.js.map": "/static/js/153.4533f6dc.chunk.js.map", + "static/js/154.ae70fd4e.chunk.js": "/static/js/154.ae70fd4e.chunk.js", + "static/js/154.ae70fd4e.chunk.js.map": "/static/js/154.ae70fd4e.chunk.js.map", + "static/js/155.aa3f28a1.chunk.js": "/static/js/155.aa3f28a1.chunk.js", + "static/js/155.aa3f28a1.chunk.js.map": "/static/js/155.aa3f28a1.chunk.js.map", + "static/js/156.75b7ff6b.chunk.js": "/static/js/156.75b7ff6b.chunk.js", + "static/js/156.75b7ff6b.chunk.js.map": "/static/js/156.75b7ff6b.chunk.js.map", + "static/js/157.019e45fe.chunk.js": "/static/js/157.019e45fe.chunk.js", + "static/js/157.019e45fe.chunk.js.map": "/static/js/157.019e45fe.chunk.js.map", + "static/js/158.b057afef.chunk.js": "/static/js/158.b057afef.chunk.js", + "static/js/158.b057afef.chunk.js.map": "/static/js/158.b057afef.chunk.js.map", + "static/js/159.90e89192.chunk.js": "/static/js/159.90e89192.chunk.js", + "static/js/159.90e89192.chunk.js.map": "/static/js/159.90e89192.chunk.js.map", + "static/js/160.97d2cc95.chunk.js": "/static/js/160.97d2cc95.chunk.js", + "static/js/160.97d2cc95.chunk.js.map": "/static/js/160.97d2cc95.chunk.js.map", + "static/js/161.341e9f6e.chunk.js": "/static/js/161.341e9f6e.chunk.js", + "static/js/161.341e9f6e.chunk.js.map": "/static/js/161.341e9f6e.chunk.js.map", + "static/js/162.739b9a95.chunk.js": "/static/js/162.739b9a95.chunk.js", + "static/js/162.739b9a95.chunk.js.map": "/static/js/162.739b9a95.chunk.js.map", + "static/js/163.a8adb4ef.chunk.js": "/static/js/163.a8adb4ef.chunk.js", + "static/js/163.a8adb4ef.chunk.js.map": "/static/js/163.a8adb4ef.chunk.js.map", + "static/js/164.3802dd6f.chunk.js": "/static/js/164.3802dd6f.chunk.js", + "static/js/164.3802dd6f.chunk.js.map": "/static/js/164.3802dd6f.chunk.js.map", + "static/js/165.31cc8912.chunk.js": "/static/js/165.31cc8912.chunk.js", + "static/js/165.31cc8912.chunk.js.map": "/static/js/165.31cc8912.chunk.js.map", + "static/js/166.2f841439.chunk.js": "/static/js/166.2f841439.chunk.js", + "static/js/166.2f841439.chunk.js.map": "/static/js/166.2f841439.chunk.js.map", + "static/js/167.b292f1e5.chunk.js": "/static/js/167.b292f1e5.chunk.js", + "static/js/167.b292f1e5.chunk.js.map": "/static/js/167.b292f1e5.chunk.js.map", "atom.xml": "/atom.xml", "discord/index.html": "/discord/index.html", "index.html": "/index.html", - "precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js": "/precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js", + "precache-manifest.768a9a6250686716214c8bd5d8285774.js": "/precache-manifest.768a9a6250686716214c8bd5d8285774.js", "redirect/launcher/discord/index.html": "/redirect/launcher/discord/index.html", "redirect/launcher/troubleshooting/index.html": "/redirect/launcher/troubleshooting/index.html", "service-worker.js": "/service-worker.js", @@ -373,15 +375,15 @@ "static/css/8.ce29400d.chunk.css.map": "/static/css/8.ce29400d.chunk.css.map", "static/css/9.4531eef3.chunk.css.map": "/static/css/9.4531eef3.chunk.css.map", "static/css/main.dd2bec91.chunk.css.map": "/static/css/main.dd2bec91.chunk.css.map", - "static/js/0.aea5108a.chunk.js.LICENSE.txt": "/static/js/0.aea5108a.chunk.js.LICENSE.txt", + "static/js/0.da263fb4.chunk.js.LICENSE.txt": "/static/js/0.da263fb4.chunk.js.LICENSE.txt", "static/js/7.27d25fc0.chunk.js.LICENSE.txt": "/static/js/7.27d25fc0.chunk.js.LICENSE.txt", "static/media/app.scss": "/static/media/lato-normal.27bd77b9.woff" }, "entrypoints": [ - "static/js/runtime-main.72783661.js", + "static/js/runtime-main.343f8325.js", "static/css/7.7b033bdf.chunk.css", "static/js/7.27d25fc0.chunk.js", "static/css/main.dd2bec91.chunk.css", - "static/js/main.e826d3a5.chunk.js" + "static/js/main.3922a676.chunk.js" ] } \ No newline at end of file diff --git a/atom.xml b/atom.xml index a2e1ec227c..9749acd86b 100644 --- a/atom.xml +++ b/atom.xml @@ -9,7 +9,231 @@ https://runelite.net/ - 2024-04-12T07:30:35.958Z + 2024-04-17T13:33:09.523Z + + + https://runelite.net/blog/show/2024-04-17-1.10.27-Release + + 1.10.27 Release + Spell reordering, notification improvements, and teleport submenus + 2024-04-17T23:00:00.000Z + + Adam + + +

Spell reordering

+

Spell reordering is here! The new Spellbook plugin allows reordering and hiding spells, similar to how prayer reordering works.

+

spell reordering

+

Notification overrides

+

Most client notifications can now have their notification style configured per-notification. Compatible notifications will have a cog icon next to the checkbox when enabled which opens the per-notification settings. Notifications without customized settings continue to use the default notification settings found in the RuneLite Notification Settings configuration section.

+

notif1 +-> +notif2

+

Teleport submenus

+

Menu entry swapper has a new Teleport submenus setting which adds submenus for cape teleports. It supports the max, construction, and achievement diary capes. The submenus can also be swapped to be the top option via the usual shift-click swap, allowing easy one click +teleports to any of the various teleports.

+

teleports

+

There are also several smaller improvements and bug fixes, including:

+
    +
  • Ground items despawn timers now use the enhanced client despawn times, which works more reliably and on all items
  • +
  • All costume room storage items can now be searched via bank tags: treasure chest, magic wardrobe, armour case, cape rack, and toy box
  • +
  • MacOS retina displays are now supported on the GPU plugin
  • +
  • An amulet of chemistry notification was added to the item charges plugin
  • +
  • Tonalztics of Ralos has been added to the special attack counter
  • +
+

Enjoy!

+

- Adam

+

New commits

+

We had 25 contributors this update!

+
Adam (34):
+      hiscores: move activities from skill_icons_small
+      hiscores: add varlamore
+      gpu: fix texture hillskew
+      clues: support wall decorations for ObjectClueScrolls
+      attack styles: use client enum for looking up weapon attack styles
+      gpu: fix cl compilation on amd gpus
+      cache: remove old world map index
+      ground items: invalidate item cache when quantity changes
+      devtools: add script args to script inspector
+      cluescrolls: add tags for remaining costume room storage
+      rtconfig: add time boxing for outage message
+      cache: add item examine
+      Revert "implings: add essence impling spawns"
+      opponent info: fix npe from hud check
+      ground items: invalidate item cache when quantity changes
+      ge: add beta world type
+      loot tracker: add beta world type
+      config: add serializers
+      config: add notification overrides
+      notifier: remove double shell escaping
+      pluin panel: fix typo
+      overlay panel: clear children even if render throws
+      gpu: add macos retina support
+      api: add item despawn time
+      ground items: use TileItem despawn times
+      gpu: fix animated texture uv overflow
+      plugins: use new notification system
+      api: add cs2 arrays
+      config: show config panel for any plugin with config descriptor
+      add spellbook plugin
+      api: add menuAction
+      menuaction: add widget submenu parent
+      menu swapper: add teleport submenus
+      menuentryswapper: remove construction build/remove block
+
+Anton Olsson (1):
+      clues: remove butterfly jar requirement
+
+Antony Linden (7):
+      skill calculator: Order actions by level, xp, then alphabetically
+      skill calculator: Fix mahogany lectern icons
+      skill calculator: Fix Mithril crossbow enum name
+      skill calculator: Add Kourend Castle Teleport
+      skill calculator: Add Juniper logs
+      skill calculator: Update Rogues' Castle chest xp value
+      skill calculator: Add Varlamore skill actions and bonuses
+
+Bakkingamu (1):
+      item charges: add amulet of chemistry notification
+
+Chris Brown (4):
+      cache: fix label positions in underground areas
+      cache: fix icons rendering on the wrong plane
+      cache: add map links
+      cache: render area labels on the map
+
+DapperMickie (12):
+      chat commands: add lunar chest aliases (#17700)
+      skill calculator: Allow multiple bonuses to apply at once
+      skill calculator: Add Forester's Campfire firemaking bonus
+      skill calculator: Add Zealot Robes prayer bonus
+      skill calculator: Fix skill action bonus multiplication
+      skill calculator: Standardize bonus percentage format
+      skill calculator: Add Goldsmith Gauntlets smithing bonus
+      skill calculator: Add felling axe + rations woodcutting bonus
+      skill calculator: Improve prayer bonus ordering
+      skill calculator: Improve prayer bonus stacking
+      skill calculator: Fix Wilderness agility course xp value
+      skill calculator: Add Wilderness agility tickets
+
+Felanbird (14):
+      worldmap: add AJP fairy ring
+      fairyring: add AJP fairy ring
+      clues: add Valmore clues
+      clues: fix NO OWNER anagram location
+      worldmap: add Civitas illa Fortis teleport
+      runepouch overlay: add sunfire rune image
+      implings: add essence impling spawns
+      clues: update SW Kharazi jungle HotCold step
+      clues: update Cam Torum emote clue
+      github: link to wiki safemode instructions in bug template
+      clues: update various varlamore steps
+      clues: update sunfire fanatic armour step
+      clues: update south-eastern chaos temple hard clue
+      chat commands: add more toa normal mode aliases
+
+Frosty-J (1):
+      boss timers: update chaos elemental respawn time
+
+Hooder (1):
+      gpu: fix nearest neighbor with integer DPI scaling
+
+JZomDev (1):
+      hunter: add Embertailed jerboa
+
+Joona (1):
+      clientui: set frame location after game size (#17621)
+
+Jordan Atwood (11):
+      worldmap: add varlamore mining spots
+      worldmap: Alphabetize minigame locations and add test for alphabetization
+      worldmap: Add test for world point uniqueness
+      worldmap: add Great Kourend minigames
+      worldmap: add varlamore dungeons
+      worldmap: Add sandworms hunter spot
+      Remove unused Slf4j annotations and imports
+      timers: Remove tzhaar timer defeat message trigger
+      skill calculator: Add test for mutually-stacking bonuses
+      skill calculator: Fix Maple longbow xp value
+      skill calculator: Use real levels for plank actions
+
+Joshua Dunbrack (1):
+      regen meter: apply updated lightbearer equipping behavior (#17678)
+
+Macweese (19):
+      worldmap: add varlamore transports
+      fishingspot: add varlamore fishing spots
+      worldmap: add varlamore fishing spots
+      worldmap: add varlamore rare trees
+      worldmap: add varlamore patches
+      worldmap: fix Entrana hops patch location
+      worldmap: add varlamore minigames
+      worldmap: add Grand Exchange Games Zone
+      agility: add varlamore shortcut
+      worldmap: add varlamore hunter spots
+      fishing: prevent false positive session
+      hunter: add varlamore hunter traps
+      devtools: restore button background on toggle
+      worldmap: fix quest icons paint cutoff (#17650)
+      slayer: include zygomites in task weakness config tooltip
+      minimap: restore map dots on config reset
+      login screen: add varlamore login screen
+      game: add isDying override for tutorial island giant rat (#17733)
+      discord: add varlamore regions
+
+Mario Hendriks (1):
+      implings: add essence impling spawns
+
+Max Weber (6):
+      timetracking: add varlamore patches
+      api: allow cloning face transparencies if they don't exist
+      api: expose Model::drawOrtho
+      roofremoval: add Varlamore roofs
+      rl-client: update ids to 2024-3-27
+      rl-client: show reveal button on swing password fields
+
+Morgan Lewis (5):
+      loot tracker: track lunar chest
+      loot tracker: track fortis colosseum rewards
+      loot tracker: track hunters loot sacks
+      timetracking: add additional farming regions for civitas illa fortis (#17602)
+      widget: make moons of peril overlay movable
+
+Ourmond (1):
+      idle notifier: Add Ent & Canoe chopping animations
+
+SRLJustin (1):
+      menuentryswapper: add fortis colosseum to jewellerybox swap
+
+YvesW (4):
+      farming: fix tracking contracts
+      farming: fix marcellus protection
+      surefire: set locale to en_US
+      world map: add Fortis Colosseum teleport (#17727)
+
+Zander Bolgar (1):
+      mining plugin: add calcified rocks
+
+capslock13 (3):
+      game: Add isDying override for bee swarm (#17651)
+      spec counter: add Tonalztics of Ralos
+      timers: Fix ElapsedTimer NPE with null start time
+
+cdfisher (2):
+      skillcalculator: Add Dorgesh-Kaan Agility Course
+      worldhopper: Add High Risk option to world filter.
+
+mopi (2):
+      opponent info: fix hp bar being shown for moons of peril bosses (#17619)
+      hitsplat: add doom and burn hitsplats
+
+testing-ongithub (2):
+      fairyrings: Alphabetize fairy rings and add test for alphabetization
+      worldmap: Add tests for fairy ring plugin overlap and alphabetization
+
+
+
+
https://runelite.net/blog/show/2024-03-21-1.10.25-Release diff --git a/blog/index.html b/blog/index.html index 42903759a4..22128fe1e9 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1 +1 @@ -Blog - RuneLite

Blog

\ No newline at end of file +Blog - RuneLite

Blog

\ No newline at end of file diff --git a/blog/show/2017-12-13-New-Site/index.html b/blog/show/2017-12-13-New-Site/index.html index 68bca3b3db..19e03dc700 100644 --- a/blog/show/2017-12-13-New-Site/index.html +++ b/blog/show/2017-12-13-New-Site/index.html @@ -1,4 +1,4 @@ -New Site - RuneLite

So, I am happy to present you the new site. This site replaces the old one, what +New Site - RuneLite

So, I am happy to present you the new site. This site replaces the old one, what was generated by GitHub pages.

This new site is using latest web development technologies, focusing on performance, user-friendliness and responsivity. It is still new, so if you will @@ -10,4 +10,4 @@ format YYYY-DD-MM-My-Post-Title.md in the src/_posts directory.

Well, all I can say now is, enjoy!

~ Tomas

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2017-12-21-1.2.10-Release/index.html b/blog/show/2017-12-21-1.2.10-Release/index.html index 7bd2168b6c..4fb8862f17 100644 --- a/blog/show/2017-12-21-1.2.10-Release/index.html +++ b/blog/show/2017-12-21-1.2.10-Release/index.html @@ -1,4 +1,4 @@ -1.2.10 Release - RuneLite

This release adds lots of new functionality to RuneLite to make the end-user +1.2.10 Release - RuneLite

This release adds lots of new functionality to RuneLite to make the end-user experience even better, and to compete with well established third-party clients.

The most notable new feature is the new UI design. I tried to make it look as @@ -119,4 +119,4 @@

New commits

rbbi (1): Guice : RuneliteProperties inj (#212) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-01-12-1.2.11-Release/index.html b/blog/show/2018-01-12-1.2.11-Release/index.html index 0c152fbc83..04850897eb 100644 --- a/blog/show/2018-01-12-1.2.11-Release/index.html +++ b/blog/show/2018-01-12-1.2.11-Release/index.html @@ -1,4 +1,4 @@ -1.2.11 Release - RuneLite

In this release we made a lot of improvements to client source, performance and +1.2.11 Release - RuneLite

In this release we made a lot of improvements to client source, performance and overall stability of the client. But there are few new features that are definitely worth mentioning.

First, and the biggest one is Hunter plugin (thanks to @@ -153,4 +153,4 @@

New commits

utsukami (1): Fixes idle notifications occurring when they shouldn't (interacting with bankers/players). See #282 -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-01-18-1.2.12-Release/index.html b/blog/show/2018-01-18-1.2.12-Release/index.html index 4d880cd754..e0e6952fda 100644 --- a/blog/show/2018-01-18-1.2.12-Release/index.html +++ b/blog/show/2018-01-18-1.2.12-Release/index.html @@ -1,4 +1,4 @@ -1.2.12 Release - RuneLite

This release includes several notable features, including:

+1.2.12 Release - RuneLite

This release includes several notable features, including:

@UniquePassive added overlay layers, which allows RuneLite to optionally render beneath both the game menu and in-game interfaces (such as the bank).

@@ -120,4 +120,4 @@

New commits

runelite-client: add OverlayLayer and rendering logic for multiple overlay layers runelite-client: update plugins for new overlay layer -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-01-25-1.2.13-Release/index.html b/blog/show/2018-01-25-1.2.13-Release/index.html index bbb2e3dce3..af728f8a48 100644 --- a/blog/show/2018-01-25-1.2.13-Release/index.html +++ b/blog/show/2018-01-25-1.2.13-Release/index.html @@ -1,4 +1,4 @@ -1.2.13 Release - RuneLite

This release includes several notable features, including:

+1.2.13 Release - RuneLite

This release includes several notable features, including:

@UniquePassive added a screenshot plugin, overlay layers, which automatically takes a screen shot on level up, clue completion, and quest completion. The screenshots may optionally be @@ -126,4 +126,4 @@

New commits

oplosthee (1): Incorporate height into the GroundItems overlay -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-02-01-1.2.14-Release/index.html b/blog/show/2018-02-01-1.2.14-Release/index.html index 3cb6ed4d33..45668645bd 100644 --- a/blog/show/2018-02-01-1.2.14-Release/index.html +++ b/blog/show/2018-02-01-1.2.14-Release/index.html @@ -1,4 +1,4 @@ -1.2.14 Release - RuneLite

@Abextm added an item stats plugin which shows a +1.2.14 Release - RuneLite

@Abextm added an item stats plugin which shows a tooltip on food and potions to show its effect and whether or not it would be wasteful to consume it.

itemstats

@@ -141,4 +141,4 @@

New commits

Fix Karamja diary displaying incorrect progress Remove modification of original diary entry colors -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-02-08-1.2.15-Release/index.html b/blog/show/2018-02-08-1.2.15-Release/index.html index 03a76d6c1d..abc0787cda 100644 --- a/blog/show/2018-02-08-1.2.15-Release/index.html +++ b/blog/show/2018-02-08-1.2.15-Release/index.html @@ -1,4 +1,4 @@ -1.2.15 Release - RuneLite

An agility plugin has been added which shows the click boxes of ability obstaces. +1.2.15 Release - RuneLite

An agility plugin has been added which shows the click boxes of ability obstaces. Thanks to @SomeoneWithAnInternetConnection for their hard work on reversing the clickbox calculations and making this happen.

agility1

@@ -96,4 +96,4 @@

New commits

Show ground items under widgets and with interfaces open Remove unused import -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-02-15-1.2.16-Release/index.html b/blog/show/2018-02-15-1.2.16-Release/index.html index b99c2a8d44..a5b5bedc34 100644 --- a/blog/show/2018-02-15-1.2.16-Release/index.html +++ b/blog/show/2018-02-15-1.2.16-Release/index.html @@ -1,4 +1,4 @@ -1.2.16 Release - RuneLite

An awesome puzzle box plugin has been finally added to RuneLite thanks to work of +1.2.16 Release - RuneLite

An awesome puzzle box plugin has been finally added to RuneLite thanks to work of @UniquePassive. Clues are now even easier to do!

puzzlebox1

puzzlebox2

@@ -91,4 +91,4 @@

New commits

Add puzzle solving algorithm Add puzzle solver plugin -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-02-22-1.2.17-Release/index.html b/blog/show/2018-02-22-1.2.17-Release/index.html index 30e887cab8..bad132de56 100644 --- a/blog/show/2018-02-22-1.2.17-Release/index.html +++ b/blog/show/2018-02-22-1.2.17-Release/index.html @@ -1,4 +1,4 @@ -1.2.17 Release - RuneLite

A new raids plugin was added by @Kamielvf. This plugin will make raids +1.2.17 Release - RuneLite

A new raids plugin was added by @Kamielvf. This plugin will make raids an even more pleasant experience and adds support for scouting.

raids-scouting

raids-points

@@ -130,4 +130,4 @@

New commits

screenshot-plugin: don't depend on "a " in skill name string screenshot-plugin: add detection for Hunter levelups -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-03-01-1.2.18-Release/index.html b/blog/show/2018-03-01-1.2.18-Release/index.html index 78a3dec28a..945ad264e0 100644 --- a/blog/show/2018-03-01-1.2.18-Release/index.html +++ b/blog/show/2018-03-01-1.2.18-Release/index.html @@ -1,4 +1,4 @@ -1.2.18 Release - RuneLite

A grand exchange plugin has been added by +1.2.18 Release - RuneLite

A grand exchange plugin has been added by @Someonewithaninternetconnection. It shows your current grand exchange offers and their progress:

ge

@@ -158,4 +158,4 @@

New commits

cannon plugin: add overlay for cannonballs left cannon plugin: draw npc double hit spots -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-03-08-1.2.19-Release/index.html b/blog/show/2018-03-08-1.2.19-Release/index.html index 054ad66b87..859607101d 100644 --- a/blog/show/2018-03-08-1.2.19-Release/index.html +++ b/blog/show/2018-03-08-1.2.19-Release/index.html @@ -1,4 +1,4 @@ -1.2.19 Release - RuneLite

Stretched fixed mode has been added, which stretches the game screen and makes +1.2.19 Release - RuneLite

Stretched fixed mode has been added, which stretches the game screen and makes it more playable on high resolution monitors. Thanks to @devLotto for making this happen.

@sethtroll added a GE search feature to the existing grand exchange plugin. You may also use alt+click on your inventory to @@ -207,4 +207,4 @@

New commits

l2- (1): fix prayer enhance timer. its actually 10 seconds shorter than 5 minutes -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-03-15-1.3.0-Release/index.html b/blog/show/2018-03-15-1.3.0-Release/index.html index 01ba04541e..9f10dc057b 100644 --- a/blog/show/2018-03-15-1.3.0-Release/index.html +++ b/blog/show/2018-03-15-1.3.0-Release/index.html @@ -1,4 +1,4 @@ -1.3.0 Release - RuneLite

@Xrio contributed a menu swapper plugin which +1.3.0 Release - RuneLite

@Xrio contributed a menu swapper plugin which swaps the left click menu options on some things.

menuswap

The ground items plugin can now highlight menu options based on item price, @@ -121,4 +121,4 @@

New commits

nvisser (1): Round actions remaining up -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-03-22-1.3.1-Release/index.html b/blog/show/2018-03-22-1.3.1-Release/index.html index 25bb1123f8..d805912ce9 100644 --- a/blog/show/2018-03-22-1.3.1-Release/index.html +++ b/blog/show/2018-03-22-1.3.1-Release/index.html @@ -1,4 +1,4 @@ -1.3.1 Release - RuneLite

A prayer reordering plugin has been added which lets you reorder the prayers in +1.3.1 Release - RuneLite

A prayer reordering plugin has been added which lets you reorder the prayers in your prayer book. Big thanks to @devdennis for the excellent work on making this possible;

prayorder

@@ -176,4 +176,4 @@

New commits

nvisser (1): Add time till next level to xptracker -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-03-29-1.3.2-Release/index.html b/blog/show/2018-03-29-1.3.2-Release/index.html index fafb252e4c..9724d5c630 100644 --- a/blog/show/2018-03-29-1.3.2-Release/index.html +++ b/blog/show/2018-03-29-1.3.2-Release/index.html @@ -1,4 +1,4 @@ -1.3.2 Release - RuneLite

Movable overlay support is finally here! This allows you to move any RuneLite +1.3.2 Release - RuneLite

Movable overlay support is finally here! This allows you to move any RuneLite Overlay to any position on the screen. Hold alt to do so. There are 4 (or 5 on resizable) "snap corners" provided where, if you move an overlay to a snap corner, the client will dynamically place the overlay to not draw on top of @@ -193,4 +193,4 @@

New commits

rune3132 (1): Additions to Jewellery count plugin -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-04-05-1.3.3-Release/index.html b/blog/show/2018-04-05-1.3.3-Release/index.html index b9ba13ea62..a21bbf4965 100644 --- a/blog/show/2018-04-05-1.3.3-Release/index.html +++ b/blog/show/2018-04-05-1.3.3-Release/index.html @@ -1,4 +1,4 @@ -1.3.3 Release - RuneLite

Bank tags have been added, which allow tagging items in the bank which can later +1.3.3 Release - RuneLite

Bank tags have been added, which allow tagging items in the bank which can later be searched on. Thanks to @devdennis for this, and @abextm for the input dialog work.

banktags

@@ -132,4 +132,4 @@

New commits

rune3132 (1): Added the turquoise slayer helmet to the slayer plugin -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-04-12-1.3.4-Release/index.html b/blog/show/2018-04-12-1.3.4-Release/index.html index acd0489ed2..a7484a7c4e 100644 --- a/blog/show/2018-04-12-1.3.4-Release/index.html +++ b/blog/show/2018-04-12-1.3.4-Release/index.html @@ -1,4 +1,4 @@ -1.3.4 Release - RuneLite

Animation smoothing is here to showcase the bleeding edge of oldschool visuals. +1.3.4 Release - RuneLite

Animation smoothing is here to showcase the bleeding edge of oldschool visuals. Players, NPCs, and environmental objects can now be interpolated (or 'tweened') to animate at higher framerates. Thanks to @DevDennis for bringing this eye candy to life.

@@ -148,4 +148,4 @@

New commits

Add a null check to avoid a NullPointerException when the query returns null. -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-04-19-1.3.5-Release/index.html b/blog/show/2018-04-19-1.3.5-Release/index.html index dba26d6f09..9344e21dc6 100644 --- a/blog/show/2018-04-19-1.3.5-Release/index.html +++ b/blog/show/2018-04-19-1.3.5-Release/index.html @@ -1,4 +1,4 @@ -1.3.5 Release - RuneLite

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. +1.3.5 Release - RuneLite

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. Share your gains with your friends and clanmates!

xptracker

Thanks 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!

@@ -168,4 +168,4 @@

New commits

winterdaze (1): fix prayer enhance duration -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-04-26-1.3.6-Release/index.html b/blog/show/2018-04-26-1.3.6-Release/index.html index b12ed2bafe..64be0f2f9f 100644 --- a/blog/show/2018-04-26-1.3.6-Release/index.html +++ b/blog/show/2018-04-26-1.3.6-Release/index.html @@ -1,4 +1,4 @@ -1.3.6 Release - RuneLite

A tile marker plugin has been added which allows you to highlight arbitrary +1.3.6 Release - RuneLite

A tile marker plugin has been added which allows you to highlight arbitrary tiles by holding shift and selecting "Mark". The markers are saved with your client settings, and work even in instances.

tilemarker

@@ -158,4 +158,4 @@

New commits

Fix cannon cannonball count Fix 2 emote clues -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-03-1.3.7-Release/index.html b/blog/show/2018-05-03-1.3.7-Release/index.html index 22f8c670e9..7cd646bf15 100644 --- a/blog/show/2018-05-03-1.3.7-Release/index.html +++ b/blog/show/2018-05-03-1.3.7-Release/index.html @@ -1,4 +1,4 @@ -1.3.7 Release - RuneLite

This release adds a farming tracker plugin, which keeps track of what time your +1.3.7 Release - RuneLite

This release adds a farming tracker plugin, which keeps track of what time your crops were planted and will notify you after a time when it would be fully grown. Thanks to @abextm and @NotFoxtrot for their work on this over the @@ -195,4 +195,4 @@

New commits

u6077743 (1): Improved low hp notif. by considering nmz absorption, 2210 -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-10-1.3.8-Release/index.html b/blog/show/2018-05-10-1.3.8-Release/index.html index aec01ef028..e139274c85 100644 --- a/blog/show/2018-05-10-1.3.8-Release/index.html +++ b/blog/show/2018-05-10-1.3.8-Release/index.html @@ -1,4 +1,4 @@ -1.3.8 Release - RuneLite

Clue scroll locations are now shown on the in-game world map. Thanks to +1.3.8 Release - RuneLite

Clue scroll locations are now shown on the in-game world map. Thanks to @MESLewis for his work on this over the past weeks.

cluemap

@@ -184,4 +184,4 @@

New commits

wa1id (1): Add Elite Map clue at Zul-andra (#2306) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-15-RuneLite-threatened-to-shutdown/index.html b/blog/show/2018-05-15-RuneLite-threatened-to-shutdown/index.html index 1ead6f0038..c15a12f711 100644 --- a/blog/show/2018-05-15-RuneLite-threatened-to-shutdown/index.html +++ b/blog/show/2018-05-15-RuneLite-threatened-to-shutdown/index.html @@ -1,4 +1,4 @@ -RuneLite threatened to shutdown - RuneLite

I have just finished having a discussion with Mod Mat K, who is threatening +RuneLite threatened to shutdown - RuneLite

I have just finished having a discussion with Mod Mat K, who is threatening legal action against RuneLite for copyright infringement if it is not shut down by the end of the week.

I inquired specifically what parts of RuneLite violate Jagex's copyright so that @@ -23,4 +23,4 @@

If anyone within the community happens to be a (copyright) lawyer, please contact me.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown/index.html b/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown/index.html index 411c537eb6..cb647b0f36 100644 --- a/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown/index.html +++ b/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown/index.html @@ -1,4 +1,4 @@ -RuneLite threatened to shutdown - Update 2 - RuneLite

I have just finished speaking to MMK. I have agreed on a 1-2 day halt on +RuneLite threatened to shutdown - Update 2 - RuneLite

I have just finished speaking to MMK. I have agreed on a 1-2 day halt on development pending further discussion, and I have closed sourced the deobfuscator and the deobfuscated RuneScape client. RuneLite is allowed to operate during this time.

@@ -15,4 +15,4 @@ possible.

Hopefully it gets better from here...

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown/index.html b/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown/index.html index a291821cb3..75ac6bc4c3 100644 --- a/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown/index.html +++ b/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown/index.html @@ -1,4 +1,4 @@ -RuneLite threatened to shutdown - Update - RuneLite

First off, I would like to thank everyone in the community showing so much +RuneLite threatened to shutdown - Update - RuneLite

First off, I would like to thank everyone in the community showing so much support for RuneLite. What Jagex did was clearly a great injustice.

It is unfortunate the only way I seem to be able to have any meaningful discussion with Jagex is via loud blog posts.

@@ -29,4 +29,4 @@ and it belongs to me, and to the many contributors to the project, and I think it is wrong for you to claim it must all be removed.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-18-1.3.9-Release/index.html b/blog/show/2018-05-18-1.3.9-Release/index.html index 34e5313a3e..c52f663336 100644 --- a/blog/show/2018-05-18-1.3.9-Release/index.html +++ b/blog/show/2018-05-18-1.3.9-Release/index.html @@ -1,4 +1,4 @@ -1.3.9 Release - RuneLite

I have been given the go ahead to continue on with RuneLite development by MMK, +1.3.9 Release - RuneLite

I have been given the go ahead to continue on with RuneLite development by MMK, so here is release 1.3.9.

I have had to move most of my tools to be internal to the project, and it is taking some time. We will probably be able to begin @@ -144,4 +144,4 @@

New commits

ypperlig (1): Clear previous image components in fight caves overlay -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-24-1.4.0-Release/index.html b/blog/show/2018-05-24-1.4.0-Release/index.html index 6da99cd6e5..c3df0389c7 100644 --- a/blog/show/2018-05-24-1.4.0-Release/index.html +++ b/blog/show/2018-05-24-1.4.0-Release/index.html @@ -1,4 +1,4 @@ -1.4.0 Release - RuneLite

The new Obsidian theme has been released, which re-skins the client UI and most +1.4.0 Release - RuneLite

The new Obsidian theme has been released, which re-skins the client UI and most of the plugin panel intefaces. Thanks to @psikoi who has been working on this for the last month.

obsidian1

@@ -192,4 +192,4 @@

New commits

wa1id (1): Add teak garden bench to construction calculator. -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-25-Phishing-Attempts/index.html b/blog/show/2018-05-25-Phishing-Attempts/index.html index 50e64404bd..f2ac2fbc0a 100644 --- a/blog/show/2018-05-25-Phishing-Attempts/index.html +++ b/blog/show/2018-05-25-Phishing-Attempts/index.html @@ -1,4 +1,4 @@ -Phishing attempts - RuneLite

Lately there have been an increase in people advertising malicious websites +Phishing attempts - RuneLite

Lately there have been an increase in people advertising malicious websites impersonating runelite.net, which will instead hack you. It looks like this has been mostly in Twitch chat.

This is a reminder the only safe download is from runelite.net. The checksums @@ -8,4 +8,4 @@ ago... but it does not seem to be very effective. If anyone here happens to work at NameCheap NOC contact me.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-05-31-1.4.1-Release/index.html b/blog/show/2018-05-31-1.4.1-Release/index.html index c4ab6e8172..dce45bd410 100644 --- a/blog/show/2018-05-31-1.4.1-Release/index.html +++ b/blog/show/2018-05-31-1.4.1-Release/index.html @@ -1,4 +1,4 @@ -1.4.1 Release - RuneLite

First, lately there have been several targeted phishing attacks against +1.4.1 Release - RuneLite

First, lately there have been several targeted phishing attacks against RuneLite, including targeted ad buys on both Google and Reddit. If in doubt, cross reference the site with the official GitHub and Discord. The main tell is the official Windows download is an executable digitally signed by Alexander @@ -203,4 +203,4 @@

New commits

ypperlig (1): blast furance plugin: add bar dispenser to clickbox overlay -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-06-07-1.4.2-Release/index.html b/blog/show/2018-06-07-1.4.2-Release/index.html index 1e748b2ab1..f26d8ab41b 100644 --- a/blog/show/2018-06-07-1.4.2-Release/index.html +++ b/blog/show/2018-06-07-1.4.2-Release/index.html @@ -1,4 +1,4 @@ -1.4.2 Release - RuneLite

The NPC indicators plugin now has an option to show respawn times for tagged +1.4.2 Release - RuneLite

The NPC indicators plugin now has an option to show respawn times for tagged NPCS. Thanks to @WooxSolo for his work on this.

respawn

@DannysPVM added a death indicator plugin which @@ -154,4 +154,4 @@

New commits

ypperlig (1): Change tickrate for giant seaweed from 10 to 5 -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-06-14-1.4.3-Release/index.html b/blog/show/2018-06-14-1.4.3-Release/index.html index 6e302f89dd..a0b430d272 100644 --- a/blog/show/2018-06-14-1.4.3-Release/index.html +++ b/blog/show/2018-06-14-1.4.3-Release/index.html @@ -1,4 +1,4 @@ -1.4.3 Release - RuneLite

A blast mine plugin was added which keeps track of lit dynamite charges, as well +1.4.3 Release - RuneLite

A blast mine plugin was added which keeps track of lit dynamite charges, as well as which stage the rock is in.

blastmine

A chat notifications plugin was added which can underscore your name when spoken @@ -108,4 +108,4 @@

New commits

drivfe (1): Fix combined action slot not updating when an input field was changed -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-06-21-1.4.4-Release/index.html b/blog/show/2018-06-21-1.4.4-Release/index.html index f91a7385d6..012e1a8423 100644 --- a/blog/show/2018-06-21-1.4.4-Release/index.html +++ b/blog/show/2018-06-21-1.4.4-Release/index.html @@ -1,4 +1,4 @@ -1.4.4 Release - RuneLite

A Mage Training Arena was added from +1.4.4 Release - RuneLite

A Mage Training Arena was added from @Jasper Ketelaar which can solve telekinetic mazes, and deduce alchemy room rotations from discovery of items in it.

@@ -127,4 +127,4 @@

New commits

raqes (1): Add wiki link to info panel -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-06-28-1.4.5-Release/index.html b/blog/show/2018-06-28-1.4.5-Release/index.html index dc30a7eb8e..fc3698cb36 100644 --- a/blog/show/2018-06-28-1.4.5-Release/index.html +++ b/blog/show/2018-06-28-1.4.5-Release/index.html @@ -1,4 +1,4 @@ -1.4.5 Release - RuneLite

An inventory tag plugin was added which lets you tag items in your inventory, +1.4.5 Release - RuneLite

An inventory tag plugin was added which lets you tag items in your inventory, which then get outlined a specific color. Contributed by @kulers.

inventorytags

@@ -127,4 +127,4 @@

New commits

Added destroy item widgets Fixed binding necklace charges not being reset when necklace is destroyed -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-07-05-1.4.6-Release/index.html b/blog/show/2018-07-05-1.4.6-Release/index.html index d4b454b516..ba53f1abe3 100644 --- a/blog/show/2018-07-05-1.4.6-Release/index.html +++ b/blog/show/2018-07-05-1.4.6-Release/index.html @@ -1,4 +1,4 @@ -1.4.6 Release - RuneLite

A lightbox solver plugin was added which tells you the pattern to solve lightboxes after +1.4.6 Release - RuneLite

A lightbox solver plugin was added which tells you the pattern to solve lightboxes after observing a few of the switches. Contributed by @Adam-.

lightboxsolver

A helper for Varrock Museum Quiz was added as well that highlights correct answer to @@ -130,4 +130,4 @@

New commits

config panel: keep search bar at the top while scrolling Add back and toggle buttons at the top of plugin configuration pages Replace fields in ConfigGroup with a single `value` field -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-07-12-1.4.7-Release/index.html b/blog/show/2018-07-12-1.4.7-Release/index.html index d732cb7452..2c3c8ca182 100644 --- a/blog/show/2018-07-12-1.4.7-Release/index.html +++ b/blog/show/2018-07-12-1.4.7-Release/index.html @@ -1,4 +1,4 @@ -1.4.7 Release - RuneLite

A kill count command was added which can share your kill count with other +1.4.7 Release - RuneLite

A kill count command was added which can share your kill count with other players who are also using RuneLite. The client must first observe you getting a kill count message to record the kill count. It can not read the kill counts off of the boss log in game yet, but maybe that will come soon.

@@ -76,4 +76,4 @@

New commits

Add debuff/buff change indicators Add support for preserving boost indicators -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-07-19-1.4.8-Release/index.html b/blog/show/2018-07-19-1.4.8-Release/index.html index e3ddda7c60..b621f0adaf 100644 --- a/blog/show/2018-07-19-1.4.8-Release/index.html +++ b/blog/show/2018-07-19-1.4.8-Release/index.html @@ -1,4 +1,4 @@ -1.4.8 Release - RuneLite

You can now filter through the Fairy Ring travel log while having the configure interface open. (Contributed by @Abextm)

+1.4.8 Release - RuneLite

You can now filter through the Fairy Ring travel log while having the configure interface open. (Contributed by @Abextm)

fairy-ring-filter

The XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck)

xp-tracker-pause

@@ -103,4 +103,4 @@

New commits

forsco (1): Add mythical cape and teak kitchen table to skill calc (#4341) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-07-26-1.4.9-Release/index.html b/blog/show/2018-07-26-1.4.9-Release/index.html index de65c22f03..357fe92e8e 100644 --- a/blog/show/2018-07-26-1.4.9-Release/index.html +++ b/blog/show/2018-07-26-1.4.9-Release/index.html @@ -1,4 +1,4 @@ -1.4.9 Release - RuneLite

The minimap and xp tracker can now be moved by holding alt:

+1.4.9 Release - RuneLite

The minimap and xp tracker can now be moved by holding alt:

movable-widgets

An achievement diary plugin was added which shows skill requirements on each task in the diaries:

@@ -95,4 +95,4 @@

New commits

aquivers (1): Add more chat !kc abbreviations (#4372) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-08-02-1.4.10-Release/index.html b/blog/show/2018-08-02-1.4.10-Release/index.html index fdc9d746a5..f28c91ee65 100644 --- a/blog/show/2018-08-02-1.4.10-Release/index.html +++ b/blog/show/2018-08-02-1.4.10-Release/index.html @@ -1,4 +1,4 @@ -1.4.10 Release - RuneLite

A loot tracker plugin has been added which will be able to track your loot from:

+1.4.10 Release - RuneLite

A loot tracker plugin has been added which will be able to track your loot from:

  • Monsters
  • Bosses (like Vorkath and Zulrah)
  • @@ -151,4 +151,4 @@

    New commits

    Add support for crafting leather idle notification (#4600) Remove comment regarding crafting leather (#4601) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-08-09-1.4.11-Release/index.html b/blog/show/2018-08-09-1.4.11-Release/index.html index 212d5e994b..443098a4de 100644 --- a/blog/show/2018-08-09-1.4.11-Release/index.html +++ b/blog/show/2018-08-09-1.4.11-Release/index.html @@ -1,4 +1,4 @@ -1.4.11 Release - RuneLite

The farming plugin has been renamed to the timer plugin and now includes timers, +1.4.11 Release - RuneLite

The farming plugin has been renamed to the timer plugin and now includes timers, stopwatches, and birdhouse timers. Thanks to @takuyakanbr for contributing this awesome feature!

@@ -102,4 +102,4 @@

New commits

time tracking: add clock panel time tracking: add overview tab -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-08-16-1.4.12-Release/index.html b/blog/show/2018-08-16-1.4.12-Release/index.html index 89bc6d407c..52d87e3ddd 100644 --- a/blog/show/2018-08-16-1.4.12-Release/index.html +++ b/blog/show/2018-08-16-1.4.12-Release/index.html @@ -1,4 +1,4 @@ -1.4.12 Release - RuneLite

A world hopper plugin has been added to ease hopping. You can use the key +1.4.12 Release - RuneLite

A world hopper plugin has been added to ease hopping. You can use the key combination ctrl+shift+left/right, or right click a friend or clanmates name in game and click Hop-to. There is also a plugin panel with the worlds listed which can be double clicked.

@@ -88,4 +88,4 @@

New commits

time tracking: add empty case to overview tab time tracking: fix detection of state for seaweed patches -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-08-23-1.4.13-Release/index.html b/blog/show/2018-08-23-1.4.13-Release/index.html index 313c046cba..08e103bb84 100644 --- a/blog/show/2018-08-23-1.4.13-Release/index.html +++ b/blog/show/2018-08-23-1.4.13-Release/index.html @@ -1,4 +1,4 @@ -1.4.13 & 1.4.14 Release - RuneLite

Minimap icons have been added for wilderness obelisk teleports and achievement +1.4.13 & 1.4.14 Release - RuneLite

Minimap icons have been added for wilderness obelisk teleports and achievement diary set item teleports. Thanks to @raiyni for contributing these icons.

ardougne cloak teleport icon @@ -105,4 +105,4 @@

New commits

trimbe (1): wasd plugin: use clientscript to determine what input to block -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-08-30-1.4.15-Release/index.html b/blog/show/2018-08-30-1.4.15-Release/index.html index 940382b058..2b22685aaf 100644 --- a/blog/show/2018-08-30-1.4.15-Release/index.html +++ b/blog/show/2018-08-30-1.4.15-Release/index.html @@ -1,4 +1,4 @@ -1.4.15 Release - RuneLite

Run energy plugin was added thanks to @seandewar. This plugin will show tooltip with +1.4.15 Release - RuneLite

Run energy plugin was added thanks to @seandewar. This plugin will show tooltip with your current weight, how much run time you have remaining and how much time it will take until your run energy fully regens. Also it has optional setting for displaying remaining run seconds instead of run percentage in the run energy bar.

@@ -94,4 +94,4 @@

New commits

Remove dupe PVP_HR entry in world hopper Fix setting of barrows kc from chat -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-09-06-1.4.16-Release/index.html b/blog/show/2018-09-06-1.4.16-Release/index.html index 4501340a38..e231c0f818 100644 --- a/blog/show/2018-09-06-1.4.16-Release/index.html +++ b/blog/show/2018-09-06-1.4.16-Release/index.html @@ -1,4 +1,4 @@ -1.4.16 Release - RuneLite

RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like +1.4.16 Release - RuneLite

RuneScape widgets are now layoutable, meaning they can be anchored to the overlay hotspots like Runelite overlays. Thanks to @Deathbeam for this feature!

layoutable-runescape-widgets

A top-center snap point has been added, and the XP Globes plugin has been set to use it by default, @@ -103,4 +103,4 @@

New commits

expose text shadowed Make pest control widgets layoutable -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-09-13-1.4.17-Release/index.html b/blog/show/2018-09-13-1.4.17-Release/index.html index 8d6d7d57ce..01c24f7d86 100644 --- a/blog/show/2018-09-13-1.4.17-Release/index.html +++ b/blog/show/2018-09-13-1.4.17-Release/index.html @@ -1,4 +1,4 @@ -1.4.17 Release - RuneLite

The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click +1.4.17 Release - RuneLite

The Loot tracker plugin now has a setting to group loot by NPC/event. In addition, a right-click menu has been added to view details of a specific NPC's loots. Thanks to @psikoi for this feature!

grouped-loot-tracker

@@ -117,4 +117,4 @@

New commits

oplosthee (1): Add Weiss herb patch to the farming tracker -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-09-18-Worldhopper-disabled/index.html b/blog/show/2018-09-18-Worldhopper-disabled/index.html index 319db232bf..d0515ec6fb 100644 --- a/blog/show/2018-09-18-Worldhopper-disabled/index.html +++ b/blog/show/2018-09-18-Worldhopper-disabled/index.html @@ -1,6 +1,6 @@ -World Hopper plugin disabled - RuneLite

Jagex has requested we remove the world hopper plugin because it is getting +World Hopper plugin disabled - RuneLite

Jagex has requested we remove the world hopper plugin because it is getting flagged by their bot detection. It has been removed until we can sort out how to fix it with them. I do not know why our world hopper is being flagged and the world hopper on other clients is not.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-09-20-1.4.18-Release/index.html b/blog/show/2018-09-20-1.4.18-Release/index.html index 032f9d4baa..b12423180f 100644 --- a/blog/show/2018-09-20-1.4.18-Release/index.html +++ b/blog/show/2018-09-20-1.4.18-Release/index.html @@ -1,4 +1,4 @@ -1.4.18 Release - RuneLite

A Wintertodt plugin was added which shows your current activity and can be +1.4.18 Release - RuneLite

A Wintertodt plugin was added which shows your current activity and can be configured to notify you when you become idle. It also tracks points in your inventory from logs or kindling and displays it. Thanks to work from @jbfleischman for initially getting this @@ -90,4 +90,4 @@

New commits

rbbi (1): Change skill calc checkboxes to radio buttons (#4373) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-09-27-1.4.19-Release/index.html b/blog/show/2018-09-27-1.4.19-Release/index.html index f63a6acf2a..e857d087c0 100644 --- a/blog/show/2018-09-27-1.4.19-Release/index.html +++ b/blog/show/2018-09-27-1.4.19-Release/index.html @@ -1,4 +1,4 @@ -1.4.19 Release - RuneLite

Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x +1.4.19 Release - RuneLite

Grand Exchange buy limits were added to the Grand Exchange plugin, which will show Buy limit: x in GE window for items with known buy limits. Thanks to @Asymons for this contribution.

gebuylimits

A timer for Barbarian Assault waves and full game was added to the Barbarian Assault plugin that will @@ -116,4 +116,4 @@

New commits

trimbe (1): Fix clipping in fixed mode for edge snapping map points -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-10-04-1.4.20-Release/index.html b/blog/show/2018-10-04-1.4.20-Release/index.html index 87b85527cc..dde8403e6b 100644 --- a/blog/show/2018-10-04-1.4.20-Release/index.html +++ b/blog/show/2018-10-04-1.4.20-Release/index.html @@ -1,4 +1,4 @@ -1.4.20 Release - RuneLite

The Tile Indicators plugin can now show your currently hovered tile. Thanks to +1.4.20 Release - RuneLite

The Tile Indicators plugin can now show your currently hovered tile. Thanks to @Deathbeam for this feature.

Currently-hovered tile indicator

The Camera Zoom plugin can now require the Control key be held down to enable zooming via the scroll @@ -127,4 +127,4 @@

New commits

Adjust tab icon offsets for 2010 interface style Chat Commands: Add hints to config description (#5747) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-10-11-1.4.21-Release/index.html b/blog/show/2018-10-11-1.4.21-Release/index.html index 0a00e47e47..ba25a6b4a6 100644 --- a/blog/show/2018-10-11-1.4.21-Release/index.html +++ b/blog/show/2018-10-11-1.4.21-Release/index.html @@ -1,4 +1,4 @@ -1.4.21 Release - RuneLite

Bank tag tabs

+1.4.21 Release - RuneLite

Bank tag tabs

Thanks to the tireless work of @raiyni, and supporting work from @deathbeam and @Abextm, we are proud to offer a new bank tag experience in bank tag tabs!

@@ -175,4 +175,4 @@

New commits

trimbe (1): Kingdom Plugin: fix throne completion state check (#5874) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-10-18-1.4.22-Release/index.html b/blog/show/2018-10-18-1.4.22-Release/index.html index 8c18c2baa5..a1e2b1fb48 100644 --- a/blog/show/2018-10-18-1.4.22-Release/index.html +++ b/blog/show/2018-10-18-1.4.22-Release/index.html @@ -1,4 +1,4 @@ -1.4.22 Release - RuneLite

Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks +1.4.22 Release - RuneLite

Recent Clan chats are now listed in the clan chat tab when not already in a clan chat room. Thanks to @raiyni for this feature.

Recent clan chats listing in the clan chat tab

An enhancement has been added to the bank tags feature to tag items in your inventory or equipment @@ -133,4 +133,4 @@

New commits

trimbe (1): Fix lava maze dungeon cryptic clue -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-10-25-1.4.23-Release/index.html b/blog/show/2018-10-25-1.4.23-Release/index.html index 09cd96aa17..970cd903c1 100644 --- a/blog/show/2018-10-25-1.4.23-Release/index.html +++ b/blog/show/2018-10-25-1.4.23-Release/index.html @@ -1,4 +1,4 @@ -1.4.23 Release - RuneLite

New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel. +1.4.23 Release - RuneLite

New Twitch plugin was added that allows you to connect your chat with some specific Twitch channel. All messages received from this channel are sent in clan chat type with prefix [Twitch] and you can reply to messages by prefixing your message with //.

twitch

@@ -107,4 +107,4 @@

New commits

WooxSolo (1): Rename getUnknownSoundValues2 -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-01-1.4.24-Release/index.html b/blog/show/2018-11-01-1.4.24-Release/index.html index 9fef8c4605..8e8b879971 100644 --- a/blog/show/2018-11-01-1.4.24-Release/index.html +++ b/blog/show/2018-11-01-1.4.24-Release/index.html @@ -1,4 +1,4 @@ -1.4.24 Release - RuneLite

The Stretched Mode plugin (formerly +1.4.24 Release - RuneLite

The Stretched Mode plugin (formerly known as the Stretched Fixed Mode plugin) now supports stretching the game in resizable mode. Thanks to @devLotto for adding this feature!

@@ -96,4 +96,4 @@

New commits

Correctly highlight Juna for cryptic clue step Add support for configuring shift-click for variation items -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-08-1.4.25-Release/index.html b/blog/show/2018-11-08-1.4.25-Release/index.html index 8269940a8e..7452c294f5 100644 --- a/blog/show/2018-11-08-1.4.25-Release/index.html +++ b/blog/show/2018-11-08-1.4.25-Release/index.html @@ -1,4 +1,4 @@ -1.4.25 Release - RuneLite

The Bank Tags plugin now utilizes a new +1.4.25 Release - RuneLite

The Bank Tags plugin now utilizes a new custom input box which includes a moveable typing cursor, multiple character selection, and mouse interaction. Additionally, as a result, editing tags will no longer clear any open bank searches. Huge thanks to @Abextm for writing the framework of the new chatbox, @@ -102,4 +102,4 @@

New commits

Remove viewportOffset calculation from demonic gorillas Remove viewportOffset from get2DGeometry -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-15-1.4.26-Release/index.html b/blog/show/2018-11-15-1.4.26-Release/index.html index 1971a02040..d541fe114d 100644 --- a/blog/show/2018-11-15-1.4.26-Release/index.html +++ b/blog/show/2018-11-15-1.4.26-Release/index.html @@ -1,4 +1,4 @@ -1.4.26 Release - RuneLite

A Status Bars plugin has been added, which +1.4.26 Release - RuneLite

A Status Bars plugin has been added, which will display hitpoints and prayer information on the columns of the inventory, or along the left side of the inventory panel. Big thanks to @Malfuryent for their tireless work maintainng this plugin for months preparing for its addition to the client.

@@ -94,4 +94,4 @@

New commits

brodan (1): Make boost overlay to change to yellow at threshold -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-16-1.5.0-Release/index.html b/blog/show/2018-11-16-1.5.0-Release/index.html index 07743bbc7d..33698aa198 100644 --- a/blog/show/2018-11-16-1.5.0-Release/index.html +++ b/blog/show/2018-11-16-1.5.0-Release/index.html @@ -1,4 +1,4 @@ -1.5.0 Release - RuneLite

The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved +1.5.0 Release - RuneLite

The RuneLite GPU renderer is live! When enabled, the GPU plugin gives improved framerate, particularly on larger screens, and increases the distance you can see in game. Check out this tweet for some neat pictures.

The GPU plugin requires Windows (7, 8, or 10), a GPU with support for OpenGL @@ -15,4 +15,4 @@ Note that currently the GPU plugin does not work with the stretched mode plugin.

Enjoy!

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-22-1.5.1-Release/index.html b/blog/show/2018-11-22-1.5.1-Release/index.html index 6658e8c696..ed9d7d1196 100644 --- a/blog/show/2018-11-22-1.5.1-Release/index.html +++ b/blog/show/2018-11-22-1.5.1-Release/index.html @@ -1,4 +1,4 @@ -1.5.1 Release - RuneLite

Thanks to the hard work of @whitehooder and @deathbeam +1.5.1 Release - RuneLite

Thanks to the hard work of @whitehooder and @deathbeam the GPU plugin now also supports Linux machines. The requirements are still the same, mesa with at least GL 4.3+ support is required. Here is small table of Mesa 17.2.0 GL support. @@ -100,4 +100,4 @@

New commits

forsco (1): Fix indentation of npc_health json (#6616) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-11-29-1.5.2-Release/index.html b/blog/show/2018-11-29-1.5.2-Release/index.html index 64db92dfd8..66ca8ba25d 100644 --- a/blog/show/2018-11-29-1.5.2-Release/index.html +++ b/blog/show/2018-11-29-1.5.2-Release/index.html @@ -1,4 +1,4 @@ -1.5.2 Release - RuneLite

Stretched mode combined with the GPU plugin will now scale the UI independently +1.5.2 Release - RuneLite

Stretched mode combined with the GPU plugin will now scale the UI independently of the rest of the game (the game is left unscaled). Thanks to @dbolya for this great contribution.

stretched-rezizable @@ -113,4 +113,4 @@

New commits

trimbe (1): world map plugin: optimize clipping of world map points -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-12-06-1.5.3-Release/index.html b/blog/show/2018-12-06-1.5.3-Release/index.html index 36e3f38825..3922810313 100644 --- a/blog/show/2018-12-06-1.5.3-Release/index.html +++ b/blog/show/2018-12-06-1.5.3-Release/index.html @@ -1,4 +1,4 @@ -1.5.3 Release - RuneLite

The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can +1.5.3 Release - RuneLite

The GPU plugin now supports anti-aliasing, which reduces jagged lines. It can be configured in the GPU plugin settings. Thanks to @devLotto for implementing this feature!

GPU anti-aliasing

@@ -99,4 +99,4 @@

New commits

trimbe (1): loot tracker: validate boxes after rebuilding -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-12-13-1.5.4-Release/index.html b/blog/show/2018-12-13-1.5.4-Release/index.html index 2d8d2bcc01..e410d81b02 100644 --- a/blog/show/2018-12-13-1.5.4-Release/index.html +++ b/blog/show/2018-12-13-1.5.4-Release/index.html @@ -1,4 +1,4 @@ -1.5.4 Release - RuneLite

The world switcher plugin now shows the ping to each game world.

+1.5.4 Release - RuneLite

The world switcher plugin now shows the ping to each game world.

ping

The item stats plugin will now show equipment stats when hovering over items.

itemstats

@@ -97,4 +97,4 @@

New commits

forsco (1): Fix bounty hunter widget name (#6893) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2018-12-20-1.5.5-Release/index.html b/blog/show/2018-12-20-1.5.5-Release/index.html index 85410d9a36..41e67e43a8 100644 --- a/blog/show/2018-12-20-1.5.5-Release/index.html +++ b/blog/show/2018-12-20-1.5.5-Release/index.html @@ -1,4 +1,4 @@ -1.5.5 Release - RuneLite

A chat timestamp plugin was added which adds a timestamp to messages.

+1.5.5 Release - RuneLite

A chat timestamp plugin was added which adds a timestamp to messages.

timestamp

A cooking plugin has been added which tracks success and burn rates.

timestamp

@@ -79,4 +79,4 @@

New commits

trimbe (1): Prevent overlays rendering if fullscreen map is open -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-01-03-1.5.6-Release/index.html b/blog/show/2019-01-03-1.5.6-Release/index.html index ed2c09555d..eb6be945ac 100644 --- a/blog/show/2019-01-03-1.5.6-Release/index.html +++ b/blog/show/2019-01-03-1.5.6-Release/index.html @@ -1,4 +1,4 @@ -1.5.6 Release - RuneLite

The loot tracker now remembers loot between client sessions if you are logged in +1.5.6 Release - RuneLite

The loot tracker now remembers loot between client sessions if you are logged in with a RuneLite account.

loottracker

An object marker plugin which lets you mark most game objects by holding shift @@ -103,4 +103,4 @@

New commits

tanlines (1): Add barbarian mix timers to Timers plugin (#7088) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-01-10-1.5.7-Release/index.html b/blog/show/2019-01-10-1.5.7-Release/index.html index f87c84fe64..4ce4cbd8a6 100644 --- a/blog/show/2019-01-10-1.5.7-Release/index.html +++ b/blog/show/2019-01-10-1.5.7-Release/index.html @@ -1,4 +1,4 @@ -1.5.7 Release - RuneLite

A skybox plugin has been added to draw colors beyond the edge of the game's rendered tiles based on +1.5.7 Release - RuneLite

A skybox plugin has been added to draw colors beyond the edge of the game's rendered tiles based on the player's location. Thanks to @Abextm, @raiyni, and @psikoi for this feature!

Skybox

@@ -98,4 +98,4 @@

New commits

bank value: use ItemContainer instead of WidgetItemQuery bank value: add script callback for setting title -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-01-17-1.5.8-Release/index.html b/blog/show/2019-01-17-1.5.8-Release/index.html index b865e172b6..b928438266 100644 --- a/blog/show/2019-01-17-1.5.8-Release/index.html +++ b/blog/show/2019-01-17-1.5.8-Release/index.html @@ -1,4 +1,4 @@ -1.5.8 Release - RuneLite

The ground items plugin now has an option to combine identical ground item menu +1.5.8 Release - RuneLite

The ground items plugin now has an option to combine identical ground item menu entries.

menucollapse

The timers plugin has been updated with all of the new farming patches in the @@ -134,4 +134,4 @@

New commits

wonnetz (1): Add Wyrm Bones, Drake Bones, and Hydra Bones to SkillCalc plugin (#7274) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-01-24-1.5.9-Release/index.html b/blog/show/2019-01-24-1.5.9-Release/index.html index ed628618b2..653fab8c34 100644 --- a/blog/show/2019-01-24-1.5.9-Release/index.html +++ b/blog/show/2019-01-24-1.5.9-Release/index.html @@ -1,4 +1,4 @@ -1.5.9 Release - RuneLite

The Slayer plugin now offers a !task command, +1.5.9 Release - RuneLite

The Slayer plugin now offers a !task command, which displays your current task, starting amount and, if applicable, task location.

Slayer plugin !task command

Plugin overlays now support adding right-click menus. Currently, you will only see a "Configure" @@ -114,4 +114,4 @@

New commits

trimbe (1): chat commands: rebuild chatbox input after using clear shortcuts -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-01-31-1.5.10-Release/index.html b/blog/show/2019-01-31-1.5.10-Release/index.html index 21fdcd63fa..a2e59c16dc 100644 --- a/blog/show/2019-01-31-1.5.10-Release/index.html +++ b/blog/show/2019-01-31-1.5.10-Release/index.html @@ -1,4 +1,4 @@ -1.5.10 Release - RuneLite

We have written a new color selector from scratch to offer a long-time requested feature for color +1.5.10 Release - RuneLite

We have written a new color selector from scratch to offer a long-time requested feature for color picking: adjustable transparency values! This color selector now offers that functionality for the Cannon, Ground Marker, Object @@ -131,4 +131,4 @@

New commits

Use better task icons for revs and ents (#7562) Swap pick with pick-lots in CoX (#7563) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-02-07-1.5.11-Release/index.html b/blog/show/2019-02-07-1.5.11-Release/index.html index 6f7e2d3d70..519f81b524 100644 --- a/blog/show/2019-02-07-1.5.11-Release/index.html +++ b/blog/show/2019-02-07-1.5.11-Release/index.html @@ -1,4 +1,4 @@ -1.5.11 Release - RuneLite

This release adds Discord party integration with the new party plugin. Click +1.5.11 Release - RuneLite

This release adds Discord party integration with the new party plugin. Click "Ask to join" on a friend's profile to request to join a party:

discord-join

The party plugin shows an overlay with party members' hitpoints and prayer:

@@ -106,4 +106,4 @@

New commits

jbaker5011 (1): Use loot received event for pvp kill screenshots (#6920) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-02-14-1.5.12-Release/index.html b/blog/show/2019-02-14-1.5.12-Release/index.html index a05a2d0d10..7a76703b9c 100644 --- a/blog/show/2019-02-14-1.5.12-Release/index.html +++ b/blog/show/2019-02-14-1.5.12-Release/index.html @@ -1,4 +1,4 @@ -1.5.12 Release - RuneLite

A wiki plugin was added which allows quickly looking up items, npcs, quests, and +1.5.12 Release - RuneLite

A wiki plugin was added which allows quickly looking up items, npcs, quests, and more on the OldSchool RuneScape Wiki. It also has a built in search feature which lets you quickly search for articles using the in game chatbox.

@@ -115,4 +115,4 @@

New commits

syngfaa (1): Fix SOUL_JOURNEY typo in Kourend Library plugin (#7733) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-02-16-Launcher-1.6.2-Release/index.html b/blog/show/2019-02-16-Launcher-1.6.2-Release/index.html index 54d4a94d57..1ddc9c87c9 100644 --- a/blog/show/2019-02-16-Launcher-1.6.2-Release/index.html +++ b/blog/show/2019-02-16-Launcher-1.6.2-Release/index.html @@ -1,4 +1,4 @@ -Launcher 1.6.2 Release - RuneLite

Launcher 1.6.2 was released yesterday which now includes a +Launcher 1.6.2 Release - RuneLite

Launcher 1.6.2 was released yesterday which now includes a 64bit Linux AppImage for easy installation on Linux. The OSX download was also updated to fix installations on multi-user systems and to not require high performance graphics @@ -7,4 +7,4 @@ also clean up old client releases on startup.

The Windows releases have not changed and remains on 1.6.0

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-02-21-1.5.13-Release/index.html b/blog/show/2019-02-21-1.5.13-Release/index.html index 9d3bbc676f..936fe9a79c 100644 --- a/blog/show/2019-02-21-1.5.13-Release/index.html +++ b/blog/show/2019-02-21-1.5.13-Release/index.html @@ -1,4 +1,4 @@ -1.5.13 Release - RuneLite

The Item Charges plugin now has an option +1.5.13 Release - RuneLite

The Item Charges plugin now has an option to display infoboxes for equipped charged items. Thanks to @Hydrox6 for adding this feature!

Equipped teleport item infoboxes

@@ -127,4 +127,4 @@

New commits

theGeekPirate (1): Correct Falador teleport XP in Skill Calc (#7943) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-02-28-1.5.14-Release/index.html b/blog/show/2019-02-28-1.5.14-Release/index.html index 460711ad9b..0b6e74087d 100644 --- a/blog/show/2019-02-28-1.5.14-Release/index.html +++ b/blog/show/2019-02-28-1.5.14-Release/index.html @@ -1,4 +1,4 @@ -1.5.14 Release - RuneLite

This weeks update is focused on improvements to the website. You can now login +1.5.14 Release - RuneLite

This weeks update is focused on improvements to the website. You can now login on https://runelite.net and view details about your RuneLite account which includes current slayer task, a boss log, the loot tracker, and a new Grand Exchange history tracker which tracks completed trades @@ -113,4 +113,4 @@

New commits

chestnut1693 (1): Add home tag to Default World plugin -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-03-07-1.5.15-Release/index.html b/blog/show/2019-03-07-1.5.15-Release/index.html index 0dcf86e899..ebad943db1 100644 --- a/blog/show/2019-03-07-1.5.15-Release/index.html +++ b/blog/show/2019-03-07-1.5.15-Release/index.html @@ -1,4 +1,4 @@ -1.5.15 Release - RuneLite

A music notification plugin was added which sends you a message whenever a new +1.5.15 Release - RuneLite

A music notification plugin was added which sends you a message whenever a new piece of music is unlocked.

music

The clan plugin now has an option to show when players join or leave clan chats. @@ -109,4 +109,4 @@

New commits

clanchat: respect rank icon config for join/leave messages clanchat: remove activity in buffer in ClanMemberLeft as well -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-03-14-1.5.16-Release/index.html b/blog/show/2019-03-14-1.5.16-Release/index.html index 7dd7f80b80..e397b64a8b 100644 --- a/blog/show/2019-03-14-1.5.16-Release/index.html +++ b/blog/show/2019-03-14-1.5.16-Release/index.html @@ -1,4 +1,4 @@ -1.5.16 Release - RuneLite

The item stats plugin will now show the stats of gear when selected in a buy +1.5.16 Release - RuneLite

The item stats plugin will now show the stats of gear when selected in a buy offer on the Grand Exchange.

ge

The ground markers plugin now supports having multiple ground markers of @@ -59,4 +59,4 @@

New commits

item stats: use GameTick to determine when GE is closed item stats: use ClientThread where necessary for resetting -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-03-21-1.5.17-Release/index.html b/blog/show/2019-03-21-1.5.17-Release/index.html index 13050dd80b..fd1b9f2b33 100644 --- a/blog/show/2019-03-21-1.5.17-Release/index.html +++ b/blog/show/2019-03-21-1.5.17-Release/index.html @@ -1,4 +1,4 @@ -1.5.17 Release - RuneLite

A NPC Aggression Timer plugin was added, which shows how long until NPCs near +1.5.17 Release - RuneLite

A NPC Aggression Timer plugin was added, which shows how long until NPCs near you will become unaggressive, and how far away you have to walk before they will become aggressive once again.

aggro

@@ -104,4 +104,4 @@

New commits

whartd (1): slayer plugin: fix task name for Crazy Archaeologists -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-03-28-1.5.18-Release/index.html b/blog/show/2019-03-28-1.5.18-Release/index.html index 4394229d7e..b50912254e 100644 --- a/blog/show/2019-03-28-1.5.18-Release/index.html +++ b/blog/show/2019-03-28-1.5.18-Release/index.html @@ -1,4 +1,4 @@ -1.5.18 Release - RuneLite

A Quest List plugin has been added, which adds a button to toggle visibility of completed quests, +1.5.18 Release - RuneLite

A Quest List plugin has been added, which adds a button to toggle visibility of completed quests, and adds a search button to limit the shown quests in the list. Thanks to @spudjb for adding this feature!

Completed quest toggle button @@ -70,4 +70,4 @@

New commits

Remove incorrect farming guild location (#8250) Clue Scroll: Fixe Varrock East Bank Cryptic Clue (#8241) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-04-11-1.5.19-Release/index.html b/blog/show/2019-04-11-1.5.19-Release/index.html index 9a9a2118d3..aed7b770b4 100644 --- a/blog/show/2019-04-11-1.5.19-Release/index.html +++ b/blog/show/2019-04-11-1.5.19-Release/index.html @@ -1,4 +1,4 @@ -1.5.19 Release - RuneLite

The Interface Styles plugin now +1.5.19 Release - RuneLite

The Interface Styles plugin now supports an option to display HD health bars from 2009-era RuneScape. This option can be enabled separately from the rest of the interface styles, and a "Default" style option has been added so players can use the vanilla interface and still use HD health bars. Big thanks to @@ -115,4 +115,4 @@

New commits

clue scroll plugin: add spade warning to cryptic clues skillcalc: update soul & blood rune xp -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-04-18-1.5.20-Release/index.html b/blog/show/2019-04-18-1.5.20-Release/index.html index bc80e13988..dae094750a 100644 --- a/blog/show/2019-04-18-1.5.20-Release/index.html +++ b/blog/show/2019-04-18-1.5.20-Release/index.html @@ -1,4 +1,4 @@ -1.5.20 Release - RuneLite

This release adds many of the new clues released last week, with only beginner +1.5.20 Release - RuneLite

This release adds many of the new clues released last week, with only beginner hot/cold and beginner map clues not done yet. Thanks to everyone working to get those added.

The hiscore plugin was updated for beginner clues:

@@ -80,4 +80,4 @@

New commits

ksergio39 (1): world map plugin: add tooltips for transportation icon -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-04-25-1.5.21-Release/index.html b/blog/show/2019-04-25-1.5.21-Release/index.html index 245c8dd02d..1b048e443d 100644 --- a/blog/show/2019-04-25-1.5.21-Release/index.html +++ b/blog/show/2019-04-25-1.5.21-Release/index.html @@ -1,4 +1,4 @@ -1.5.21 Release - RuneLite

The interface styles plugin now has a "High Detail menu" option which changes +1.5.21 Release - RuneLite

The interface styles plugin now has a "High Detail menu" option which changes the game menu to look similar to how it did after the release of RSHD:

menu

An ammo plugin was added which adds your current ammo and count as an infobox:

@@ -79,4 +79,4 @@

New commits

add lv32 wildy hot cold clue location reword lv27 wildy hot cold clue location -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-05-03-1.5.22-Release/index.html b/blog/show/2019-05-03-1.5.22-Release/index.html index 03e343dbf8..35c48a6198 100644 --- a/blog/show/2019-05-03-1.5.22-Release/index.html +++ b/blog/show/2019-05-03-1.5.22-Release/index.html @@ -1,4 +1,4 @@ -1.5.22 Release - RuneLite

A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when +1.5.22 Release - RuneLite

A Custom Cursor plugin has been added which, when enabled, allows you to change your cursor when hovering the client to one of a number of iconic RuneScape cursors, including the RS3 gold and silver cursors, a trout, and the iconic dragon scimitar. Thanks to @Kruithne and @Trevor159 for making @@ -80,4 +80,4 @@

New commits

zaydsalah (1): Add Herbiboar support to the Loottracker (#8663) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-05-16-1.5.23-Release/index.html b/blog/show/2019-05-16-1.5.23-Release/index.html index 88efff26d1..f5ee0e1a2c 100644 --- a/blog/show/2019-05-16-1.5.23-Release/index.html +++ b/blog/show/2019-05-16-1.5.23-Release/index.html @@ -1,4 +1,4 @@ -1.5.23 Release - RuneLite

The xp tracker plugin can now add the xp tracker panels to the game canvas, +1.5.23 Release - RuneLite

The xp tracker plugin can now add the xp tracker panels to the game canvas, allowing you move them around like any other overlay:

xptracker

An emoji plugin was added, which when enabled, replaces common and not-so-common @@ -117,4 +117,4 @@

New commits

widget item overlay: add seed vault inventory Remove gray pixel from Dragon Scimitar cursor (#8725) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-05-30-1.5.25-Release/index.html b/blog/show/2019-05-30-1.5.25-Release/index.html index 0001bd0ebb..c35e28a5ea 100644 --- a/blog/show/2019-05-30-1.5.25-Release/index.html +++ b/blog/show/2019-05-30-1.5.25-Release/index.html @@ -1,4 +1,4 @@ -1.5.25 Release - RuneLite

The Clue Scroll plugin will now display +1.5.25 Release - RuneLite

The Clue Scroll plugin will now display whether you have built the STASH unit for emote clues and will mark the tile of nearby STASH units when travelling to complete your clue. Thanks to @hex-agon for this contribution!

@@ -96,4 +96,4 @@

New commits

xDemoN (1): Fix amulet of fury spelling error in ItemMapping.java (#8885) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-06-06-1.5.26-Release/index.html b/blog/show/2019-06-06-1.5.26-Release/index.html index ab04de2fce..d7e676dd67 100644 --- a/blog/show/2019-06-06-1.5.26-Release/index.html +++ b/blog/show/2019-06-06-1.5.26-Release/index.html @@ -1,4 +1,4 @@ -1.5.26 Release - RuneLite

A mining plugin has been added which shows respawn times for rocks.

+1.5.26 Release - RuneLite

A mining plugin has been added which shows respawn times for rocks.

mining

An inventory grid plugin was added which will overlay a grid of each item slot in the inventory when an item is dragged, aiding with rearranging inventory @@ -65,4 +65,4 @@

New commits

Fix numulite buy limit in GE plugin (#8962) Cluescrolls: Swap STASH Units for Exam Centre Emote Clues (#8963) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-06-20-1.5.27-Release/index.html b/blog/show/2019-06-20-1.5.27-Release/index.html index cc0daf9ed4..f207f29ba2 100644 --- a/blog/show/2019-06-20-1.5.27-Release/index.html +++ b/blog/show/2019-06-20-1.5.27-Release/index.html @@ -1,4 +1,4 @@ -1.5.27 Release - RuneLite

You've asked for +1.5.27 Release - RuneLite

You've asked for it, and we're here to deliver! We have added an Items Kept on Death plugin which @@ -153,4 +153,4 @@

New commits

mining plugin: add sandstone and granite itemprices: fix showing high alch profit with show ha value disabled -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-07-04-1.5.28-Release/index.html b/blog/show/2019-07-04-1.5.28-Release/index.html index f599c36a4d..fb65998366 100644 --- a/blog/show/2019-07-04-1.5.28-Release/index.html +++ b/blog/show/2019-07-04-1.5.28-Release/index.html @@ -1,4 +1,4 @@ -1.5.28 Release - RuneLite

The chat commands plugin now includes the !gc and !duels commands which +1.5.28 Release - RuneLite

The chat commands plugin now includes the !gc and !duels commands which shows your BA high gamble count and duel arena wins and losses with streak, respectively. You must first win or lose a duel for the client to begin tracking the counts after the update, however the gamble count will work immediately.

@@ -141,4 +141,4 @@

New commits

xdesr (1): Fix typos in Falo the Bard clues (comma, favourite) (#9185) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-07-18-1.5.29-Release/index.html b/blog/show/2019-07-18-1.5.29-Release/index.html index d47417a643..a2e7df6f84 100644 --- a/blog/show/2019-07-18-1.5.29-Release/index.html +++ b/blog/show/2019-07-18-1.5.29-Release/index.html @@ -1,4 +1,4 @@ -1.5.29 Release - RuneLite

The bank plugin will now total up the value of all of the seeds in the seed +1.5.29 Release - RuneLite

The bank plugin will now total up the value of all of the seeds in the seed vault

seedvault

The camera zoom plugin now has a setting to configure the scroll zoom speed, and @@ -139,4 +139,4 @@

New commits

rlw0014 (1): Add swap for ToB Quick-Enter to menu entry swapper (#9136) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-08-01-1.5.30-Release/index.html b/blog/show/2019-08-01-1.5.30-Release/index.html index c1657edad4..184a742c18 100644 --- a/blog/show/2019-08-01-1.5.30-Release/index.html +++ b/blog/show/2019-08-01-1.5.30-Release/index.html @@ -1,4 +1,4 @@ -1.5.30 Release - RuneLite

We have been diligently working off the SotE meta +1.5.30 Release - RuneLite

We have been diligently working off the SotE meta issue over the last week, as it touches a lot of the plugins and features. Much of it is done and included in this release:

@@ -232,4 +232,4 @@

New commits

xDemoN (1): clue scrolls: Use consistent label for "Location" (#9421) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-08-15-1.5.31-Release/index.html b/blog/show/2019-08-15-1.5.31-Release/index.html index b5dda3bea3..9f47cf68db 100644 --- a/blog/show/2019-08-15-1.5.31-Release/index.html +++ b/blog/show/2019-08-15-1.5.31-Release/index.html @@ -1,4 +1,4 @@ -1.5.31 Release - RuneLite

The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania

+1.5.31 Release - RuneLite

The loot tracker now has collapsible loot boxes, and can also track loot from the Kingdom of Miscellania

lootcollapse

The clue plugin now supports Sherlock challenge clues

challenge

@@ -172,4 +172,4 @@

New commits

xdesr (1): item stats: add divine potions -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-08-16-Launcher-Release-2.0.0/index.html b/blog/show/2019-08-16-Launcher-Release-2.0.0/index.html index 5da8585ada..416c37a18c 100644 --- a/blog/show/2019-08-16-Launcher-Release-2.0.0/index.html +++ b/blog/show/2019-08-16-Launcher-Release-2.0.0/index.html @@ -1,4 +1,4 @@ -Launcher 2.0 Release - RuneLite

The launcher has been updated to 2.0. This release bundles Java 11, and if you +Launcher 2.0 Release - RuneLite

The launcher has been updated to 2.0. This release bundles Java 11, and if you wish to run the jar directly, requires Java 11. It also includes a new loading splash screen with improved error handling if there is an error when launching the client.

@@ -10,4 +10,4 @@ anyway, so if it doesn't work try downloading the old launcher instead.

Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-08-29-1.5.32-Release/index.html b/blog/show/2019-08-29-1.5.32-Release/index.html index a20861c72f..093e2b0058 100644 --- a/blog/show/2019-08-29-1.5.32-Release/index.html +++ b/blog/show/2019-08-29-1.5.32-Release/index.html @@ -1,4 +1,4 @@ -1.5.32 Release - RuneLite

The Menu Entry Swapper plugin can +1.5.32 Release - RuneLite

The Menu Entry Swapper plugin can now swap the "Pickpocket" menu option with the "Talk-to" menu option for all NPCs, not just H.A.M members. (With the exception of NPCs who can be blackjacked)

The Low Detail plugin will now reload your @@ -113,4 +113,4 @@

New commits

agility: add missing ladder to prifddinas emote: change "stomp" to "stamp" -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-09-12-1.5.33-Release/index.html b/blog/show/2019-09-12-1.5.33-Release/index.html index d15ff0962b..4a81dbcac6 100644 --- a/blog/show/2019-09-12-1.5.33-Release/index.html +++ b/blog/show/2019-09-12-1.5.33-Release/index.html @@ -1,4 +1,4 @@ -1.5.33 Release - RuneLite

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

+1.5.33 Release - RuneLite

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

world_map_tele_jumping

The Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time

The Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas

@@ -52,4 +52,4 @@

New commits

worldmap: add on-click jumping for unambiguous single-target transports chat: fix private chat username recolouring, improve responsiveness to config settings -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-09-26-1.5.34-Release/index.html b/blog/show/2019-09-26-1.5.34-Release/index.html index d08232942d..97231b4b83 100644 --- a/blog/show/2019-09-26-1.5.34-Release/index.html +++ b/blog/show/2019-09-26-1.5.34-Release/index.html @@ -1,4 +1,4 @@ -1.5.34 Release - RuneLite

The Bank plugin now supports searching for items +1.5.34 Release - RuneLite

The Bank plugin now supports searching for items by value. Thanks to @raiyni for this feature.

Bank value search

The Music plugin now offers volume overrides for @@ -73,4 +73,4 @@

New commits

eric-weaver (1): menu entry swapper: add house advertisement board -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-10-02-1.5.35-Release/index.html b/blog/show/2019-10-02-1.5.35-Release/index.html index 180513ff82..bc7a1792ce 100644 --- a/blog/show/2019-10-02-1.5.35-Release/index.html +++ b/blog/show/2019-10-02-1.5.35-Release/index.html @@ -1,4 +1,4 @@ -1.5.35 Release - RuneLite

In accordance with Jagex's message about unofficial +1.5.35 Release - RuneLite

In accordance with Jagex's message about unofficial clients the demonic gorillas plugin has been removed.

More features may be removed in future releases, however I find the statement @@ -16,4 +16,4 @@

In other news, the object indicator plugin can now tag walls (such as MLM ore veins), and a couple clue texts and hints have been fixed.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-10-17-1.5.36-Release/index.html b/blog/show/2019-10-17-1.5.36-Release/index.html index 559faad757..12b932424c 100644 --- a/blog/show/2019-10-17-1.5.36-Release/index.html +++ b/blog/show/2019-10-17-1.5.36-Release/index.html @@ -1,4 +1,4 @@ -1.5.36 Release - RuneLite

The website has been given an all new dark look, with a redesigned home page. +1.5.36 Release - RuneLite

The website has been given an all new dark look, with a redesigned home page. Thanks to @psikoi and @gc for their work on this.

A random event plugin has been added which can notify you when a random event @@ -133,4 +133,4 @@

New commits

wwchak (1): fishing: Add missing fishing platform highlight (#9989) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-10-30-1.5.37-Release/index.html b/blog/show/2019-10-30-1.5.37-Release/index.html index 48b54b769c..05a6ed11ec 100644 --- a/blog/show/2019-10-30-1.5.37-Release/index.html +++ b/blog/show/2019-10-30-1.5.37-Release/index.html @@ -1,4 +1,4 @@ -1.5.37 Release - RuneLite

The music plugin now changes the volume sliders on the in-game sound interface +1.5.37 Release - RuneLite

The music plugin now changes the volume sliders on the in-game sound interface to slide:

sliders

The plugin additionally offers a new setting which will mute area sounds caused @@ -139,4 +139,4 @@

New commits

trimbe (1): tabinterface: remember search after clicking deposit-x -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-11-14-1.5.40-Release/index.html b/blog/show/2019-11-14-1.5.40-Release/index.html index c024f39511..7cfadc9a35 100644 --- a/blog/show/2019-11-14-1.5.40-Release/index.html +++ b/blog/show/2019-11-14-1.5.40-Release/index.html @@ -1,4 +1,4 @@ -1.5.40 Release - RuneLite

The Barbarian Assault plugin now allows the healer to show the health of its teammates:

+1.5.40 Release - RuneLite

The Barbarian Assault plugin now allows the healer to show the health of its teammates:

ba healthbars

The music plugin now additionally allows for configuring which area sounds should be muted based on source. You can now for example, filter out the sound of everyone else woodcutting while still hearing yours.

@@ -130,4 +130,4 @@

New commits

timers: Do not reset divine potion timers on death (#10235) Make GWD kill count overlay movable (#10238) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-11-28-1.5.42-Release/index.html b/blog/show/2019-11-28-1.5.42-Release/index.html index 0c6410e685..fbf0e9c34c 100644 --- a/blog/show/2019-11-28-1.5.42-Release/index.html +++ b/blog/show/2019-11-28-1.5.42-Release/index.html @@ -1,4 +1,4 @@ -1.5.42 Release - RuneLite

The Woodcutting plugin now supports showing +1.5.42 Release - RuneLite

The Woodcutting plugin now supports showing respawn timers for chopped trees. Thanks to Dava96 for this contribution.

Woodcutting plugin tree respawn timer

@@ -144,4 +144,4 @@

New commits

winterdaze (1): Shorten NMZ overlay text to prevent overlapping (#10241) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-12-16-1.5.43-Release/index.html b/blog/show/2019-12-16-1.5.43-Release/index.html index 79bacd46ff..d8672e9303 100644 --- a/blog/show/2019-12-16-1.5.43-Release/index.html +++ b/blog/show/2019-12-16-1.5.43-Release/index.html @@ -1,4 +1,4 @@ -1.5.43 Release - RuneLite

The newly-renamed Camera plugin now offers an +1.5.43 Release - RuneLite

The newly-renamed Camera plugin now offers an option to rotate the camera using your right mouse button when no menu options are available. It also offers further options to map the middle mouse button to open the right-click menu and to ignore the "Examine" menu option for right-click camera rotation. Thanks to @@ -97,4 +97,4 @@

New commits

whartd (1): menu swapper: add jewellery box -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2019-12-19-1.6.0-Release/index.html b/blog/show/2019-12-19-1.6.0-Release/index.html index 1c5f2cf7ff..f468151b8e 100644 --- a/blog/show/2019-12-19-1.6.0-Release/index.html +++ b/blog/show/2019-12-19-1.6.0-Release/index.html @@ -1,4 +1,4 @@ -1.6.0 Release - RuneLite

We've added support for external plugins to RuneLite. External plugins are +1.6.0 Release - RuneLite

We've added support for external plugins to RuneLite. External plugins are plugins which are maintained by community members and other developers that are not officially affiliated with the project.

The external plugins are verified by us for safety, to ensure they are not @@ -55,4 +55,4 @@

New commits

ln (1): GPU: smooth out fog corners -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-01-09-1.6.1-Release/index.html b/blog/show/2020-01-09-1.6.1-Release/index.html index 2260892ed9..bf8ee183bd 100644 --- a/blog/show/2020-01-09-1.6.1-Release/index.html +++ b/blog/show/2020-01-09-1.6.1-Release/index.html @@ -1,4 +1,4 @@ -1.6.1 Release - RuneLite

The hiscore plugin now supports boss hiscores and shows it in a panel beneath +1.6.1 Release - RuneLite

The hiscore plugin now supports boss hiscores and shows it in a panel beneath the minigame hiscores.

bosshiscores

The !kc command remains as-is as it updates kill counts in real-time as @@ -94,4 +94,4 @@

New commits

xp tracker: don't unpause on failed login chatcommands: support keybinds in pms -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-01-16-1.6.2-Release/index.html b/blog/show/2020-01-16-1.6.2-Release/index.html index 669f10803f..248c6d9251 100644 --- a/blog/show/2020-01-16-1.6.2-Release/index.html +++ b/blog/show/2020-01-16-1.6.2-Release/index.html @@ -1,4 +1,4 @@ -1.6.2 Release - RuneLite

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.

+1.6.2 Release - RuneLite

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.

swap-bank-op

There are also several smaller improvements and bug fixes, including:

    @@ -46,4 +46,4 @@

    New commits

    melkypie (1): menu swapper: check home portal swap target -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-01-22-1.6.4-Release/index.html b/blog/show/2020-01-22-1.6.4-Release/index.html index 9fd24929c4..ecfa45e299 100644 --- a/blog/show/2020-01-22-1.6.4-Release/index.html +++ b/blog/show/2020-01-22-1.6.4-Release/index.html @@ -1,4 +1,4 @@ -1.6.4 Release - RuneLite

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.

+1.6.4 Release - RuneLite

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.

loot-tab

The Clan Chat plugin now has the ability to recolor players that also are on your ignore list.

clan-member-recolored

@@ -48,4 +48,4 @@

New commits

clanchat: add ability to recolor ignored players -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-01-29-1.6.5-Release/index.html b/blog/show/2020-01-29-1.6.5-Release/index.html index 9be8940c82..563da6966c 100644 --- a/blog/show/2020-01-29-1.6.5-Release/index.html +++ b/blog/show/2020-01-29-1.6.5-Release/index.html @@ -1,4 +1,4 @@ -1.6.5 Release - RuneLite

The Menu Entry Swapper plugin has +1.6.5 Release - RuneLite

The Menu Entry Swapper plugin has had its "Swap Bank Op" config changed to support different shift-click options to prioritize, allowing you to choose the shift-click behavior when withdrawing from or depositing into the bank. Thanks to @zacharydwaller for this feature!

@@ -44,4 +44,4 @@

New commits

melkypie (1): chatcommands: fix cox pb tracking -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-02-13-1.6.6-Release/index.html b/blog/show/2020-02-13-1.6.6-Release/index.html index d048e482a2..b1b834718a 100644 --- a/blog/show/2020-02-13-1.6.6-Release/index.html +++ b/blog/show/2020-02-13-1.6.6-Release/index.html @@ -1,4 +1,4 @@ -1.6.6 Release - RuneLite

The loot tracker will now track loot received from pickpockets.

+1.6.6 Release - RuneLite

The loot tracker will now track loot received from pickpockets.

pploottracker

The old show opponent's opponent option has been readded for NPC opponents; closer inspection of the prohibited feature @@ -153,4 +153,4 @@

New commits

ralphmtk (1): timers: correct dfs spec cooldown time -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-02-27-1.6.8-Release/index.html b/blog/show/2020-02-27-1.6.8-Release/index.html index 9e0ab1918c..144856785e 100644 --- a/blog/show/2020-02-27-1.6.8-Release/index.html +++ b/blog/show/2020-02-27-1.6.8-Release/index.html @@ -1,4 +1,4 @@ -1.6.8 Release - RuneLite

Bank tags can now be searched in the GE:

+1.6.8 Release - RuneLite

Bank tags can now be searched in the GE:

getags

The world map now has tooltips for mining site locations which shows which rocks are there:

mining

@@ -112,4 +112,4 @@

New commits

AgilityShortcut: update Arceuus essence agility shortcut coordinates QuestStartLocation: Update The forsaken tower/roving elves quest coordinates -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-03-05-1.6.9-Release/index.html b/blog/show/2020-03-05-1.6.9-Release/index.html index 4e2d0f21bb..baf6b9e753 100644 --- a/blog/show/2020-03-05-1.6.9-Release/index.html +++ b/blog/show/2020-03-05-1.6.9-Release/index.html @@ -1,4 +1,4 @@ -1.6.9 Release - RuneLite

The Bank Tags plugin has a new right-click +1.6.9 Release - RuneLite

The Bank Tags plugin has a new right-click menu option of the "New tag tab" button which will display each of your tag tabs as bank items, letting you quickly view and reorganize them. In addition, reordering tag tabs respects your bank rearrange mode selection. Thanks to @raiyni for these features!

@@ -126,4 +126,4 @@

New commits

mlvzk (1): reportbutton: add Game Ticks option -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-03-26-1.6.10-Release/index.html b/blog/show/2020-03-26-1.6.10-Release/index.html index 732be06dd5..ff850746a0 100644 --- a/blog/show/2020-03-26-1.6.10-Release/index.html +++ b/blog/show/2020-03-26-1.6.10-Release/index.html @@ -1,4 +1,4 @@ -1.6.10 Release - RuneLite

A DPS counter plugin has been added which displays your DPS, or just total +1.6.10 Release - RuneLite

A DPS counter plugin has been added which displays your DPS, or just total damage, to NPCs. If you are in a party, it will show a breakdown of each member's damage.

@@ -170,4 +170,4 @@

New commits

interface styles: Fix 2005 prayer tab fixed viewport interface styles: Add 2006 interface -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-04-16-1.6.11-Release/index.html b/blog/show/2020-04-16-1.6.11-Release/index.html index 52d9162299..2cdcb68755 100644 --- a/blog/show/2020-04-16-1.6.11-Release/index.html +++ b/blog/show/2020-04-16-1.6.11-Release/index.html @@ -1,4 +1,4 @@ -1.6.11 Release - RuneLite

Overlays, such as panels and screen markers can now be resized by holding Alt and +1.6.11 Release - RuneLite

Overlays, such as panels and screen markers can now be resized by holding Alt and dragging their edges/corners. Thanks to @deathbeam for adding this feature.

Resizing RuneLite overlays

@@ -222,4 +222,4 @@

New commits

ypperlig (1): barrowsplugin: fix null pointer exception in region check -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-05-01-1.6.13-Release/index.html b/blog/show/2020-05-01-1.6.13-Release/index.html index f012b56f8c..1b5b1e1c42 100644 --- a/blog/show/2020-05-01-1.6.13-Release/index.html +++ b/blog/show/2020-05-01-1.6.13-Release/index.html @@ -1,4 +1,4 @@ -1.6.12 & 1.6.13 Releases - RuneLite

The 1.6.12 release that went out last week was forced due to the game update, +1.6.12 & 1.6.13 Releases - RuneLite

The 1.6.12 release that went out last week was forced due to the game update, but we did not have a blog post ready. This post covers both releases.

The Leagues hiscore lookup has been replaced now with the newly opened Deadman tournament, and the various lookup commands in game now recognize the Deadman @@ -145,4 +145,4 @@

New commits

idlenotifier: Add bolt tip attaching animations -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-05-09-1.6.14-Release/index.html b/blog/show/2020-05-09-1.6.14-Release/index.html index d7f8a94c9c..16d1b0dcb8 100644 --- a/blog/show/2020-05-09-1.6.14-Release/index.html +++ b/blog/show/2020-05-09-1.6.14-Release/index.html @@ -1,4 +1,4 @@ -1.6.14 Release - RuneLite

The GPU plugin now supports rasterization on MacOS! Users using Mac OSX +1.6.14 Release - RuneLite

The GPU plugin now supports rasterization on MacOS! Users using Mac OSX should notice significant performance improvements with the GPU plugin on; we have seen 20+ FPS as well as lower CPU utilization. Due to limitations of OpenGL on MacOS the plugin does not offer extended draw distance at this time. We plan to continue development of the plugin to add extended draw distance support on MacOS in the future.

@@ -131,4 +131,4 @@

New commits

raynerrebello (1): poh: Add new POH overlay icons for Weiss and Troll Stronghold portals (#11360) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-05-28-1.6.17-Release/index.html b/blog/show/2020-05-28-1.6.17-Release/index.html index 22ebd0291c..b782cf47db 100644 --- a/blog/show/2020-05-28-1.6.17-Release/index.html +++ b/blog/show/2020-05-28-1.6.17-Release/index.html @@ -1,4 +1,4 @@ -1.6.15, 1.6.16, and 1.6.17 Releases - RuneLite

The Login Screen plugin now supports +1.6.15, 1.6.16, and 1.6.17 Releases - RuneLite

The Login Screen plugin now supports changing the login screen background. Choose from any of Old School RuneScape's popular event or update backgrounds or create your own! (you can even use custom backgrounds which are not mirrored) Thanks to @@ -265,4 +265,4 @@

New commits

trimbe (1): bank tags: clear remembered search when the active tag tab is clicked -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-06-12-1.6.19-Release/index.html b/blog/show/2020-06-12-1.6.19-Release/index.html index 9fc2cd296f..03c807bbbf 100644 --- a/blog/show/2020-06-12-1.6.19-Release/index.html +++ b/blog/show/2020-06-12-1.6.19-Release/index.html @@ -1,4 +1,4 @@ -1.6.18 & 1.6.19 Releases - RuneLite

We've added a number of enhancements to our config panel! Busy settings panels populated with many +1.6.18 & 1.6.19 Releases - RuneLite

We've added a number of enhancements to our config panel! Busy settings panels populated with many options now have their options split into sections which can be expanded or contracted so you can quickly find the options you're looking for. Individual settings can also be reset to their default values by clicking on their labels and selecting the "Reset" menu option.

@@ -188,4 +188,4 @@

New commits

while-loop (1): chat-history: fix plugin not clearing history -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-06-18-1.6.20-Release/index.html b/blog/show/2020-06-18-1.6.20-Release/index.html index 23bdde9d59..8456b9ace7 100644 --- a/blog/show/2020-06-18-1.6.20-Release/index.html +++ b/blog/show/2020-06-18-1.6.20-Release/index.html @@ -1,4 +1,4 @@ -1.6.20 Release - RuneLite

We've added support for tracking collected +1.6.20 Release - RuneLite

We've added support for tracking collected loot as well as completion counts and personal bests in the Hallowed Sepulchre. Use the !kc hs and !pb hs chat commands to see this information. You can even get information @@ -101,4 +101,4 @@

New commits

whaevr (1): loot tracker: add coffins from Hallowed Sepulchre -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-06-25-1.6.21-Release/index.html b/blog/show/2020-06-25-1.6.21-Release/index.html index ef896d34ad..0bf3e8e317 100644 --- a/blog/show/2020-06-25-1.6.21-Release/index.html +++ b/blog/show/2020-06-25-1.6.21-Release/index.html @@ -1,4 +1,4 @@ -1.6.21 Release - RuneLite

We've added a Pyramid Plunder plugin +1.6.21 Release - RuneLite

We've added a Pyramid Plunder plugin which can hide the vanilla timer display and substitute it with an accurate timer infobox. Additionally, it can highlight the spear traps, unopened doors, unopened urns, chests, and sarcophagi. Thanks to @Mitchell-Kovacs for this addition!

@@ -116,4 +116,4 @@

New commits

chatcommands: fix cox pb tracking for 24+ players team size chatcommands: allow cox pb to look at previous pb times from jagex -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-07-16-1.6.22-Release/index.html b/blog/show/2020-07-16-1.6.22-Release/index.html index d9e7466cc0..f99fcdcb30 100644 --- a/blog/show/2020-07-16-1.6.22-Release/index.html +++ b/blog/show/2020-07-16-1.6.22-Release/index.html @@ -1,4 +1,4 @@ -1.6.22 Release - RuneLite

A Tag-All menu option has been added to the NPC Indicators +1.6.22 Release - RuneLite

A Tag-All menu option has been added to the NPC Indicators plugin, letting you easily tag all monsters of a given name. Thanks to @zeffirojoe for this addition

NPC Indicators Tag-All menu option @@ -142,4 +142,4 @@

New commits

loot tracker: move cox loot value message from raids to loot tracker loot tracker: add ability to have end of raid tob chest loot value in a chatmessage -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-07-23-1.6.23-Release/index.html b/blog/show/2020-07-23-1.6.23-Release/index.html index 4ae63c5dc6..60583dfbd1 100644 --- a/blog/show/2020-07-23-1.6.23-Release/index.html +++ b/blog/show/2020-07-23-1.6.23-Release/index.html @@ -1,4 +1,4 @@ -1.6.23 Release - RuneLite

The bank tab separators shown when opening a bank tag +1.6.23 Release - RuneLite

The bank tab separators shown when opening a bank tag tab can now be hidden to display that tag's items similarly to a normal bank tab. Thanks to @trimbe for this feature.

@@ -67,4 +67,4 @@

New commits

banktags: Remove tab separators from tag tabs banktags: Add tag tab drag blocking -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-08-26-1.6.25-Release/index.html b/blog/show/2020-08-26-1.6.25-Release/index.html index 8d4fadd3a8..dd52bb44f8 100644 --- a/blog/show/2020-08-26-1.6.25-Release/index.html +++ b/blog/show/2020-08-26-1.6.25-Release/index.html @@ -1,4 +1,4 @@ -1.6.24 & 1.6.25 Release - RuneLite

We have added a Zalcano plugin which offers +1.6.24 & 1.6.25 Release - RuneLite

We have added a Zalcano plugin which offers several useful arrow highlights and overlays. Thanks to @Hexagon for this contribution!

Weakened Zalcano with a hint arrow above her

@@ -239,4 +239,4 @@

New commits

bank tags: update detection of active tab for separator removal bank tags: invoke only the scrollbar update after removing separators -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-09-23-1.6.27-Release/index.html b/blog/show/2020-09-23-1.6.27-Release/index.html index 4b1bdf35d7..3fc946a64d 100644 --- a/blog/show/2020-09-23-1.6.27-Release/index.html +++ b/blog/show/2020-09-23-1.6.27-Release/index.html @@ -1,4 +1,4 @@ -1.6.26 & 1.6.27 Release - RuneLite

You can now view your Time Tracker +1.6.26 & 1.6.27 Release - RuneLite

You can now view your Time Tracker plugin progress on the website when you are logged in to your RuneLite account for easy checking on the go!

@@ -149,4 +149,4 @@

New commits

ElapsedTimer: Display time in mm:ss format timers: Fix inferno timer starting time -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-10-07-1.6.28-Release/index.html b/blog/show/2020-10-07-1.6.28-Release/index.html index bcbf3e7020..5ecd39168a 100644 --- a/blog/show/2020-10-07-1.6.28-Release/index.html +++ b/blog/show/2020-10-07-1.6.28-Release/index.html @@ -1,4 +1,4 @@ -1.6.28 Release - RuneLite

Infoboxes can now be split into multiple groups, and independently positioned +1.6.28 Release - RuneLite

Infoboxes can now be split into multiple groups, and independently positioned and rotated. Shift right click an infobox and select Detach to move an infobox to its own group, and Flip to change the group orientation between vertical and horizontal. The groups can be dragged as normal overlays via the usual @@ -93,4 +93,4 @@ leejt (1): Add crowdsourcing plugin -

\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-11-11-1.6.31-Release/index.html b/blog/show/2020-11-11-1.6.31-Release/index.html index 2c447d12ad..1be7ced30d 100644 --- a/blog/show/2020-11-11-1.6.31-Release/index.html +++ b/blog/show/2020-11-11-1.6.31-Release/index.html @@ -1,4 +1,4 @@ -1.6.29, 1.6.30, and 1.6.31 Releases - RuneLite

The Status Bars plugin has seen a touch-up +1.6.29, 1.6.30, and 1.6.31 Releases - RuneLite

The Status Bars plugin has seen a touch-up as you can now choose between hit points, prayer points, special attack energy, or run energy for your left and right bars. Additionally, the heart icon for the hit points bar changes colors based on your poison status, just like is done in the Poison @@ -254,4 +254,4 @@

New commits

winterdaze (1): WidgetOverlay: make nightmare pillar health widget moveable -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2020-12-02-1.6.33-Release/index.html b/blog/show/2020-12-02-1.6.33-Release/index.html index c5c6b9bb77..7616ef614a 100644 --- a/blog/show/2020-12-02-1.6.33-Release/index.html +++ b/blog/show/2020-12-02-1.6.33-Release/index.html @@ -1,4 +1,4 @@ -1.6.32 & 1.6.33 Release - RuneLite

Ground item despawn times can now be +1.6.32 & 1.6.33 Release - RuneLite

Ground item despawn times can now be displayed numerically in game ticks or in seconds. Thanks to @Hydrox for this feature.

Ground item despawn timer configuration

@@ -118,4 +118,4 @@

New commits

trimbe (1): bank plugin: add ctrl+f hotkey to initiate bank search -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-01-06-1.6.36-Release/index.html b/blog/show/2021-01-06-1.6.36-Release/index.html index 366d17806b..752b84a6be 100644 --- a/blog/show/2021-01-06-1.6.36-Release/index.html +++ b/blog/show/2021-01-06-1.6.36-Release/index.html @@ -1,4 +1,4 @@ -1.6.36 Release - RuneLite

The time tracking plugin now keeps track of when each account's farming tick +1.6.36 Release - RuneLite

The time tracking plugin now keeps track of when each account's farming tick happens and can use it to give much more precise estimations of when crops are done growing. To do this it must first observe a tree growing.

Farming timer

@@ -129,4 +129,4 @@

New commits

pilino1234 (1): Add alpha channel to color config options where applicable -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-01-27-1.6.38-Release/index.html b/blog/show/2021-01-27-1.6.38-Release/index.html index 8c0fcfe91c..7e4f697b9f 100644 --- a/blog/show/2021-01-27-1.6.38-Release/index.html +++ b/blog/show/2021-01-27-1.6.38-Release/index.html @@ -1,4 +1,4 @@ -1.6.37 & 1.6.38 Release - RuneLite

We've added the ability to share ground markers. Click the "Export Ground Markers" option on the +1.6.37 & 1.6.38 Release - RuneLite

We've added the ability to share ground markers. Click the "Export Ground Markers" option on the world map orb to copy nearby ground markers to your clipboard, or click the "Import Ground Markers" option to load them into your game! Thanks to @LlemonDuck for adding this feature.

@@ -164,4 +164,4 @@

New commits

wrightmalone (1): xp globes: add option to show virtual level in tooltip -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-02-13-1.7.0-Release/index.html b/blog/show/2021-02-13-1.7.0-Release/index.html index be81e6c307..15e788c490 100644 --- a/blog/show/2021-02-13-1.7.0-Release/index.html +++ b/blog/show/2021-02-13-1.7.0-Release/index.html @@ -1,4 +1,4 @@ -1.7.0 Release - RuneLite

MacOS extended draw distance

+1.7.0 Release - RuneLite

MacOS extended draw distance

On MacOS, the GPU plugin now supports extending the draw distance further. To do so, enable the Compute Shaders option in the GPU plugin and then restart the plugin. Big thanks to @LlemonDuck for doing a lot of work on this.

@@ -149,4 +149,4 @@

New commits

TimeTracking: Add farming notifications TimeTracking: Return shortened weekdays in doneEstimates -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-03-08-Wiki-Ge-Partnership/index.html b/blog/show/2021-03-08-Wiki-Ge-Partnership/index.html index 69e878198c..ac48d53ec7 100644 --- a/blog/show/2021-03-08-Wiki-Ge-Partnership/index.html +++ b/blog/show/2021-03-08-Wiki-Ge-Partnership/index.html @@ -1,7 +1,7 @@ -RuneLite & OSRS Wiki Partnership for GE prices - RuneLite

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.

+RuneLite & OSRS Wiki Partnership for GE prices - RuneLite

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.

prices

These 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.

In 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.

We 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.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-03-24-1.7.3-Release/index.html b/blog/show/2021-03-24-1.7.3-Release/index.html index 737368ae50..d07ccf958d 100644 --- a/blog/show/2021-03-24-1.7.3-Release/index.html +++ b/blog/show/2021-03-24-1.7.3-Release/index.html @@ -1,4 +1,4 @@ -1.7.1, 1.7.2, and 1.7.3 Releases - RuneLite

We have integrated the RuneScape Wiki's real-time +1.7.1, 1.7.2, and 1.7.3 Releases - RuneLite

We have integrated the RuneScape Wiki's real-time prices, into the client, where it is used for bank valuation, ground item highlights, grand exchange lookups, and more.

@@ -199,4 +199,4 @@

New commits

cooking: Fix POH altar burners false positive burn message (#13284) object indicators: don't clear markers on connection lost -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-05-12-1.7.7-Release/index.html b/blog/show/2021-05-12-1.7.7-Release/index.html index 00a28d9dd6..e7ade2a2fb 100644 --- a/blog/show/2021-05-12-1.7.7-Release/index.html +++ b/blog/show/2021-05-12-1.7.7-Release/index.html @@ -1,4 +1,4 @@ -1.7.7 Release - RuneLite

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.

+1.7.7 Release - RuneLite

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.

The low detail plugin now has an option to hide lower floors, which is particularly useful on lower end computers in busy areas, like the hallowed sepulchre.

@@ -158,4 +158,4 @@

New commits

superiorser9 (1): wiki: only show vanilla wiki banner when enabled (#13380) - \ No newline at end of file + \ No newline at end of file diff --git a/blog/show/2021-05-28-1.7.10-Release/index.html b/blog/show/2021-05-28-1.7.10-Release/index.html index 4e6205ba13..c2d8adb212 100644 --- a/blog/show/2021-05-28-1.7.10-Release/index.html +++ b/blog/show/2021-05-28-1.7.10-Release/index.html @@ -1,4 +1,4 @@ -1.7.8, 1.7.9, and 1.7.10 Releases - RuneLite

Clans

+1.7.8, 1.7.9, and 1.7.10 Releases - RuneLite

Clans

Clan member icons

We've added support for clans across various plugins, including:

    @@ -102,4 +102,4 @@

    New commits

    emerald000 (1): Rename Armadylian Guards to Armadylean Guards -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-06-23-1.7.13-Release/index.html b/blog/show/2021-06-23-1.7.13-Release/index.html index a9fd28f8d7..96ae830837 100644 --- a/blog/show/2021-06-23-1.7.13-Release/index.html +++ b/blog/show/2021-06-23-1.7.13-Release/index.html @@ -1,4 +1,4 @@ -1.7.11, 1.7.12, and 1.7.13 Releases - RuneLite

RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players' Hard Mode +1.7.11, 1.7.12, and 1.7.13 Releases - RuneLite

RuneLite has been updated to support Theatre of Blood: Hard Mode and Story Mode. Players' Hard Mode kill counts are saved and can be shared using the !kc chat command or looked up on the hiscore plugin.

@@ -174,4 +174,4 @@

New commits

tanlines (1): itemstats: Fix stamina restore with Ring of Endurance (#13692) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-07-14-1.7.16-Release/index.html b/blog/show/2021-07-14-1.7.16-Release/index.html index 92a830a869..be85efec2a 100644 --- a/blog/show/2021-07-14-1.7.16-Release/index.html +++ b/blog/show/2021-07-14-1.7.16-Release/index.html @@ -1,4 +1,4 @@ -1.7.14, 1.7.15, and 1.7.16 Releases - RuneLite

We've added a new model outline renderer which can draw precise outlines of NPCs and objects via +1.7.14, 1.7.15, and 1.7.16 Releases - RuneLite

We've added a new model outline renderer which can draw precise outlines of NPCs and objects via their respective indicator plugins.

@@ -130,4 +130,4 @@

New commits

geheur (1): mta: update alchemy room widgets ids - \ No newline at end of file + \ No newline at end of file diff --git a/blog/show/2021-07-21-1.7.17-Release/index.html b/blog/show/2021-07-21-1.7.17-Release/index.html index 0479591e43..69c2323592 100644 --- a/blog/show/2021-07-21-1.7.17-Release/index.html +++ b/blog/show/2021-07-21-1.7.17-Release/index.html @@ -1,4 +1,4 @@ -1.7.17 Release - RuneLite

Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for +1.7.17 Release - RuneLite

Options have been added to the Ground Items plugin to draw loot beams for highlighted items, and for items at or above a given price tier.

Ground item loot beams

A new command, !pets, has been added to the Chat Commands plugin, which will display the number of @@ -77,4 +77,4 @@

New commits

ermalsh (1): statusbars: Add option to hide outside of combat -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-09-06-1.7.22-Release/index.html b/blog/show/2021-09-06-1.7.22-Release/index.html index 47b71ad479..b7b873c3ca 100644 --- a/blog/show/2021-09-06-1.7.22-Release/index.html +++ b/blog/show/2021-09-06-1.7.22-Release/index.html @@ -1,4 +1,4 @@ -1.7.22 Release - RuneLite

We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover +1.7.22 Release - RuneLite

We've added the Interact Highlight plugin, which draws an outline around NPCs and objects you hover over and interact with.

New commits

skillcalculator: Add Camdozaal activities worldmap: Add mining spots in Ruins of Camdozaal -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-10-06-1.7.25-Release/index.html b/blog/show/2021-10-06-1.7.25-Release/index.html index 2ff5720520..ff6455bae7 100644 --- a/blog/show/2021-10-06-1.7.25-Release/index.html +++ b/blog/show/2021-10-06-1.7.25-Release/index.html @@ -1,4 +1,4 @@ -1.7.23, 1.7.24, and 1.7.25 Release - RuneLite

The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.

+1.7.23, 1.7.24, and 1.7.25 Release - RuneLite

The HD healthbars feature of the Interface Styles plugin now supports bars of all colors and sizes.

@@ -167,4 +167,4 @@

New commits

superiorser9 (1): screenshot: Capture collection log popup notifications - \ No newline at end of file + \ No newline at end of file diff --git a/blog/show/2021-10-28-1.8.0-Release/index.html b/blog/show/2021-10-28-1.8.0-Release/index.html index 6c7ee81630..7d266e77d9 100644 --- a/blog/show/2021-10-28-1.8.0-Release/index.html +++ b/blog/show/2021-10-28-1.8.0-Release/index.html @@ -1,4 +1,4 @@ -1.8.0 Release - RuneLite

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.

+1.8.0 Release - RuneLite

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.

New commits

shmeeps (1): prayer: add blighted super restore -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2021-12-16-1.8.7-Release/index.html b/blog/show/2021-12-16-1.8.7-Release/index.html index eb88a523d2..953a28a4a7 100644 --- a/blog/show/2021-12-16-1.8.7-Release/index.html +++ b/blog/show/2021-12-16-1.8.7-Release/index.html @@ -1,4 +1,4 @@ -1.8.7 Release - RuneLite

The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.

+1.8.7 Release - RuneLite

The menu swapper has a new option to configure the left click option on items, which works similar to the existing shift-click configuration.

Leftclickswap

Login and logout notifications can now be hidden per-friend by clicking the Hide notifications option on the friend.

Login notifications

@@ -163,4 +163,4 @@

New commits

simeonlg (1): clues: Accept Tome of water when requiring water runes (#14361) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-03-09-1.8.13-Release/index.html b/blog/show/2022-03-09-1.8.13-Release/index.html index a40201c1b5..bc05874025 100644 --- a/blog/show/2022-03-09-1.8.13-Release/index.html +++ b/blog/show/2022-03-09-1.8.13-Release/index.html @@ -1,4 +1,4 @@ -1.8.8 - 1.8.13 Releases - RuneLite

Loottracker changes

+1.8.8 - 1.8.13 Releases - RuneLite

Loottracker changes

The loot tracker now always remembers loot between client sessions, even when not logged in with a RuneLite account. Additionally, the loot is stored per-profile now instead of combined for each profile. This means that separate @@ -285,4 +285,4 @@

New commits

Don't force focus on tray icon click on macOS when already focused fairy ring: add Yu'biusk -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-05-11-1.8.19-Release/index.html b/blog/show/2022-05-11-1.8.19-Release/index.html index 307b1e41d0..dd997e32a5 100644 --- a/blog/show/2022-05-11-1.8.19-Release/index.html +++ b/blog/show/2022-05-11-1.8.19-Release/index.html @@ -1,4 +1,4 @@ -1.8.14 - 1.8.19 Releases - RuneLite

Compost tracking

+1.8.14 - 1.8.19 Releases - RuneLite

Compost tracking

The farming tracker now keeps track of compost state of each patch, so you no longer have to remember if you've composted patches or not. It works with the fertile soil spell, regular and bottomless compost buckets.

@@ -274,4 +274,4 @@

New commits

testing-ongithub (1): xp tracker: Add toggle for "Open Wise Old Man" menu option -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-06-17-1.8.24-Release/index.html b/blog/show/2022-06-17-1.8.24-Release/index.html index 6fd572b9c2..a3211b86e3 100644 --- a/blog/show/2022-06-17-1.8.24-Release/index.html +++ b/blog/show/2022-06-17-1.8.24-Release/index.html @@ -1,4 +1,4 @@ -1.8.24 Release - RuneLite

Jagex rules update

+1.8.24 Release - RuneLite

Jagex rules update

Jagex have published a new third party client update, and with it a new set of third party client guidelines. @@ -199,4 +199,4 @@

New commits

vmarlowe (1): fishing: Add frog spawn spot NPC (#14659) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-07-13-1.8.27-Release/index.html b/blog/show/2022-07-13-1.8.27-Release/index.html index 287890f087..9391236755 100644 --- a/blog/show/2022-07-13-1.8.27-Release/index.html +++ b/blog/show/2022-07-13-1.8.27-Release/index.html @@ -1,4 +1,4 @@ -1.8.27 Release - RuneLite

Behavior changes since the previous update

+1.8.27 Release - RuneLite

Behavior changes since the previous update

Since 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. These changes are:

The 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.

@@ -172,4 +172,4 @@

New commits

Tomas Slusny (1): account: send username and sessionid when redirecting to /logged-in page -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-08-21-1.8.31-Release/index.html b/blog/show/2022-08-21-1.8.31-Release/index.html index a809cd2c5d..f4056d4012 100644 --- a/blog/show/2022-08-21-1.8.31-Release/index.html +++ b/blog/show/2022-08-21-1.8.31-Release/index.html @@ -1,4 +1,4 @@ -1.8.31 Release - RuneLite

UI swaps

+1.8.31 Release - RuneLite

UI swaps

Many 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.

uiswap1 uiswap2

@@ -163,4 +163,4 @@

New commits

Woodse07 (1): emoji: add cow emoji -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut/index.html b/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut/index.html index bb80558c61..36b82b2b67 100644 --- a/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut/index.html +++ b/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut/index.html @@ -1,4 +1,4 @@ -Recent performance regressions and Tombs of Amascut - RuneLite

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.

+Recent performance regressions and Tombs of Amascut - RuneLite

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.


After 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.

Note 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.

@@ -31,4 +31,4 @@

With 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.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2022-10-05-1.9.0-Release/index.html b/blog/show/2022-10-05-1.9.0-Release/index.html index 5e6726bdfe..b355a7e637 100644 --- a/blog/show/2022-10-05-1.9.0-Release/index.html +++ b/blog/show/2022-10-05-1.9.0-Release/index.html @@ -1,4 +1,4 @@ -1.9.0 Release - RuneLite

Minimap zooming

+1.9.0 Release - RuneLite

Minimap zooming

The 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.

@@ -188,4 +188,4 @@

New commits

chat commands: fix short name of kril tsutsaroth ba: fix detecting end of wave - \ No newline at end of file + \ No newline at end of file diff --git a/blog/show/2022-12-07-1.9.5-Release/index.html b/blog/show/2022-12-07-1.9.5-Release/index.html index c43aa8c7bd..24dc2782bf 100644 --- a/blog/show/2022-12-07-1.9.5-Release/index.html +++ b/blog/show/2022-12-07-1.9.5-Release/index.html @@ -1,4 +1,4 @@ -1.9.5 Release - RuneLite

Clue notes

+1.9.5 Release - RuneLite

Clue notes

Notes 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.

clue-note

Per NPC highlight color and types

@@ -159,4 +159,4 @@

New commits

sam (1): item charges: fix tracking explorer ring charges -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2023-01-22-security-incident-jan21/index.html b/blog/show/2023-01-22-security-incident-jan21/index.html index d80802fe8a..0280c08386 100644 --- a/blog/show/2023-01-22-security-incident-jan21/index.html +++ b/blog/show/2023-01-22-security-incident-jan21/index.html @@ -1,4 +1,4 @@ -Security Incident Jan 21 2023 - RuneLite

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.

+Security Incident Jan 21 2023 - RuneLite

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.

This was caused by human error on our part, where we approved the plugin despite the code being exploitable.

To 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.

Over 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.

@@ -6,4 +6,4 @@

We have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.

To 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.

- Adam

-
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2023-02-18-1.9.11-Release/index.html b/blog/show/2023-02-18-1.9.11-Release/index.html index d0ccef20c3..069d71e3d9 100644 --- a/blog/show/2023-02-18-1.9.11-Release/index.html +++ b/blog/show/2023-02-18-1.9.11-Release/index.html @@ -1,4 +1,4 @@ -1.9.11 Release - RuneLite

Profiles

+1.9.11 Release - RuneLite

Profiles

Profiles 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.

Your existing settings will be migrated into a single profile named default automatically.

profile

@@ -214,4 +214,4 @@

New commits

Łukasz Kliś (1): chat commands: add short names for Phantom Muspah -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2023-05-13-1.10.0-Release/index.html b/blog/show/2023-05-13-1.10.0-Release/index.html index a8ec06d421..9515872bff 100644 --- a/blog/show/2023-05-13-1.10.0-Release/index.html +++ b/blog/show/2023-05-13-1.10.0-Release/index.html @@ -1,4 +1,4 @@ -1.10.0 Release - RuneLite

Map loading improvements

+1.10.0 Release - RuneLite

Map loading improvements

The 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.

New commits

timers: Switch back to message-based detection for thrall creation timer timers: Don't create shadow veil / liquid adrenaline timers with varbits -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2023-07-01-1.10.6-Release/index.html b/blog/show/2023-07-01-1.10.6-Release/index.html index 0474a95c38..4d6b0f8bb6 100644 --- a/blog/show/2023-07-01-1.10.6-Release/index.html +++ b/blog/show/2023-07-01-1.10.6-Release/index.html @@ -1,4 +1,4 @@ -1.10.6 Release - RuneLite

Forestry

+1.10.6 Release - RuneLite

Forestry

The woodcutting plugin has had support for forestry added. This includes notifications for each type of event, and an overlay aiding it.

@@ -132,4 +132,4 @@

New commits

shi-vy (1): clues: add fairy ring to elite clue step for gutanoth - \ No newline at end of file + \ No newline at end of file diff --git a/blog/show/2023-09-09-1.10.12-Release/index.html b/blog/show/2023-09-09-1.10.12-Release/index.html index 24df04d772..dc42f1c594 100644 --- a/blog/show/2023-09-09-1.10.12-Release/index.html +++ b/blog/show/2023-09-09-1.10.12-Release/index.html @@ -1,4 +1,4 @@ -1.10.12 Release - RuneLite

Extended map loading

+1.10.12 Release - RuneLite

Extended map loading

RuneLite 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!

When combined with our previous work on seamless map loading the world feels like one continuous area.

When 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.

@@ -272,4 +272,4 @@

New commits

combat level: Show next level info on Character Summary tab (#15876) combat level: Check "Show precise combat level" config on character summary tab (#16972) -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2023-11-05-1.10.15-Release/index.html b/blog/show/2023-11-05-1.10.15-Release/index.html index 44120e48b9..b05bcbcc72 100644 --- a/blog/show/2023-11-05-1.10.15-Release/index.html +++ b/blog/show/2023-11-05-1.10.15-Release/index.html @@ -1,4 +1,4 @@ -1.10.15 Release - RuneLite

Profile account linking

+1.10.15 Release - RuneLite

Profile account linking

Earlier this year, we released profiles to let you easily switch between different plugins and settings. Paired with a new --profile client argument for players wanting to open specific client windows to separate profiles, this helped most players manage their settings neatly, but did not @@ -201,4 +201,4 @@

New commits

skillingdev (1): screenshot: fix matching level 99 messages with level-up dialogs disabled -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2024-02-24-1.10.23-Release/index.html b/blog/show/2024-02-24-1.10.23-Release/index.html index 5d4d2d4dc5..203048d62c 100644 --- a/blog/show/2024-02-24-1.10.23-Release/index.html +++ b/blog/show/2024-02-24-1.10.23-Release/index.html @@ -1,4 +1,4 @@ -1.10.23 Release - RuneLite

New UI Look and Feel

+1.10.23 Release - RuneLite

New UI Look and Feel

We've recently completed a large overhaul of our UI, the first change since 2018. This 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.

sidebar

@@ -281,4 +281,4 @@

New commits

timleafy (1): worldmap: add mining guild west amethyst -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2024-03-21-1.10.25-Release/index.html b/blog/show/2024-03-21-1.10.25-Release/index.html index 876f168953..b62f93e1e9 100644 --- a/blog/show/2024-03-21-1.10.25-Release/index.html +++ b/blog/show/2024-03-21-1.10.25-Release/index.html @@ -1,4 +1,4 @@ -1.10.25 Release - RuneLite

Varlamore

+1.10.25 Release - RuneLite

Varlamore

Varlamore: Part one is here! We've been working on adding a bunch of the new content to the various plugins in the last day. This includes:

  • New farming patches have been added to timetracking, and to the website
  • @@ -143,4 +143,4 @@

    New commits

    fairyrings: Alphabetize fairy rings and add test for alphabetization worldmap: Add tests for fairy ring plugin overlap and alphabetization -
\ No newline at end of file +
\ No newline at end of file diff --git a/blog/show/2024-04-17-1.10.27-Release/index.html b/blog/show/2024-04-17-1.10.27-Release/index.html new file mode 100644 index 0000000000..3fd617850d --- /dev/null +++ b/blog/show/2024-04-17-1.10.27-Release/index.html @@ -0,0 +1,215 @@ +1.10.27 Release - RuneLite

Spell reordering

+

Spell reordering is here! The new Spellbook plugin allows reordering and hiding spells, similar to how prayer reordering works.

+

+

Notification overrides

+

Most client notifications can now have their notification style configured per-notification. Compatible notifications will have a cog icon next to the checkbox when enabled which opens the per-notification settings. Notifications without customized settings continue to use the default notification settings found in the RuneLite Notification Settings configuration section.

+

notif1 +-> +notif2

+

Teleport submenus

+

Menu entry swapper has a new Teleport submenus setting which adds submenus for cape teleports. It supports the max, construction, and achievement diary capes. The submenus can also be swapped to be the top option via the usual shift-click swap, allowing easy one click +teleports to any of the various teleports.

+

teleports

+

There are also several smaller improvements and bug fixes, including:

+
    +
  • Ground items despawn timers now use the enhanced client despawn times, which works more reliably and on all items
  • +
  • All costume room storage items can now be searched via bank tags: treasure chest, magic wardrobe, armour case, cape rack, and toy box
  • +
  • MacOS retina displays are now supported on the GPU plugin
  • +
  • An amulet of chemistry notification was added to the item charges plugin
  • +
  • Tonalztics of Ralos has been added to the special attack counter
  • +
+

Enjoy!

+

- Adam

+

New commits

+

We had 25 contributors this update!

+
Adam (34):
+      hiscores: move activities from skill_icons_small
+      hiscores: add varlamore
+      gpu: fix texture hillskew
+      clues: support wall decorations for ObjectClueScrolls
+      attack styles: use client enum for looking up weapon attack styles
+      gpu: fix cl compilation on amd gpus
+      cache: remove old world map index
+      ground items: invalidate item cache when quantity changes
+      devtools: add script args to script inspector
+      cluescrolls: add tags for remaining costume room storage
+      rtconfig: add time boxing for outage message
+      cache: add item examine
+      Revert "implings: add essence impling spawns"
+      opponent info: fix npe from hud check
+      ground items: invalidate item cache when quantity changes
+      ge: add beta world type
+      loot tracker: add beta world type
+      config: add serializers
+      config: add notification overrides
+      notifier: remove double shell escaping
+      pluin panel: fix typo
+      overlay panel: clear children even if render throws
+      gpu: add macos retina support
+      api: add item despawn time
+      ground items: use TileItem despawn times
+      gpu: fix animated texture uv overflow
+      plugins: use new notification system
+      api: add cs2 arrays
+      config: show config panel for any plugin with config descriptor
+      add spellbook plugin
+      api: add menuAction
+      menuaction: add widget submenu parent
+      menu swapper: add teleport submenus
+      menuentryswapper: remove construction build/remove block
+
+Anton Olsson (1):
+      clues: remove butterfly jar requirement
+
+Antony Linden (7):
+      skill calculator: Order actions by level, xp, then alphabetically
+      skill calculator: Fix mahogany lectern icons
+      skill calculator: Fix Mithril crossbow enum name
+      skill calculator: Add Kourend Castle Teleport
+      skill calculator: Add Juniper logs
+      skill calculator: Update Rogues' Castle chest xp value
+      skill calculator: Add Varlamore skill actions and bonuses
+
+Bakkingamu (1):
+      item charges: add amulet of chemistry notification
+
+Chris Brown (4):
+      cache: fix label positions in underground areas
+      cache: fix icons rendering on the wrong plane
+      cache: add map links
+      cache: render area labels on the map
+
+DapperMickie (12):
+      chat commands: add lunar chest aliases (#17700)
+      skill calculator: Allow multiple bonuses to apply at once
+      skill calculator: Add Forester's Campfire firemaking bonus
+      skill calculator: Add Zealot Robes prayer bonus
+      skill calculator: Fix skill action bonus multiplication
+      skill calculator: Standardize bonus percentage format
+      skill calculator: Add Goldsmith Gauntlets smithing bonus
+      skill calculator: Add felling axe + rations woodcutting bonus
+      skill calculator: Improve prayer bonus ordering
+      skill calculator: Improve prayer bonus stacking
+      skill calculator: Fix Wilderness agility course xp value
+      skill calculator: Add Wilderness agility tickets
+
+Felanbird (14):
+      worldmap: add AJP fairy ring
+      fairyring: add AJP fairy ring
+      clues: add Valmore clues
+      clues: fix NO OWNER anagram location
+      worldmap: add Civitas illa Fortis teleport
+      runepouch overlay: add sunfire rune image
+      implings: add essence impling spawns
+      clues: update SW Kharazi jungle HotCold step
+      clues: update Cam Torum emote clue
+      github: link to wiki safemode instructions in bug template
+      clues: update various varlamore steps
+      clues: update sunfire fanatic armour step
+      clues: update south-eastern chaos temple hard clue
+      chat commands: add more toa normal mode aliases
+
+Frosty-J (1):
+      boss timers: update chaos elemental respawn time
+
+Hooder (1):
+      gpu: fix nearest neighbor with integer DPI scaling
+
+JZomDev (1):
+      hunter: add Embertailed jerboa
+
+Joona (1):
+      clientui: set frame location after game size (#17621)
+
+Jordan Atwood (11):
+      worldmap: add varlamore mining spots
+      worldmap: Alphabetize minigame locations and add test for alphabetization
+      worldmap: Add test for world point uniqueness
+      worldmap: add Great Kourend minigames
+      worldmap: add varlamore dungeons
+      worldmap: Add sandworms hunter spot
+      Remove unused Slf4j annotations and imports
+      timers: Remove tzhaar timer defeat message trigger
+      skill calculator: Add test for mutually-stacking bonuses
+      skill calculator: Fix Maple longbow xp value
+      skill calculator: Use real levels for plank actions
+
+Joshua Dunbrack (1):
+      regen meter: apply updated lightbearer equipping behavior (#17678)
+
+Macweese (19):
+      worldmap: add varlamore transports
+      fishingspot: add varlamore fishing spots
+      worldmap: add varlamore fishing spots
+      worldmap: add varlamore rare trees
+      worldmap: add varlamore patches
+      worldmap: fix Entrana hops patch location
+      worldmap: add varlamore minigames
+      worldmap: add Grand Exchange Games Zone
+      agility: add varlamore shortcut
+      worldmap: add varlamore hunter spots
+      fishing: prevent false positive session
+      hunter: add varlamore hunter traps
+      devtools: restore button background on toggle
+      worldmap: fix quest icons paint cutoff (#17650)
+      slayer: include zygomites in task weakness config tooltip
+      minimap: restore map dots on config reset
+      login screen: add varlamore login screen
+      game: add isDying override for tutorial island giant rat (#17733)
+      discord: add varlamore regions
+
+Mario Hendriks (1):
+      implings: add essence impling spawns
+
+Max Weber (6):
+      timetracking: add varlamore patches
+      api: allow cloning face transparencies if they don't exist
+      api: expose Model::drawOrtho
+      roofremoval: add Varlamore roofs
+      rl-client: update ids to 2024-3-27
+      rl-client: show reveal button on swing password fields
+
+Morgan Lewis (5):
+      loot tracker: track lunar chest
+      loot tracker: track fortis colosseum rewards
+      loot tracker: track hunters loot sacks
+      timetracking: add additional farming regions for civitas illa fortis (#17602)
+      widget: make moons of peril overlay movable
+
+Ourmond (1):
+      idle notifier: Add Ent & Canoe chopping animations
+
+SRLJustin (1):
+      menuentryswapper: add fortis colosseum to jewellerybox swap
+
+YvesW (4):
+      farming: fix tracking contracts
+      farming: fix marcellus protection
+      surefire: set locale to en_US
+      world map: add Fortis Colosseum teleport (#17727)
+
+Zander Bolgar (1):
+      mining plugin: add calcified rocks
+
+capslock13 (3):
+      game: Add isDying override for bee swarm (#17651)
+      spec counter: add Tonalztics of Ralos
+      timers: Fix ElapsedTimer NPE with null start time
+
+cdfisher (2):
+      skillcalculator: Add Dorgesh-Kaan Agility Course
+      worldhopper: Add High Risk option to world filter.
+
+mopi (2):
+      opponent info: fix hp bar being shown for moons of peril bosses (#17619)
+      hitsplat: add doom and burn hitsplats
+
+testing-ongithub (2):
+      fairyrings: Alphabetize fairy rings and add test for alphabetization
+      worldmap: Add tests for fairy ring plugin overlap and alphabetization
+
+
\ No newline at end of file diff --git a/features/index.html b/features/index.html index 746cf60142..d6592b7ce7 100644 --- a/features/index.html +++ b/features/index.html @@ -1 +1 @@ -Features - RuneLite

Features

Action tooltips
Action tooltips

Displays tooltips for actions under your mouse cursor.

Agility
Agility

Displays clickboxes for agility courses, and counts the number of laps you have done.

Arceuus Library
Arceuus Library

Shows you where books are in the Arceuus Library.

Attack style
Attack style

Indicates your attack style and hides unwanted styles.

Bank evaluator
Bank evaluator

Displays your bank's total value based on GE and alch prices.

Bank tags
Bank tags

Allows you to set searchable tags on items for your bank.

Bank Tag Tabs
Bank Tag Tabs

A tab on the left side of the bank to auto search the assigned tag when clicked.

Barbarian Assault
Barbarian Assault

Displays a timer for the next change of horn commands.

Barrows
Barrows

Marks the location of brothers and shows puzzle answers

Blast Furnace
Blast Furnace

Shows your current bars/ores and marks the clickbox of the conveyor belt.

Birdhouse Timers
Birdhouse Timers

Displays birdhouses and approximate completion.

Cannon double hit spots
Cannon double hit spots

Shows you where to position enemies for double cannonball hits.

Chat Color
Chat Color

Configures chat colors for each type of message in transparent and non transparent chat.

Chat commands
Chat commands

Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.

Clan chat
Clan chat

Adds the sender's rank to clan chat messages.

Clue scroll helper
Clue scroll helper

Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.

Custom overlay position
Custom overlay position

Allows you to move RuneLite overlays to any position on the screen.

Daily task indicators
Daily task indicators

Notifies you on login what daily tasks you are able to complete.

Discord integration
Discord integration

Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties

Dwarf multicannon
Dwarf multicannon

Displays the number of cannonballs left in your cannon, along with common cannon spots.

Fairy Ring Filter
Fairy Ring Filter

Allows you to filter the fairy ring destination menu.

Farming Tracker
Farming Tracker

Displays current farming patches and approximate completion.

Fishing
Fishing

Highlights fishing spots and tracks fishing stats.

GPU
GPU

Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.

Grand Exchange lookup
Grand Exchange lookup

Quickly price-check any item on the Grand Exchange.

Grand Exchange offers
Grand Exchange offers

Lists your current Grand Exchange offers.

Ground items
Ground items

Hides, highlights, and adds filterable price colors to dropped items.

Herbiboar
Herbiboar

Highlights the path and objects to search at the end of the trail.

Hunter
Hunter

Adds timers to hunter traps.

Idle notifications
Idle notifications

Sends system tray alerts when idle or about to be logged out.

Impling finder
Impling finder

Highlights nearby implings on the minimap and on-screen.

Inventory Tags
Inventory Tags

Allows you to assign group tags to inventory items.

Inventory Viewer
Inventory Viewer

Displays an overlay of your current inventory.

Item stats
Item stats

Displays information about food and potion effects.

Jewellery charges
Jewellery charges

Displays the number of charges that your jewellery has.

Light Box Puzzle Solver
Light Box Puzzle Solver

Solves light box puzzles during clue scrolls.

Loot Tracker
Loot Tracker

Shows kill count and drops with prices from monsters you kill.

Low detail mode
Low detail mode

Enables low detail mode, removing some of the game's eye candy.

Mage Training Arena
Mage Training Arena

Overlays to assist in each of the MTA rooms.

Menu entry swapping
Menu entry swapping

Swaps the left-click actions of certain objects.

Minimap dot customizer
Minimap dot customizer

Customizes the color of minimap dots.

Miscellania favor
Miscellania favor

Displays your current favor and treasury in the Kingdom of Miscellania.

Motherlode Mine
Motherlode Mine

Marks veins and rock obstacles in the Motherlode Mine.

News feed
News feed

Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.

Nightmare Zone
Nightmare Zone

Displays NMZ points/absorption and notifies you about expiring potions.

NPC tagging
NPC tagging

Tags and keeps track of an NPC.

Party
Party

Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location

Player indicators
Player indicators

Draws the names of friends, clan mates and yourself overhead.

Player-owned houses
Player-owned houses

Displays minimap icons and marks unlit/lit burners.

Prayer Bar
Prayer Bar

Displays a prayer bar underneath your hitpoints bar.

Puzzle box solver
Puzzle box solver

Shows you where to click to solve puzzle boxes.

Raid scouter
Raid scouter

Displays the current layout of raids and tracks the raid duration.

Regen timers
Regen timers

Tracks and displays the hitpoints & special attack regen timers.

Rogues' Den
Rogues' Den

Marks tiles and clickboxes to help you traverse the maze.

Runecraft
Runecraft

Displays minimap icons and clickboxes for abyssal rifts.

Rune pouch
Rune pouch

Shows what runes are currently in your rune pouch.

Shift click configuration
Shift click configuration

Allows you to change/set shift click actions on items.

Status Bars
Status Bars

Shows health and prayer bars next to the inventory.

Status widgets
Status widgets

Shows boost timers, enemy HP, and other useful overlays.

Stretched mode
Stretched mode

Stretches the game to the size of your window.

Team cape overlay
Team cape overlay

Displays team cape wearer counts.

Tears of Guthix
Tears of Guthix

Displays the remaining time for streams of tears.

Tile indicator
Tile indicator

Marks the tile you last clicked on.

Tithe Farm
Tithe Farm

Displays timers for the farming patches within the Tithe farm minigame.

Woodcutting
Woodcutting

Displays information about the logs you are cutting.

XP globes
XP globes

Displays skill globes when you gain XP, with more detailed stats on hover.

XP Tracker
XP Tracker

Side panel displaying xp data for each skill you have trained.

Zoom unlimiter
Zoom unlimiter

Allows you to zoom past the default camera distance limits.

\ No newline at end of file +Features - RuneLite

Features

Action tooltips
Action tooltips

Displays tooltips for actions under your mouse cursor.

Agility
Agility

Displays clickboxes for agility courses, and counts the number of laps you have done.

Arceuus Library
Arceuus Library

Shows you where books are in the Arceuus Library.

Attack style
Attack style

Indicates your attack style and hides unwanted styles.

Bank evaluator
Bank evaluator

Displays your bank's total value based on GE and alch prices.

Bank tags
Bank tags

Allows you to set searchable tags on items for your bank.

Bank Tag Tabs
Bank Tag Tabs

A tab on the left side of the bank to auto search the assigned tag when clicked.

Barbarian Assault
Barbarian Assault

Displays a timer for the next change of horn commands.

Barrows
Barrows

Marks the location of brothers and shows puzzle answers

Blast Furnace
Blast Furnace

Shows your current bars/ores and marks the clickbox of the conveyor belt.

Birdhouse Timers
Birdhouse Timers

Displays birdhouses and approximate completion.

Cannon double hit spots
Cannon double hit spots

Shows you where to position enemies for double cannonball hits.

Chat Color
Chat Color

Configures chat colors for each type of message in transparent and non transparent chat.

Chat commands
Chat commands

Allows easy lookup of !level(s), !price(s), !kc(s), and !pb(s) from the chat box.

Clan chat
Clan chat

Adds the sender's rank to clan chat messages.

Clue scroll helper
Clue scroll helper

Gives answers to clue scroll riddles/anagrams/ciphers/cryptic clues.

Custom overlay position
Custom overlay position

Allows you to move RuneLite overlays to any position on the screen.

Daily task indicators
Daily task indicators

Notifies you on login what daily tasks you are able to complete.

Discord integration
Discord integration

Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties

Dwarf multicannon
Dwarf multicannon

Displays the number of cannonballs left in your cannon, along with common cannon spots.

Fairy Ring Filter
Fairy Ring Filter

Allows you to filter the fairy ring destination menu.

Farming Tracker
Farming Tracker

Displays current farming patches and approximate completion.

Fishing
Fishing

Highlights fishing spots and tracks fishing stats.

GPU
GPU

Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.

Grand Exchange lookup
Grand Exchange lookup

Quickly price-check any item on the Grand Exchange.

Grand Exchange offers
Grand Exchange offers

Lists your current Grand Exchange offers.

Ground items
Ground items

Hides, highlights, and adds filterable price colors to dropped items.

Herbiboar
Herbiboar

Highlights the path and objects to search at the end of the trail.

Hunter
Hunter

Adds timers to hunter traps.

Idle notifications
Idle notifications

Sends system tray alerts when idle or about to be logged out.

Impling finder
Impling finder

Highlights nearby implings on the minimap and on-screen.

Inventory Tags
Inventory Tags

Allows you to assign group tags to inventory items.

Inventory Viewer
Inventory Viewer

Displays an overlay of your current inventory.

Item stats
Item stats

Displays information about food and potion effects.

Jewellery charges
Jewellery charges

Displays the number of charges that your jewellery has.

Light Box Puzzle Solver
Light Box Puzzle Solver

Solves light box puzzles during clue scrolls.

Loot Tracker
Loot Tracker

Shows kill count and drops with prices from monsters you kill.

Low detail mode
Low detail mode

Enables low detail mode, removing some of the game's eye candy.

Mage Training Arena
Mage Training Arena

Overlays to assist in each of the MTA rooms.

Menu entry swapping
Menu entry swapping

Swaps the left-click actions of certain objects.

Minimap dot customizer
Minimap dot customizer

Customizes the color of minimap dots.

Miscellania favor
Miscellania favor

Displays your current favor and treasury in the Kingdom of Miscellania.

Motherlode Mine
Motherlode Mine

Marks veins and rock obstacles in the Motherlode Mine.

News feed
News feed

Displays the latest RuneLite blog posts, OldSchool RuneScape news, and a Twitter feed of JMods.

Nightmare Zone
Nightmare Zone

Displays NMZ points/absorption and notifies you about expiring potions.

NPC tagging
NPC tagging

Tags and keeps track of an NPC.

Party
Party

Integrates with Discord's party feature to display party members discord name, hp, prayer points, and map location

Player indicators
Player indicators

Draws the names of friends, clan mates and yourself overhead.

Player-owned houses
Player-owned houses

Displays minimap icons and marks unlit/lit burners.

Prayer Bar
Prayer Bar

Displays a prayer bar underneath your hitpoints bar.

Puzzle box solver
Puzzle box solver

Shows you where to click to solve puzzle boxes.

Raid scouter
Raid scouter

Displays the current layout of raids and tracks the raid duration.

Regen timers
Regen timers

Tracks and displays the hitpoints & special attack regen timers.

Rogues' Den
Rogues' Den

Marks tiles and clickboxes to help you traverse the maze.

Runecraft
Runecraft

Displays minimap icons and clickboxes for abyssal rifts.

Rune pouch
Rune pouch

Shows what runes are currently in your rune pouch.

Shift click configuration
Shift click configuration

Allows you to change/set shift click actions on items.

Status Bars
Status Bars

Shows health and prayer bars next to the inventory.

Status widgets
Status widgets

Shows boost timers, enemy HP, and other useful overlays.

Stretched mode
Stretched mode

Stretches the game to the size of your window.

Team cape overlay
Team cape overlay

Displays team cape wearer counts.

Tears of Guthix
Tears of Guthix

Displays the remaining time for streams of tears.

Tile indicator
Tile indicator

Marks the tile you last clicked on.

Tithe Farm
Tithe Farm

Displays timers for the farming patches within the Tithe farm minigame.

Woodcutting
Woodcutting

Displays information about the logs you are cutting.

XP globes
XP globes

Displays skill globes when you gain XP, with more detailed stats on hover.

XP Tracker
XP Tracker

Side panel displaying xp data for each skill you have trained.

Zoom unlimiter
Zoom unlimiter

Allows you to zoom past the default camera distance limits.

\ No newline at end of file diff --git a/img/blog/1.10.27-Release/notif1.png b/img/blog/1.10.27-Release/notif1.png new file mode 100644 index 0000000000000000000000000000000000000000..b58b1adc18772349ada2aaeeded9d888ca46b760 GIT binary patch literal 1195 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 OUQ7%?`fqieBmM_GK$sE$ literal 0 HcmV?d00001 diff --git a/img/blog/1.10.27-Release/spellbook.mp4 b/img/blog/1.10.27-Release/spellbook.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5cb4c61343fdb6cf8f1065191ff10f201f58c769 GIT binary patch literal 503353 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 z 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

pu{-Omd)@|h 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'_ie%j+RgbuIB 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%0D_dVXBLK}j&U)E%Kx~46Pm5L?aKeJ4JH!?q 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­tqnx?c0?-otjP(T9qAS-bR` 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 7aa1071566..38e2dd71fa 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -RuneLite - Open Source Old School RuneScape Client

FEATURES

SHOW ALL FEATURES

Discord integration
Discord integration

Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties

GPU
GPU

Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.

Loot Tracker
Loot Tracker

Shows kill count and drops with prices from monsters you kill.

Status widgets
Status widgets

Shows boost timers, enemy HP, and other useful overlays.

LATEST NEWS

SHOW ALL NEWS

\ No newline at end of file +RuneLite - Open Source Old School RuneScape Client

FEATURES

SHOW ALL FEATURES

Discord integration
Discord integration

Integrates with Discord's Rich Presence to display what you're doing in the game and allows to form in-game parties

GPU
GPU

Renders game using your GPU, which provides better FPS, increased draw distance, enhanced scaling and anti-aliasing.

Loot Tracker
Loot Tracker

Shows kill count and drops with prices from monsters you kill.

Status widgets
Status widgets

Shows boost timers, enemy HP, and other useful overlays.

LATEST NEWS

SHOW ALL NEWS

\ No newline at end of file diff --git a/plugin-hub/index.html b/plugin-hub/index.html index 8e08af02e5..91530e3dbd 100644 --- a/plugin-hub/index.html +++ b/plugin-hub/index.html @@ -1,4 +1,4 @@ -Plugin Hub - RuneLite

Plugin Hub

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.

For more information about the Plugin Hub and how to install these plugins, read the guide on our wiki.

14,558,649 active installs
934 plugins
Quest Helper
Zoinkwiz

479,751 active installs

A helper for questing

117 HD
117

345,607 active installs

GPU renderer with a suite of graphical enhancements

Guardians of the Rift Helper
BofaBear

261,290 active installs

Displays info during the Guardians of the Rift minigame.

Tombs of Amascut
LlemonDuck

227,168 active installs

Utilities and information for raiding the Tombs of Amascut.

Zulrah Plugin
while-loop

206,571 active installs

Panel to show Zulrah rotations

WikiSync
andmcadams

204,500 active installs

Send off bits of your player's data so the wiki can personalize your experience

Tile Packs
TrevorMDev

192,994 active installs

A collection of tile markers

Skills Progress
m0bile btw

191,416 active installs

Adds progress bars to the skills tab to show how close the next level ups are

Banked Experience
TheStonedTurtle

189,696 active installs

Calculates your banked experience

Bank Tag Layouts
geheur

181,638 active installs

Right click bank tag tabs to enable layout, then drag items in the tag to reposition them in whatever order you like.

The Gauntlet
rdutta

181,510 active installs

All-in-one plugin for The Gauntlet.

Rogues' Den
Nightfirecat

168,261 active installs

Mark tiles and clickboxes to help traverse the maze

Mahogany Homes
TheStonedTurtle

168,016 active installs

Shows useful information about your current Mahogany Home contract

Tempoross
Canvasba

155,500 active installs

A plugin that shows useful timers and highlights certain objects for the Tempoross boss

Better NPC Highlight
Buchus

151,691 active installs

A more customizable NPC highlight

Essence Pouch
Adam

151,250 active installs

Shows how many essence are in essence pouches.

Fight Cave Waves
Nightfirecat

149,721 active installs

Shows monsters that will spawn on the current and/or next wave

Equipment Inspector
sean-duffy, waistcoat, and botanic

149,614 active installs

Inspect other players equipment.

Hub Party Panel
TheStonedTurtle

142,406 active installs

Adds a side panel that displays useful information about your RuneLite party members who are also using this plugin

Collection Log
evansloan

141,849 active installs

Display total collection log progress. Click through the collection log to update progress.

Inventory Setups
dillydill123

141,535 active installs

Save gear setups for specific activities

Easy Giant's Foundry
Toofifty

138,951 active installs

Helpful overlays for the Giant's Foundry minigame

Radius Markers
Skretzo

133,893 active installs

Display NPC radius regions like attack, hunt, max and wander range

Kitten Tracker
pieterjanbuntinx

116,825 active installs

Show the status of your kitten and gives alerts to feed and play with your kitten

Wilderness Lines
Nightfirecat

113,438 active installs

Show wilderness multicombat areas, the dragon spear range to those areas, and level 20 and 30 lines.

Hunllef Helper
Loze-Put

111,872 active installs

Calls your prayers when fighting the Hunllef!

Max Hit
Matt 12 years later

104,698 active installs

Tells the player their max hit in their current gear

Resource packs
melky

103,954 active installs

Allows you to change the look of the UI in runescape

One Click Summer Garden
LlemonDuck

102,546 active installs

Provides utilities for doing the one-click Summer Garden method.

CoX Timers & Additions
De0

101,708 active installs

Room timers, Thieving bat finder & grubs, and Vanguards highlight for Chambers of Xeric

Chompy Hunter
Botanophobia

99,853 active installs

Improves chompy bird hunting.

Fight Caves Spawn Predictor
Damen

93,821 active installs

Determine the spawn rotations for Fight Caves

Runecrafting Utilities
Jacob Petersen

93,658 active installs

Provides various menu swaps to improve runecrafting

Loot Lookup
TommyTwelve

93,188 active installs

Displays monster drops from the OSRS Wiki

Barrows Doors Highlighter
Jordan Hans

91,650 active installs

Highlights unlocked and locked doors in Barrows to easily view the correct path.

Customizable XP drops
L2-

90,118 active installs

Allows you to customize your xp drops in more ways than in-game.

Optimal Quest Guide
cesoun

89,300 active installs

Optimal Quest Guide for a Quest Cape via Oldschool Wiki

Thrall Helper
PortAGuy

88,005 active installs

Shows a box that reminds you to summon a thrall

Wasted Bank Space
mcgeer,Bebop79

83,780 active installs

Interface to show items which are wasting space in your bank

Left Click Dropper
Zom

80,216 active installs

Lets you left click drop items based on a custom list of items.

Plank Sack
Enriath

79,669 active installs

See the contents of your Plank Sack at a glance

Crab Stun Timers
Ankou

78,096 active installs

Timers for when crabs in CoX get unstunned.

Wilderness Player Alarm
Alex

77,883 active installs

Alerts you when another player is detected nearby in the wilderness

Shortest Path
Runemoro

75,257 active installs

Draws the shortest path to a chosen destination on the map (right click a spot on the world map to use)

Bossing Info
MrNice98

75,204 active installs

Provides various boss kills times, statistics & utilities.

Runedoku
AdituV

75,165 active installs

A Runedoku helper plugin

Visual Metronome
Vincent0955

74,732 active installs

Shows a visual cue on an overlay every game tick to help timing based activities

Improved Tile Indicators
LeikvollE

73,384 active installs

An improved version of the tile indicators plugin

C Engineer: Completed
m0bile btw

71,120 active installs

C Engineer announces when you complete an achievement

Custom Menu Swaps
geheur

70,958 active installs

Custom text-based swaps and assign different hotkeys for certain different menu entry swaps (e.g. "T" for withdraw-10 but "F" for withdraw-5). Currently includes bank withdraw/deposit, spirit tree/fairy ring, and occult altar swaps.

Ba Minigame
BegOSRS

70,810 active installs

Includes some features to enhance the barbarian assault minigame gameplay experience.

Gauntlet Minimap
Vic Segers

69,946 active installs

Displays the resource nodes of the Gauntlet on your minimap

ToA Puzzle Helper
Tiiiiiiiiiim

69,937 active installs

Displays various static images for puzzles

Ping Graph
yuh25

69,353 active installs

Graphs the ping to the current world

Menu Swapper Extended
raiyni

68,401 active installs

External hub for extra menu swapper additions. To request/add more swaps visit the help repository.

Flipping Utilities
Beliael

67,927 active installs

Profit tracking, margin displays, statistics, and more.

Loot Logger
TheStonedTurtle

66,604 active installs

Stores Loot Tracker data locally and adds new side-panel UI

Fight Cave Helper
runkev

63,861 active installs

Plugin to display Fight Cave wave spawns

Monster Hp Percentage
Le Jeffe

62,643 active installs

This plugin adds the ability to see the current monster hp in a true value or a percentage of the total Hp

Improved Tears Interface
Cyborger1

62,021 active installs

Improves the Tears of Guthix minigame interface with a proper tick timer and current action indicator

Crab Solver
TheStonedTurtle

61,711 active installs

Shows the correct color for each crab crystal

Stealing Artefacts
UIM Heals,pajlads

60,632 active installs

A plugin to assist with Stealing Artefacts in Port Pisc

Shooting Stars Tracking
Patrick

58,660 active installs

Tracks the location and eta for shooting stars and provides a way of sharing star locations between players.

RuneWatch
while-loop

58,622 active installs

Check if players are on the RuneWatch or WDR watchlist

RaidReloader
Trevor

57,560 active installs

Lets you reload your raid to scout further

Bot Detector
Ferrariic

53,577 active installs

Identifies bots by sending nearby player information to a third-party machine learning algorithm, trained with data provided by Jagex Moderators.

Door Kicker
Enriath

53,297 active installs

Assert your dominance against the doors

ToB QoL
Damen

52,978 active installs

Quality of Life Features for TOB

Clan Events
Maz

52,565 active installs

A plugin used to keep track of clan events.

Large Logout
dekvall

52,058 active installs

A large logout button

Bats Locator
chestnut1693

51,734 active installs

Helps locate the chest with bats at the thieving room inside Chambers of Xeric

Herbi AFK
Maurits825

51,615 active installs

Makes Herbiboar more AFK.

Time Tracking Reminder
queicherius

49,868 active installs

Extend the "Time Tracking" plugin to show an infobox when bird houses or farming patches are ready.

Cox Additions
Buchus

48,990 active installs

Additional QOL features for CoX

Better Teleport Menu
Abex

46,464 active installs

Customize hotkeys for the Spirit Tree/Jewelery box/Portal nexus layout/Diary/Construction cape interfaces

Zalcano
Tjieco

46,433 active installs

Zalcano Utility Plugin

Damage Counter
0anth

46,100 active installs

Counts how much damage you did to a boss

Emote Clue Items
Lars van Soest

45,956 active installs

Highlights items required for future emote clue steps. Provides a collection log for items and STASH Units.

Supplies Tracker
Patrick

45,844 active installs

Tracks supplies used during a session

Fish Barrel
molo-pl

45,521 active installs

Shows how many fish are in the fish barrel

Blackjack
Sean M

45,448 active installs

Help show whether or not a blackjack-able NPC is knocked-out

Annoyance Mute
Brooklyn

44,635 active installs

Selectively mute annoying game sounds

DPS Calculator
LlemonDuck

44,030 active installs

Calculate DPS against NPCs based on equipment, skills and prayers.

Weapon Charges (WIP)
geheur

42,868 active installs

Support for more weapons coming soon!

Bank XP Value
dseeler

42,620 active installs

All-in-one banked xp viewer + item xp tooltips

Raid Data Tracker
Canvasba

42,149 active installs

Tracks all loot received within the Chambers of Xeric, including splits. Also tracks the total, and personal points received, so that you can accurately determine your personal droprate, and dryness.

Item Charges Improved
TicTac7x

41,830 active installs

Show charges of various items

Spam filter
jackriccomini

41,502 active installs

A spam filter for public chat

CoX Light Colors
Ankou

41,170 active installs

Set the colors of the light above the loot chest in Chambers of Xeric

Fishing Notifier
Bram91

40,824 active installs

Notifies the moment you go idle while fishing

PvP Performance Tracker
Matsyir

40,609 active installs

Estimate performance in PvP by tracking various stats.

Tick Tracker
Tatterss

40,524 active installs

A plugin to track server ticks

Player Outline
neilrush

39,464 active installs

A simple plugin that outlines the player allowing you to see the player behind objects.

Fashionscape
equirs

38,917 active installs

Preview equipment by changing local player appearance

Not Empty
dekvall

38,896 active installs

Never empty potions again!

Shooting Star Info
Patrick

38,848 active installs

Displays various info about shooting star that you find/mine such as tier, number of miners, health %.

Clue steps
sky

37,957 active installs

Shows the amount of steps completed on each clue scroll.

Monster Menu HP
Ankou

37,952 active installs

Shows monsters' HP in their right-click menu entry

NMZ Optimal Points
Bloogeyz, Nate Wiebe

37,778 active installs

A plugin to help you getting optimal points in NMZ by showing you the enemy's points

Easy Blast Furnace
Toofifty

37,655 active installs

Helps you train at the blast furnace more efficiently

Slayer Assistant
LeeOKeefe

36,473 active installs

Provides information on slayer tasks

CoX Scouter External
Truth Forger

36,411 active installs

Shows additional information for the Chambers of Xeric raid

High Alc Profit Highlighter
Bloogeyz,Atroxide,neilrush,clarkey252

35,256 active installs

Highlights bank and inventory items that have a profitable high alc value

Party Defence Tracker
Buchus

35,241 active installs

Calculates the defence of a boss based off special attacks

Bird Run Alert
ffalor

34,884 active installs

Bird run alert for those bird runs. ALERT!

ToA Points Tracker
AbusiveTuna

34,773 active installs

A plugin to display your points at ToA

Detached Camera
Adam

34,060 active installs

Allows free roaming the camera

3D Weather
ScreteMonge

33,851 active installs

Gives immersive, 3D Weather with dynamic Weather cycles and ambience

Wintertodt Notifications
Jodelahithit

33,839 active installs

Visual notifications for Wintertodt

Shooting Stars
andmcadams

32,906 active installs

Provides a way to crowdsource shooting star information through an external server

Star Miners
Cute Rock

32,710 active installs

Displays a list of active stars and crowdsources data about stars you find and mine

Raid Points Overlay
Trevor

32,626 active installs

Replace the vanilla raids points widget with a runelite overlay

Calculator
Spedwards

32,416 active installs

Adds a calculator panel

Pickpocket Helper
Ruben

32,360 active installs

Adds quality of life improvements for pickpocketing.

Toa Mistake Tracker
Questing Pet

31,898 active installs

Tracks mistakes for you and your teammates in the Tombs of Amascut. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

Motherlode Mine Improved
TicTac7x

31,812 active installs

Better indicators for ore veins

Pyramid Plunder Counter
adnapPanda

31,440 active installs

This plugin will display how many golden chests and sarcophagi you have successfully opened in your session.

Spring Garden
Majesty373

30,824 active installs

This helps with the Sorceress's Spring Garden

Camera Smoothing
ArtsicleOfficial

30,821 active installs

Makes camera rotation and zooming smooth.

Fortis Colosseum
LlemonDuck

30,754 active installs

Utilities and information for the Fortis Colosseum.

BA Call Highlight
Rugg0064

30,503 active installs

Automatically highlights the correct call in Barbarian Assault.

CoX Censor
Karambtwo

30,366 active installs

Censors CoX uniques and reveals them once the chest is opened.

Zoom Extender
Adam

30,230 active installs

Extends the inner zoom limit further

Autumn Garden
Ailie Luibh

30,175 active installs

An adaptation of Majesty373's Spring garden plugin to help with the Sorceress' Autumn Garden

Picture in Picture
DekuScrub

30,037 active installs

Display Picture in Picture mode when RL is not active

Barrows Potential
GodofDrakes

29,739 active installs

Indicates which monsters you should kill in order to achieve the desired Barrows reward potential

Ground Object Hider
Leo288

29,658 active installs

Hides Ground Objects. A selector is used to choose objects to hide.

Action Progress
Caleb Whiting

29,499 active installs

Display action progress

Tithe Farm Improved
TicTac7x

29,432 active installs

Improve overall experience for Tithe farm

One Tick Flick Metronome
Minhs2

29,314 active installs

A metronome timed specifically to aid with one tick prayer flicking.

Wise Old Man
dekvall

28,689 active installs

The companion plugin for wiseoldman.net - Track your gains, participate in competitions and manage your groups.

ImplingSaver
Nate

28,319 active installs

Stops you from opening Impling Jars if you have corresponding clue

Visual Ticks
Nerdpuff

28,246 active installs

Adds a customisable visual tick overlay.

Nex Nostalgia
Hexagon

27,672 active installs

Adds Nex voice over effects

Weapon/Gear/Animation Replacer
geheur

27,504 active installs

Run like a monkey, turn your whip into a scythe, transmog gear, and more!

AFK Countdown
Im2be

27,322 active installs

Counts down until you log out due to AFK

Pickpocket Info
Diabolickal

27,212 active installs

Shows additional pickpocketing information like success rate, dodgy necklace charges, and coin pouch count.

Profit Tracker
nofatigue

27,054 active installs

Track profit while money making.

Teleport Maps
mjhylkema

26,997 active installs

Replaces teleport menus with interactive map interfaces. Graphics by NinjaPig.

Forestry CC
Rang

26,913 active installs

A plugin for tracking forestry cc events

Cannon Highlighter
ConorLeckey

26,802 active installs

Highlights NPCs in range of a cannon and tells you when they will get double hit

Shayzien Organised Crime
DylanLange

26,796 active installs

A plugin to help with tackling organised crime in Zeah

Companion Pet Plugin
MrNice98

26,362 active installs

Spawn any pet as a follower or to act as a thrall.

Gauntlet Calculator
Bwana Ian

25,911 active installs

Calculates materials needed for different setups in the gauntlet

Effective Levels
Xrio

25,413 active installs

Shows the invisible effective boosted skill levels in the skills tab, which are used in max hit, accuracy roll and defence roll formulas.

HD Minimap
Mark7625

25,073 active installs

Adds a HD Minimap from 2008!

Herblore Recipes
ClimbRideCode

25,067 active installs

Hover over a herblore ingredient or potion in your inventory or bank to see which potions can be made with it or that potion's recipe

Watson clue tracker
geheur

25,039 active installs

Tracks which clues watson has

Fossil Island
Adam

24,968 active installs

Removes scenery from Fossil Island to improve performance

Nexus Menu Map
Antipixel

24,776 active installs

Enables you to navigate the Nexus portal menu as an interactive map

Gnome Restaurant
Hexagon

24,625 active installs

Add quality-of-life features to the Gnome Restaurant minigame

Volcanic Mine
Hippipi

24,572 active installs

Notifications for events in the Volcanic Mine activity

Sulliuscep run
TicTac7x

24,261 active installs

Helpful clickboxes for sulliuscep run

Gauntlet Map
StickySerum

24,202 active installs

A real time map of the gauntlet

Tree Despawn Timer
CreativeTechGuy

24,067 active installs

Show an estimate of the remaining time until a tree is chopped down

CoalBag
NickWolff

23,068 active installs

Shows how much coal is in the coal bag

Vardorvis Projectiles
InfernoStats

23,044 active installs

Alter the Projectiles for Vardorvis' Prayer-Disable Attack

Rooftop Agility Improved
TicTac7x

22,850 active installs

Improved clickboxes for rooftop agility courses

NMZ Utilities
Zom

22,533 active installs

Notification when hp above threshold

Tob Mistake Tracker
Questing Pet

22,469 active installs

Tracks mistakes for you and your teammates in the Theatre of Blood. It will also track mistakes for other raiders while you're spectating. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

Pet Info
micro tea

22,109 active installs

Adds right click menu options to pets to provide info about how they are obtained and who their owner is

Guardians of the Rift Leech
Questing Pet

21,713 active installs

Plugin for helping to leech/afk in GotR by obtaining the minimum required points for rewards (150) and then mining the rest of the round. Useful while working. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

MLM Upper Level Markers
Cyborger1

21,618 active installs

Adds markers to veins that have been mined in upper MLM

Corp FFA
Box Of Hats

21,585 active installs

Count specs and check gear for the Corp Ffa07 CC.

ToB Light Colors
Maurits825

21,539 active installs

Recolors the ToB chest and adds a light beam above the chest

Tree Count
infinitay

21,455 active installs

A RuneLite plugin to track the number of players other than yourself chopping a tree

Spec Regen Timer
Bram91

21,390 active installs

Adds a tooltip to the spec orb with the remaining time till 100% spec

Green Thumb
Asthereon

21,262 active installs

Provides useful information for farming

Instant Inventory
Elg

20,922 active installs

Perform inventory actions instantly

Multicolor Highlights
sgfost

20,868 active installs

Highlight NPCs with different colors

Did I Compost?
AbusiveTuna

20,862 active installs

Tells you if you applied Compost or not to a patch.

Looting Bag
Patrick,Nicole

20,833 active installs

Overlays looting bag value / free spaces on the bag in inventory

Last Seen Online
molo-pl

20,430 active installs

Track when you've last seen your friends play

Theatre of Blood Stats
HSJ

20,355 active installs

Detailed time splits and damage tracker for tob

Decimal Prices
rmaes4

20,347 active installs

Allows the use of decimals when typing a custom price. E.g. 2.5k = 2500

Better Godwars Overlay
Denchy

20,285 active installs

Improves the GWD kill count overlay

Marks of Grace Counter
Cyborger1

20,222 active installs

Counts Marks of Grace spawns

Konar Milestone Reminder
michael-gutman

19,752 active installs

Reminds you to use Konar for more points at milestone slayer tasks

Fixed Mode Hide Chat
deathbeam

19,735 active installs

Hides chatbox in fixed mode and expands the view

Ultimate NMZ
iant89

19,639 active installs

AFK at Nightmare Zone, While watching youtube or playing a game? Say no more!

Nylo Death Indicators
InfernoStats

19,274 active installs

Hide dead nylos faster

Profiles
Spedwards

19,113 active installs

Allow for a faster log in

Set Timer
InfernoStats

18,991 active installs

A manual TzKal-Zuk set timer

Virtual Level Ups
Nightfirecat

18,871 active installs

Displays a level-up dialog when reaching a new virtual level

TOB Damage Counter
Trevor

18,856 active installs

Counts your damage for each room in the theatre of blood.

Wintertodt Scouter
nucleon

18,832 active installs

This plugin displays the Wintertodt Boss health on the 4 major worlds through crowdsourcing.

Prifddinas
David

18,367 active installs

Removes scenery from Prifddinas to improve performance

BirdhouseOverlay
hong-niu, li-cody

18,322 active installs

Color overlay to remind users to fill birdhouse with seeds after building.

Bank Heatmap
raiyni

17,831 active installs

Adds options on the bank menu button to display a heatmap of item values

AttackTimer
ngraves95

17,585 active installs

A plugin to countdown until your next attack

Discord Loot Logger
Adam

17,529 active installs

Logs loot received to a Discord Webhook

Easy Teleports
LlemonDuck

17,528 active installs

Replaces teleport destinations with colloquial or custom locations.

ToG Crowdsourcing
JC A

17,385 active installs

Plugin that crowdsources the optimal Tears of Guthix world

No Examine
Skretzo

17,094 active installs

Remove examine menu option to never missclick again

Master Farmer
ConradicalMel

17,067 active installs

Utilities that help when thieving master farmers

Inferno Stats
InfernoStats

17,052 active installs

In-depth stats about your Inferno attempts

Corner Tile Indicators
geheur

16,834 active installs

Draw only the corners for tile indicators.

Bank Memory
LazyFaith

16,698 active installs

Remembers all your banks, lets you instantly search them, and lets you compare their contents.

Tasks Tracker
Reldo.net

16,342 active installs

Provides a panel to track league/combat tasks & export for external services

Pathfinder
Milo Piazza & William Ferreira

16,239 active installs

Highlights your character's path to the hovered tile

Quick Prayer Preview
Enriath

16,221 active installs

Preview your quick prayers by hovering over the orb

Rainbow Rave
geheur

16,158 active installs

Makes things rainbow, including loot beams, because clearly seeing the game is for noobs who don't know how to play the game.

Bank Value Tracker
Adrian Elder

16,131 active installs

A plugin for tracking bank value over time.

Pouch time to degrade
DavidV

15,977 active installs

Shows how much essence you can put into your pouches before it degrades. Resets only when casting Contact.

Dense Runecrafting
Zom

15,876 active installs

Draws an overlay on the Dense Runestone in Zeah

Discord Rare Drop Notifier
BossHuso

15,714 active installs

Sends a detailed notification via Discord webhooks whenever you get a rare/unique drop.

Consumable Cooldowns
Copy Pasta

15,517 active installs

Displays cooldowns on food & drink items in your inventory

Efficient Fletching
adnapPanda

15,516 active installs

This plugin tracks how many fletching sets your character has left before becoming idle. Works for enchanting bolts as well.

Mage Arena 2 Memory
Herbs

15,480 active installs

Remembers the location of the Mage Arena 2 Bosses for all user accounts and draws each boss on the world map.

Max Hit Calculator
j-cob44

15,427 active installs

Calculates Max Hit stats for the current equipment setup.

Trouble Brewing
Biffo89

15,135 active installs

This plugin displays information about the number of points earned during a Trouble Brewing game.

Turael Skipping
BrastaSauce

14,989 active installs

Displays best location and information for Turael/Spria tasks

Giant's Foundry Gear Values
Speshkitty

14,976 active installs

Adds bar values to gear usable in Giant's Foundry

Patch Payment
zaaack

14,820 active installs

Creates a menu item to check a seed's required payment for a farmer to protect it

Nyloer
EIKOOT

14,737 active installs

Nyloer Plugin

Ring of Recoil Notifier
delps1001

14,450 active installs

A plugin to show a ring of recoil icon when your character is not wearing a recoil

Odablock Sounds
DapperMickie

14,280 active installs

Odablock announces when you complete an achievement

Transmogrification
Enriath

14,234 active installs

Wear the armour you want, no matter what you're doing.

Time to Level
while-loop

14,215 active installs

Panel to show how long until you get dopamine fireworks. /s

Death Indicator
Adam

14,159 active installs

Shows where you died and a timer until items despawn

Discord Death Notifications
elguy

13,984 active installs

Sends a message to a Discord channel when dying.

Bank Value
spudjb

13,966 active installs

Shows the value of your bank in the sidebar

Path Marker
GeChallengeM

13,942 active installs

Highlights your character's path to its target tile and/or to the hovered tile

Inferno Split Timer
usa-usa-usa-usa

13,857 active installs

Displays Wave splits in chatbox

Discord Notifications
WintZ

13,812 active installs

Sends a message to a discord channel when leveling a skill, completing a quest or dying. Optionally includes a screenshot.

Bank Tag Generation
Mitch

13,763 active installs

Allows the creation of bank tags from categories on the offical OSRS wiki

AfkTimer
MrMedicus

13,701 active installs

Notify yourself after you have been AFK for a specified amount of time

Camera Points
NullNameException

13,696 active installs

Allows you to save and load your camera zoom and a direction.

Blood Shard Notifier
Jurre Groenendijk

13,577 active installs

Plays a sound when you get a blood shard

Probability Calculator
Pharros

13,415 active installs

Calculates the statistical probability of various mechanics such as drops.

Dance Party
dekvall

13,298 active installs

Never celebrate a 99 alone again.

Stronghold of security question helper
severikupari1

13,135 active installs

Shows correct answer to security questions in stronghold of security dungeon

Spawn Marker
Thevir

13,094 active installs

Marks the tile where a creature have spawned

NPC ID
Xrio

12,964 active installs

Display identification information as text above NPCs

Volcanic Mine Stability Tracker
Hexagon

12,669 active installs

Tracks mine stability changes and draws them on the hud

Combat Achievements Timers
lukamircetic

12,626 active installs

Live timer during Combat Achievements Speedrun Boss Kills

Bank Equipment Stat Filter
Adam Giles

12,583 active installs

Adds a panel to search your bank for items in a slot sorted by a stat

Player Highlighter
Zettlematt

12,512 active installs

Highlights other players in a radius around the player.

Pickpocket Guardian
Drufix/Hiro/Orrezon

12,439 active installs

Prevents pickpockets when at or below the specified HP threshold. Also helps prevents deaths in Pyramid Plunder.

Clue Juggling Timer
geheur

12,419 active installs

Timers for dropped clues.

Slayer Additions
sky

12,316 active installs

Additional slayer features

Random Event Hider
YvesW

12,275 active installs

Adds the ability to hide specific random events that interact with you or with other players.

ToB Drop Chance Overlay
winterdaze

12,071 active installs

Displays estimated team and personal drop chance information at ToB

ItemRarity
Zamatica

12,045 active installs

Provides a visual highlight to the value of an item.

Boss Health Indicators
Rugg0064

12,028 active installs

Shows indicators for certain health percentages on boss health bars.

Unpotted Reminder
Ankou

11,980 active installs

Reminds you to drink your boost potions when you have them

Bank Tab Names
psyda

11,778 active installs

Customize your bank tabs with custom styled names

Tick Counter
winterdaze

11,767 active installs

Counts combat activity for nearby players

InstantDamageCalculator
Geeckon

11,714 active installs

Calculates damage dealt based on Hitpoints xp drop

Discord Collection Logger
Paul

11,671 active installs

Send discord message to webhook when a collection item is obtained

Bank Screenshot
raiyni

11,524 active installs

Take screenshots of your bank

OSRS Wiki Crowdsourcing
OSRS Wiki

11,475 active installs

Help the wiki figure out skilling success rates, burn rates, and more.

Emoji Palette
hjdarnel

11,325 active installs

Adds an emoji palette on the navbar for reference

Drop Sounds
LilJickDones

11,263 active installs

Play sounds on Valuable drop or Untradeable drop chat notifications, configurable in settings

Empty Forestry Basket
DominickCobb

11,159 active installs

Changes Use to Empty for the Forestry Basket in the bank

Dude, Where's My Stuff?
Thource

11,146 active installs

Find your stuff with ease.

Herb Sack Price Check
Broadbent

11,115 active installs

Tells you the price of the herbs in your herb sack

Unresponsive Cursor
Bluelitezero

11,081 active installs

When the server is unresponsive (Lag), the cursor will change.

Daily Tasks
TicTac7x

11,066 active installs

Daily infoboxes to annoy you to do your tasks

Arceuus Timers
Mantic

11,044 active installs

Better timers for Arceuus Spellbook

NPC Idle Timer
vonpawn, lejeffe

10,860 active installs

A utility to add overhead timers to select npcs to keep track of how long they have been standing on the same tile

AFK GOTR
Zom

10,816 active installs

AFK GOTR even harder!

Spirit Tree Menu
DekuScrub

10,778 active installs

Updates the Spirit Tree navigation menu

TaskJingle
Max

10,770 active installs

Plays jingle at end of slayer task

Current World
Brooklyn

10,718 active installs

Adds activity to the world switcher, overlays your current world

Watchdog Alerts
adamk33n3r

10,659 active installs

Create custom alerts for different events like messages, stats, or built-in notifications

ChatboxOpacity
Trevor

10,595 active installs

Lets you change the opacity of your chatbox

Tedious Collection Log
evaan

10,511 active installs

Tedious announces new collection log slots (fork of m0bile btws C Engineer plugin)

Better Discord Loot Logger
RinZ

10,389 active installs

Alerts you in discord using a webhook of new collection log items, pets etc.

Abex's Idle Notifier
Abex

10,228 active installs

An finicky idle notifier for mining & woodcutting

Idle Alarm
observnad

10,203 active installs

Plays alarm while player is idle

Slayer Helper
Anel Drocic

10,006 active installs

The Slayer Helper plugin which provides helpful slayer task information.

Balloon Transport System
TicTac7x

10,002 active installs

Show amount of logs stored in the balloon transport system storages

Dynamic Entity Hider
Jbleezy

9,966 active installs

Hides players when there are too many showing

Monkey Metrics
Lotto

9,953 active installs

Shows helpful information when chinning.

Runite Rocks
TheStonedTurtle

9,872 active installs

Tracks when runite rocks will respawn

Death Charge Reminder
InfernoStats

9,787 active installs

Death Charge Reminder

Nightmare Timers
De0

9,760 active installs

Time tracking for Nightmare phases and kill times

ToB QoL Improvements
WLoumakis

9,740 active installs

A small QoL plugin for the Theatre of Blood

Dink
pajlads

9,649 active installs

Discord compatible webhook notifications for Loot, Death, Levels, CLog, KC, Diary, Quests, etc.

Tob Health Bars
Trevor

9,625 active installs

Replaces the tob orbs with health bars

Herb Farming Calculator
Lucas Pickering

9,523 active installs

Calculate XP and profit from herb farming. Configure patches, boosts, etc. to get accurate projections.

Dynamic Inventory Tags
Amro Thabet

9,281 active installs

Sets tags on gear items based on the weapon equipped. Tags gear items that are missing from your current switch.

Hide Widgets
PresNL

9,275 active installs

Adds a hotkey that allows you to hide all the UI widgets for a clean look (Resizable only)

RSN Hider
ThatGamerBlue

9,257 active installs

Hides your RSN in chatbox and overheads.

Last Recall
dekvall

9,188 active installs

Map marker, verbose last location and stored memory overlay

XP Drop Extended
Keywok

9,174 active installs

Extended functionality to the existing XP Drop plugin.

Cox Analytics
Buchus

9,132 active installs

Detailed time and point tracking for Chambers of Xeric

Runecrafting Tracker
Harrison

9,040 active installs

Track your total profit and the amount of runes you have crafted

Specimen Cleaning
acdvs

9,033 active installs

Tracks the specimen cleaning activity in Varrock Museum

TOB HM Timer
Loze-Put

9,005 active installs

Display the timer in Theatre of Blood: Hard Mode.

Group Ironmen Tracker
Christopher Brown

8,963 active installs

Tracks information (skills, inventory, bank, etc.) about a group ironman player and sends it to a website for other group members to view

Advanced Notifications
Zakru

8,915 active installs

An advanced notification system

Better Overload
Aurelify

8,874 active installs

Improved overload timer, to account for world lag.

Temple Tracker
Canvasba

8,859 active installs

Tracks the points and duration of a temple trek, as well as all encounters, and the duration of each encounter.

Visual Sounds
Box Of Hats

8,837 active installs

Visually see any sounds that are playing in game

World country flags
melky

8,797 active installs

Replaces the word "World" inside clan chat / friends list with the respective country flag

Collection Log Luck
peanubnutter

8,792 active installs

Display luck for various collection log items. Pulls from collectionlog.net.

Prop Hunt
Idyl

8,762 active installs

Adds Prop Hunt to OSRS

Last Man Standing
Patrick

8,684 active installs

Game start notifications, options to highlight chests and loot crates, LMS Rank overlay, detects bots, opponent kill/death tracking.

Lance Enhance
Brooklyn

8,601 active installs

Override the Dragon Hunter Lance's run animation

Normal Ancient Teleports
Idyl

8,599 active installs

Renames the teleports in the Ancient spell book to their logical names

Resting
ScreteMonge

8,569 active installs

Allows the player to set a resting idle animation

CostumeRoomHighlighter
michaelperino

8,548 active installs

Helps clean your bank by highlighting everything that can be stored safely in your player owned house.

Instant Idle Notify
Patrick

8,485 active installs

Notifies when repetitive inventory processing is finished. E.g. Herblore, Fletching, Cooking. Visit github for more details.

Combo Runes Only
LlemonDuck

8,411 active installs

Removes the Craft-rune option from Runecraft altars, so you never misclick and make non-combination runes.

Line Markers
Skretzo

8,407 active installs

Draw lines on tiles

Lootbag Utilities
LootBagger

8,366 active installs

prevents destroying storage items (looting bag, rune pouch, etc.)

Animation Transmog
ArtimosPenguidor

8,330 active installs

A simple plugin which allows the player to customize which animations are used for various actions

Skills Generator
MakingStan

8,316 active installs

A plug-in that gives you tasks to do. An excellent plug-in when you have nothing to do.

Agility Pyramid Slider Block Timer
Wesley

8,175 active installs

Add timers to the sliding blocks of the agility pyramid in OSRS

Item Drop Sound Notification
Spongie

8,162 active installs

Plays a sound when you get an item listed in the configuration

Lazy Farming
Speaax

8,062 active installs

Item and overlay for farm runs. (Incomplete!)

Animated Icons
winterdaze

8,052 active installs

Display animated gif icons for items that have them

Ground Item Sounds
Pharros

8,017 active installs

Plays sound effects when specific ground item tiers appear.

Cat V Rat
Gunner Stone

8,012 active installs

Help remind yourself to feed your cat while it is fighting Hell-Rat Behemoths for spices!

Smart Metronome
Brooklyn

7,993 active installs

A metronome that only ticks when useful

Track Healers
mmdts

7,981 active installs

Tracks healer information for barbarian assault.

Butler Info
NickMckloski

7,908 active installs

A plugin to display POH butler info

Impling Finder
Hablapatabla

7,900 active installs

Crowd-sources locations of implings around Gielnor

Fullscreen
dekvall

7,871 active installs

RuneLite, but in fullscreen.

Life Saver
Keywok

7,808 active installs

Forces a notification when at or below the configured hitpoints.

Shift Remapping
WhatATopic

7,807 active installs

Allows remapping of shift key since it never got added to key remapping.

Ultimate Volcanic Mine
CyanWarrior4

7,723 active installs

Helpful tools for use with the Volcanic Mine minigame

Essence Running
Aaron

7,669 active installs

Change the default shift option that is displayed when hovering over objects associated with essence running

Dry Meter for Raids
RydawgRS

7,658 active installs

*BETA*A plugin which will keep track of your luck in raids. Only works in solos.

Tzhaar Hp Tracker
Buchus

7,598 active installs

Detailed HP tracking for both Fight Caves and Inferno NPCs.

Collection Log Master
ImTedious

7,565 active installs

A Collection Log Master Tier Plugin

GP Per Hour
Moshe Ben-Zacharia

7,502 active installs

Track your gp/hr across various trips and save your sessions for later viewing.

Line of Sight
krazune

7,441 active installs

Shows the player's line of sight.

Imbued Heart Notifier
JuliusAF

7,342 active installs

Highlights your imbued heart once it's ready to invigorate

Global F Keys
Sir Girion

7,341 active installs

Allows you to set F key mappings globally, independent of the account being played on

Protect Item Notify
Mathew Chapman

7,279 active installs

Reminds you to protect item.

Brush Markers
Bram91

7,158 active installs

Get creative with your groundmarkers

Runecrafting Lap Tracker
JwowSquared

7,123 active installs

Tracks laps until pouch degradation

BA Plus
Furret

7,092 active installs

Adds speedrunning splits and other post-game info (points, missed arrows, hp vialed)

Sandstone Buckets Counter
wookkeey

7,047 active installs

Show helpful counter of how many buckets of sand in sandstones player has in their inventory and grinder

Wilderness Slayer
BrastaSauce

7,030 active installs

Displays best location and information for wilderness tasks

Vengeance Tracker
MrNice98

6,997 active installs

Places a small vengeance icon next to any player you see receive vengeance and more. (works with party plugin)

World Cycle
1Defence

6,931 active installs

Lighter, custom version of world hopper used to hop between a set of worlds circularly

ToB Light Up
Brooklyn

6,870 active installs

Removes the dark overlay from outside ToB

Home Enforcer
Enriath

6,855 active installs

Stop your Mahogany Homes from shifting into other realities

Wintertodt Solo Helper
Aqua UIM

6,792 active installs

Assist in soloing Wintertodt

Equipment Screenshot
Truth Forger

6,764 active installs

Takes screenshots of inventory and equipt items by right-clicking the equipment tab

Don't eat it!
Enriath

6,703 active installs

Make every item that has a Use option have it as left click

ToA Missing Pickaxe Indicator
Sorgrum

6,657 active installs

Don't forget your pickaxe in ToA ever again

More Fireworks
Marbleturtle

6,624 active installs

Causes fireworks when people say gz, @@@, a customizable messages or when you get high value drop.

Flipper
Kyle Richardson

6,591 active installs

Grand Exchange merchanting tracking, high alch tracking, and flip finding utilities

In Game Timer
Idyl

6,564 active installs

A timer / stop watch that tracks in game time

Skilling Notifications
Jodelahithit

6,521 active installs

Visual notifications on idling from skilling

Rlweather
Bogstandard

6,513 active installs

Weather for Old School Runescape

Great Guardian Hider
Horseforlunch

6,512 active installs

Hides Great Guardian in GOTR so some alters are easier to click

Seaweed Spore Notifier
rbbi

6,485 active installs

Notifies you when seaweed spores spawn

Wilderness Boss Peek
Patrick

6,466 active installs

A plugin that assists peeking wilderness boss caves with color highlights based on activity and time since peeked.

Inferno Tracker
evaan

6,457 active installs

A plugin to help track your inferno attempts.

Citizens
Magnaboy

6,449 active installs

Adds citizens to help bring life to the world

Emoji Madness
dekvall

6,399 active installs

Use emojis instead of words

Combat Information
KMPLX

6,372 active installs

Combat information overlay for combat stats, attack style, and auto-retaliate setting.

Skull Notifier
Trevor

6,329 active installs

Notifies you if you get skulled or unskulled

Charge Calculator
Fisu

6,301 active installs

Fill charges to chargable items easier.

Loading Lines
De0

6,300 active installs

Draws loading lines on screen

Metronome Infobox
kentor

6,238 active installs

A visual metronome as an infobox

Recently Banked Items
Patrick

6,195 active installs

A Runelite plugin that keeps track of items you have recently withdrawn/deposited so you can quickly grab items you recently used.

Region Locker
slaytostay

6,155 active installs

Plugin for chunk locked accounts

Aerial Fishing
Patrick

5,998 active installs

Reduce clicks and fish faster at Aerial Fishing!

Client Resizer
YvesW

5,981 active installs

Allows for automatic or hotkey-based resizing and repositioning, for snapping the client back/containing it in screen, and for client anti-drag.

Crop Circle Tracker
mattjrumble

5,961 active installs

Crowdsourced crop circle tracking

Combat Level Calculator
Herbs

5,888 active installs

Calculate combat levels based on given skill levels

Mini Bars
Skeldoor

5,848 active installs

Show HP/Pray/Run/Spec in Mini Bars

Aqp Finder
Elixir140

5,769 active installs

Finds "q p" in chat and displays spaces needed to match "w" underneath

Interactable Hints
DekuScrub

5,731 active installs

Highlights interactable objects/NPCs

Discord Level Notifications
Takamok

5,708 active installs

Sends a message to a discord channel when leveling a skill. Optionally includes a screenshot.

Random Event Analytics
z-index

5,680 active installs

Displays random event timers and logs events.

Temple Trekking Swamp Helper
PlayerCoder1

5,680 active installs

Tell you which way to go in the swamp without having to check manually

Group Iron Panel
toasty-toast

5,657 active installs

A panel that displays your Group Ironman group's skills and hiscores all in one place

Mouse Click Counter
Robert Espinoza

5,602 active installs

Tracks all types of mouse clicks in the active session.

Volcanic Mine pre-reset notifier
Kitsch#9214

5,599 active installs

Notifies on stability change 6 mins or prior for A role and B/C role within the Volcanic Mine

Hydrate Reminder
jmakhack

5,573 active installs

Reminds players to take a hydration break on a set interval

Fake Iron Icon
ThatGamerBlue

5,568 active installs

Shows a fake ironman icon next to your name. Stripped down version of what Skiddler, Ron, Purpp and EVScape have

Afk Marks Canafis
powerus117

5,521 active installs

Allows you to afk on the last roof of canafis for marks

Chinbompa
Adam

5,510 active installs

Replace cannonballs with chinchompas

Inventory Total
Eric Versteeg

5,489 active installs

Shows the total GE value of all items in your inventory.

Entrana
Patrick

5,484 active installs

A Runelite plugin to highlight items not allowed on Entrana before travelling there from Port Sarim.

H.A.M Store Rooms
Geel

5,467 active installs

Highlights chests which you have keys for in the H.A.M Store Rooms

Tileman Mode
ConorLeckey

5,449 active installs

Automatically draws tiles where you walk

Godbook
InfernoStats

5,448 active installs

Godbook Preach Timer

Identificator
Skretzo

5,444 active installs

Show IDs for NPCs, objects, animations and more

Video Recorder
Skretzo

5,435 active installs

Capture the in-game screen as a video

Uncharged Glory Warning
Nightfirecat

5,275 active installs

Warns you if you enter the wilderness with uncharged amulets of glory

Blindfold
StevenWaterman

5,274 active installs

Blindfolds you, so you can't see anything except for your character

POH Storage
DekuScrub

5,265 active installs

Filter and configure POH Storage

Contextual Cursor
Enriath

5,239 active installs

RSHD-style context cursors on hovering

Phoenix Necklace Jingle
Nope1252

5,057 active installs

Plays a sound when your phoenix necklace breaks

Automatic Low Detail
bepzi

4,916 active installs

Automatically turn off ground decorations while inside certain areas (like raids)

Not Enough Runes
Hannah_GBS & LlemonDuck

4,890 active installs

Sources and products for every item in the game!

Inventory Summary
Enriath

4,870 active installs

A compact summary of your inventory

Bank Diff
dekvall

4,858 active installs

See your bank progress from a certain point in time

Profit Calculator
LlemonDuck

4,853 active installs

Enables calculation of profit through inputs and outputs on a side panel.

Model Exporter
Bram91

4,816 active installs

Export game models and animation sequences.

Cox Scav Calculator
Bwana Ian

4,804 active installs

Helps calculate scav materials and herbs needed for CoX runs

Health Notifications
Thomas Anderson

4,796 active installs

Visual notifications of health status

Custom Drop Sounds
daanbom

4,783 active installs

custom sounds for drops you get

Iron Value
hawkins

4,743 active installs

Item Values for Iron Players

Motherlode Profit Tracker
Smeety

4,742 active installs

Track your profits at the Motherlode Mine with ease.

Party Health Status
1Defence

4,740 active installs

Visual representation of your party members hitpoints

Stack Value
Sheeva

4,730 active installs

Shows value of stacks using colors

Text to speech
JesseVii

4,699 active installs

Text to speech for chat, dialog, menu options and notifications

Barb assault PBs
SkylerMiner

4,606 active installs

Saves Personal Bests for Barbarian assault

Altered Stats
Jason

4,547 active installs

Shows any stats that are altered from their current level. This only tracks hard level changes (such as from potions) and not invisible boosts (like the celestial ring).

PvMTickCounter
Chrisioman

4,528 active installs

Adds a variety of tools to calculate individual damage dealt based of seconds or combat ticks. Can keep track of how many max hits are landed Also counts individual combat ticks versus others in the same instance based off weapon used.

Default Tab
Damen

4,509 active installs

Set and load a specific tab on every login

Combat Logout Timer
LuxOG

4,450 active installs

Configures the display for the 10 second timer that prevents logout upon being hit in combat

Custom RSN Hider
ifeq

4,413 active installs

Replaces your RSN in chatbox and overhead chat with a realistic name.

Chat Filter Updater
Lntranet

4,368 active installs

A plugin that updates the chat filter regex list from a GitHub URL.

ToG Indicator
LlemonDuck

4,363 active installs

Adds an icon to the skill which will receive the Tears of Guthix reward.

Plugin Presets
antero111

4,347 active installs

Create presets of your plugin configurations.

Clue Hunter Finder
Bromkommer

4,331 active installs

Helps you find the clue hunter outfit

EmojiScape
Hannah_GBS

4,326 active installs

Adds Runescape icons to chat

Default Minimap Zoom
YvesW

4,324 active installs

Allows the user to set the default minimap zoom.

Party Ready Check
Scainburger

4,312 active installs

Display an alert to check ready status of your party

Exchange Logger
istid

4,277 active installs

Stores all GE transactions in a log file

Low Detail Chambers
Unholypanda

4,272 active installs

Enabled client low memory mode specifically in Chambers of Xeric without the need to toggle it.

Alch Blocker
robrichardson13

4,268 active installs

Allows you to block items from being alched

Nex Splits
Buchus

4,256 active installs

Detailed time tracking for Nex

Death Party
Dang It

4,248 active installs

Make sure the whole team is having fun when someone dies. Fireworks on death for all nearby players.

Client Anti Drag
1Defence

4,234 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Prevents moving the client unintentionally

StopMisclickingTiles
WhatATopic

4,211 active installs

Shift + Right-click a tile to disable the "walk here" action on it.

Camera Keys
neilrush

4,188 active installs

Adds hotkeys for camera zoom and direction

Sound Swapper
Pete,Damen

4,186 active installs

Allows the user to replace any sound named in the wiki sounds list https://oldschool.runescape.wiki/w/List_of_in-game_sound_IDs

Lizardman Shaman Minion Alert
baloooouu

4,153 active installs

Alerts you when a nearby Lizardman shaman spawns minions

Impolite Slayer
Daxe

4,127 active installs

Makes your character less polite when receiving a bad task from a slayer master

Named Pets
pappymint

4,112 active installs

Give your beloved pets a name!

Nature Rune Chest
Travis Earley

4,111 active installs

A plugin that adds a timer and readiness indicator for thieving nature rune chests

Keybinds overlay
Kuldar Vakker

4,095 active installs

It is easier to learn keybinds, when they are at your sight.

Tick Timestamp
Skretzo

4,095 active installs

Display a game client tick count as a timestamp on game chat messages

Nievive
claudiodekker

4,091 active installs

Revives Nieve

TOA Life no More
PaJau

4,087 active installs

Hide Choose option from Supplies Bundles

Custom Item Tags
agustin

4,047 active installs

A plugin to add custom text under items in inventory

Better Skill Tooltips
Enriath

4,035 active installs

Enhance your vanilla skill tooltips!

Inventory Value Overlay
WikiWorm (Brandon Ripley)

4,023 active installs

Displays an overlay showing the cumulative value of all items in the player's inventory.

Amulet of Chemistry Alerter
Josmoo

4,019 active installs

Alerts the user when making unfinished potions without an amulet of chemistry

Tombs of Amascut Stats
Red Rookie

3,946 active installs

Provides detailed phase times and damage tracking for ToA

ToA Custom Presets
Denchy

3,941 active installs

Allows you to change the name of ToA presets!

GE Filters
Salverrs

3,840 active installs

Search filters for the Grand Exchange.

Raid Shamer
Botanophobia

3,827 active installs

Takes a screenshot of deaths during bosses and raids. Supports discord webhook integration.

RL Tray Notifications
Trevor

3,781 active installs

Allows for custom tray notifications. No longer do you have to deal with terrible windows tray notifications. Original author: abex

DPS Helper
LH

3,752 active installs

Plugin to help you increase your dps by telling you ticks between attacks

Tray Indicators
DMAD777

3,745 active installs

Displays your hitpoints, prayer or absorption in the system tray.

Inferno AutoSplitter
Molgoatkirby & Naabe

3,738 active installs

AutoSplitter for LiveSplit in Inferno

No Bad Alchs
CreativeTechGuy

3,719 active installs

Prevents casting alchemy on items which give less than the GE value

Coffin Counter
Enriath

3,711 active installs

Track what remains your coffin contains.

Max Skill Trim
Nerdpuff

3,703 active installs

Adds a border trim to maxed skills.

Toggle Chat
Buchus

3,641 active installs

Allows you to set a keybind to open/close chat and ignore flashing tabs

Collapsible Modern Chat
UNDEAD-B0T

3,627 active installs

Resizeable/Modern Layout only: collapses chat to an icon that shows DMs and all chat

Roof Toggle
DegeneReaper

3,586 active installs

Allows use of a keybind for toggling roofs on and off without needing to open the in-game settings menu.

Brewing
InfernoStats

3,576 active installs

Displays current brewing vat and barrel states

Imbued Fart
Himon

3,547 active installs

Plays a fart sound instead of imbued heart sound

Twitch Live Loadout
Pepijn Verburg

3,529 active installs

Show Twitch viewers your collection log, bank, inventory, combat statistics, equipment, skills and more.

Temple Treck Bog Helper
Sololegends

3,527 active installs

Highlights firm bog ground as you find them

ToB Notice Board
Brooklyn

3,518 active installs

Highlight friends and clan members on the Theatre of Blood Notice Board

Green Screen
Trevor

3,490 active installs

Adds a greenscreen, useful for content creators. Original author: I Yam Jeremy

GIMP
Vijuhas

3,484 active installs

A plugin for tracking the status, skills, boss kills, and location of group ironmen - without ever leaving RuneLite!

ImaDrum Money
Ew Its Mike

3,480 active installs

Plays a sound clip by ImaDrum whenever you receive a good drop

Emblem Trader Skull Timer
Teekiz

3,462 active installs

Displays a timer when your character receives a skull from the emblem trader.

VM Gasper
xncz8h

3,459 active installs

Plugin which says * gasp * when a platform in Volcanic Mine is about to despawn.

ToB Timer Infoboxes
winterdaze

3,453 active installs

Adds an infobox that displays completed room times

Loot Splitter
LanaDelSlay

3,414 active installs

This program will automatically tell you the ammount in gp/total ammount of the drop to split, and how much to split!

Remaining Casts
Salverrs

3,389 active installs

Displays the number of casts remaining for your spells.

Prestige
Conor Kosidowski

3,385 active installs

A plugin that resets your level and doubles your xp rate between levels 92 and 99

Mining Special Effect Tracker
AdnapPanda

3,361 active installs

Tracks the number of times any mining special effects occur

Crosshair Cursor
Wilof

3,336 active installs

Changes your cursor to a crosshair. Also supports animated cursors (see help page).

Stars to Clipboard
Cyborger1

3,335 active installs

Puts shooting stars telescope predictions in your clipboard

Essence pouch health
Truth Forger

3,299 active installs

Shows how much essence you can put into your pouches before it degrades.

Blast Furnace Trainer
UIM Herb10HP

3,293 active installs

Adds red/green clickboxes for Blast Furnace crafting.

Miasma Tiles
De0

3,278 active installs

Shows a grid of burn tiles at Olm for use in masses

Dryness Calculator
Jallah123

3,270 active installs

A simple plugin to calculate your dryness

BA Role Randomizer
ransty

3,266 active installs

Randomize roles for a barbarian assault team

Combat Level Muting
zom

3,238 active installs

Plugin to blanket mute players based on combat level

World Hider
dekvall

3,233 active installs

Hides your world so you can stream in peace

Temple OSRS
SMaloney2017

3,217 active installs

A RuneLite plugin making use of the TempleOSRS API.

PartyPoints
OmbudRov

3,211 active installs

Wacky add-on to the party plugin to show Personal Points(in COX) of each member of the party with the plugin

Toa Supplies
Krill

3,198 active installs

Keeps track of your supplies in the pouch at toa

Party Hotkeys
1Defence

3,188 active installs

Hotkeys for rejoining previous party & Joining preset party names

Vengeance Helper
Marcin

3,150 active installs

Alerts you when you can use a new vengeance

One Click Tiles
Nath

3,130 active installs

Highlight one-click-able tiles in Tileman Mode

More Bank Fillers
UnExploration

3,128 active installs

some different overlays for Bank Fillers.

Task Checker
andmcadams

3,116 active installs

Checks a variety of tasks for completion

Bank Value Overlay
Blended420

3,102 active installs

Adds an overlay showing your overall bank value

Nylo Stats
Scowled

3,089 active installs

Nylocas stats plugin

Play Time
andham97

3,039 active installs

Tracking in-game play time days and hours

Advanced Mining
TroJaNSniPeR85

3,003 active installs

A more advanced mining plugin to display statistics and ore respawn timers.

Boss HP Reorder
TheStonedTurtle

3,003 active installs

Repositions the Boss HP Bar to be at the top of the screen when XP Drops are set to the center

Duck Duck Goose
skeldoor

2,998 active installs

Adds ducks to empty ponds to help bring life to the world

Level Up Quest Requirements
Hoffi Coffi

2,998 active installs

Displays a dialog on levelling up when you first reach the requirements for a quest.

Extended Hitsplats
Ferrariic

2,967 active installs

This plugin will let you see more than four hitsplats on a character.

XP Grapher
Olm Alone

2,958 active installs

Shows a real time XP graph for any skill

Master Scroll Book
Enriath

2,945 active installs

See the contents of your Master Scroll Book without opening it.

World Location
Xrio

2,937 active installs

Shows world point location (X,Y,Z) when hovering over a tile, along with chunk (8 x 8) and region (64 x 64) borders in both the scene and on the world map.

Temple Trekking Points
andmcadams

2,920 active installs

Displays the current and last Temple Trekking point count

Afk Hell-rat Behemoth
FirstTwoWeeks

2,877 active installs

Calculates % chance your cat will win the fight without feeding it. It will alert you if it's likely to die based on user-inputted thresholds. Makes fighting hell-rat behemoths extremely laid-back/afk with a wily cat.

Examine Tooltip
Cyborger1

2,873 active installs

Shows tooltips or RS3 style hover boxes on examine

NPC Overhead Dialogue
Stevester118

2,865 active installs

Displays NPC dialog over their head, includes custom ambient, walking, damage, and death dialog as well.

Clan Event Attendance
JoRouss

2,855 active installs

Track clan event attendance and time spent at the event

Teleport Logger
leejt

2,822 active installs

Utility for tracking a list of all ingame teleportation methods.

Wiki search shortcuts
IronCory

2,789 active installs

Shortcut keys to open osrs wiki search

CoX Auto splitter
sky

2,750 active installs

Auto splitter for LiveSplit for Cox CM

Pre Eoc Xp Drops
invu

2,748 active installs

"Customize pre Eoc Xp drops of your desired era and display the 2010 xp Counter"

Npc Dialog Log
neilrush

2,728 active installs

Adds dialog to the chat and displays dialog overhead.

God Wars Protection Overlay
UnExploration

2,722 active installs

Plugin to display god protections based on worn items

Slash Swapper
Zom

2,714 active installs

A plugin that allows you to send messages in clan chats with '/' and messages in friends chats with '//'

Notification Messages
Brooklyn

2,695 active installs

Notify yourself with custom messages

Goal Tracker
Toofifty

2,669 active installs

Keep track of your goals and complete them automatically

Jungle Japes Indicator
TheKlodster

2,668 active installs

Sound effect played to indicate the banana peels spawning after death of a baboon, and a brutal sound effect played after a player steps on a banana peel.

Maple XP Bar
sirhitech

2,666 active installs

Adds a large xp bar at the bottom

Prayer volume control
ruttie3

2,636 active installs

Allows you to individually control volume for each prayer.

Raid Player Names Logger
SoloWanna

2,634 active installs

This plugin will log all player names when a CoX / ToB raid is starting

Easy Unnote
mad-s

2,626 active installs

Never use your banknotes on anything except a bank again!

Music Replacer
alowaniak

2,621 active installs

Replace music tracks with presets (e.g. OSRSBeatz) or your own music

Glory Counter
JorVa

2,616 active installs

Count how many glories you charge in the wilderness

Thrall Damage Counter
Amro Thabet

2,603 active installs

Counts total damage done by thralls

Duke Barrel Swap
ryanbarker0

2,600 active installs

Swaps Fill & Check for Duke Sucellus Fermentation Barrels when uncrushed mushrooms are in inventory

Aerial Fishing Timers
call-me-maple

2,587 active installs

Adds timers to indicate when aerial fishing spots will expire

Slayer Tag Highlight
Mafham

2,564 active installs

Highlights on task NPCs that aren't tagged yet (not interacting with you)

Dry Streak
Risky Asset

2,550 active installs

Dry streak probability calculator.

Wintertodt Idle Plugin
Ryan

2,534 active installs

A highly-visible Wintertodt Idle overlay!

Target Health Notifier
Callum Anderson

2,487 active installs

Alerts you when your target is dead or below a specified health amount

ToB Gear Checker
ArtsicleOfficial

2,470 active installs

A plugin that checks your spellbook, runes, and charges.

Dorgesh-Kaan Lights Plugin
andmcadams

2,434 active installs

Makes it easier to find broken lamps in Dorgesh-Kaan.

AFK Spot Calculator
branisk

2,433 active installs

Find the densest location of enemies in order to find the best afk spot.

Valuable drop recolor
Mafham

2,426 active installs

Recolors valuable drop chat messages

Grimy Herb Animation
TrueNosus

2,409 active installs

Adds an animation to cleaning herbs

Game Tick Information
AcolyteOfFire

2,374 active installs

Displays game tick counters, and lets you mark tiles to track laps

AFK Threshold
Velite12

2,361 active installs

Notify you when a certain amount of time has passed and you are idle or wait until you are idle, whichever comes last.

Movement-based AFK Alerter
Aeimo

2,320 active installs

A configurable, visual indicator for when your character stops moving

Another Bronzeman Mode
CodePanter

2,306 active installs

Limits Grand Exchange access to only allow buying items obtained 'the Ironman way'. Has full collection log integration, auto-screenshot capabilities and chat icon settings.

Universal Discord Notifications
MidgetJake

2,306 active installs

A notifier for sending messages to a discord webhook for a number of events

Switching Trainer
ArtsicleOfficial

2,286 active installs

This trainer not only adds a client-side skill for the dopamine but also tracks how quick your switches are for practice!

Compost Helper
Pidge

2,283 active installs

Overlay for compost bins

Rumour Reminder
DrJam

2,280 active installs

Remembers your Hunter Guild rumours

Oof Sound
MakingStan

2,261 active installs

Makes an oof sound when you die or take damage.

Raids Clipboard
Maurits825

2,232 active installs

Copies raids info such as kc, points & deaths to the clipboard

ToA party gear checker
Need Femboy

2,213 active installs

Checks gear of party applicants

OSRSParaTodos
Bwana Ian

2,187 active installs

Translation plugin to make OSRS more accessible

Npc Spawns
Allen Kinzalow

2,168 active installs

Dump npc spawns to file.

Trailblazer Audio Announcement
Jarbo52

2,158 active installs

Plays the Trailblazer task complete noise when you get a combat achievement or collection log slot

Easy Arceuus Runecrafting
poi56iop

2,157 active installs

Contextual highlights and screen flashing for Arceuus Runecrafting

Chat Logger
Hexagon,Sololegends

2,155 active installs

Logs chat messages to a file in runelite's folder

Boss Kicker
Zom

2,153 active installs

Kick Bosses Awake

WildernessWarnings
CalumMagee

2,117 active installs

Disables options to go into the wilderness on High Risk and Target worlds

Chat Sounds
Pharros

2,093 active installs

Add sounds to various chat messages

F2P Star Assist
Jannyboy11

2,091 active installs

A plugin for crowdsourcing crashed stars in F2P

Fairy Ring Butterflies
Jmmuir

2,076 active installs

Changes how fairy ring butterflies look

SalveAmuletChecker
NickSpaghetti

2,067 active installs

Checks which players do not have their Salve Amulet equip at Bloat Or Mystics

ABC Alchemy
Vartan

2,064 active installs

Helps plan and cast alchemy.

Specimen Cleaning Extended
lV Vl

2,060 active installs

Additional functionality for specimen cleaning

Discord Notifier
Nodeak,Medicus

2,055 active installs

Utilize Discord webhooks to get a message for every RuneLite notification.

PC Rewards
Marvin B

2,051 active installs

Customize the Pest Control Rewards shop, hiding unwanted rewards and exp calculations.

Inventory Count
robrichardson13

2,041 active installs

Shows a count of open inventory spaces

Orb Hider
wizguin

2,039 active installs

Hides minimap orbs

Left Click Only
dekvall

2,030 active installs

Disable all rightclicks

Cool 2h
Skeldoor

2,011 active installs

Fix your posture and look cooler while using two-handed weapons

Raid Speed Run Tracker
hi owo

2,005 active installs

Tracks CoX challenge mode room times and personal best to race against

Nex Split Tracker
Maws

1,974 active installs

Track unique drops and splits from nex kills

House Thieving Varlamore
Sololegends

1,973 active installs

Highlights useful things when robbing houses in Varlamore

League Chat Broadcasts
Memebeams

1,973 active installs

Adds the Leagues emblem to loot notifications when they happen on League worlds.

Click Minimap Orbs
Macweese

1,970 active installs

Prevents clicking through the minimap orbs

Vial Smasher
InfernoStats

1,935 active installs

Smash vials with vigor

Group tileman addon
ConorLeckey, Notloc, Flexz

1,932 active installs

Automatically share and draw group tiles

Subtle Agility Shortcuts
flowerworks

1,899 active installs

Place an icon or colour dot over agility shortcuts.

Who's Gonna Poop
Nic Dipples

1,879 active installs

A plugin to keep track of who has pooped and who should poop next in Kephri

Worn Equip Viewer
iGundamStyle,JZomDev

1,879 active installs

Overlay to display Worn Equipment

Autocasting
Vivascape, JC A

1,862 active installs

Tracks your autocast spell and alerts you when it can't be used.

Shade Chests Highlighter
Eemkukko

1,848 active installs

Highlights chests you have a key for in the shade catacombs.

Chop Chop Stop
call-me-maple

1,843 active installs

Hide and mute tool special attacks.

Force Recolor
Alexsuperfly

1,838 active installs

Force recolors all game messages that contain specified text

Casket Sounds
Jarrod Cabalzar

1,828 active installs

This plugin plays a sound when you receive a Clue Casket.

Boss Name Replacer
MrNice98

1,827 active installs

Replaces boss names with funny things

Sprite Markers
ChaosXstreaM

1,826 active installs

Mark tiles with sprites

Hit Sounds
Ferrariic

1,821 active installs

This plugin will send a custom sound on hitsplat

nex-kc-helper
IronPita, Marco648135

1,816 active installs

Marks NPCs, un-marks them when they're venomed.

Xp Goalz
Eric V

1,807 active installs

Schedule and track xp goals.

Bone Running
Arrowsend

1,800 active installs

A plugin to help with running bones for players, made possible by the RunBones CC.

Aerial Tick Colors
KitsuneWife

1,733 active installs

Changes the tile highlight color of aerial fishing spots based on the amount of ticks it takes to fish at that distance.

World Heatmap
I Say

1,720 active installs

Lets you visualize which tiles of the world map you most often visit.

XP Meter
Toofifty

1,720 active installs

Interactive XP/h Meter

Vardorvis Heal Tracker
AnuVen

1,683 active installs

Tracks how much health Vardorvis gains over the fight.

Push Notifications
dekvall

1,669 active installs

Send notifications to your phone or other devices

Player numeric stats
Cryslacks

1,667 active installs

A plugin for displaying player stats on the player numerically (health, prayer, run energy, spec)

Friends and Clan Viewer
molo-pl

1,658 active installs

Always see clanmates and friends when they are online

Clan Member List Sorting
Jodelahithit

1,657 active installs

Adds a sort button to the clan member list

Histogram
JarateKing

1,649 active installs

Display tick/input timings

Recolored Herb Seed Icons
Mike-U5

1,644 active installs

"Recolors herb seed icons to match their respective herb. Plugin by Mike-U5, Icons by /u/Narsuaq"

Gem Tracker
GuNeRkId

1,639 active installs

Adds stats while mining in the gem mine.

Time Played
muffyn

1,627 active installs

Shows time played in a widget

NPC Accessibility Tagger
R-Y-M-R

1,612 active installs

Tags NPC with text for easier visual identification, aimed at helping people with accessibility issues.

8ball Plugin
DuhonTheGuy

1,606 active installs

Leave the hardest choices to the 8ball! Just do "::8ball" in the chat to use it!

Boaty Hype Man
Devdeve

1,594 active installs

Let Boaty be your hype man

Event Scouting Plugin
peanubnutter

1,593 active installs

Crowdsourcing plugin for automated scouting of Forestry and other events.

Ectofuntus Info
Cyborger1

1,590 active installs

Tells you how many Ecto-tokens you can collect

Creator's Kit
ScreteMonge

1,583 active installs

A suite of tools for creators

Global chat
https://github.com/russeii

1,581 active installs

Global chat for each world. Home world 491 & will have the most players using the plugin.

Clan Chat Warnings
MarbleTurtle, JorVa

1,580 active installs

Adds chat messages and notifications when players join clan chat.

Key Remapping Plus
Macica2

1,572 active installs

A clone of the Key Remapping RuneLite plugin with extra features

Unranked KC Tracker
Erishion Games LLC

1,572 active installs

An easy way to see KC and other values not tracked on the High scores. For example, KC under 50.

Life-Saving Jewellery
molo-pl

1,569 active installs

Infoboxes and notifications for Phoenix necklace and Ring of life

Skills Organizer
robrichardson13

1,564 active installs

Allows you to change each skill's position and visibility

Random Hopper
Rugg0064

1,541 active installs

Allows you to hop to random worlds.

StatusSocket
DStatIO,The-Jani

1,541 active installs

Sends players stats, in-game location, and inventory/equipment to a server for tournaments or data collection to be displayed.

Two step zoom
sky

1,534 active installs

A plugins that lets you change between two levels of zoom

Tick dance aim trainer
929482

1,523 active installs

Highlights random tiles for practicing movement

Clan Chat Webhooks
Costcutters

1,514 active installs

Display in-game Clan Chat messages in your Discord

Pest Control Plugin
UniqueName

1,514 active installs

Tracks and Displays your Pest Control Points on-screen whilst in a Pest Control Game or on the Void Island.

Purchase Progress
BrastaSauce

1,514 active installs

Set purchase goals and track progress towards it

Toa Spellbook Reminder
TipicoDev

1,507 active installs

Reminds you to swap spellbooks before entering the tooooombs

Day & Night Brightness
larswolters98

1,505 active installs

RuneLite plugin to automatically adjust the brightness based on the current time upon logging in

KeePassXC
Abex

1,481 active installs

Adds KeePassXC login support

Bronzeman Mode
dekvall

1,479 active installs

Unlock items before buying them

Ignore List Ban Tracker
Rugg0064

1,476 active installs

See how many of your reports have resulted in action

Account Chat Filter
Mr. Sableye

1,461 active installs

A plugin for filtering different account types.

Xp To Level Notification
Robin Davidsson

1,447 active installs

A plugin that sends a notification when you're less than the specified amount of xp away from a level

Smart Chat Input Color
Ririshi, MarbleTurtle

1,431 active installs

Recolors the chat input field according to which channel the message will be sent to.

OSRS Player Count
Protje

1,430 active installs

Shows the current OSRS player count in-game

Offline Chat Icon
Bailey Townsend

1,416 active installs

Displays an icon next to the player's name in clan chat if the user logs off or leaves the chat.

Custom Item Hovers
Geel

1,413 active installs

Enables custom hovers on items

Chat Panel
Yenof

1,406 active installs

Side panel and pop out chat window.

Discord Group Bank Notifications
barthogenes

1,397 active installs

Sends notifications to Discord when players retrieve deposit items to the GIM Bank.

VoiceScape
Furkan

1,393 active installs

Adds a distance based voice chat to the game.

Stardust/HR Tracker
kdd

1,383 active installs

Tracks the approximate rate of stardust per hour

Resizable Chat
Thource

1,382 active installs

Allows the chat to be resized when playing in resizable mode with transparent chat.

Cannon Be Gone
Bram91

1,346 active installs

Removes all cannons(including your own)

GE Calc
cman8396,LargeChongus

1,344 active installs

Use expressions to set price and quantity in GE! E.g. 13*32=416

Frost Hp & Run
Eric V

1,342 active installs

Hitpoints and run bar overlays.

Live Location Sharing
Realm 0

1,340 active installs

Share your location with other players on the worldmap.

Razor Kebbit Tracking
cwjoshuak

1,300 active installs

Track razor-backed kebbits like you would Herbiboar.

Chat Name Colors
BeagleBreath

1,295 active installs

Differentiate players in your chat with custom colors!

Discord Screenshot
Alqon

1,293 active installs

Allows RuneLite users to send screenshots to a discord server with one click!

Subtle Virtual Levels
Enriath

1,285 active installs

View your virtual levels in a more subtle way that doesn't mess with your stats.

Taskman
TaskPlease

1,269 active installs

Taskman mode for OSRS

Nex Sound Replacer
HSJ

1,267 active installs

Replace Nex's sounds

Bank Item Stats Toggle
Boredska

1,247 active installs

Toggles Item Stats plugins overlays when banking

Posiedien's Leagues Planner Plugin
Posiedien,Runemoro,Skretzo

1,245 active installs

The plugin allows people to put in their own custom tasks or hook into tasks I've manually added into the planning.

No Adviser
daylend

1,238 active installs

Disables the Activity Adviser button next to the minimap when in combat, or optionally, all the time.

Clan Spam Filter
Biceps Btw

1,229 active installs

Remove broadcasts from clan chat!

Audible 2-Ticking
Dylan

1,220 active installs

Plays sounds to aid with some 2-ticking allowing the player to at least look away from the screen.

Clan Activity Tracker
PhobosDeimos

1,220 active installs

Tracks when player was last seen in cc/fc and counts messages, saves data to csv file.

Friend Finder
Sololegends

1,220 active installs

Displays a dot on your map for all your friend's locations

Storage
TicTac7x

1,209 active installs

Show overlays of various storages and searchable panel

Quest Splits
jonas-fo

1,200 active installs

A plugin to split your quest speedrun time

Animation Skipper
Ben McAllister

1,179 active installs

Skips player animations while skilling to improve training efficiency

Party Play
ProjectileRage

1,176 active installs

Displays activity information on screen for your party.

Wellness Notifications
ffalor

1,154 active installs

A plugin to promote wellness and healthy gaming.

Unregistered Hypercam 2
cloud Aspect

1,153 active installs

Displays Unregistered Hypercam 2 overlay

Spec Overlay
OmbudRov

1,150 active installs

Overlays your Special Attack Amount when wielding the SoulReaper Axe

ZMI
Rubueno

1,150 active installs

Removes scenery from ZMI to improve performance

GIMP Tracker
Rachnus

1,149 active installs

Tracks players movement/inventory/equipment/skills and displays it on a web page

Lingering Click Tooltips
ryanxie0

1,144 active installs

Generate configurable tooltips with left click mouse actions

Guest Indicators
Patrick

1,142 active installs

Player Indicators for clans and guest clans to highlight all guests and members

Total Cost
Fiffers

1,140 active installs

Calculates approximate total price in NPC stores for various purchase quantities.

World Finder
Conrad

1,129 active installs

A world hopper which sorts by last hopped-to world

Amazeing Chest
skeldoor

1,123 active installs

Shows how long until a maze random chest closes

Chat Transcripts
MarbleTurtle

1,117 active installs

Creates transcripts and exports an image of chat to Screenshots folder.

Discord Notifications/Split Tracker
SkyHawkGaming

1,089 active installs

Discord notifications with a split submission panel

Snailman Mode
Idyl

1,087 active installs

Adds a "snail" that chases you from the other end of the map. If it touches you, you lose.

Spec Dialogue
Oziach

1,081 active installs

Add overhead dialogue text to any special attack!

Jar Generator
Jannyboy11

1,080 active installs

Adds an overlay displaying jar generator charges

Dialogue Assistant
Salverrs

1,076 active installs

Highlight and lock NPC dialogue options.

Inner Zoom Limit
Hafta

1,070 active installs

Easily configure inner zoom limit alongside outer limit in default camera plugin

Highlight Stackable Items
Horseforlunch

1,058 active installs

Highlights drops that can be stacked in your inventory

GIM Bank Discord
Boredska

1,051 active installs

Notifies GIM Bank changes to discord webhook

Random Screenshot
neeerp

1,050 active installs

Randomly takes screenshots as you go about your adventures

Camera Fun
lettucegoblin

1,049 active installs

On mouse release have a elastic, bounce, and yo-yo effect! Control intensity with gametime/energy.

Zero remover
GeChallengeM

1,049 active installs

Removes the redundant 0 from precise timers.

Ignore List Alerter
Zom

1,041 active installs

Alerts you when a player on your ignore list with a friends note is near by

Inventory Notifier
dandylyon

1,041 active installs

Shows an icon with a count of open inventory spaces and sends a notification when the inventory is full.

Star Lore
Enriath

1,035 active installs

Bring back the fluff when there isn't a star to find that was in the original RSHD release

Home Improvement
Mike-U5

1,033 active installs

Removes several irrelevant menu options from furniture while not in build-mode such a "build", "remove" and "upgrade".

Loot Console Logger
EmerycP

1,033 active installs

Let you log loot drop in your message box.

Item Hunter
MakingStan

1,019 active installs

Adds a side-panel to your client where you can generate random items.

Motivation
sqlskid

1,016 active installs

Get a little bit of motivation after death.

Dice
Bogstandard

1,012 active installs

Animated rolling dice in your equipment tab!

QSR Auto Splitter
muffyn

1,010 active installs

An auto splitter for quest speedrunning.

Custom death sound
ruttie3

1,006 active installs

Plays a custom sound from your computer upon death.

PM Highlight
wtommyw

1,006 active installs

Highlight private messages in different colors for certain players

Item Retrieval Service Warning
Cute Rock

1,004 active installs

Warns players about to die if they have items stored at an item retrieval service

Crate Limiter
Enriath

1,000 active installs

Slows down the opening of crates and jars

Trouver Parchment Alert
zlight97

1,000 active installs

Displays an alert when you forget to lock your equipment

Total Selling price
Erishion Games LLC

973 active installs

Plugin that aims to assist in calculating the total gold amount gained from selling items to a store in varying quantities.

NM Auto Splitter
framboid

972 active installs

Livesplit Autosplitter for Nightmare and Phosani's Nightmare

Jingle Jingle
Tayaramisu

968 active installs

Adds customizable jingles for achievement diary tasks, mahogany homes, and more!

Advanced Raid Tracker
Caps lock13

965 active installs

This plugin tracks advanced statistics and data about your theatre attempts

House Advertisement Plus
Salverrs

951 active installs

QOL features for the House Advertisement board.

DropTracker
joelhalen

950 active installs

Track your + your clan's drops with discord webhooks/google sheets and participate in loot leaderboards.

System Tray Inventory Count Plugin
delps1001

940 active installs

A plugin to add inventory count to your system tray

Zebak roar chat
rutger-speksnijder

940 active installs

Displays a custom overhead chat message when Zebak roars

Clan Fight Performance Tracker
di-brian

933 active installs

A plugin which displays an overlay with some statistics gathered during PvP multi fights

Bank Slot/multisearch
geheur

919 active installs

Search by equipment slot or for multiple item names in one search

Notification Panel
Kogasa

917 active installs

Displays notifications in an overlay panel

Emotes
equirs

916 active installs

Highlights and labels for emotes

Party World Map Pin
Doink Oink

912 active installs

Allows the player to pin a location on the World Map and their party members to see it.

Group Iron Man
Spedwards

908 active installs

Adds the capability to play Group Iron Man

Item Filler
Adam

901 active installs

Replaces a specified item with a bank filler

Clanmate Export
Bailey Townsend

894 active installs

A plugin to export Clanmates names, rank, and joined date.

Chaos Altar Bone Luck
christian97lewis

891 active installs

Plugin that calculates how lucky you are offering bones at the chaos altar

Old Wise Man Chat
Cerisk

888 active installs

Displays chat messages seen in world to your chat box.

OSRSKillboard
OSRSKillboard

881 active installs

A plugin to track PvP kills, loot and stats on OSRSKillboard.com

Area Mute
raiyni

873 active installs

Mute players in game areas

Translator
bigppfrontdev

872 active installs

translates text from osrs to another language

XP Drop Notify
Patrick

870 active installs

Plays sound of your choice when you get an XP Drop

Calculator Pro
kanderson66

865 active installs

Perform calculations using the side panel or in-game chat commands

Splitter
PhantomBoat

861 active installs

Calculate the split size for each player

The Guns' Gains
dekvall

852 active installs

I wonder how many reps he really has..

Tob Notification
jlee

852 active installs

Pops up a notification for tob events

Funny boss names
Pfannaa

839 active installs

Replaces boss names with something funny

Steelseries Gamesense
Gmoley

833 active installs

Makes it possible to display HP, Prayer and skill progression onto steelseries keyboards.

APM
adam-bunce

824 active installs

Monitor in game actions per minute (APM)

Invalid Movement
Skretzo

819 active installs

Display invalid blocked movement tiles

Friends Exporter
MarbleTurtle

818 active installs

Adds right-click options around different lists

Step Counter
cweeks12

805 active installs

Counts the steps you take and if you meet your goal

Here's Trouble
SifuPlankton

800 active installs

A plugin that plays sounds when your friends come onto the screen, notably "Here's Trouble".

Daily Impling Jars
Samuel-Fox

798 active installs

Daily indicator to show when you can buy impling jars from Elnock Inquisitor

I've Got Wood!
BigG

795 active installs

Allows custom message to be displayed above player's head for certain skilling activities.

Playtime
Adam

792 active installs

Adds an overlay of your accounts total playtime

Marty's Walk Up Plugin
Martyrshot

788 active installs

Give your friends the entrance they deserve everytime they log in

Sextant Locator
krazune

784 active installs

Sextant's coordinates helper.

Unidentified Herbs
Hexagon

784 active installs

Begone grimy herbs!

Debug Helper
Abex

782 active installs

Lets a dev debug various issues

Fake Stats
InfernalPlank

776 active installs

Spoof stats and total level in the skill tab!

NPC Collection Log
Nic Dipples

776 active installs

When in combat with an NPC, a panel of possible drops will display, and highlight what you're missing"

Recently Killed Highlight
DrJam

774 active installs

Highlights enemies you have killed recently, until they target you.

translation-plugin
PlayerCoder1

774 active installs

Translates the chatbox messages on the panel

Dr. Jekyll Herb Reminder
Amrik Singh

772 active installs

A plugin to annoy you into keeping a specific herb for Dr. Jekyll random event

AudibleLootNotification
Lukas Pfanner

764 active installs

Notifies you once you received loot which exceeds a defined value threshold

Easy Loot Sell
TarrenG

762 active installs

Easily identify items to be sold within a loot tab

Mouseover Text Disabler
Jbleezy

752 active installs

Disables the mouseover text

Do Not Kick
MarbleTurtle

743 active installs

Removes the kick option from chat for higher ranks, all ranks or everyone.

Resource Area Notifier
YvesW

742 active installs

Notifies when the gate in the wilderness Resource Area opens.

ItemReminders
cmagee

735 active installs

A plugin that will send you notifications if you enter a specified zone without a specified item.

Reword Manager
ejaz-karim

733 active installs

Reword Chat messages, Items, NPCs, Objects, Options, Players, Clans

RHUD
Beardedrasta

729 active installs

A simple Experience bar tracker for current skill training

Snake
Maurits

722 active installs

Play snake anywhere!

Chat Success Rates
Skretzo

721 active installs

Track and display skilling success rates

Hold Your Ground
Skeldoor

720 active installs

Restrict your characters movement with this plugin designed to help Tilemen and Chunkmen stay within their unlocked boundaries.

Self Healing Notifications
OzokuLight

719 active installs

Healing Notifications for player

Loot Broadcast Party
Zuko07

705 active installs

Allows you to broadcast loot and achievements to your party

AColdOne Clogging
OmbudRov

703 active installs

Clogging is Pogging

F2P Wiki
Freckled Dad

702 active installs

Automatically updates your stats on external xptrackers when you log out. This plugin submits your username and IP address to a 3rd party server not controlled or verified by the RuneLite Developers.

Crack The Clue 3 Emote
Clank1337

695 active installs

Shows you the emotes to perform to get into the vault in the varrock west bank

NPC Labels
Banna

683 active installs

Adds the ability to right click > label NPCs to add custom text to them

Death Counter
TendyPlay

676 active installs

Counts death of players around you.

Fire Timer
alevine

675 active installs

Adds an in-game timer when a fire is lit, counting up to two minutes.

Discord Chat Logger
PJGJ210

671 active installs

Log various chat to a discord webhook

Ferox Restore Alert
eddiewastaken

665 active installs

Displays a warning if you're in Ferox Enclave, but haven't restored your stats.

Moleman Mode
Zom

664 active installs

Moleman Mode Plugin

Combat Roll
Skretzo

650 active installs

Player attack and defence roll

meepspeak
AlwayzJarvin

639 active installs

Changes NPC/item/widget names to meepspeak.

Poisoned NPCs
tautges

639 active installs

When using poisoned weapons, displays timer and overlay information about when poison will inflict damage.

Energy Info
Unholypanda

629 active installs

Displays energy info as an infobox or as a overlay.

Party Heartbeat
elkcarc, Scowled

628 active installs

See if party members have disconnected

Fuzzy Bank Search
i

616 active installs

Filters items in your bank allowing typos and abbreviations (e.g. dwh)

Analogue Timestamps
Hannah_GBS

608 active installs

Never learned to read digital clocks? Then this is the plugin for you!

Local Time
M 3 R T H A

601 active installs

A simple plugin to show the local time

RS3 Music
Frunkh

598 active installs

Plays the RS3 variant of the track that is currently playing in game.

Shop Calculator
JammaBro

597 active installs

Calculator for bulk buying costs from NPC shops.

Regex Bank Search
moody

592 active installs

Search your bank with regular expressions

Meme Effects
Erishion Games LLC

587 active installs

A plugin that plays sounds and changes text in a variety of situations

Data Export
ConradicalMel

585 active installs

Exports your bank to the clipboard, so you can paste all items as csv (useful for spreadsheets)

Auto Retaliate Warning
Uim bladee

580 active installs

Warns you when you have auto retaliate enabled

Polywoof
furfy

570 active installs

Enjoy Quests in any Language!

Bingo Event Automated
Uw1

564 active installs

A plugin used to automate the bingo

Attack Sound Notifications Plugin
DominickCobb

563 active installs

Plays sound effects for combat interactions

RuneProfile
PGN

562 active installs

Show off your achievements on RuneProfile.com

Item XP
Laur92

551 active installs

A plugin that adds xp potential tooltips on items. Plugin in BETA

Clan KDR
di-brian

550 active installs

A plugin which displays your clans KDR based on clan messages

Tick Fixer for Mac
jonathang

546 active installs

A plugin that significantly increases tick accuracy (only supported on macOS)

Date Overlay
Pikkufighter

543 active installs

Shows system date in runelite

Inventory Cost Tracker
jbentleyh

542 active installs

A plugin for tracking the cost of the player inventory/equipment in Old School Runescape

Bank Notes
zom

529 active installs

A plugin to put notes on items from the bank UI

F2P Highlight
Mark7625

526 active installs

Highlight F2P items and areas

Target True Tile
Notloc

519 active installs

Displays the true tile of the enemy of the player is targeting.

Snow Tracker
bitwise

516 active installs

Tracks snow on the ground

Camdozaal Fishing Helper
Aeimo

512 active installs

Visual indicators and alerts to simplify Camdozaal fishing

MaxHitAlert
Doppiro

509 active installs

A plugin that sends a discord webhook whenever you get a max hit

Mad Dwarf
Jlao17

508 active installs

Don't make the dwarf mad.

Handegg Discord Webhook
Jurre Groenendijk

500 active installs

Sends a message / screenshot to a discord webhook when you get handegged or handegg someone

PK Loot Splitter
Patrick

491 active installs

Helps split loot on PK trips by tracking the loot key clan announcements.

Old Control Run
Lord Of Otakus

487 active installs

Adds Old Control-Click Run behavior

Name Change Detector
Bailey Townsend

484 active installs

A plugin to check a players name change history

Hitsplat Tracker
leejt

480 active installs

Logs your hitsplats for combat research.

Monkey Business
krazune

478 active installs

This plugin lets you do your monkey business, when wielding a cursed banana.

Natural Speech
Phyce, LouisHong

475 active installs

Natural sounding text-to-speech with over 1000 voices.

Pleae
toasty-toast

475 active installs

Makes players say Pleae when they die

Classes of Gielinor
Kraelll

473 active installs

Adds RPG classes to your character

Preemptive Strike
MarbleTurtle

471 active installs

Allows using ::kick [user] to create a fake message from a user to kick from chat.

Damage Taken Logger
LittleBitwise

462 active installs

Displays damage taken in chat, as well as total XP gained per kill.

NPC Dialogue
leejt

460 active installs

Utility for transcribing NPC dialogue onto the wiki.

Copy clan usernames
SoloWanna

448 active installs

Copies all player names so it can be exported to an excel

Infernal Clan
Rick

446 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Overview of clan information

Player Pronouns
Speshkitty

438 active installs

Allows you to set your pronouns and see other people's

TOA Keris Cam
zom

437 active installs

Take picture of keris users

Global Consciousness
Unholypanda

431 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Channel your inner Rendi to unlock the power of global consciousness and... just get the drop lul.

Foodie
touchrock

428 active installs

A message will appear overhead when food or drink is consumed!

Modified Left Click Drop
Mili

425 active installs

A modified version of JZomDev's LeftClickDropper that has wildcard support

Native Mac Notifications
Bailey Townsend

425 active installs

Replaces current Mac Os notifications with Native notifications.

Armour Trimmer
Truth Forger

422 active installs

Overlays item icons with trimmed versions

forsen lines
Unmoon

415 active installs

spam forsen minecraft tts lines in toa

On-screen Notes
raiyni

415 active installs

Notes... But on your screen! -Use shift click or ::notes to manage

Runelogger
Joopjr

411 active installs

Logs and publishes your RuneScape adventures

Improved Context Menu
Thource

409 active installs

Improves the context (right click) menu by adding scrolling indicators and menu entry limit.

Username Screenshotter
Aqua UIM

409 active installs

Adds a screenshot open to player context menu that takes a screenshot of the menu

Qolting
ArtsicleOfficial

403 active installs

Klause's Finest!

JebScape
Jebrim

401 active installs

Play and chat with others on other worlds

Clicker Training
pyonium

397 active installs

Leveled up! Good doggy!

ban-list
fangthe1st

390 active installs

a ban list plugin for url/manual list

Custom Settings Easter Eggs
Cyborger1

387 active installs

Add your own easter eggs to the settings interface!

Canvas
Cantrick

383 active installs

Allows you to draw all over your runelite screen!

Gnome Childify
Himon

383 active installs

Make players Gnome Children

Attack Sound
alkkusu

378 active installs

Plays a sound when attacking

Placeholders Warning
CheesyCracks

378 active installs

Alerts you when "Always Set Placeholders" is off in your bank

Drop Log
Woikaz

377 active installs

Track items that the player has dropped

Ring of Forging Helper
asundr

377 active installs

Provides customizable feedback to make smithing with the Ring of Forging more afk

Attack Types
cwjoshuak

375 active installs

Show your current attack type as an overlay

Personal Currency Tracker
CWorldEnder

375 active installs

Tracks your personal made up currency for you.

lamp-lockout
Seditionist

374 active installs

Lockout skills for lamps

Regex Item Counter
flowerworks

364 active installs

Regex item counter plugin

Weight calculator
andmcadams

364 active installs

Helps calculate weights

BAS Queue Helper
BA Services

363 active installs

Provides tools for members of BA Services to help manage the BAS queue

Clan Tracker
Hai Ke

358 active installs

A Plugin to track, log and process clan messages for discord webhooks with ease for both clan leaders and members.

Hunllef Projectiles
neonsulfur

354 active installs

Alter the Projectiles for Hunllef's Prayer-Disable Attack

Hidden Drop Party
krazune

353 active installs

Hides drops. Useful for streamers that want to make drop parties on stream but don't want to show where the good drops were placed.

Pneck Reminder
AbusiveTuna

353 active installs

Highlights Pnecks in your inventory when no amulet is equipped.

LogLocked
MrNice98

349 active installs

Allows players to unlock collections log sections based on total log slots filled. (10 slots = 1 section unlock)

Cosmetics Network
JohnathonNow

344 active installs

Allows players to appear to be wearing different gear in non-PvP scenarios, visible to all with the plugin enabled

Party Special Tracker
1Defence

343 active installs

Tracks various special-related stats

Fun Reminders
Eric V

338 active installs

Create reminders.

ScapeGPT
Rohan Bansal

336 active installs

ChatGPT, but for OSRS!

Hue Ambiance
Jallah123

328 active installs

Adds ambiance lighting for Philips Hue based on in-game events

Alone Man Mode
OnDEK

325 active installs

A plugin for players that just want to be left alone

Untrimmed Warning
pelletier2017

316 active installs

Don't lose your untrimmed cape.

Clan List Exporter
di-brian

314 active installs

Provides various options for exporting clan and friends chat

Morg Http Client
MorgApps

303 active installs

Exposes an HTTP API on localhost:8080 for querying stats and events

platz
i

295 active installs

Replaces the "lots" text in trade window when value > 2.1b

Steps per Clue
Zandsters

292 active installs

Displays how many steps in a clue.

ProximityScape-Discord
warnerBlue

291 active installs

Proximity Chat for Runescape

Sacred Oil
KhaiQ

288 active installs

Alerts player when flamtaer bracelet breaks.

Panel Scroller
Hannah_GBS

282 active installs

Cycle through UI panels with a hotkey

Bitwarden Plugin
raiyni

277 active installs

Plugin that interfaces with the Bitwarden CLI to retrieve RuneScape passwords. -Visit support url for usage

Market Watcher
btabrizi

275 active installs

Market Watcher plugin

Cbow Animation Stall
grantg

266 active installs

Revert crossbow animation during PVM, uses the original/PVP variant with an animation stall

Transcriber
Skretzo

264 active installs

Automatically copy text in books, scrolls, parchments, flyers, etc and NPC overhead text to a panel when you see it

Click Confirm
Zaralot

263 active installs

Play a client-side sound when you equip, eat, pray, and more.

Combat Style Icons
Enzin

258 active installs

Used for marking combat styles

Clock Blocker
Ditiae

257 active installs

An example greeter plugin

Milestone Levels
Antimated

255 active installs

Display milestone levels on a fancy league-like notification

Spacebar Checker
jcbelanger

254 active installs

Counts consecutive spacebar messages in chats.

Hunter Rumours
Geel

252 active installs

Tracks your current hunter rumour, as well as the saved rumours of all masters

CC Clog Spam Hider
Ew Its Mike

251 active installs

Hides certain Clog messages in CC

Mute All
CreativeTechGuy

249 active installs

Mute all sounds from playing, while still enabling sound events for other plugins

Immersive Ground Markers
Xyriella

244 active installs

Props as ground markers

EventsAPI
Morgan Van V.

240 active installs

POSTs customizable data updates to a user defined API endpoint

Ecumenical Key Tracker
NODDZY

235 active installs

Tracks ecumenical keys in inventory and bank

Challenge Mode Indicator
robrichardson13

231 active installs

Shows an indicator above the lever in the POH if challenge mode is on

Break Reminder
LeeOKeefe

229 active installs

Reminder to take regular breaks

Discord Recruitment Notifier
zmike808

220 active installs

Sends a notification via Discord webhooks whenever you invite someone to your clan.

Bolt Proc Counter
Student tort / hyppis

217 active installs

Bolt Proc Counter (Sound effects must be enabled for tracking procs)

Clear Unsent Messages
lightningboltemoji

216 active installs

Clears unsent messages in the chatbox

Polybar Integration
SirArchLinux

214 active installs

Sends current animation state to systems polybar

BA Tiles
McLovin1981

213 active installs

Ground Markers for specific Barbarian Assault waves and roles

Air Tiaras Runecraft
devenini

212 active installs

A plugin for a Runecraft method used by the F2P-UIM community.

Chat-channel Watcher
ryanjpw

212 active installs

Notifies when specified user(s) joins/leaves the chat-channel you are in

Touch Bar
PatrickKocken

212 active installs

A plugin that enables Touch Bar support for Runelite.

Google Form Submitter
umer-rs

209 active installs

Allows you to submit loot drops to a Google Form.

IRC Plugin
Ryan O'Hara

208 active installs

IRC integration into the OSRS chat box

Combat Locked
Christian Legge

206 active installs

Track available combat levels unlocked through Combat Achievements

CAChunk
digiholic

205 active installs

Provides Chunk Unlocks based off of Combat Achievement points

Escape Crystal Notify
Xylot

201 active installs

Notifies you when you're not wearing an escape crystal, have an inactive escape crystal, or are close to triggering the escape crystal. Useful for HCIM/HCGIM.

TrackScape Connector
Bailey Townsend

201 active installs

Connects your clan chat to the TrackScape discord bot.

Escape Crystal Helper
johnvictorfs

200 active installs

Adds useful timers/notifications/highlights for the Escape Crystal for HCIMs

Rune Cost Calculator
Quantum Primus

192 active installs

Calculates total rune costs from certain shops.

Visual NPC Dialogue
NODDZY

182 active installs

Adds dialogue to the chatbox and above NPCs heads.

Large Models
Adam

177 active installs

Finds large models

BigFishProbabilityPlugin
SepCol

176 active installs

BigFishProbabilityPlugin

Cape Counter
di-brian

173 active installs

A plugin that counts regular and clan capes

Method Tournament
Method

171 active installs

A tournament plugin for use by Method OSRS Tournament Participants to have their inventory, HP, damage and prayer% displayed on the live broadcas

Focus Mute
cdfisher

166 active installs

Plugin to mute game sounds when the client loses focus (or do the opposite).

Snakeman Mode
Skretzo

159 active installs

The snake game with chunks. Find fruits to grow bigger, or get stuck

httpeventserver
MW90-NL

151 active installs

Provides game and character event information on localhost

Pokescape PvM
Quo

148 active installs

The companion plugin for PokeScape PvM! Catch 'em all and make your way to the top to defeat the Runemon League!

1Password Plugin
tymscar

145 active installs

This plugin talks to the 1Password CLI to retrieve Runescape login details. -Visit support url for examples.

Ranged Guild Minigame Plugin
UIM Herb10HP

145 active installs

Keeps track of session hiscore and gameplay.

XP Relic Sound
DaBolink

145 active installs

Has a chance while skilling to play the relic unlock sound

WIZ Smart Lights
adnapPanda, Maurits825

142 active installs

A plugin to control the WIZ Smart Lights.

InfluxDB
Equinox

141 active installs

Saves statistics to InfluxDB

OSRSLog
kfricilone

135 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

A plugin using the OSRSLog service for uploading, managing, and sharing screenshots.

Nekos
Ondra_D

129 active installs

Displays a cute neko on the screen.

Combat Logger
Million Pies

127 active installs

Logs combat events to a text file - Upload and analyze your logs at runelogs.com.

Boost Performance
1Defence

125 active installs

Track performance of a boost session or clan event as a participant or bystander

Ably Region Chat
Zoinkwiz

121 active installs

Allows for region chat in certain areas of the game

Chrono
Idyl, Slayermusiq1

121 active installs

Restrict your account by release

CoX Drink
AHeroicBear

121 active installs

Displays text over player heads when drinking from CoX Energy Wells

Infinite Money Bag Tracker
Rugg0064

117 active installs

Tracks how many coins have been pulled from the infinite coin bag.

Lowest Experience
Houston

117 active installs

See the order (and difference) of xp in your lowest skills

Replace Uri dialogue with custom text
Mike-U5

114 active installs

Replace Uri dialogue custom text defined in a text file. Plugin by Mike-U5, inspired by /u/bl__________

HTTP API
Adam

111 active installs

Exposes an HTTP API on localhost:8080 for querying stats

DMM Fake Protection
zlight97

106 active installs

Changes the Deadman icon to display Proection to help with stream snipers

ReVerb
Wool Scarf

104 active installs

Reword verbs in-game

DT2 Boss Fail Notifier
DominickCobb

95 active installs

Notifies player when failing perfect kill conditions

Then We Fight
Himon

95 active installs

Then We Fight Gamemode Plugin

GloopyLite
andmcadams

93 active installs

Implements a basic GloopyBot like interface for creating links to wiki pages

NET cc commands
altar of net

90 active installs

altar of net cc enhancer

OSRS Profile
H1llman

89 active installs

Scrapes your data for OSRS profile to work

Blue's Prox Chat
ThatGamerBlue

87 active installs

Proximity Chat :)

Calcusource updater
hessrs

86 active installs

Updates calcusource upon logout

RuneCafe Cash Flow
The rune.cafe Developers

85 active installs

Come join us at rune.cafe! This plugin provides integration with the website for cash flow reporting and other features!

No New Items
timwestwood

84 active installs

A RuneLite plugin to help players avoid using items that were not originally part of Old School RuneScape.

Old School Snitch
WKRP

81 active installs

A plugin to send your XP, Kills, drops, and Player Model to Old School Snitch to track them.

StatTrack
MatteoVH

75 active installs

Saves group ironman data

Tag Ur It
jcduffy5

75 active installs

Make GIM fun again.

Rune Man Mode
plankstdurtydan

72 active installs

Disables the Grand Exchange

Dialogue Extractor
AshleyThew

58 active installs

Copy NPC dialogue directly from chat

PickleChicken
Croustardeur

53 active installs

Replaces all chicken references with pickles. It's funny

No Steven
two-zee

51 active installs

Hides everything related to the "SteVen" bots that plague F2P

Poll Screenshot
Himon

50 active installs

Screenshots poll interface

Rseye-connector
BasketBandit

46 active installs

Send event based & positional data to any endpoint

Tostky Plugin
example-git

44 active installs

An Ammo Tracking Plugin

Party Tob XP drops
EIKOOT

40 active installs

Shows xp drops of other party members in tob.

ZeroDeaths
Kingston45

39 active installs

A plugin to track score of boss kills and update a leaderboard, be careful though if you die it's all over.

ntfyer
Skeldoor

35 active installs

Send RuneLite notifications to ntfy

Embargo
Sharpienero

34 active installs

A plugin to sync your account with Embargo

Save Evil Creatures
Jim and Jinxer

33 active installs

Protecting that which is most precious.

NPCTaunts
Max

29 active installs

Adds rude remarks from NPCs when you die

Champions Log
Hexagon

27 active installs

(Beta) A spiritual successor to runescape's adventurer's log.

TheleRune Updater
Theleruby

25 active installs

Updates TheleRune on logout

'CsvExport'
'flaxman'

21 active installs

'Save csv data from osrs'

Unbalanced trade prevention
TheStonedTurtle

2 active installs

Prevent unbalanced trades

\ No newline at end of file +Plugin Hub - RuneLite

Plugin Hub

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.

For more information about the Plugin Hub and how to install these plugins, read the guide on our wiki.

14,681,165 active installs
944 plugins
Quest Helper
Zoinkwiz

485,883 active installs

A helper for questing

117 HD
117

344,036 active installs

GPU renderer with a suite of graphical enhancements

Guardians of the Rift Helper
BofaBear

265,107 active installs

Displays info during the Guardians of the Rift minigame.

Tombs of Amascut
LlemonDuck

226,343 active installs

Utilities and information for raiding the Tombs of Amascut.

Zulrah Plugin
while-loop

208,964 active installs

Panel to show Zulrah rotations

WikiSync
andmcadams

204,689 active installs

Send off bits of your player's data so the wiki can personalize your experience

Tile Packs
TrevorMDev

193,892 active installs

A collection of tile markers

Skills Progress
m0bile btw

190,801 active installs

Adds progress bars to the skills tab to show how close the next level ups are

Banked Experience
TheStonedTurtle

189,175 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Calculates your banked experience

The Gauntlet
rdutta

183,869 active installs

All-in-one plugin for The Gauntlet.

Bank Tag Layouts
geheur

182,757 active installs

Right click bank tag tabs to enable layout, then drag items in the tag to reposition them in whatever order you like.

Rogues' Den
Nightfirecat

170,477 active installs

Mark tiles and clickboxes to help traverse the maze

Mahogany Homes
TheStonedTurtle

168,750 active installs

Shows useful information about your current Mahogany Home contract

Tempoross
Canvasba

157,375 active installs

A plugin that shows useful timers and highlights certain objects for the Tempoross boss

Better NPC Highlight
Buchus

151,529 active installs

A more customizable NPC highlight

Essence Pouch
Adam

151,427 active installs

Shows how many essence are in essence pouches.

Fight Cave Waves
Nightfirecat

150,053 active installs

Shows monsters that will spawn on the current and/or next wave

Equipment Inspector
sean-duffy, waistcoat, and botanic

149,535 active installs

Inspect other players equipment.

Collection Log
evansloan

144,130 active installs

Display total collection log progress. Click through the collection log to update progress.

Hub Party Panel
TheStonedTurtle

143,879 active installs

Adds a side panel that displays useful information about your RuneLite party members who are also using this plugin

Easy Giant's Foundry
Toofifty

140,812 active installs

Helpful overlays for the Giant's Foundry minigame

Inventory Setups
dillydill123

139,746 active installs

Save gear setups for specific activities

Radius Markers
Skretzo

134,984 active installs

Display NPC radius regions like attack, hunt, max and wander range

Kitten Tracker
pieterjanbuntinx

116,248 active installs

Show the status of your kitten and gives alerts to feed and play with your kitten

Wilderness Lines
Nightfirecat

114,565 active installs

Show wilderness multicombat areas, the dragon spear range to those areas, and level 20 and 30 lines.

Hunllef Helper
Loze-Put

112,743 active installs

Calls your prayers when fighting the Hunllef!

Max Hit
Matt 12 years later

105,740 active installs

Tells the player their max hit in their current gear

Resource packs
melky

105,538 active installs

Allows you to change the look of the UI in runescape

CoX Timers & Additions
De0

102,316 active installs

Room timers, Thieving bat finder & grubs, and Vanguards highlight for Chambers of Xeric

Chompy Hunter
Botanophobia

101,252 active installs

Improves chompy bird hunting.

One Click Summer Garden
LlemonDuck

101,180 active installs

Provides utilities for doing the one-click Summer Garden method.

Fight Caves Spawn Predictor
Damen

95,503 active installs

Determine the spawn rotations for Fight Caves

Runecrafting Utilities
Jacob Petersen

95,005 active installs

Provides various menu swaps to improve runecrafting

Loot Lookup
TommyTwelve

94,447 active installs

Displays monster drops from the OSRS Wiki

Barrows Doors Highlighter
Jordan Hans

92,232 active installs

Highlights unlocked and locked doors in Barrows to easily view the correct path.

Customizable XP drops
L2-

91,503 active installs

Allows you to customize your xp drops in more ways than in-game.

Optimal Quest Guide
cesoun

89,646 active installs

Optimal Quest Guide for a Quest Cape via Oldschool Wiki

Thrall Helper
PortAGuy

88,693 active installs

Shows a box that reminds you to summon a thrall

Wasted Bank Space
mcgeer,Bebop79

84,110 active installs

Interface to show items which are wasting space in your bank

Plank Sack
Enriath

80,510 active installs

See the contents of your Plank Sack at a glance

Left Click Dropper
Zom

80,388 active installs

Lets you left click drop items based on a custom list of items.

Wilderness Player Alarm
Alex

79,521 active installs

Alerts you when another player is detected nearby in the wilderness

Crab Stun Timers
Ankou

78,909 active installs

Timers for when crabs in CoX get unstunned.

Visual Metronome
Vincent0955

76,480 active installs

Shows a visual cue on an overlay every game tick to help timing based activities

Shortest Path
Runemoro

76,339 active installs

Draws the shortest path to a chosen destination on the map (right click a spot on the world map to use)

Bossing Info
MrNice98

76,143 active installs

Provides various boss kills times, statistics & utilities.

Runedoku
AdituV

75,697 active installs

A Runedoku helper plugin

Improved Tile Indicators
LeikvollE

73,579 active installs

An improved version of the tile indicators plugin

Custom Menu Swaps
geheur

71,300 active installs

Custom text-based swaps and assign different hotkeys for certain different menu entry swaps (e.g. "T" for withdraw-10 but "F" for withdraw-5). Currently includes bank withdraw/deposit, spirit tree/fairy ring, and occult altar swaps.

C Engineer: Completed
m0bile btw

71,296 active installs

C Engineer announces when you complete an achievement

Ba Minigame
BegOSRS

71,240 active installs

Includes some features to enhance the barbarian assault minigame gameplay experience.

Gauntlet Minimap
Vic Segers

71,077 active installs

Displays the resource nodes of the Gauntlet on your minimap

ToA Puzzle Helper
Tiiiiiiiiiim

69,716 active installs

Displays various static images for puzzles

Ping Graph
yuh25

69,347 active installs

Graphs the ping to the current world

Menu Swapper Extended
raiyni

68,563 active installs

External hub for extra menu swapper additions. To request/add more swaps visit the help repository.

Flipping Utilities
Beliael

67,862 active installs

Profit tracking, margin displays, statistics, and more.

Loot Logger
TheStonedTurtle

66,640 active installs

Stores Loot Tracker data locally and adds new side-panel UI

Monster Hp Percentage
Le Jeffe

63,549 active installs

This plugin adds the ability to see the current monster hp in a true value or a percentage of the total Hp

Fight Cave Helper
runkev

63,123 active installs

Plugin to display Fight Cave wave spawns

Crab Solver
TheStonedTurtle

62,645 active installs

Shows the correct color for each crab crystal

Improved Tears Interface
Cyborger1

62,468 active installs

Improves the Tears of Guthix minigame interface with a proper tick timer and current action indicator

Stealing Artefacts
UIM Heals,pajlads

61,176 active installs

A plugin to assist with Stealing Artefacts in Port Pisc

Shooting Stars Tracking
Patrick

59,321 active installs

Tracks the location and eta for shooting stars and provides a way of sharing star locations between players.

RuneWatch
while-loop

59,041 active installs

Check if players are on the RuneWatch or WDR watchlist

RaidReloader
Trevor

57,250 active installs

Lets you reload your raid to scout further

Door Kicker
Enriath

54,186 active installs

Assert your dominance against the doors

ToB QoL
Damen

53,495 active installs

Quality of Life Features for TOB

Bot Detector
Ferrariic

53,121 active installs

Identifies bots by sending nearby player information to a third-party machine learning algorithm, trained with data provided by Jagex Moderators.

Large Logout
dekvall

53,040 active installs

A large logout button

Clan Events
Maz

52,980 active installs

A plugin used to keep track of clan events.

Bats Locator
chestnut1693

52,039 active installs

Helps locate the chest with bats at the thieving room inside Chambers of Xeric

Herbi AFK
Maurits825

51,870 active installs

Makes Herbiboar more AFK.

Time Tracking Reminder
queicherius

50,431 active installs

Extend the "Time Tracking" plugin to show an infobox when bird houses or farming patches are ready.

Cox Additions
Buchus

49,879 active installs

Additional QOL features for CoX

Zalcano
Tjieco

46,800 active installs

Zalcano Utility Plugin

Fish Barrel
molo-pl

46,238 active installs

Shows how many fish are in the fish barrel

Better Teleport Menu
Abex

46,226 active installs

Customize hotkeys for the Spirit Tree/Jewelery box/Portal nexus layout/Diary/Construction cape interfaces

Supplies Tracker
Patrick

46,219 active installs

Tracks supplies used during a session

Damage Counter
0anth

46,001 active installs

Counts how much damage you did to a boss

Emote Clue Items
Lars van Soest

45,964 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Highlights items required for future emote clue steps. Provides a collection log for items and STASH Units.

Blackjack
Sean M

45,324 active installs

Help show whether or not a blackjack-able NPC is knocked-out

Annoyance Mute
Brooklyn

45,323 active installs

Selectively mute annoying game sounds

DPS Calculator
LlemonDuck

44,829 active installs

Calculate DPS against NPCs based on equipment, skills and prayers.

Weapon Charges (WIP)
geheur

43,872 active installs

Support for more weapons coming soon!

Raid Data Tracker
Canvasba

43,063 active installs

Tracks all loot received within the Chambers of Xeric, including splits. Also tracks the total, and personal points received, so that you can accurately determine your personal droprate, and dryness.

Item Charges Improved
TicTac7x

42,864 active installs

Show charges of various items

Bank XP Value
dseeler

42,243 active installs

All-in-one banked xp viewer + item xp tooltips

PvP Performance Tracker
Matsyir

41,582 active installs

Estimate performance in PvP by tracking various stats.

Spam filter
jackriccomini

41,188 active installs

A spam filter for public chat

CoX Light Colors
Ankou

41,157 active installs

Set the colors of the light above the loot chest in Chambers of Xeric

Fishing Notifier
Bram91

40,579 active installs

Notifies the moment you go idle while fishing

Player Outline
neilrush

40,568 active installs

A simple plugin that outlines the player allowing you to see the player behind objects.

Tick Tracker
Tatterss

40,511 active installs

A plugin to track server ticks

Not Empty
dekvall

39,183 active installs

Never empty potions again!

Shooting Star Info
Patrick

39,005 active installs

Displays various info about shooting star that you find/mine such as tier, number of miners, health %.

Fashionscape
equirs

38,939 active installs

Preview equipment by changing local player appearance

Monster Menu HP
Ankou

38,381 active installs

Shows monsters' HP in their right-click menu entry

Clue steps
sky

38,332 active installs

Shows the amount of steps completed on each clue scroll.

Easy Blast Furnace
Toofifty

37,908 active installs

Helps you train at the blast furnace more efficiently

NMZ Optimal Points
Bloogeyz, Nate Wiebe

37,641 active installs

A plugin to help you getting optimal points in NMZ by showing you the enemy's points

Slayer Assistant
LeeOKeefe

37,094 active installs

Provides information on slayer tasks

CoX Scouter External
Truth Forger

36,788 active installs

Shows additional information for the Chambers of Xeric raid

Party Defence Tracker
Buchus

35,746 active installs

Calculates the defence of a boss based off special attacks

Bird Run Alert
ffalor

35,372 active installs

Bird run alert for those bird runs. ALERT!

High Alc Profit Highlighter
Bloogeyz,Atroxide,neilrush,clarkey252

34,887 active installs

Highlights bank and inventory items that have a profitable high alc value

ToA Points Tracker
AbusiveTuna

34,849 active installs

A plugin to display your points at ToA

Detached Camera
Adam

34,195 active installs

Allows free roaming the camera

3D Weather
ScreteMonge

33,879 active installs

Gives immersive, 3D Weather with dynamic Weather cycles and ambience

Wintertodt Notifications
Jodelahithit

33,713 active installs

Visual notifications for Wintertodt

Star Miners
Cute Rock

33,457 active installs

Displays a list of active stars and crowdsources data about stars you find and mine

Fortis Colosseum
LlemonDuck

33,202 active installs

Utilities and information for the Fortis Colosseum.

Raid Points Overlay
Trevor

32,974 active installs

Replace the vanilla raids points widget with a runelite overlay

Calculator
Spedwards

32,773 active installs

Adds a calculator panel

Pickpocket Helper
Ruben

32,586 active installs

Adds quality of life improvements for pickpocketing.

Shooting Stars
andmcadams

32,251 active installs

Provides a way to crowdsource shooting star information through an external server

Toa Mistake Tracker
Questing Pet

32,232 active installs

Tracks mistakes for you and your teammates in the Tombs of Amascut. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

Pyramid Plunder Counter
adnapPanda

31,879 active installs

This plugin will display how many golden chests and sarcophagi you have successfully opened in your session.

Motherlode Mine Improved
TicTac7x

31,869 active installs

Better indicators for ore veins

BA Call Highlight
Rugg0064

31,182 active installs

Automatically highlights the correct call in Barbarian Assault.

Camera Smoothing
ArtsicleOfficial

31,070 active installs

Makes camera rotation and zooming smooth.

Spring Garden
Majesty373

30,507 active installs

This helps with the Sorceress's Spring Garden

CoX Censor
Karambtwo

30,479 active installs

Censors CoX uniques and reveals them once the chest is opened.

Autumn Garden
Ailie Luibh

30,335 active installs

An adaptation of Majesty373's Spring garden plugin to help with the Sorceress' Autumn Garden

Barrows Potential
GodofDrakes

30,278 active installs

Indicates which monsters you should kill in order to achieve the desired Barrows reward potential

Zoom Extender
Adam

30,177 active installs

Extends the inner zoom limit further

Ground Object Hider
Leo288

29,776 active installs

Hides Ground Objects. A selector is used to choose objects to hide.

Tithe Farm Improved
TicTac7x

29,667 active installs

Improve overall experience for Tithe farm

Action Progress
Caleb Whiting

29,483 active installs

Display action progress

One Tick Flick Metronome
Minhs2

29,389 active installs

A metronome timed specifically to aid with one tick prayer flicking.

Picture in Picture
DekuScrub

29,358 active installs

Display Picture in Picture mode when RL is not active

Visual Ticks
Nerdpuff

29,322 active installs

Adds a customisable visual tick overlay.

Wise Old Man
dekvall

28,955 active installs

The companion plugin for wiseoldman.net - Track your gains, participate in competitions and manage your groups.

Nex Nostalgia
Hexagon

28,303 active installs

Adds Nex voice over effects

ImplingSaver
Nate

28,221 active installs

Stops you from opening Impling Jars if you have corresponding clue

Weapon/Gear/Animation Replacer
geheur

27,963 active installs

Run like a monkey, turn your whip into a scythe, transmog gear, and more!

AFK Countdown
Im2be

27,422 active installs

Counts down until you log out due to AFK

Forestry CC
Rang

27,277 active installs

A plugin for tracking forestry cc events

Profit Tracker
nofatigue

27,207 active installs

Track profit while money making.

Pickpocket Info
Diabolickal

27,071 active installs

Shows additional pickpocketing information like success rate, dodgy necklace charges, and coin pouch count.

Shayzien Organised Crime
DylanLange

26,871 active installs

A plugin to help with tackling organised crime in Zeah

Companion Pet Plugin
MrNice98

26,831 active installs

Spawn any pet as a follower or to act as a thrall.

Teleport Maps
mjhylkema

26,578 active installs

Replaces teleport menus with interactive map interfaces. Graphics by NinjaPig.

Cannon Highlighter
ConorLeckey

26,433 active installs

Highlights NPCs in range of a cannon and tells you when they will get double hit

Gauntlet Calculator
Bwana Ian

26,371 active installs

Calculates materials needed for different setups in the gauntlet

HD Minimap
Mark7625

25,433 active installs

Adds a HD Minimap from 2008!

Effective Levels
Xrio

25,276 active installs

Shows the invisible effective boosted skill levels in the skills tab, which are used in max hit, accuracy roll and defence roll formulas.

Herblore Recipes
ClimbRideCode

25,099 active installs

Hover over a herblore ingredient or potion in your inventory or bank to see which potions can be made with it or that potion's recipe

Watson clue tracker
geheur

25,025 active installs

Tracks which clues watson has

Gauntlet Map
StickySerum

24,869 active installs

A real time map of the gauntlet

Gnome Restaurant
Hexagon

24,784 active installs

Add quality-of-life features to the Gnome Restaurant minigame

Fossil Island
Adam

24,781 active installs

Removes scenery from Fossil Island to improve performance

Nexus Menu Map
Antipixel

24,770 active installs

Enables you to navigate the Nexus portal menu as an interactive map

Tree Despawn Timer
CreativeTechGuy

24,722 active installs

Show an estimate of the remaining time until a tree is chopped down

Volcanic Mine
Hippipi

24,634 active installs

Notifications for events in the Volcanic Mine activity

Sulliuscep run
TicTac7x

24,445 active installs

Helpful clickboxes for sulliuscep run

Vardorvis Projectiles
InfernoStats

23,573 active installs

Alter the Projectiles for Vardorvis' Prayer-Disable Attack

CoalBag
NickWolff

23,373 active installs

Shows how much coal is in the coal bag

Rooftop Agility Improved
TicTac7x

23,245 active installs

Improved clickboxes for rooftop agility courses

NMZ Utilities
Zom

22,744 active installs

Notification when hp above threshold

Tob Mistake Tracker
Questing Pet

22,536 active installs

Tracks mistakes for you and your teammates in the Theatre of Blood. It will also track mistakes for other raiders while you're spectating. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

Pet Info
micro tea

22,165 active installs

Adds right click menu options to pets to provide info about how they are obtained and who their owner is

ToB Light Colors
Maurits825

22,110 active installs

Recolors the ToB chest and adds a light beam above the chest

Guardians of the Rift Leech
Questing Pet

22,063 active installs

Plugin for helping to leech/afk in GotR by obtaining the minimum required points for rewards (150) and then mining the rest of the round. Useful while working. Contact: iTry#2761 on Discord, Questing Pet in-game, or post on github.

Tree Count
infinitay

22,036 active installs

A RuneLite plugin to track the number of players other than yourself chopping a tree

Corp FFA
Box Of Hats

21,916 active installs

Count specs and check gear for the Corp Ffa07 CC.

Looting Bag
Patrick,Nicole

21,698 active installs

Overlays looting bag value / free spaces on the bag in inventory

MLM Upper Level Markers
Cyborger1

21,609 active installs

Adds markers to veins that have been mined in upper MLM

Spec Regen Timer
Bram91

21,472 active installs

Adds a tooltip to the spec orb with the remaining time till 100% spec

Did I Compost?
AbusiveTuna

21,345 active installs

Tells you if you applied Compost or not to a patch.

Instant Inventory
Elg

21,145 active installs

Perform inventory actions instantly

Green Thumb
Asthereon

20,980 active installs

Provides useful information for farming

Multicolor Highlights
sgfost

20,898 active installs

Highlight NPCs with different colors

Theatre of Blood Stats
HSJ

20,733 active installs

Detailed time splits and damage tracker for tob

Last Seen Online
molo-pl

20,658 active installs

Track when you've last seen your friends play

Better Godwars Overlay
Denchy

20,399 active installs

Improves the GWD kill count overlay

Decimal Prices
rmaes4

20,130 active installs

Allows the use of decimals when typing a custom price. E.g. 2.5k = 2500

Marks of Grace Counter
Cyborger1

20,064 active installs

Counts Marks of Grace spawns

Konar Milestone Reminder
michael-gutman

20,023 active installs

Reminds you to use Konar for more points at milestone slayer tasks

Fixed Mode Hide Chat
deathbeam

19,985 active installs

Hides chatbox in fixed mode and expands the view

Nylo Death Indicators
InfernoStats

19,740 active installs

Hide dead nylos faster

Ultimate NMZ
iant89

19,461 active installs

AFK at Nightmare Zone, While watching youtube or playing a game? Say no more!

TOB Damage Counter
Trevor

19,257 active installs

Counts your damage for each room in the theatre of blood.

Profiles
Spedwards

19,256 active installs

Allow for a faster log in

Set Timer
InfernoStats

19,252 active installs

A manual TzKal-Zuk set timer

Virtual Level Ups
Nightfirecat

19,007 active installs

Displays a level-up dialog when reaching a new virtual level

Wintertodt Scouter
nucleon

18,715 active installs

This plugin displays the Wintertodt Boss health on the 4 major worlds through crowdsourcing.

Prifddinas
David

18,503 active installs

Removes scenery from Prifddinas to improve performance

BirdhouseOverlay
hong-niu, li-cody

18,211 active installs

Color overlay to remind users to fill birdhouse with seeds after building.

Bank Heatmap
raiyni

17,671 active installs

Adds options on the bank menu button to display a heatmap of item values

AttackTimer
ngraves95

17,521 active installs

A plugin to countdown until your next attack

Easy Teleports
LlemonDuck

17,494 active installs

Replaces teleport destinations with colloquial or custom locations.

Discord Loot Logger
Adam

17,411 active installs

Logs loot received to a Discord Webhook

ToG Crowdsourcing
JC A

17,319 active installs

Plugin that crowdsources the optimal Tears of Guthix world

No Examine
Skretzo

17,109 active installs

Remove examine menu option to never missclick again

Master Farmer
ConradicalMel

17,077 active installs

Utilities that help when thieving master farmers

Corner Tile Indicators
geheur

17,040 active installs

Draw only the corners for tile indicators.

Inferno Stats
InfernoStats

16,985 active installs

In-depth stats about your Inferno attempts

Bank Memory
LazyFaith

16,649 active installs

Remembers all your banks, lets you instantly search them, and lets you compare their contents.

Tasks Tracker
Reldo.net

16,287 active installs

Provides a panel to track league/combat tasks & export for external services

Quick Prayer Preview
Enriath

16,283 active installs

Preview your quick prayers by hovering over the orb

Pathfinder
Milo Piazza & William Ferreira

16,268 active installs

Highlights your character's path to the hovered tile

Rainbow Rave
geheur

16,248 active installs

Makes things rainbow, including loot beams, because clearly seeing the game is for noobs who don't know how to play the game.

Bank Value Tracker
Adrian Elder

16,156 active installs

A plugin for tracking bank value over time.

Dense Runecrafting
Zom

16,060 active installs

Draws an overlay on the Dense Runestone in Zeah

Consumable Cooldowns
Copy Pasta

15,826 active installs

Displays cooldowns on food & drink items in your inventory

Discord Rare Drop Notifier
BossHuso

15,774 active installs

Sends a detailed notification via Discord webhooks whenever you get a rare/unique drop.

Pouch time to degrade
DavidV

15,734 active installs

Shows how much essence you can put into your pouches before it degrades. Resets only when casting Contact.

Mage Arena 2 Memory
Herbs

15,526 active installs

Remembers the location of the Mage Arena 2 Bosses for all user accounts and draws each boss on the world map.

Max Hit Calculator
j-cob44

15,440 active installs

Calculates Max Hit stats for the current equipment setup.

Giant's Foundry Gear Values
Speshkitty

15,376 active installs

Adds bar values to gear usable in Giant's Foundry

Efficient Fletching
adnapPanda

15,326 active installs

This plugin tracks how many fletching sets your character has left before becoming idle. Works for enchanting bolts as well.

Trouble Brewing
Biffo89

15,188 active installs

This plugin displays information about the number of points earned during a Trouble Brewing game.

Turael Skipping
BrastaSauce

15,097 active installs

Displays best location and information for Turael/Spria tasks

Nyloer
EIKOOT

14,921 active installs

Nyloer Plugin

Patch Payment
zaaack

14,863 active installs

Creates a menu item to check a seed's required payment for a farmer to protect it

Odablock Sounds
DapperMickie

14,593 active installs

Odablock announces when you complete an achievement

Ring of Recoil Notifier
delps1001

14,407 active installs

A plugin to show a ring of recoil icon when your character is not wearing a recoil

Path Marker
GeChallengeM

14,389 active installs

Highlights your character's path to its target tile and/or to the hovered tile

Bank Value
spudjb

14,319 active installs

Shows the value of your bank in the sidebar

Transmogrification
Enriath

14,125 active installs

Wear the armour you want, no matter what you're doing.

Time to Level
while-loop

14,057 active installs

Panel to show how long until you get dopamine fireworks. /s

Death Indicator
Adam

13,973 active installs

Shows where you died and a timer until items despawn

Inferno Split Timer
usa-usa-usa-usa

13,931 active installs

Displays Wave splits in chatbox

Camera Points
NullNameException

13,909 active installs

Allows you to save and load your camera zoom and a direction.

Discord Notifications
WintZ

13,881 active installs

Sends a message to a discord channel when leveling a skill, completing a quest or dying. Optionally includes a screenshot.

Discord Death Notifications
elguy

13,734 active installs

Sends a message to a Discord channel when dying.

Blood Shard Notifier
Jurre Groenendijk

13,695 active installs

Plays a sound when you get a blood shard

Bank Tag Generation
Mitch

13,691 active installs

Allows the creation of bank tags from categories on the offical OSRS wiki

AfkTimer
MrMedicus

13,566 active installs

Notify yourself after you have been AFK for a specified amount of time

Probability Calculator
Pharros

13,471 active installs

Calculates the statistical probability of various mechanics such as drops.

Dance Party
dekvall

13,416 active installs

Never celebrate a 99 alone again.

Clue Juggling Timer
geheur

13,188 active installs

Timers for dropped clues.

NPC ID
Xrio

13,145 active installs

Display identification information as text above NPCs

Stronghold of security question helper
severikupari1

13,056 active installs

Shows correct answer to security questions in stronghold of security dungeon

Combat Achievements Timers
lukamircetic

12,907 active installs

Live timer during Combat Achievements Speedrun Boss Kills

Spawn Marker
Thevir

12,851 active installs

Marks the tile where a creature have spawned

Bank Equipment Stat Filter
Adam Giles

12,772 active installs

Adds a panel to search your bank for items in a slot sorted by a stat

Volcanic Mine Stability Tracker
Hexagon

12,766 active installs

Tracks mine stability changes and draws them on the hud

Player Highlighter
Zettlematt

12,556 active installs

Highlights other players in a radius around the player.

Random Event Hider
YvesW

12,541 active installs

Adds the ability to hide specific random events that interact with you or with other players.

Pickpocket Guardian
Drufix/Hiro/Orrezon

12,462 active installs

Prevents pickpockets when at or below the specified HP threshold. Also helps prevents deaths in Pyramid Plunder.

Slayer Additions
sky

12,452 active installs

Additional slayer features

Bank Tab Names
psyda

12,205 active installs

Customize your bank tabs with custom styled names

ItemRarity
Zamatica

12,168 active installs

Provides a visual highlight to the value of an item.

ToB Drop Chance Overlay
winterdaze

12,026 active installs

Displays estimated team and personal drop chance information at ToB

Boss Health Indicators
Rugg0064

12,019 active installs

Shows indicators for certain health percentages on boss health bars.

Tick Counter
winterdaze

11,890 active installs

Counts combat activity for nearby players

Unpotted Reminder
Ankou

11,888 active installs

Reminds you to drink your boost potions when you have them

InstantDamageCalculator
Geeckon

11,855 active installs

Calculates damage dealt based on Hitpoints xp drop

Discord Collection Logger
Paul

11,745 active installs

Send discord message to webhook when a collection item is obtained

Emoji Palette
hjdarnel

11,539 active installs

Adds an emoji palette on the navbar for reference

Bank Screenshot
raiyni

11,417 active installs

Take screenshots of your bank

OSRS Wiki Crowdsourcing
OSRS Wiki

11,395 active installs

Help the wiki figure out skilling success rates, burn rates, and more.

Unresponsive Cursor
Bluelitezero

11,272 active installs

When the server is unresponsive (Lag), the cursor will change.

Drop Sounds
LilJickDones

11,261 active installs

Play sounds on Valuable drop or Untradeable drop chat notifications, configurable in settings

Empty Forestry Basket
DominickCobb

11,239 active installs

Changes Use to Empty for the Forestry Basket in the bank

Arceuus Timers
Mantic

11,229 active installs

Better timers for Arceuus Spellbook

Dude, Where's My Stuff?
Thource

11,208 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Find your stuff with ease.

Watchdog Alerts
adamk33n3r

11,078 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Create custom alerts for different events like messages, stats, or built-in notifications

TaskJingle
Max

11,063 active installs

Plays jingle at end of slayer task

AFK GOTR
Zom

11,009 active installs

AFK GOTR even harder!

Current World
Brooklyn

11,000 active installs

Adds activity to the world switcher, overlays your current world

Herb Sack Price Check
Broadbent

10,998 active installs

Tells you the price of the herbs in your herb sack

Daily Tasks
TicTac7x

10,974 active installs

Daily infoboxes to annoy you to do your tasks

Spirit Tree Menu
DekuScrub

10,918 active installs

Updates the Spirit Tree navigation menu

NPC Idle Timer
vonpawn, lejeffe

10,749 active installs

A utility to add overhead timers to select npcs to keep track of how long they have been standing on the same tile

Slayer Helper
Anel Drocic

10,678 active installs

The Slayer Helper plugin which provides helpful slayer task information.

Tedious Collection Log
evaan

10,669 active installs

Tedious announces new collection log slots (fork of m0bile btws C Engineer plugin)

ChatboxOpacity
Trevor

10,627 active installs

Lets you change the opacity of your chatbox

Abex's Idle Notifier
Abex

10,518 active installs

An finicky idle notifier for mining & woodcutting

Dynamic Entity Hider
Jbleezy

10,367 active installs

Hides players when there are too many showing

Better Discord Loot Logger
RinZ

10,330 active installs

Alerts you in discord using a webhook of new collection log items, pets etc.

Idle Alarm
observnad

10,274 active installs

Plays alarm while player is idle

Balloon Transport System
TicTac7x

10,077 active installs

Show amount of logs stored in the balloon transport system storages

Monkey Metrics
Lotto

10,071 active installs

Shows helpful information when chinning.

Nightmare Timers
De0

10,007 active installs

Time tracking for Nightmare phases and kill times

Runite Rocks
TheStonedTurtle

9,957 active installs

Tracks when runite rocks will respawn

Death Charge Reminder
InfernoStats

9,809 active installs

Death Charge Reminder

Dink
pajlads

9,807 active installs

Discord compatible webhook notifications for Loot, Death, Levels, CLog, KC, Diary, Quests, etc.

Tob Health Bars
Trevor

9,777 active installs

Replaces the tob orbs with health bars

Herb Farming Calculator
Lucas Pickering

9,688 active installs

Calculate XP and profit from herb farming. Configure patches, boosts, etc. to get accurate projections.

ToB QoL Improvements
WLoumakis

9,663 active installs

A small QoL plugin for the Theatre of Blood

Collection Log Luck
peanubnutter

9,546 active installs

Display luck for various collection log items. Pulls from collectionlog.net.

Dynamic Inventory Tags
Amro Thabet

9,407 active installs

Sets tags on gear items based on the weapon equipped. Tags gear items that are missing from your current switch.

RSN Hider
ThatGamerBlue

9,333 active installs

Hides your RSN in chatbox and overheads.

Last Recall
dekvall

9,280 active installs

Map marker, verbose last location and stored memory overlay

Hide Widgets
PresNL

9,236 active installs

Adds a hotkey that allows you to hide all the UI widgets for a clean look (Resizable only)

XP Drop Extended
Keywok

9,187 active installs

Extended functionality to the existing XP Drop plugin.

Cox Analytics
Buchus

9,122 active installs

Detailed time and point tracking for Chambers of Xeric

Line Markers
Skretzo

9,097 active installs

Draw lines on tiles

Group Ironmen Tracker
Christopher Brown

9,086 active installs

Tracks information (skills, inventory, bank, etc.) about a group ironman player and sends it to a website for other group members to view

Runecrafting Tracker
Harrison

9,046 active installs

Track your total profit and the amount of runes you have crafted

Specimen Cleaning
acdvs

9,008 active installs

Tracks the specimen cleaning activity in Varrock Museum

TOB HM Timer
Loze-Put

8,998 active installs

Display the timer in Theatre of Blood: Hard Mode.

World country flags
melky

8,969 active installs

Replaces the word "World" inside clan chat / friends list with the respective country flag

Better Overload
Aurelify

8,935 active installs

Improved overload timer, to account for world lag.

Temple Tracker
Canvasba

8,930 active installs

Tracks the points and duration of a temple trek, as well as all encounters, and the duration of each encounter.

Visual Sounds
Box Of Hats

8,920 active installs

Visually see any sounds that are playing in game

Prop Hunt
Idyl

8,797 active installs

Adds Prop Hunt to OSRS

CostumeRoomHighlighter
michaelperino

8,787 active installs

Helps clean your bank by highlighting everything that can be stored safely in your player owned house.

Last Man Standing
Patrick

8,783 active installs

Game start notifications, options to highlight chests and loot crates, LMS Rank overlay, detects bots, opponent kill/death tracking.

Advanced Notifications
Zakru

8,770 active installs

An advanced notification system

Normal Ancient Teleports
Idyl

8,694 active installs

Renames the teleports in the Ancient spell book to their logical names

Resting
ScreteMonge

8,657 active installs

Allows the player to set a resting idle animation

Lance Enhance
Brooklyn

8,626 active installs

Override the Dragon Hunter Lance's run animation

Instant Idle Notify
Patrick

8,610 active installs

Notifies when repetitive inventory processing is finished. E.g. Herblore, Fletching, Cooking. Visit github for more details.

Lootbag Utilities
LootBagger

8,553 active installs

prevents destroying storage items (looting bag, rune pouch, etc.)

Skills Generator
MakingStan

8,449 active installs

A plug-in that gives you tasks to do. An excellent plug-in when you have nothing to do.

Combo Runes Only
LlemonDuck

8,448 active installs

Removes the Craft-rune option from Runecraft altars, so you never misclick and make non-combination runes.

Lazy Farming
Speaax

8,340 active installs

Item and overlay for farm runs. (Incomplete!)

Animation Transmog
ArtimosPenguidor

8,317 active installs

A simple plugin which allows the player to customize which animations are used for various actions

Animated Icons
winterdaze

8,209 active installs

Display animated gif icons for items that have them

Ground Item Sounds
Pharros

8,174 active installs

Plays sound effects when specific ground item tiers appear.

Agility Pyramid Slider Block Timer
Wesley

8,153 active installs

Add timers to the sliding blocks of the agility pyramid in OSRS

Item Drop Sound Notification
Spongie

8,137 active installs

Plays a sound when you get an item listed in the configuration

Smart Metronome
Brooklyn

8,030 active installs

A metronome that only ticks when useful

Cat V Rat
Gunner Stone

8,007 active installs

Help remind yourself to feed your cat while it is fighting Hell-Rat Behemoths for spices!

Track Healers
mmdts

7,969 active installs

Tracks healer information for barbarian assault.

Butler Info
NickMckloski

7,933 active installs

A plugin to display POH butler info

Tzhaar Hp Tracker
Buchus

7,924 active installs

Detailed HP tracking for both Fight Caves and Inferno NPCs.

Impling Finder
Hablapatabla

7,875 active installs

Crowd-sources locations of implings around Gielnor

Fullscreen
dekvall

7,803 active installs

RuneLite, but in fullscreen.

Essence Running
Aaron

7,798 active installs

Change the default shift option that is displayed when hovering over objects associated with essence running

Life Saver
Keywok

7,754 active installs

Forces a notification when at or below the configured hitpoints.

Line of Sight
krazune

7,750 active installs

Shows the player's line of sight.

GP Per Hour
Moshe Ben-Zacharia

7,672 active installs

Track your gp/hr across various trips and save your sessions for later viewing.

Ultimate Volcanic Mine
CyanWarrior4

7,661 active installs

Helpful tools for use with the Volcanic Mine minigame

Shift Remapping
WhatATopic

7,646 active installs

Allows remapping of shift key since it never got added to key remapping.

Dry Meter for Raids
RydawgRS

7,592 active installs

*BETA*A plugin which will keep track of your luck in raids. Only works in solos.

Imbued Heart Notifier
JuliusAF

7,536 active installs

Highlights your imbued heart once it's ready to invigorate

Collection Log Master
ImTedious

7,529 active installs

A Collection Log Master Tier Plugin

Global F Keys
Sir Girion

7,457 active installs

Allows you to set F key mappings globally, independent of the account being played on

Wilderness Slayer
BrastaSauce

7,348 active installs

Displays best location and information for wilderness tasks

Protect Item Notify
Mathew Chapman

7,233 active installs

Reminds you to protect item.

BA Plus
Furret

7,198 active installs

Adds speedrunning splits and other post-game info (points, missed arrows, hp vialed)

Brush Markers
Bram91

7,173 active installs

Get creative with your groundmarkers

Runecrafting Lap Tracker
JwowSquared

7,128 active installs

Tracks laps until pouch degradation

Sandstone Buckets Counter
wookkeey

7,126 active installs

Show helpful counter of how many buckets of sand in sandstones player has in their inventory and grinder

Wintertodt Solo Helper
Aqua UIM

6,919 active installs

Assist in soloing Wintertodt

Home Enforcer
Enriath

6,869 active installs

Stop your Mahogany Homes from shifting into other realities

Vengeance Tracker
MrNice98

6,845 active installs

Places a small vengeance icon next to any player you see receive vengeance and more. (works with party plugin)

Equipment Screenshot
Truth Forger

6,839 active installs

Takes screenshots of inventory and equipt items by right-clicking the equipment tab

ToA Missing Pickaxe Indicator
Sorgrum

6,773 active installs

Don't forget your pickaxe in ToA ever again

World Cycle
1Defence

6,732 active installs

Lighter, custom version of world hopper used to hop between a set of worlds circularly

Wilderness Boss Peek
Patrick

6,706 active installs

A plugin that assists peeking wilderness boss caves with color highlights based on activity and time since peeked.

Flipper
Kyle Richardson

6,702 active installs

Grand Exchange merchanting tracking, high alch tracking, and flip finding utilities

More Fireworks
Marbleturtle

6,667 active installs

Causes fireworks when people say gz, @@@, a customizable messages or when you get high value drop.

ToB Light Up
Brooklyn

6,658 active installs

Removes the dark overlay from outside ToB

Charge Calculator
Fisu

6,655 active installs

Fill charges to chargable items easier.

Don't eat it!
Enriath

6,645 active installs

Make every item that has a Use option have it as left click

Great Guardian Hider
Horseforlunch

6,607 active installs

Hides Great Guardian in GOTR so some alters are easier to click

Seaweed Spore Notifier
rbbi

6,601 active installs

Notifies you when seaweed spores spawn

Emoji Madness
dekvall

6,587 active installs

Use emojis instead of words

In Game Timer
Idyl

6,573 active installs

A timer / stop watch that tracks in game time

Metronome Infobox
kentor

6,514 active installs

A visual metronome as an infobox

Skilling Notifications
Jodelahithit

6,511 active installs

Visual notifications on idling from skilling

Combat Information
KMPLX

6,460 active installs

Combat information overlay for combat stats, attack style, and auto-retaliate setting.

Inferno Tracker
evaan

6,456 active installs

A plugin to help track your inferno attempts.

Loading Lines
De0

6,384 active installs

Draws loading lines on screen

Citizens
Magnaboy

6,358 active installs

Adds citizens to help bring life to the world

Rlweather
Bogstandard

6,349 active installs

Weather for Old School Runescape

Recently Banked Items
Patrick

6,297 active installs

A Runelite plugin that keeps track of items you have recently withdrawn/deposited so you can quickly grab items you recently used.

Skull Notifier
Trevor

6,282 active installs

Notifies you if you get skulled or unskulled

Combat Level Calculator
Herbs

6,136 active installs

Calculate combat levels based on given skill levels

Aerial Fishing
Patrick

6,114 active installs

Reduce clicks and fish faster at Aerial Fishing!

Region Locker
slaytostay

6,082 active installs

Plugin for chunk locked accounts

Crop Circle Tracker
mattjrumble

5,989 active installs

Crowdsourced crop circle tracking

Client Resizer
YvesW

5,963 active installs

Allows for automatic or hotkey-based resizing and repositioning, for snapping the client back/containing it in screen, and for client anti-drag.

Mini Bars
Skeldoor

5,837 active installs

Show HP/Pray/Run/Spec in Mini Bars

Random Event Analytics
z-index

5,776 active installs

Displays random event timers and logs events.

Interactable Hints
DekuScrub

5,760 active installs

Highlights interactable objects/NPCs

Aqp Finder
Elixir140

5,759 active installs

Finds "q p" in chat and displays spaces needed to match "w" underneath

Temple Trekking Swamp Helper
PlayerCoder1

5,755 active installs

Tell you which way to go in the swamp without having to check manually

Discord Level Notifications
Takamok

5,742 active installs

Sends a message to a discord channel when leveling a skill. Optionally includes a screenshot.

Hydrate Reminder
jmakhack

5,701 active installs

Reminds players to take a hydration break on a set interval

Group Iron Panel
toasty-toast

5,635 active installs

A panel that displays your Group Ironman group's skills and hiscores all in one place

Mouse Click Counter
Robert Espinoza

5,626 active installs

Tracks all types of mouse clicks in the active session.

Inventory Total
Eric Versteeg

5,620 active installs

Shows the total GE value of all items in your inventory.

Afk Marks Canafis
powerus117

5,610 active installs

Allows you to afk on the last roof of canafis for marks

Entrana
Patrick

5,609 active installs

A Runelite plugin to highlight items not allowed on Entrana before travelling there from Port Sarim.

Fake Iron Icon
ThatGamerBlue

5,597 active installs

Shows a fake ironman icon next to your name. Stripped down version of what Skiddler, Ron, Purpp and EVScape have

Chinbompa
Adam

5,526 active installs

Replace cannonballs with chinchompas

Video Recorder
Skretzo

5,522 active installs

Capture the in-game screen as a video

Volcanic Mine pre-reset notifier
Kitsch#9214

5,496 active installs

Notifies on stability change 6 mins or prior for A role and B/C role within the Volcanic Mine

Godbook
InfernoStats

5,493 active installs

Godbook Preach Timer

Identificator
Skretzo

5,458 active installs

Show IDs for NPCs, objects, animations and more

Hunter Rumours
Geel

5,455 active installs

Tracks your current hunter rumour, as well as the saved rumours of all masters

H.A.M Store Rooms
Geel

5,441 active installs

Highlights chests which you have keys for in the H.A.M Store Rooms

Blindfold
StevenWaterman

5,391 active installs

Blindfolds you, so you can't see anything except for your character

Tileman Mode
ConorLeckey

5,365 active installs

Automatically draws tiles where you walk

POH Storage
DekuScrub

5,358 active installs

Filter and configure POH Storage

Uncharged Glory Warning
Nightfirecat

5,319 active installs

Warns you if you enter the wilderness with uncharged amulets of glory

Contextual Cursor
Enriath

5,311 active installs

RSHD-style context cursors on hovering

Phoenix Necklace Jingle
Nope1252

5,057 active installs

Plays a sound when your phoenix necklace breaks

Automatic Low Detail
bepzi

5,031 active installs

Automatically turn off ground decorations while inside certain areas (like raids)

Custom Drop Sounds
daanbom

4,958 active installs

custom sounds for drops you get

Iron Value
hawkins

4,921 active installs

Item Values for Iron Players

Motherlode Profit Tracker
Smeety

4,910 active installs

Track your profits at the Motherlode Mine with ease.

Profit Calculator
LlemonDuck

4,899 active installs

Enables calculation of profit through inputs and outputs on a side panel.

Inventory Summary
Enriath

4,871 active installs

A compact summary of your inventory

Cox Scav Calculator
Bwana Ian

4,820 active installs

Helps calculate scav materials and herbs needed for CoX runs

Not Enough Runes
Hannah_GBS & LlemonDuck

4,820 active installs

Sources and products for every item in the game!

Health Notifications
Thomas Anderson

4,810 active installs

Visual notifications of health status

Bank Diff
dekvall

4,803 active installs

See your bank progress from a certain point in time

Model Exporter
Bram91

4,772 active installs

Export game models and animation sequences.

Stack Value
Sheeva

4,769 active installs

Shows value of stacks using colors

Party Health Status
1Defence

4,765 active installs

Visual representation of your party members hitpoints

Barb assault PBs
SkylerMiner

4,749 active installs

Saves Personal Bests for Barbarian assault

Text to speech
JesseVii

4,681 active installs

Text to speech for chat, dialog, menu options and notifications

PvMTickCounter
Chrisioman

4,633 active installs

Adds a variety of tools to calculate individual damage dealt based of seconds or combat ticks. Can keep track of how many max hits are landed Also counts individual combat ticks versus others in the same instance based off weapon used.

Altered Stats
Jason

4,559 active installs

Shows any stats that are altered from their current level. This only tracks hard level changes (such as from potions) and not invisible boosts (like the celestial ring).

Combat Logout Timer
LuxOG

4,555 active installs

Configures the display for the 10 second timer that prevents logout upon being hit in combat

Default Tab
Damen

4,522 active installs

Set and load a specific tab on every login

EmojiScape
Hannah_GBS

4,461 active installs

Adds Runescape icons to chat

Nex Splits
Buchus

4,447 active installs

Detailed time tracking for Nex

Chat Filter Updater
Lntranet

4,422 active installs

A plugin that updates the chat filter regex list from a GitHub URL.

Exchange Logger
istid

4,401 active installs

Stores all GE transactions in a log file

Custom RSN Hider
ifeq

4,384 active installs

Replaces your RSN in chatbox and overhead chat with a realistic name.

Low Detail Chambers
Unholypanda

4,363 active installs

Enabled client low memory mode specifically in Chambers of Xeric without the need to toggle it.

Alch Blocker
robrichardson13

4,360 active installs

Allows you to block items from being alched

Clue Hunter Finder
Bromkommer

4,349 active installs

Helps you find the clue hunter outfit

Plugin Presets
antero111

4,347 active installs

Create presets of your plugin configurations.

Camera Keys
neilrush

4,332 active installs

Adds hotkeys for camera zoom and direction

Death Party
Dang It

4,329 active installs

Make sure the whole team is having fun when someone dies. Fireworks on death for all nearby players.

Impolite Slayer
Daxe

4,291 active installs

Makes your character less polite when receiving a bad task from a slayer master

Default Minimap Zoom
YvesW

4,281 active installs

Allows the user to set the default minimap zoom.

StopMisclickingTiles
WhatATopic

4,264 active installs

Shift + Right-click a tile to disable the "walk here" action on it.

ToG Indicator
LlemonDuck

4,262 active installs

Adds an icon to the skill which will receive the Tears of Guthix reward.

Nievive
claudiodekker

4,238 active installs

Revives Nieve

Party Ready Check
Scainburger

4,230 active installs

Display an alert to check ready status of your party

Sound Swapper
Pete,Damen

4,221 active installs

Allows the user to replace any sound named in the wiki sounds list https://oldschool.runescape.wiki/w/List_of_in-game_sound_IDs

Tick Timestamp
Skretzo

4,206 active installs

Display a game client tick count as a timestamp on game chat messages

Client Anti Drag
1Defence

4,157 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Prevents moving the client unintentionally

Lizardman Shaman Minion Alert
baloooouu

4,147 active installs

Alerts you when a nearby Lizardman shaman spawns minions

TOA Life no More
PaJau

4,145 active installs

Hide Choose option from Supplies Bundles

Named Pets
pappymint

4,135 active installs

Give your beloved pets a name!

Amulet of Chemistry Alerter
Josmoo

4,116 active installs

Alerts the user when making unfinished potions without an amulet of chemistry

Nature Rune Chest
Travis Earley

4,091 active installs

A plugin that adds a timer and readiness indicator for thieving nature rune chests

Better Skill Tooltips
Enriath

4,046 active installs

Enhance your vanilla skill tooltips!

Keybinds overlay
Kuldar Vakker

4,043 active installs

It is easier to learn keybinds, when they are at your sight.

Tombs of Amascut Stats
Red Rookie

4,037 active installs

Provides detailed phase times and damage tracking for ToA

Inventory Value Overlay
WikiWorm (Brandon Ripley)

4,023 active installs

Displays an overlay showing the cumulative value of all items in the player's inventory.

GE Filters
Salverrs

3,989 active installs

Search filters for the Grand Exchange.

ToA Custom Presets
Denchy

3,976 active installs

Allows you to change the name of ToA presets!

Custom Item Tags
agustin

3,975 active installs

A plugin to add custom text under items in inventory

RL Tray Notifications
Trevor

3,872 active installs

Allows for custom tray notifications. No longer do you have to deal with terrible windows tray notifications. Original author: abex

Inferno AutoSplitter
Molgoatkirby & Naabe

3,832 active installs

AutoSplitter for LiveSplit in Inferno

No Bad Alchs
CreativeTechGuy

3,825 active installs

Prevents casting alchemy on items which give less than the GE value

DPS Helper
LH

3,823 active installs

Plugin to help you increase your dps by telling you ticks between attacks

Raid Shamer
Botanophobia

3,769 active installs

Takes a screenshot of deaths during bosses and raids. Supports discord webhook integration.

Rumour Reminder
DrJam

3,751 active installs

Remembers your Hunter Guild rumours

ImaDrum Money
Ew Its Mike

3,721 active installs

Plays a sound clip by ImaDrum whenever you receive a good drop

Coffin Counter
Enriath

3,717 active installs

Track what remains your coffin contains.

Max Skill Trim
Nerdpuff

3,710 active installs

Adds a border trim to maxed skills.

Toggle Chat
Buchus

3,693 active installs

Allows you to set a keybind to open/close chat and ignore flashing tabs

House Thieving Varlamore
Sololegends

3,678 active installs

Highlights useful things when robbing houses in Varlamore

Emblem Trader Skull Timer
Teekiz

3,645 active installs

Displays a timer when your character receives a skull from the emblem trader.

Imbued Fart
Himon

3,643 active installs

Plays a fart sound instead of imbued heart sound

Collapsible Modern Chat
UNDEAD-B0T

3,641 active installs

Resizeable/Modern Layout only: collapses chat to an icon that shows DMs and all chat

Brewing
InfernoStats

3,618 active installs

Displays current brewing vat and barrel states

Temple Treck Bog Helper
Sololegends

3,615 active installs

Highlights firm bog ground as you find them

Tray Indicators
DMAD777

3,614 active installs

Displays your hitpoints, prayer or absorption in the system tray.

Roof Toggle
DegeneReaper

3,611 active installs

Allows use of a keybind for toggling roofs on and off without needing to open the in-game settings menu.

GIMP
Vijuhas

3,562 active installs

A plugin for tracking the status, skills, boss kills, and location of group ironmen - without ever leaving RuneLite!

Green Screen
Trevor

3,549 active installs

Adds a greenscreen, useful for content creators. Original author: I Yam Jeremy

Twitch Live Loadout
Pepijn Verburg

3,482 active installs

Show Twitch viewers your collection log, bank, inventory, combat statistics, equipment, skills and more.

Essence pouch health
Truth Forger

3,480 active installs

Shows how much essence you can put into your pouches before it degrades.

Stars to Clipboard
Cyborger1

3,452 active installs

Puts shooting stars telescope predictions in your clipboard

Mining Special Effect Tracker
AdnapPanda

3,430 active installs

Tracks the number of times any mining special effects occur

BA Role Randomizer
ransty

3,425 active installs

Randomize roles for a barbarian assault team

ToB Timer Infoboxes
winterdaze

3,410 active installs

Adds an infobox that displays completed room times

VM Gasper
xncz8h

3,406 active installs

Plugin which says * gasp * when a platform in Volcanic Mine is about to despawn.

Crosshair Cursor
Wilof

3,403 active installs

Changes your cursor to a crosshair. Also supports animated cursors (see help page).

Remaining Casts
Salverrs

3,402 active installs

Displays the number of casts remaining for your spells.

Loot Splitter
LanaDelSlay

3,397 active installs

This program will automatically tell you the ammount in gp/total ammount of the drop to split, and how much to split!

ToB Notice Board
Brooklyn

3,389 active installs

Highlight friends and clan members on the Theatre of Blood Notice Board

Prestige
Conor Kosidowski

3,381 active installs

A plugin that resets your level and doubles your xp rate between levels 92 and 99

Dryness Calculator
Jallah123

3,362 active installs

A simple plugin to calculate your dryness

Razor Kebbit Tracking
cwjoshuak

3,344 active installs

Track razor-backed kebbits like you would Herbiboar.

Combat Level Muting
zom

3,294 active installs

Plugin to blanket mute players based on combat level

Advanced Mining
TroJaNSniPeR85

3,285 active installs

A more advanced mining plugin to display statistics and ore respawn timers.

Toa Supplies
Krill

3,281 active installs

Keeps track of your supplies in the pouch at toa

Bank Value Overlay
Blended420

3,265 active installs

Adds an overlay showing your overall bank value

World Hider
dekvall

3,260 active installs

Hides your world so you can stream in peace

PartyPoints
OmbudRov

3,250 active installs

Wacky add-on to the party plugin to show Personal Points(in COX) of each member of the party with the plugin

Party Hotkeys
1Defence

3,227 active installs

Hotkeys for rejoining previous party & Joining preset party names

Miasma Tiles
De0

3,187 active installs

Shows a grid of burn tiles at Olm for use in masses

Vengeance Helper
Marcin

3,185 active installs

Alerts you when you can use a new vengeance

Temple OSRS
SMaloney2017

3,168 active installs

A RuneLite plugin making use of the TempleOSRS API.

Level Up Quest Requirements
Hoffi Coffi

3,149 active installs

Displays a dialog on levelling up when you first reach the requirements for a quest.

Blast Furnace Trainer
UIM Herb10HP

3,148 active installs

Adds red/green clickboxes for Blast Furnace crafting.

More Bank Fillers
UnExploration

3,134 active installs

some different overlays for Bank Fillers.

Task Checker
andmcadams

3,122 active installs

Checks a variety of tasks for completion

Nylo Stats
Scowled

3,112 active installs

Nylocas stats plugin

One Click Tiles
Nath

3,101 active installs

Highlight one-click-able tiles in Tileman Mode

Master Scroll Book
Enriath

3,055 active installs

See the contents of your Master Scroll Book without opening it.

Boss HP Reorder
TheStonedTurtle

3,044 active installs

Repositions the Boss HP Bar to be at the top of the screen when XP Drops are set to the center

Play Time
andham97

3,027 active installs

Tracking in-game play time days and hours

World Location
Xrio

3,011 active installs

Shows world point location (X,Y,Z) when hovering over a tile, along with chunk (8 x 8) and region (64 x 64) borders in both the scene and on the world map.

XP Grapher
Olm Alone

2,999 active installs

Shows a real time XP graph for any skill

Duck Duck Goose
skeldoor

2,971 active installs

Adds ducks to empty ponds to help bring life to the world

Extended Hitsplats
Ferrariic

2,966 active installs

This plugin will let you see more than four hitsplats on a character.

Examine Tooltip
Cyborger1

2,965 active installs

Shows tooltips or RS3 style hover boxes on examine

Temple Trekking Points
andmcadams

2,958 active installs

Displays the current and last Temple Trekking point count

Afk Hell-rat Behemoth
FirstTwoWeeks

2,870 active installs

Calculates % chance your cat will win the fight without feeding it. It will alert you if it's likely to die based on user-inputted thresholds. Makes fighting hell-rat behemoths extremely laid-back/afk with a wily cat.

God Wars Protection Overlay
UnExploration

2,841 active installs

Plugin to display god protections based on worn items

Clan Event Attendance
JoRouss

2,819 active installs

Track clan event attendance and time spent at the event

Wintertodt Idle Plugin
Ryan

2,818 active installs

A highly-visible Wintertodt Idle overlay!

NPC Overhead Dialogue
Stevester118

2,798 active installs

Displays NPC dialog over their head, includes custom ambient, walking, damage, and death dialog as well.

Pre Eoc Xp Drops
invu

2,785 active installs

"Customize pre Eoc Xp drops of your desired era and display the 2010 xp Counter"

Npc Dialog Log
neilrush

2,780 active installs

Adds dialog to the chat and displays dialog overhead.

Teleport Logger
leejt

2,753 active installs

Utility for tracking a list of all ingame teleportation methods.

Thrall Damage Counter
Amro Thabet

2,740 active installs

Counts total damage done by thralls

Prayer volume control
ruttie3

2,721 active installs

Allows you to individually control volume for each prayer.

Notification Messages
Brooklyn

2,715 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Notify yourself with custom messages

Wiki search shortcuts
IronCory

2,711 active installs

Shortcut keys to open osrs wiki search

Jungle Japes Indicator
TheKlodster

2,700 active installs

Sound effect played to indicate the banana peels spawning after death of a baboon, and a brutal sound effect played after a player steps on a banana peel.

Slayer Tag Highlight
Mafham

2,698 active installs

Highlights on task NPCs that aren't tagged yet (not interacting with you)

CoX Auto splitter
sky

2,692 active installs

Auto splitter for LiveSplit for Cox CM

Glory Counter
JorVa

2,687 active installs

Count how many glories you charge in the wilderness

Maple XP Bar
sirhitech

2,678 active installs

Adds a large xp bar at the bottom

Music Replacer
alowaniak

2,677 active installs

Replace music tracks with presets (e.g. OSRSBeatz) or your own music

Slash Swapper
Zom

2,660 active installs

A plugin that allows you to send messages in clan chats with '/' and messages in friends chats with '//'

Aerial Fishing Timers
call-me-maple

2,651 active installs

Adds timers to indicate when aerial fishing spots will expire

Easy Unnote
mad-s

2,641 active installs

Never use your banknotes on anything except a bank again!

Dry Streak
Risky Asset

2,640 active installs

Dry streak probability calculator.

Valuable drop recolor
Mafham

2,625 active installs

Recolors valuable drop chat messages

Goal Tracker
Toofifty

2,617 active installs

Keep track of your goals and complete them automatically

Duke Barrel Swap
ryanbarker0

2,604 active installs

Swaps Fill & Check for Duke Sucellus Fermentation Barrels when uncrushed mushrooms are in inventory

Raid Player Names Logger
SoloWanna

2,582 active installs

This plugin will log all player names when a CoX / ToB raid is starting

Target Health Notifier
Callum Anderson

2,504 active installs

Alerts you when your target is dead or below a specified health amount

AFK Spot Calculator
branisk

2,498 active installs

Find the densest location of enemies in order to find the best afk spot.

Game Tick Information
AcolyteOfFire

2,493 active installs

Displays game tick counters, and lets you mark tiles to track laps

ToB Gear Checker
ArtsicleOfficial

2,459 active installs

A plugin that checks your spellbook, runes, and charges.

Dorgesh-Kaan Lights Plugin
andmcadams

2,426 active installs

Makes it easier to find broken lamps in Dorgesh-Kaan.

AFK Threshold
Velite12

2,391 active installs

Notify you when a certain amount of time has passed and you are idle or wait until you are idle, whichever comes last.

Another Bronzeman Mode
CodePanter

2,341 active installs

Limits Grand Exchange access to only allow buying items obtained 'the Ironman way'. Has full collection log integration, auto-screenshot capabilities and chat icon settings.

Universal Discord Notifications
MidgetJake

2,322 active installs

A notifier for sending messages to a discord webhook for a number of events

Grimy Herb Animation
TrueNosus

2,305 active installs

Adds an animation to cleaning herbs

ToA party gear checker
Need Femboy

2,284 active installs

Checks gear of party applicants

Oof Sound
MakingStan

2,257 active installs

Makes an oof sound when you die or take damage.

Compost Helper
Pidge

2,249 active installs

Overlay for compost bins

Movement-based AFK Alerter
Aeimo

2,243 active installs

A configurable, visual indicator for when your character stops moving

Switching Trainer
ArtsicleOfficial

2,240 active installs

This trainer not only adds a client-side skill for the dopamine but also tracks how quick your switches are for practice!

Nex Split Tracker
Maws

2,206 active installs

Track unique drops and splits from nex kills

Chat Sounds
Pharros

2,195 active installs

Add sounds to various chat messages

Npc Spawns
Allen Kinzalow

2,192 active installs

Dump npc spawns to file.

Boss Kicker
Zom

2,191 active installs

Kick Bosses Awake

Easy Arceuus Runecrafting
poi56iop

2,188 active installs

Contextual highlights and screen flashing for Arceuus Runecrafting

Trailblazer Audio Announcement
Jarbo52

2,175 active installs

Plays the Trailblazer task complete noise when you get a combat achievement or collection log slot

F2P Star Assist
Jannyboy11

2,156 active installs

A plugin for crowdsourcing crashed stars in F2P

Chat Logger
Hexagon,Sololegends

2,153 active installs

Logs chat messages to a file in runelite's folder

OSRSParaTodos
Bwana Ian

2,148 active installs

Translation plugin to make OSRS more accessible

Raids Clipboard
Maurits825

2,148 active installs

Copies raids info such as kc, points & deaths to the clipboard

Fairy Ring Butterflies
Jmmuir

2,117 active installs

Changes how fairy ring butterflies look

SalveAmuletChecker
NickSpaghetti

2,115 active installs

Checks which players do not have their Salve Amulet equip at Bloat Or Mystics

Orb Hider
wizguin

2,110 active installs

Hides minimap orbs

Left Click Only
dekvall

2,103 active installs

Disable all rightclicks

WildernessWarnings
CalumMagee

2,094 active installs

Disables options to go into the wilderness on High Risk and Target worlds

Specimen Cleaning Extended
lV Vl

2,064 active installs

Additional functionality for specimen cleaning

ABC Alchemy
Vartan

2,058 active installs

Helps plan and cast alchemy.

Inventory Count
robrichardson13

2,040 active installs

Shows a count of open inventory spaces

PC Rewards
Marvin B

2,030 active installs

Customize the Pest Control Rewards shop, hiding unwanted rewards and exp calculations.

Cool 2h
Skeldoor

2,008 active installs

Fix your posture and look cooler while using two-handed weapons

Casket Sounds
Jarrod Cabalzar

2,004 active installs

This plugin plays a sound when you receive a Clue Casket.

Discord Notifier
Nodeak,Medicus

1,990 active installs

Utilize Discord webhooks to get a message for every RuneLite notification.

Click Minimap Orbs
Macweese

1,981 active installs

Prevents clicking through the minimap orbs

Vial Smasher
InfernoStats

1,974 active installs

Smash vials with vigor

League Chat Broadcasts
Memebeams

1,928 active installs

Adds the Leagues emblem to loot notifications when they happen on League worlds.

Group tileman addon
ConorLeckey, Notloc, Flexz

1,919 active installs

Automatically share and draw group tiles

Raid Speed Run Tracker
hi owo

1,907 active installs

Tracks CoX challenge mode room times and personal best to race against

Who's Gonna Poop
Nic Dipples

1,902 active installs

A plugin to keep track of who has pooped and who should poop next in Kephri

Bone Running
Arrowsend

1,888 active installs

A plugin to help with running bones for players, made possible by the RunBones CC.

Hit Sounds
Ferrariic

1,882 active installs

This plugin will send a custom sound on hitsplat

Shade Chests Highlighter
Eemkukko

1,879 active installs

Highlights chests you have a key for in the shade catacombs.

nex-kc-helper
IronPita, Marco648135

1,865 active installs

Marks NPCs, un-marks them when they're venomed.

Worn Equip Viewer
iGundamStyle,JZomDev

1,862 active installs

Overlay to display Worn Equipment

Subtle Agility Shortcuts
flowerworks

1,829 active installs

Place an icon or colour dot over agility shortcuts.

Autocasting
Vivascape, JC A

1,827 active installs

Tracks your autocast spell and alerts you when it can't be used.

Key Remapping Plus
Macica2

1,814 active installs

A clone of the Key Remapping RuneLite plugin with extra features

Aerial Tick Colors
KitsuneWife

1,801 active installs

Changes the tile highlight color of aerial fishing spots based on the amount of ticks it takes to fish at that distance.

Force Recolor
Alexsuperfly

1,800 active installs

Force recolors all game messages that contain specified text

Vardorvis Heal Tracker
AnuVen

1,800 active installs

Tracks how much health Vardorvis gains over the fight.

Chop Chop Stop
call-me-maple

1,786 active installs

Hide and mute tool special attacks.

Xp Goalz
Eric V

1,774 active installs

Schedule and track xp goals.

XP Meter
Toofifty

1,767 active installs

Interactive XP/h Meter

Boss Name Replacer
MrNice98

1,762 active installs

Replaces boss names with funny things

Player numeric stats
Cryslacks

1,755 active installs

A plugin for displaying player stats on the player numerically (health, prayer, run energy, spec)

Pest Control Plugin
UniqueName

1,747 active installs

Tracks and Displays your Pest Control Points on-screen whilst in a Pest Control Game or on the Void Island.

Recolored Herb Seed Icons
Mike-U5

1,735 active installs

"Recolors herb seed icons to match their respective herb. Plugin by Mike-U5, Icons by /u/Narsuaq"

Histogram
JarateKing

1,731 active installs

Display tick/input timings

World Heatmap
I Say

1,713 active installs

Lets you visualize which tiles of the world map you most often visit.

Sprite Markers
ChaosXstreaM

1,710 active installs

Mark tiles with sprites

Target True Tile
Notloc

1,710 active installs

Displays the true tile of the enemy of the player is targeting.

Clan Member List Sorting
Jodelahithit

1,694 active installs

Adds a sort button to the clan member list

Boaty Hype Man
Devdeve

1,678 active installs

Let Boaty be your hype man

Friends and Clan Viewer
molo-pl

1,677 active installs

Always see clanmates and friends when they are online

Time Played
muffyn

1,668 active installs

Shows time played in a widget

Push Notifications
dekvall

1,656 active installs

Send notifications to your phone or other devices

Creator's Kit
ScreteMonge

1,652 active installs

A suite of tools for creators

Ectofuntus Info
Cyborger1

1,648 active installs

Tells you how many Ecto-tokens you can collect

Gem Tracker
GuNeRkId

1,646 active installs

Adds stats while mining in the gem mine.

NPC Accessibility Tagger
R-Y-M-R

1,642 active installs

Tags NPC with text for easier visual identification, aimed at helping people with accessibility issues.

Event Scouting Plugin
peanubnutter

1,606 active installs

Crowdsourcing plugin for automated scouting of Forestry and other events.

8ball Plugin
DuhonTheGuy

1,590 active installs

Leave the hardest choices to the 8ball! Just do "::8ball" in the chat to use it!

Two step zoom
sky

1,590 active installs

A plugins that lets you change between two levels of zoom

Global chat
https://github.com/russeii

1,579 active installs

Global chat for each world. Home world 491 & will have the most players using the plugin.

Toa Spellbook Reminder
TipicoDev

1,579 active installs

Reminds you to swap spellbooks before entering the tooooombs

Skills Organizer
robrichardson13

1,576 active installs

Allows you to change each skill's position and visibility

Life-Saving Jewellery
molo-pl

1,570 active installs

Infoboxes and notifications for Phoenix necklace and Ring of life

StatusSocket
DStatIO,The-Jani

1,553 active installs

Sends players stats, in-game location, and inventory/equipment to a server for tournaments or data collection to be displayed.

Clan Chat Warnings
MarbleTurtle, JorVa

1,549 active installs

Adds chat messages and notifications when players join clan chat.

Unranked KC Tracker
Erishion Games LLC

1,548 active installs

An easy way to see KC and other values not tracked on the High scores. For example, KC under 50.

Day & Night Brightness
larswolters98

1,547 active installs

RuneLite plugin to automatically adjust the brightness based on the current time upon logging in

Ignore List Ban Tracker
Rugg0064

1,545 active installs

See how many of your reports have resulted in action

Clan Chat Webhooks
Costcutters

1,542 active installs

Display in-game Clan Chat messages in your Discord

Xp To Level Notification
Robin Davidsson

1,532 active installs

A plugin that sends a notification when you're less than the specified amount of xp away from a level

Random Hopper
Rugg0064

1,528 active installs

Allows you to hop to random worlds.

Tick dance aim trainer
929482

1,516 active installs

Highlights random tiles for practicing movement

Purchase Progress
BrastaSauce

1,514 active installs

Set purchase goals and track progress towards it

Account Chat Filter
Mr. Sableye

1,505 active installs

A plugin for filtering different account types.

Bronzeman Mode
dekvall

1,499 active installs

Unlock items before buying them

Chat Panel
Yenof

1,494 active installs

Side panel and pop out chat window.

Smart Chat Input Color
Ririshi, MarbleTurtle

1,474 active installs

Recolors the chat input field according to which channel the message will be sent to.

Resizable Chat
Thource

1,470 active installs

Allows the chat to be resized when playing in resizable mode with transparent chat.

Discord Group Bank Notifications
barthogenes

1,466 active installs

Sends notifications to Discord when players retrieve deposit items to the GIM Bank.

VoiceScape
Furkan

1,466 active installs

Adds a distance based voice chat to the game.

Stardust/HR Tracker
kdd

1,464 active installs

Tracks the approximate rate of stardust per hour

KeePassXC
Abex

1,459 active installs

Adds KeePassXC login support

Offline Chat Icon
Bailey Townsend

1,453 active installs

Displays an icon next to the player's name in clan chat if the user logs off or leaves the chat.

Custom Item Hovers
Geel

1,402 active installs

Enables custom hovers on items

OSRS Player Count
Protje

1,391 active installs

Shows the current OSRS player count in-game

Chat Name Colors
BeagleBreath

1,368 active installs

Differentiate players in your chat with custom colors!

Frost Hp & Run
Eric V

1,354 active installs

Hitpoints and run bar overlays.

Nex Sound Replacer
HSJ

1,347 active installs

Replace Nex's sounds

Subtle Virtual Levels
Enriath

1,339 active installs

View your virtual levels in a more subtle way that doesn't mess with your stats.

Taskman
TaskPlease

1,337 active installs

Taskman mode for OSRS

GE Calc
cman8396,LargeChongus

1,330 active installs

Use expressions to set price and quantity in GE! E.g. 13*32=416

Cannon Be Gone
Bram91

1,327 active installs

Removes all cannons(including your own)

Live Location Sharing
Realm 0

1,323 active installs

Share your location with other players on the worldmap.

Discord Screenshot
Alqon

1,307 active installs

Allows RuneLite users to send screenshots to a discord server with one click!

Varlamore Thieving
Skimby

1,298 active installs

A plugin to assist with house thieving and wealthy citizens.

Audible 2-Ticking
Dylan

1,271 active installs

Plays sounds to aid with some 2-ticking allowing the player to at least look away from the screen.

No Adviser
daylend

1,267 active installs

Disables the Activity Adviser button next to the minimap when in combat, or optionally, all the time.

Clan Activity Tracker
PhobosDeimos

1,260 active installs

Tracks when player was last seen in cc/fc and counts messages, saves data to csv file.

Friend Finder
Sololegends

1,256 active installs

Displays a dot on your map for all your friend's locations

Clan Spam Filter
Biceps Btw

1,253 active installs

Remove broadcasts from clan chat!

Bank Item Stats Toggle
Boredska

1,234 active installs

Toggles Item Stats plugins overlays when banking

Animation Skipper
Ben McAllister

1,230 active installs

Skips player animations while skilling to improve training efficiency

Party Play
ProjectileRage

1,230 active installs

Displays activity information on screen for your party.

Storage
TicTac7x

1,196 active installs

Show overlays of various storages and searchable panel

Posiedien's Leagues Planner Plugin
Posiedien,Runemoro,Skretzo

1,187 active installs

The plugin allows people to put in their own custom tasks or hook into tasks I've manually added into the planning.

ZMI
Rubueno

1,186 active installs

Removes scenery from ZMI to improve performance

Guest Indicators
Patrick

1,182 active installs

Player Indicators for clans and guest clans to highlight all guests and members

Jar Generator
Jannyboy11

1,177 active installs

Adds an overlay displaying jar generator charges

Wellness Notifications
ffalor

1,177 active installs

A plugin to promote wellness and healthy gaming.

GIMP Tracker
Rachnus

1,171 active installs

Tracks players movement/inventory/equipment/skills and displays it on a web page

Unregistered Hypercam 2
cloud Aspect

1,167 active installs

Displays Unregistered Hypercam 2 overlay

Chat Transcripts
MarbleTurtle

1,159 active installs

Creates transcripts and exports an image of chat to Screenshots folder.

Spec Overlay
OmbudRov

1,158 active installs

Overlays your Special Attack Amount when wielding the SoulReaper Axe

Quest Splits
jonas-fo

1,154 active installs

A plugin to split your quest speedrun time

Inner Zoom Limit
Hafta

1,145 active installs

Easily configure inner zoom limit alongside outer limit in default camera plugin

Amazeing Chest
skeldoor

1,144 active installs

Shows how long until a maze random chest closes

Snailman Mode
Idyl

1,126 active installs

Adds a "snail" that chases you from the other end of the map. If it touches you, you lose.

Spec Dialogue
Oziach

1,121 active installs

Add overhead dialogue text to any special attack!

Total Cost
Fiffers

1,120 active installs

Calculates approximate total price in NPC stores for various purchase quantities.

Lingering Click Tooltips
ryanxie0

1,119 active installs

Generate configurable tooltips with left click mouse actions

Ignore List Alerter
Zom

1,105 active installs

Alerts you when a player on your ignore list with a friends note is near by

Star Lore
Enriath

1,104 active installs

Bring back the fluff when there isn't a star to find that was in the original RSHD release

Loot Console Logger
EmerycP

1,102 active installs

Let you log loot drop in your message box.

Item Hunter
MakingStan

1,096 active installs

Adds a side-panel to your client where you can generate random items.

World Finder
Conrad

1,094 active installs

A world hopper which sorts by last hopped-to world

Home Improvement
Mike-U5

1,085 active installs

Removes several irrelevant menu options from furniture while not in build-mode such a "build", "remove" and "upgrade".

Highlight Stackable Items
Horseforlunch

1,082 active installs

Highlights drops that can be stacked in your inventory

Dialogue Assistant
Salverrs

1,076 active installs

Highlight and lock NPC dialogue options.

Discord Notifications/Split Tracker
SkyHawkGaming

1,070 active installs

Discord notifications with a split submission panel

Random Screenshot
neeerp

1,058 active installs

Randomly takes screenshots as you go about your adventures

GIM Bank Discord
Boredska

1,052 active installs

Notifies GIM Bank changes to discord webhook

Dice
Bogstandard

1,039 active installs

Animated rolling dice in your equipment tab!

NM Auto Splitter
framboid

1,037 active installs

Livesplit Autosplitter for Nightmare and Phosani's Nightmare

Camera Fun
lettucegoblin

1,036 active installs

On mouse release have a elastic, bounce, and yo-yo effect! Control intensity with gametime/energy.

Motivation
sqlskid

1,029 active installs

Get a little bit of motivation after death.

Zero remover
GeChallengeM

1,029 active installs

Removes the redundant 0 from precise timers.

Custom death sound
ruttie3

1,020 active installs

Plays a custom sound from your computer upon death.

Clan Fight Performance Tracker
di-brian

1,012 active installs

A plugin which displays an overlay with some statistics gathered during PvP multi fights

Inventory Notifier
dandylyon

1,010 active installs

Shows an icon with a count of open inventory spaces and sends a notification when the inventory is full.

Crate Limiter
Enriath

1,000 active installs

Slows down the opening of crates and jars

Jingle Jingle
Tayaramisu

996 active installs

Adds customizable jingles for achievement diary tasks, mahogany homes, and more!

Item Retrieval Service Warning
Cute Rock

991 active installs

Warns players about to die if they have items stored at an item retrieval service

PM Highlight
wtommyw

989 active installs

Highlight private messages in different colors for certain players

Trouver Parchment Alert
zlight97

987 active installs

Displays an alert when you forget to lock your equipment

OSRSKillboard
OSRSKillboard

984 active installs

A plugin to track PvP kills, loot and stats on OSRSKillboard.com

System Tray Inventory Count Plugin
delps1001

970 active installs

A plugin to add inventory count to your system tray

Advanced Raid Tracker
Caps lock13

965 active installs

This plugin tracks advanced statistics and data about your theatre attempts

DropTracker
joelhalen

965 active installs

Track your + your clan's drops with discord webhooks/google sheets and participate in loot leaderboards.

Calculator Pro
kanderson66

955 active installs

Perform calculations using the side panel or in-game chat commands

Total Selling price
Erishion Games LLC

950 active installs

Plugin that aims to assist in calculating the total gold amount gained from selling items to a store in varying quantities.

Bank Slot/multisearch
geheur

947 active installs

Search by equipment slot or for multiple item names in one search

Party World Map Pin
Doink Oink

947 active installs

Allows the player to pin a location on the World Map and their party members to see it.

QSR Auto Splitter
muffyn

938 active installs

An auto splitter for quest speedrunning.

Old Wise Man Chat
Cerisk

933 active installs

Displays chat messages seen in world to your chat box.

Translator
bigppfrontdev

933 active installs

translates text from osrs to another language

House Advertisement Plus
Salverrs

927 active installs

QOL features for the House Advertisement board.

Group Iron Man
Spedwards

926 active installs

Adds the capability to play Group Iron Man

Splitter
PhantomBoat

925 active installs

Calculate the split size for each player

Zebak roar chat
rutger-speksnijder

921 active installs

Displays a custom overhead chat message when Zebak roars

Tob Notification
jlee

920 active installs

Pops up a notification for tob events

AudibleLootNotification
Lukas Pfanner

917 active installs

Notifies you once you received loot which exceeds a defined value threshold

Emotes
equirs

908 active installs

Highlights and labels for emotes

Item Filler
Adam

894 active installs

Replaces a specified item with a bank filler

Area Mute
raiyni

891 active installs

Mute players in game areas

XP Drop Notify
Patrick

891 active installs

Plays sound of your choice when you get an XP Drop

Clanmate Export
Bailey Townsend

885 active installs

A plugin to export Clanmates names, rank, and joined date.

I've Got Wood!
BigG

884 active installs

Allows custom message to be displayed above player's head for certain skilling activities.

Step Counter
cweeks12

871 active installs

Counts the steps you take and if you meet your goal

Unidentified Herbs
Hexagon

862 active installs

Begone grimy herbs!

The Guns' Gains
dekvall

860 active installs

I wonder how many reps he really has..

Steelseries Gamesense
Gmoley

856 active installs

Makes it possible to display HP, Prayer and skill progression onto steelseries keyboards.

Easy Loot Sell
TarrenG

855 active installs

Easily identify items to be sold within a loot tab

Chaos Altar Bone Luck
christian97lewis

854 active installs

Plugin that calculates how lucky you are offering bones at the chaos altar

Fake Stats
InfernalPlank

844 active installs

Spoof stats and total level in the skill tab!

Friends Exporter
MarbleTurtle

844 active installs

Adds right-click options around different lists

Notification Panel
Kogasa

841 active installs

Displays notifications in an overlay panel

Marty's Walk Up Plugin
Martyrshot

833 active installs

Give your friends the entrance they deserve everytime they log in

Funny boss names
Pfannaa

830 active installs

Replaces boss names with something funny

NPC Collection Log
Nic Dipples

825 active installs

When in combat with an NPC, a panel of possible drops will display, and highlight what you're missing"

APM
adam-bunce

823 active installs

Monitor in game actions per minute (APM)

Here's Trouble
SifuPlankton

822 active installs

A plugin that plays sounds when your friends come onto the screen, notably "Here's Trouble".

Dr. Jekyll Herb Reminder
Amrik Singh

804 active installs

A plugin to annoy you into keeping a specific herb for Dr. Jekyll random event

Playtime
Adam

803 active installs

Adds an overlay of your accounts total playtime

Debug Helper
Abex

794 active installs

Lets a dev debug various issues

Sextant Locator
krazune

777 active installs

Sextant's coordinates helper.

Invalid Movement
Skretzo

776 active installs

Display invalid blocked movement tiles

Reword Manager
ejaz-karim

769 active installs

Reword Chat messages, Items, NPCs, Objects, Options, Players, Clans

Hold Your Ground
Skeldoor

768 active installs

Restrict your characters movement with this plugin designed to help Tilemen and Chunkmen stay within their unlocked boundaries.

Daily Impling Jars
Samuel-Fox

767 active installs

Daily indicator to show when you can buy impling jars from Elnock Inquisitor

Loot Broadcast Party
Zuko07

753 active installs

Allows you to broadcast loot and achievements to your party

Crack The Clue 3 Emote
Clank1337

735 active installs

Shows you the emotes to perform to get into the vault in the varrock west bank

Recently Killed Highlight
DrJam

733 active installs

Highlights enemies you have killed recently, until they target you.

Mouseover Text Disabler
Jbleezy

730 active installs

Disables the mouseover text

RHUD
Beardedrasta

729 active installs

A simple Experience bar tracker for current skill training

Poisoned NPCs
tautges

728 active installs

When using poisoned weapons, displays timer and overlay information about when poison will inflict damage.

translation-plugin
PlayerCoder1

726 active installs

Translates the chatbox messages on the panel

Hunllef Projectiles
neonsulfur

725 active installs

Alter the Projectiles for Hunllef's Prayer-Disable Attack

Do Not Kick
MarbleTurtle

724 active installs

Removes the kick option from chat for higher ranks, all ranks or everyone.

F2P Wiki
Freckled Dad

723 active installs

Automatically updates your stats on external xptrackers when you log out. This plugin submits your username and IP address to a 3rd party server not controlled or verified by the RuneLite Developers.

Ferox Restore Alert
eddiewastaken

723 active installs

Displays a warning if you're in Ferox Enclave, but haven't restored your stats.

Resource Area Notifier
YvesW

719 active installs

Notifies when the gate in the wilderness Resource Area opens.

Self Healing Notifications
OzokuLight

715 active installs

Healing Notifications for player

ItemReminders
cmagee

706 active installs

A plugin that will send you notifications if you enter a specified zone without a specified item.

Chat Success Rates
Skretzo

697 active installs

Track and display skilling success rates

Death Counter
TendyPlay

686 active installs

Counts death of players around you.

Fuzzy Bank Search
i

685 active installs

Filters items in your bank allowing typos and abbreviations (e.g. dwh)

Energy Info
Unholypanda

679 active installs

Displays energy info as an infobox or as a overlay.

Moleman Mode
Zom

677 active installs

Moleman Mode Plugin

Discord Chat Logger
PJGJ210

667 active installs

Log various chat to a discord webhook

BA Tiles
McLovin1981

658 active installs

Ground Markers for specific Barbarian Assault waves and roles

NPC Labels
Banna

658 active installs

Adds the ability to right click > label NPCs to add custom text to them

Snake
Maurits

655 active installs

Play snake anywhere!

AColdOne Clogging
OmbudRov

653 active installs

Clogging is Pogging

Fire Timer
alevine

646 active installs

Adds an in-game timer when a fire is lit, counting up to two minutes.

Analogue Timestamps
Hannah_GBS

636 active installs

Never learned to read digital clocks? Then this is the plugin for you!

meepspeak
AlwayzJarvin

636 active installs

Changes NPC/item/widget names to meepspeak.

Clan KDR
di-brian

626 active installs

A plugin which displays your clans KDR based on clan messages

Local Time
M 3 R T H A

620 active installs

A simple plugin to show the local time

Party Heartbeat
elkcarc, Scowled

619 active installs

See if party members have disconnected

Steps per Clue
Zandsters

614 active installs

Displays how many steps in a clue.

Meme Effects
Erishion Games LLC

610 active installs

A plugin that plays sounds and changes text in a variety of situations

Combat Roll
Skretzo

606 active installs

Player attack and defence roll

Tick Fixer for Mac
jonathang

604 active installs

A plugin that significantly increases tick accuracy (only supported on macOS)

Attack Sound Notifications Plugin
DominickCobb

599 active installs

Plays sound effects for combat interactions

Auto Retaliate Warning
Uim bladee

599 active installs

Warns you when you have auto retaliate enabled

Item XP
Laur92

599 active installs

A plugin that adds xp potential tooltips on items. Plugin in BETA

Polywoof
furfy

589 active installs

Enjoy Quests in any Language!

Shop Calculator
JammaBro

588 active installs

Calculator for bulk buying costs from NPC shops.

RS3 Music
Frunkh

577 active installs

Plays the RS3 variant of the track that is currently playing in game.

Data Export
ConradicalMel

573 active installs

Exports your bank to the clipboard, so you can paste all items as csv (useful for spreadsheets)

Regex Bank Search
moody

571 active installs

Search your bank with regular expressions

RuneProfile
PGN

566 active installs

Show off your achievements on RuneProfile.com

Bank Notes
zom

555 active installs

A plugin to put notes on items from the bank UI

PK Loot Splitter
Patrick

555 active installs

Helps split loot on PK trips by tracking the loot key clan announcements.

Bingo Event Automated
Uw1

547 active installs

A plugin used to automate the bingo

MaxHitAlert
Doppiro

542 active installs

A plugin that sends a discord webhook whenever you get a max hit

F2P Highlight
Mark7625

535 active installs

Highlight F2P items and areas

Date Overlay
Pikkufighter

528 active installs

Shows system date in runelite

Inventory Cost Tracker
jbentleyh

526 active installs

A plugin for tracking the cost of the player inventory/equipment in Old School Runescape

Snow Tracker
bitwise

522 active installs

Tracks snow on the ground

Pleae
toasty-toast

513 active installs

Makes players say Pleae when they die

Mad Dwarf
Jlao17

505 active installs

Don't make the dwarf mad.

Camdozaal Fishing Helper
Aeimo

504 active installs

Visual indicators and alerts to simplify Camdozaal fishing

Monkey Business
krazune

496 active installs

This plugin lets you do your monkey business, when wielding a cursed banana.

Old Control Run
Lord Of Otakus

496 active installs

Adds Old Control-Click Run behavior

Handegg Discord Webhook
Jurre Groenendijk

492 active installs

Sends a message / screenshot to a discord webhook when you get handegged or handegg someone

Classes of Gielinor
Kraelll

484 active installs

Adds RPG classes to your character

Name Change Detector
Bailey Townsend

483 active installs

A plugin to check a players name change history

Username Screenshotter
Aqua UIM

482 active installs

Adds a screenshot open to player context menu that takes a screenshot of the menu

Natural Speech
Phyce, LouisHong

475 active installs

Natural sounding text-to-speech with over 1000 voices.

Copy clan usernames
SoloWanna

461 active installs

Copies all player names so it can be exported to an excel

Damage Taken Logger
LittleBitwise

460 active installs

Displays damage taken in chat, as well as total XP gained per kill.

Hitsplat Tracker
leejt

460 active installs

Logs your hitsplats for combat research.

Cam Torum Mining
cwjoshuak

453 active installs

Highlights and notifies water streams in Cam Torum mine.

Modified Left Click Drop
Mili

453 active installs

A modified version of JZomDev's LeftClickDropper that has wildcard support

On-screen Notes
raiyni

449 active installs

Notes... But on your screen! +Use shift click or ::notes to manage

Player Pronouns
Speshkitty

445 active installs

Allows you to set your pronouns and see other people's

Infernal Clan
Rick

443 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Overview of clan information

Clicker Training
pyonium

438 active installs

Leveled up! Good doggy!

Preemptive Strike
MarbleTurtle

435 active installs

Allows using ::kick [user] to create a fake message from a user to kick from chat.

Drop Log
Woikaz

430 active installs

Track items that the player has dropped

TOA Keris Cam
zom

430 active installs

Take picture of keris users

forsen lines
Unmoon

415 active installs

spam forsen minecraft tts lines in toa

Attack Types
cwjoshuak

412 active installs

Show your current attack type as an overlay

Improved Context Menu
Thource

408 active installs

Improves the context (right click) menu by adding scrolling indicators and menu entry limit.

Native Mac Notifications
Bailey Townsend

408 active installs

Replaces current Mac Os notifications with Native notifications.

Gnome Childify
Himon

407 active installs

Make players Gnome Children

Custom Settings Easter Eggs
Cyborger1

404 active installs

Add your own easter eggs to the settings interface!

Qolting
ArtsicleOfficial

404 active installs

Klause's Finest!

Attack Sound
alkkusu

402 active installs

Plays a sound when attacking

Armour Trimmer
Truth Forger

399 active installs

Overlays item icons with trimmed versions

NPC Dialogue
leejt

397 active installs

Utility for transcribing NPC dialogue onto the wiki.

Foodie
touchrock

395 active installs

A message will appear overhead when food or drink is consumed!

Placeholders Warning
CheesyCracks

394 active installs

Alerts you when "Always Set Placeholders" is off in your bank

Global Consciousness
Unholypanda

391 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

Channel your inner Rendi to unlock the power of global consciousness and... just get the drop lul.

Immersive Ground Markers
Xyriella

388 active installs

Props as ground markers

Runelogger
Joopjr

379 active installs

Logs and publishes your RuneScape adventures

JebScape
Jebrim

375 active installs

Play and chat with others on other worlds

Pneck Reminder
AbusiveTuna

375 active installs

Highlights Pnecks in your inventory when no amulet is equipped.

Cosmetics Network
JohnathonNow

374 active installs

Allows players to appear to be wearing different gear in non-PvP scenarios, visible to all with the plugin enabled

Rogues Chest
Patrick

374 active installs

Helps thieving Rogues Chest with timers

Ring of Forging Helper
asundr

372 active installs

Provides customizable feedback to make smithing with the Ring of Forging more afk

ban-list
fangthe1st

369 active installs

a ban list plugin for url/manual list

Personal Currency Tracker
CWorldEnder

369 active installs

Tracks your personal made up currency for you.

Party Special Tracker
1Defence

359 active installs

Tracks various special-related stats

Hidden Drop Party
krazune

356 active installs

Hides drops. Useful for streamers that want to make drop parties on stream but don't want to show where the good drops were placed.

lamp-lockout
Seditionist

356 active installs

Lockout skills for lamps

Canvas
Cantrick

353 active installs

Allows you to draw all over your runelite screen!

Regex Item Counter
flowerworks

338 active installs

Regex item counter plugin

LogLocked
MrNice98

336 active installs

Allows players to unlock collections log sections based on total log slots filled. (10 slots = 1 section unlock)

ScapeGPT
Rohan Bansal

336 active installs

ChatGPT, but for OSRS!

Sacred Oil
KhaiQ

335 active installs

Alerts player when flamtaer bracelet breaks.

Fun Reminders
Eric V

330 active installs

Create reminders.

BAS Queue Helper
BA Services

329 active installs

Provides tools for members of BA Services to help manage the BAS queue

Hue Ambiance
Jallah123

326 active installs

Adds ambiance lighting for Philips Hue based on in-game events

Clan List Exporter
di-brian

318 active installs

Provides various options for exporting clan and friends chat

platz
i

317 active installs

Replaces the "lots" text in trade window when value > 2.1b

Clan Tracker
Hai Ke

310 active installs

A Plugin to track, log and process clan messages for discord webhooks with ease for both clan leaders and members.

Alone Man Mode
OnDEK

309 active installs

A plugin for players that just want to be left alone

ProximityScape-Discord
warnerBlue

309 active installs

Proximity Chat for Runescape

Weight calculator
andmcadams

300 active installs

Helps calculate weights

Morg Http Client
MorgApps

298 active installs

Exposes an HTTP API on localhost:8080 for querying stats and events

Click Confirm
Zaralot

295 active installs

Play a client-side sound when you equip, eat, pray, and more.

Bitwarden Plugin
raiyni

291 active installs

Plugin that interfaces with the Bitwarden CLI to retrieve RuneScape passwords. +Visit support url for usage

Market Watcher
btabrizi

290 active installs

Market Watcher plugin

Ecumenical Key Tracker
NODDZY

285 active installs

Tracks ecumenical keys in inventory and bank

Untrimmed Warning
pelletier2017

285 active installs

Don't lose your untrimmed cape.

Combat Style Icons
Enzin

281 active installs

Used for marking combat styles

Milestone Levels
Antimated

280 active installs

Display milestone levels on a fancy league-like notification

Panel Scroller
Hannah_GBS

275 active installs

Cycle through UI panels with a hotkey

Mute All
CreativeTechGuy

272 active installs

Mute all sounds from playing, while still enabling sound events for other plugins

EventsAPI
Morgan Van V.

259 active installs

POSTs customizable data updates to a user defined API endpoint

Discord Recruitment Notifier
zmike808

257 active installs

Sends a notification via Discord webhooks whenever you invite someone to your clan.

Clock Blocker
Ditiae

254 active installs

An example greeter plugin

CC Clog Spam Hider
Ew Its Mike

252 active installs

Hides certain Clog messages in CC

Spacebar Checker
jcbelanger

248 active installs

Counts consecutive spacebar messages in chats.

Touch Bar
PatrickKocken

241 active installs

A plugin that enables Touch Bar support for Runelite.

Transcriber
Skretzo

241 active installs

Automatically copy text in books, scrolls, parchments, flyers, etc and NPC overhead text to a panel when you see it

Escape Crystal Helper
johnvictorfs

240 active installs

Adds useful timers/notifications/highlights for the Escape Crystal for HCIMs

Escape Crystal Notify
Xylot

240 active installs

Notifies you when you're not wearing an escape crystal, have an inactive escape crystal, or are close to triggering the escape crystal. Useful for HCIM/HCGIM.

Combat Locked
Christian Legge

236 active installs

Track available combat levels unlocked through Combat Achievements

Chat-channel Watcher
ryanjpw

233 active installs

Notifies when specified user(s) joins/leaves the chat-channel you are in

Air Tiaras Runecraft
devenini

232 active installs

A plugin for a Runecraft method used by the F2P-UIM community.

IRC Plugin
Ryan O'Hara

231 active installs

IRC integration into the OSRS chat box

Cbow Animation Stall
grantg

230 active installs

Revert crossbow animation during PVM, uses the original/PVP variant with an animation stall

Clear Unsent Messages
lightningboltemoji

230 active installs

Clears unsent messages in the chatbox

Break Reminder
LeeOKeefe

224 active installs

Reminder to take regular breaks

TrackScape Connector
Bailey Townsend

224 active installs

Connects your clan chat to the TrackScape discord bot.

Challenge Mode Indicator
robrichardson13

215 active installs

Shows an indicator above the lever in the POH if challenge mode is on

Bolt Proc Counter
Student tort / hyppis

210 active installs

Bolt Proc Counter (Sound effects must be enabled for tracking procs)

Better Tile Exporter
Beard Second

206 active installs

Export tiles that are close to your or within the camera viewpoint

CAChunk
digiholic

206 active installs

Provides Chunk Unlocks based off of Combat Achievement points

Rune Cost Calculator
Quantum Primus

204 active installs

Calculates total rune costs from certain shops.

Large Models
Adam

203 active installs

Finds large models

Polybar Integration
SirArchLinux

197 active installs

Sends current animation state to systems polybar

CoX Scouting QoL
Filofteia

195 active installs

A plugin that helps make scouting less of a chore

Boost Performance
1Defence

194 active installs

Track performance of a boost session or clan event as a participant or bystander

Visual NPC Dialogue
NODDZY

187 active installs

Adds dialogue to the chatbox and above NPCs heads.

Method Tournament
Method

186 active installs

A tournament plugin for use by Method OSRS Tournament Participants to have their inventory, HP, damage and prayer% displayed on the live broadcas

Google Form Submitter
umer-rs

182 active installs

Allows you to submit loot drops to a Google Form.

Cape Counter
di-brian

176 active installs

A plugin that counts regular and clan capes

Pokescape PvM
Quo

172 active installs

The companion plugin for PokeScape PvM! Catch 'em all and make your way to the top to defeat the Runemon League!

Runepouch Loadout Names
DapperMickie

170 active installs

Add names for your runepouch loadouts!

Focus Mute
cdfisher

163 active installs

Plugin to mute game sounds when the client loses focus (or do the opposite).

Snakeman Mode
Skretzo

162 active installs

The snake game with chunks. Find fruits to grow bigger, or get stuck

WIZ Smart Lights
adnapPanda, Maurits825

158 active installs

A plugin to control the WIZ Smart Lights.

httpeventserver
MW90-NL

157 active installs

Provides game and character event information on localhost

Infinite Money Bag Tracker
Rugg0064

157 active installs

Tracks how many coins have been pulled from the infinite coin bag.

BigFishProbabilityPlugin
SepCol

156 active installs

BigFishProbabilityPlugin

DT2 Boss Fail Notifier
DominickCobb

156 active installs

Notifies player when failing perfect kill conditions

Combat Logger
Million Pies

147 active installs

Logs combat events to a text file - Upload and analyze your logs at runelogs.com.

Ranged Guild Minigame Plugin
UIM Herb10HP

146 active installs

Keeps track of session hiscore and gameplay.

InfluxDB
Equinox

144 active installs

Saves statistics to InfluxDB

1Password Plugin
tymscar

139 active installs

This plugin talks to the 1Password CLI to retrieve Runescape login details. +Visit support url for examples.

XP Relic Sound
DaBolink

139 active installs

Has a chance while skilling to play the relic unlock sound

Chrono
Idyl, Slayermusiq1

138 active installs

Restrict your account by release

Lowest Experience
Houston

138 active installs

See the order (and difference) of xp in your lowest skills

Nekos
Ondra_D

134 active installs

Displays a cute neko on the screen.

CoX Drink
AHeroicBear

133 active installs

Displays text over player heads when drinking from CoX Energy Wells

Ably Region Chat
Zoinkwiz

122 active installs

Allows for region chat in certain areas of the game

OSRSLog
kfricilone

121 active installs

The plugin is incompatible with the latest RuneLite version, and requires its author to update it.
unavailable

A plugin using the OSRSLog service for uploading, managing, and sharing screenshots.

HTTP API
Adam

119 active installs

Exposes an HTTP API on localhost:8080 for querying stats

Display Name Disguiser
Ya I Partake

116 active installs

Change the username for yourself and others in the client.

Replace Uri dialogue with custom text
Mike-U5

112 active installs

Replace Uri dialogue custom text defined in a text file. Plugin by Mike-U5, inspired by /u/bl__________

Then We Fight
Himon

108 active installs

Then We Fight Gamemode Plugin

ReVerb
Wool Scarf

104 active installs

Reword verbs in-game

Blue's Prox Chat
ThatGamerBlue

103 active installs

Proximity Chat :)

NET cc commands
altar of net

103 active installs

altar of net cc enhancer

Rune Man Mode
plankstdurtydan

102 active installs

Disables the Grand Exchange

DMM Fake Protection
zlight97

98 active installs

Changes the Deadman icon to display Proection to help with stream snipers

No Use Player
oohwooh

97 active installs

Remove the ability to use items on other players. Helpful for UIM.

GloopyLite
andmcadams

94 active installs

Implements a basic GloopyBot like interface for creating links to wiki pages

Calcusource updater
hessrs

90 active installs

Updates calcusource upon logout

Old School Snitch
WKRP

90 active installs

A plugin to send your XP, Kills, drops, and Player Model to Old School Snitch to track them.

Tag Ur It
jcduffy5

89 active installs

Make GIM fun again.

OSRS Profile
H1llman

85 active installs

Scrapes your data for OSRS profile to work

No New Items
timwestwood

83 active installs

A RuneLite plugin to help players avoid using items that were not originally part of Old School RuneScape.

RuneCafe Cash Flow
The rune.cafe Developers

82 active installs

Come join us at rune.cafe! This plugin provides integration with the website for cash flow reporting and other features!

Tostky Plugin
example-git

80 active installs

An Ammo Tracking Plugin

No Steven
two-zee

75 active installs

Hides everything related to the "SteVen" bots that plague F2P

Party Tob XP drops
EIKOOT

72 active installs

Shows xp drops of other party members in tob.

NPCTaunts
Max

68 active installs

Adds rude remarks from NPCs when you die

StatTrack
MatteoVH

67 active installs

Saves group ironman data

Poll Screenshot
Himon

64 active installs

Screenshots poll interface

Dialogue Extractor
AshleyThew

55 active installs

Copy NPC dialogue directly from chat

Rseye-connector
BasketBandit

51 active installs

Send event based & positional data to any endpoint

PickleChicken
Croustardeur

40 active installs

Replaces all chicken references with pickles. It's funny

Embargo
Sharpienero

39 active installs

A plugin to sync your account with Embargo

ntfyer
Skeldoor

35 active installs

Send RuneLite notifications to ntfy

ZeroDeaths
Kingston45

35 active installs

A plugin to track score of boss kills and update a leaderboard, be careful though if you die it's all over.

Bingo Team Indicators
Ew Its Mike

33 active installs

A plugin that adds icons to the chatbox based on which Bingo team you're in!

Champions Log
Hexagon

32 active installs

(Beta) A spiritual successor to runescape's adventurer's log.

Save Evil Creatures
Jim and Jinxer

30 active installs

Protecting that which is most precious.

TheleRune Updater
Theleruby

22 active installs

Updates TheleRune on logout

'CsvExport'
'flaxman'

20 active installs

'Save csv data from osrs'

Unbalanced trade prevention
TheStonedTurtle

13 active installs

Prevent unbalanced trades

Slotless
CarlOmega

3 active installs

Slotless mode plugin

\ No newline at end of file diff --git a/precache-manifest.768a9a6250686716214c8bd5d8285774.js b/precache-manifest.768a9a6250686716214c8bd5d8285774.js new file mode 100644 index 0000000000..3095043e47 --- /dev/null +++ b/precache-manifest.768a9a6250686716214c8bd5d8285774.js @@ -0,0 +1,810 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "ebdfa77a0665dbe7030921888cf59e4c", + "url": "/index.html" + }, + { + "revision": "1b7681d21b265ec848f1", + "url": "/static/css/1.a84d955d.chunk.css" + }, + { + "revision": "70d7c826b0043d52ed94", + "url": "/static/css/10.564de6f4.chunk.css" + }, + { + "revision": "8cf1a8a39a97112d5da5", + "url": "/static/css/11.331a4702.chunk.css" + }, + { + "revision": "39493208e4399de268a3", + "url": "/static/css/12.e4e96a00.chunk.css" + }, + { + "revision": "0813b5abb9aea1ba2834", + "url": "/static/css/13.e4e96a00.chunk.css" + }, + { + "revision": "8ae3e670321d147c8fb4", + "url": "/static/css/14.c81f7f39.chunk.css" + }, + { + "revision": "bb03eebe475320401a7f", + "url": "/static/css/15.05f3feda.chunk.css" + }, + { + "revision": "0584d165c1540273ff88", + "url": "/static/css/16.05f3feda.chunk.css" + }, + { + "revision": "dc827d71825d83481147", + "url": "/static/css/4.0e1cf7b6.chunk.css" + }, + { + "revision": "56971dc6c5d759e4dc7a", + "url": "/static/css/5.80a8d347.chunk.css" + }, + { + "revision": "97bdcad4c6637cde2a83", + "url": "/static/css/6.80a8d347.chunk.css" + }, + { + "revision": "3554b4e633c50a67bc99", + "url": "/static/css/7.7b033bdf.chunk.css" + }, + { + "revision": "f79ebc345834f426d455", + "url": "/static/css/8.ce29400d.chunk.css" + }, + { + "revision": "0769ae1f4b142153e965", + "url": "/static/css/9.4531eef3.chunk.css" + }, + { + "revision": "bd7db76ae3239cba9c50", + "url": "/static/css/main.dd2bec91.chunk.css" + }, + { + "revision": "ec3a5c88932e6969ff65", + "url": "/static/js/0.da263fb4.chunk.js" + }, + { + "revision": "223e1043e6c92cd5b8490b603521d509", + "url": "/static/js/0.da263fb4.chunk.js.LICENSE.txt" + }, + { + "revision": "1b7681d21b265ec848f1", + "url": "/static/js/1.c7f6ac57.chunk.js" + }, + { + "revision": "70d7c826b0043d52ed94", + "url": "/static/js/10.d21eec56.chunk.js" + }, + { + "revision": "d034a85574d797a00ebb", + "url": "/static/js/100.4c100485.chunk.js" + }, + { + "revision": "e98907dbb4b938000247", + "url": "/static/js/101.485729cc.chunk.js" + }, + { + "revision": "276bde2200f8b471abd5", + "url": "/static/js/102.62e061d0.chunk.js" + }, + { + "revision": "15c8fb35d9f4915394a4", + "url": "/static/js/103.de89b958.chunk.js" + }, + { + "revision": "cdf74f8f45a26d705621", + "url": "/static/js/104.e2fafda2.chunk.js" + }, + { + "revision": "10ca1374963b4c569595", + "url": "/static/js/105.26922674.chunk.js" + }, + { + "revision": "e53050daf2dcf50ac637", + "url": "/static/js/106.aaba779d.chunk.js" + }, + { + "revision": "86342ad764bc5618fa67", + "url": "/static/js/107.8f09dd19.chunk.js" + }, + { + "revision": "433a91861dd820ba0fab", + "url": "/static/js/108.4f31c7e5.chunk.js" + }, + { + "revision": "2943120e02a10cb363d8", + "url": "/static/js/109.267273f1.chunk.js" + }, + { + "revision": "8cf1a8a39a97112d5da5", + "url": "/static/js/11.56560e92.chunk.js" + }, + { + "revision": "5bacd82ff7e3cba11cbf", + "url": "/static/js/110.eec0da7d.chunk.js" + }, + { + "revision": "ea769f9642a585cefa88", + "url": "/static/js/111.4fb08f3f.chunk.js" + }, + { + "revision": "4dfda3ba048985a75572", + "url": "/static/js/112.f3767d44.chunk.js" + }, + { + "revision": "8178c9c05d2123a01e89", + "url": "/static/js/113.5f398440.chunk.js" + }, + { + "revision": "22e7e80dfbfee42d625d", + "url": "/static/js/114.483266ef.chunk.js" + }, + { + "revision": "b818c05f7cd153f62bee", + "url": "/static/js/115.723ab803.chunk.js" + }, + { + "revision": "b371e06f117f1ee05154", + "url": "/static/js/116.82cfb4c3.chunk.js" + }, + { + "revision": "09f2e444e84bc6f9d134", + "url": "/static/js/117.ce3dd0bd.chunk.js" + }, + { + "revision": "8957f853ecb065a604c2", + "url": "/static/js/118.c46f0032.chunk.js" + }, + { + "revision": "2e5b2dce36d95746a73a", + "url": "/static/js/119.79bd2e9d.chunk.js" + }, + { + "revision": "39493208e4399de268a3", + "url": "/static/js/12.490f3107.chunk.js" + }, + { + "revision": "933e75e3be19c337dda7", + "url": "/static/js/120.16e25e66.chunk.js" + }, + { + "revision": "06d9dc5f43ea95800d20", + "url": "/static/js/121.ad0efbf8.chunk.js" + }, + { + "revision": "74523de875eb0cc0feab", + "url": "/static/js/122.867c12a6.chunk.js" + }, + { + "revision": "4dbb625623c5a8e5359a", + "url": "/static/js/123.00eab965.chunk.js" + }, + { + "revision": "d20b85140bcd9655a0b2", + "url": "/static/js/124.64d8a114.chunk.js" + }, + { + "revision": "3e6a10f9a954f6b0fecd", + "url": "/static/js/125.013abb3a.chunk.js" + }, + { + "revision": "94b8ccfbc3cb9d88455f", + "url": "/static/js/126.c97413d0.chunk.js" + }, + { + "revision": "1d852c0615161a1182ac", + "url": "/static/js/127.f68008e1.chunk.js" + }, + { + "revision": "5d0888ea18d7735f897d", + "url": "/static/js/128.b10d1c80.chunk.js" + }, + { + "revision": "e7ecc29809c943174dad", + "url": "/static/js/129.68e53a78.chunk.js" + }, + { + "revision": "0813b5abb9aea1ba2834", + "url": "/static/js/13.dfdb92fe.chunk.js" + }, + { + "revision": "64ce31657d82cf285c50", + "url": "/static/js/130.f9bedcf3.chunk.js" + }, + { + "revision": "9556e116dda54f48941f", + "url": "/static/js/131.4de7b85e.chunk.js" + }, + { + "revision": "3fdc8d6b56a454e19b23", + "url": "/static/js/132.f0dc0d4c.chunk.js" + }, + { + "revision": "4f9bddf85452afe1449c", + "url": "/static/js/133.476ae942.chunk.js" + }, + { + "revision": "2f7c2503c02835556a19", + "url": "/static/js/134.4992c71c.chunk.js" + }, + { + "revision": "4d45c9dfbac8844fae5c", + "url": "/static/js/135.13177433.chunk.js" + }, + { + "revision": "ff195346ca07e7468be1", + "url": "/static/js/136.5d1414a8.chunk.js" + }, + { + "revision": "33ca5b850eed24cb7b3e", + "url": "/static/js/137.4994fc2b.chunk.js" + }, + { + "revision": "c8da5e5f5a5ccbbf637d", + "url": "/static/js/138.4fb392c9.chunk.js" + }, + { + "revision": "5889e8533f7da7bb5e2b", + "url": "/static/js/139.7c533985.chunk.js" + }, + { + "revision": "8ae3e670321d147c8fb4", + "url": "/static/js/14.5fee5def.chunk.js" + }, + { + "revision": "cab7b40ff0024bd9ba4d", + "url": "/static/js/140.8ac8b0e1.chunk.js" + }, + { + "revision": "512bfcaf1c093a6f12a6", + "url": "/static/js/141.2565231e.chunk.js" + }, + { + "revision": "77b77085f330bfd372c1", + "url": "/static/js/142.fa0d2df4.chunk.js" + }, + { + "revision": "fcdb647d901387f80c09", + "url": "/static/js/143.96cc9182.chunk.js" + }, + { + "revision": "61091ef3b3af2d8f20f5", + "url": "/static/js/144.498696a6.chunk.js" + }, + { + "revision": "1d54d7f609b2f2f49997", + "url": "/static/js/145.8bdb0315.chunk.js" + }, + { + "revision": "3187c3a396f978e31024", + "url": "/static/js/146.c5fa6642.chunk.js" + }, + { + "revision": "1679a122b569adb1b85e", + "url": "/static/js/147.32e24664.chunk.js" + }, + { + "revision": "eb25577db652d01bc863", + "url": "/static/js/148.eac46e76.chunk.js" + }, + { + "revision": "64e094b0186c9b3eb386", + "url": "/static/js/149.4b7bc910.chunk.js" + }, + { + "revision": "bb03eebe475320401a7f", + "url": "/static/js/15.480db188.chunk.js" + }, + { + "revision": "916bcabaccf1365ce197", + "url": "/static/js/150.55b9afa9.chunk.js" + }, + { + "revision": "2f813bbe55b28db69c98", + "url": "/static/js/151.205738ca.chunk.js" + }, + { + "revision": "83729f710e2eb9b59002", + "url": "/static/js/152.b02cf8a2.chunk.js" + }, + { + "revision": "2add4624d9bb09b779cc", + "url": "/static/js/153.4533f6dc.chunk.js" + }, + { + "revision": "5968c8ca0c7e7a187500", + "url": "/static/js/154.ae70fd4e.chunk.js" + }, + { + "revision": "339ecdfea0820939d0c5", + "url": "/static/js/155.aa3f28a1.chunk.js" + }, + { + "revision": "c729403f660a02000895", + "url": "/static/js/156.75b7ff6b.chunk.js" + }, + { + "revision": "5faea5b7456c1bc3f21c", + "url": "/static/js/157.019e45fe.chunk.js" + }, + { + "revision": "fd6c9d813a88a24c8cb6", + "url": "/static/js/158.b057afef.chunk.js" + }, + { + "revision": "d320d9cc4883f14138d8", + "url": "/static/js/159.90e89192.chunk.js" + }, + { + "revision": "0584d165c1540273ff88", + "url": "/static/js/16.19625a89.chunk.js" + }, + { + "revision": "99c9788ab7e1e2bd239f", + "url": "/static/js/160.97d2cc95.chunk.js" + }, + { + "revision": "87c52a377333bb920bfb", + "url": "/static/js/161.341e9f6e.chunk.js" + }, + { + "revision": "73b291a46992d3ff9df8", + "url": "/static/js/162.739b9a95.chunk.js" + }, + { + "revision": "9d556c3a23bdba143f3c", + "url": "/static/js/163.a8adb4ef.chunk.js" + }, + { + "revision": "29bc4717165450d58297", + "url": "/static/js/164.3802dd6f.chunk.js" + }, + { + "revision": "47375e59af5d4ca77eda", + "url": "/static/js/165.31cc8912.chunk.js" + }, + { + "revision": "ef914278c480dccfd719", + "url": "/static/js/166.2f841439.chunk.js" + }, + { + "revision": "11583a7b5ce76e7f95bc", + "url": "/static/js/167.b292f1e5.chunk.js" + }, + { + "revision": "94836f5ab99ead26e658", + "url": "/static/js/17.429a6923.chunk.js" + }, + { + "revision": "27f45bc6aad8d9fe2fb3", + "url": "/static/js/18.ab757883.chunk.js" + }, + { + "revision": "d9b501cb95e775089b5f", + "url": "/static/js/19.965cd23c.chunk.js" + }, + { + "revision": "cdb27759da3ec1d6e36c", + "url": "/static/js/20.71ae775c.chunk.js" + }, + { + "revision": "7bc326af00dd95e8150b", + "url": "/static/js/21.b69ae13a.chunk.js" + }, + { + "revision": "407cdfa829274679238f", + "url": "/static/js/22.ead97899.chunk.js" + }, + { + "revision": "60312dffcba0b5f08272", + "url": "/static/js/23.d0f7f215.chunk.js" + }, + { + "revision": "307ae087bc62d15b8cb6", + "url": "/static/js/24.ed21d2d5.chunk.js" + }, + { + "revision": "830b7584c63728e6b2e3", + "url": "/static/js/25.2fcb3630.chunk.js" + }, + { + "revision": "92669457be13d24545d9", + "url": "/static/js/26.03657595.chunk.js" + }, + { + "revision": "ef26c7e76ae9da42038b", + "url": "/static/js/27.650ef959.chunk.js" + }, + { + "revision": "3d436416acfc8851d11e", + "url": "/static/js/28.61c87868.chunk.js" + }, + { + "revision": "0491727619bd9bc0275d", + "url": "/static/js/29.de5b64b9.chunk.js" + }, + { + "revision": "7a47ba39cfe31304309b", + "url": "/static/js/30.3df49031.chunk.js" + }, + { + "revision": "08d6b9af37e9e2ef4aa7", + "url": "/static/js/31.4a4c233f.chunk.js" + }, + { + "revision": "944939d0aad782f85473", + "url": "/static/js/32.4474bc7f.chunk.js" + }, + { + "revision": "cdf317eeaa273ec8f66a", + "url": "/static/js/33.c4289d83.chunk.js" + }, + { + "revision": "c717ec0a51bfab6a1ccc", + "url": "/static/js/34.ad76e96a.chunk.js" + }, + { + "revision": "8f123a2d107ae3cb71e8", + "url": "/static/js/35.77d3866f.chunk.js" + }, + { + "revision": "aa89eadc26419293b5ef", + "url": "/static/js/36.c3f93721.chunk.js" + }, + { + "revision": "11205589e294b4e4c20e", + "url": "/static/js/37.0e895e23.chunk.js" + }, + { + "revision": "e976a1f2b9e64c1ea21d", + "url": "/static/js/38.aa273ffd.chunk.js" + }, + { + "revision": "7169e1e9a326e3458dec", + "url": "/static/js/39.246782de.chunk.js" + }, + { + "revision": "dc827d71825d83481147", + "url": "/static/js/4.c7f743bf.chunk.js" + }, + { + "revision": "52133c6a444c8820ede7", + "url": "/static/js/40.a15a7621.chunk.js" + }, + { + "revision": "3f8e06c7e6fe3f686c2a", + "url": "/static/js/41.5172a0ab.chunk.js" + }, + { + "revision": "5823f4e7a55b2c6d3ea3", + "url": "/static/js/42.b64f47e5.chunk.js" + }, + { + "revision": "8790b64084ee2b8c3c38", + "url": "/static/js/43.7b5e24c0.chunk.js" + }, + { + "revision": "5f23a66af528acb1b262", + "url": "/static/js/44.15cb5c09.chunk.js" + }, + { + "revision": "25390622308edd5cced1", + "url": "/static/js/45.4620406b.chunk.js" + }, + { + "revision": "ce75f8b20d83c2e85131", + "url": "/static/js/46.702693cd.chunk.js" + }, + { + "revision": "a58c51e9417133c8b50a", + "url": "/static/js/47.495473b8.chunk.js" + }, + { + "revision": "4047fa1b6148b58dcb00", + "url": "/static/js/48.563ff224.chunk.js" + }, + { + "revision": "3290949e47effc3f88b0", + "url": "/static/js/49.dcd54463.chunk.js" + }, + { + "revision": "56971dc6c5d759e4dc7a", + "url": "/static/js/5.ca584576.chunk.js" + }, + { + "revision": "dd27dfb7c42830084e3d", + "url": "/static/js/50.e486c0fa.chunk.js" + }, + { + "revision": "c94257290db065cbdc89", + "url": "/static/js/51.b7dad8dd.chunk.js" + }, + { + "revision": "57439afd4a629ea0f470", + "url": "/static/js/52.5b975a19.chunk.js" + }, + { + "revision": "335a53d826e11c448001", + "url": "/static/js/53.a5a4cd5a.chunk.js" + }, + { + "revision": "145be94930d34ad4bfde", + "url": "/static/js/54.08c5d72d.chunk.js" + }, + { + "revision": "bf5e91af8bbf2ecdcc0c", + "url": "/static/js/55.26f9d5db.chunk.js" + }, + { + "revision": "6c7a0b996f053ce82d19", + "url": "/static/js/56.042a9f61.chunk.js" + }, + { + "revision": "7f27e9c9584bc8195761", + "url": "/static/js/57.1560ecd1.chunk.js" + }, + { + "revision": "b7d3264229131ebb74b2", + "url": "/static/js/58.0ffde795.chunk.js" + }, + { + "revision": "1775011eaf0a1ffea432", + "url": "/static/js/59.7f3967e3.chunk.js" + }, + { + "revision": "97bdcad4c6637cde2a83", + "url": "/static/js/6.8b31eff6.chunk.js" + }, + { + "revision": "d5ea397baf8faf0a1bb1", + "url": "/static/js/60.7bfb81d4.chunk.js" + }, + { + "revision": "bd44b39124e75616516e", + "url": "/static/js/61.601b2085.chunk.js" + }, + { + "revision": "4c24876501a6ac574f7d", + "url": "/static/js/62.5a073228.chunk.js" + }, + { + "revision": "34024299b79182823eab", + "url": "/static/js/63.d344125a.chunk.js" + }, + { + "revision": "b93697e538513d53b71c", + "url": "/static/js/64.ac4863b7.chunk.js" + }, + { + "revision": "cfc9c3771f3773f9c357", + "url": "/static/js/65.1f63a476.chunk.js" + }, + { + "revision": "64ad781988efb67e6d55", + "url": "/static/js/66.aac767c4.chunk.js" + }, + { + "revision": "39d57c93cbcf2cd1935a", + "url": "/static/js/67.613c11a8.chunk.js" + }, + { + "revision": "cd2828a6cfe4dfdaccb8", + "url": "/static/js/68.88ba4792.chunk.js" + }, + { + "revision": "8fe274dbc107e65ae6a0", + "url": "/static/js/69.eedabcd7.chunk.js" + }, + { + "revision": "3554b4e633c50a67bc99", + "url": "/static/js/7.27d25fc0.chunk.js" + }, + { + "revision": "6fce53c7c7713ebf61712cc2929746fa", + "url": "/static/js/7.27d25fc0.chunk.js.LICENSE.txt" + }, + { + "revision": "b8eb07097dad14871cf9", + "url": "/static/js/70.64a0e193.chunk.js" + }, + { + "revision": "8f780069f49bd8181269", + "url": "/static/js/71.8ad630e3.chunk.js" + }, + { + "revision": "d435bd10b8c8e757548a", + "url": "/static/js/72.53d1a1c5.chunk.js" + }, + { + "revision": "a9757130b41f911d59ed", + "url": "/static/js/73.494e7d44.chunk.js" + }, + { + "revision": "53bd074f844b09ff9599", + "url": "/static/js/74.621a6485.chunk.js" + }, + { + "revision": "1ec6d96f09284395004a", + "url": "/static/js/75.69a4b1bf.chunk.js" + }, + { + "revision": "72319d6786c0bab7011a", + "url": "/static/js/76.eef5a2d5.chunk.js" + }, + { + "revision": "6804750044feb02bf8b1", + "url": "/static/js/77.7018f253.chunk.js" + }, + { + "revision": "29ff134828794b3cbc42", + "url": "/static/js/78.e0340fa9.chunk.js" + }, + { + "revision": "4f4766aaf445a595dce7", + "url": "/static/js/79.e9258a3a.chunk.js" + }, + { + "revision": "f79ebc345834f426d455", + "url": "/static/js/8.e46392e3.chunk.js" + }, + { + "revision": "b5bd19485ec10a84ae25", + "url": "/static/js/80.8fdde840.chunk.js" + }, + { + "revision": "4d36ec3d293d78f19194", + "url": "/static/js/81.84330a7b.chunk.js" + }, + { + "revision": "a0aa0a1485f20ec286bb", + "url": "/static/js/82.6cf52313.chunk.js" + }, + { + "revision": "bfb80e6d15718bb55b66", + "url": "/static/js/83.923205ea.chunk.js" + }, + { + "revision": "384b15cd29800c008279", + "url": "/static/js/84.9ed526bb.chunk.js" + }, + { + "revision": "de9790316cc206cdc7b9", + "url": "/static/js/85.8ecb5036.chunk.js" + }, + { + "revision": "a7c370e45d89936b5f85", + "url": "/static/js/86.0fac9206.chunk.js" + }, + { + "revision": "e6868df3c7cd6af00156", + "url": "/static/js/87.b1d5a080.chunk.js" + }, + { + "revision": "24de83f4d1548bad95c7", + "url": "/static/js/88.05655334.chunk.js" + }, + { + "revision": "33f1cd812df11641a6d3", + "url": "/static/js/89.b3791ef4.chunk.js" + }, + { + "revision": "0769ae1f4b142153e965", + "url": "/static/js/9.cff2c3bf.chunk.js" + }, + { + "revision": "8753d3b6e7458d12af5a", + "url": "/static/js/90.e98cc0d4.chunk.js" + }, + { + "revision": "3e35c45e926df946d821", + "url": "/static/js/91.89730dda.chunk.js" + }, + { + "revision": "ebe6b6271968b33943e1", + "url": "/static/js/92.0161b2c3.chunk.js" + }, + { + "revision": "4089bb8614b78aeec0e3", + "url": "/static/js/93.8e4a6aa7.chunk.js" + }, + { + "revision": "396706d6c4c42970560d", + "url": "/static/js/94.d13ad504.chunk.js" + }, + { + "revision": "d6af03cd79774e8076e2", + "url": "/static/js/95.f77fcb17.chunk.js" + }, + { + "revision": "780de403de8350550c72", + "url": "/static/js/96.383e51be.chunk.js" + }, + { + "revision": "29a7cd00c752839c5400", + "url": "/static/js/97.1ce3b748.chunk.js" + }, + { + "revision": "d33338374460c35bff77", + "url": "/static/js/98.38a93077.chunk.js" + }, + { + "revision": "4a4f62bb379c63d426da", + "url": "/static/js/99.99888f24.chunk.js" + }, + { + "revision": "bd7db76ae3239cba9c50", + "url": "/static/js/main.3922a676.chunk.js" + }, + { + "revision": "39491f741000b2dc2ef3", + "url": "/static/js/runtime-main.343f8325.js" + }, + { + "revision": "0cb5a5c0d251c109458c85c6afeffbaa", + "url": "/static/media/fa-brands-400.0cb5a5c0.svg" + }, + { + "revision": "13685372945d816a2b474fc082fd9aaa", + "url": "/static/media/fa-brands-400.13685372.ttf" + }, + { + "revision": "a06da7f0950f9dd366fc9db9d56d618a", + "url": "/static/media/fa-brands-400.a06da7f0.woff2" + }, + { + "revision": "c1868c9545d2de1cf8488f1dadd8c9d0", + "url": "/static/media/fa-brands-400.c1868c95.eot" + }, + { + "revision": "ec3cfddedb8bebd2d7a3fdf511f7c1cc", + "url": "/static/media/fa-brands-400.ec3cfdde.woff" + }, + { + "revision": "261d666b0147c6c5cda07265f98b8f8c", + "url": "/static/media/fa-regular-400.261d666b.eot" + }, + { + "revision": "89ffa3aba80d30ee0a9371b25c968bbb", + "url": "/static/media/fa-regular-400.89ffa3ab.svg" + }, + { + "revision": "c20b5b7362d8d7bb7eddf94344ace33e", + "url": "/static/media/fa-regular-400.c20b5b73.woff2" + }, + { + "revision": "db78b9359171f24936b16d84f63af378", + "url": "/static/media/fa-regular-400.db78b935.ttf" + }, + { + "revision": "f89ea91ecd1ca2db7e09baa2c4b156d1", + "url": "/static/media/fa-regular-400.f89ea91e.woff" + }, + { + "revision": "1ab236ed440ee51810c56bd16628aef0", + "url": "/static/media/fa-solid-900.1ab236ed.ttf" + }, + { + "revision": "a0369ea57eb6d3843d6474c035111f29", + "url": "/static/media/fa-solid-900.a0369ea5.eot" + }, + { + "revision": "b15db15f746f29ffa02638cb455b8ec0", + "url": "/static/media/fa-solid-900.b15db15f.woff2" + }, + { + "revision": "bea989e82b07e9687c26fc58a4805021", + "url": "/static/media/fa-solid-900.bea989e8.woff" + }, + { + "revision": "ec763292e583294612f124c0b0def500", + "url": "/static/media/fa-solid-900.ec763292.svg" + }, + { + "revision": "27bd77b9162d388cb8d4c4217c7c5e2a", + "url": "/static/media/lato-normal.27bd77b9.woff" + } +]); \ No newline at end of file diff --git a/precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js b/precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js deleted file mode 100644 index 7332b1eb22..0000000000 --- a/precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js +++ /dev/null @@ -1,806 +0,0 @@ -self.__precacheManifest = (self.__precacheManifest || []).concat([ - { - "revision": "6be29080cf97258c735e01382c41e581", - "url": "/index.html" - }, - { - "revision": "c5f94fb0522d9df66de4", - "url": "/static/css/1.a84d955d.chunk.css" - }, - { - "revision": "7c851f88070e6036c22b", - "url": "/static/css/10.564de6f4.chunk.css" - }, - { - "revision": "b6afff20a5cfffab8dee", - "url": "/static/css/11.331a4702.chunk.css" - }, - { - "revision": "d2600520947079622a93", - "url": "/static/css/12.e4e96a00.chunk.css" - }, - { - "revision": "3afb48f239e13d23ddb2", - "url": "/static/css/13.e4e96a00.chunk.css" - }, - { - "revision": "cc346990b815b85387f4", - "url": "/static/css/14.c81f7f39.chunk.css" - }, - { - "revision": "2b281e25d4afc6897138", - "url": "/static/css/15.05f3feda.chunk.css" - }, - { - "revision": "0e99eb5292fafa126bdf", - "url": "/static/css/16.05f3feda.chunk.css" - }, - { - "revision": "4b4a2e7ae3e207430e35", - "url": "/static/css/4.0e1cf7b6.chunk.css" - }, - { - "revision": "109002da5151deb3fdec", - "url": "/static/css/5.80a8d347.chunk.css" - }, - { - "revision": "61ad7da1b6d2ff9ccdef", - "url": "/static/css/6.80a8d347.chunk.css" - }, - { - "revision": "3554b4e633c50a67bc99", - "url": "/static/css/7.7b033bdf.chunk.css" - }, - { - "revision": "afd4985165224a6f0db2", - "url": "/static/css/8.ce29400d.chunk.css" - }, - { - "revision": "1faba2f9c2c72a2b2eee", - "url": "/static/css/9.4531eef3.chunk.css" - }, - { - "revision": "dbb7be93497a0da2020d", - "url": "/static/css/main.dd2bec91.chunk.css" - }, - { - "revision": "79c9fb60285d7ea51554", - "url": "/static/js/0.aea5108a.chunk.js" - }, - { - "revision": "223e1043e6c92cd5b8490b603521d509", - "url": "/static/js/0.aea5108a.chunk.js.LICENSE.txt" - }, - { - "revision": "c5f94fb0522d9df66de4", - "url": "/static/js/1.d63cf247.chunk.js" - }, - { - "revision": "7c851f88070e6036c22b", - "url": "/static/js/10.87860120.chunk.js" - }, - { - "revision": "465a6b976b9c5c306bb5", - "url": "/static/js/100.a48aed76.chunk.js" - }, - { - "revision": "17808a79493c4b659878", - "url": "/static/js/101.0980d76e.chunk.js" - }, - { - "revision": "eea69da6fc307e88ca7c", - "url": "/static/js/102.854c378c.chunk.js" - }, - { - "revision": "92eeda8049ff0fbe701c", - "url": "/static/js/103.e68abdfe.chunk.js" - }, - { - "revision": "bb48b5c3ccae0d8ad623", - "url": "/static/js/104.c984f63f.chunk.js" - }, - { - "revision": "548d9792495a84fc9c87", - "url": "/static/js/105.8655bd95.chunk.js" - }, - { - "revision": "74d20229a83624b8f241", - "url": "/static/js/106.b1b8ecb4.chunk.js" - }, - { - "revision": "2907e21569e01c928cba", - "url": "/static/js/107.e829d84b.chunk.js" - }, - { - "revision": "d1916693ca38596f284e", - "url": "/static/js/108.226dd588.chunk.js" - }, - { - "revision": "5b2833e13ba066bbeafd", - "url": "/static/js/109.c999bff3.chunk.js" - }, - { - "revision": "b6afff20a5cfffab8dee", - "url": "/static/js/11.eb3139be.chunk.js" - }, - { - "revision": "5318b7883ad3eeb66536", - "url": "/static/js/110.3da76866.chunk.js" - }, - { - "revision": "16a190832d6f9b9060ee", - "url": "/static/js/111.0f764d67.chunk.js" - }, - { - "revision": "ad0744722baab647cab3", - "url": "/static/js/112.60488108.chunk.js" - }, - { - "revision": "ad833b9330ba587cefaf", - "url": "/static/js/113.cea5ca47.chunk.js" - }, - { - "revision": "eae3cf03727c9a6cf571", - "url": "/static/js/114.05d08486.chunk.js" - }, - { - "revision": "622a8ae89802383f3672", - "url": "/static/js/115.f315bee9.chunk.js" - }, - { - "revision": "47f242340d2ee852bac4", - "url": "/static/js/116.ec4acf03.chunk.js" - }, - { - "revision": "d3288132542bfbee9afb", - "url": "/static/js/117.a74fa60a.chunk.js" - }, - { - "revision": "ce6ac0e0952f6a76a1f1", - "url": "/static/js/118.5cb728a3.chunk.js" - }, - { - "revision": "90533dc082d7c5ef3e50", - "url": "/static/js/119.bbff61ff.chunk.js" - }, - { - "revision": "d2600520947079622a93", - "url": "/static/js/12.d7e9e6ce.chunk.js" - }, - { - "revision": "800e2e23ad426f372730", - "url": "/static/js/120.6bdb867f.chunk.js" - }, - { - "revision": "0c65f470246533eccc97", - "url": "/static/js/121.53d36392.chunk.js" - }, - { - "revision": "1134d5858a8c51f00711", - "url": "/static/js/122.27ed9bc1.chunk.js" - }, - { - "revision": "c1e5020760e99f7d06c0", - "url": "/static/js/123.698a1837.chunk.js" - }, - { - "revision": "e6091b2af9b94c4c1120", - "url": "/static/js/124.c1bd1575.chunk.js" - }, - { - "revision": "11b0826a113d8bdb2dcd", - "url": "/static/js/125.b7e6895b.chunk.js" - }, - { - "revision": "fbe8d6eca3cea4d2d6b0", - "url": "/static/js/126.49448497.chunk.js" - }, - { - "revision": "e3973784ce8438ed4aab", - "url": "/static/js/127.4454f424.chunk.js" - }, - { - "revision": "a19cb54f344fe405b0dc", - "url": "/static/js/128.447aab4e.chunk.js" - }, - { - "revision": "32db57b466065949ec7e", - "url": "/static/js/129.ba2f0451.chunk.js" - }, - { - "revision": "3afb48f239e13d23ddb2", - "url": "/static/js/13.865c04a4.chunk.js" - }, - { - "revision": "34b7812b8f419188e728", - "url": "/static/js/130.694d6caa.chunk.js" - }, - { - "revision": "7933e18748ebfe219224", - "url": "/static/js/131.f1f72eda.chunk.js" - }, - { - "revision": "5d1d877909d61a63047b", - "url": "/static/js/132.46329c2e.chunk.js" - }, - { - "revision": "d479a9d482b27900e06f", - "url": "/static/js/133.e7f934d4.chunk.js" - }, - { - "revision": "07be159c4586e0af2c65", - "url": "/static/js/134.466c306b.chunk.js" - }, - { - "revision": "7050b4c93668684184b1", - "url": "/static/js/135.3db3fff1.chunk.js" - }, - { - "revision": "40ee6c95edafb1c81b66", - "url": "/static/js/136.f50cc0fc.chunk.js" - }, - { - "revision": "a308e6411e31d641efbc", - "url": "/static/js/137.b001ca4c.chunk.js" - }, - { - "revision": "d9122b0dd102cb650358", - "url": "/static/js/138.359316b0.chunk.js" - }, - { - "revision": "f10db578bb7b99595c92", - "url": "/static/js/139.4ec830bb.chunk.js" - }, - { - "revision": "cc346990b815b85387f4", - "url": "/static/js/14.15d2d6c8.chunk.js" - }, - { - "revision": "45fda9dea4b1305b1e12", - "url": "/static/js/140.35d283f7.chunk.js" - }, - { - "revision": "b5556c788142a83466df", - "url": "/static/js/141.ad369817.chunk.js" - }, - { - "revision": "51492e43cf77555e043a", - "url": "/static/js/142.0ef81b98.chunk.js" - }, - { - "revision": "3d012b5c179fb798d064", - "url": "/static/js/143.69d890ca.chunk.js" - }, - { - "revision": "4ccad8a09e5bfa44e300", - "url": "/static/js/144.90f1e2de.chunk.js" - }, - { - "revision": "7b8a96490c1041018e65", - "url": "/static/js/145.c322b12c.chunk.js" - }, - { - "revision": "369bcbb1679450a44a0c", - "url": "/static/js/146.da2d51de.chunk.js" - }, - { - "revision": "d7b3c6e279a4ba015335", - "url": "/static/js/147.cae687bf.chunk.js" - }, - { - "revision": "46ab9a1f7d40ed1aefac", - "url": "/static/js/148.0770baa3.chunk.js" - }, - { - "revision": "b5577960571ba2d895f3", - "url": "/static/js/149.7d4a1d41.chunk.js" - }, - { - "revision": "2b281e25d4afc6897138", - "url": "/static/js/15.39c21782.chunk.js" - }, - { - "revision": "5ef8e0e82ff9c935221c", - "url": "/static/js/150.67713b63.chunk.js" - }, - { - "revision": "44cc90bd5aaa31a2c226", - "url": "/static/js/151.ea0c3bd8.chunk.js" - }, - { - "revision": "ad7abcf6a455b70d3678", - "url": "/static/js/152.86939e7a.chunk.js" - }, - { - "revision": "182d2cfe9de20fd78569", - "url": "/static/js/153.559e3066.chunk.js" - }, - { - "revision": "2f338bdae28a75fc0111", - "url": "/static/js/154.782f372d.chunk.js" - }, - { - "revision": "6891e63b11b35b32a196", - "url": "/static/js/155.094bbfa6.chunk.js" - }, - { - "revision": "392bb1a42bd938a2fbad", - "url": "/static/js/156.cb2198d0.chunk.js" - }, - { - "revision": "c6faf1a6188073917550", - "url": "/static/js/157.35898266.chunk.js" - }, - { - "revision": "68d766c79470afb26212", - "url": "/static/js/158.3d94cd27.chunk.js" - }, - { - "revision": "ae6075513469bceb3375", - "url": "/static/js/159.898105ca.chunk.js" - }, - { - "revision": "0e99eb5292fafa126bdf", - "url": "/static/js/16.06b43ad9.chunk.js" - }, - { - "revision": "d74f22da28b10601453c", - "url": "/static/js/160.439ae5ed.chunk.js" - }, - { - "revision": "9a5a2f1eaa2bd36bc2cd", - "url": "/static/js/161.b0f472fd.chunk.js" - }, - { - "revision": "267b706d0beae3c83df7", - "url": "/static/js/162.670a8e5c.chunk.js" - }, - { - "revision": "f3fff55e469987796931", - "url": "/static/js/163.5318864c.chunk.js" - }, - { - "revision": "bdb819163eac55c8453e", - "url": "/static/js/164.8232149d.chunk.js" - }, - { - "revision": "5bc0fbb03df0c73ef938", - "url": "/static/js/165.bb5bbdee.chunk.js" - }, - { - "revision": "511cf6c46ac7ffc4028b", - "url": "/static/js/166.649971e3.chunk.js" - }, - { - "revision": "05823812337211e11dba", - "url": "/static/js/17.749ecabc.chunk.js" - }, - { - "revision": "4502a0ab193ad501c8ec", - "url": "/static/js/18.c42c1b0d.chunk.js" - }, - { - "revision": "799b249d3eb34e3b1765", - "url": "/static/js/19.d890df25.chunk.js" - }, - { - "revision": "ef9d55c6477c72a9e05a", - "url": "/static/js/20.50501647.chunk.js" - }, - { - "revision": "0328ee386d3794d39d3d", - "url": "/static/js/21.6728bb30.chunk.js" - }, - { - "revision": "506e97945a252c537f8c", - "url": "/static/js/22.763fd789.chunk.js" - }, - { - "revision": "ad48a8b991623e4e8e80", - "url": "/static/js/23.099ac622.chunk.js" - }, - { - "revision": "aad0d5baffa18def5fff", - "url": "/static/js/24.e3cbefe4.chunk.js" - }, - { - "revision": "e6961f351d28d4c41599", - "url": "/static/js/25.a9e71e71.chunk.js" - }, - { - "revision": "cd1124504770185b4cc3", - "url": "/static/js/26.a8c58ff8.chunk.js" - }, - { - "revision": "b1ebba603895277d7202", - "url": "/static/js/27.295ad2c8.chunk.js" - }, - { - "revision": "5fc371dd14dfaa9fe193", - "url": "/static/js/28.d344fb98.chunk.js" - }, - { - "revision": "aa51c422d9d7a8660803", - "url": "/static/js/29.d49afaed.chunk.js" - }, - { - "revision": "0fa5544cfc1e9ad696ff", - "url": "/static/js/30.2b2c87c8.chunk.js" - }, - { - "revision": "0afeb8947e3422320124", - "url": "/static/js/31.7dd40ba1.chunk.js" - }, - { - "revision": "2dc6d5152b51794a3983", - "url": "/static/js/32.4583ab7d.chunk.js" - }, - { - "revision": "368c7a69a5ae55d1d55e", - "url": "/static/js/33.c5534493.chunk.js" - }, - { - "revision": "9947a419f6e8dda00cb2", - "url": "/static/js/34.f75ad7c3.chunk.js" - }, - { - "revision": "5a1717ca210bd62a6f8c", - "url": "/static/js/35.a739d48c.chunk.js" - }, - { - "revision": "afda79e4bb8a92b9159c", - "url": "/static/js/36.8bd4edc4.chunk.js" - }, - { - "revision": "60b160ce0cb22250b5e7", - "url": "/static/js/37.92c716e2.chunk.js" - }, - { - "revision": "db6786acef9bec1b1788", - "url": "/static/js/38.4e4930d9.chunk.js" - }, - { - "revision": "0c4b0d878a4bcf19c442", - "url": "/static/js/39.92d7af0d.chunk.js" - }, - { - "revision": "4b4a2e7ae3e207430e35", - "url": "/static/js/4.aa61be93.chunk.js" - }, - { - "revision": "3d8c05c2a8b07caafe36", - "url": "/static/js/40.9aaf62be.chunk.js" - }, - { - "revision": "c3ab33eb76632e7bb865", - "url": "/static/js/41.592215a6.chunk.js" - }, - { - "revision": "69a47b6274108111917b", - "url": "/static/js/42.903c5167.chunk.js" - }, - { - "revision": "0c484698e6e2e1c1923a", - "url": "/static/js/43.b1e16791.chunk.js" - }, - { - "revision": "1e89f890f12e73dc009a", - "url": "/static/js/44.0adcba78.chunk.js" - }, - { - "revision": "4a23e189d98a331ab663", - "url": "/static/js/45.c4bbc4cf.chunk.js" - }, - { - "revision": "7bbe164be6317e275224", - "url": "/static/js/46.8227b11c.chunk.js" - }, - { - "revision": "c10b3398a94a82d6243e", - "url": "/static/js/47.7c49292c.chunk.js" - }, - { - "revision": "9468325e4a868626e857", - "url": "/static/js/48.c0d72fee.chunk.js" - }, - { - "revision": "dd052d43ac131290bdda", - "url": "/static/js/49.198f8502.chunk.js" - }, - { - "revision": "109002da5151deb3fdec", - "url": "/static/js/5.387ebcc8.chunk.js" - }, - { - "revision": "4249a87898180f4cee49", - "url": "/static/js/50.c0161ec5.chunk.js" - }, - { - "revision": "1325ec5a77eeab8532fa", - "url": "/static/js/51.605852c3.chunk.js" - }, - { - "revision": "f48e9f4eb3a8a43f3947", - "url": "/static/js/52.6e287ecc.chunk.js" - }, - { - "revision": "49ef9613b1f9eb4a7e30", - "url": "/static/js/53.182d04ca.chunk.js" - }, - { - "revision": "a1e643d87093843e6b75", - "url": "/static/js/54.fbfa5538.chunk.js" - }, - { - "revision": "9a4d7dce078864d24c42", - "url": "/static/js/55.c6dac92d.chunk.js" - }, - { - "revision": "5cf36bdc7668a75bdbb6", - "url": "/static/js/56.b5ab65d9.chunk.js" - }, - { - "revision": "18c60e76650f103caf1c", - "url": "/static/js/57.b4ec6473.chunk.js" - }, - { - "revision": "54ac4cec72e9bea6844b", - "url": "/static/js/58.c505ca02.chunk.js" - }, - { - "revision": "b5cb7842d11e8d2575e5", - "url": "/static/js/59.bd3d8da5.chunk.js" - }, - { - "revision": "61ad7da1b6d2ff9ccdef", - "url": "/static/js/6.1374853e.chunk.js" - }, - { - "revision": "6aa07a42de27f664e535", - "url": "/static/js/60.ed179461.chunk.js" - }, - { - "revision": "e47bcb15d0e78d7d18e8", - "url": "/static/js/61.47dcf177.chunk.js" - }, - { - "revision": "da91468f128932945952", - "url": "/static/js/62.73ea7cbc.chunk.js" - }, - { - "revision": "e890134957c60d1914fa", - "url": "/static/js/63.024514d1.chunk.js" - }, - { - "revision": "2333d85bc5449466c103", - "url": "/static/js/64.0d8de512.chunk.js" - }, - { - "revision": "e403f31329f72959a854", - "url": "/static/js/65.eaf4b8e3.chunk.js" - }, - { - "revision": "4aa339ca29212e2607c1", - "url": "/static/js/66.b9608f5d.chunk.js" - }, - { - "revision": "42df5a4fc8d5c97a4157", - "url": "/static/js/67.af3df1eb.chunk.js" - }, - { - "revision": "58764cc4561333b07abe", - "url": "/static/js/68.ec9d010e.chunk.js" - }, - { - "revision": "42eba159898abecb4499", - "url": "/static/js/69.0e1bedb0.chunk.js" - }, - { - "revision": "3554b4e633c50a67bc99", - "url": "/static/js/7.27d25fc0.chunk.js" - }, - { - "revision": "6fce53c7c7713ebf61712cc2929746fa", - "url": "/static/js/7.27d25fc0.chunk.js.LICENSE.txt" - }, - { - "revision": "7406636d28db72f00f11", - "url": "/static/js/70.9ca1515e.chunk.js" - }, - { - "revision": "a47e2cddc06865f46db7", - "url": "/static/js/71.aa3651ff.chunk.js" - }, - { - "revision": "41d6b73c20b059bfc517", - "url": "/static/js/72.1808ce35.chunk.js" - }, - { - "revision": "454b933cbeaade53643c", - "url": "/static/js/73.79d53550.chunk.js" - }, - { - "revision": "5912191a6465e57c52f8", - "url": "/static/js/74.94c75616.chunk.js" - }, - { - "revision": "a4881465e94609400f3e", - "url": "/static/js/75.c4d418ac.chunk.js" - }, - { - "revision": "4342b5e3075f6d42ecca", - "url": "/static/js/76.24221d23.chunk.js" - }, - { - "revision": "19f156322e5df7513e55", - "url": "/static/js/77.fcbd2fa1.chunk.js" - }, - { - "revision": "52d26a2c7434fcee0c8f", - "url": "/static/js/78.e0cdb49e.chunk.js" - }, - { - "revision": "1664e24505b40f6fd303", - "url": "/static/js/79.4fd5727b.chunk.js" - }, - { - "revision": "afd4985165224a6f0db2", - "url": "/static/js/8.c51bfff0.chunk.js" - }, - { - "revision": "f9cf6abe03f757d777c9", - "url": "/static/js/80.cc919a1a.chunk.js" - }, - { - "revision": "eeb4b14976a692a31347", - "url": "/static/js/81.6d907df1.chunk.js" - }, - { - "revision": "1e7bba9ad0152dcd5996", - "url": "/static/js/82.e378a04c.chunk.js" - }, - { - "revision": "f19a63489a5a276cbd46", - "url": "/static/js/83.de903a04.chunk.js" - }, - { - "revision": "72f45658d4ade0ba3708", - "url": "/static/js/84.6d668161.chunk.js" - }, - { - "revision": "8619c423925d06530e22", - "url": "/static/js/85.e5fd6fe5.chunk.js" - }, - { - "revision": "aa634a2624278fe0592f", - "url": "/static/js/86.fef39be4.chunk.js" - }, - { - "revision": "2ae8ffe0ef7ee0e6c910", - "url": "/static/js/87.ac7910b0.chunk.js" - }, - { - "revision": "9edddb1a03fb63c68769", - "url": "/static/js/88.b995a874.chunk.js" - }, - { - "revision": "83b632838acde18174b2", - "url": "/static/js/89.2427a52d.chunk.js" - }, - { - "revision": "1faba2f9c2c72a2b2eee", - "url": "/static/js/9.41457976.chunk.js" - }, - { - "revision": "7d7a92c4af583eebbcc8", - "url": "/static/js/90.8b140935.chunk.js" - }, - { - "revision": "00b6716f91cd00ff7243", - "url": "/static/js/91.bbe172a6.chunk.js" - }, - { - "revision": "1d70f0b9012b6d0ae339", - "url": "/static/js/92.7129e6d4.chunk.js" - }, - { - "revision": "dc18cf4fa9b0964173a3", - "url": "/static/js/93.badbdcfc.chunk.js" - }, - { - "revision": "b51c483e2355e09dc046", - "url": "/static/js/94.38aa73c4.chunk.js" - }, - { - "revision": "a3588b01a91dc46dedd0", - "url": "/static/js/95.292d25fe.chunk.js" - }, - { - "revision": "daa9d20765776775d343", - "url": "/static/js/96.a38e03c8.chunk.js" - }, - { - "revision": "54efdec81976b2a0ca2f", - "url": "/static/js/97.62ac06e4.chunk.js" - }, - { - "revision": "2575ee2512eef6601627", - "url": "/static/js/98.c8e387f6.chunk.js" - }, - { - "revision": "9d20c32d82f21ebdf983", - "url": "/static/js/99.0e80284c.chunk.js" - }, - { - "revision": "dbb7be93497a0da2020d", - "url": "/static/js/main.e826d3a5.chunk.js" - }, - { - "revision": "362cd8da4edb72a00a8f", - "url": "/static/js/runtime-main.72783661.js" - }, - { - "revision": "0cb5a5c0d251c109458c85c6afeffbaa", - "url": "/static/media/fa-brands-400.0cb5a5c0.svg" - }, - { - "revision": "13685372945d816a2b474fc082fd9aaa", - "url": "/static/media/fa-brands-400.13685372.ttf" - }, - { - "revision": "a06da7f0950f9dd366fc9db9d56d618a", - "url": "/static/media/fa-brands-400.a06da7f0.woff2" - }, - { - "revision": "c1868c9545d2de1cf8488f1dadd8c9d0", - "url": "/static/media/fa-brands-400.c1868c95.eot" - }, - { - "revision": "ec3cfddedb8bebd2d7a3fdf511f7c1cc", - "url": "/static/media/fa-brands-400.ec3cfdde.woff" - }, - { - "revision": "261d666b0147c6c5cda07265f98b8f8c", - "url": "/static/media/fa-regular-400.261d666b.eot" - }, - { - "revision": "89ffa3aba80d30ee0a9371b25c968bbb", - "url": "/static/media/fa-regular-400.89ffa3ab.svg" - }, - { - "revision": "c20b5b7362d8d7bb7eddf94344ace33e", - "url": "/static/media/fa-regular-400.c20b5b73.woff2" - }, - { - "revision": "db78b9359171f24936b16d84f63af378", - "url": "/static/media/fa-regular-400.db78b935.ttf" - }, - { - "revision": "f89ea91ecd1ca2db7e09baa2c4b156d1", - "url": "/static/media/fa-regular-400.f89ea91e.woff" - }, - { - "revision": "1ab236ed440ee51810c56bd16628aef0", - "url": "/static/media/fa-solid-900.1ab236ed.ttf" - }, - { - "revision": "a0369ea57eb6d3843d6474c035111f29", - "url": "/static/media/fa-solid-900.a0369ea5.eot" - }, - { - "revision": "b15db15f746f29ffa02638cb455b8ec0", - "url": "/static/media/fa-solid-900.b15db15f.woff2" - }, - { - "revision": "bea989e82b07e9687c26fc58a4805021", - "url": "/static/media/fa-solid-900.bea989e8.woff" - }, - { - "revision": "ec763292e583294612f124c0b0def500", - "url": "/static/media/fa-solid-900.ec763292.svg" - }, - { - "revision": "27bd77b9162d388cb8d4c4217c7c5e2a", - "url": "/static/media/lato-normal.27bd77b9.woff" - } -]); \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index ae721ae6f7..ce7f101c6d 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.7924f308ee95e745e78d38ef45bc2ee6.js" + "/precache-manifest.768a9a6250686716214c8bd5d8285774.js" ); self.addEventListener('message', (event) => { diff --git a/sitemap.xml b/sitemap.xml index 06bbfde329..45f0bd0105 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://runelite.net/2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/features2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/blog2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/tag2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/tile2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/plugin-hub2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/verify2024-04-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2017-12-13-New-Site2017-12-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2017-12-21-1.2.10-Release2017-12-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-12-1.2.11-Release2018-01-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-18-1.2.12-Release2018-01-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-25-1.2.13-Release2018-01-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-01-1.2.14-Release2018-02-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-08-1.2.15-Release2018-02-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-15-1.2.16-Release2018-02-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-22-1.2.17-Release2018-02-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-01-1.2.18-Release2018-03-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-08-1.2.19-Release2018-03-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-15-1.3.0-Release2018-03-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-22-1.3.1-Release2018-03-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-29-1.3.2-Release2018-03-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-05-1.3.3-Release2018-04-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-12-1.3.4-Release2018-04-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-19-1.3.5-Release2018-04-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-26-1.3.6-Release2018-04-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-03-1.3.7-Release2018-05-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-10-1.3.8-Release2018-05-10T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-15-RuneLite-threatened-to-shutdown2018-05-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown2018-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown2018-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-18-1.3.9-Release2018-05-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-24-1.4.0-Release2018-05-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-25-Phishing-Attempts2018-05-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-31-1.4.1-Release2018-05-31T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-07-1.4.2-Release2018-06-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-14-1.4.3-Release2018-06-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-21-1.4.4-Release2018-06-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-28-1.4.5-Release2018-06-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-05-1.4.6-Release2018-07-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-12-1.4.7-Release2018-07-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-19-1.4.8-Release2018-07-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-26-1.4.9-Release2018-07-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-02-1.4.10-Release2018-08-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-09-1.4.11-Release2018-08-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-16-1.4.12-Release2018-08-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-23-1.4.13-Release2018-08-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-30-1.4.15-Release2018-08-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-06-1.4.16-Release2018-09-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-13-1.4.17-Release2018-09-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-18-Worldhopper-disabled2018-09-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-20-1.4.18-Release2018-09-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-27-1.4.19-Release2018-09-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-04-1.4.20-Release2018-10-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-11-1.4.21-Release2018-10-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-18-1.4.22-Release2018-10-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-25-1.4.23-Release2018-10-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-01-1.4.24-Release2018-11-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-08-1.4.25-Release2018-11-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-15-1.4.26-Release2018-11-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-16-1.5.0-Release2018-11-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-22-1.5.1-Release2018-11-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-29-1.5.2-Release2018-11-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-06-1.5.3-Release2018-12-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-13-1.5.4-Release2018-12-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-20-1.5.5-Release2018-12-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-03-1.5.6-Release2019-01-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-10-1.5.7-Release2019-01-10T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-17-1.5.8-Release2019-01-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-24-1.5.9-Release2019-01-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-31-1.5.10-Release2019-01-31T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-07-1.5.11-Release2019-02-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-14-1.5.12-Release2019-02-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-16-Launcher-1.6.2-Release2019-02-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-21-1.5.13-Release2019-02-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-28-1.5.14-Release2019-02-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-07-1.5.15-Release2019-03-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-14-1.5.16-Release2019-03-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-21-1.5.17-Release2019-03-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-28-1.5.18-Release2019-03-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-11-1.5.19-Release2019-04-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-18-1.5.20-Release2019-04-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-25-1.5.21-Release2019-04-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-03-1.5.22-Release2019-05-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-16-1.5.23-Release2019-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-30-1.5.25-Release2019-05-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-06-06-1.5.26-Release2019-06-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-06-20-1.5.27-Release2019-06-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-07-04-1.5.28-Release2019-07-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-07-18-1.5.29-Release2019-07-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-01-1.5.30-Release2019-08-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-15-1.5.31-Release2019-08-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-16-Launcher-Release-2.0.02019-08-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-29-1.5.32-Release2019-08-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-09-12-1.5.33-Release2019-09-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-09-26-1.5.34-Release2019-09-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-02-1.5.35-Release2019-10-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-17-1.5.36-Release2019-10-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-30-1.5.37-Release2019-10-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-11-14-1.5.40-Release2019-11-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-11-28-1.5.42-Release2019-11-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-12-16-1.5.43-Release2019-12-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-12-19-1.6.0-Release2019-12-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-09-1.6.1-Release2020-01-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-16-1.6.2-Release2020-01-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-22-1.6.4-Release2020-01-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-29-1.6.5-Release2020-01-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-02-13-1.6.6-Release2020-02-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-02-27-1.6.8-Release2020-02-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-03-05-1.6.9-Release2020-03-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-03-26-1.6.10-Release2020-03-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-04-16-1.6.11-Release2020-04-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-01-1.6.13-Release2020-05-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-09-1.6.14-Release2020-05-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-28-1.6.17-Release2020-05-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-12-1.6.19-Release2020-06-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-18-1.6.20-Release2020-06-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-25-1.6.21-Release2020-06-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-07-16-1.6.22-Release2020-07-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-07-23-1.6.23-Release2020-07-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-08-26-1.6.25-Release2020-08-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-09-23-1.6.27-Release2020-09-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-10-07-1.6.28-Release2020-10-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-11-11-1.6.31-Release2020-11-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-12-02-1.6.33-Release2020-12-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-01-06-1.6.36-Release2021-01-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-01-27-1.6.38-Release2021-01-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-02-13-1.7.0-Release2021-02-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-03-08-Wiki-Ge-Partnership2021-03-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-03-24-1.7.3-Release2021-03-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-05-12-1.7.7-Release2021-05-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-05-28-1.7.10-Release2021-05-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-06-23-1.7.13-Release2021-06-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-07-14-1.7.16-Release2021-07-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-07-21-1.7.17-Release2021-07-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-09-06-1.7.22-Release2021-09-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-10-06-1.7.25-Release2021-10-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-10-28-1.8.0-Release2021-10-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-12-16-1.8.7-Release2021-12-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-03-09-1.8.13-Release2022-03-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-05-11-1.8.19-Release2022-05-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-06-17-1.8.24-Release2022-06-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-07-13-1.8.27-Release2022-07-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-08-21-1.8.31-Release2022-08-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut2022-09-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-10-05-1.9.0-Release2022-10-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-12-07-1.9.5-Release2022-12-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-01-22-security-incident-jan212023-01-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-02-18-1.9.11-Release2023-02-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-05-13-1.10.0-Release2023-05-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-07-01-1.10.6-Release2023-07-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-09-09-1.10.12-Release2023-09-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-11-05-1.10.15-Release2023-11-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2024-02-24-1.10.23-Release2024-02-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2024-03-21-1.10.25-Release2024-03-21T00:00:00.000Zweekly \ No newline at end of file +https://runelite.net/2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/features2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/blog2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/tag2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/tile2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/plugin-hub2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/verify2024-04-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2017-12-13-New-Site2017-12-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2017-12-21-1.2.10-Release2017-12-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-12-1.2.11-Release2018-01-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-18-1.2.12-Release2018-01-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-01-25-1.2.13-Release2018-01-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-01-1.2.14-Release2018-02-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-08-1.2.15-Release2018-02-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-15-1.2.16-Release2018-02-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-02-22-1.2.17-Release2018-02-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-01-1.2.18-Release2018-03-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-08-1.2.19-Release2018-03-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-15-1.3.0-Release2018-03-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-22-1.3.1-Release2018-03-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-03-29-1.3.2-Release2018-03-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-05-1.3.3-Release2018-04-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-12-1.3.4-Release2018-04-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-19-1.3.5-Release2018-04-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-04-26-1.3.6-Release2018-04-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-03-1.3.7-Release2018-05-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-10-1.3.8-Release2018-05-10T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-15-RuneLite-threatened-to-shutdown2018-05-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-16-Update-RuneLite-threatened-to-shutdown2018-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-16-Update-2-RuneLite-threatened-to-shutdown2018-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-18-1.3.9-Release2018-05-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-24-1.4.0-Release2018-05-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-25-Phishing-Attempts2018-05-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-05-31-1.4.1-Release2018-05-31T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-07-1.4.2-Release2018-06-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-14-1.4.3-Release2018-06-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-21-1.4.4-Release2018-06-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-06-28-1.4.5-Release2018-06-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-05-1.4.6-Release2018-07-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-12-1.4.7-Release2018-07-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-19-1.4.8-Release2018-07-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-07-26-1.4.9-Release2018-07-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-02-1.4.10-Release2018-08-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-09-1.4.11-Release2018-08-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-16-1.4.12-Release2018-08-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-23-1.4.13-Release2018-08-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-08-30-1.4.15-Release2018-08-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-06-1.4.16-Release2018-09-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-13-1.4.17-Release2018-09-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-18-Worldhopper-disabled2018-09-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-20-1.4.18-Release2018-09-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-09-27-1.4.19-Release2018-09-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-04-1.4.20-Release2018-10-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-11-1.4.21-Release2018-10-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-18-1.4.22-Release2018-10-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-10-25-1.4.23-Release2018-10-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-01-1.4.24-Release2018-11-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-08-1.4.25-Release2018-11-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-15-1.4.26-Release2018-11-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-16-1.5.0-Release2018-11-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-22-1.5.1-Release2018-11-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-11-29-1.5.2-Release2018-11-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-06-1.5.3-Release2018-12-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-13-1.5.4-Release2018-12-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2018-12-20-1.5.5-Release2018-12-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-03-1.5.6-Release2019-01-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-10-1.5.7-Release2019-01-10T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-17-1.5.8-Release2019-01-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-24-1.5.9-Release2019-01-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-01-31-1.5.10-Release2019-01-31T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-07-1.5.11-Release2019-02-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-14-1.5.12-Release2019-02-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-16-Launcher-1.6.2-Release2019-02-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-21-1.5.13-Release2019-02-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-02-28-1.5.14-Release2019-02-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-07-1.5.15-Release2019-03-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-14-1.5.16-Release2019-03-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-21-1.5.17-Release2019-03-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-03-28-1.5.18-Release2019-03-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-11-1.5.19-Release2019-04-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-18-1.5.20-Release2019-04-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-04-25-1.5.21-Release2019-04-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-03-1.5.22-Release2019-05-03T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-16-1.5.23-Release2019-05-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-05-30-1.5.25-Release2019-05-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-06-06-1.5.26-Release2019-06-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-06-20-1.5.27-Release2019-06-20T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-07-04-1.5.28-Release2019-07-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-07-18-1.5.29-Release2019-07-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-01-1.5.30-Release2019-08-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-15-1.5.31-Release2019-08-15T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-16-Launcher-Release-2.0.02019-08-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-08-29-1.5.32-Release2019-08-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-09-12-1.5.33-Release2019-09-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-09-26-1.5.34-Release2019-09-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-02-1.5.35-Release2019-10-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-17-1.5.36-Release2019-10-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-10-30-1.5.37-Release2019-10-30T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-11-14-1.5.40-Release2019-11-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-11-28-1.5.42-Release2019-11-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-12-16-1.5.43-Release2019-12-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2019-12-19-1.6.0-Release2019-12-19T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-09-1.6.1-Release2020-01-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-16-1.6.2-Release2020-01-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-22-1.6.4-Release2020-01-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-01-29-1.6.5-Release2020-01-29T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-02-13-1.6.6-Release2020-02-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-02-27-1.6.8-Release2020-02-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-03-05-1.6.9-Release2020-03-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-03-26-1.6.10-Release2020-03-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-04-16-1.6.11-Release2020-04-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-01-1.6.13-Release2020-05-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-09-1.6.14-Release2020-05-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-05-28-1.6.17-Release2020-05-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-12-1.6.19-Release2020-06-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-18-1.6.20-Release2020-06-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-06-25-1.6.21-Release2020-06-25T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-07-16-1.6.22-Release2020-07-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-07-23-1.6.23-Release2020-07-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-08-26-1.6.25-Release2020-08-26T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-09-23-1.6.27-Release2020-09-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-10-07-1.6.28-Release2020-10-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-11-11-1.6.31-Release2020-11-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2020-12-02-1.6.33-Release2020-12-02T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-01-06-1.6.36-Release2021-01-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-01-27-1.6.38-Release2021-01-27T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-02-13-1.7.0-Release2021-02-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-03-08-Wiki-Ge-Partnership2021-03-08T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-03-24-1.7.3-Release2021-03-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-05-12-1.7.7-Release2021-05-12T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-05-28-1.7.10-Release2021-05-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-06-23-1.7.13-Release2021-06-23T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-07-14-1.7.16-Release2021-07-14T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-07-21-1.7.17-Release2021-07-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-09-06-1.7.22-Release2021-09-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-10-06-1.7.25-Release2021-10-06T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-10-28-1.8.0-Release2021-10-28T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2021-12-16-1.8.7-Release2021-12-16T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-03-09-1.8.13-Release2022-03-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-05-11-1.8.19-Release2022-05-11T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-06-17-1.8.24-Release2022-06-17T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-07-13-1.8.27-Release2022-07-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-08-21-1.8.31-Release2022-08-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-09-04-recent-performance-regressions-and-tombs-of-amascut2022-09-04T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-10-05-1.9.0-Release2022-10-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2022-12-07-1.9.5-Release2022-12-07T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-01-22-security-incident-jan212023-01-22T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-02-18-1.9.11-Release2023-02-18T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-05-13-1.10.0-Release2023-05-13T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-07-01-1.10.6-Release2023-07-01T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-09-09-1.10.12-Release2023-09-09T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2023-11-05-1.10.15-Release2023-11-05T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2024-02-24-1.10.23-Release2024-02-24T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2024-03-21-1.10.25-Release2024-03-21T00:00:00.000Zweeklyhttps://runelite.net/blog/show/2024-04-17-1.10.27-Release2024-04-17T00:00:00.000Zweekly \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index fe3602e59be73cddfb87baceb213c11732edfcae..800f156fa9fd2fc1e6542a782a957354656123e5 100644 GIT binary patch delta 298 zcmV+_0oDHM4)zX^{eRYPvg|qiS!7xEdyt7@wb`%xoqrhppZ6E<-yc4$mY@A-wWRU% zK_C2jK97ESlEL2{hTW44Jg=W<-0t9?WZ=``yz6?iKfimD;e&B>51*c_#+K85xGY^} zYh#_Ux%t^&%&$T56;V=PiJUcd;TASCzxab+Pmggq3*%}`W`F5bL@xU{m*~J;4Rg6$ zTn(1XmCTjj;BqCB%h9WdT!qRNbzm-;$MO~zbRI*|%RE*$xGZ=coqQha8(a?hdCaf% z)u>!KxW4jheYLl^p!Jn=edPhqVmcYy4&aQ>T)e%>1H2gNUYGg@FeP9A7xl9 w%af>EeF0vw!?XGUT?HNr?0xF=y}$ydEcE}$7YN6{CqLi+1w8W=c;#FG0922mrT_o{ delta 287 zcmV+)0pR}j4(bk&{eQYQS@xX%EV3;7J;+3{+U(c;&OeO)&-;t_?+>3=%g=taTGDv> zpbvgMpGQAE$>8q}!|q82p4U$_Zg=ocGVtke-gUj%pWi*n@WD8`hfhydW6NnjT$V1g zbr{Up-2Ch>=GUP3iYO_tM9vz!a0{E6U;M$Zr^mRQg>f||vw!p|BA0!fOLSnahPm7= zt_I8HO6JOMaJdr6<>*yJu0rLCIxv^aV|j}UI**~~Wge>=Toyc!PCk$I4K4@$Jm%N> zYE-TqTwnRMzS>({(E7@`zVd})_aeh$QF-MH-R*ODb-9+XbhD2#Bv$BLcoKE5k1{Nl l0?Math.floor(t):Math.ceil(t)};function O(t,e,i){return t instanceof E?t:f(t)?new E(t[0],t[1]):void 0===t||null===t?t:"object"===typeof t&&"x"in t&&"y"in t?new E(t.x,t.y):new E(t,e,i)}function B(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Lt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(i){}return t}(),Tt=!!document.createElement("canvas").getContext,Mt=!(!document.createElementNS||!G("svg").createSVGRect),zt=!Mt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"===typeof e.adj}catch(i){return!1}}();function Ct(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var St={ie:J,ielt9:X,edge:$,webkit:Q,android:tt,android23:et,androidStock:nt,opera:ot,chrome:st,gecko:rt,safari:at,phantom:ht,opera12:ut,win:lt,ie3d:ct,webkit3d:dt,gecko3d:_t,any3d:pt,mobile:mt,mobileWebkit:ft,mobileWebkit3d:gt,msPointer:vt,pointer:yt,touch:xt,mobileOpera:wt,mobileGecko:bt,retina:Pt,passiveEvents:Lt,canvas:Tt,svg:Mt,vml:zt},Zt=vt?"MSPointerDown":"pointerdown",Et=vt?"MSPointerMove":"pointermove",kt=vt?"MSPointerUp":"pointerup",Ot=vt?"MSPointerCancel":"pointercancel",Bt={},It=!1;function At(t,e,i,o){return"touchstart"===e?function(t,e,i){var o=n((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Oe(t),Dt(t,e)}));t["_leaflet_touchstart"+i]=o,t.addEventListener(Zt,o,!1),It||(document.addEventListener(Zt,jt,!0),document.addEventListener(Et,Rt,!0),document.addEventListener(kt,Nt,!0),document.addEventListener(Ot,Nt,!0),It=!0)}(t,i,o):"touchmove"===e?function(t,e,i){var n=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Dt(t,e)};t["_leaflet_touchmove"+i]=n,t.addEventListener(Et,n,!1)}(t,i,o):"touchend"===e&&function(t,e,i){var n=function(t){Dt(t,e)};t["_leaflet_touchend"+i]=n,t.addEventListener(kt,n,!1),t.addEventListener(Ot,n,!1)}(t,i,o),this}function jt(t){Bt[t.pointerId]=t}function Rt(t){Bt[t.pointerId]&&(Bt[t.pointerId]=t)}function Nt(t){delete Bt[t.pointerId]}function Dt(t,e){for(var i in t.touches=[],Bt)t.touches.push(Bt[i]);t.changedTouches=[t],e(t)}var Ht,Wt,Ft,Ut,Vt,qt=vt?"MSPointerDown":yt?"pointerdown":"touchstart",Gt=vt?"MSPointerUp":yt?"pointerup":"touchend",Kt="_leaflet_",Yt=ce(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Jt=ce(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Xt="webkitTransition"===Jt||"OTransition"===Jt?Jt+"End":"transitionend";function $t(t){return"string"===typeof t?document.getElementById(t):t}function Qt(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function te(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function ee(t){var e=t.parentNode;e&&e.removeChild(t)}function ie(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ne(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function oe(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function se(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=ue(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function re(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n1)return;var e=Date.now(),i=e-(n||e);o=t.touches?t.touches[0]:t,s=i>0&&i<=250,n=e}function a(t){if(s&&!o.cancelBubble){if(yt){if("mouse"===t.pointerType)return;var i,r,a={};for(r in o)i=o[r],a[r]=i&&i.bind?i.bind(o):i;o=a}o.type="dblclick",o.button=0,e(o),n=null}}t[Kt+qt+i]=r,t[Kt+Gt+i]=a,t[Kt+"dblclick"+i]=e,t.addEventListener(qt,r,!!Lt&&{passive:!1}),t.addEventListener(Gt,a,!!Lt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,r,o):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(ze[e]||e,r,!!Lt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,He(t,e)&&a(e)},t.addEventListener(ze[e],r,!1)):t.addEventListener(e,a,!1):"attachEvent"in t&&t.attachEvent("on"+e,r),t[Le]=t[Le]||{},t[Le][o]=r}function Se(t,e,i,n){var o=e+s(i)+(n?"_"+s(n):""),r=t[Le]&&t[Le][o];if(!r)return this;yt&&0===e.indexOf("touch")?function(t,e,i){var n=t["_leaflet_"+e+i];"touchstart"===e?t.removeEventListener(Zt,n,!1):"touchmove"===e?t.removeEventListener(Et,n,!1):"touchend"===e&&(t.removeEventListener(kt,n,!1),t.removeEventListener(Ot,n,!1))}(t,e,o):xt&&"dblclick"===e&&!Me()?function(t,e){var i=t[Kt+qt+e],n=t[Kt+Gt+e],o=t[Kt+"dblclick"+e];t.removeEventListener(qt,i,!!Lt&&{passive:!1}),t.removeEventListener(Gt,n,!!Lt&&{passive:!1}),t.removeEventListener("dblclick",o,!1)}(t,o):"removeEventListener"in t?t.removeEventListener(ze[e]||e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[Le][o]=null}function Ze(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,De(t),this}function Ee(t){return Ce(t,"wheel",Ze),this}function ke(t){return Pe(t,"mousedown touchstart dblclick",Ze),Ce(t,"click",Ne),this}function Oe(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Be(t){return Oe(t),Ze(t),this}function Ie(t,e){if(!e)return new E(t.clientX,t.clientY);var i=we(e),n=i.boundingClientRect;return new E((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)}var Ae=lt&&st?2*window.devicePixelRatio:rt?window.devicePixelRatio:1;function je(t){return $?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Ae:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Re={};function Ne(t){Re[t.type]=!0}function De(t){var e=Re[t.type];return Re[t.type]=!1,e}function He(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(n){return!1}return i!==t}var We={on:Pe,off:Te,stopPropagation:Ze,disableScrollPropagation:Ee,disableClickPropagation:ke,preventDefault:Oe,stop:Be,getMousePosition:Ie,getWheelDelta:je,fakeStop:Ne,skipped:De,isExternalTarget:He,addListener:Pe,removeListener:Te},Fe=Z.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=pe(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,j(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=O((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=O(e.paddingBottomRight||e.padding||[0,0]),o=this.getCenter(),s=this.project(o),r=this.project(t),a=this.getPixelBounds(),h=a.getSize().divideBy(2),u=I([a.min.add(i),a.max.subtract(n)]);if(!u.contains(r)){this._enforcingBounds=!0;var l=s.subtract(r),c=O(r.x+l.x,r.y+l.y);(r.xu.max.x)&&(c.x=s.x-l.x,l.x>0?c.x+=h.x-i.x:c.x-=h.x-n.x),(r.yu.max.y)&&(c.y=s.y-l.y,l.y>0?c.y+=h.y-i.y:c.y-=h.y-n.y),this.panTo(this.unproject(c),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=new R(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"===typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(e){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ee(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(M(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ee(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=te("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new A(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=j(t),i=O(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=I(this.project(a,n),this.project(r,n)).getSize(),l=pt?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new E(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new B(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"===typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(N(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(O(t),e)},layerPointToLatLng:function(t){var e=O(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(N(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(N(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(j(t))},distance:function(t,e){return this.options.crs.distance(N(t),N(e))},containerPointToLayerPoint:function(t){return O(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return O(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(O(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(N(t)))},mouseEventToContainerPoint:function(t){return Ie(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=$t(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Pe(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&pt,re(t,"leaflet-container"+(xt?" leaflet-touch":"")+(Pt?" leaflet-retina":"")+(X?" leaflet-oldie":"")+(at?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=Qt(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),_e(this._mapPane,new E(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(re(t.markerPane,"leaflet-zoom-hide"),re(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){_e(this._mapPane,new E(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return M(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){_e(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Te:Pe;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),pt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){M(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[s(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!He(r,t))break;if(n.push(i),o)break}if(r===this._container)break;r=r.parentNode}return n.length||a||o||!He(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!De(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||ve(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,i))).length){var s=n[0];"contextmenu"===i&&s.listens(i,!0)&&Oe(t);var r={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=pt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){ae(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=te("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Yt,i=this._proxy.style[e];de(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ee(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();de(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o))&&(T((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),!0)},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,re(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&ae(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),T((function(){this._moveEnd(!0)}),this))}}),Ve=C.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return re(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ee(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),qe=function(t){return new Ve(t)};Ue.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=te("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=te("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ee(this._controlCorners[t]);ee(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ge=Ve.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Pe(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("div");return i.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ke=Ve.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=te("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=te("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),ke(s),Pe(s,"click",Be),Pe(s,"click",o,this),Pe(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";ae(this._zoomInButton,e),ae(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&re(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&re(this._zoomInButton,e)}});Ue.mergeOptions({zoomControl:!0}),Ue.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ke,this.addControl(this.zoomControl))}));var Ye=Ve.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=te("div","leaflet-control-scale"),i=this.options;return this._addScales(i,"leaflet-control-scale-line",e),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=te("div",e,i)),t.imperial&&(this._iScale=te("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Je=Ve.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=te("div","leaflet-control-attribution"),ke(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}});Ue.mergeOptions({attributionControl:!0}),Ue.addInitHook((function(){this.options.attributionControl&&(new Je).addTo(this)})),Ve.Layers=Ge,Ve.Zoom=Ke,Ve.Scale=Ye,Ve.Attribution=Je,qe.layers=function(t,e,i){return new Ge(t,e,i)},qe.zoom=function(t){return new Ke(t)},qe.scale=function(t){return new Ye(t)},qe.attribution=function(t){return new Je(t)};var Xe=C.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Xe.addTo=function(t,e){return t.addHandler(e,this),this};var $e,Qe={Events:S},ti=xt?"touchstart mousedown":"mousedown",ei={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},ii={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ni=Z.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Pe(this._dragStartTarget,ti,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ni._dragging===this&&this.finishDrag(),Te(this._dragStartTarget,ti,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!se(this._element,"leaflet-zoom-anim")&&!(ni._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&(ni._dragging=this,this._preventOutline&&ve(this._element),fe(),Ht(),!this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=xe(this._element);this._startPoint=new E(e.clientX,e.clientY),this._parentScale=we(i),Pe(document,ii[t.type],this._onMove,this),Pe(document,ei[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new E(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)u&&(r=a,u=h);u>n&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(t,n,e,0,i-1);var o,s=[];for(o=0;oe&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ui(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function li(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new E(s,r)}function ci(t){return!f(t[0])||"object"!==typeof t[0][0]&&"undefined"!==typeof t[0][0]}function di(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ci(t)}var _i={simplify:oi,pointToSegmentDistance:si,closestPointOnSegment:function(t,e,i){return li(t,e,i)},clipSegment:ri,_getEdgeIntersection:ai,_getBitCode:hi,_sqClosestPointOnSegment:li,isFlat:ci,_flat:di};function pi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new R(a*i,t.x*i/n)}},vi={LonLat:fi,Mercator:gi,SphericalMercator:W},yi=e({},H,{code:"EPSG:3395",projection:gi,transformation:function(){var t=.5/(Math.PI*gi.R);return U(t,.5,-t,.5)}()}),xi=e({},H,{code:"EPSG:4326",projection:fi,transformation:U(1/180,1,-1/180,.5)}),wi=e({},D,{projection:fi,transformation:U(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});D.Earth=H,D.EPSG3395=yi,D.EPSG3857=V,D.EPSG900913=q,D.EPSG4326=xi,D.Simple=wi;var bi=Z.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ue.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=N(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new A,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ci(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ci(t),n=0,o=t.length;n=2&&e[0]instanceof R&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){ki.prototype._setLatLngs.call(this,t),ci(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ci(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new E(e,e);if(t=new B(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!==n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||ki.prototype._containsPoint.call(this,t,!0)}}),Bi=Li.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var r=0;ro?(e.height=o+"px",re(t,"leaflet-popup-scrolled")):ae(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();_e(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(Qt(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new E(this._containerLeft,-i-this._containerBottom);o._add(pe(this._container));var s=t.layerPointToContainerPoint(o),r=O(this.options.autoPanPadding),a=O(this.options.autoPanPaddingTopLeft||r),h=O(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+i+h.y>u.y&&(c=s.y+i-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Be(t)},_getAnchor:function(){return O(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ue.mergeOptions({closePopupOnClick:!0}),Ue.include({openPopup:function(t,e,i){return t instanceof Ji||(t=new Ji(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),bi.include({bindPopup:function(t,e){return t instanceof Ji?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new Ji(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Be(t),e instanceof Si?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Xi=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return xt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=te("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=O(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new E(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new E(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return j(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new A(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new E(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(ee(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){re(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,X&&this.options.opacity<1&&le(t,this.options.opacity),tt&&!et&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),_e(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(le(i.el,0),M(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(re(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),X||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new E(this._wrapX?a(t.x,this._wrapX):t.x,this._wrapY?a(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new B(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),tn=Qi.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Pt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"===typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),tt||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Pe(i,"load",n(this._tileOnLoad,this,e,i)),Pe(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:Pt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return m(this._url,e(i,this.options))},_tileOnLoad:function(t,e){X?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,e.complete||(e.src=v,ee(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return nt||e.el.setAttribute("src",v),Qi.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return Qi.prototype._tileReady.call(this,t,e,i)}});function en(t,e){return new tn(t,e)}var nn=tn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&Pt?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,tn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=I(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===xi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=tn.prototype.getTileUrl.call(this,t);return a+_(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});tn.WMS=nn,en.wms=function(t,e){return new nn(t,e)};var on=bi.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&re(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=pe(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e).subtract(s),a=o.multiplyBy(-i).add(n).add(o).subtract(r);pt?de(this._container,a,i):_e(this._container,a)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new B(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),sn=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){on.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Pe(t,"mousemove",this._onMouseMove,this),Pe(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Pe(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){M(this._redrawRequest),delete this._ctx,ee(this._container),Te(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Pt?2:1;_e(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Pt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){on.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"===typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hn={_initContainer:function(){this._container=te("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(on.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=an("shape");re(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=an("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ee(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=an("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=an("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ne(t._container)},_bringToBack:function(t){oe(t._container)}},un=zt?an:G,ln=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=un("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=un("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ee(this._container),Te(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),_e(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=un("path");t.options.className&&re(e,t.options.className),t.options.interactive&&re(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ee(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,K(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ne(t._path)},_bringToBack:function(t){oe(t._path)}});function cn(t){return Mt||zt?new ln(t):null}zt&&ln.include(hn),Ue.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&rn(t)||cn(t)}});var dn=Oi.extend({initialize:function(t,e){Oi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=j(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});ln.create=un,ln.pointsToPath=K,Bi.geometryToLayer=Ii,Bi.coordsToLatLng=ji,Bi.coordsToLatLngs=Ri,Bi.latLngToCoords=Ni,Bi.latLngsToCoords=Di,Bi.getFeature=Hi,Bi.asFeature=Wi,Ue.mergeOptions({boxZoom:!0});var _n=Xe.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Pe(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Te(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ee(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Ht(),fe(),this._startPoint=this._map.mouseEventToContainerPoint(t),Pe(document,{contextmenu:Be,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=te("div","leaflet-zoom-box",this._container),re(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new B(this._point,this._startPoint),i=e.getSize();_e(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(ee(this._box),ae(this._container,"leaflet-crosshair")),Wt(),ge(),Te(document,{contextmenu:Be,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new A(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ue.addInitHook("addHandler","boxZoom",_n),Ue.mergeOptions({doubleClickZoom:!0});var pn=Xe.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ue.addInitHook("addHandler","doubleClickZoom",pn),Ue.mergeOptions({dragging:!0,inertia:!et,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var mn=Xe.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ni(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}re(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){ae(this._map._container,"leaflet-grab"),ae(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=j(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Ue.addInitHook("addHandler","scrollWheelZoom",gn),Ue.mergeOptions({tap:!0,tapTolerance:15});var vn=Xe.extend({addHooks:function(){Pe(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Te(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Oe(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],i=e.target;this._startPos=this._newPos=new E(e.clientX,e.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&re(i,"leaflet-active"),this._holdTimeout=setTimeout(n((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Pe(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Te(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&ae(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new E(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents");i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}});!xt||yt&&!at||Ue.addInitHook("addHandler","tap",vn),Ue.mergeOptions({touchZoom:xt&&!et,bounceAtZoomLimits:!0});var yn=Xe.extend({addHooks:function(){re(this._map._container,"leaflet-touch-zoom"),Pe(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){ae(this._map._container,"leaflet-touch-zoom"),Te(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Pe(document,"touchmove",this._onTouchMove,this),Pe(document,"touchend",this._onTouchEnd,this),Oe(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),M(this._animRequest);var a=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=T(a,this,!0),Oe(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,M(this._animRequest),Te(document,"touchmove",this._onTouchMove,this),Te(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ue.addInitHook("addHandler","touchZoom",yn),Ue.BoxZoom=_n,Ue.DoubleClickZoom=pn,Ue.Drag=mn,Ue.Keyboard=fn,Ue.ScrollWheelZoom=gn,Ue.Tap=vn,Ue.TouchZoom=yn,t.version="1.7.1",t.Control=Ve,t.control=qe,t.Browser=St,t.Evented=Z,t.Mixin=Qe,t.Util=z,t.Class=C,t.Handler=Xe,t.extend=e,t.bind=n,t.stamp=s,t.setOptions=d,t.DomEvent=We,t.DomUtil=be,t.PosAnimation=Fe,t.Draggable=ni,t.LineUtil=_i,t.PolyUtil=mi,t.Point=E,t.point=O,t.Bounds=B,t.bounds=I,t.Transformation=F,t.transformation=U,t.Projection=vi,t.LatLng=R,t.latLng=N,t.LatLngBounds=A,t.latLngBounds=j,t.CRS=D,t.GeoJSON=Bi,t.geoJSON=Ui,t.geoJson=Vi,t.Layer=bi,t.LayerGroup=Pi,t.layerGroup=function(t,e){return new Pi(t,e)},t.FeatureGroup=Li,t.featureGroup=function(t,e){return new Li(t,e)},t.ImageOverlay=qi,t.imageOverlay=function(t,e,i){return new qi(t,e,i)},t.VideoOverlay=Gi,t.videoOverlay=function(t,e,i){return new Gi(t,e,i)},t.SVGOverlay=Ki,t.svgOverlay=function(t,e,i){return new Ki(t,e,i)},t.DivOverlay=Yi,t.Popup=Ji,t.popup=function(t,e){return new Ji(t,e)},t.Tooltip=Xi,t.tooltip=function(t,e){return new Xi(t,e)},t.Icon=Ti,t.icon=function(t){return new Ti(t)},t.DivIcon=$i,t.divIcon=function(t){return new $i(t)},t.Marker=Ci,t.marker=function(t,e){return new Ci(t,e)},t.TileLayer=tn,t.tileLayer=en,t.GridLayer=Qi,t.gridLayer=function(t){return new Qi(t)},t.SVG=ln,t.svg=cn,t.Renderer=on,t.Canvas=sn,t.canvas=rn,t.Path=Si,t.CircleMarker=Zi,t.circleMarker=function(t,e){return new Zi(t,e)},t.Circle=Ei,t.circle=function(t,e,i){return new Ei(t,e,i)},t.Polyline=ki,t.polyline=function(t,e){return new ki(t,e)},t.Polygon=Oi,t.polygon=function(t,e){return new Oi(t,e)},t.Rectangle=dn,t.rectangle=function(t,e){return new dn(t,e)},t.Map=Ue,t.map=function(t,e){return new Ue(t,e)};var xn=window.L;t.noConflict=function(){return window.L=xn,this},window.L=t}(e)},285:function(t,e,i){"use strict";i.d(e,"a",(function(){return o})),i.d(e,"b",(function(){return r})),i.d(e,"c",(function(){return a}));var n=i(1);const o=1,s=Object(n.b)(null),r=s.Provider;function a(){const t=Object(n.h)(s);if(null==t)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return t}},463:function(t,e,i){"use strict";i.d(e,"a",(function(){return o}));var n=i(285);i(1);function o(){return Object(n.c)().map}},464:function(t,e,i){"use strict";i.d(e,"a",(function(){return s}));var n=i(468),o=i(132);const s=Object(n.c)((function(t,e){let{bounds:i,...n}=t;const s=new o.Rectangle(i,n);return{instance:s,context:{...e,overlayContainer:s}}}),(function(t,e,i){e.bounds!==i.bounds&&t.setBounds(e.bounds)}))},465:function(t,e,i){"use strict";i.d(e,"a",(function(){return r}));var n=i(468),o=i(132),s=i(1);const r=Object(n.b)((function(t,e){return{instance:new o.Tooltip(t,e.overlayContainer),context:e}}),(function(t,e,i,n){const{onClose:o,onOpen:r}=i;Object(s.j)((function(){const i=e.overlayContainer;if(null==i)return;const{instance:s}=t,a=t=>{t.tooltip===s&&(s.update(),n(!0),null==r||r())},h=t=>{t.tooltip===s&&(n(!1),null==o||o())};return i.on({tooltipopen:a,tooltipclose:h}),i.bindTooltip(s),function(){i.off({tooltipopen:a,tooltipclose:h}),null!=i._map&&i.unbindTooltip()}}),[t,e,n,o,r])}))},466:function(t,e,i){"use strict";i.d(e,"a",(function(){return a}));var n=i(285),o=i(132),s=i(1);function r(){return(r=Object.assign||function(t){for(var e=1;e{if(null!==t.current&&null===i){const i=new o.Map(t.current,e);null!=e.center&&null!=e.zoom?i.setView(e.center,e.zoom):null!=e.bounds&&i.fitBounds(e.bounds,e.boundsOptions),null!=e.whenReady&&i.whenReady(e.whenReady),n(i)}},[t,i,e]),i}(d,c),p=Object(s.o)(!1);Object(s.j)(()=>{null!=_&&!1===p.current&&null!=l&&(p.current=!0,l(_))},[_,l]);const[m]=Object(s.p)({className:i,id:a,style:u}),f=Object(s.m)(()=>_?{__version:n.a,map:_}:null,[_]),g=f?s.e.createElement(n.b,{value:f},e):null!==h&&void 0!==h?h:null;return s.e.createElement("div",r({},m,{ref:d}),g)}},468:function(t,e,i){"use strict";i.d(e,"a",(function(){return _})),i.d(e,"b",(function(){return p})),i.d(e,"c",(function(){return m}));var n=i(1),o=i(285);function s(t){function e(e,i){const{instance:s,context:r}=t(e).current;return Object(n.k)(i,()=>s),null==e.children?null:n.e.createElement(o.b,{value:r},e.children)}return Object(n.f)(e)}function r(t,e){return null==e?function(e,i){return Object(n.o)(t(e,i))}:function(i,o){const s=Object(n.o)(t(i,o)),r=Object(n.o)(i),{instance:a}=s.current;return Object(n.j)((function(){r.current!==i&&(e(a,i,r.current),r.current=i)}),[a,i,o]),s}}function a(t,e){const i=Object(n.o)(e);Object(n.j)((function(){e!==i.current&&null!=t.attributionControl&&(null!=i.current&&t.attributionControl.removeAttribution(i.current),null!=e&&t.attributionControl.addAttribution(e)),i.current=e}),[t,e])}function h(t,e){const i=Object(n.o)();Object(n.j)((function(){return null!=e&&t.instance.on(e),i.current=e,function(){null!=i.current&&t.instance.off(i.current),i.current=null}}),[t,e])}function u(t,e){var i;const n=null!==(i=t.pane)&&void 0!==i?i:e.pane;return n?{...t,pane:n}:t}function l(t,e){Object(n.j)((function(){var i;return(null!==(i=e.layerContainer)&&void 0!==i?i:e.map).addLayer(t.instance),function(){var i;null==(i=e.layersControl)||i.removeLayer(t.instance),e.map.removeLayer(t.instance)}}),[e,t])}function c(t){return function(e){const i=Object(o.c)(),n=t(u(e,i),i);return a(i.map,e.attribution),h(n.current,e.eventHandlers),l(n.current,i),n}}function d(t){return function(e){const i=Object(o.c)(),s=t(u(e,i),i);return h(s.current,e.eventHandlers),l(s.current,i),function(t,e){const i=Object(n.o)();Object(n.j)((function(){if(e.pathOptions!==i.current){var n;const o=null!==(n=e.pathOptions)&&void 0!==n?n:{};t.instance.setStyle(o),i.current=o}}),[t,e])}(s.current,e),s}}function _(t,e){return s(c(r(t,e)))}function p(t,e){return function(t){function e(e,i){const[o,s]=Object(n.p)(!1),{instance:r}=t(e,s).current;Object(n.k)(i,()=>r),Object(n.j)((function(){o&&r.update()}),[r,o,e.children]);const a=r._contentNode;return a?Object(n.d)(e.children,a):null}return Object(n.f)(e)}(function(t,e){return function(i,n){const s=Object(o.c)(),r=t(u(i,s),s);return a(s.map,i.attribution),h(r.current,i.eventHandlers),e(r.current,s,i,n),r}}(r(t),e))}function m(t,e){return s(d(r(t,e)))}},472:function(t,e,i){"use strict";i.d(e,"a",(function(){return s}));var n=i(468),o=i(132);const s=Object(n.a)((function(t,e){let{bounds:i,url:n,...s}=t;const r=new o.ImageOverlay(n,i,s);return{instance:r,context:{...e,overlayContainer:r}}}),(function(t,e,i){!function(t,e,i){e.bounds instanceof o.LatLngBounds&&e.bounds!==i.bounds&&t.setBounds(e.bounds),null!=e.opacity&&e.opacity!==i.opacity&&t.setOpacity(e.opacity),null!=e.zIndex&&e.zIndex!==i.zIndex&&t.setZIndex(e.zIndex)}(t,e,i),e.url!==i.url&&t.setUrl(e.url)}))}}]); -//# sourceMappingURL=0.aea5108a.chunk.js.map \ No newline at end of file +/*! For license information please see 0.da263fb4.chunk.js.LICENSE.txt */ +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[0],{132:function(t,e,i){!function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function O(t,e,i){return t instanceof E?t:f(t)?new E(t[0],t[1]):void 0===t||null===t?t:"object"===typeof t&&"x"in t&&"y"in t?new E(t.x,t.y):new E(t,e,i)}function B(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Lt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(i){}return t}(),Tt=!!document.createElement("canvas").getContext,Mt=!(!document.createElementNS||!G("svg").createSVGRect),zt=!Mt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"===typeof e.adj}catch(i){return!1}}();function Ct(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var St={ie:J,ielt9:X,edge:$,webkit:Q,android:tt,android23:et,androidStock:nt,opera:ot,chrome:st,gecko:rt,safari:at,phantom:ht,opera12:ut,win:lt,ie3d:ct,webkit3d:dt,gecko3d:_t,any3d:pt,mobile:mt,mobileWebkit:ft,mobileWebkit3d:gt,msPointer:vt,pointer:yt,touch:xt,mobileOpera:wt,mobileGecko:bt,retina:Pt,passiveEvents:Lt,canvas:Tt,svg:Mt,vml:zt},Zt=vt?"MSPointerDown":"pointerdown",Et=vt?"MSPointerMove":"pointermove",kt=vt?"MSPointerUp":"pointerup",Ot=vt?"MSPointerCancel":"pointercancel",Bt={},It=!1;function At(t,e,i,o){return"touchstart"===e?function(t,e,i){var o=n((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Oe(t),Dt(t,e)}));t["_leaflet_touchstart"+i]=o,t.addEventListener(Zt,o,!1),It||(document.addEventListener(Zt,jt,!0),document.addEventListener(Et,Rt,!0),document.addEventListener(kt,Nt,!0),document.addEventListener(Ot,Nt,!0),It=!0)}(t,i,o):"touchmove"===e?function(t,e,i){var n=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Dt(t,e)};t["_leaflet_touchmove"+i]=n,t.addEventListener(Et,n,!1)}(t,i,o):"touchend"===e&&function(t,e,i){var n=function(t){Dt(t,e)};t["_leaflet_touchend"+i]=n,t.addEventListener(kt,n,!1),t.addEventListener(Ot,n,!1)}(t,i,o),this}function jt(t){Bt[t.pointerId]=t}function Rt(t){Bt[t.pointerId]&&(Bt[t.pointerId]=t)}function Nt(t){delete Bt[t.pointerId]}function Dt(t,e){for(var i in t.touches=[],Bt)t.touches.push(Bt[i]);t.changedTouches=[t],e(t)}var Ht,Wt,Ft,Ut,Vt,qt=vt?"MSPointerDown":yt?"pointerdown":"touchstart",Gt=vt?"MSPointerUp":yt?"pointerup":"touchend",Kt="_leaflet_",Yt=ce(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Jt=ce(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Xt="webkitTransition"===Jt||"OTransition"===Jt?Jt+"End":"transitionend";function $t(t){return"string"===typeof t?document.getElementById(t):t}function Qt(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function te(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function ee(t){var e=t.parentNode;e&&e.removeChild(t)}function ie(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ne(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function oe(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function se(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=ue(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function re(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n1)return;var e=Date.now(),i=e-(n||e);o=t.touches?t.touches[0]:t,s=i>0&&i<=250,n=e}function a(t){if(s&&!o.cancelBubble){if(yt){if("mouse"===t.pointerType)return;var i,r,a={};for(r in o)i=o[r],a[r]=i&&i.bind?i.bind(o):i;o=a}o.type="dblclick",o.button=0,e(o),n=null}}t[Kt+qt+i]=r,t[Kt+Gt+i]=a,t[Kt+"dblclick"+i]=e,t.addEventListener(qt,r,!!Lt&&{passive:!1}),t.addEventListener(Gt,a,!!Lt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,r,o):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(ze[e]||e,r,!!Lt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,He(t,e)&&a(e)},t.addEventListener(ze[e],r,!1)):t.addEventListener(e,a,!1):"attachEvent"in t&&t.attachEvent("on"+e,r),t[Le]=t[Le]||{},t[Le][o]=r}function Se(t,e,i,n){var o=e+s(i)+(n?"_"+s(n):""),r=t[Le]&&t[Le][o];if(!r)return this;yt&&0===e.indexOf("touch")?function(t,e,i){var n=t["_leaflet_"+e+i];"touchstart"===e?t.removeEventListener(Zt,n,!1):"touchmove"===e?t.removeEventListener(Et,n,!1):"touchend"===e&&(t.removeEventListener(kt,n,!1),t.removeEventListener(Ot,n,!1))}(t,e,o):xt&&"dblclick"===e&&!Me()?function(t,e){var i=t[Kt+qt+e],n=t[Kt+Gt+e],o=t[Kt+"dblclick"+e];t.removeEventListener(qt,i,!!Lt&&{passive:!1}),t.removeEventListener(Gt,n,!!Lt&&{passive:!1}),t.removeEventListener("dblclick",o,!1)}(t,o):"removeEventListener"in t?t.removeEventListener(ze[e]||e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[Le][o]=null}function Ze(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,De(t),this}function Ee(t){return Ce(t,"wheel",Ze),this}function ke(t){return Pe(t,"mousedown touchstart dblclick",Ze),Ce(t,"click",Ne),this}function Oe(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Be(t){return Oe(t),Ze(t),this}function Ie(t,e){if(!e)return new E(t.clientX,t.clientY);var i=we(e),n=i.boundingClientRect;return new E((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)}var Ae=lt&&st?2*window.devicePixelRatio:rt?window.devicePixelRatio:1;function je(t){return $?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Ae:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Re={};function Ne(t){Re[t.type]=!0}function De(t){var e=Re[t.type];return Re[t.type]=!1,e}function He(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(n){return!1}return i!==t}var We={on:Pe,off:Te,stopPropagation:Ze,disableScrollPropagation:Ee,disableClickPropagation:ke,preventDefault:Oe,stop:Be,getMousePosition:Ie,getWheelDelta:je,fakeStop:Ne,skipped:De,isExternalTarget:He,addListener:Pe,removeListener:Te},Fe=Z.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=pe(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,j(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=O((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=O(e.paddingBottomRight||e.padding||[0,0]),o=this.getCenter(),s=this.project(o),r=this.project(t),a=this.getPixelBounds(),h=a.getSize().divideBy(2),u=I([a.min.add(i),a.max.subtract(n)]);if(!u.contains(r)){this._enforcingBounds=!0;var l=s.subtract(r),c=O(r.x+l.x,r.y+l.y);(r.xu.max.x)&&(c.x=s.x-l.x,l.x>0?c.x+=h.x-i.x:c.x-=h.x-n.x),(r.yu.max.y)&&(c.y=s.y-l.y,l.y>0?c.y+=h.y-i.y:c.y-=h.y-n.y),this.panTo(this.unproject(c),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=new R(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"===typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(e){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ee(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(M(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ee(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=te("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new A(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=j(t),i=O(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=I(this.project(a,n),this.project(r,n)).getSize(),l=pt?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new E(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new B(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"===typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(N(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(O(t),e)},layerPointToLatLng:function(t){var e=O(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(N(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(N(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(j(t))},distance:function(t,e){return this.options.crs.distance(N(t),N(e))},containerPointToLayerPoint:function(t){return O(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return O(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(O(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(N(t)))},mouseEventToContainerPoint:function(t){return Ie(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=$t(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Pe(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&pt,re(t,"leaflet-container"+(xt?" leaflet-touch":"")+(Pt?" leaflet-retina":"")+(X?" leaflet-oldie":"")+(at?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=Qt(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),_e(this._mapPane,new E(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(re(t.markerPane,"leaflet-zoom-hide"),re(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){_e(this._mapPane,new E(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return M(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){_e(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Te:Pe;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),pt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){M(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[s(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!He(r,t))break;if(n.push(i),o)break}if(r===this._container)break;r=r.parentNode}return n.length||a||o||!He(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!De(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||ve(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,i))).length){var s=n[0];"contextmenu"===i&&s.listens(i,!0)&&Oe(t);var r={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=pt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){ae(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=te("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Yt,i=this._proxy.style[e];de(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ee(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();de(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o))&&(T((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),!0)},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,re(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&ae(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),T((function(){this._moveEnd(!0)}),this))}}),Ve=C.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return re(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ee(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),qe=function(t){return new Ve(t)};Ue.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=te("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=te("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ee(this._controlCorners[t]);ee(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ge=Ve.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Pe(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("div");return i.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ke=Ve.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=te("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=te("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),ke(s),Pe(s,"click",Be),Pe(s,"click",o,this),Pe(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";ae(this._zoomInButton,e),ae(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&re(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&re(this._zoomInButton,e)}});Ue.mergeOptions({zoomControl:!0}),Ue.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ke,this.addControl(this.zoomControl))}));var Ye=Ve.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=te("div","leaflet-control-scale"),i=this.options;return this._addScales(i,"leaflet-control-scale-line",e),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=te("div",e,i)),t.imperial&&(this._iScale=te("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Je=Ve.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=te("div","leaflet-control-attribution"),ke(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}});Ue.mergeOptions({attributionControl:!0}),Ue.addInitHook((function(){this.options.attributionControl&&(new Je).addTo(this)})),Ve.Layers=Ge,Ve.Zoom=Ke,Ve.Scale=Ye,Ve.Attribution=Je,qe.layers=function(t,e,i){return new Ge(t,e,i)},qe.zoom=function(t){return new Ke(t)},qe.scale=function(t){return new Ye(t)},qe.attribution=function(t){return new Je(t)};var Xe=C.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Xe.addTo=function(t,e){return t.addHandler(e,this),this};var $e,Qe={Events:S},ti=xt?"touchstart mousedown":"mousedown",ei={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},ii={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ni=Z.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Pe(this._dragStartTarget,ti,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ni._dragging===this&&this.finishDrag(),Te(this._dragStartTarget,ti,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!se(this._element,"leaflet-zoom-anim")&&!(ni._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&(ni._dragging=this,this._preventOutline&&ve(this._element),fe(),Ht(),!this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=xe(this._element);this._startPoint=new E(e.clientX,e.clientY),this._parentScale=we(i),Pe(document,ii[t.type],this._onMove,this),Pe(document,ei[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new E(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)u&&(r=a,u=h);u>n&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(t,n,e,0,i-1);var o,s=[];for(o=0;oe&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ui(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function li(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new E(s,r)}function ci(t){return!f(t[0])||"object"!==typeof t[0][0]&&"undefined"!==typeof t[0][0]}function di(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ci(t)}var _i={simplify:oi,pointToSegmentDistance:si,closestPointOnSegment:function(t,e,i){return li(t,e,i)},clipSegment:ri,_getEdgeIntersection:ai,_getBitCode:hi,_sqClosestPointOnSegment:li,isFlat:ci,_flat:di};function pi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new R(a*i,t.x*i/n)}},vi={LonLat:fi,Mercator:gi,SphericalMercator:W},yi=e({},H,{code:"EPSG:3395",projection:gi,transformation:function(){var t=.5/(Math.PI*gi.R);return U(t,.5,-t,.5)}()}),xi=e({},H,{code:"EPSG:4326",projection:fi,transformation:U(1/180,1,-1/180,.5)}),wi=e({},D,{projection:fi,transformation:U(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});D.Earth=H,D.EPSG3395=yi,D.EPSG3857=V,D.EPSG900913=q,D.EPSG4326=xi,D.Simple=wi;var bi=Z.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ue.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=N(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new A,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ci(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ci(t),n=0,o=t.length;n=2&&e[0]instanceof R&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){ki.prototype._setLatLngs.call(this,t),ci(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ci(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new E(e,e);if(t=new B(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!==n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||ki.prototype._containsPoint.call(this,t,!0)}}),Bi=Li.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var r=0;ro?(e.height=o+"px",re(t,"leaflet-popup-scrolled")):ae(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();_e(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(Qt(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new E(this._containerLeft,-i-this._containerBottom);o._add(pe(this._container));var s=t.layerPointToContainerPoint(o),r=O(this.options.autoPanPadding),a=O(this.options.autoPanPaddingTopLeft||r),h=O(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+i+h.y>u.y&&(c=s.y+i-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Be(t)},_getAnchor:function(){return O(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ue.mergeOptions({closePopupOnClick:!0}),Ue.include({openPopup:function(t,e,i){return t instanceof Ji||(t=new Ji(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),bi.include({bindPopup:function(t,e){return t instanceof Ji?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new Ji(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Be(t),e instanceof Si?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Xi=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return xt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=te("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=O(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new E(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new E(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return j(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new A(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new E(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(ee(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){re(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,X&&this.options.opacity<1&&le(t,this.options.opacity),tt&&!et&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),_e(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(le(i.el,0),M(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(re(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),X||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new E(this._wrapX?a(t.x,this._wrapX):t.x,this._wrapY?a(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new B(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),tn=Qi.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Pt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"===typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),tt||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Pe(i,"load",n(this._tileOnLoad,this,e,i)),Pe(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:Pt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return m(this._url,e(i,this.options))},_tileOnLoad:function(t,e){X?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,e.complete||(e.src=v,ee(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return nt||e.el.setAttribute("src",v),Qi.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return Qi.prototype._tileReady.call(this,t,e,i)}});function en(t,e){return new tn(t,e)}var nn=tn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&Pt?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,tn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=I(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===xi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=tn.prototype.getTileUrl.call(this,t);return a+_(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});tn.WMS=nn,en.wms=function(t,e){return new nn(t,e)};var on=bi.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&re(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=pe(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e).subtract(s),a=o.multiplyBy(-i).add(n).add(o).subtract(r);pt?de(this._container,a,i):_e(this._container,a)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new B(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),sn=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){on.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Pe(t,"mousemove",this._onMouseMove,this),Pe(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Pe(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){M(this._redrawRequest),delete this._ctx,ee(this._container),Te(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Pt?2:1;_e(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Pt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){on.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"===typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hn={_initContainer:function(){this._container=te("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(on.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=an("shape");re(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=an("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ee(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=an("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=an("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ne(t._container)},_bringToBack:function(t){oe(t._container)}},un=zt?an:G,ln=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=un("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=un("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ee(this._container),Te(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),_e(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=un("path");t.options.className&&re(e,t.options.className),t.options.interactive&&re(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ee(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,K(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ne(t._path)},_bringToBack:function(t){oe(t._path)}});function cn(t){return Mt||zt?new ln(t):null}zt&&ln.include(hn),Ue.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&rn(t)||cn(t)}});var dn=Oi.extend({initialize:function(t,e){Oi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=j(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});ln.create=un,ln.pointsToPath=K,Bi.geometryToLayer=Ii,Bi.coordsToLatLng=ji,Bi.coordsToLatLngs=Ri,Bi.latLngToCoords=Ni,Bi.latLngsToCoords=Di,Bi.getFeature=Hi,Bi.asFeature=Wi,Ue.mergeOptions({boxZoom:!0});var _n=Xe.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Pe(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Te(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ee(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Ht(),fe(),this._startPoint=this._map.mouseEventToContainerPoint(t),Pe(document,{contextmenu:Be,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=te("div","leaflet-zoom-box",this._container),re(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new B(this._point,this._startPoint),i=e.getSize();_e(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(ee(this._box),ae(this._container,"leaflet-crosshair")),Wt(),ge(),Te(document,{contextmenu:Be,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new A(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ue.addInitHook("addHandler","boxZoom",_n),Ue.mergeOptions({doubleClickZoom:!0});var pn=Xe.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ue.addInitHook("addHandler","doubleClickZoom",pn),Ue.mergeOptions({dragging:!0,inertia:!et,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var mn=Xe.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ni(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}re(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){ae(this._map._container,"leaflet-grab"),ae(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=j(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Ue.addInitHook("addHandler","scrollWheelZoom",gn),Ue.mergeOptions({tap:!0,tapTolerance:15});var vn=Xe.extend({addHooks:function(){Pe(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Te(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Oe(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],i=e.target;this._startPos=this._newPos=new E(e.clientX,e.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&re(i,"leaflet-active"),this._holdTimeout=setTimeout(n((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Pe(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Te(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&ae(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new E(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents");i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}});!xt||yt&&!at||Ue.addInitHook("addHandler","tap",vn),Ue.mergeOptions({touchZoom:xt&&!et,bounceAtZoomLimits:!0});var yn=Xe.extend({addHooks:function(){re(this._map._container,"leaflet-touch-zoom"),Pe(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){ae(this._map._container,"leaflet-touch-zoom"),Te(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Pe(document,"touchmove",this._onTouchMove,this),Pe(document,"touchend",this._onTouchEnd,this),Oe(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),M(this._animRequest);var a=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=T(a,this,!0),Oe(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,M(this._animRequest),Te(document,"touchmove",this._onTouchMove,this),Te(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ue.addInitHook("addHandler","touchZoom",yn),Ue.BoxZoom=_n,Ue.DoubleClickZoom=pn,Ue.Drag=mn,Ue.Keyboard=fn,Ue.ScrollWheelZoom=gn,Ue.Tap=vn,Ue.TouchZoom=yn,t.version="1.7.1",t.Control=Ve,t.control=qe,t.Browser=St,t.Evented=Z,t.Mixin=Qe,t.Util=z,t.Class=C,t.Handler=Xe,t.extend=e,t.bind=n,t.stamp=s,t.setOptions=d,t.DomEvent=We,t.DomUtil=be,t.PosAnimation=Fe,t.Draggable=ni,t.LineUtil=_i,t.PolyUtil=mi,t.Point=E,t.point=O,t.Bounds=B,t.bounds=I,t.Transformation=F,t.transformation=U,t.Projection=vi,t.LatLng=R,t.latLng=N,t.LatLngBounds=A,t.latLngBounds=j,t.CRS=D,t.GeoJSON=Bi,t.geoJSON=Ui,t.geoJson=Vi,t.Layer=bi,t.LayerGroup=Pi,t.layerGroup=function(t,e){return new Pi(t,e)},t.FeatureGroup=Li,t.featureGroup=function(t,e){return new Li(t,e)},t.ImageOverlay=qi,t.imageOverlay=function(t,e,i){return new qi(t,e,i)},t.VideoOverlay=Gi,t.videoOverlay=function(t,e,i){return new Gi(t,e,i)},t.SVGOverlay=Ki,t.svgOverlay=function(t,e,i){return new Ki(t,e,i)},t.DivOverlay=Yi,t.Popup=Ji,t.popup=function(t,e){return new Ji(t,e)},t.Tooltip=Xi,t.tooltip=function(t,e){return new Xi(t,e)},t.Icon=Ti,t.icon=function(t){return new Ti(t)},t.DivIcon=$i,t.divIcon=function(t){return new $i(t)},t.Marker=Ci,t.marker=function(t,e){return new Ci(t,e)},t.TileLayer=tn,t.tileLayer=en,t.GridLayer=Qi,t.gridLayer=function(t){return new Qi(t)},t.SVG=ln,t.svg=cn,t.Renderer=on,t.Canvas=sn,t.canvas=rn,t.Path=Si,t.CircleMarker=Zi,t.circleMarker=function(t,e){return new Zi(t,e)},t.Circle=Ei,t.circle=function(t,e,i){return new Ei(t,e,i)},t.Polyline=ki,t.polyline=function(t,e){return new ki(t,e)},t.Polygon=Oi,t.polygon=function(t,e){return new Oi(t,e)},t.Rectangle=dn,t.rectangle=function(t,e){return new dn(t,e)},t.Map=Ue,t.map=function(t,e){return new Ue(t,e)};var xn=window.L;t.noConflict=function(){return window.L=xn,this},window.L=t}(e)},286:function(t,e,i){"use strict";i.d(e,"a",(function(){return o})),i.d(e,"b",(function(){return r})),i.d(e,"c",(function(){return a}));var n=i(1);const o=1,s=Object(n.b)(null),r=s.Provider;function a(){const t=Object(n.h)(s);if(null==t)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return t}},465:function(t,e,i){"use strict";i.d(e,"a",(function(){return o}));var n=i(286);i(1);function o(){return Object(n.c)().map}},466:function(t,e,i){"use strict";i.d(e,"a",(function(){return s}));var n=i(470),o=i(132);const s=Object(n.c)((function(t,e){let{bounds:i,...n}=t;const s=new o.Rectangle(i,n);return{instance:s,context:{...e,overlayContainer:s}}}),(function(t,e,i){e.bounds!==i.bounds&&t.setBounds(e.bounds)}))},467:function(t,e,i){"use strict";i.d(e,"a",(function(){return r}));var n=i(470),o=i(132),s=i(1);const r=Object(n.b)((function(t,e){return{instance:new o.Tooltip(t,e.overlayContainer),context:e}}),(function(t,e,i,n){const{onClose:o,onOpen:r}=i;Object(s.j)((function(){const i=e.overlayContainer;if(null==i)return;const{instance:s}=t,a=t=>{t.tooltip===s&&(s.update(),n(!0),null==r||r())},h=t=>{t.tooltip===s&&(n(!1),null==o||o())};return i.on({tooltipopen:a,tooltipclose:h}),i.bindTooltip(s),function(){i.off({tooltipopen:a,tooltipclose:h}),null!=i._map&&i.unbindTooltip()}}),[t,e,n,o,r])}))},468:function(t,e,i){"use strict";i.d(e,"a",(function(){return a}));var n=i(286),o=i(132),s=i(1);function r(){return(r=Object.assign||function(t){for(var e=1;e{if(null!==t.current&&null===i){const i=new o.Map(t.current,e);null!=e.center&&null!=e.zoom?i.setView(e.center,e.zoom):null!=e.bounds&&i.fitBounds(e.bounds,e.boundsOptions),null!=e.whenReady&&i.whenReady(e.whenReady),n(i)}},[t,i,e]),i}(d,c),p=Object(s.o)(!1);Object(s.j)(()=>{null!=_&&!1===p.current&&null!=l&&(p.current=!0,l(_))},[_,l]);const[m]=Object(s.p)({className:i,id:a,style:u}),f=Object(s.m)(()=>_?{__version:n.a,map:_}:null,[_]),g=f?s.e.createElement(n.b,{value:f},e):null!==h&&void 0!==h?h:null;return s.e.createElement("div",r({},m,{ref:d}),g)}},470:function(t,e,i){"use strict";i.d(e,"a",(function(){return _})),i.d(e,"b",(function(){return p})),i.d(e,"c",(function(){return m}));var n=i(1),o=i(286);function s(t){function e(e,i){const{instance:s,context:r}=t(e).current;return Object(n.k)(i,()=>s),null==e.children?null:n.e.createElement(o.b,{value:r},e.children)}return Object(n.f)(e)}function r(t,e){return null==e?function(e,i){return Object(n.o)(t(e,i))}:function(i,o){const s=Object(n.o)(t(i,o)),r=Object(n.o)(i),{instance:a}=s.current;return Object(n.j)((function(){r.current!==i&&(e(a,i,r.current),r.current=i)}),[a,i,o]),s}}function a(t,e){const i=Object(n.o)(e);Object(n.j)((function(){e!==i.current&&null!=t.attributionControl&&(null!=i.current&&t.attributionControl.removeAttribution(i.current),null!=e&&t.attributionControl.addAttribution(e)),i.current=e}),[t,e])}function h(t,e){const i=Object(n.o)();Object(n.j)((function(){return null!=e&&t.instance.on(e),i.current=e,function(){null!=i.current&&t.instance.off(i.current),i.current=null}}),[t,e])}function u(t,e){var i;const n=null!==(i=t.pane)&&void 0!==i?i:e.pane;return n?{...t,pane:n}:t}function l(t,e){Object(n.j)((function(){var i;return(null!==(i=e.layerContainer)&&void 0!==i?i:e.map).addLayer(t.instance),function(){var i;null==(i=e.layersControl)||i.removeLayer(t.instance),e.map.removeLayer(t.instance)}}),[e,t])}function c(t){return function(e){const i=Object(o.c)(),n=t(u(e,i),i);return a(i.map,e.attribution),h(n.current,e.eventHandlers),l(n.current,i),n}}function d(t){return function(e){const i=Object(o.c)(),s=t(u(e,i),i);return h(s.current,e.eventHandlers),l(s.current,i),function(t,e){const i=Object(n.o)();Object(n.j)((function(){if(e.pathOptions!==i.current){var n;const o=null!==(n=e.pathOptions)&&void 0!==n?n:{};t.instance.setStyle(o),i.current=o}}),[t,e])}(s.current,e),s}}function _(t,e){return s(c(r(t,e)))}function p(t,e){return function(t){function e(e,i){const[o,s]=Object(n.p)(!1),{instance:r}=t(e,s).current;Object(n.k)(i,()=>r),Object(n.j)((function(){o&&r.update()}),[r,o,e.children]);const a=r._contentNode;return a?Object(n.d)(e.children,a):null}return Object(n.f)(e)}(function(t,e){return function(i,n){const s=Object(o.c)(),r=t(u(i,s),s);return a(s.map,i.attribution),h(r.current,i.eventHandlers),e(r.current,s,i,n),r}}(r(t),e))}function m(t,e){return s(d(r(t,e)))}},474:function(t,e,i){"use strict";i.d(e,"a",(function(){return s}));var n=i(470),o=i(132);const s=Object(n.a)((function(t,e){let{bounds:i,url:n,...s}=t;const r=new o.ImageOverlay(n,i,s);return{instance:r,context:{...e,overlayContainer:r}}}),(function(t,e,i){!function(t,e,i){e.bounds instanceof o.LatLngBounds&&e.bounds!==i.bounds&&t.setBounds(e.bounds),null!=e.opacity&&e.opacity!==i.opacity&&t.setOpacity(e.opacity),null!=e.zIndex&&e.zIndex!==i.zIndex&&t.setZIndex(e.zIndex)}(t,e,i),e.url!==i.url&&t.setUrl(e.url)}))}}]); +//# sourceMappingURL=0.da263fb4.chunk.js.map \ No newline at end of file diff --git a/static/js/0.aea5108a.chunk.js.LICENSE.txt b/static/js/0.da263fb4.chunk.js.LICENSE.txt similarity index 100% rename from static/js/0.aea5108a.chunk.js.LICENSE.txt rename to static/js/0.da263fb4.chunk.js.LICENSE.txt diff --git a/static/js/0.aea5108a.chunk.js.map b/static/js/0.da263fb4.chunk.js.map similarity index 99% rename from static/js/0.aea5108a.chunk.js.map rename to static/js/0.da263fb4.chunk.js.map index b99831c07e..55fef7c25e 100644 --- a/static/js/0.aea5108a.chunk.js.map +++ b/static/js/0.da263fb4.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/core/Util.js","../../src/core/Class.js","../../src/core/Events.js","../../src/geometry/Point.js","../../src/geometry/Bounds.js","../../src/geo/LatLngBounds.js","../../src/geo/LatLng.js","../../src/geo/crs/CRS.js","../../src/geo/crs/CRS.Earth.js","../../src/geo/projection/Projection.SphericalMercator.js","../../src/geometry/Transformation.js","../../src/geo/crs/CRS.EPSG3857.js","../../src/layer/vector/SVG.Util.js","../../src/core/Browser.js","../../src/dom/DomEvent.Pointer.js","../../src/dom/DomEvent.DoubleTap.js","../../src/dom/DomUtil.js","../../src/dom/DomEvent.js","../../src/dom/PosAnimation.js","../../src/map/Map.js","../../src/control/Control.js","../../src/control/Control.Layers.js","../../src/control/Control.Zoom.js","../../src/control/Control.Scale.js","../../src/control/Control.Attribution.js","../../src/control/index.js","../../src/core/Handler.js","../../src/core/index.js","../../src/geometry/LineUtil.js","../../src/dom/Draggable.js","../../src/geometry/PolyUtil.js","../../src/geo/projection/Projection.LonLat.js","../../src/geo/projection/Projection.Mercator.js","../../src/geo/crs/CRS.EPSG3395.js","../../src/geo/crs/CRS.EPSG4326.js","../../src/geo/crs/CRS.Simple.js","../../src/geo/crs/index.js","../../src/layer/Layer.js","../../src/layer/LayerGroup.js","../../src/layer/FeatureGroup.js","../../src/layer/marker/Icon.js","../../src/layer/marker/Icon.Default.js","../../src/layer/marker/Marker.Drag.js","../../src/layer/marker/Marker.js","../../src/layer/vector/Path.js","../../src/layer/vector/CircleMarker.js","../../src/layer/vector/Circle.js","../../src/layer/vector/Polyline.js","../../src/layer/vector/Polygon.js","../../src/layer/GeoJSON.js","../../src/layer/ImageOverlay.js","../../src/layer/VideoOverlay.js","../../src/layer/SVGOverlay.js","../../src/layer/DivOverlay.js","../../src/layer/Popup.js","../../src/layer/Tooltip.js","../../src/layer/marker/DivIcon.js","../../src/layer/marker/index.js","../../src/layer/tile/GridLayer.js","../../src/layer/tile/TileLayer.js","../../src/layer/tile/TileLayer.WMS.js","../../src/layer/tile/index.js","../../src/layer/vector/Renderer.js","../../src/layer/vector/Canvas.js","../../src/layer/vector/SVG.VML.js","../../src/layer/vector/SVG.js","../../src/layer/vector/Renderer.getRenderer.js","../../src/layer/vector/Rectangle.js","../../src/layer/vector/index.js","../../src/layer/index.js","../../src/map/handler/Map.BoxZoom.js","../../src/map/handler/Map.DoubleClickZoom.js","../../src/map/handler/Map.Drag.js","../../src/map/handler/Map.Keyboard.js","../../src/map/handler/Map.ScrollWheelZoom.js","../../src/map/handler/Map.Tap.js","../../src/map/handler/Map.TouchZoom.js","../../src/map/index.js","../node_modules/@react-leaflet/core/esm/context.js","../node_modules/react-leaflet/esm/hooks.js","../node_modules/react-leaflet/esm/Rectangle.js","../node_modules/react-leaflet/esm/Tooltip.js","../node_modules/react-leaflet/esm/MapContainer.js","../node_modules/@react-leaflet/core/esm/component.js","../node_modules/@react-leaflet/core/esm/element.js","../node_modules/@react-leaflet/core/esm/attribution.js","../node_modules/@react-leaflet/core/esm/events.js","../node_modules/@react-leaflet/core/esm/pane.js","../node_modules/@react-leaflet/core/esm/layer.js","../node_modules/@react-leaflet/core/esm/path.js","../node_modules/@react-leaflet/core/esm/generic.js","../node_modules/@react-leaflet/core/esm/div-overlay.js","../node_modules/react-leaflet/esm/ImageOverlay.js","../node_modules/@react-leaflet/core/esm/media-overlay.js"],"names":["extend","dest","i","j","len","src","arguments","length","create","Object","F","proto","prototype","bind","fn","obj","slice","Array","apply","call","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","digits","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","key","value","Error","isArray","toString","array","el","emptyImageUrl","getPrefixed","name","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Class","props","NewClass","this","initialize","callInitHooks","parentProto","__super__","constructor","statics","includes","L","Mixin","Events","console","warn","stack","checkDeprecatedMixinEvents","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","init","on","types","type","_on","off","_off","_events","typeListeners","newListener","ctx","listeners","l","_firingCount","splice","fire","propagate","listens","event","target","sourceTarget","_propagateEvent","_eventParents","once","handler","addEventParent","removeEventParent","e","layer","propagatedFrom","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","Point","y","trunc","v","floor","ceil","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","bounds","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","sw2","ne2","sw","_southWest","ne","_northEast","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","precision","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","code","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","p","svg","style$1","documentElement","style","ie","ielt9","edge","navigator","webkit","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touch","L_NO_TOUCH","DocumentTouch","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","defineProperty","get","canvas","createElement","getContext","createSVGRect","vml","div","innerHTML","shape","firstChild","behavior","adj","toLowerCase","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","_pointers","_pointerDocListener","addPointerListener","onDown","MSPOINTER_TYPE_TOUCH","pointerType","preventDefault","_handlePointer","_globalPointerDown","_globalPointerMove","_globalPointerUp","_addPointerStart","onMove","MSPOINTER_TYPE_MOUSE","buttons","_addPointerMove","onUp","_addPointerEnd","pointerId","touches","changedTouches","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","_touchstart","_touchend","_pre","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","create$1","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","test","addClass","classes","setClass","removeClass","baseVal","correspondingElement","setOpacity","opacity","filter","filterName","filters","item","Enabled","Opacity","_setOpacityIE","setTransform","offset","pos","setPosition","_leaflet_pos","left","top","getPosition","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","element","tabIndex","restoreOutline","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","addOne","eventsKey","removeOne","browserFiresNativeDblClick","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","last","touch$$1","doubleTap","onTouchStart","isPrimary","now","delta","onTouchEnd","cancelBubble","prop","newTouch","button","passive","addDoubleTapListener","isExternalTarget","attachEvent","removePointerListener","touchstart","touchend","dblclick","removeDoubleTapListener","detachEvent","stopPropagation","originalEvent","_stopped","skipped","disableScrollPropagation","disableClickPropagation","fakeStop","returnValue","stop","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","detail","skipEvents","events","related","relatedTarget","err","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","elapsed","_runFrame","_easeOut","progress","t","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","noMoveStart","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","r","rho","sq","sinh","n","cosh","r0","u","start","S","_moveStart","frame","easeOut","_flyToFrame","_move","getScaleZoom","w","_moveEnd","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","halfPixelBounds","paddedBounds","diff","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_container","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","position","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","_getNewPixelOrigin","pinch","_getZoomSpan","remove$$1","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_simulated","_draggableMoved","_fireDOMEvent","_mouseEvents","synth","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","setAttribute","section","link","_layersLink","href","title","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","_expand","_collapse","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","pow10","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","setPrefix","removeAttribution","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","_lastCode","START","END","mousedown","pointerdown","MSPointerDown","MOVE","Draggable","clickTolerance","dragStartTarget","preventOutline$$1","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","which","_moving","first","sizedParent","_startPoint","_parentScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_animRequest","_lastEvent","_updatePosition","simplify","tolerance","sqTolerance","markers","Uint8Array","_simplifyDPStep","index","sqDist","maxSqDist","_sqClosestPointOnSegment","newPoints","_simplifyDP","reducedPoints","prev","_sqDist","_reducePoints","pointToSegmentDistance","p1","p2","clipSegment","useLastCode","codeOut","newCode","codeA","_getBitCode","codeB","_getEdgeIntersection","dx","dy","dot","isFlat","_flat","clipPolygon","clippedPoints","k","edges","_code","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","FeatureGroup","setStyle","bringToFront","bringToBack","Icon","popupAnchor","tooltipAnchor","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","path","MarkerDrag","marker","_marker","icon","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","draggable","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","result","flat","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","segment","parts","_simplifyPoints","_updatePoly","part","Polygon","f","area","pop","clipped","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","properties","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","crossOrigin","errorOverlayUrl","url","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","keepAspectRatio","muted","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","SVGOverlay","DivOverlay","_source","_removeTimeout","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","_prepareOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","openOn","openPopup","popup","closeOnClick","closePopupOnClick","preclick","_close","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","_onCloseButtonClick","whiteSpace","marginBottom","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","Tooltip","direction","permanent","sticky","tooltip","closeTooltip","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","bindTooltip","_tooltip","_initTooltipInteractions","unbindTooltip","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","isTooltipOpen","setTooltipContent","getTooltip","DivIcon","bgPos","Element","backgroundPosition","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","viewprereset","_invalidateAll","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_updateLevels","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","_clampZoom","noPrune","tileZoom","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","WebkitBackfaceVisibility","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","getAttribute","tilePoint","complete","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","ev","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","moving","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","canvas$1","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","create$2","SVG","zoomstart","_onZoomStart","_rootGroup","_svgSize","removeAttribute","svg$1","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","noInertia","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","touchmove","simulatedEvent","createEvent","_simulatedClick","initMouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","moveFn","video","CONTEXT_VERSION","LeafletContext","createContext","LeafletProvider","Provider","useLeafletContext","useContext","useMap","createPathComponent","_ref","instance","LeafletRectangle","overlayContainer","prevProps","createOverlayComponent","LeafletTooltip","setOpen","onClose","onOpen","useEffect","onTooltipOpen","onTooltipClose","tooltipopen","tooltipclose","_extends","assign","MapContainer","placeholder","whenCreated","mapRef","useRef","setMap","useState","LeafletMap","boundsOptions","useMapElement","createdRef","useMemo","__version","contents","React","ref","createContainerComponent","useElement","ContainerComponent","useImperativeHandle","forwardRef","createElementHook","updateElement","elementRef","propsRef","useAttribution","attributionRef","useEventHandlers","eventHandlers","eventHandlersRef","withPane","_props$pane","useLayerLifecycle","_context$layerContain","layerContainer","_context$layersContro","layersControl","createLayerHook","createPathHook","optionsRef","pathOptions","_props$pathOptions","usePathOptions","createLayerComponent","useLifecycle","OverlayComponent","contentNode","createPortal","createDivOverlayComponent","createDivOverlayHook","LeafletImageOverlay","updateMediaOverlay"],"mappings":"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","file":"static/js/0.aea5108a.chunk.js","sourcesContent":["/*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n// @function extend(dest: Object, src?: Object): Object\r\n// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\nexport function extend(dest) {\r\n\tvar i, j, len, src;\r\n\r\n\tfor (j = 1, len = arguments.length; j < len; j++) {\r\n\t\tsrc = arguments[j];\r\n\t\tfor (i in src) {\r\n\t\t\tdest[i] = src[i];\r\n\t\t}\r\n\t}\r\n\treturn dest;\r\n}\r\n\r\n// @function create(proto: Object, properties?: Object): Object\r\n// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\nexport var create = Object.create || (function () {\r\n\tfunction F() {}\r\n\treturn function (proto) {\r\n\t\tF.prototype = proto;\r\n\t\treturn new F();\r\n\t};\r\n})();\r\n\r\n// @function bind(fn: Function, …): Function\r\n// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n// Has a `L.bind()` shortcut.\r\nexport function bind(fn, obj) {\r\n\tvar slice = Array.prototype.slice;\r\n\r\n\tif (fn.bind) {\r\n\t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n\t}\r\n\r\n\tvar args = slice.call(arguments, 2);\r\n\r\n\treturn function () {\r\n\t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n\t};\r\n}\r\n\r\n// @property lastId: Number\r\n// Last unique ID used by [`stamp()`](#util-stamp)\r\nexport var lastId = 0;\r\n\r\n// @function stamp(obj: Object): Number\r\n// Returns the unique ID of an object, assigning it one if it doesn't have it.\r\nexport function stamp(obj) {\r\n\t/*eslint-disable */\r\n\tobj._leaflet_id = obj._leaflet_id || ++lastId;\r\n\treturn obj._leaflet_id;\r\n\t/* eslint-enable */\r\n}\r\n\r\n// @function throttle(fn: Function, time: Number, context: Object): Function\r\n// Returns a function which executes function `fn` with the given scope `context`\r\n// (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n// `fn` will be called no more than one time per given amount of `time`. The arguments\r\n// received by the bound function will be any arguments passed when binding the\r\n// function, followed by any arguments passed when invoking the bound function.\r\n// Has an `L.throttle` shortcut.\r\nexport function throttle(fn, time, context) {\r\n\tvar lock, args, wrapperFn, later;\r\n\r\n\tlater = function () {\r\n\t\t// reset lock and call if queued\r\n\t\tlock = false;\r\n\t\tif (args) {\r\n\t\t\twrapperFn.apply(context, args);\r\n\t\t\targs = false;\r\n\t\t}\r\n\t};\r\n\r\n\twrapperFn = function () {\r\n\t\tif (lock) {\r\n\t\t\t// called too soon, queue to call later\r\n\t\t\targs = arguments;\r\n\r\n\t\t} else {\r\n\t\t\t// call and lock until later\r\n\t\t\tfn.apply(context, arguments);\r\n\t\t\tsetTimeout(later, time);\r\n\t\t\tlock = true;\r\n\t\t}\r\n\t};\r\n\r\n\treturn wrapperFn;\r\n}\r\n\r\n// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n// Returns the number `num` modulo `range` in such a way so it lies within\r\n// `range[0]` and `range[1]`. The returned value will be always smaller than\r\n// `range[1]` unless `includeMax` is set to `true`.\r\nexport function wrapNum(x, range, includeMax) {\r\n\tvar max = range[1],\r\n\t min = range[0],\r\n\t d = max - min;\r\n\treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n}\r\n\r\n// @function falseFn(): Function\r\n// Returns a function which always returns `false`.\r\nexport function falseFn() { return false; }\r\n\r\n// @function formatNum(num: Number, digits?: Number): Number\r\n// Returns the number `num` rounded to `digits` decimals, or to 6 decimals by default.\r\nexport function formatNum(num, digits) {\r\n\tvar pow = Math.pow(10, (digits === undefined ? 6 : digits));\r\n\treturn Math.round(num * pow) / pow;\r\n}\r\n\r\n// @function trim(str: String): String\r\n// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\nexport function trim(str) {\r\n\treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n}\r\n\r\n// @function splitWords(str: String): String[]\r\n// Trims and splits the string on whitespace and returns the array of parts.\r\nexport function splitWords(str) {\r\n\treturn trim(str).split(/\\s+/);\r\n}\r\n\r\n// @function setOptions(obj: Object, options: Object): Object\r\n// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\nexport function setOptions(obj, options) {\r\n\tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n\t\tobj.options = obj.options ? create(obj.options) : {};\r\n\t}\r\n\tfor (var i in options) {\r\n\t\tobj.options[i] = options[i];\r\n\t}\r\n\treturn obj.options;\r\n}\r\n\r\n// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n// Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n// be appended at the end. If `uppercase` is `true`, the parameter names will\r\n// be uppercased (e.g. `'?A=foo&B=bar'`)\r\nexport function getParamString(obj, existingUrl, uppercase) {\r\n\tvar params = [];\r\n\tfor (var i in obj) {\r\n\t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n\t}\r\n\treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n}\r\n\r\nvar templateRe = /\\{ *([\\w_-]+) *\\}/g;\r\n\r\n// @function template(str: String, data: Object): String\r\n// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n// `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n// data values — they will be evaluated passing `data` as an argument.\r\nexport function template(str, data) {\r\n\treturn str.replace(templateRe, function (str, key) {\r\n\t\tvar value = data[key];\r\n\r\n\t\tif (value === undefined) {\r\n\t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n\t\t} else if (typeof value === 'function') {\r\n\t\t\tvalue = value(data);\r\n\t\t}\r\n\t\treturn value;\r\n\t});\r\n}\r\n\r\n// @function isArray(obj): Boolean\r\n// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\nexport var isArray = Array.isArray || function (obj) {\r\n\treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n};\r\n\r\n// @function indexOf(array: Array, el: Object): Number\r\n// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\nexport function indexOf(array, el) {\r\n\tfor (var i = 0; i < array.length; i++) {\r\n\t\tif (array[i] === el) { return i; }\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n// @property emptyImageUrl: String\r\n// Data URI string containing a base64-encoded empty GIF image.\r\n// Used as a hack to free memory from unused images on WebKit-powered\r\n// mobile devices (by setting image `src` to this string).\r\nexport var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n// inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\nfunction getPrefixed(name) {\r\n\treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n}\r\n\r\nvar lastTime = 0;\r\n\r\n// fallback for IE 7-8\r\nfunction timeoutDefer(fn) {\r\n\tvar time = +new Date(),\r\n\t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n\tlastTime = time + timeToCall;\r\n\treturn window.setTimeout(fn, timeToCall);\r\n}\r\n\r\nexport var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\nexport var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n\t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n// Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n// `context` if given. When `immediate` is set, `fn` is called immediately if\r\n// the browser doesn't have native support for\r\n// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n// otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\nexport function requestAnimFrame(fn, context, immediate) {\r\n\tif (immediate && requestFn === timeoutDefer) {\r\n\t\tfn.call(context);\r\n\t} else {\r\n\t\treturn requestFn.call(window, bind(fn, context));\r\n\t}\r\n}\r\n\r\n// @function cancelAnimFrame(id: Number): undefined\r\n// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\nexport function cancelAnimFrame(id) {\r\n\tif (id) {\r\n\t\tcancelFn.call(window, id);\r\n\t}\r\n}\r\n","import * as Util from './Util';\r\n\r\n// @class Class\r\n// @aka L.Class\r\n\r\n// @section\r\n// @uninheritable\r\n\r\n// Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\nexport function Class() {}\r\n\r\nClass.extend = function (props) {\r\n\r\n\t// @function extend(props: Object): Function\r\n\t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n\t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n\tvar NewClass = function () {\r\n\r\n\t\t// call the constructor\r\n\t\tif (this.initialize) {\r\n\t\t\tthis.initialize.apply(this, arguments);\r\n\t\t}\r\n\r\n\t\t// call all constructor hooks\r\n\t\tthis.callInitHooks();\r\n\t};\r\n\r\n\tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n\tvar proto = Util.create(parentProto);\r\n\tproto.constructor = NewClass;\r\n\r\n\tNewClass.prototype = proto;\r\n\r\n\t// inherit parent's statics\r\n\tfor (var i in this) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n\t\t\tNewClass[i] = this[i];\r\n\t\t}\r\n\t}\r\n\r\n\t// mix static properties into the class\r\n\tif (props.statics) {\r\n\t\tUtil.extend(NewClass, props.statics);\r\n\t\tdelete props.statics;\r\n\t}\r\n\r\n\t// mix includes into the prototype\r\n\tif (props.includes) {\r\n\t\tcheckDeprecatedMixinEvents(props.includes);\r\n\t\tUtil.extend.apply(null, [proto].concat(props.includes));\r\n\t\tdelete props.includes;\r\n\t}\r\n\r\n\t// merge options\r\n\tif (proto.options) {\r\n\t\tprops.options = Util.extend(Util.create(proto.options), props.options);\r\n\t}\r\n\r\n\t// mix given properties into the prototype\r\n\tUtil.extend(proto, props);\r\n\r\n\tproto._initHooks = [];\r\n\r\n\t// add method for calling all hooks\r\n\tproto.callInitHooks = function () {\r\n\r\n\t\tif (this._initHooksCalled) { return; }\r\n\r\n\t\tif (parentProto.callInitHooks) {\r\n\t\t\tparentProto.callInitHooks.call(this);\r\n\t\t}\r\n\r\n\t\tthis._initHooksCalled = true;\r\n\r\n\t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n\t\t\tproto._initHooks[i].call(this);\r\n\t\t}\r\n\t};\r\n\r\n\treturn NewClass;\r\n};\r\n\r\n\r\n// @function include(properties: Object): this\r\n// [Includes a mixin](#class-includes) into the current class.\r\nClass.include = function (props) {\r\n\tUtil.extend(this.prototype, props);\r\n\treturn this;\r\n};\r\n\r\n// @function mergeOptions(options: Object): this\r\n// [Merges `options`](#class-options) into the defaults of the class.\r\nClass.mergeOptions = function (options) {\r\n\tUtil.extend(this.prototype.options, options);\r\n\treturn this;\r\n};\r\n\r\n// @function addInitHook(fn: Function): this\r\n// Adds a [constructor hook](#class-constructor-hooks) to the class.\r\nClass.addInitHook = function (fn) { // (Function) || (String, args...)\r\n\tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n\tvar init = typeof fn === 'function' ? fn : function () {\r\n\t\tthis[fn].apply(this, args);\r\n\t};\r\n\r\n\tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n\tthis.prototype._initHooks.push(init);\r\n\treturn this;\r\n};\r\n\r\nfunction checkDeprecatedMixinEvents(includes) {\r\n\tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n\tincludes = Util.isArray(includes) ? includes : [includes];\r\n\r\n\tfor (var i = 0; i < includes.length; i++) {\r\n\t\tif (includes[i] === L.Mixin.Events) {\r\n\t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n\t\t\t\t'this property will be removed in future releases, ' +\r\n\t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n\t\t}\r\n\t}\r\n}\r\n","import {Class} from './Class';\r\nimport * as Util from './Util';\r\n\r\n/*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\nexport var Events = {\r\n\t/* @method on(type: String, fn: Function, context?: Object): this\r\n\t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n\t *\r\n\t * @alternative\r\n\t * @method on(eventMap: Object): this\r\n\t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\t */\r\n\ton: function (types, fn, context) {\r\n\r\n\t\t// types can be a map of types/handlers\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\t// we don't process space-separated events here for performance;\r\n\t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n\t\t\t\tthis._on(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// types can be a string of space-separated words\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._on(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* @method off(type: String, fn?: Function, context?: Object): this\r\n\t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n\t *\r\n\t * @alternative\r\n\t * @method off(eventMap: Object): this\r\n\t * Removes a set of type/listener pairs.\r\n\t *\r\n\t * @alternative\r\n\t * @method off: this\r\n\t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n\t */\r\n\toff: function (types, fn, context) {\r\n\r\n\t\tif (!types) {\r\n\t\t\t// clear all listeners if called without arguments\r\n\t\t\tdelete this._events;\r\n\r\n\t\t} else if (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis._off(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._off(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// attach listener (without syntactic sugar now)\r\n\t_on: function (type, fn, context) {\r\n\t\tthis._events = this._events || {};\r\n\r\n\t\t/* get/init listeners for type */\r\n\t\tvar typeListeners = this._events[type];\r\n\t\tif (!typeListeners) {\r\n\t\t\ttypeListeners = [];\r\n\t\t\tthis._events[type] = typeListeners;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\t// Less memory footprint.\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\t\tvar newListener = {fn: fn, ctx: context},\r\n\t\t listeners = typeListeners;\r\n\r\n\t\t// check if fn already there\r\n\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlisteners.push(newListener);\r\n\t},\r\n\r\n\t_off: function (type, fn, context) {\r\n\t\tvar listeners,\r\n\t\t i,\r\n\t\t len;\r\n\r\n\t\tif (!this._events) { return; }\r\n\r\n\t\tlisteners = this._events[type];\r\n\r\n\t\tif (!listeners) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!fn) {\r\n\t\t\t// Set all removed listeners to noop so they are not called if remove happens in fire\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tlisteners[i].fn = Util.falseFn;\r\n\t\t\t}\r\n\t\t\t// clear all listeners for a type if function isn't specified\r\n\t\t\tdelete this._events[type];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\r\n\t\tif (listeners) {\r\n\r\n\t\t\t// find fn and remove it\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tvar l = listeners[i];\r\n\t\t\t\tif (l.ctx !== context) { continue; }\r\n\t\t\t\tif (l.fn === fn) {\r\n\r\n\t\t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n\t\t\t\t\tl.fn = Util.falseFn;\r\n\r\n\t\t\t\t\tif (this._firingCount) {\r\n\t\t\t\t\t\t/* copy array in case events are being fired */\r\n\t\t\t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlisteners.splice(i, 1);\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n\t// Fires an event of the specified type. You can optionally provide an data\r\n\t// object — the first argument of the listener function will contain its\r\n\t// properties. The event can optionally be propagated to event parents.\r\n\tfire: function (type, data, propagate) {\r\n\t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n\t\tvar event = Util.extend({}, data, {\r\n\t\t\ttype: type,\r\n\t\t\ttarget: this,\r\n\t\t\tsourceTarget: data && data.sourceTarget || this\r\n\t\t});\r\n\r\n\t\tif (this._events) {\r\n\t\t\tvar listeners = this._events[type];\r\n\r\n\t\t\tif (listeners) {\r\n\t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n\t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tvar l = listeners[i];\r\n\t\t\t\t\tl.fn.call(l.ctx || this, event);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._firingCount--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// propagate the event to parents (set with addEventParent)\r\n\t\t\tthis._propagateEvent(event);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method listens(type: String): Boolean\r\n\t// Returns `true` if a particular event type has any listeners attached to it.\r\n\tlistens: function (type, propagate) {\r\n\t\tvar listeners = this._events && this._events[type];\r\n\t\tif (listeners && listeners.length) { return true; }\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// also check parents for listeners if event propagates\r\n\t\t\tfor (var id in this._eventParents) {\r\n\t\t\t\tif (this._eventParents[id].listens(type, propagate)) { return true; }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t// @method once(…): this\r\n\t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n\tonce: function (types, fn, context) {\r\n\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis.once(type, types[type], fn);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar handler = Util.bind(function () {\r\n\t\t\tthis\r\n\t\t\t .off(types, fn, context)\r\n\t\t\t .off(types, handler, context);\r\n\t\t}, this);\r\n\r\n\t\t// add a listener that's executed once and removed after that\r\n\t\treturn this\r\n\t\t .on(types, fn, context)\r\n\t\t .on(types, handler, context);\r\n\t},\r\n\r\n\t// @method addEventParent(obj: Evented): this\r\n\t// Adds an event parent - an `Evented` that will receive propagated events\r\n\taddEventParent: function (obj) {\r\n\t\tthis._eventParents = this._eventParents || {};\r\n\t\tthis._eventParents[Util.stamp(obj)] = obj;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeEventParent(obj: Evented): this\r\n\t// Removes an event parent, so it will stop receiving propagated events\r\n\tremoveEventParent: function (obj) {\r\n\t\tif (this._eventParents) {\r\n\t\t\tdelete this._eventParents[Util.stamp(obj)];\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_propagateEvent: function (e) {\r\n\t\tfor (var id in this._eventParents) {\r\n\t\t\tthis._eventParents[id].fire(e.type, Util.extend({\r\n\t\t\t\tlayer: e.target,\r\n\t\t\t\tpropagatedFrom: e.target\r\n\t\t\t}, e), true);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// aliases; we should ditch those eventually\r\n\r\n// @method addEventListener(…): this\r\n// Alias to [`on(…)`](#evented-on)\r\nEvents.addEventListener = Events.on;\r\n\r\n// @method removeEventListener(…): this\r\n// Alias to [`off(…)`](#evented-off)\r\n\r\n// @method clearAllEventListeners(…): this\r\n// Alias to [`off()`](#evented-off)\r\nEvents.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n// @method addOneTimeEventListener(…): this\r\n// Alias to [`once(…)`](#evented-once)\r\nEvents.addOneTimeEventListener = Events.once;\r\n\r\n// @method fireEvent(…): this\r\n// Alias to [`fire(…)`](#evented-fire)\r\nEvents.fireEvent = Events.fire;\r\n\r\n// @method hasEventListeners(…): Boolean\r\n// Alias to [`listens(…)`](#evented-listens)\r\nEvents.hasEventListeners = Events.listens;\r\n\r\nexport var Evented = Class.extend(Events);\r\n","import {isArray, formatNum} from '../core/Util';\r\n\r\n/*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Point(x, y, round) {\r\n\t// @property x: Number; The `x` coordinate of the point\r\n\tthis.x = (round ? Math.round(x) : x);\r\n\t// @property y: Number; The `y` coordinate of the point\r\n\tthis.y = (round ? Math.round(y) : y);\r\n}\r\n\r\nvar trunc = Math.trunc || function (v) {\r\n\treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n};\r\n\r\nPoint.prototype = {\r\n\r\n\t// @method clone(): Point\r\n\t// Returns a copy of the current point.\r\n\tclone: function () {\r\n\t\treturn new Point(this.x, this.y);\r\n\t},\r\n\r\n\t// @method add(otherPoint: Point): Point\r\n\t// Returns the result of addition of the current and the given points.\r\n\tadd: function (point) {\r\n\t\t// non-destructive, returns a new point\r\n\t\treturn this.clone()._add(toPoint(point));\r\n\t},\r\n\r\n\t_add: function (point) {\r\n\t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n\t\tthis.x += point.x;\r\n\t\tthis.y += point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method subtract(otherPoint: Point): Point\r\n\t// Returns the result of subtraction of the given point from the current.\r\n\tsubtract: function (point) {\r\n\t\treturn this.clone()._subtract(toPoint(point));\r\n\t},\r\n\r\n\t_subtract: function (point) {\r\n\t\tthis.x -= point.x;\r\n\t\tthis.y -= point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method divideBy(num: Number): Point\r\n\t// Returns the result of division of the current point by the given number.\r\n\tdivideBy: function (num) {\r\n\t\treturn this.clone()._divideBy(num);\r\n\t},\r\n\r\n\t_divideBy: function (num) {\r\n\t\tthis.x /= num;\r\n\t\tthis.y /= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method multiplyBy(num: Number): Point\r\n\t// Returns the result of multiplication of the current point by the given number.\r\n\tmultiplyBy: function (num) {\r\n\t\treturn this.clone()._multiplyBy(num);\r\n\t},\r\n\r\n\t_multiplyBy: function (num) {\r\n\t\tthis.x *= num;\r\n\t\tthis.y *= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method scaleBy(scale: Point): Point\r\n\t// Multiply each coordinate of the current point by each coordinate of\r\n\t// `scale`. In linear algebra terms, multiply the point by the\r\n\t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n\t// defined by `scale`.\r\n\tscaleBy: function (point) {\r\n\t\treturn new Point(this.x * point.x, this.y * point.y);\r\n\t},\r\n\r\n\t// @method unscaleBy(scale: Point): Point\r\n\t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n\t// each coordinate of `scale`.\r\n\tunscaleBy: function (point) {\r\n\t\treturn new Point(this.x / point.x, this.y / point.y);\r\n\t},\r\n\r\n\t// @method round(): Point\r\n\t// Returns a copy of the current point with rounded coordinates.\r\n\tround: function () {\r\n\t\treturn this.clone()._round();\r\n\t},\r\n\r\n\t_round: function () {\r\n\t\tthis.x = Math.round(this.x);\r\n\t\tthis.y = Math.round(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method floor(): Point\r\n\t// Returns a copy of the current point with floored coordinates (rounded down).\r\n\tfloor: function () {\r\n\t\treturn this.clone()._floor();\r\n\t},\r\n\r\n\t_floor: function () {\r\n\t\tthis.x = Math.floor(this.x);\r\n\t\tthis.y = Math.floor(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method ceil(): Point\r\n\t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n\tceil: function () {\r\n\t\treturn this.clone()._ceil();\r\n\t},\r\n\r\n\t_ceil: function () {\r\n\t\tthis.x = Math.ceil(this.x);\r\n\t\tthis.y = Math.ceil(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method trunc(): Point\r\n\t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n\ttrunc: function () {\r\n\t\treturn this.clone()._trunc();\r\n\t},\r\n\r\n\t_trunc: function () {\r\n\t\tthis.x = trunc(this.x);\r\n\t\tthis.y = trunc(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method distanceTo(otherPoint: Point): Number\r\n\t// Returns the cartesian distance between the current and the given points.\r\n\tdistanceTo: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\tvar x = point.x - this.x,\r\n\t\t y = point.y - this.y;\r\n\r\n\t\treturn Math.sqrt(x * x + y * y);\r\n\t},\r\n\r\n\t// @method equals(otherPoint: Point): Boolean\r\n\t// Returns `true` if the given point has the same coordinates.\r\n\tequals: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn point.x === this.x &&\r\n\t\t point.y === this.y;\r\n\t},\r\n\r\n\t// @method contains(otherPoint: Point): Boolean\r\n\t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n\tcontains: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n\t\t Math.abs(point.y) <= Math.abs(this.y);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point for debugging purposes.\r\n\ttoString: function () {\r\n\t\treturn 'Point(' +\r\n\t\t formatNum(this.x) + ', ' +\r\n\t\t formatNum(this.y) + ')';\r\n\t}\r\n};\r\n\r\n// @factory L.point(x: Number, y: Number, round?: Boolean)\r\n// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Number[])\r\n// Expects an array of the form `[x, y]` instead.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Object)\r\n// Expects a plain object of the form `{x: Number, y: Number}` instead.\r\nexport function toPoint(x, y, round) {\r\n\tif (x instanceof Point) {\r\n\t\treturn x;\r\n\t}\r\n\tif (isArray(x)) {\r\n\t\treturn new Point(x[0], x[1]);\r\n\t}\r\n\tif (x === undefined || x === null) {\r\n\t\treturn x;\r\n\t}\r\n\tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n\t\treturn new Point(x.x, x.y);\r\n\t}\r\n\treturn new Point(x, y, round);\r\n}\r\n","import {Point, toPoint} from './Point';\r\n\r\n/*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Bounds(a, b) {\r\n\tif (!a) { return; }\r\n\r\n\tvar points = b ? [a, b] : a;\r\n\r\n\tfor (var i = 0, len = points.length; i < len; i++) {\r\n\t\tthis.extend(points[i]);\r\n\t}\r\n}\r\n\r\nBounds.prototype = {\r\n\t// @method extend(point: Point): this\r\n\t// Extends the bounds to contain the given point.\r\n\textend: function (point) { // (Point)\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\t// @property min: Point\r\n\t\t// The top left corner of the rectangle.\r\n\t\t// @property max: Point\r\n\t\t// The bottom right corner of the rectangle.\r\n\t\tif (!this.min && !this.max) {\r\n\t\t\tthis.min = point.clone();\r\n\t\t\tthis.max = point.clone();\r\n\t\t} else {\r\n\t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n\t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n\t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n\t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getCenter(round?: Boolean): Point\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function (round) {\r\n\t\treturn new Point(\r\n\t\t (this.min.x + this.max.x) / 2,\r\n\t\t (this.min.y + this.max.y) / 2, round);\r\n\t},\r\n\r\n\t// @method getBottomLeft(): Point\r\n\t// Returns the bottom-left point of the bounds.\r\n\tgetBottomLeft: function () {\r\n\t\treturn new Point(this.min.x, this.max.y);\r\n\t},\r\n\r\n\t// @method getTopRight(): Point\r\n\t// Returns the top-right point of the bounds.\r\n\tgetTopRight: function () { // -> Point\r\n\t\treturn new Point(this.max.x, this.min.y);\r\n\t},\r\n\r\n\t// @method getTopLeft(): Point\r\n\t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n\tgetTopLeft: function () {\r\n\t\treturn this.min; // left, top\r\n\t},\r\n\r\n\t// @method getBottomRight(): Point\r\n\t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n\tgetBottomRight: function () {\r\n\t\treturn this.max; // right, bottom\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the size of the given bounds\r\n\tgetSize: function () {\r\n\t\treturn this.max.subtract(this.min);\r\n\t},\r\n\r\n\t// @method contains(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\t// @alternative\r\n\t// @method contains(point: Point): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) {\r\n\t\tvar min, max;\r\n\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n\t\t\tobj = toPoint(obj);\r\n\t\t} else {\r\n\t\t\tobj = toBounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof Bounds) {\r\n\t\t\tmin = obj.min;\r\n\t\t\tmax = obj.max;\r\n\t\t} else {\r\n\t\t\tmin = max = obj;\r\n\t\t}\r\n\r\n\t\treturn (min.x >= this.min.x) &&\r\n\t\t (max.x <= this.max.x) &&\r\n\t\t (min.y >= this.min.y) &&\r\n\t\t (max.y <= this.max.y);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n\t// intersect if they have at least one point in common.\r\n\tintersects: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n\t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n\t\treturn xIntersects && yIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n\t// overlap if their intersection is an area.\r\n\toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n\t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n\t\treturn xOverlaps && yOverlaps;\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this.min && this.max);\r\n\t}\r\n};\r\n\r\n\r\n// @factory L.bounds(corner1: Point, corner2: Point)\r\n// Creates a Bounds object from two corners coordinate pairs.\r\n// @alternative\r\n// @factory L.bounds(points: Point[])\r\n// Creates a Bounds object from the given array of points.\r\nexport function toBounds(a, b) {\r\n\tif (!a || a instanceof Bounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new Bounds(a, b);\r\n}\r\n","import {LatLng, toLatLng} from './LatLng';\r\n\r\n/*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n\tif (!corner1) { return; }\r\n\r\n\tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tthis.extend(latlngs[i]);\r\n\t}\r\n}\r\n\r\nLatLngBounds.prototype = {\r\n\r\n\t// @method extend(latlng: LatLng): this\r\n\t// Extend the bounds to contain the given point\r\n\r\n\t// @alternative\r\n\t// @method extend(otherBounds: LatLngBounds): this\r\n\t// Extend the bounds to contain the given bounds\r\n\textend: function (obj) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLng) {\r\n\t\t\tsw2 = obj;\r\n\t\t\tne2 = obj;\r\n\r\n\t\t} else if (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj._southWest;\r\n\t\t\tne2 = obj._northEast;\r\n\r\n\t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n\t\t} else {\r\n\t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n\t\t}\r\n\r\n\t\tif (!sw && !ne) {\r\n\t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n\t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n\t\t} else {\r\n\t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n\t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n\t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n\t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method pad(bufferRatio: Number): LatLngBounds\r\n\t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n\t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n\t// Negative values will retract the bounds.\r\n\tpad: function (bufferRatio) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n\t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n\t\treturn new LatLngBounds(\r\n\t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n\t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n\t},\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function () {\r\n\t\treturn new LatLng(\r\n\t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n\t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n\t},\r\n\r\n\t// @method getSouthWest(): LatLng\r\n\t// Returns the south-west point of the bounds.\r\n\tgetSouthWest: function () {\r\n\t\treturn this._southWest;\r\n\t},\r\n\r\n\t// @method getNorthEast(): LatLng\r\n\t// Returns the north-east point of the bounds.\r\n\tgetNorthEast: function () {\r\n\t\treturn this._northEast;\r\n\t},\r\n\r\n\t// @method getNorthWest(): LatLng\r\n\t// Returns the north-west point of the bounds.\r\n\tgetNorthWest: function () {\r\n\t\treturn new LatLng(this.getNorth(), this.getWest());\r\n\t},\r\n\r\n\t// @method getSouthEast(): LatLng\r\n\t// Returns the south-east point of the bounds.\r\n\tgetSouthEast: function () {\r\n\t\treturn new LatLng(this.getSouth(), this.getEast());\r\n\t},\r\n\r\n\t// @method getWest(): Number\r\n\t// Returns the west longitude of the bounds\r\n\tgetWest: function () {\r\n\t\treturn this._southWest.lng;\r\n\t},\r\n\r\n\t// @method getSouth(): Number\r\n\t// Returns the south latitude of the bounds\r\n\tgetSouth: function () {\r\n\t\treturn this._southWest.lat;\r\n\t},\r\n\r\n\t// @method getEast(): Number\r\n\t// Returns the east longitude of the bounds\r\n\tgetEast: function () {\r\n\t\treturn this._northEast.lng;\r\n\t},\r\n\r\n\t// @method getNorth(): Number\r\n\t// Returns the north latitude of the bounds\r\n\tgetNorth: function () {\r\n\t\treturn this._northEast.lat;\r\n\t},\r\n\r\n\t// @method contains(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\r\n\t// @alternative\r\n\t// @method contains (latlng: LatLng): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n\t\t\tobj = toLatLng(obj);\r\n\t\t} else {\r\n\t\t\tobj = toLatLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj.getSouthWest();\r\n\t\t\tne2 = obj.getNorthEast();\r\n\t\t} else {\r\n\t\t\tsw2 = ne2 = obj;\r\n\t\t}\r\n\r\n\t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n\t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n\tintersects: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n\t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n\t\treturn latIntersects && lngIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n\toverlaps: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n\t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n\t\treturn latOverlaps && lngOverlaps;\r\n\t},\r\n\r\n\t// @method toBBoxString(): String\r\n\t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n\ttoBBoxString: function () {\r\n\t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n\t},\r\n\r\n\t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (bounds, maxMargin) {\r\n\t\tif (!bounds) { return false; }\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n\t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n\t},\r\n\r\n\t// @method isValid(): Boolean\r\n\t// Returns `true` if the bounds are properly initialized.\r\n\tisValid: function () {\r\n\t\treturn !!(this._southWest && this._northEast);\r\n\t}\r\n};\r\n\r\n// TODO International date line?\r\n\r\n// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n// @alternative\r\n// @factory L.latLngBounds(latlngs: LatLng[])\r\n// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\nexport function toLatLngBounds(a, b) {\r\n\tif (a instanceof LatLngBounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new LatLngBounds(a, b);\r\n}\r\n","import * as Util from '../core/Util';\r\nimport {Earth} from './crs/CRS.Earth';\r\nimport {toLatLngBounds} from './LatLngBounds';\r\n\r\n/* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLng(lat, lng, alt) {\r\n\tif (isNaN(lat) || isNaN(lng)) {\r\n\t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n\t}\r\n\r\n\t// @property lat: Number\r\n\t// Latitude in degrees\r\n\tthis.lat = +lat;\r\n\r\n\t// @property lng: Number\r\n\t// Longitude in degrees\r\n\tthis.lng = +lng;\r\n\r\n\t// @property alt: Number\r\n\t// Altitude in meters (optional)\r\n\tif (alt !== undefined) {\r\n\t\tthis.alt = +alt;\r\n\t}\r\n}\r\n\r\nLatLng.prototype = {\r\n\t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (obj, maxMargin) {\r\n\t\tif (!obj) { return false; }\r\n\r\n\t\tobj = toLatLng(obj);\r\n\r\n\t\tvar margin = Math.max(\r\n\t\t Math.abs(this.lat - obj.lat),\r\n\t\t Math.abs(this.lng - obj.lng));\r\n\r\n\t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point (for debugging purposes).\r\n\ttoString: function (precision) {\r\n\t\treturn 'LatLng(' +\r\n\t\t Util.formatNum(this.lat, precision) + ', ' +\r\n\t\t Util.formatNum(this.lng, precision) + ')';\r\n\t},\r\n\r\n\t// @method distanceTo(otherLatLng: LatLng): Number\r\n\t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n\tdistanceTo: function (other) {\r\n\t\treturn Earth.distance(this, toLatLng(other));\r\n\t},\r\n\r\n\t// @method wrap(): LatLng\r\n\t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n\twrap: function () {\r\n\t\treturn Earth.wrapLatLng(this);\r\n\t},\r\n\r\n\t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n\t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n\ttoBounds: function (sizeInMeters) {\r\n\t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n\t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n\t\treturn toLatLngBounds(\r\n\t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n\t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n\t}\r\n};\r\n\r\n\r\n\r\n// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Array): LatLng\r\n// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Object): LatLng\r\n// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\nexport function toLatLng(a, b, c) {\r\n\tif (a instanceof LatLng) {\r\n\t\treturn a;\r\n\t}\r\n\tif (Util.isArray(a) && typeof a[0] !== 'object') {\r\n\t\tif (a.length === 3) {\r\n\t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n\t\t}\r\n\t\tif (a.length === 2) {\r\n\t\t\treturn new LatLng(a[0], a[1]);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\tif (a === undefined || a === null) {\r\n\t\treturn a;\r\n\t}\r\n\tif (typeof a === 'object' && 'lat' in a) {\r\n\t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n\t}\r\n\tif (b === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn new LatLng(a, b, c);\r\n}\r\n","\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {LatLng} from '../LatLng';\r\nimport {LatLngBounds} from '../LatLngBounds';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](http://en.wikipedia.org/wiki/Coordinate_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\nexport var CRS = {\r\n\t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n\t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n\tlatLngToPoint: function (latlng, zoom) {\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n\t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n\t// zoom into geographical coordinates.\r\n\tpointToLatLng: function (point, zoom) {\r\n\t\tvar scale = this.scale(zoom),\r\n\t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng): Point\r\n\t// Projects geographical coordinates into coordinates in units accepted for\r\n\t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n\tproject: function (latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\t// @method unproject(point: Point): LatLng\r\n\t// Given a projected coordinate returns the corresponding LatLng.\r\n\t// The inverse of `project`.\r\n\tunproject: function (point) {\r\n\t\treturn this.projection.unproject(point);\r\n\t},\r\n\r\n\t// @method scale(zoom: Number): Number\r\n\t// Returns the scale used when transforming projected coordinates into\r\n\t// pixel coordinates for a particular zoom. For example, it returns\r\n\t// `256 * 2^zoom` for Mercator-based CRS.\r\n\tscale: function (zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\t// @method zoom(scale: Number): Number\r\n\t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n\t// factor of `scale`.\r\n\tzoom: function (scale) {\r\n\t\treturn Math.log(scale / 256) / Math.LN2;\r\n\t},\r\n\r\n\t// @method getProjectedBounds(zoom: Number): Bounds\r\n\t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n\tgetProjectedBounds: function (zoom) {\r\n\t\tif (this.infinite) { return null; }\r\n\r\n\t\tvar b = this.projection.bounds,\r\n\t\t s = this.scale(zoom),\r\n\t\t min = this.transformation.transform(b.min, s),\r\n\t\t max = this.transformation.transform(b.max, s);\r\n\r\n\t\treturn new Bounds(min, max);\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates.\r\n\r\n\t// @property code: String\r\n\t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n\t//\r\n\t// @property wrapLng: Number[]\r\n\t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n\t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n\t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n\t//\r\n\t// @property wrapLat: Number[]\r\n\t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n\t// wrapLng: [min, max],\r\n\t// wrapLat: [min, max],\r\n\r\n\t// @property infinite: Boolean\r\n\t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n\tinfinite: false,\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n\t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n\twrapLatLng: function (latlng) {\r\n\t\tvar lng = this.wrapLng ? Util.wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n\t\t lat = this.wrapLat ? Util.wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n\t\t alt = latlng.alt;\r\n\r\n\t\treturn new LatLng(lat, lng, alt);\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n\t// that its center is within the CRS's bounds.\r\n\t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n\twrapLatLngBounds: function (bounds) {\r\n\t\tvar center = bounds.getCenter(),\r\n\t\t newCenter = this.wrapLatLng(center),\r\n\t\t latShift = center.lat - newCenter.lat,\r\n\t\t lngShift = center.lng - newCenter.lng;\r\n\r\n\t\tif (latShift === 0 && lngShift === 0) {\r\n\t\t\treturn bounds;\r\n\t\t}\r\n\r\n\t\tvar sw = bounds.getSouthWest(),\r\n\t\t ne = bounds.getNorthEast(),\r\n\t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n\t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n\t\treturn new LatLngBounds(newSw, newNe);\r\n\t}\r\n};\r\n","import {CRS} from './CRS';\nimport * as Util from '../../core/Util';\n\n/*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\nexport var Earth = Util.extend({}, CRS, {\n\twrapLng: [-180, 180],\n\n\t// Mean Earth Radius, as recommended for use by\n\t// the International Union of Geodesy and Geophysics,\n\t// see http://rosettacode.org/wiki/Haversine_formula\n\tR: 6371000,\n\n\t// distance between two geographical points using spherical law of cosines approximation\n\tdistance: function (latlng1, latlng2) {\n\t\tvar rad = Math.PI / 180,\n\t\t lat1 = latlng1.lat * rad,\n\t\t lat2 = latlng2.lat * rad,\n\t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n\t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n\t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n\t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\t\treturn this.R * c;\n\t}\n});\n","import {LatLng} from '../LatLng';\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {Point} from '../../geometry/Point';\r\n\r\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\nvar earthRadius = 6378137;\r\n\r\nexport var SphericalMercator = {\r\n\r\n\tR: earthRadius,\r\n\tMAX_LATITUDE: 85.0511287798,\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t sin = Math.sin(lat * d);\r\n\r\n\t\treturn new Point(\r\n\t\t\tthis.R * latlng.lng * d,\r\n\t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI;\r\n\r\n\t\treturn new LatLng(\r\n\t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n\t\t\tpoint.x * d / this.R);\r\n\t},\r\n\r\n\tbounds: (function () {\r\n\t\tvar d = earthRadius * Math.PI;\r\n\t\treturn new Bounds([-d, -d], [d, d]);\r\n\t})()\r\n};\r\n","import {Point} from './Point';\r\nimport * as Util from '../core/Util';\r\n\r\n/*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Creates a `Transformation` object with the given coefficients.\r\nexport function Transformation(a, b, c, d) {\r\n\tif (Util.isArray(a)) {\r\n\t\t// use array properties\r\n\t\tthis._a = a[0];\r\n\t\tthis._b = a[1];\r\n\t\tthis._c = a[2];\r\n\t\tthis._d = a[3];\r\n\t\treturn;\r\n\t}\r\n\tthis._a = a;\r\n\tthis._b = b;\r\n\tthis._c = c;\r\n\tthis._d = d;\r\n}\r\n\r\nTransformation.prototype = {\r\n\t// @method transform(point: Point, scale?: Number): Point\r\n\t// Returns a transformed point, optionally multiplied by the given scale.\r\n\t// Only accepts actual `L.Point` instances, not arrays.\r\n\ttransform: function (point, scale) { // (Point, Number) -> Point\r\n\t\treturn this._transform(point.clone(), scale);\r\n\t},\r\n\r\n\t// destructive transform (faster)\r\n\t_transform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\tpoint.x = scale * (this._a * point.x + this._b);\r\n\t\tpoint.y = scale * (this._c * point.y + this._d);\r\n\t\treturn point;\r\n\t},\r\n\r\n\t// @method untransform(point: Point, scale?: Number): Point\r\n\t// Returns the reverse transformation of the given point, optionally divided\r\n\t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n\tuntransform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\treturn new Point(\r\n\t\t (point.x / scale - this._b) / this._a,\r\n\t\t (point.y / scale - this._d) / this._c);\r\n\t}\r\n};\r\n\r\n// factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n// @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Instantiates a Transformation object with the given coefficients.\r\n\r\n// @alternative\r\n// @factory L.transformation(coefficients: Array): Transformation\r\n// Expects an coefficients array of the form\r\n// `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\nexport function toTransformation(a, b, c, d) {\r\n\treturn new Transformation(a, b, c, d);\r\n}\r\n","import {Earth} from './CRS.Earth';\r\nimport {SphericalMercator} from '../projection/Projection.SphericalMercator';\r\nimport {toTransformation} from '../../geometry/Transformation';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\nexport var EPSG3857 = Util.extend({}, Earth, {\r\n\tcode: 'EPSG:3857',\r\n\tprojection: SphericalMercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n\r\nexport var EPSG900913 = Util.extend({}, EPSG3857, {\r\n\tcode: 'EPSG:900913'\r\n});\r\n","import * as Browser from '../../core/Browser';\n\n// @namespace SVG; @section\n// There are several static functions which can be called without instantiating L.SVG:\n\n// @function create(name: String): SVGElement\n// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n// corresponding to the class name passed. For example, using 'line' will return\n// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\nexport function svgCreate(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\n// @function pointsToPath(rings: Point[], closed: Boolean): String\n// Generates a SVG path string for multiple rings, with each ring turning\n// into \"M..L..L..\" instructions\nexport function pointsToPath(rings, closed) {\n\tvar str = '',\n\ti, j, len, len2, points, p;\n\n\tfor (i = 0, len = rings.length; i < len; i++) {\n\t\tpoints = rings[i];\n\n\t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n\t\t\tp = points[j];\n\t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n\t\t}\n\n\t\t// closes the ring for polygons; \"x\" is VML syntax\n\t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n\t}\n\n\t// SVG complains about empty path strings\n\treturn str || 'M0 0';\n}\n\n\n\n\n","import * as Util from './Util';\r\nimport {svgCreate} from '../layer/vector/SVG.Util';\r\n\r\n/*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\nvar style = document.documentElement.style;\r\n\r\n// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\nexport var ie = 'ActiveXObject' in window;\r\n\r\n// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\nexport var ielt9 = ie && !document.addEventListener;\r\n\r\n// @property edge: Boolean; `true` for the Edge web browser.\r\nexport var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n// @property webkit: Boolean;\r\n// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\nexport var webkit = userAgentContains('webkit');\r\n\r\n// @property android: Boolean\r\n// `true` for any browser running on an Android platform.\r\nexport var android = userAgentContains('android');\r\n\r\n// @property android23: Boolean; `true` for browsers running on Android 2 or Android 3.\r\nexport var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\nvar webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n// @property androidStock: Boolean; `true` for the Android stock browser (i.e. not Chrome)\r\nexport var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n// @property opera: Boolean; `true` for the Opera browser\r\nexport var opera = !!window.opera;\r\n\r\n// @property chrome: Boolean; `true` for the Chrome browser.\r\nexport var chrome = !edge && userAgentContains('chrome');\r\n\r\n// @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\nexport var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n// @property safari: Boolean; `true` for the Safari browser.\r\nexport var safari = !chrome && userAgentContains('safari');\r\n\r\nexport var phantom = userAgentContains('phantom');\r\n\r\n// @property opera12: Boolean\r\n// `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\nexport var opera12 = 'OTransition' in style;\r\n\r\n// @property win: Boolean; `true` when the browser is running in a Windows platform\r\nexport var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\nexport var ie3d = ie && ('transition' in style);\r\n\r\n// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\nexport var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\nexport var gecko3d = 'MozPerspective' in style;\r\n\r\n// @property any3d: Boolean\r\n// `true` for all browsers supporting CSS transforms.\r\nexport var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n// @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\nexport var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\nexport var mobileWebkit = mobile && webkit;\r\n\r\n// @property mobileWebkit3d: Boolean\r\n// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\nexport var mobileWebkit3d = mobile && webkit3d;\r\n\r\n// @property msPointer: Boolean\r\n// `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\nexport var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n// @property pointer: Boolean\r\n// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\nexport var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n// @property touch: Boolean\r\n// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n// This does not necessarily mean that the browser is running in a computer with\r\n// a touchscreen, it only means that the browser is capable of understanding\r\n// touch events.\r\nexport var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||\r\n\t\t(window.DocumentTouch && document instanceof window.DocumentTouch));\r\n\r\n// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\nexport var mobileOpera = mobile && opera;\r\n\r\n// @property mobileGecko: Boolean\r\n// `true` for gecko-based browsers running in a mobile device.\r\nexport var mobileGecko = mobile && gecko;\r\n\r\n// @property retina: Boolean\r\n// `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\nexport var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n// @property passiveEvents: Boolean\r\n// `true` for browsers that support passive events.\r\nexport var passiveEvents = (function () {\r\n\tvar supportsPassiveOption = false;\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function () { // eslint-disable-line getter-return\r\n\t\t\t\tsupportsPassiveOption = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t\twindow.removeEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t} catch (e) {\r\n\t\t// Errors can safely be ignored since this is only a browser support test.\r\n\t}\r\n\treturn supportsPassiveOption;\r\n}());\r\n\r\n// @property canvas: Boolean\r\n// `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\nexport var canvas = (function () {\r\n\treturn !!document.createElement('canvas').getContext;\r\n}());\r\n\r\n// @property svg: Boolean\r\n// `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\nexport var svg = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n// @property vml: Boolean\r\n// `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\nexport var vml = !svg && (function () {\r\n\ttry {\r\n\t\tvar div = document.createElement('div');\r\n\t\tdiv.innerHTML = '';\r\n\r\n\t\tvar shape = div.firstChild;\r\n\t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n\t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n\t} catch (e) {\r\n\t\treturn false;\r\n\t}\r\n}());\r\n\r\n\r\nfunction userAgentContains(str) {\r\n\treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n}\r\n","import * as DomEvent from './DomEvent';\nimport * as Util from '../core/Util';\nimport * as Browser from '../core/Browser';\n\n/*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n\nvar POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\nvar POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\nvar POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\nvar POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n\nvar _pointers = {};\nvar _pointerDocListener = false;\n\n// Provides a touch events wrapper for (ms)pointer events.\n// ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\nexport function addPointerListener(obj, type, handler, id) {\n\tif (type === 'touchstart') {\n\t\t_addPointerStart(obj, handler, id);\n\n\t} else if (type === 'touchmove') {\n\t\t_addPointerMove(obj, handler, id);\n\n\t} else if (type === 'touchend') {\n\t\t_addPointerEnd(obj, handler, id);\n\t}\n\n\treturn this;\n}\n\nexport function removePointerListener(obj, type, id) {\n\tvar handler = obj['_leaflet_' + type + id];\n\n\tif (type === 'touchstart') {\n\t\tobj.removeEventListener(POINTER_DOWN, handler, false);\n\n\t} else if (type === 'touchmove') {\n\t\tobj.removeEventListener(POINTER_MOVE, handler, false);\n\n\t} else if (type === 'touchend') {\n\t\tobj.removeEventListener(POINTER_UP, handler, false);\n\t\tobj.removeEventListener(POINTER_CANCEL, handler, false);\n\t}\n\n\treturn this;\n}\n\nfunction _addPointerStart(obj, handler, id) {\n\tvar onDown = Util.bind(function (e) {\n\t\t// IE10 specific: MsTouch needs preventDefault. See #2000\n\t\tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n\t\t\tDomEvent.preventDefault(e);\n\t\t}\n\n\t\t_handlePointer(e, handler);\n\t});\n\n\tobj['_leaflet_touchstart' + id] = onDown;\n\tobj.addEventListener(POINTER_DOWN, onDown, false);\n\n\t// need to keep track of what pointers and how many are active to provide e.touches emulation\n\tif (!_pointerDocListener) {\n\t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n\t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n\t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n\t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n\t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n\t\t_pointerDocListener = true;\n\t}\n}\n\nfunction _globalPointerDown(e) {\n\t_pointers[e.pointerId] = e;\n}\n\nfunction _globalPointerMove(e) {\n\tif (_pointers[e.pointerId]) {\n\t\t_pointers[e.pointerId] = e;\n\t}\n}\n\nfunction _globalPointerUp(e) {\n\tdelete _pointers[e.pointerId];\n}\n\nfunction _handlePointer(e, handler) {\n\te.touches = [];\n\tfor (var i in _pointers) {\n\t\te.touches.push(_pointers[i]);\n\t}\n\te.changedTouches = [e];\n\n\thandler(e);\n}\n\nfunction _addPointerMove(obj, handler, id) {\n\tvar onMove = function (e) {\n\t\t// don't fire touch moves when mouse isn't down\n\t\tif ((e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) && e.buttons === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t_handlePointer(e, handler);\n\t};\n\n\tobj['_leaflet_touchmove' + id] = onMove;\n\tobj.addEventListener(POINTER_MOVE, onMove, false);\n}\n\nfunction _addPointerEnd(obj, handler, id) {\n\tvar onUp = function (e) {\n\t\t_handlePointer(e, handler);\n\t};\n\n\tobj['_leaflet_touchend' + id] = onUp;\n\tobj.addEventListener(POINTER_UP, onUp, false);\n\tobj.addEventListener(POINTER_CANCEL, onUp, false);\n}\n","import * as Browser from '../core/Browser';\r\n\r\n/*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n */\r\n\r\nvar _touchstart = Browser.msPointer ? 'MSPointerDown' : Browser.pointer ? 'pointerdown' : 'touchstart';\r\nvar _touchend = Browser.msPointer ? 'MSPointerUp' : Browser.pointer ? 'pointerup' : 'touchend';\r\nvar _pre = '_leaflet_';\r\n\r\n// inspired by Zepto touch code by Thomas Fuchs\r\nexport function addDoubleTapListener(obj, handler, id) {\r\n\tvar last, touch,\r\n\t doubleTap = false,\r\n\t delay = 250;\r\n\r\n\tfunction onTouchStart(e) {\r\n\r\n\t\tif (Browser.pointer) {\r\n\t\t\tif (!e.isPrimary) { return; }\r\n\t\t\tif (e.pointerType === 'mouse') { return; } // mouse fires native dblclick\r\n\t\t} else if (e.touches.length > 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar now = Date.now(),\r\n\t\t delta = now - (last || now);\r\n\r\n\t\ttouch = e.touches ? e.touches[0] : e;\r\n\t\tdoubleTap = (delta > 0 && delta <= delay);\r\n\t\tlast = now;\r\n\t}\r\n\r\n\tfunction onTouchEnd(e) {\r\n\t\tif (doubleTap && !touch.cancelBubble) {\r\n\t\t\tif (Browser.pointer) {\r\n\t\t\t\tif (e.pointerType === 'mouse') { return; }\r\n\t\t\t\t// work around .type being readonly with MSPointer* events\r\n\t\t\t\tvar newTouch = {},\r\n\t\t\t\t prop, i;\r\n\r\n\t\t\t\tfor (i in touch) {\r\n\t\t\t\t\tprop = touch[i];\r\n\t\t\t\t\tnewTouch[i] = prop && prop.bind ? prop.bind(touch) : prop;\r\n\t\t\t\t}\r\n\t\t\t\ttouch = newTouch;\r\n\t\t\t}\r\n\t\t\ttouch.type = 'dblclick';\r\n\t\t\ttouch.button = 0;\r\n\t\t\thandler(touch);\r\n\t\t\tlast = null;\r\n\t\t}\r\n\t}\r\n\r\n\tobj[_pre + _touchstart + id] = onTouchStart;\r\n\tobj[_pre + _touchend + id] = onTouchEnd;\r\n\tobj[_pre + 'dblclick' + id] = handler;\r\n\r\n\tobj.addEventListener(_touchstart, onTouchStart, Browser.passiveEvents ? {passive: false} : false);\r\n\tobj.addEventListener(_touchend, onTouchEnd, Browser.passiveEvents ? {passive: false} : false);\r\n\r\n\t// On some platforms (notably, chrome<55 on win10 + touchscreen + mouse),\r\n\t// the browser doesn't fire touchend/pointerup events but does fire\r\n\t// native dblclicks. See #4127.\r\n\t// Edge 14 also fires native dblclicks, but only for pointerType mouse, see #5180.\r\n\tobj.addEventListener('dblclick', handler, false);\r\n\r\n\treturn this;\r\n}\r\n\r\nexport function removeDoubleTapListener(obj, id) {\r\n\tvar touchstart = obj[_pre + _touchstart + id],\r\n\t touchend = obj[_pre + _touchend + id],\r\n\t dblclick = obj[_pre + 'dblclick' + id];\r\n\r\n\tobj.removeEventListener(_touchstart, touchstart, Browser.passiveEvents ? {passive: false} : false);\r\n\tobj.removeEventListener(_touchend, touchend, Browser.passiveEvents ? {passive: false} : false);\r\n\tobj.removeEventListener('dblclick', dblclick, false);\r\n\r\n\treturn this;\r\n}\r\n","import * as DomEvent from './DomEvent';\r\nimport * as Util from '../core/Util';\r\nimport {Point} from '../geometry/Point';\r\nimport * as Browser from '../core/Browser';\r\n\r\n/*\r\n * @namespace DomUtil\r\n *\r\n * Utility functions to work with the [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)\r\n * tree, used by Leaflet internally.\r\n *\r\n * Most functions expecting or returning a `HTMLElement` also work for\r\n * SVG elements. The only difference is that classes refer to CSS classes\r\n * in HTML and SVG classes in SVG.\r\n */\r\n\r\n\r\n// @property TRANSFORM: String\r\n// Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).\r\nexport var TRANSFORM = testProp(\r\n\t['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\r\n\r\n// webkitTransition comes first because some browser versions that drop vendor prefix don't do\r\n// the same for the transitionend event, in particular the Android 4.1 stock browser\r\n\r\n// @property TRANSITION: String\r\n// Vendor-prefixed transition style name.\r\nexport var TRANSITION = testProp(\r\n\t['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\r\n\r\n// @property TRANSITION_END: String\r\n// Vendor-prefixed transitionend event name.\r\nexport var TRANSITION_END =\r\n\tTRANSITION === 'webkitTransition' || TRANSITION === 'OTransition' ? TRANSITION + 'End' : 'transitionend';\r\n\r\n\r\n// @function get(id: String|HTMLElement): HTMLElement\r\n// Returns an element given its DOM id, or returns the element itself\r\n// if it was passed directly.\r\nexport function get(id) {\r\n\treturn typeof id === 'string' ? document.getElementById(id) : id;\r\n}\r\n\r\n// @function getStyle(el: HTMLElement, styleAttrib: String): String\r\n// Returns the value for a certain style attribute on an element,\r\n// including computed values or values set through CSS.\r\nexport function getStyle(el, style) {\r\n\tvar value = el.style[style] || (el.currentStyle && el.currentStyle[style]);\r\n\r\n\tif ((!value || value === 'auto') && document.defaultView) {\r\n\t\tvar css = document.defaultView.getComputedStyle(el, null);\r\n\t\tvalue = css ? css[style] : null;\r\n\t}\r\n\treturn value === 'auto' ? null : value;\r\n}\r\n\r\n// @function create(tagName: String, className?: String, container?: HTMLElement): HTMLElement\r\n// Creates an HTML element with `tagName`, sets its class to `className`, and optionally appends it to `container` element.\r\nexport function create(tagName, className, container) {\r\n\tvar el = document.createElement(tagName);\r\n\tel.className = className || '';\r\n\r\n\tif (container) {\r\n\t\tcontainer.appendChild(el);\r\n\t}\r\n\treturn el;\r\n}\r\n\r\n// @function remove(el: HTMLElement)\r\n// Removes `el` from its parent element\r\nexport function remove(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent) {\r\n\t\tparent.removeChild(el);\r\n\t}\r\n}\r\n\r\n// @function empty(el: HTMLElement)\r\n// Removes all of `el`'s children elements from `el`\r\nexport function empty(el) {\r\n\twhile (el.firstChild) {\r\n\t\tel.removeChild(el.firstChild);\r\n\t}\r\n}\r\n\r\n// @function toFront(el: HTMLElement)\r\n// Makes `el` the last child of its parent, so it renders in front of the other children.\r\nexport function toFront(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent && parent.lastChild !== el) {\r\n\t\tparent.appendChild(el);\r\n\t}\r\n}\r\n\r\n// @function toBack(el: HTMLElement)\r\n// Makes `el` the first child of its parent, so it renders behind the other children.\r\nexport function toBack(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent && parent.firstChild !== el) {\r\n\t\tparent.insertBefore(el, parent.firstChild);\r\n\t}\r\n}\r\n\r\n// @function hasClass(el: HTMLElement, name: String): Boolean\r\n// Returns `true` if the element's class attribute contains `name`.\r\nexport function hasClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\treturn el.classList.contains(name);\r\n\t}\r\n\tvar className = getClass(el);\r\n\treturn className.length > 0 && new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className);\r\n}\r\n\r\n// @function addClass(el: HTMLElement, name: String)\r\n// Adds `name` to the element's class attribute.\r\nexport function addClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\tvar classes = Util.splitWords(name);\r\n\t\tfor (var i = 0, len = classes.length; i < len; i++) {\r\n\t\t\tel.classList.add(classes[i]);\r\n\t\t}\r\n\t} else if (!hasClass(el, name)) {\r\n\t\tvar className = getClass(el);\r\n\t\tsetClass(el, (className ? className + ' ' : '') + name);\r\n\t}\r\n}\r\n\r\n// @function removeClass(el: HTMLElement, name: String)\r\n// Removes `name` from the element's class attribute.\r\nexport function removeClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\tel.classList.remove(name);\r\n\t} else {\r\n\t\tsetClass(el, Util.trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')));\r\n\t}\r\n}\r\n\r\n// @function setClass(el: HTMLElement, name: String)\r\n// Sets the element's class.\r\nexport function setClass(el, name) {\r\n\tif (el.className.baseVal === undefined) {\r\n\t\tel.className = name;\r\n\t} else {\r\n\t\t// in case of SVG element\r\n\t\tel.className.baseVal = name;\r\n\t}\r\n}\r\n\r\n// @function getClass(el: HTMLElement): String\r\n// Returns the element's class.\r\nexport function getClass(el) {\r\n\t// Check if the element is an SVGElementInstance and use the correspondingElement instead\r\n\t// (Required for linked SVG elements in IE11.)\r\n\tif (el.correspondingElement) {\r\n\t\tel = el.correspondingElement;\r\n\t}\r\n\treturn el.className.baseVal === undefined ? el.className : el.className.baseVal;\r\n}\r\n\r\n// @function setOpacity(el: HTMLElement, opacity: Number)\r\n// Set the opacity of an element (including old IE support).\r\n// `opacity` must be a number from `0` to `1`.\r\nexport function setOpacity(el, value) {\r\n\tif ('opacity' in el.style) {\r\n\t\tel.style.opacity = value;\r\n\t} else if ('filter' in el.style) {\r\n\t\t_setOpacityIE(el, value);\r\n\t}\r\n}\r\n\r\nfunction _setOpacityIE(el, value) {\r\n\tvar filter = false,\r\n\t filterName = 'DXImageTransform.Microsoft.Alpha';\r\n\r\n\t// filters collection throws an error if we try to retrieve a filter that doesn't exist\r\n\ttry {\r\n\t\tfilter = el.filters.item(filterName);\r\n\t} catch (e) {\r\n\t\t// don't set opacity to 1 if we haven't already set an opacity,\r\n\t\t// it isn't needed and breaks transparent pngs.\r\n\t\tif (value === 1) { return; }\r\n\t}\r\n\r\n\tvalue = Math.round(value * 100);\r\n\r\n\tif (filter) {\r\n\t\tfilter.Enabled = (value !== 100);\r\n\t\tfilter.Opacity = value;\r\n\t} else {\r\n\t\tel.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';\r\n\t}\r\n}\r\n\r\n// @function testProp(props: String[]): String|false\r\n// Goes through the array of style names and returns the first name\r\n// that is a valid style name for an element. If no such name is found,\r\n// it returns false. Useful for vendor-prefixed styles like `transform`.\r\nexport function testProp(props) {\r\n\tvar style = document.documentElement.style;\r\n\r\n\tfor (var i = 0; i < props.length; i++) {\r\n\t\tif (props[i] in style) {\r\n\t\t\treturn props[i];\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n// @function setTransform(el: HTMLElement, offset: Point, scale?: Number)\r\n// Resets the 3D CSS transform of `el` so it is translated by `offset` pixels\r\n// and optionally scaled by `scale`. Does not have an effect if the\r\n// browser doesn't support 3D CSS transforms.\r\nexport function setTransform(el, offset, scale) {\r\n\tvar pos = offset || new Point(0, 0);\r\n\r\n\tel.style[TRANSFORM] =\r\n\t\t(Browser.ie3d ?\r\n\t\t\t'translate(' + pos.x + 'px,' + pos.y + 'px)' :\r\n\t\t\t'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') +\r\n\t\t(scale ? ' scale(' + scale + ')' : '');\r\n}\r\n\r\n// @function setPosition(el: HTMLElement, position: Point)\r\n// Sets the position of `el` to coordinates specified by `position`,\r\n// using CSS translate or top/left positioning depending on the browser\r\n// (used by Leaflet internally to position its layers).\r\nexport function setPosition(el, point) {\r\n\r\n\t/*eslint-disable */\r\n\tel._leaflet_pos = point;\r\n\t/* eslint-enable */\r\n\r\n\tif (Browser.any3d) {\r\n\t\tsetTransform(el, point);\r\n\t} else {\r\n\t\tel.style.left = point.x + 'px';\r\n\t\tel.style.top = point.y + 'px';\r\n\t}\r\n}\r\n\r\n// @function getPosition(el: HTMLElement): Point\r\n// Returns the coordinates of an element previously positioned with setPosition.\r\nexport function getPosition(el) {\r\n\t// this method is only used for elements previously positioned using setPosition,\r\n\t// so it's safe to cache the position for performance\r\n\r\n\treturn el._leaflet_pos || new Point(0, 0);\r\n}\r\n\r\n// @function disableTextSelection()\r\n// Prevents the user from generating `selectstart` DOM events, usually generated\r\n// when the user drags the mouse through a page with text. Used internally\r\n// by Leaflet to override the behaviour of any click-and-drag interaction on\r\n// the map. Affects drag interactions on the whole document.\r\n\r\n// @function enableTextSelection()\r\n// Cancels the effects of a previous [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection).\r\nexport var disableTextSelection;\r\nexport var enableTextSelection;\r\nvar _userSelect;\r\nif ('onselectstart' in document) {\r\n\tdisableTextSelection = function () {\r\n\t\tDomEvent.on(window, 'selectstart', DomEvent.preventDefault);\r\n\t};\r\n\tenableTextSelection = function () {\r\n\t\tDomEvent.off(window, 'selectstart', DomEvent.preventDefault);\r\n\t};\r\n} else {\r\n\tvar userSelectProperty = testProp(\r\n\t\t['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);\r\n\r\n\tdisableTextSelection = function () {\r\n\t\tif (userSelectProperty) {\r\n\t\t\tvar style = document.documentElement.style;\r\n\t\t\t_userSelect = style[userSelectProperty];\r\n\t\t\tstyle[userSelectProperty] = 'none';\r\n\t\t}\r\n\t};\r\n\tenableTextSelection = function () {\r\n\t\tif (userSelectProperty) {\r\n\t\t\tdocument.documentElement.style[userSelectProperty] = _userSelect;\r\n\t\t\t_userSelect = undefined;\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// @function disableImageDrag()\r\n// As [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection), but\r\n// for `dragstart` DOM events, usually generated when the user drags an image.\r\nexport function disableImageDrag() {\r\n\tDomEvent.on(window, 'dragstart', DomEvent.preventDefault);\r\n}\r\n\r\n// @function enableImageDrag()\r\n// Cancels the effects of a previous [`L.DomUtil.disableImageDrag`](#domutil-disabletextselection).\r\nexport function enableImageDrag() {\r\n\tDomEvent.off(window, 'dragstart', DomEvent.preventDefault);\r\n}\r\n\r\nvar _outlineElement, _outlineStyle;\r\n// @function preventOutline(el: HTMLElement)\r\n// Makes the [outline](https://developer.mozilla.org/docs/Web/CSS/outline)\r\n// of the element `el` invisible. Used internally by Leaflet to prevent\r\n// focusable elements from displaying an outline when the user performs a\r\n// drag interaction on them.\r\nexport function preventOutline(element) {\r\n\twhile (element.tabIndex === -1) {\r\n\t\telement = element.parentNode;\r\n\t}\r\n\tif (!element.style) { return; }\r\n\trestoreOutline();\r\n\t_outlineElement = element;\r\n\t_outlineStyle = element.style.outline;\r\n\telement.style.outline = 'none';\r\n\tDomEvent.on(window, 'keydown', restoreOutline);\r\n}\r\n\r\n// @function restoreOutline()\r\n// Cancels the effects of a previous [`L.DomUtil.preventOutline`]().\r\nexport function restoreOutline() {\r\n\tif (!_outlineElement) { return; }\r\n\t_outlineElement.style.outline = _outlineStyle;\r\n\t_outlineElement = undefined;\r\n\t_outlineStyle = undefined;\r\n\tDomEvent.off(window, 'keydown', restoreOutline);\r\n}\r\n\r\n// @function getSizedParentNode(el: HTMLElement): HTMLElement\r\n// Finds the closest parent node which size (width and height) is not null.\r\nexport function getSizedParentNode(element) {\r\n\tdo {\r\n\t\telement = element.parentNode;\r\n\t} while ((!element.offsetWidth || !element.offsetHeight) && element !== document.body);\r\n\treturn element;\r\n}\r\n\r\n// @function getScale(el: HTMLElement): Object\r\n// Computes the CSS scale currently applied on the element.\r\n// Returns an object with `x` and `y` members as horizontal and vertical scales respectively,\r\n// and `boundingClientRect` as the result of [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).\r\nexport function getScale(element) {\r\n\tvar rect = element.getBoundingClientRect(); // Read-only in old browsers.\r\n\r\n\treturn {\r\n\t\tx: rect.width / element.offsetWidth || 1,\r\n\t\ty: rect.height / element.offsetHeight || 1,\r\n\t\tboundingClientRect: rect\r\n\t};\r\n}\r\n","import {Point} from '../geometry/Point';\r\nimport * as Util from '../core/Util';\r\nimport * as Browser from '../core/Browser';\r\nimport {addPointerListener, removePointerListener} from './DomEvent.Pointer';\r\nimport {addDoubleTapListener, removeDoubleTapListener} from './DomEvent.DoubleTap';\r\nimport {getScale} from './DomUtil';\r\n\r\n/*\r\n * @namespace DomEvent\r\n * Utility functions to work with the [DOM events](https://developer.mozilla.org/docs/Web/API/Event), used by Leaflet internally.\r\n */\r\n\r\n// Inspired by John Resig, Dean Edwards and YUI addEvent implementations.\r\n\r\n// @function on(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n// Adds a listener function (`fn`) to a particular DOM event type of the\r\n// element `el`. You can optionally specify the context of the listener\r\n// (object the `this` keyword will point to). You can also pass several\r\n// space-separated types (e.g. `'click dblclick'`).\r\n\r\n// @alternative\r\n// @function on(el: HTMLElement, eventMap: Object, context?: Object): this\r\n// Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\nexport function on(obj, types, fn, context) {\r\n\r\n\tif (typeof types === 'object') {\r\n\t\tfor (var type in types) {\r\n\t\t\taddOne(obj, type, types[type], fn);\r\n\t\t}\r\n\t} else {\r\n\t\ttypes = Util.splitWords(types);\r\n\r\n\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\taddOne(obj, types[i], fn, context);\r\n\t\t}\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\nvar eventsKey = '_leaflet_events';\r\n\r\n// @function off(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n// Removes a previously added listener function.\r\n// Note that if you passed a custom context to on, you must pass the same\r\n// context to `off` in order to remove the listener.\r\n\r\n// @alternative\r\n// @function off(el: HTMLElement, eventMap: Object, context?: Object): this\r\n// Removes a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\nexport function off(obj, types, fn, context) {\r\n\r\n\tif (typeof types === 'object') {\r\n\t\tfor (var type in types) {\r\n\t\t\tremoveOne(obj, type, types[type], fn);\r\n\t\t}\r\n\t} else if (types) {\r\n\t\ttypes = Util.splitWords(types);\r\n\r\n\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\tremoveOne(obj, types[i], fn, context);\r\n\t\t}\r\n\t} else {\r\n\t\tfor (var j in obj[eventsKey]) {\r\n\t\t\tremoveOne(obj, j, obj[eventsKey][j]);\r\n\t\t}\r\n\t\tdelete obj[eventsKey];\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\nfunction browserFiresNativeDblClick() {\r\n\t// See https://github.com/w3c/pointerevents/issues/171\r\n\tif (Browser.pointer) {\r\n\t\treturn !(Browser.edge || Browser.safari);\r\n\t}\r\n}\r\n\r\nvar mouseSubst = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout',\r\n\twheel: !('onwheel' in window) && 'mousewheel'\r\n};\r\n\r\nfunction addOne(obj, type, fn, context) {\r\n\tvar id = type + Util.stamp(fn) + (context ? '_' + Util.stamp(context) : '');\r\n\r\n\tif (obj[eventsKey] && obj[eventsKey][id]) { return this; }\r\n\r\n\tvar handler = function (e) {\r\n\t\treturn fn.call(context || obj, e || window.event);\r\n\t};\r\n\r\n\tvar originalHandler = handler;\r\n\r\n\tif (Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\t// Needs DomEvent.Pointer.js\r\n\t\taddPointerListener(obj, type, handler, id);\r\n\r\n\t} else if (Browser.touch && (type === 'dblclick') && !browserFiresNativeDblClick()) {\r\n\t\taddDoubleTapListener(obj, handler, id);\r\n\r\n\t} else if ('addEventListener' in obj) {\r\n\r\n\t\tif (type === 'touchstart' || type === 'touchmove' || type === 'wheel' || type === 'mousewheel') {\r\n\t\t\tobj.addEventListener(mouseSubst[type] || type, handler, Browser.passiveEvents ? {passive: false} : false);\r\n\r\n\t\t} else if (type === 'mouseenter' || type === 'mouseleave') {\r\n\t\t\thandler = function (e) {\r\n\t\t\t\te = e || window.event;\r\n\t\t\t\tif (isExternalTarget(obj, e)) {\r\n\t\t\t\t\toriginalHandler(e);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tobj.addEventListener(mouseSubst[type], handler, false);\r\n\r\n\t\t} else {\r\n\t\t\tobj.addEventListener(type, originalHandler, false);\r\n\t\t}\r\n\r\n\t} else if ('attachEvent' in obj) {\r\n\t\tobj.attachEvent('on' + type, handler);\r\n\t}\r\n\r\n\tobj[eventsKey] = obj[eventsKey] || {};\r\n\tobj[eventsKey][id] = handler;\r\n}\r\n\r\nfunction removeOne(obj, type, fn, context) {\r\n\r\n\tvar id = type + Util.stamp(fn) + (context ? '_' + Util.stamp(context) : ''),\r\n\t handler = obj[eventsKey] && obj[eventsKey][id];\r\n\r\n\tif (!handler) { return this; }\r\n\r\n\tif (Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\tremovePointerListener(obj, type, id);\r\n\r\n\t} else if (Browser.touch && (type === 'dblclick') && !browserFiresNativeDblClick()) {\r\n\t\tremoveDoubleTapListener(obj, id);\r\n\r\n\t} else if ('removeEventListener' in obj) {\r\n\r\n\t\tobj.removeEventListener(mouseSubst[type] || type, handler, false);\r\n\r\n\t} else if ('detachEvent' in obj) {\r\n\t\tobj.detachEvent('on' + type, handler);\r\n\t}\r\n\r\n\tobj[eventsKey][id] = null;\r\n}\r\n\r\n// @function stopPropagation(ev: DOMEvent): this\r\n// Stop the given event from propagation to parent elements. Used inside the listener functions:\r\n// ```js\r\n// L.DomEvent.on(div, 'click', function (ev) {\r\n// \tL.DomEvent.stopPropagation(ev);\r\n// });\r\n// ```\r\nexport function stopPropagation(e) {\r\n\r\n\tif (e.stopPropagation) {\r\n\t\te.stopPropagation();\r\n\t} else if (e.originalEvent) { // In case of Leaflet event.\r\n\t\te.originalEvent._stopped = true;\r\n\t} else {\r\n\t\te.cancelBubble = true;\r\n\t}\r\n\tskipped(e);\r\n\r\n\treturn this;\r\n}\r\n\r\n// @function disableScrollPropagation(el: HTMLElement): this\r\n// Adds `stopPropagation` to the element's `'wheel'` events (plus browser variants).\r\nexport function disableScrollPropagation(el) {\r\n\taddOne(el, 'wheel', stopPropagation);\r\n\treturn this;\r\n}\r\n\r\n// @function disableClickPropagation(el: HTMLElement): this\r\n// Adds `stopPropagation` to the element's `'click'`, `'doubleclick'`,\r\n// `'mousedown'` and `'touchstart'` events (plus browser variants).\r\nexport function disableClickPropagation(el) {\r\n\ton(el, 'mousedown touchstart dblclick', stopPropagation);\r\n\taddOne(el, 'click', fakeStop);\r\n\treturn this;\r\n}\r\n\r\n// @function preventDefault(ev: DOMEvent): this\r\n// Prevents the default action of the DOM Event `ev` from happening (such as\r\n// following a link in the href of the a element, or doing a POST request\r\n// with page reload when a `
` is submitted).\r\n// Use it inside listener functions.\r\nexport function preventDefault(e) {\r\n\tif (e.preventDefault) {\r\n\t\te.preventDefault();\r\n\t} else {\r\n\t\te.returnValue = false;\r\n\t}\r\n\treturn this;\r\n}\r\n\r\n// @function stop(ev: DOMEvent): this\r\n// Does `stopPropagation` and `preventDefault` at the same time.\r\nexport function stop(e) {\r\n\tpreventDefault(e);\r\n\tstopPropagation(e);\r\n\treturn this;\r\n}\r\n\r\n// @function getMousePosition(ev: DOMEvent, container?: HTMLElement): Point\r\n// Gets normalized mouse position from a DOM event relative to the\r\n// `container` (border excluded) or to the whole page if not specified.\r\nexport function getMousePosition(e, container) {\r\n\tif (!container) {\r\n\t\treturn new Point(e.clientX, e.clientY);\r\n\t}\r\n\r\n\tvar scale = getScale(container),\r\n\t offset = scale.boundingClientRect; // left and top values are in page scale (like the event clientX/Y)\r\n\r\n\treturn new Point(\r\n\t\t// offset.left/top values are in page scale (like clientX/Y),\r\n\t\t// whereas clientLeft/Top (border width) values are the original values (before CSS scale applies).\r\n\t\t(e.clientX - offset.left) / scale.x - container.clientLeft,\r\n\t\t(e.clientY - offset.top) / scale.y - container.clientTop\r\n\t);\r\n}\r\n\r\n// Chrome on Win scrolls double the pixels as in other platforms (see #4538),\r\n// and Firefox scrolls device pixels, not CSS pixels\r\nvar wheelPxFactor =\r\n\t(Browser.win && Browser.chrome) ? 2 * window.devicePixelRatio :\r\n\tBrowser.gecko ? window.devicePixelRatio : 1;\r\n\r\n// @function getWheelDelta(ev: DOMEvent): Number\r\n// Gets normalized wheel delta from a wheel DOM event, in vertical\r\n// pixels scrolled (negative if scrolling down).\r\n// Events from pointing devices without precise scrolling are mapped to\r\n// a best guess of 60 pixels.\r\nexport function getWheelDelta(e) {\r\n\treturn (Browser.edge) ? e.wheelDeltaY / 2 : // Don't trust window-geometry-based delta\r\n\t (e.deltaY && e.deltaMode === 0) ? -e.deltaY / wheelPxFactor : // Pixels\r\n\t (e.deltaY && e.deltaMode === 1) ? -e.deltaY * 20 : // Lines\r\n\t (e.deltaY && e.deltaMode === 2) ? -e.deltaY * 60 : // Pages\r\n\t (e.deltaX || e.deltaZ) ? 0 :\t// Skip horizontal/depth wheel events\r\n\t e.wheelDelta ? (e.wheelDeltaY || e.wheelDelta) / 2 : // Legacy IE pixels\r\n\t (e.detail && Math.abs(e.detail) < 32765) ? -e.detail * 20 : // Legacy Moz lines\r\n\t e.detail ? e.detail / -32765 * 60 : // Legacy Moz pages\r\n\t 0;\r\n}\r\n\r\nvar skipEvents = {};\r\n\r\nexport function fakeStop(e) {\r\n\t// fakes stopPropagation by setting a special event flag, checked/reset with skipped(e)\r\n\tskipEvents[e.type] = true;\r\n}\r\n\r\nexport function skipped(e) {\r\n\tvar events = skipEvents[e.type];\r\n\t// reset when checking, as it's only used in map container and propagates outside of the map\r\n\tskipEvents[e.type] = false;\r\n\treturn events;\r\n}\r\n\r\n// check if element really left/entered the event target (for mouseenter/mouseleave)\r\nexport function isExternalTarget(el, e) {\r\n\r\n\tvar related = e.relatedTarget;\r\n\r\n\tif (!related) { return true; }\r\n\r\n\ttry {\r\n\t\twhile (related && (related !== el)) {\r\n\t\t\trelated = related.parentNode;\r\n\t\t}\r\n\t} catch (err) {\r\n\t\treturn false;\r\n\t}\r\n\treturn (related !== el);\r\n}\r\n\r\n// @function addListener(…): this\r\n// Alias to [`L.DomEvent.on`](#domevent-on)\r\nexport {on as addListener};\r\n\r\n// @function removeListener(…): this\r\n// Alias to [`L.DomEvent.off`](#domevent-off)\r\nexport {off as removeListener};\r\n","import * as Util from '../core/Util';\nimport {Evented} from '../core/Events';\nimport * as DomUtil from '../dom/DomUtil';\n\n\n/*\n * @class PosAnimation\n * @aka L.PosAnimation\n * @inherits Evented\n * Used internally for panning animations, utilizing CSS3 Transitions for modern browsers and a timer fallback for IE6-9.\n *\n * @example\n * ```js\n * var fx = new L.PosAnimation();\n * fx.run(el, [300, 500], 0.5);\n * ```\n *\n * @constructor L.PosAnimation()\n * Creates a `PosAnimation` object.\n *\n */\n\nexport var PosAnimation = Evented.extend({\n\n\t// @method run(el: HTMLElement, newPos: Point, duration?: Number, easeLinearity?: Number)\n\t// Run an animation of a given element to a new position, optionally setting\n\t// duration in seconds (`0.25` by default) and easing linearity factor (3rd\n\t// argument of the [cubic bezier curve](http://cubic-bezier.com/#0,0,.5,1),\n\t// `0.5` by default).\n\trun: function (el, newPos, duration, easeLinearity) {\n\t\tthis.stop();\n\n\t\tthis._el = el;\n\t\tthis._inProgress = true;\n\t\tthis._duration = duration || 0.25;\n\t\tthis._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2);\n\n\t\tthis._startPos = DomUtil.getPosition(el);\n\t\tthis._offset = newPos.subtract(this._startPos);\n\t\tthis._startTime = +new Date();\n\n\t\t// @event start: Event\n\t\t// Fired when the animation starts\n\t\tthis.fire('start');\n\n\t\tthis._animate();\n\t},\n\n\t// @method stop()\n\t// Stops the animation (if currently running).\n\tstop: function () {\n\t\tif (!this._inProgress) { return; }\n\n\t\tthis._step(true);\n\t\tthis._complete();\n\t},\n\n\t_animate: function () {\n\t\t// animation loop\n\t\tthis._animId = Util.requestAnimFrame(this._animate, this);\n\t\tthis._step();\n\t},\n\n\t_step: function (round) {\n\t\tvar elapsed = (+new Date()) - this._startTime,\n\t\t duration = this._duration * 1000;\n\n\t\tif (elapsed < duration) {\n\t\t\tthis._runFrame(this._easeOut(elapsed / duration), round);\n\t\t} else {\n\t\t\tthis._runFrame(1);\n\t\t\tthis._complete();\n\t\t}\n\t},\n\n\t_runFrame: function (progress, round) {\n\t\tvar pos = this._startPos.add(this._offset.multiplyBy(progress));\n\t\tif (round) {\n\t\t\tpos._round();\n\t\t}\n\t\tDomUtil.setPosition(this._el, pos);\n\n\t\t// @event step: Event\n\t\t// Fired continuously during the animation.\n\t\tthis.fire('step');\n\t},\n\n\t_complete: function () {\n\t\tUtil.cancelAnimFrame(this._animId);\n\n\t\tthis._inProgress = false;\n\t\t// @event end: Event\n\t\t// Fired when the animation ends.\n\t\tthis.fire('end');\n\t},\n\n\t_easeOut: function (t) {\n\t\treturn 1 - Math.pow(1 - t, this._easeOutPower);\n\t}\n});\n","import * as Util from '../core/Util';\r\nimport {Evented} from '../core/Events';\r\nimport {EPSG3857} from '../geo/crs/CRS.EPSG3857';\r\nimport {Point, toPoint} from '../geometry/Point';\r\nimport {Bounds, toBounds} from '../geometry/Bounds';\r\nimport {LatLng, toLatLng} from '../geo/LatLng';\r\nimport {LatLngBounds, toLatLngBounds} from '../geo/LatLngBounds';\r\nimport * as Browser from '../core/Browser';\r\nimport * as DomEvent from '../dom/DomEvent';\r\nimport * as DomUtil from '../dom/DomUtil';\r\nimport {PosAnimation} from '../dom/PosAnimation';\r\n\r\n/*\r\n * @class Map\r\n * @aka L.Map\r\n * @inherits Evented\r\n *\r\n * The central class of the API — it is used to create a map on a page and manipulate it.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * // initialize the map on the \"map\" div with a given center and zoom\r\n * var map = L.map('map', {\r\n * \tcenter: [51.505, -0.09],\r\n * \tzoom: 13\r\n * });\r\n * ```\r\n *\r\n */\r\n\r\nexport var Map = Evented.extend({\r\n\r\n\toptions: {\r\n\t\t// @section Map State Options\r\n\t\t// @option crs: CRS = L.CRS.EPSG3857\r\n\t\t// The [Coordinate Reference System](#crs) to use. Don't change this if you're not\r\n\t\t// sure what it means.\r\n\t\tcrs: EPSG3857,\r\n\r\n\t\t// @option center: LatLng = undefined\r\n\t\t// Initial geographic center of the map\r\n\t\tcenter: undefined,\r\n\r\n\t\t// @option zoom: Number = undefined\r\n\t\t// Initial map zoom level\r\n\t\tzoom: undefined,\r\n\r\n\t\t// @option minZoom: Number = *\r\n\t\t// Minimum zoom level of the map.\r\n\t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n\t\t// the lowest of their `minZoom` options will be used instead.\r\n\t\tminZoom: undefined,\r\n\r\n\t\t// @option maxZoom: Number = *\r\n\t\t// Maximum zoom level of the map.\r\n\t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n\t\t// the highest of their `maxZoom` options will be used instead.\r\n\t\tmaxZoom: undefined,\r\n\r\n\t\t// @option layers: Layer[] = []\r\n\t\t// Array of layers that will be added to the map initially\r\n\t\tlayers: [],\r\n\r\n\t\t// @option maxBounds: LatLngBounds = null\r\n\t\t// When this option is set, the map restricts the view to the given\r\n\t\t// geographical bounds, bouncing the user back if the user tries to pan\r\n\t\t// outside the view. To set the restriction dynamically, use\r\n\t\t// [`setMaxBounds`](#map-setmaxbounds) method.\r\n\t\tmaxBounds: undefined,\r\n\r\n\t\t// @option renderer: Renderer = *\r\n\t\t// The default method for drawing vector layers on the map. `L.SVG`\r\n\t\t// or `L.Canvas` by default depending on browser support.\r\n\t\trenderer: undefined,\r\n\r\n\r\n\t\t// @section Animation Options\r\n\t\t// @option zoomAnimation: Boolean = true\r\n\t\t// Whether the map zoom animation is enabled. By default it's enabled\r\n\t\t// in all browsers that support CSS3 Transitions except Android.\r\n\t\tzoomAnimation: true,\r\n\r\n\t\t// @option zoomAnimationThreshold: Number = 4\r\n\t\t// Won't animate zoom if the zoom difference exceeds this value.\r\n\t\tzoomAnimationThreshold: 4,\r\n\r\n\t\t// @option fadeAnimation: Boolean = true\r\n\t\t// Whether the tile fade animation is enabled. By default it's enabled\r\n\t\t// in all browsers that support CSS3 Transitions except Android.\r\n\t\tfadeAnimation: true,\r\n\r\n\t\t// @option markerZoomAnimation: Boolean = true\r\n\t\t// Whether markers animate their zoom with the zoom animation, if disabled\r\n\t\t// they will disappear for the length of the animation. By default it's\r\n\t\t// enabled in all browsers that support CSS3 Transitions except Android.\r\n\t\tmarkerZoomAnimation: true,\r\n\r\n\t\t// @option transform3DLimit: Number = 2^23\r\n\t\t// Defines the maximum size of a CSS translation transform. The default\r\n\t\t// value should not be changed unless a web browser positions layers in\r\n\t\t// the wrong place after doing a large `panBy`.\r\n\t\ttransform3DLimit: 8388608, // Precision limit of a 32-bit float\r\n\r\n\t\t// @section Interaction Options\r\n\t\t// @option zoomSnap: Number = 1\r\n\t\t// Forces the map's zoom level to always be a multiple of this, particularly\r\n\t\t// right after a [`fitBounds()`](#map-fitbounds) or a pinch-zoom.\r\n\t\t// By default, the zoom level snaps to the nearest integer; lower values\r\n\t\t// (e.g. `0.5` or `0.1`) allow for greater granularity. A value of `0`\r\n\t\t// means the zoom level will not be snapped after `fitBounds` or a pinch-zoom.\r\n\t\tzoomSnap: 1,\r\n\r\n\t\t// @option zoomDelta: Number = 1\r\n\t\t// Controls how much the map's zoom level will change after a\r\n\t\t// [`zoomIn()`](#map-zoomin), [`zoomOut()`](#map-zoomout), pressing `+`\r\n\t\t// or `-` on the keyboard, or using the [zoom controls](#control-zoom).\r\n\t\t// Values smaller than `1` (e.g. `0.5`) allow for greater granularity.\r\n\t\tzoomDelta: 1,\r\n\r\n\t\t// @option trackResize: Boolean = true\r\n\t\t// Whether the map automatically handles browser window resize to update itself.\r\n\t\ttrackResize: true\r\n\t},\r\n\r\n\tinitialize: function (id, options) { // (HTMLElement or String, Object)\r\n\t\toptions = Util.setOptions(this, options);\r\n\r\n\t\t// Make sure to assign internal flags at the beginning,\r\n\t\t// to avoid inconsistent state in some edge cases.\r\n\t\tthis._handlers = [];\r\n\t\tthis._layers = {};\r\n\t\tthis._zoomBoundLayers = {};\r\n\t\tthis._sizeChanged = true;\r\n\r\n\t\tthis._initContainer(id);\r\n\t\tthis._initLayout();\r\n\r\n\t\t// hack for https://github.com/Leaflet/Leaflet/issues/1980\r\n\t\tthis._onResize = Util.bind(this._onResize, this);\r\n\r\n\t\tthis._initEvents();\r\n\r\n\t\tif (options.maxBounds) {\r\n\t\t\tthis.setMaxBounds(options.maxBounds);\r\n\t\t}\r\n\r\n\t\tif (options.zoom !== undefined) {\r\n\t\t\tthis._zoom = this._limitZoom(options.zoom);\r\n\t\t}\r\n\r\n\t\tif (options.center && options.zoom !== undefined) {\r\n\t\t\tthis.setView(toLatLng(options.center), options.zoom, {reset: true});\r\n\t\t}\r\n\r\n\t\tthis.callInitHooks();\r\n\r\n\t\t// don't animate on browsers without hardware-accelerated transitions or old Android/Opera\r\n\t\tthis._zoomAnimated = DomUtil.TRANSITION && Browser.any3d && !Browser.mobileOpera &&\r\n\t\t\t\tthis.options.zoomAnimation;\r\n\r\n\t\t// zoom transitions run with the same duration for all layers, so if one of transitionend events\r\n\t\t// happens after starting zoom animation (propagating to the map pane), we know that it ended globally\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tthis._createAnimProxy();\r\n\t\t\tDomEvent.on(this._proxy, DomUtil.TRANSITION_END, this._catchTransitionEnd, this);\r\n\t\t}\r\n\r\n\t\tthis._addLayers(this.options.layers);\r\n\t},\r\n\r\n\r\n\t// @section Methods for modifying map state\r\n\r\n\t// @method setView(center: LatLng, zoom: Number, options?: Zoom/pan options): this\r\n\t// Sets the view of the map (geographical center and zoom) with the given\r\n\t// animation options.\r\n\tsetView: function (center, zoom, options) {\r\n\r\n\t\tzoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);\r\n\t\tcenter = this._limitCenter(toLatLng(center), zoom, this.options.maxBounds);\r\n\t\toptions = options || {};\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tif (this._loaded && !options.reset && options !== true) {\r\n\r\n\t\t\tif (options.animate !== undefined) {\r\n\t\t\t\toptions.zoom = Util.extend({animate: options.animate}, options.zoom);\r\n\t\t\t\toptions.pan = Util.extend({animate: options.animate, duration: options.duration}, options.pan);\r\n\t\t\t}\r\n\r\n\t\t\t// try animating pan or zoom\r\n\t\t\tvar moved = (this._zoom !== zoom) ?\r\n\t\t\t\tthis._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) :\r\n\t\t\t\tthis._tryAnimatedPan(center, options.pan);\r\n\r\n\t\t\tif (moved) {\r\n\t\t\t\t// prevent resize handler call, the view will refresh after animation anyway\r\n\t\t\t\tclearTimeout(this._sizeTimer);\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// animation didn't start, just reset the map view\r\n\t\tthis._resetView(center, zoom);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setZoom(zoom: Number, options?: Zoom/pan options): this\r\n\t// Sets the zoom of the map.\r\n\tsetZoom: function (zoom, options) {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthis._zoom = zoom;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\treturn this.setView(this.getCenter(), zoom, {zoom: options});\r\n\t},\r\n\r\n\t// @method zoomIn(delta?: Number, options?: Zoom options): this\r\n\t// Increases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n\tzoomIn: function (delta, options) {\r\n\t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n\t\treturn this.setZoom(this._zoom + delta, options);\r\n\t},\r\n\r\n\t// @method zoomOut(delta?: Number, options?: Zoom options): this\r\n\t// Decreases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n\tzoomOut: function (delta, options) {\r\n\t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n\t\treturn this.setZoom(this._zoom - delta, options);\r\n\t},\r\n\r\n\t// @method setZoomAround(latlng: LatLng, zoom: Number, options: Zoom options): this\r\n\t// Zooms the map while keeping a specified geographical point on the map\r\n\t// stationary (e.g. used internally for scroll zoom and double-click zoom).\r\n\t// @alternative\r\n\t// @method setZoomAround(offset: Point, zoom: Number, options: Zoom options): this\r\n\t// Zooms the map while keeping a specified pixel on the map (relative to the top-left corner) stationary.\r\n\tsetZoomAround: function (latlng, zoom, options) {\r\n\t\tvar scale = this.getZoomScale(zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t containerPoint = latlng instanceof Point ? latlng : this.latLngToContainerPoint(latlng),\r\n\r\n\t\t centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),\r\n\t\t newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));\r\n\r\n\t\treturn this.setView(newCenter, zoom, {zoom: options});\r\n\t},\r\n\r\n\t_getBoundsCenterZoom: function (bounds, options) {\r\n\r\n\t\toptions = options || {};\r\n\t\tbounds = bounds.getBounds ? bounds.getBounds() : toLatLngBounds(bounds);\r\n\r\n\t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n\t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\r\n\t\t zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));\r\n\r\n\t\tzoom = (typeof options.maxZoom === 'number') ? Math.min(options.maxZoom, zoom) : zoom;\r\n\r\n\t\tif (zoom === Infinity) {\r\n\t\t\treturn {\r\n\t\t\t\tcenter: bounds.getCenter(),\r\n\t\t\t\tzoom: zoom\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tvar paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),\r\n\r\n\t\t swPoint = this.project(bounds.getSouthWest(), zoom),\r\n\t\t nePoint = this.project(bounds.getNorthEast(), zoom),\r\n\t\t center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);\r\n\r\n\t\treturn {\r\n\t\t\tcenter: center,\r\n\t\t\tzoom: zoom\r\n\t\t};\r\n\t},\r\n\r\n\t// @method fitBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n\t// Sets a map view that contains the given geographical bounds with the\r\n\t// maximum zoom level possible.\r\n\tfitBounds: function (bounds, options) {\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (!bounds.isValid()) {\r\n\t\t\tthrow new Error('Bounds are not valid.');\r\n\t\t}\r\n\r\n\t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n\t\treturn this.setView(target.center, target.zoom, options);\r\n\t},\r\n\r\n\t// @method fitWorld(options?: fitBounds options): this\r\n\t// Sets a map view that mostly contains the whole world with the maximum\r\n\t// zoom level possible.\r\n\tfitWorld: function (options) {\r\n\t\treturn this.fitBounds([[-90, -180], [90, 180]], options);\r\n\t},\r\n\r\n\t// @method panTo(latlng: LatLng, options?: Pan options): this\r\n\t// Pans the map to a given center.\r\n\tpanTo: function (center, options) { // (LatLng)\r\n\t\treturn this.setView(center, this._zoom, {pan: options});\r\n\t},\r\n\r\n\t// @method panBy(offset: Point, options?: Pan options): this\r\n\t// Pans the map by a given number of pixels (animated).\r\n\tpanBy: function (offset, options) {\r\n\t\toffset = toPoint(offset).round();\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!offset.x && !offset.y) {\r\n\t\t\treturn this.fire('moveend');\r\n\t\t}\r\n\t\t// If we pan too far, Chrome gets issues with tiles\r\n\t\t// and makes them disappear or appear in the wrong place (slightly offset) #2602\r\n\t\tif (options.animate !== true && !this.getSize().contains(offset)) {\r\n\t\t\tthis._resetView(this.unproject(this.project(this.getCenter()).add(offset)), this.getZoom());\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif (!this._panAnim) {\r\n\t\t\tthis._panAnim = new PosAnimation();\r\n\r\n\t\t\tthis._panAnim.on({\r\n\t\t\t\t'step': this._onPanTransitionStep,\r\n\t\t\t\t'end': this._onPanTransitionEnd\r\n\t\t\t}, this);\r\n\t\t}\r\n\r\n\t\t// don't fire movestart if animating inertia\r\n\t\tif (!options.noMoveStart) {\r\n\t\t\tthis.fire('movestart');\r\n\t\t}\r\n\r\n\t\t// animate pan unless animate: false specified\r\n\t\tif (options.animate !== false) {\r\n\t\t\tDomUtil.addClass(this._mapPane, 'leaflet-pan-anim');\r\n\r\n\t\t\tvar newPos = this._getMapPanePos().subtract(offset).round();\r\n\t\t\tthis._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity);\r\n\t\t} else {\r\n\t\t\tthis._rawPanBy(offset);\r\n\t\t\tthis.fire('move').fire('moveend');\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method flyTo(latlng: LatLng, zoom?: Number, options?: Zoom/pan options): this\r\n\t// Sets the view of the map (geographical center and zoom) performing a smooth\r\n\t// pan-zoom animation.\r\n\tflyTo: function (targetCenter, targetZoom, options) {\r\n\r\n\t\toptions = options || {};\r\n\t\tif (options.animate === false || !Browser.any3d) {\r\n\t\t\treturn this.setView(targetCenter, targetZoom, options);\r\n\t\t}\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tvar from = this.project(this.getCenter()),\r\n\t\t to = this.project(targetCenter),\r\n\t\t size = this.getSize(),\r\n\t\t startZoom = this._zoom;\r\n\r\n\t\ttargetCenter = toLatLng(targetCenter);\r\n\t\ttargetZoom = targetZoom === undefined ? startZoom : targetZoom;\r\n\r\n\t\tvar w0 = Math.max(size.x, size.y),\r\n\t\t w1 = w0 * this.getZoomScale(startZoom, targetZoom),\r\n\t\t u1 = (to.distanceTo(from)) || 1,\r\n\t\t rho = 1.42,\r\n\t\t rho2 = rho * rho;\r\n\r\n\t\tfunction r(i) {\r\n\t\t\tvar s1 = i ? -1 : 1,\r\n\t\t\t s2 = i ? w1 : w0,\r\n\t\t\t t1 = w1 * w1 - w0 * w0 + s1 * rho2 * rho2 * u1 * u1,\r\n\t\t\t b1 = 2 * s2 * rho2 * u1,\r\n\t\t\t b = t1 / b1,\r\n\t\t\t sq = Math.sqrt(b * b + 1) - b;\r\n\r\n\t\t\t // workaround for floating point precision bug when sq = 0, log = -Infinite,\r\n\t\t\t // thus triggering an infinite loop in flyTo\r\n\t\t\t var log = sq < 0.000000001 ? -18 : Math.log(sq);\r\n\r\n\t\t\treturn log;\r\n\t\t}\r\n\r\n\t\tfunction sinh(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }\r\n\t\tfunction cosh(n) { return (Math.exp(n) + Math.exp(-n)) / 2; }\r\n\t\tfunction tanh(n) { return sinh(n) / cosh(n); }\r\n\r\n\t\tvar r0 = r(0);\r\n\r\n\t\tfunction w(s) { return w0 * (cosh(r0) / cosh(r0 + rho * s)); }\r\n\t\tfunction u(s) { return w0 * (cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) / rho2; }\r\n\r\n\t\tfunction easeOut(t) { return 1 - Math.pow(1 - t, 1.5); }\r\n\r\n\t\tvar start = Date.now(),\r\n\t\t S = (r(1) - r0) / rho,\r\n\t\t duration = options.duration ? 1000 * options.duration : 1000 * S * 0.8;\r\n\r\n\t\tfunction frame() {\r\n\t\t\tvar t = (Date.now() - start) / duration,\r\n\t\t\t s = easeOut(t) * S;\r\n\r\n\t\t\tif (t <= 1) {\r\n\t\t\t\tthis._flyToFrame = Util.requestAnimFrame(frame, this);\r\n\r\n\t\t\t\tthis._move(\r\n\t\t\t\t\tthis.unproject(from.add(to.subtract(from).multiplyBy(u(s) / u1)), startZoom),\r\n\t\t\t\t\tthis.getScaleZoom(w0 / w(s), startZoom),\r\n\t\t\t\t\t{flyTo: true});\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis\r\n\t\t\t\t\t._move(targetCenter, targetZoom)\r\n\t\t\t\t\t._moveEnd(true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._moveStart(true, options.noMoveStart);\r\n\r\n\t\tframe.call(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method flyToBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n\t// Sets the view of the map with a smooth animation like [`flyTo`](#map-flyto),\r\n\t// but takes a bounds parameter like [`fitBounds`](#map-fitbounds).\r\n\tflyToBounds: function (bounds, options) {\r\n\t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n\t\treturn this.flyTo(target.center, target.zoom, options);\r\n\t},\r\n\r\n\t// @method setMaxBounds(bounds: LatLngBounds): this\r\n\t// Restricts the map view to the given bounds (see the [maxBounds](#map-maxbounds) option).\r\n\tsetMaxBounds: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (!bounds.isValid()) {\r\n\t\t\tthis.options.maxBounds = null;\r\n\t\t\treturn this.off('moveend', this._panInsideMaxBounds);\r\n\t\t} else if (this.options.maxBounds) {\r\n\t\t\tthis.off('moveend', this._panInsideMaxBounds);\r\n\t\t}\r\n\r\n\t\tthis.options.maxBounds = bounds;\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tthis._panInsideMaxBounds();\r\n\t\t}\r\n\r\n\t\treturn this.on('moveend', this._panInsideMaxBounds);\r\n\t},\r\n\r\n\t// @method setMinZoom(zoom: Number): this\r\n\t// Sets the lower limit for the available zoom levels (see the [minZoom](#map-minzoom) option).\r\n\tsetMinZoom: function (zoom) {\r\n\t\tvar oldZoom = this.options.minZoom;\r\n\t\tthis.options.minZoom = zoom;\r\n\r\n\t\tif (this._loaded && oldZoom !== zoom) {\r\n\t\t\tthis.fire('zoomlevelschange');\r\n\r\n\t\t\tif (this.getZoom() < this.options.minZoom) {\r\n\t\t\t\treturn this.setZoom(zoom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setMaxZoom(zoom: Number): this\r\n\t// Sets the upper limit for the available zoom levels (see the [maxZoom](#map-maxzoom) option).\r\n\tsetMaxZoom: function (zoom) {\r\n\t\tvar oldZoom = this.options.maxZoom;\r\n\t\tthis.options.maxZoom = zoom;\r\n\r\n\t\tif (this._loaded && oldZoom !== zoom) {\r\n\t\t\tthis.fire('zoomlevelschange');\r\n\r\n\t\t\tif (this.getZoom() > this.options.maxZoom) {\r\n\t\t\t\treturn this.setZoom(zoom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method panInsideBounds(bounds: LatLngBounds, options?: Pan options): this\r\n\t// Pans the map to the closest view that would lie inside the given bounds (if it's not already), controlling the animation using the options specific, if any.\r\n\tpanInsideBounds: function (bounds, options) {\r\n\t\tthis._enforcingBounds = true;\r\n\t\tvar center = this.getCenter(),\r\n\t\t newCenter = this._limitCenter(center, this._zoom, toLatLngBounds(bounds));\r\n\r\n\t\tif (!center.equals(newCenter)) {\r\n\t\t\tthis.panTo(newCenter, options);\r\n\t\t}\r\n\r\n\t\tthis._enforcingBounds = false;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method panInside(latlng: LatLng, options?: options): this\r\n\t// Pans the map the minimum amount to make the `latlng` visible. Use\r\n\t// `padding`, `paddingTopLeft` and `paddingTopRight` options to fit\r\n\t// the display to more restricted bounds, like [`fitBounds`](#map-fitbounds).\r\n\t// If `latlng` is already within the (optionally padded) display bounds,\r\n\t// the map will not be panned.\r\n\tpanInside: function (latlng, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n\t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\t\t center = this.getCenter(),\r\n\t\t pixelCenter = this.project(center),\r\n\t\t pixelPoint = this.project(latlng),\r\n\t\t pixelBounds = this.getPixelBounds(),\r\n\t\t halfPixelBounds = pixelBounds.getSize().divideBy(2),\r\n\t\t paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]);\r\n\r\n\t\tif (!paddedBounds.contains(pixelPoint)) {\r\n\t\t\tthis._enforcingBounds = true;\r\n\t\t\tvar diff = pixelCenter.subtract(pixelPoint),\r\n\t\t\t newCenter = toPoint(pixelPoint.x + diff.x, pixelPoint.y + diff.y);\r\n\r\n\t\t\tif (pixelPoint.x < paddedBounds.min.x || pixelPoint.x > paddedBounds.max.x) {\r\n\t\t\t\tnewCenter.x = pixelCenter.x - diff.x;\r\n\t\t\t\tif (diff.x > 0) {\r\n\t\t\t\t\tnewCenter.x += halfPixelBounds.x - paddingTL.x;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewCenter.x -= halfPixelBounds.x - paddingBR.x;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (pixelPoint.y < paddedBounds.min.y || pixelPoint.y > paddedBounds.max.y) {\r\n\t\t\t\tnewCenter.y = pixelCenter.y - diff.y;\r\n\t\t\t\tif (diff.y > 0) {\r\n\t\t\t\t\tnewCenter.y += halfPixelBounds.y - paddingTL.y;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewCenter.y -= halfPixelBounds.y - paddingBR.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.panTo(this.unproject(newCenter), options);\r\n\t\t\tthis._enforcingBounds = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method invalidateSize(options: Zoom/pan options): this\r\n\t// Checks if the map container size changed and updates the map if so —\r\n\t// call it after you've changed the map size dynamically, also animating\r\n\t// pan by default. If `options.pan` is `false`, panning will not occur.\r\n\t// If `options.debounceMoveend` is `true`, it will delay `moveend` event so\r\n\t// that it doesn't happen often even if the method is called many\r\n\t// times in a row.\r\n\r\n\t// @alternative\r\n\t// @method invalidateSize(animate: Boolean): this\r\n\t// Checks if the map container size changed and updates the map if so —\r\n\t// call it after you've changed the map size dynamically, also animating\r\n\t// pan by default.\r\n\tinvalidateSize: function (options) {\r\n\t\tif (!this._loaded) { return this; }\r\n\r\n\t\toptions = Util.extend({\r\n\t\t\tanimate: false,\r\n\t\t\tpan: true\r\n\t\t}, options === true ? {animate: true} : options);\r\n\r\n\t\tvar oldSize = this.getSize();\r\n\t\tthis._sizeChanged = true;\r\n\t\tthis._lastCenter = null;\r\n\r\n\t\tvar newSize = this.getSize(),\r\n\t\t oldCenter = oldSize.divideBy(2).round(),\r\n\t\t newCenter = newSize.divideBy(2).round(),\r\n\t\t offset = oldCenter.subtract(newCenter);\r\n\r\n\t\tif (!offset.x && !offset.y) { return this; }\r\n\r\n\t\tif (options.animate && options.pan) {\r\n\t\t\tthis.panBy(offset);\r\n\r\n\t\t} else {\r\n\t\t\tif (options.pan) {\r\n\t\t\t\tthis._rawPanBy(offset);\r\n\t\t\t}\r\n\r\n\t\t\tthis.fire('move');\r\n\r\n\t\t\tif (options.debounceMoveend) {\r\n\t\t\t\tclearTimeout(this._sizeTimer);\r\n\t\t\t\tthis._sizeTimer = setTimeout(Util.bind(this.fire, this, 'moveend'), 200);\r\n\t\t\t} else {\r\n\t\t\t\tthis.fire('moveend');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// @section Map state change events\r\n\t\t// @event resize: ResizeEvent\r\n\t\t// Fired when the map is resized.\r\n\t\treturn this.fire('resize', {\r\n\t\t\toldSize: oldSize,\r\n\t\t\tnewSize: newSize\r\n\t\t});\r\n\t},\r\n\r\n\t// @section Methods for modifying map state\r\n\t// @method stop(): this\r\n\t// Stops the currently running `panTo` or `flyTo` animation, if any.\r\n\tstop: function () {\r\n\t\tthis.setZoom(this._limitZoom(this._zoom));\r\n\t\tif (!this.options.zoomSnap) {\r\n\t\t\tthis.fire('viewreset');\r\n\t\t}\r\n\t\treturn this._stop();\r\n\t},\r\n\r\n\t// @section Geolocation methods\r\n\t// @method locate(options?: Locate options): this\r\n\t// Tries to locate the user using the Geolocation API, firing a [`locationfound`](#map-locationfound)\r\n\t// event with location data on success or a [`locationerror`](#map-locationerror) event on failure,\r\n\t// and optionally sets the map view to the user's location with respect to\r\n\t// detection accuracy (or to the world view if geolocation failed).\r\n\t// Note that, if your page doesn't use HTTPS, this method will fail in\r\n\t// modern browsers ([Chrome 50 and newer](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins))\r\n\t// See `Locate options` for more details.\r\n\tlocate: function (options) {\r\n\r\n\t\toptions = this._locateOptions = Util.extend({\r\n\t\t\ttimeout: 10000,\r\n\t\t\twatch: false\r\n\t\t\t// setView: false\r\n\t\t\t// maxZoom: \r\n\t\t\t// maximumAge: 0\r\n\t\t\t// enableHighAccuracy: false\r\n\t\t}, options);\r\n\r\n\t\tif (!('geolocation' in navigator)) {\r\n\t\t\tthis._handleGeolocationError({\r\n\t\t\t\tcode: 0,\r\n\t\t\t\tmessage: 'Geolocation not supported.'\r\n\t\t\t});\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar onResponse = Util.bind(this._handleGeolocationResponse, this),\r\n\t\t onError = Util.bind(this._handleGeolocationError, this);\r\n\r\n\t\tif (options.watch) {\r\n\t\t\tthis._locationWatchId =\r\n\t\t\t navigator.geolocation.watchPosition(onResponse, onError, options);\r\n\t\t} else {\r\n\t\t\tnavigator.geolocation.getCurrentPosition(onResponse, onError, options);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method stopLocate(): this\r\n\t// Stops watching location previously initiated by `map.locate({watch: true})`\r\n\t// and aborts resetting the map view if map.locate was called with\r\n\t// `{setView: true}`.\r\n\tstopLocate: function () {\r\n\t\tif (navigator.geolocation && navigator.geolocation.clearWatch) {\r\n\t\t\tnavigator.geolocation.clearWatch(this._locationWatchId);\r\n\t\t}\r\n\t\tif (this._locateOptions) {\r\n\t\t\tthis._locateOptions.setView = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_handleGeolocationError: function (error) {\r\n\t\tvar c = error.code,\r\n\t\t message = error.message ||\r\n\t\t (c === 1 ? 'permission denied' :\r\n\t\t (c === 2 ? 'position unavailable' : 'timeout'));\r\n\r\n\t\tif (this._locateOptions.setView && !this._loaded) {\r\n\t\t\tthis.fitWorld();\r\n\t\t}\r\n\r\n\t\t// @section Location events\r\n\t\t// @event locationerror: ErrorEvent\r\n\t\t// Fired when geolocation (using the [`locate`](#map-locate) method) failed.\r\n\t\tthis.fire('locationerror', {\r\n\t\t\tcode: c,\r\n\t\t\tmessage: 'Geolocation error: ' + message + '.'\r\n\t\t});\r\n\t},\r\n\r\n\t_handleGeolocationResponse: function (pos) {\r\n\t\tvar lat = pos.coords.latitude,\r\n\t\t lng = pos.coords.longitude,\r\n\t\t latlng = new LatLng(lat, lng),\r\n\t\t bounds = latlng.toBounds(pos.coords.accuracy * 2),\r\n\t\t options = this._locateOptions;\r\n\r\n\t\tif (options.setView) {\r\n\t\t\tvar zoom = this.getBoundsZoom(bounds);\r\n\t\t\tthis.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom);\r\n\t\t}\r\n\r\n\t\tvar data = {\r\n\t\t\tlatlng: latlng,\r\n\t\t\tbounds: bounds,\r\n\t\t\ttimestamp: pos.timestamp\r\n\t\t};\r\n\r\n\t\tfor (var i in pos.coords) {\r\n\t\t\tif (typeof pos.coords[i] === 'number') {\r\n\t\t\t\tdata[i] = pos.coords[i];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// @event locationfound: LocationEvent\r\n\t\t// Fired when geolocation (using the [`locate`](#map-locate) method)\r\n\t\t// went successfully.\r\n\t\tthis.fire('locationfound', data);\r\n\t},\r\n\r\n\t// TODO Appropriate docs section?\r\n\t// @section Other Methods\r\n\t// @method addHandler(name: String, HandlerClass: Function): this\r\n\t// Adds a new `Handler` to the map, given its name and constructor function.\r\n\taddHandler: function (name, HandlerClass) {\r\n\t\tif (!HandlerClass) { return this; }\r\n\r\n\t\tvar handler = this[name] = new HandlerClass(this);\r\n\r\n\t\tthis._handlers.push(handler);\r\n\r\n\t\tif (this.options[name]) {\r\n\t\t\thandler.enable();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method remove(): this\r\n\t// Destroys the map and clears all related event listeners.\r\n\tremove: function () {\r\n\r\n\t\tthis._initEvents(true);\r\n\t\tthis.off('moveend', this._panInsideMaxBounds);\r\n\r\n\t\tif (this._containerId !== this._container._leaflet_id) {\r\n\t\t\tthrow new Error('Map container is being reused by another instance');\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// throws error in IE6-8\r\n\t\t\tdelete this._container._leaflet_id;\r\n\t\t\tdelete this._containerId;\r\n\t\t} catch (e) {\r\n\t\t\t/*eslint-disable */\r\n\t\t\tthis._container._leaflet_id = undefined;\r\n\t\t\t/* eslint-enable */\r\n\t\t\tthis._containerId = undefined;\r\n\t\t}\r\n\r\n\t\tif (this._locationWatchId !== undefined) {\r\n\t\t\tthis.stopLocate();\r\n\t\t}\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tDomUtil.remove(this._mapPane);\r\n\r\n\t\tif (this._clearControlPos) {\r\n\t\t\tthis._clearControlPos();\r\n\t\t}\r\n\t\tif (this._resizeRequest) {\r\n\t\t\tUtil.cancelAnimFrame(this._resizeRequest);\r\n\t\t\tthis._resizeRequest = null;\r\n\t\t}\r\n\r\n\t\tthis._clearHandlers();\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\t// @section Map state change events\r\n\t\t\t// @event unload: Event\r\n\t\t\t// Fired when the map is destroyed with [remove](#map-remove) method.\r\n\t\t\tthis.fire('unload');\r\n\t\t}\r\n\r\n\t\tvar i;\r\n\t\tfor (i in this._layers) {\r\n\t\t\tthis._layers[i].remove();\r\n\t\t}\r\n\t\tfor (i in this._panes) {\r\n\t\t\tDomUtil.remove(this._panes[i]);\r\n\t\t}\r\n\r\n\t\tthis._layers = [];\r\n\t\tthis._panes = [];\r\n\t\tdelete this._mapPane;\r\n\t\tdelete this._renderer;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\t// @method createPane(name: String, container?: HTMLElement): HTMLElement\r\n\t// Creates a new [map pane](#map-pane) with the given name if it doesn't exist already,\r\n\t// then returns it. The pane is created as a child of `container`, or\r\n\t// as a child of the main map pane if not set.\r\n\tcreatePane: function (name, container) {\r\n\t\tvar className = 'leaflet-pane' + (name ? ' leaflet-' + name.replace('Pane', '') + '-pane' : ''),\r\n\t\t pane = DomUtil.create('div', className, container || this._mapPane);\r\n\r\n\t\tif (name) {\r\n\t\t\tthis._panes[name] = pane;\r\n\t\t}\r\n\t\treturn pane;\r\n\t},\r\n\r\n\t// @section Methods for Getting Map State\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the geographical center of the map view\r\n\tgetCenter: function () {\r\n\t\tthis._checkIfLoaded();\r\n\r\n\t\tif (this._lastCenter && !this._moved()) {\r\n\t\t\treturn this._lastCenter;\r\n\t\t}\r\n\t\treturn this.layerPointToLatLng(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\t// @method getZoom(): Number\r\n\t// Returns the current zoom level of the map view\r\n\tgetZoom: function () {\r\n\t\treturn this._zoom;\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Returns the geographical bounds visible in the current map view\r\n\tgetBounds: function () {\r\n\t\tvar bounds = this.getPixelBounds(),\r\n\t\t sw = this.unproject(bounds.getBottomLeft()),\r\n\t\t ne = this.unproject(bounds.getTopRight());\r\n\r\n\t\treturn new LatLngBounds(sw, ne);\r\n\t},\r\n\r\n\t// @method getMinZoom(): Number\r\n\t// Returns the minimum zoom level of the map (if set in the `minZoom` option of the map or of any layers), or `0` by default.\r\n\tgetMinZoom: function () {\r\n\t\treturn this.options.minZoom === undefined ? this._layersMinZoom || 0 : this.options.minZoom;\r\n\t},\r\n\r\n\t// @method getMaxZoom(): Number\r\n\t// Returns the maximum zoom level of the map (if set in the `maxZoom` option of the map or of any layers).\r\n\tgetMaxZoom: function () {\r\n\t\treturn this.options.maxZoom === undefined ?\r\n\t\t\t(this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) :\r\n\t\t\tthis.options.maxZoom;\r\n\t},\r\n\r\n\t// @method getBoundsZoom(bounds: LatLngBounds, inside?: Boolean, padding?: Point): Number\r\n\t// Returns the maximum zoom level on which the given bounds fit to the map\r\n\t// view in its entirety. If `inside` (optional) is set to `true`, the method\r\n\t// instead returns the minimum zoom level on which the map view fits into\r\n\t// the given bounds in its entirety.\r\n\tgetBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\t\tpadding = toPoint(padding || [0, 0]);\r\n\r\n\t\tvar zoom = this.getZoom() || 0,\r\n\t\t min = this.getMinZoom(),\r\n\t\t max = this.getMaxZoom(),\r\n\t\t nw = bounds.getNorthWest(),\r\n\t\t se = bounds.getSouthEast(),\r\n\t\t size = this.getSize().subtract(padding),\r\n\t\t boundsSize = toBounds(this.project(se, zoom), this.project(nw, zoom)).getSize(),\r\n\t\t snap = Browser.any3d ? this.options.zoomSnap : 1,\r\n\t\t scalex = size.x / boundsSize.x,\r\n\t\t scaley = size.y / boundsSize.y,\r\n\t\t scale = inside ? Math.max(scalex, scaley) : Math.min(scalex, scaley);\r\n\r\n\t\tzoom = this.getScaleZoom(scale, zoom);\r\n\r\n\t\tif (snap) {\r\n\t\t\tzoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level\r\n\t\t\tzoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap;\r\n\t\t}\r\n\r\n\t\treturn Math.max(min, Math.min(max, zoom));\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the current size of the map container (in pixels).\r\n\tgetSize: function () {\r\n\t\tif (!this._size || this._sizeChanged) {\r\n\t\t\tthis._size = new Point(\r\n\t\t\t\tthis._container.clientWidth || 0,\r\n\t\t\t\tthis._container.clientHeight || 0);\r\n\r\n\t\t\tthis._sizeChanged = false;\r\n\t\t}\r\n\t\treturn this._size.clone();\r\n\t},\r\n\r\n\t// @method getPixelBounds(): Bounds\r\n\t// Returns the bounds of the current map view in projected pixel\r\n\t// coordinates (sometimes useful in layer and overlay implementations).\r\n\tgetPixelBounds: function (center, zoom) {\r\n\t\tvar topLeftPoint = this._getTopLeftPoint(center, zoom);\r\n\t\treturn new Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));\r\n\t},\r\n\r\n\t// TODO: Check semantics - isn't the pixel origin the 0,0 coord relative to\r\n\t// the map pane? \"left point of the map layer\" can be confusing, specially\r\n\t// since there can be negative offsets.\r\n\t// @method getPixelOrigin(): Point\r\n\t// Returns the projected pixel coordinates of the top left point of\r\n\t// the map layer (useful in custom layer and overlay implementations).\r\n\tgetPixelOrigin: function () {\r\n\t\tthis._checkIfLoaded();\r\n\t\treturn this._pixelOrigin;\r\n\t},\r\n\r\n\t// @method getPixelWorldBounds(zoom?: Number): Bounds\r\n\t// Returns the world's bounds in pixel coordinates for zoom level `zoom`.\r\n\t// If `zoom` is omitted, the map's current zoom level is used.\r\n\tgetPixelWorldBounds: function (zoom) {\r\n\t\treturn this.options.crs.getProjectedBounds(zoom === undefined ? this.getZoom() : zoom);\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\r\n\t// @method getPane(pane: String|HTMLElement): HTMLElement\r\n\t// Returns a [map pane](#map-pane), given its name or its HTML element (its identity).\r\n\tgetPane: function (pane) {\r\n\t\treturn typeof pane === 'string' ? this._panes[pane] : pane;\r\n\t},\r\n\r\n\t// @method getPanes(): Object\r\n\t// Returns a plain object containing the names of all [panes](#map-pane) as keys and\r\n\t// the panes as values.\r\n\tgetPanes: function () {\r\n\t\treturn this._panes;\r\n\t},\r\n\r\n\t// @method getContainer: HTMLElement\r\n\t// Returns the HTML element that contains the map.\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\r\n\t// @section Conversion Methods\r\n\r\n\t// @method getZoomScale(toZoom: Number, fromZoom: Number): Number\r\n\t// Returns the scale factor to be applied to a map transition from zoom level\r\n\t// `fromZoom` to `toZoom`. Used internally to help with zoom animations.\r\n\tgetZoomScale: function (toZoom, fromZoom) {\r\n\t\t// TODO replace with universal implementation after refactoring projections\r\n\t\tvar crs = this.options.crs;\r\n\t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n\t\treturn crs.scale(toZoom) / crs.scale(fromZoom);\r\n\t},\r\n\r\n\t// @method getScaleZoom(scale: Number, fromZoom: Number): Number\r\n\t// Returns the zoom level that the map would end up at, if it is at `fromZoom`\r\n\t// level and everything is scaled by a factor of `scale`. Inverse of\r\n\t// [`getZoomScale`](#map-getZoomScale).\r\n\tgetScaleZoom: function (scale, fromZoom) {\r\n\t\tvar crs = this.options.crs;\r\n\t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n\t\tvar zoom = crs.zoom(scale * crs.scale(fromZoom));\r\n\t\treturn isNaN(zoom) ? Infinity : zoom;\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng, zoom: Number): Point\r\n\t// Projects a geographical coordinate `LatLng` according to the projection\r\n\t// of the map's CRS, then scales it according to `zoom` and the CRS's\r\n\t// `Transformation`. The result is pixel coordinate relative to\r\n\t// the CRS origin.\r\n\tproject: function (latlng, zoom) {\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.latLngToPoint(toLatLng(latlng), zoom);\r\n\t},\r\n\r\n\t// @method unproject(point: Point, zoom: Number): LatLng\r\n\t// Inverse of [`project`](#map-project).\r\n\tunproject: function (point, zoom) {\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.pointToLatLng(toPoint(point), zoom);\r\n\t},\r\n\r\n\t// @method layerPointToLatLng(point: Point): LatLng\r\n\t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n\t// returns the corresponding geographical coordinate (for the current zoom level).\r\n\tlayerPointToLatLng: function (point) {\r\n\t\tvar projectedPoint = toPoint(point).add(this.getPixelOrigin());\r\n\t\treturn this.unproject(projectedPoint);\r\n\t},\r\n\r\n\t// @method latLngToLayerPoint(latlng: LatLng): Point\r\n\t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n\t// relative to the [origin pixel](#map-getpixelorigin).\r\n\tlatLngToLayerPoint: function (latlng) {\r\n\t\tvar projectedPoint = this.project(toLatLng(latlng))._round();\r\n\t\treturn projectedPoint._subtract(this.getPixelOrigin());\r\n\t},\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where `lat` and `lng` has been wrapped according to the\r\n\t// map's CRS's `wrapLat` and `wrapLng` properties, if they are outside the\r\n\t// CRS's bounds.\r\n\t// By default this means longitude is wrapped around the dateline so its\r\n\t// value is between -180 and +180 degrees.\r\n\twrapLatLng: function (latlng) {\r\n\t\treturn this.options.crs.wrapLatLng(toLatLng(latlng));\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring that\r\n\t// its center is within the CRS's bounds.\r\n\t// By default this means the center longitude is wrapped around the dateline so its\r\n\t// value is between -180 and +180 degrees, and the majority of the bounds\r\n\t// overlaps the CRS's bounds.\r\n\twrapLatLngBounds: function (latlng) {\r\n\t\treturn this.options.crs.wrapLatLngBounds(toLatLngBounds(latlng));\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates according to\r\n\t// the map's CRS. By default this measures distance in meters.\r\n\tdistance: function (latlng1, latlng2) {\r\n\t\treturn this.options.crs.distance(toLatLng(latlng1), toLatLng(latlng2));\r\n\t},\r\n\r\n\t// @method containerPointToLayerPoint(point: Point): Point\r\n\t// Given a pixel coordinate relative to the map container, returns the corresponding\r\n\t// pixel coordinate relative to the [origin pixel](#map-getpixelorigin).\r\n\tcontainerPointToLayerPoint: function (point) { // (Point)\r\n\t\treturn toPoint(point).subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\t// @method layerPointToContainerPoint(point: Point): Point\r\n\t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n\t// returns the corresponding pixel coordinate relative to the map container.\r\n\tlayerPointToContainerPoint: function (point) { // (Point)\r\n\t\treturn toPoint(point).add(this._getMapPanePos());\r\n\t},\r\n\r\n\t// @method containerPointToLatLng(point: Point): LatLng\r\n\t// Given a pixel coordinate relative to the map container, returns\r\n\t// the corresponding geographical coordinate (for the current zoom level).\r\n\tcontainerPointToLatLng: function (point) {\r\n\t\tvar layerPoint = this.containerPointToLayerPoint(toPoint(point));\r\n\t\treturn this.layerPointToLatLng(layerPoint);\r\n\t},\r\n\r\n\t// @method latLngToContainerPoint(latlng: LatLng): Point\r\n\t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n\t// relative to the map container.\r\n\tlatLngToContainerPoint: function (latlng) {\r\n\t\treturn this.layerPointToContainerPoint(this.latLngToLayerPoint(toLatLng(latlng)));\r\n\t},\r\n\r\n\t// @method mouseEventToContainerPoint(ev: MouseEvent): Point\r\n\t// Given a MouseEvent object, returns the pixel coordinate relative to the\r\n\t// map container where the event took place.\r\n\tmouseEventToContainerPoint: function (e) {\r\n\t\treturn DomEvent.getMousePosition(e, this._container);\r\n\t},\r\n\r\n\t// @method mouseEventToLayerPoint(ev: MouseEvent): Point\r\n\t// Given a MouseEvent object, returns the pixel coordinate relative to\r\n\t// the [origin pixel](#map-getpixelorigin) where the event took place.\r\n\tmouseEventToLayerPoint: function (e) {\r\n\t\treturn this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e));\r\n\t},\r\n\r\n\t// @method mouseEventToLatLng(ev: MouseEvent): LatLng\r\n\t// Given a MouseEvent object, returns geographical coordinate where the\r\n\t// event took place.\r\n\tmouseEventToLatLng: function (e) { // (MouseEvent)\r\n\t\treturn this.layerPointToLatLng(this.mouseEventToLayerPoint(e));\r\n\t},\r\n\r\n\r\n\t// map initialization methods\r\n\r\n\t_initContainer: function (id) {\r\n\t\tvar container = this._container = DomUtil.get(id);\r\n\r\n\t\tif (!container) {\r\n\t\t\tthrow new Error('Map container not found.');\r\n\t\t} else if (container._leaflet_id) {\r\n\t\t\tthrow new Error('Map container is already initialized.');\r\n\t\t}\r\n\r\n\t\tDomEvent.on(container, 'scroll', this._onScroll, this);\r\n\t\tthis._containerId = Util.stamp(container);\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar container = this._container;\r\n\r\n\t\tthis._fadeAnimated = this.options.fadeAnimation && Browser.any3d;\r\n\r\n\t\tDomUtil.addClass(container, 'leaflet-container' +\r\n\t\t\t(Browser.touch ? ' leaflet-touch' : '') +\r\n\t\t\t(Browser.retina ? ' leaflet-retina' : '') +\r\n\t\t\t(Browser.ielt9 ? ' leaflet-oldie' : '') +\r\n\t\t\t(Browser.safari ? ' leaflet-safari' : '') +\r\n\t\t\t(this._fadeAnimated ? ' leaflet-fade-anim' : ''));\r\n\r\n\t\tvar position = DomUtil.getStyle(container, 'position');\r\n\r\n\t\tif (position !== 'absolute' && position !== 'relative' && position !== 'fixed') {\r\n\t\t\tcontainer.style.position = 'relative';\r\n\t\t}\r\n\r\n\t\tthis._initPanes();\r\n\r\n\t\tif (this._initControlPos) {\r\n\t\t\tthis._initControlPos();\r\n\t\t}\r\n\t},\r\n\r\n\t_initPanes: function () {\r\n\t\tvar panes = this._panes = {};\r\n\t\tthis._paneRenderers = {};\r\n\r\n\t\t// @section\r\n\t\t//\r\n\t\t// Panes are DOM elements used to control the ordering of layers on the map. You\r\n\t\t// can access panes with [`map.getPane`](#map-getpane) or\r\n\t\t// [`map.getPanes`](#map-getpanes) methods. New panes can be created with the\r\n\t\t// [`map.createPane`](#map-createpane) method.\r\n\t\t//\r\n\t\t// Every map has the following default panes that differ only in zIndex.\r\n\t\t//\r\n\t\t// @pane mapPane: HTMLElement = 'auto'\r\n\t\t// Pane that contains all other map panes\r\n\r\n\t\tthis._mapPane = this.createPane('mapPane', this._container);\r\n\t\tDomUtil.setPosition(this._mapPane, new Point(0, 0));\r\n\r\n\t\t// @pane tilePane: HTMLElement = 200\r\n\t\t// Pane for `GridLayer`s and `TileLayer`s\r\n\t\tthis.createPane('tilePane');\r\n\t\t// @pane overlayPane: HTMLElement = 400\r\n\t\t// Pane for overlay shadows (e.g. `Marker` shadows)\r\n\t\tthis.createPane('shadowPane');\r\n\t\t// @pane shadowPane: HTMLElement = 500\r\n\t\t// Pane for vectors (`Path`s, like `Polyline`s and `Polygon`s), `ImageOverlay`s and `VideoOverlay`s\r\n\t\tthis.createPane('overlayPane');\r\n\t\t// @pane markerPane: HTMLElement = 600\r\n\t\t// Pane for `Icon`s of `Marker`s\r\n\t\tthis.createPane('markerPane');\r\n\t\t// @pane tooltipPane: HTMLElement = 650\r\n\t\t// Pane for `Tooltip`s.\r\n\t\tthis.createPane('tooltipPane');\r\n\t\t// @pane popupPane: HTMLElement = 700\r\n\t\t// Pane for `Popup`s.\r\n\t\tthis.createPane('popupPane');\r\n\r\n\t\tif (!this.options.markerZoomAnimation) {\r\n\t\t\tDomUtil.addClass(panes.markerPane, 'leaflet-zoom-hide');\r\n\t\t\tDomUtil.addClass(panes.shadowPane, 'leaflet-zoom-hide');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// private methods that modify map state\r\n\r\n\t// @section Map state change events\r\n\t_resetView: function (center, zoom) {\r\n\t\tDomUtil.setPosition(this._mapPane, new Point(0, 0));\r\n\r\n\t\tvar loading = !this._loaded;\r\n\t\tthis._loaded = true;\r\n\t\tzoom = this._limitZoom(zoom);\r\n\r\n\t\tthis.fire('viewprereset');\r\n\r\n\t\tvar zoomChanged = this._zoom !== zoom;\r\n\t\tthis\r\n\t\t\t._moveStart(zoomChanged, false)\r\n\t\t\t._move(center, zoom)\r\n\t\t\t._moveEnd(zoomChanged);\r\n\r\n\t\t// @event viewreset: Event\r\n\t\t// Fired when the map needs to redraw its content (this usually happens\r\n\t\t// on map zoom or load). Very useful for creating custom overlays.\r\n\t\tthis.fire('viewreset');\r\n\r\n\t\t// @event load: Event\r\n\t\t// Fired when the map is initialized (when its center and zoom are set\r\n\t\t// for the first time).\r\n\t\tif (loading) {\r\n\t\t\tthis.fire('load');\r\n\t\t}\r\n\t},\r\n\r\n\t_moveStart: function (zoomChanged, noMoveStart) {\r\n\t\t// @event zoomstart: Event\r\n\t\t// Fired when the map zoom is about to change (e.g. before zoom animation).\r\n\t\t// @event movestart: Event\r\n\t\t// Fired when the view of the map starts changing (e.g. user starts dragging the map).\r\n\t\tif (zoomChanged) {\r\n\t\t\tthis.fire('zoomstart');\r\n\t\t}\r\n\t\tif (!noMoveStart) {\r\n\t\t\tthis.fire('movestart');\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_move: function (center, zoom, data) {\r\n\t\tif (zoom === undefined) {\r\n\t\t\tzoom = this._zoom;\r\n\t\t}\r\n\t\tvar zoomChanged = this._zoom !== zoom;\r\n\r\n\t\tthis._zoom = zoom;\r\n\t\tthis._lastCenter = center;\r\n\t\tthis._pixelOrigin = this._getNewPixelOrigin(center);\r\n\r\n\t\t// @event zoom: Event\r\n\t\t// Fired repeatedly during any change in zoom level, including zoom\r\n\t\t// and fly animations.\r\n\t\tif (zoomChanged || (data && data.pinch)) {\t// Always fire 'zoom' if pinching because #3530\r\n\t\t\tthis.fire('zoom', data);\r\n\t\t}\r\n\r\n\t\t// @event move: Event\r\n\t\t// Fired repeatedly during any movement of the map, including pan and\r\n\t\t// fly animations.\r\n\t\treturn this.fire('move', data);\r\n\t},\r\n\r\n\t_moveEnd: function (zoomChanged) {\r\n\t\t// @event zoomend: Event\r\n\t\t// Fired when the map has changed, after any animations.\r\n\t\tif (zoomChanged) {\r\n\t\t\tthis.fire('zoomend');\r\n\t\t}\r\n\r\n\t\t// @event moveend: Event\r\n\t\t// Fired when the center of the map stops changing (e.g. user stopped\r\n\t\t// dragging the map).\r\n\t\treturn this.fire('moveend');\r\n\t},\r\n\r\n\t_stop: function () {\r\n\t\tUtil.cancelAnimFrame(this._flyToFrame);\r\n\t\tif (this._panAnim) {\r\n\t\t\tthis._panAnim.stop();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_rawPanBy: function (offset) {\r\n\t\tDomUtil.setPosition(this._mapPane, this._getMapPanePos().subtract(offset));\r\n\t},\r\n\r\n\t_getZoomSpan: function () {\r\n\t\treturn this.getMaxZoom() - this.getMinZoom();\r\n\t},\r\n\r\n\t_panInsideMaxBounds: function () {\r\n\t\tif (!this._enforcingBounds) {\r\n\t\t\tthis.panInsideBounds(this.options.maxBounds);\r\n\t\t}\r\n\t},\r\n\r\n\t_checkIfLoaded: function () {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthrow new Error('Set map center and zoom first.');\r\n\t\t}\r\n\t},\r\n\r\n\t// DOM event handling\r\n\r\n\t// @section Interaction events\r\n\t_initEvents: function (remove) {\r\n\t\tthis._targets = {};\r\n\t\tthis._targets[Util.stamp(this._container)] = this;\r\n\r\n\t\tvar onOff = remove ? DomEvent.off : DomEvent.on;\r\n\r\n\t\t// @event click: MouseEvent\r\n\t\t// Fired when the user clicks (or taps) the map.\r\n\t\t// @event dblclick: MouseEvent\r\n\t\t// Fired when the user double-clicks (or double-taps) the map.\r\n\t\t// @event mousedown: MouseEvent\r\n\t\t// Fired when the user pushes the mouse button on the map.\r\n\t\t// @event mouseup: MouseEvent\r\n\t\t// Fired when the user releases the mouse button on the map.\r\n\t\t// @event mouseover: MouseEvent\r\n\t\t// Fired when the mouse enters the map.\r\n\t\t// @event mouseout: MouseEvent\r\n\t\t// Fired when the mouse leaves the map.\r\n\t\t// @event mousemove: MouseEvent\r\n\t\t// Fired while the mouse moves over the map.\r\n\t\t// @event contextmenu: MouseEvent\r\n\t\t// Fired when the user pushes the right mouse button on the map, prevents\r\n\t\t// default browser context menu from showing if there are listeners on\r\n\t\t// this event. Also fired on mobile when the user holds a single touch\r\n\t\t// for a second (also called long press).\r\n\t\t// @event keypress: KeyboardEvent\r\n\t\t// Fired when the user presses a key from the keyboard that produces a character value while the map is focused.\r\n\t\t// @event keydown: KeyboardEvent\r\n\t\t// Fired when the user presses a key from the keyboard while the map is focused. Unlike the `keypress` event,\r\n\t\t// the `keydown` event is fired for keys that produce a character value and for keys\r\n\t\t// that do not produce a character value.\r\n\t\t// @event keyup: KeyboardEvent\r\n\t\t// Fired when the user releases a key from the keyboard while the map is focused.\r\n\t\tonOff(this._container, 'click dblclick mousedown mouseup ' +\r\n\t\t\t'mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this);\r\n\r\n\t\tif (this.options.trackResize) {\r\n\t\t\tonOff(window, 'resize', this._onResize, this);\r\n\t\t}\r\n\r\n\t\tif (Browser.any3d && this.options.transform3DLimit) {\r\n\t\t\t(remove ? this.off : this.on).call(this, 'moveend', this._onMoveEnd);\r\n\t\t}\r\n\t},\r\n\r\n\t_onResize: function () {\r\n\t\tUtil.cancelAnimFrame(this._resizeRequest);\r\n\t\tthis._resizeRequest = Util.requestAnimFrame(\r\n\t\t function () { this.invalidateSize({debounceMoveend: true}); }, this);\r\n\t},\r\n\r\n\t_onScroll: function () {\r\n\t\tthis._container.scrollTop = 0;\r\n\t\tthis._container.scrollLeft = 0;\r\n\t},\r\n\r\n\t_onMoveEnd: function () {\r\n\t\tvar pos = this._getMapPanePos();\r\n\t\tif (Math.max(Math.abs(pos.x), Math.abs(pos.y)) >= this.options.transform3DLimit) {\r\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1203873 but Webkit also have\r\n\t\t\t// a pixel offset on very high values, see: http://jsfiddle.net/dg6r5hhb/\r\n\t\t\tthis._resetView(this.getCenter(), this.getZoom());\r\n\t\t}\r\n\t},\r\n\r\n\t_findEventTargets: function (e, type) {\r\n\t\tvar targets = [],\r\n\t\t target,\r\n\t\t isHover = type === 'mouseout' || type === 'mouseover',\r\n\t\t src = e.target || e.srcElement,\r\n\t\t dragging = false;\r\n\r\n\t\twhile (src) {\r\n\t\t\ttarget = this._targets[Util.stamp(src)];\r\n\t\t\tif (target && (type === 'click' || type === 'preclick') && !e._simulated && this._draggableMoved(target)) {\r\n\t\t\t\t// Prevent firing click after you just dragged an object.\r\n\t\t\t\tdragging = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (target && target.listens(type, true)) {\r\n\t\t\t\tif (isHover && !DomEvent.isExternalTarget(src, e)) { break; }\r\n\t\t\t\ttargets.push(target);\r\n\t\t\t\tif (isHover) { break; }\r\n\t\t\t}\r\n\t\t\tif (src === this._container) { break; }\r\n\t\t\tsrc = src.parentNode;\r\n\t\t}\r\n\t\tif (!targets.length && !dragging && !isHover && DomEvent.isExternalTarget(src, e)) {\r\n\t\t\ttargets = [this];\r\n\t\t}\r\n\t\treturn targets;\r\n\t},\r\n\r\n\t_handleDOMEvent: function (e) {\r\n\t\tif (!this._loaded || DomEvent.skipped(e)) { return; }\r\n\r\n\t\tvar type = e.type;\r\n\r\n\t\tif (type === 'mousedown' || type === 'keypress' || type === 'keyup' || type === 'keydown') {\r\n\t\t\t// prevents outline when clicking on keyboard-focusable element\r\n\t\t\tDomUtil.preventOutline(e.target || e.srcElement);\r\n\t\t}\r\n\r\n\t\tthis._fireDOMEvent(e, type);\r\n\t},\r\n\r\n\t_mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'],\r\n\r\n\t_fireDOMEvent: function (e, type, targets) {\r\n\r\n\t\tif (e.type === 'click') {\r\n\t\t\t// Fire a synthetic 'preclick' event which propagates up (mainly for closing popups).\r\n\t\t\t// @event preclick: MouseEvent\r\n\t\t\t// Fired before mouse click on the map (sometimes useful when you\r\n\t\t\t// want something to happen on click before any existing click\r\n\t\t\t// handlers start running).\r\n\t\t\tvar synth = Util.extend({}, e);\r\n\t\t\tsynth.type = 'preclick';\r\n\t\t\tthis._fireDOMEvent(synth, synth.type, targets);\r\n\t\t}\r\n\r\n\t\tif (e._stopped) { return; }\r\n\r\n\t\t// Find the layer the event is propagating from and its parents.\r\n\t\ttargets = (targets || []).concat(this._findEventTargets(e, type));\r\n\r\n\t\tif (!targets.length) { return; }\r\n\r\n\t\tvar target = targets[0];\r\n\t\tif (type === 'contextmenu' && target.listens(type, true)) {\r\n\t\t\tDomEvent.preventDefault(e);\r\n\t\t}\r\n\r\n\t\tvar data = {\r\n\t\t\toriginalEvent: e\r\n\t\t};\r\n\r\n\t\tif (e.type !== 'keypress' && e.type !== 'keydown' && e.type !== 'keyup') {\r\n\t\t\tvar isMarker = target.getLatLng && (!target._radius || target._radius <= 10);\r\n\t\t\tdata.containerPoint = isMarker ?\r\n\t\t\t\tthis.latLngToContainerPoint(target.getLatLng()) : this.mouseEventToContainerPoint(e);\r\n\t\t\tdata.layerPoint = this.containerPointToLayerPoint(data.containerPoint);\r\n\t\t\tdata.latlng = isMarker ? target.getLatLng() : this.layerPointToLatLng(data.layerPoint);\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < targets.length; i++) {\r\n\t\t\ttargets[i].fire(type, data, true);\r\n\t\t\tif (data.originalEvent._stopped ||\r\n\t\t\t\t(targets[i].options.bubblingMouseEvents === false && Util.indexOf(this._mouseEvents, type) !== -1)) { return; }\r\n\t\t}\r\n\t},\r\n\r\n\t_draggableMoved: function (obj) {\r\n\t\tobj = obj.dragging && obj.dragging.enabled() ? obj : this;\r\n\t\treturn (obj.dragging && obj.dragging.moved()) || (this.boxZoom && this.boxZoom.moved());\r\n\t},\r\n\r\n\t_clearHandlers: function () {\r\n\t\tfor (var i = 0, len = this._handlers.length; i < len; i++) {\r\n\t\t\tthis._handlers[i].disable();\r\n\t\t}\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\r\n\t// @method whenReady(fn: Function, context?: Object): this\r\n\t// Runs the given function `fn` when the map gets initialized with\r\n\t// a view (center and zoom) and at least one layer, or immediately\r\n\t// if it's already initialized, optionally passing a function context.\r\n\twhenReady: function (callback, context) {\r\n\t\tif (this._loaded) {\r\n\t\t\tcallback.call(context || this, {target: this});\r\n\t\t} else {\r\n\t\t\tthis.on('load', callback, context);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\r\n\t// private methods for getting map state\r\n\r\n\t_getMapPanePos: function () {\r\n\t\treturn DomUtil.getPosition(this._mapPane) || new Point(0, 0);\r\n\t},\r\n\r\n\t_moved: function () {\r\n\t\tvar pos = this._getMapPanePos();\r\n\t\treturn pos && !pos.equals([0, 0]);\r\n\t},\r\n\r\n\t_getTopLeftPoint: function (center, zoom) {\r\n\t\tvar pixelOrigin = center && zoom !== undefined ?\r\n\t\t\tthis._getNewPixelOrigin(center, zoom) :\r\n\t\t\tthis.getPixelOrigin();\r\n\t\treturn pixelOrigin.subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\t_getNewPixelOrigin: function (center, zoom) {\r\n\t\tvar viewHalf = this.getSize()._divideBy(2);\r\n\t\treturn this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._round();\r\n\t},\r\n\r\n\t_latLngToNewLayerPoint: function (latlng, zoom, center) {\r\n\t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n\t\treturn this.project(latlng, zoom)._subtract(topLeft);\r\n\t},\r\n\r\n\t_latLngBoundsToNewLayerBounds: function (latLngBounds, zoom, center) {\r\n\t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n\t\treturn toBounds([\r\n\t\t\tthis.project(latLngBounds.getSouthWest(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getNorthWest(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getSouthEast(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getNorthEast(), zoom)._subtract(topLeft)\r\n\t\t]);\r\n\t},\r\n\r\n\t// layer point of the current center\r\n\t_getCenterLayerPoint: function () {\r\n\t\treturn this.containerPointToLayerPoint(this.getSize()._divideBy(2));\r\n\t},\r\n\r\n\t// offset of the specified place to the current center in pixels\r\n\t_getCenterOffset: function (latlng) {\r\n\t\treturn this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\t// adjust center for view to get inside bounds\r\n\t_limitCenter: function (center, zoom, bounds) {\r\n\r\n\t\tif (!bounds) { return center; }\r\n\r\n\t\tvar centerPoint = this.project(center, zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t viewBounds = new Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)),\r\n\t\t offset = this._getBoundsOffset(viewBounds, bounds, zoom);\r\n\r\n\t\t// If offset is less than a pixel, ignore.\r\n\t\t// This prevents unstable projections from getting into\r\n\t\t// an infinite loop of tiny offsets.\r\n\t\tif (offset.round().equals([0, 0])) {\r\n\t\t\treturn center;\r\n\t\t}\r\n\r\n\t\treturn this.unproject(centerPoint.add(offset), zoom);\r\n\t},\r\n\r\n\t// adjust offset for view to get inside bounds\r\n\t_limitOffset: function (offset, bounds) {\r\n\t\tif (!bounds) { return offset; }\r\n\r\n\t\tvar viewBounds = this.getPixelBounds(),\r\n\t\t newBounds = new Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset));\r\n\r\n\t\treturn offset.add(this._getBoundsOffset(newBounds, bounds));\r\n\t},\r\n\r\n\t// returns offset needed for pxBounds to get inside maxBounds at a specified zoom\r\n\t_getBoundsOffset: function (pxBounds, maxBounds, zoom) {\r\n\t\tvar projectedMaxBounds = toBounds(\r\n\t\t this.project(maxBounds.getNorthEast(), zoom),\r\n\t\t this.project(maxBounds.getSouthWest(), zoom)\r\n\t\t ),\r\n\t\t minOffset = projectedMaxBounds.min.subtract(pxBounds.min),\r\n\t\t maxOffset = projectedMaxBounds.max.subtract(pxBounds.max),\r\n\r\n\t\t dx = this._rebound(minOffset.x, -maxOffset.x),\r\n\t\t dy = this._rebound(minOffset.y, -maxOffset.y);\r\n\r\n\t\treturn new Point(dx, dy);\r\n\t},\r\n\r\n\t_rebound: function (left, right) {\r\n\t\treturn left + right > 0 ?\r\n\t\t\tMath.round(left - right) / 2 :\r\n\t\t\tMath.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right));\r\n\t},\r\n\r\n\t_limitZoom: function (zoom) {\r\n\t\tvar min = this.getMinZoom(),\r\n\t\t max = this.getMaxZoom(),\r\n\t\t snap = Browser.any3d ? this.options.zoomSnap : 1;\r\n\t\tif (snap) {\r\n\t\t\tzoom = Math.round(zoom / snap) * snap;\r\n\t\t}\r\n\t\treturn Math.max(min, Math.min(max, zoom));\r\n\t},\r\n\r\n\t_onPanTransitionStep: function () {\r\n\t\tthis.fire('move');\r\n\t},\r\n\r\n\t_onPanTransitionEnd: function () {\r\n\t\tDomUtil.removeClass(this._mapPane, 'leaflet-pan-anim');\r\n\t\tthis.fire('moveend');\r\n\t},\r\n\r\n\t_tryAnimatedPan: function (center, options) {\r\n\t\t// difference between the new and current centers in pixels\r\n\t\tvar offset = this._getCenterOffset(center)._trunc();\r\n\r\n\t\t// don't animate too far unless animate: true specified in options\r\n\t\tif ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n\t\tthis.panBy(offset, options);\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_createAnimProxy: function () {\r\n\r\n\t\tvar proxy = this._proxy = DomUtil.create('div', 'leaflet-proxy leaflet-zoom-animated');\r\n\t\tthis._panes.mapPane.appendChild(proxy);\r\n\r\n\t\tthis.on('zoomanim', function (e) {\r\n\t\t\tvar prop = DomUtil.TRANSFORM,\r\n\t\t\t transform = this._proxy.style[prop];\r\n\r\n\t\t\tDomUtil.setTransform(this._proxy, this.project(e.center, e.zoom), this.getZoomScale(e.zoom, 1));\r\n\r\n\t\t\t// workaround for case when transform is the same and so transitionend event is not fired\r\n\t\t\tif (transform === this._proxy.style[prop] && this._animatingZoom) {\r\n\t\t\t\tthis._onZoomTransitionEnd();\r\n\t\t\t}\r\n\t\t}, this);\r\n\r\n\t\tthis.on('load moveend', this._animMoveEnd, this);\r\n\r\n\t\tthis._on('unload', this._destroyAnimProxy, this);\r\n\t},\r\n\r\n\t_destroyAnimProxy: function () {\r\n\t\tDomUtil.remove(this._proxy);\r\n\t\tthis.off('load moveend', this._animMoveEnd, this);\r\n\t\tdelete this._proxy;\r\n\t},\r\n\r\n\t_animMoveEnd: function () {\r\n\t\tvar c = this.getCenter(),\r\n\t\t z = this.getZoom();\r\n\t\tDomUtil.setTransform(this._proxy, this.project(c, z), this.getZoomScale(z, 1));\r\n\t},\r\n\r\n\t_catchTransitionEnd: function (e) {\r\n\t\tif (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) {\r\n\t\t\tthis._onZoomTransitionEnd();\r\n\t\t}\r\n\t},\r\n\r\n\t_nothingToAnimate: function () {\r\n\t\treturn !this._container.getElementsByClassName('leaflet-zoom-animated').length;\r\n\t},\r\n\r\n\t_tryAnimatedZoom: function (center, zoom, options) {\r\n\r\n\t\tif (this._animatingZoom) { return true; }\r\n\r\n\t\toptions = options || {};\r\n\r\n\t\t// don't animate if disabled, not supported or zoom difference is too large\r\n\t\tif (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() ||\r\n\t\t Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; }\r\n\r\n\t\t// offset is the pixel coords of the zoom origin relative to the current center\r\n\t\tvar scale = this.getZoomScale(zoom),\r\n\t\t offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale);\r\n\r\n\t\t// don't animate if the zoom origin isn't within one screen from the current center, unless forced\r\n\t\tif (options.animate !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n\t\tUtil.requestAnimFrame(function () {\r\n\t\t\tthis\r\n\t\t\t ._moveStart(true, false)\r\n\t\t\t ._animateZoom(center, zoom, true);\r\n\t\t}, this);\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_animateZoom: function (center, zoom, startAnim, noUpdate) {\r\n\t\tif (!this._mapPane) { return; }\r\n\r\n\t\tif (startAnim) {\r\n\t\t\tthis._animatingZoom = true;\r\n\r\n\t\t\t// remember what center/zoom to set after animation\r\n\t\t\tthis._animateToCenter = center;\r\n\t\t\tthis._animateToZoom = zoom;\r\n\r\n\t\t\tDomUtil.addClass(this._mapPane, 'leaflet-zoom-anim');\r\n\t\t}\r\n\r\n\t\t// @section Other Events\r\n\t\t// @event zoomanim: ZoomAnimEvent\r\n\t\t// Fired at least once per zoom animation. For continuous zoom, like pinch zooming, fired once per frame during zoom.\r\n\t\tthis.fire('zoomanim', {\r\n\t\t\tcenter: center,\r\n\t\t\tzoom: zoom,\r\n\t\t\tnoUpdate: noUpdate\r\n\t\t});\r\n\r\n\t\t// Work around webkit not firing 'transitionend', see https://github.com/Leaflet/Leaflet/issues/3689, 2693\r\n\t\tsetTimeout(Util.bind(this._onZoomTransitionEnd, this), 250);\r\n\t},\r\n\r\n\t_onZoomTransitionEnd: function () {\r\n\t\tif (!this._animatingZoom) { return; }\r\n\r\n\t\tif (this._mapPane) {\r\n\t\t\tDomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim');\r\n\t\t}\r\n\r\n\t\tthis._animatingZoom = false;\r\n\r\n\t\tthis._move(this._animateToCenter, this._animateToZoom);\r\n\r\n\t\t// This anim frame should prevent an obscure iOS webkit tile loading race condition.\r\n\t\tUtil.requestAnimFrame(function () {\r\n\t\t\tthis._moveEnd(true);\r\n\t\t}, this);\r\n\t}\r\n});\r\n\r\n// @section\r\n\r\n// @factory L.map(id: String, options?: Map options)\r\n// Instantiates a map object given the DOM ID of a `
` element\r\n// and optionally an object literal with `Map options`.\r\n//\r\n// @alternative\r\n// @factory L.map(el: HTMLElement, options?: Map options)\r\n// Instantiates a map object given an instance of a `
` HTML element\r\n// and optionally an object literal with `Map options`.\r\nexport function createMap(id, options) {\r\n\treturn new Map(id, options);\r\n}\r\n","\r\nimport {Class} from '../core/Class';\r\nimport {Map} from '../map/Map';\r\nimport * as Util from '../core/Util';\r\nimport * as DomUtil from '../dom/DomUtil';\r\n\r\n/*\r\n * @class Control\r\n * @aka L.Control\r\n * @inherits Class\r\n *\r\n * L.Control is a base class for implementing map controls. Handles positioning.\r\n * All other controls extend from this class.\r\n */\r\n\r\nexport var Control = Class.extend({\r\n\t// @section\r\n\t// @aka Control options\r\n\toptions: {\r\n\t\t// @option position: String = 'topright'\r\n\t\t// The position of the control (one of the map corners). Possible values are `'topleft'`,\r\n\t\t// `'topright'`, `'bottomleft'` or `'bottomright'`\r\n\t\tposition: 'topright'\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tUtil.setOptions(this, options);\r\n\t},\r\n\r\n\t/* @section\r\n\t * Classes extending L.Control will inherit the following methods:\r\n\t *\r\n\t * @method getPosition: string\r\n\t * Returns the position of the control.\r\n\t */\r\n\tgetPosition: function () {\r\n\t\treturn this.options.position;\r\n\t},\r\n\r\n\t// @method setPosition(position: string): this\r\n\t// Sets the position of the control.\r\n\tsetPosition: function (position) {\r\n\t\tvar map = this._map;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.removeControl(this);\r\n\t\t}\r\n\r\n\t\tthis.options.position = position;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.addControl(this);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getContainer: HTMLElement\r\n\t// Returns the HTMLElement that contains the control.\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\t// @method addTo(map: Map): this\r\n\t// Adds the control to the given map.\r\n\taddTo: function (map) {\r\n\t\tthis.remove();\r\n\t\tthis._map = map;\r\n\r\n\t\tvar container = this._container = this.onAdd(map),\r\n\t\t pos = this.getPosition(),\r\n\t\t corner = map._controlCorners[pos];\r\n\r\n\t\tDomUtil.addClass(container, 'leaflet-control');\r\n\r\n\t\tif (pos.indexOf('bottom') !== -1) {\r\n\t\t\tcorner.insertBefore(container, corner.firstChild);\r\n\t\t} else {\r\n\t\t\tcorner.appendChild(container);\r\n\t\t}\r\n\r\n\t\tthis._map.on('unload', this.remove, this);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method remove: this\r\n\t// Removes the control from the map it is currently active on.\r\n\tremove: function () {\r\n\t\tif (!this._map) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tDomUtil.remove(this._container);\r\n\r\n\t\tif (this.onRemove) {\r\n\t\t\tthis.onRemove(this._map);\r\n\t\t}\r\n\r\n\t\tthis._map.off('unload', this.remove, this);\r\n\t\tthis._map = null;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_refocusOnMap: function (e) {\r\n\t\t// if map exists and event is not a keyboard event\r\n\t\tif (this._map && e && e.screenX > 0 && e.screenY > 0) {\r\n\t\t\tthis._map.getContainer().focus();\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport var control = function (options) {\r\n\treturn new Control(options);\r\n};\r\n\r\n/* @section Extension methods\r\n * @uninheritable\r\n *\r\n * Every control should extend from `L.Control` and (re-)implement the following methods.\r\n *\r\n * @method onAdd(map: Map): HTMLElement\r\n * Should return the container DOM element for the control and add listeners on relevant map events. Called on [`control.addTo(map)`](#control-addTo).\r\n *\r\n * @method onRemove(map: Map)\r\n * Optional method. Should contain all clean up code that removes the listeners previously added in [`onAdd`](#control-onadd). Called on [`control.remove()`](#control-remove).\r\n */\r\n\r\n/* @namespace Map\r\n * @section Methods for Layers and Controls\r\n */\r\nMap.include({\r\n\t// @method addControl(control: Control): this\r\n\t// Adds the given control to the map\r\n\taddControl: function (control) {\r\n\t\tcontrol.addTo(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeControl(control: Control): this\r\n\t// Removes the given control from the map\r\n\tremoveControl: function (control) {\r\n\t\tcontrol.remove();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initControlPos: function () {\r\n\t\tvar corners = this._controlCorners = {},\r\n\t\t l = 'leaflet-',\r\n\t\t container = this._controlContainer =\r\n\t\t DomUtil.create('div', l + 'control-container', this._container);\r\n\r\n\t\tfunction createCorner(vSide, hSide) {\r\n\t\t\tvar className = l + vSide + ' ' + l + hSide;\r\n\r\n\t\t\tcorners[vSide + hSide] = DomUtil.create('div', className, container);\r\n\t\t}\r\n\r\n\t\tcreateCorner('top', 'left');\r\n\t\tcreateCorner('top', 'right');\r\n\t\tcreateCorner('bottom', 'left');\r\n\t\tcreateCorner('bottom', 'right');\r\n\t},\r\n\r\n\t_clearControlPos: function () {\r\n\t\tfor (var i in this._controlCorners) {\r\n\t\t\tDomUtil.remove(this._controlCorners[i]);\r\n\t\t}\r\n\t\tDomUtil.remove(this._controlContainer);\r\n\t\tdelete this._controlCorners;\r\n\t\tdelete this._controlContainer;\r\n\t}\r\n});\r\n","\r\nimport {Control} from './Control';\r\nimport * as Util from '../core/Util';\r\nimport * as Browser from '../core/Browser';\r\nimport * as DomEvent from '../dom/DomEvent';\r\nimport * as DomUtil from '../dom/DomUtil';\r\n\r\n/*\r\n * @class Control.Layers\r\n * @aka L.Control.Layers\r\n * @inherits Control\r\n *\r\n * The layers control gives users the ability to switch between different base layers and switch overlays on/off (check out the [detailed example](http://leafletjs.com/examples/layers-control/)). Extends `Control`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var baseLayers = {\r\n * \t\"Mapbox\": mapbox,\r\n * \t\"OpenStreetMap\": osm\r\n * };\r\n *\r\n * var overlays = {\r\n * \t\"Marker\": marker,\r\n * \t\"Roads\": roadsLayer\r\n * };\r\n *\r\n * L.control.layers(baseLayers, overlays).addTo(map);\r\n * ```\r\n *\r\n * The `baseLayers` and `overlays` parameters are object literals with layer names as keys and `Layer` objects as values:\r\n *\r\n * ```js\r\n * {\r\n * \"\": layer1,\r\n * \"\": layer2\r\n * }\r\n * ```\r\n *\r\n * The layer names can contain HTML, which allows you to add additional styling to the items:\r\n *\r\n * ```js\r\n * {\" My Layer\": myLayer}\r\n * ```\r\n */\r\n\r\nexport var Layers = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Layers options\r\n\toptions: {\r\n\t\t// @option collapsed: Boolean = true\r\n\t\t// If `true`, the control will be collapsed into an icon and expanded on mouse hover or touch.\r\n\t\tcollapsed: true,\r\n\t\tposition: 'topright',\r\n\r\n\t\t// @option autoZIndex: Boolean = true\r\n\t\t// If `true`, the control will assign zIndexes in increasing order to all of its layers so that the order is preserved when switching them on/off.\r\n\t\tautoZIndex: true,\r\n\r\n\t\t// @option hideSingleBase: Boolean = false\r\n\t\t// If `true`, the base layers in the control will be hidden when there is only one.\r\n\t\thideSingleBase: false,\r\n\r\n\t\t// @option sortLayers: Boolean = false\r\n\t\t// Whether to sort the layers. When `false`, layers will keep the order\r\n\t\t// in which they were added to the control.\r\n\t\tsortLayers: false,\r\n\r\n\t\t// @option sortFunction: Function = *\r\n\t\t// A [compare function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)\r\n\t\t// that will be used for sorting the layers, when `sortLayers` is `true`.\r\n\t\t// The function receives both the `L.Layer` instances and their names, as in\r\n\t\t// `sortFunction(layerA, layerB, nameA, nameB)`.\r\n\t\t// By default, it sorts layers alphabetically by their name.\r\n\t\tsortFunction: function (layerA, layerB, nameA, nameB) {\r\n\t\t\treturn nameA < nameB ? -1 : (nameB < nameA ? 1 : 0);\r\n\t\t}\r\n\t},\r\n\r\n\tinitialize: function (baseLayers, overlays, options) {\r\n\t\tUtil.setOptions(this, options);\r\n\r\n\t\tthis._layerControlInputs = [];\r\n\t\tthis._layers = [];\r\n\t\tthis._lastZIndex = 0;\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tfor (var i in baseLayers) {\r\n\t\t\tthis._addLayer(baseLayers[i], i);\r\n\t\t}\r\n\r\n\t\tfor (i in overlays) {\r\n\t\t\tthis._addLayer(overlays[i], i, true);\r\n\t\t}\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._initLayout();\r\n\t\tthis._update();\r\n\r\n\t\tthis._map = map;\r\n\t\tmap.on('zoomend', this._checkDisabledLayers, this);\r\n\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\t\t\tthis._layers[i].layer.on('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tControl.prototype.addTo.call(this, map);\r\n\t\t// Trigger expand after Layers Control has been inserted into DOM so that is now has an actual height.\r\n\t\treturn this._expandIfNotCollapsed();\r\n\t},\r\n\r\n\tonRemove: function () {\r\n\t\tthis._map.off('zoomend', this._checkDisabledLayers, this);\r\n\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\t\t\tthis._layers[i].layer.off('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addBaseLayer(layer: Layer, name: String): this\r\n\t// Adds a base layer (radio button entry) with the given name to the control.\r\n\taddBaseLayer: function (layer, name) {\r\n\t\tthis._addLayer(layer, name);\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method addOverlay(layer: Layer, name: String): this\r\n\t// Adds an overlay (checkbox entry) with the given name to the control.\r\n\taddOverlay: function (layer, name) {\r\n\t\tthis._addLayer(layer, name, true);\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method removeLayer(layer: Layer): this\r\n\t// Remove the given layer from the control.\r\n\tremoveLayer: function (layer) {\r\n\t\tlayer.off('add remove', this._onLayerChange, this);\r\n\r\n\t\tvar obj = this._getLayer(Util.stamp(layer));\r\n\t\tif (obj) {\r\n\t\t\tthis._layers.splice(this._layers.indexOf(obj), 1);\r\n\t\t}\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method expand(): this\r\n\t// Expand the control container if collapsed.\r\n\texpand: function () {\r\n\t\tDomUtil.addClass(this._container, 'leaflet-control-layers-expanded');\r\n\t\tthis._section.style.height = null;\r\n\t\tvar acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);\r\n\t\tif (acceptableHeight < this._section.clientHeight) {\r\n\t\t\tDomUtil.addClass(this._section, 'leaflet-control-layers-scrollbar');\r\n\t\t\tthis._section.style.height = acceptableHeight + 'px';\r\n\t\t} else {\r\n\t\t\tDomUtil.removeClass(this._section, 'leaflet-control-layers-scrollbar');\r\n\t\t}\r\n\t\tthis._checkDisabledLayers();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method collapse(): this\r\n\t// Collapse the control container if expanded.\r\n\tcollapse: function () {\r\n\t\tDomUtil.removeClass(this._container, 'leaflet-control-layers-expanded');\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar className = 'leaflet-control-layers',\r\n\t\t container = this._container = DomUtil.create('div', className),\r\n\t\t collapsed = this.options.collapsed;\r\n\r\n\t\t// makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\r\n\t\tcontainer.setAttribute('aria-haspopup', true);\r\n\r\n\t\tDomEvent.disableClickPropagation(container);\r\n\t\tDomEvent.disableScrollPropagation(container);\r\n\r\n\t\tvar section = this._section = DomUtil.create('section', className + '-list');\r\n\r\n\t\tif (collapsed) {\r\n\t\t\tthis._map.on('click', this.collapse, this);\r\n\r\n\t\t\tif (!Browser.android) {\r\n\t\t\t\tDomEvent.on(container, {\r\n\t\t\t\t\tmouseenter: this.expand,\r\n\t\t\t\t\tmouseleave: this.collapse\r\n\t\t\t\t}, this);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar link = this._layersLink = DomUtil.create('a', className + '-toggle', container);\r\n\t\tlink.href = '#';\r\n\t\tlink.title = 'Layers';\r\n\r\n\t\tif (Browser.touch) {\r\n\t\t\tDomEvent.on(link, 'click', DomEvent.stop);\r\n\t\t\tDomEvent.on(link, 'click', this.expand, this);\r\n\t\t} else {\r\n\t\t\tDomEvent.on(link, 'focus', this.expand, this);\r\n\t\t}\r\n\r\n\t\tif (!collapsed) {\r\n\t\t\tthis.expand();\r\n\t\t}\r\n\r\n\t\tthis._baseLayersList = DomUtil.create('div', className + '-base', section);\r\n\t\tthis._separator = DomUtil.create('div', className + '-separator', section);\r\n\t\tthis._overlaysList = DomUtil.create('div', className + '-overlays', section);\r\n\r\n\t\tcontainer.appendChild(section);\r\n\t},\r\n\r\n\t_getLayer: function (id) {\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\r\n\t\t\tif (this._layers[i] && Util.stamp(this._layers[i].layer) === id) {\r\n\t\t\t\treturn this._layers[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_addLayer: function (layer, name, overlay) {\r\n\t\tif (this._map) {\r\n\t\t\tlayer.on('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\r\n\t\tthis._layers.push({\r\n\t\t\tlayer: layer,\r\n\t\t\tname: name,\r\n\t\t\toverlay: overlay\r\n\t\t});\r\n\r\n\t\tif (this.options.sortLayers) {\r\n\t\t\tthis._layers.sort(Util.bind(function (a, b) {\r\n\t\t\t\treturn this.options.sortFunction(a.layer, b.layer, a.name, b.name);\r\n\t\t\t}, this));\r\n\t\t}\r\n\r\n\t\tif (this.options.autoZIndex && layer.setZIndex) {\r\n\t\t\tthis._lastZIndex++;\r\n\t\t\tlayer.setZIndex(this._lastZIndex);\r\n\t\t}\r\n\r\n\t\tthis._expandIfNotCollapsed();\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._container) { return this; }\r\n\r\n\t\tDomUtil.empty(this._baseLayersList);\r\n\t\tDomUtil.empty(this._overlaysList);\r\n\r\n\t\tthis._layerControlInputs = [];\r\n\t\tvar baseLayersPresent, overlaysPresent, i, obj, baseLayersCount = 0;\r\n\r\n\t\tfor (i = 0; i < this._layers.length; i++) {\r\n\t\t\tobj = this._layers[i];\r\n\t\t\tthis._addItem(obj);\r\n\t\t\toverlaysPresent = overlaysPresent || obj.overlay;\r\n\t\t\tbaseLayersPresent = baseLayersPresent || !obj.overlay;\r\n\t\t\tbaseLayersCount += !obj.overlay ? 1 : 0;\r\n\t\t}\r\n\r\n\t\t// Hide base layers section if there's only one layer.\r\n\t\tif (this.options.hideSingleBase) {\r\n\t\t\tbaseLayersPresent = baseLayersPresent && baseLayersCount > 1;\r\n\t\t\tthis._baseLayersList.style.display = baseLayersPresent ? '' : 'none';\r\n\t\t}\r\n\r\n\t\tthis._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none';\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_onLayerChange: function (e) {\r\n\t\tif (!this._handlingClick) {\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\tvar obj = this._getLayer(Util.stamp(e.target));\r\n\r\n\t\t// @namespace Map\r\n\t\t// @section Layer events\r\n\t\t// @event baselayerchange: LayersControlEvent\r\n\t\t// Fired when the base layer is changed through the [layers control](#control-layers).\r\n\t\t// @event overlayadd: LayersControlEvent\r\n\t\t// Fired when an overlay is selected through the [layers control](#control-layers).\r\n\t\t// @event overlayremove: LayersControlEvent\r\n\t\t// Fired when an overlay is deselected through the [layers control](#control-layers).\r\n\t\t// @namespace Control.Layers\r\n\t\tvar type = obj.overlay ?\r\n\t\t\t(e.type === 'add' ? 'overlayadd' : 'overlayremove') :\r\n\t\t\t(e.type === 'add' ? 'baselayerchange' : null);\r\n\r\n\t\tif (type) {\r\n\t\t\tthis._map.fire(type, obj);\r\n\t\t}\r\n\t},\r\n\r\n\t// IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see http://bit.ly/PqYLBe)\r\n\t_createRadioElement: function (name, checked) {\r\n\r\n\t\tvar radioHtml = '';\r\n\r\n\t\tvar radioFragment = document.createElement('div');\r\n\t\tradioFragment.innerHTML = radioHtml;\r\n\r\n\t\treturn radioFragment.firstChild;\r\n\t},\r\n\r\n\t_addItem: function (obj) {\r\n\t\tvar label = document.createElement('label'),\r\n\t\t checked = this._map.hasLayer(obj.layer),\r\n\t\t input;\r\n\r\n\t\tif (obj.overlay) {\r\n\t\t\tinput = document.createElement('input');\r\n\t\t\tinput.type = 'checkbox';\r\n\t\t\tinput.className = 'leaflet-control-layers-selector';\r\n\t\t\tinput.defaultChecked = checked;\r\n\t\t} else {\r\n\t\t\tinput = this._createRadioElement('leaflet-base-layers_' + Util.stamp(this), checked);\r\n\t\t}\r\n\r\n\t\tthis._layerControlInputs.push(input);\r\n\t\tinput.layerId = Util.stamp(obj.layer);\r\n\r\n\t\tDomEvent.on(input, 'click', this._onInputClick, this);\r\n\r\n\t\tvar name = document.createElement('span');\r\n\t\tname.innerHTML = ' ' + obj.name;\r\n\r\n\t\t// Helps from preventing layer control flicker when checkboxes are disabled\r\n\t\t// https://github.com/Leaflet/Leaflet/issues/2771\r\n\t\tvar holder = document.createElement('div');\r\n\r\n\t\tlabel.appendChild(holder);\r\n\t\tholder.appendChild(input);\r\n\t\tholder.appendChild(name);\r\n\r\n\t\tvar container = obj.overlay ? this._overlaysList : this._baseLayersList;\r\n\t\tcontainer.appendChild(label);\r\n\r\n\t\tthis._checkDisabledLayers();\r\n\t\treturn label;\r\n\t},\r\n\r\n\t_onInputClick: function () {\r\n\t\tvar inputs = this._layerControlInputs,\r\n\t\t input, layer;\r\n\t\tvar addedLayers = [],\r\n\t\t removedLayers = [];\r\n\r\n\t\tthis._handlingClick = true;\r\n\r\n\t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n\t\t\tinput = inputs[i];\r\n\t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\r\n\t\t\tif (input.checked) {\r\n\t\t\t\taddedLayers.push(layer);\r\n\t\t\t} else if (!input.checked) {\r\n\t\t\t\tremovedLayers.push(layer);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Bugfix issue 2318: Should remove all old layers before readding new ones\r\n\t\tfor (i = 0; i < removedLayers.length; i++) {\r\n\t\t\tif (this._map.hasLayer(removedLayers[i])) {\r\n\t\t\t\tthis._map.removeLayer(removedLayers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i = 0; i < addedLayers.length; i++) {\r\n\t\t\tif (!this._map.hasLayer(addedLayers[i])) {\r\n\t\t\t\tthis._map.addLayer(addedLayers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tthis._refocusOnMap();\r\n\t},\r\n\r\n\t_checkDisabledLayers: function () {\r\n\t\tvar inputs = this._layerControlInputs,\r\n\t\t input,\r\n\t\t layer,\r\n\t\t zoom = this._map.getZoom();\r\n\r\n\t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n\t\t\tinput = inputs[i];\r\n\t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\t\t\tinput.disabled = (layer.options.minZoom !== undefined && zoom < layer.options.minZoom) ||\r\n\t\t\t (layer.options.maxZoom !== undefined && zoom > layer.options.maxZoom);\r\n\r\n\t\t}\r\n\t},\r\n\r\n\t_expandIfNotCollapsed: function () {\r\n\t\tif (this._map && !this.options.collapsed) {\r\n\t\t\tthis.expand();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_expand: function () {\r\n\t\t// Backward compatibility, remove me in 1.1.\r\n\t\treturn this.expand();\r\n\t},\r\n\r\n\t_collapse: function () {\r\n\t\t// Backward compatibility, remove me in 1.1.\r\n\t\treturn this.collapse();\r\n\t}\r\n\r\n});\r\n\r\n\r\n// @factory L.control.layers(baselayers?: Object, overlays?: Object, options?: Control.Layers options)\r\n// Creates a layers control with the given layers. Base layers will be switched with radio buttons, while overlays will be switched with checkboxes. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation.\r\nexport var layers = function (baseLayers, overlays, options) {\r\n\treturn new Layers(baseLayers, overlays, options);\r\n};\r\n","\r\nimport {Control} from './Control';\r\nimport {Map} from '../map/Map';\r\nimport * as DomUtil from '../dom/DomUtil';\r\nimport * as DomEvent from '../dom/DomEvent';\r\n\r\n/*\r\n * @class Control.Zoom\r\n * @aka L.Control.Zoom\r\n * @inherits Control\r\n *\r\n * A basic zoom control with two buttons (zoom in and zoom out). It is put on the map by default unless you set its [`zoomControl` option](#map-zoomcontrol) to `false`. Extends `Control`.\r\n */\r\n\r\nexport var Zoom = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Zoom options\r\n\toptions: {\r\n\t\tposition: 'topleft',\r\n\r\n\t\t// @option zoomInText: String = '+'\r\n\t\t// The text set on the 'zoom in' button.\r\n\t\tzoomInText: '+',\r\n\r\n\t\t// @option zoomInTitle: String = 'Zoom in'\r\n\t\t// The title set on the 'zoom in' button.\r\n\t\tzoomInTitle: 'Zoom in',\r\n\r\n\t\t// @option zoomOutText: String = '−'\r\n\t\t// The text set on the 'zoom out' button.\r\n\t\tzoomOutText: '−',\r\n\r\n\t\t// @option zoomOutTitle: String = 'Zoom out'\r\n\t\t// The title set on the 'zoom out' button.\r\n\t\tzoomOutTitle: 'Zoom out'\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tvar zoomName = 'leaflet-control-zoom',\r\n\t\t container = DomUtil.create('div', zoomName + ' leaflet-bar'),\r\n\t\t options = this.options;\r\n\r\n\t\tthis._zoomInButton = this._createButton(options.zoomInText, options.zoomInTitle,\r\n\t\t zoomName + '-in', container, this._zoomIn);\r\n\t\tthis._zoomOutButton = this._createButton(options.zoomOutText, options.zoomOutTitle,\r\n\t\t zoomName + '-out', container, this._zoomOut);\r\n\r\n\t\tthis._updateDisabled();\r\n\t\tmap.on('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\r\n\t\treturn container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap.off('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\t},\r\n\r\n\tdisable: function () {\r\n\t\tthis._disabled = true;\r\n\t\tthis._updateDisabled();\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function () {\r\n\t\tthis._disabled = false;\r\n\t\tthis._updateDisabled();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_zoomIn: function (e) {\r\n\t\tif (!this._disabled && this._map._zoom < this._map.getMaxZoom()) {\r\n\t\t\tthis._map.zoomIn(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n\t\t}\r\n\t},\r\n\r\n\t_zoomOut: function (e) {\r\n\t\tif (!this._disabled && this._map._zoom > this._map.getMinZoom()) {\r\n\t\t\tthis._map.zoomOut(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n\t\t}\r\n\t},\r\n\r\n\t_createButton: function (html, title, className, container, fn) {\r\n\t\tvar link = DomUtil.create('a', className, container);\r\n\t\tlink.innerHTML = html;\r\n\t\tlink.href = '#';\r\n\t\tlink.title = title;\r\n\r\n\t\t/*\r\n\t\t * Will force screen readers like VoiceOver to read this as \"Zoom in - button\"\r\n\t\t */\r\n\t\tlink.setAttribute('role', 'button');\r\n\t\tlink.setAttribute('aria-label', title);\r\n\r\n\t\tDomEvent.disableClickPropagation(link);\r\n\t\tDomEvent.on(link, 'click', DomEvent.stop);\r\n\t\tDomEvent.on(link, 'click', fn, this);\r\n\t\tDomEvent.on(link, 'click', this._refocusOnMap, this);\r\n\r\n\t\treturn link;\r\n\t},\r\n\r\n\t_updateDisabled: function () {\r\n\t\tvar map = this._map,\r\n\t\t className = 'leaflet-disabled';\r\n\r\n\t\tDomUtil.removeClass(this._zoomInButton, className);\r\n\t\tDomUtil.removeClass(this._zoomOutButton, className);\r\n\r\n\t\tif (this._disabled || map._zoom === map.getMinZoom()) {\r\n\t\t\tDomUtil.addClass(this._zoomOutButton, className);\r\n\t\t}\r\n\t\tif (this._disabled || map._zoom === map.getMaxZoom()) {\r\n\t\t\tDomUtil.addClass(this._zoomInButton, className);\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// @namespace Map\r\n// @section Control options\r\n// @option zoomControl: Boolean = true\r\n// Whether a [zoom control](#control-zoom) is added to the map by default.\r\nMap.mergeOptions({\r\n\tzoomControl: true\r\n});\r\n\r\nMap.addInitHook(function () {\r\n\tif (this.options.zoomControl) {\r\n\t\t// @section Controls\r\n\t\t// @property zoomControl: Control.Zoom\r\n\t\t// The default zoom control (only available if the\r\n\t\t// [`zoomControl` option](#map-zoomcontrol) was `true` when creating the map).\r\n\t\tthis.zoomControl = new Zoom();\r\n\t\tthis.addControl(this.zoomControl);\r\n\t}\r\n});\r\n\r\n// @namespace Control.Zoom\r\n// @factory L.control.zoom(options: Control.Zoom options)\r\n// Creates a zoom control\r\nexport var zoom = function (options) {\r\n\treturn new Zoom(options);\r\n};\r\n","\nimport {Control} from './Control';\nimport * as DomUtil from '../dom/DomUtil';\n\n/*\n * @class Control.Scale\n * @aka L.Control.Scale\n * @inherits Control\n *\n * A simple scale control that shows the scale of the current center of screen in metric (m/km) and imperial (mi/ft) systems. Extends `Control`.\n *\n * @example\n *\n * ```js\n * L.control.scale().addTo(map);\n * ```\n */\n\nexport var Scale = Control.extend({\n\t// @section\n\t// @aka Control.Scale options\n\toptions: {\n\t\tposition: 'bottomleft',\n\n\t\t// @option maxWidth: Number = 100\n\t\t// Maximum width of the control in pixels. The width is set dynamically to show round values (e.g. 100, 200, 500).\n\t\tmaxWidth: 100,\n\n\t\t// @option metric: Boolean = True\n\t\t// Whether to show the metric scale line (m/km).\n\t\tmetric: true,\n\n\t\t// @option imperial: Boolean = True\n\t\t// Whether to show the imperial scale line (mi/ft).\n\t\timperial: true\n\n\t\t// @option updateWhenIdle: Boolean = false\n\t\t// If `true`, the control is updated on [`moveend`](#map-moveend), otherwise it's always up-to-date (updated on [`move`](#map-move)).\n\t},\n\n\tonAdd: function (map) {\n\t\tvar className = 'leaflet-control-scale',\n\t\t container = DomUtil.create('div', className),\n\t\t options = this.options;\n\n\t\tthis._addScales(options, className + '-line', container);\n\n\t\tmap.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t\tmap.whenReady(this._update, this);\n\n\t\treturn container;\n\t},\n\n\tonRemove: function (map) {\n\t\tmap.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t},\n\n\t_addScales: function (options, className, container) {\n\t\tif (options.metric) {\n\t\t\tthis._mScale = DomUtil.create('div', className, container);\n\t\t}\n\t\tif (options.imperial) {\n\t\t\tthis._iScale = DomUtil.create('div', className, container);\n\t\t}\n\t},\n\n\t_update: function () {\n\t\tvar map = this._map,\n\t\t y = map.getSize().y / 2;\n\n\t\tvar maxMeters = map.distance(\n\t\t\tmap.containerPointToLatLng([0, y]),\n\t\t\tmap.containerPointToLatLng([this.options.maxWidth, y]));\n\n\t\tthis._updateScales(maxMeters);\n\t},\n\n\t_updateScales: function (maxMeters) {\n\t\tif (this.options.metric && maxMeters) {\n\t\t\tthis._updateMetric(maxMeters);\n\t\t}\n\t\tif (this.options.imperial && maxMeters) {\n\t\t\tthis._updateImperial(maxMeters);\n\t\t}\n\t},\n\n\t_updateMetric: function (maxMeters) {\n\t\tvar meters = this._getRoundNum(maxMeters),\n\t\t label = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km';\n\n\t\tthis._updateScale(this._mScale, label, meters / maxMeters);\n\t},\n\n\t_updateImperial: function (maxMeters) {\n\t\tvar maxFeet = maxMeters * 3.2808399,\n\t\t maxMiles, miles, feet;\n\n\t\tif (maxFeet > 5280) {\n\t\t\tmaxMiles = maxFeet / 5280;\n\t\t\tmiles = this._getRoundNum(maxMiles);\n\t\t\tthis._updateScale(this._iScale, miles + ' mi', miles / maxMiles);\n\n\t\t} else {\n\t\t\tfeet = this._getRoundNum(maxFeet);\n\t\t\tthis._updateScale(this._iScale, feet + ' ft', feet / maxFeet);\n\t\t}\n\t},\n\n\t_updateScale: function (scale, text, ratio) {\n\t\tscale.style.width = Math.round(this.options.maxWidth * ratio) + 'px';\n\t\tscale.innerHTML = text;\n\t},\n\n\t_getRoundNum: function (num) {\n\t\tvar pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),\n\t\t d = num / pow10;\n\n\t\td = d >= 10 ? 10 :\n\t\t d >= 5 ? 5 :\n\t\t d >= 3 ? 3 :\n\t\t d >= 2 ? 2 : 1;\n\n\t\treturn pow10 * d;\n\t}\n});\n\n\n// @factory L.control.scale(options?: Control.Scale options)\n// Creates an scale control with the given options.\nexport var scale = function (options) {\n\treturn new Scale(options);\n};\n","\r\nimport {Control} from './Control';\r\nimport {Map} from '../map/Map';\r\nimport * as Util from '../core/Util';\r\nimport * as DomEvent from '../dom/DomEvent';\r\nimport * as DomUtil from '../dom/DomUtil';\r\n\r\n/*\r\n * @class Control.Attribution\r\n * @aka L.Control.Attribution\r\n * @inherits Control\r\n *\r\n * The attribution control allows you to display attribution data in a small text box on a map. It is put on the map by default unless you set its [`attributionControl` option](#map-attributioncontrol) to `false`, and it fetches attribution texts from layers with the [`getAttribution` method](#layer-getattribution) automatically. Extends Control.\r\n */\r\n\r\nexport var Attribution = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Attribution options\r\n\toptions: {\r\n\t\tposition: 'bottomright',\r\n\r\n\t\t// @option prefix: String = 'Leaflet'\r\n\t\t// The HTML text shown before the attributions. Pass `false` to disable.\r\n\t\tprefix: 'Leaflet'\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tUtil.setOptions(this, options);\r\n\r\n\t\tthis._attributions = {};\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tmap.attributionControl = this;\r\n\t\tthis._container = DomUtil.create('div', 'leaflet-control-attribution');\r\n\t\tDomEvent.disableClickPropagation(this._container);\r\n\r\n\t\t// TODO ugly, refactor\r\n\t\tfor (var i in map._layers) {\r\n\t\t\tif (map._layers[i].getAttribution) {\r\n\t\t\t\tthis.addAttribution(map._layers[i].getAttribution());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._update();\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\t// @method setPrefix(prefix: String): this\r\n\t// Sets the text before the attributions.\r\n\tsetPrefix: function (prefix) {\r\n\t\tthis.options.prefix = prefix;\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method addAttribution(text: String): this\r\n\t// Adds an attribution text (e.g. `'Vector data © Mapbox'`).\r\n\taddAttribution: function (text) {\r\n\t\tif (!text) { return this; }\r\n\r\n\t\tif (!this._attributions[text]) {\r\n\t\t\tthis._attributions[text] = 0;\r\n\t\t}\r\n\t\tthis._attributions[text]++;\r\n\r\n\t\tthis._update();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeAttribution(text: String): this\r\n\t// Removes an attribution text.\r\n\tremoveAttribution: function (text) {\r\n\t\tif (!text) { return this; }\r\n\r\n\t\tif (this._attributions[text]) {\r\n\t\t\tthis._attributions[text]--;\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tvar attribs = [];\r\n\r\n\t\tfor (var i in this._attributions) {\r\n\t\t\tif (this._attributions[i]) {\r\n\t\t\t\tattribs.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar prefixAndAttribs = [];\r\n\r\n\t\tif (this.options.prefix) {\r\n\t\t\tprefixAndAttribs.push(this.options.prefix);\r\n\t\t}\r\n\t\tif (attribs.length) {\r\n\t\t\tprefixAndAttribs.push(attribs.join(', '));\r\n\t\t}\r\n\r\n\t\tthis._container.innerHTML = prefixAndAttribs.join(' | ');\r\n\t}\r\n});\r\n\r\n// @namespace Map\r\n// @section Control options\r\n// @option attributionControl: Boolean = true\r\n// Whether a [attribution control](#control-attribution) is added to the map by default.\r\nMap.mergeOptions({\r\n\tattributionControl: true\r\n});\r\n\r\nMap.addInitHook(function () {\r\n\tif (this.options.attributionControl) {\r\n\t\tnew Attribution().addTo(this);\r\n\t}\r\n});\r\n\r\n// @namespace Control.Attribution\r\n// @factory L.control.attribution(options: Control.Attribution options)\r\n// Creates an attribution control.\r\nexport var attribution = function (options) {\r\n\treturn new Attribution(options);\r\n};\r\n","import {Control, control} from './Control';\nimport {Layers, layers} from './Control.Layers';\nimport {Zoom, zoom} from './Control.Zoom';\nimport {Scale, scale} from './Control.Scale';\nimport {Attribution, attribution} from './Control.Attribution';\n\nControl.Layers = Layers;\nControl.Zoom = Zoom;\nControl.Scale = Scale;\nControl.Attribution = Attribution;\n\ncontrol.layers = layers;\ncontrol.zoom = zoom;\ncontrol.scale = scale;\ncontrol.attribution = attribution;\n\nexport {Control, control};\n","import {Class} from './Class';\n\n/*\n\tL.Handler is a base class for handler classes that are used internally to inject\n\tinteraction features like dragging to classes like Map and Marker.\n*/\n\n// @class Handler\n// @aka L.Handler\n// Abstract class for map interaction handlers\n\nexport var Handler = Class.extend({\n\tinitialize: function (map) {\n\t\tthis._map = map;\n\t},\n\n\t// @method enable(): this\n\t// Enables the handler\n\tenable: function () {\n\t\tif (this._enabled) { return this; }\n\n\t\tthis._enabled = true;\n\t\tthis.addHooks();\n\t\treturn this;\n\t},\n\n\t// @method disable(): this\n\t// Disables the handler\n\tdisable: function () {\n\t\tif (!this._enabled) { return this; }\n\n\t\tthis._enabled = false;\n\t\tthis.removeHooks();\n\t\treturn this;\n\t},\n\n\t// @method enabled(): Boolean\n\t// Returns `true` if the handler is enabled\n\tenabled: function () {\n\t\treturn !!this._enabled;\n\t}\n\n\t// @section Extension methods\n\t// Classes inheriting from `Handler` must implement the two following methods:\n\t// @method addHooks()\n\t// Called when the handler is enabled, should add event hooks.\n\t// @method removeHooks()\n\t// Called when the handler is disabled, should remove the event hooks added previously.\n});\n\n// @section There is static function which can be called without instantiating L.Handler:\n// @function addTo(map: Map, name: String): this\n// Adds a new Handler to the given map with the given name.\nHandler.addTo = function (map, name) {\n\tmap.addHandler(name, this);\n\treturn this;\n};\n","import * as Browser from './Browser';\nexport {Browser};\n\nexport {Class} from './Class';\n\nimport {Evented} from './Events';\nimport {Events} from './Events';\nexport {Evented};\nexport var Mixin = {Events: Events};\n\nexport {Handler} from './Handler';\n\nimport * as Util from './Util';\nexport {Util};\nexport {extend, bind, stamp, setOptions} from './Util';\n","import {Point} from './Point';\r\nimport * as Util from '../core/Util';\r\n\r\n\r\n/*\r\n * @namespace LineUtil\r\n *\r\n * Various utility functions for polyline points processing, used by Leaflet internally to make polylines lightning-fast.\r\n */\r\n\r\n// Simplify polyline with vertex reduction and Douglas-Peucker simplification.\r\n// Improves rendering performance dramatically by lessening the number of points to draw.\r\n\r\n// @function simplify(points: Point[], tolerance: Number): Point[]\r\n// Dramatically reduces the number of points in a polyline while retaining\r\n// its shape and returns a new array of simplified points, using the\r\n// [Douglas-Peucker algorithm](http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm).\r\n// Used for a huge performance boost when processing/displaying Leaflet polylines for\r\n// each zoom level and also reducing visual noise. tolerance affects the amount of\r\n// simplification (lesser value means higher quality but slower and with more points).\r\n// Also released as a separated micro-library [Simplify.js](http://mourner.github.com/simplify-js/).\r\nexport function simplify(points, tolerance) {\r\n\tif (!tolerance || !points.length) {\r\n\t\treturn points.slice();\r\n\t}\r\n\r\n\tvar sqTolerance = tolerance * tolerance;\r\n\r\n\t // stage 1: vertex reduction\r\n\t points = _reducePoints(points, sqTolerance);\r\n\r\n\t // stage 2: Douglas-Peucker simplification\r\n\t points = _simplifyDP(points, sqTolerance);\r\n\r\n\treturn points;\r\n}\r\n\r\n// @function pointToSegmentDistance(p: Point, p1: Point, p2: Point): Number\r\n// Returns the distance between point `p` and segment `p1` to `p2`.\r\nexport function pointToSegmentDistance(p, p1, p2) {\r\n\treturn Math.sqrt(_sqClosestPointOnSegment(p, p1, p2, true));\r\n}\r\n\r\n// @function closestPointOnSegment(p: Point, p1: Point, p2: Point): Number\r\n// Returns the closest point from a point `p` on a segment `p1` to `p2`.\r\nexport function closestPointOnSegment(p, p1, p2) {\r\n\treturn _sqClosestPointOnSegment(p, p1, p2);\r\n}\r\n\r\n// Douglas-Peucker simplification, see http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm\r\nfunction _simplifyDP(points, sqTolerance) {\r\n\r\n\tvar len = points.length,\r\n\t ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array,\r\n\t markers = new ArrayConstructor(len);\r\n\r\n\t markers[0] = markers[len - 1] = 1;\r\n\r\n\t_simplifyDPStep(points, markers, sqTolerance, 0, len - 1);\r\n\r\n\tvar i,\r\n\t newPoints = [];\r\n\r\n\tfor (i = 0; i < len; i++) {\r\n\t\tif (markers[i]) {\r\n\t\t\tnewPoints.push(points[i]);\r\n\t\t}\r\n\t}\r\n\r\n\treturn newPoints;\r\n}\r\n\r\nfunction _simplifyDPStep(points, markers, sqTolerance, first, last) {\r\n\r\n\tvar maxSqDist = 0,\r\n\tindex, i, sqDist;\r\n\r\n\tfor (i = first + 1; i <= last - 1; i++) {\r\n\t\tsqDist = _sqClosestPointOnSegment(points[i], points[first], points[last], true);\r\n\r\n\t\tif (sqDist > maxSqDist) {\r\n\t\t\tindex = i;\r\n\t\t\tmaxSqDist = sqDist;\r\n\t\t}\r\n\t}\r\n\r\n\tif (maxSqDist > sqTolerance) {\r\n\t\tmarkers[index] = 1;\r\n\r\n\t\t_simplifyDPStep(points, markers, sqTolerance, first, index);\r\n\t\t_simplifyDPStep(points, markers, sqTolerance, index, last);\r\n\t}\r\n}\r\n\r\n// reduce points that are too close to each other to a single point\r\nfunction _reducePoints(points, sqTolerance) {\r\n\tvar reducedPoints = [points[0]];\r\n\r\n\tfor (var i = 1, prev = 0, len = points.length; i < len; i++) {\r\n\t\tif (_sqDist(points[i], points[prev]) > sqTolerance) {\r\n\t\t\treducedPoints.push(points[i]);\r\n\t\t\tprev = i;\r\n\t\t}\r\n\t}\r\n\tif (prev < len - 1) {\r\n\t\treducedPoints.push(points[len - 1]);\r\n\t}\r\n\treturn reducedPoints;\r\n}\r\n\r\nvar _lastCode;\r\n\r\n// @function clipSegment(a: Point, b: Point, bounds: Bounds, useLastCode?: Boolean, round?: Boolean): Point[]|Boolean\r\n// Clips the segment a to b by rectangular bounds with the\r\n// [Cohen-Sutherland algorithm](https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm)\r\n// (modifying the segment points directly!). Used by Leaflet to only show polyline\r\n// points that are on the screen or near, increasing performance.\r\nexport function clipSegment(a, b, bounds, useLastCode, round) {\r\n\tvar codeA = useLastCode ? _lastCode : _getBitCode(a, bounds),\r\n\t codeB = _getBitCode(b, bounds),\r\n\r\n\t codeOut, p, newCode;\r\n\r\n\t // save 2nd code to avoid calculating it on the next segment\r\n\t _lastCode = codeB;\r\n\r\n\twhile (true) {\r\n\t\t// if a,b is inside the clip window (trivial accept)\r\n\t\tif (!(codeA | codeB)) {\r\n\t\t\treturn [a, b];\r\n\t\t}\r\n\r\n\t\t// if a,b is outside the clip window (trivial reject)\r\n\t\tif (codeA & codeB) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// other cases\r\n\t\tcodeOut = codeA || codeB;\r\n\t\tp = _getEdgeIntersection(a, b, codeOut, bounds, round);\r\n\t\tnewCode = _getBitCode(p, bounds);\r\n\r\n\t\tif (codeOut === codeA) {\r\n\t\t\ta = p;\r\n\t\t\tcodeA = newCode;\r\n\t\t} else {\r\n\t\t\tb = p;\r\n\t\t\tcodeB = newCode;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function _getEdgeIntersection(a, b, code, bounds, round) {\r\n\tvar dx = b.x - a.x,\r\n\t dy = b.y - a.y,\r\n\t min = bounds.min,\r\n\t max = bounds.max,\r\n\t x, y;\r\n\r\n\tif (code & 8) { // top\r\n\t\tx = a.x + dx * (max.y - a.y) / dy;\r\n\t\ty = max.y;\r\n\r\n\t} else if (code & 4) { // bottom\r\n\t\tx = a.x + dx * (min.y - a.y) / dy;\r\n\t\ty = min.y;\r\n\r\n\t} else if (code & 2) { // right\r\n\t\tx = max.x;\r\n\t\ty = a.y + dy * (max.x - a.x) / dx;\r\n\r\n\t} else if (code & 1) { // left\r\n\t\tx = min.x;\r\n\t\ty = a.y + dy * (min.x - a.x) / dx;\r\n\t}\r\n\r\n\treturn new Point(x, y, round);\r\n}\r\n\r\nexport function _getBitCode(p, bounds) {\r\n\tvar code = 0;\r\n\r\n\tif (p.x < bounds.min.x) { // left\r\n\t\tcode |= 1;\r\n\t} else if (p.x > bounds.max.x) { // right\r\n\t\tcode |= 2;\r\n\t}\r\n\r\n\tif (p.y < bounds.min.y) { // bottom\r\n\t\tcode |= 4;\r\n\t} else if (p.y > bounds.max.y) { // top\r\n\t\tcode |= 8;\r\n\t}\r\n\r\n\treturn code;\r\n}\r\n\r\n// square distance (to avoid unnecessary Math.sqrt calls)\r\nfunction _sqDist(p1, p2) {\r\n\tvar dx = p2.x - p1.x,\r\n\t dy = p2.y - p1.y;\r\n\treturn dx * dx + dy * dy;\r\n}\r\n\r\n// return closest point on segment or distance to that point\r\nexport function _sqClosestPointOnSegment(p, p1, p2, sqDist) {\r\n\tvar x = p1.x,\r\n\t y = p1.y,\r\n\t dx = p2.x - x,\r\n\t dy = p2.y - y,\r\n\t dot = dx * dx + dy * dy,\r\n\t t;\r\n\r\n\tif (dot > 0) {\r\n\t\tt = ((p.x - x) * dx + (p.y - y) * dy) / dot;\r\n\r\n\t\tif (t > 1) {\r\n\t\t\tx = p2.x;\r\n\t\t\ty = p2.y;\r\n\t\t} else if (t > 0) {\r\n\t\t\tx += dx * t;\r\n\t\t\ty += dy * t;\r\n\t\t}\r\n\t}\r\n\r\n\tdx = p.x - x;\r\n\tdy = p.y - y;\r\n\r\n\treturn sqDist ? dx * dx + dy * dy : new Point(x, y);\r\n}\r\n\r\n\r\n// @function isFlat(latlngs: LatLng[]): Boolean\r\n// Returns true if `latlngs` is a flat array, false is nested.\r\nexport function isFlat(latlngs) {\r\n\treturn !Util.isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');\r\n}\r\n\r\nexport function _flat(latlngs) {\r\n\tconsole.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.');\r\n\treturn isFlat(latlngs);\r\n}\r\n","import {Evented} from '../core/Events';\r\nimport * as Browser from '../core/Browser';\r\nimport * as DomEvent from './DomEvent';\r\nimport * as DomUtil from './DomUtil';\r\nimport * as Util from '../core/Util';\r\nimport {Point} from '../geometry/Point';\r\n\r\n/*\r\n * @class Draggable\r\n * @aka L.Draggable\r\n * @inherits Evented\r\n *\r\n * A class for making DOM elements draggable (including touch support).\r\n * Used internally for map and marker dragging. Only works for elements\r\n * that were positioned with [`L.DomUtil.setPosition`](#domutil-setposition).\r\n *\r\n * @example\r\n * ```js\r\n * var draggable = new L.Draggable(elementToDrag);\r\n * draggable.enable();\r\n * ```\r\n */\r\n\r\nvar START = Browser.touch ? 'touchstart mousedown' : 'mousedown';\r\nvar END = {\r\n\tmousedown: 'mouseup',\r\n\ttouchstart: 'touchend',\r\n\tpointerdown: 'touchend',\r\n\tMSPointerDown: 'touchend'\r\n};\r\nvar MOVE = {\r\n\tmousedown: 'mousemove',\r\n\ttouchstart: 'touchmove',\r\n\tpointerdown: 'touchmove',\r\n\tMSPointerDown: 'touchmove'\r\n};\r\n\r\n\r\nexport var Draggable = Evented.extend({\r\n\r\n\toptions: {\r\n\t\t// @section\r\n\t\t// @aka Draggable options\r\n\t\t// @option clickTolerance: Number = 3\r\n\t\t// The max number of pixels a user can shift the mouse pointer during a click\r\n\t\t// for it to be considered a valid click (as opposed to a mouse drag).\r\n\t\tclickTolerance: 3\r\n\t},\r\n\r\n\t// @constructor L.Draggable(el: HTMLElement, dragHandle?: HTMLElement, preventOutline?: Boolean, options?: Draggable options)\r\n\t// Creates a `Draggable` object for moving `el` when you start dragging the `dragHandle` element (equals `el` itself by default).\r\n\tinitialize: function (element, dragStartTarget, preventOutline, options) {\r\n\t\tUtil.setOptions(this, options);\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._dragStartTarget = dragStartTarget || element;\r\n\t\tthis._preventOutline = preventOutline;\r\n\t},\r\n\r\n\t// @method enable()\r\n\t// Enables the dragging ability\r\n\tenable: function () {\r\n\t\tif (this._enabled) { return; }\r\n\r\n\t\tDomEvent.on(this._dragStartTarget, START, this._onDown, this);\r\n\r\n\t\tthis._enabled = true;\r\n\t},\r\n\r\n\t// @method disable()\r\n\t// Disables the dragging ability\r\n\tdisable: function () {\r\n\t\tif (!this._enabled) { return; }\r\n\r\n\t\t// If we're currently dragging this draggable,\r\n\t\t// disabling it counts as first ending the drag.\r\n\t\tif (Draggable._dragging === this) {\r\n\t\t\tthis.finishDrag();\r\n\t\t}\r\n\r\n\t\tDomEvent.off(this._dragStartTarget, START, this._onDown, this);\r\n\r\n\t\tthis._enabled = false;\r\n\t\tthis._moved = false;\r\n\t},\r\n\r\n\t_onDown: function (e) {\r\n\t\t// Ignore simulated events, since we handle both touch and\r\n\t\t// mouse explicitly; otherwise we risk getting duplicates of\r\n\t\t// touch events, see #4315.\r\n\t\t// Also ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (e._simulated || !this._enabled) { return; }\r\n\r\n\t\tthis._moved = false;\r\n\r\n\t\tif (DomUtil.hasClass(this._element, 'leaflet-zoom-anim')) { return; }\r\n\r\n\t\tif (Draggable._dragging || e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; }\r\n\t\tDraggable._dragging = this; // Prevent dragging multiple objects at once.\r\n\r\n\t\tif (this._preventOutline) {\r\n\t\t\tDomUtil.preventOutline(this._element);\r\n\t\t}\r\n\r\n\t\tDomUtil.disableImageDrag();\r\n\t\tDomUtil.disableTextSelection();\r\n\r\n\t\tif (this._moving) { return; }\r\n\r\n\t\t// @event down: Event\r\n\t\t// Fired when a drag is about to start.\r\n\t\tthis.fire('down');\r\n\r\n\t\tvar first = e.touches ? e.touches[0] : e,\r\n\t\t sizedParent = DomUtil.getSizedParentNode(this._element);\r\n\r\n\t\tthis._startPoint = new Point(first.clientX, first.clientY);\r\n\r\n\t\t// Cache the scale, so that we can continuously compensate for it during drag (_onMove).\r\n\t\tthis._parentScale = DomUtil.getScale(sizedParent);\r\n\r\n\t\tDomEvent.on(document, MOVE[e.type], this._onMove, this);\r\n\t\tDomEvent.on(document, END[e.type], this._onUp, this);\r\n\t},\r\n\r\n\t_onMove: function (e) {\r\n\t\t// Ignore simulated events, since we handle both touch and\r\n\t\t// mouse explicitly; otherwise we risk getting duplicates of\r\n\t\t// touch events, see #4315.\r\n\t\t// Also ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (e._simulated || !this._enabled) { return; }\r\n\r\n\t\tif (e.touches && e.touches.length > 1) {\r\n\t\t\tthis._moved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar first = (e.touches && e.touches.length === 1 ? e.touches[0] : e),\r\n\t\t offset = new Point(first.clientX, first.clientY)._subtract(this._startPoint);\r\n\r\n\t\tif (!offset.x && !offset.y) { return; }\r\n\t\tif (Math.abs(offset.x) + Math.abs(offset.y) < this.options.clickTolerance) { return; }\r\n\r\n\t\t// We assume that the parent container's position, border and scale do not change for the duration of the drag.\r\n\t\t// Therefore there is no need to account for the position and border (they are eliminated by the subtraction)\r\n\t\t// and we can use the cached value for the scale.\r\n\t\toffset.x /= this._parentScale.x;\r\n\t\toffset.y /= this._parentScale.y;\r\n\r\n\t\tDomEvent.preventDefault(e);\r\n\r\n\t\tif (!this._moved) {\r\n\t\t\t// @event dragstart: Event\r\n\t\t\t// Fired when a drag starts\r\n\t\t\tthis.fire('dragstart');\r\n\r\n\t\t\tthis._moved = true;\r\n\t\t\tthis._startPos = DomUtil.getPosition(this._element).subtract(offset);\r\n\r\n\t\t\tDomUtil.addClass(document.body, 'leaflet-dragging');\r\n\r\n\t\t\tthis._lastTarget = e.target || e.srcElement;\r\n\t\t\t// IE and Edge do not give the element, so fetch it\r\n\t\t\t// if necessary\r\n\t\t\tif (window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance) {\r\n\t\t\t\tthis._lastTarget = this._lastTarget.correspondingUseElement;\r\n\t\t\t}\r\n\t\t\tDomUtil.addClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t}\r\n\r\n\t\tthis._newPos = this._startPos.add(offset);\r\n\t\tthis._moving = true;\r\n\r\n\t\tUtil.cancelAnimFrame(this._animRequest);\r\n\t\tthis._lastEvent = e;\r\n\t\tthis._animRequest = Util.requestAnimFrame(this._updatePosition, this, true);\r\n\t},\r\n\r\n\t_updatePosition: function () {\r\n\t\tvar e = {originalEvent: this._lastEvent};\r\n\r\n\t\t// @event predrag: Event\r\n\t\t// Fired continuously during dragging *before* each corresponding\r\n\t\t// update of the element's position.\r\n\t\tthis.fire('predrag', e);\r\n\t\tDomUtil.setPosition(this._element, this._newPos);\r\n\r\n\t\t// @event drag: Event\r\n\t\t// Fired continuously during dragging.\r\n\t\tthis.fire('drag', e);\r\n\t},\r\n\r\n\t_onUp: function (e) {\r\n\t\t// Ignore simulated events, since we handle both touch and\r\n\t\t// mouse explicitly; otherwise we risk getting duplicates of\r\n\t\t// touch events, see #4315.\r\n\t\t// Also ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (e._simulated || !this._enabled) { return; }\r\n\t\tthis.finishDrag();\r\n\t},\r\n\r\n\tfinishDrag: function () {\r\n\t\tDomUtil.removeClass(document.body, 'leaflet-dragging');\r\n\r\n\t\tif (this._lastTarget) {\r\n\t\t\tDomUtil.removeClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t\tthis._lastTarget = null;\r\n\t\t}\r\n\r\n\t\tfor (var i in MOVE) {\r\n\t\t\tDomEvent.off(document, MOVE[i], this._onMove, this);\r\n\t\t\tDomEvent.off(document, END[i], this._onUp, this);\r\n\t\t}\r\n\r\n\t\tDomUtil.enableImageDrag();\r\n\t\tDomUtil.enableTextSelection();\r\n\r\n\t\tif (this._moved && this._moving) {\r\n\t\t\t// ensure drag is not fired after dragend\r\n\t\t\tUtil.cancelAnimFrame(this._animRequest);\r\n\r\n\t\t\t// @event dragend: DragEndEvent\r\n\t\t\t// Fired when the drag ends.\r\n\t\t\tthis.fire('dragend', {\r\n\t\t\t\tdistance: this._newPos.distanceTo(this._startPos)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._moving = false;\r\n\t\tDraggable._dragging = false;\r\n\t}\r\n\r\n});\r\n","import * as LineUtil from './LineUtil';\r\n\r\n/*\r\n * @namespace PolyUtil\r\n * Various utility functions for polygon geometries.\r\n */\r\n\r\n/* @function clipPolygon(points: Point[], bounds: Bounds, round?: Boolean): Point[]\r\n * Clips the polygon geometry defined by the given `points` by the given bounds (using the [Sutherland-Hodgman algorithm](https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm)).\r\n * Used by Leaflet to only show polygon points that are on the screen or near, increasing\r\n * performance. Note that polygon points needs different algorithm for clipping\r\n * than polyline, so there's a separate method for it.\r\n */\r\nexport function clipPolygon(points, bounds, round) {\r\n\tvar clippedPoints,\r\n\t edges = [1, 4, 2, 8],\r\n\t i, j, k,\r\n\t a, b,\r\n\t len, edge, p;\r\n\r\n\tfor (i = 0, len = points.length; i < len; i++) {\r\n\t\tpoints[i]._code = LineUtil._getBitCode(points[i], bounds);\r\n\t}\r\n\r\n\t// for each edge (left, bottom, right, top)\r\n\tfor (k = 0; k < 4; k++) {\r\n\t\tedge = edges[k];\r\n\t\tclippedPoints = [];\r\n\r\n\t\tfor (i = 0, len = points.length, j = len - 1; i < len; j = i++) {\r\n\t\t\ta = points[i];\r\n\t\t\tb = points[j];\r\n\r\n\t\t\t// if a is inside the clip window\r\n\t\t\tif (!(a._code & edge)) {\r\n\t\t\t\t// if b is outside the clip window (a->b goes out of screen)\r\n\t\t\t\tif (b._code & edge) {\r\n\t\t\t\t\tp = LineUtil._getEdgeIntersection(b, a, edge, bounds, round);\r\n\t\t\t\t\tp._code = LineUtil._getBitCode(p, bounds);\r\n\t\t\t\t\tclippedPoints.push(p);\r\n\t\t\t\t}\r\n\t\t\t\tclippedPoints.push(a);\r\n\r\n\t\t\t// else if b is inside the clip window (a->b enters the screen)\r\n\t\t\t} else if (!(b._code & edge)) {\r\n\t\t\t\tp = LineUtil._getEdgeIntersection(b, a, edge, bounds, round);\r\n\t\t\t\tp._code = LineUtil._getBitCode(p, bounds);\r\n\t\t\t\tclippedPoints.push(p);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpoints = clippedPoints;\r\n\t}\r\n\r\n\treturn points;\r\n}\r\n","import {LatLng} from '../LatLng';\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {Point} from '../../geometry/Point';\r\n\r\n/*\r\n * @namespace Projection\r\n * @section\r\n * Leaflet comes with a set of already defined Projections out of the box:\r\n *\r\n * @projection L.Projection.LonLat\r\n *\r\n * Equirectangular, or Plate Carree projection — the most simple projection,\r\n * mostly used by GIS enthusiasts. Directly maps `x` as longitude, and `y` as\r\n * latitude. Also suitable for flat worlds, e.g. game maps. Used by the\r\n * `EPSG:4326` and `Simple` CRS.\r\n */\r\n\r\nexport var LonLat = {\r\n\tproject: function (latlng) {\r\n\t\treturn new Point(latlng.lng, latlng.lat);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\treturn new LatLng(point.y, point.x);\r\n\t},\r\n\r\n\tbounds: new Bounds([-180, -90], [180, 90])\r\n};\r\n","import {LatLng} from '../LatLng';\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {Point} from '../../geometry/Point';\r\n\r\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.Mercator\r\n *\r\n * Elliptical Mercator projection — more complex than Spherical Mercator. Assumes that Earth is an ellipsoid. Used by the EPSG:3395 CRS.\r\n */\r\n\r\nexport var Mercator = {\r\n\tR: 6378137,\r\n\tR_MINOR: 6356752.314245179,\r\n\r\n\tbounds: new Bounds([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t r = this.R,\r\n\t\t y = latlng.lat * d,\r\n\t\t tmp = this.R_MINOR / r,\r\n\t\t e = Math.sqrt(1 - tmp * tmp),\r\n\t\t con = e * Math.sin(y);\r\n\r\n\t\tvar ts = Math.tan(Math.PI / 4 - y / 2) / Math.pow((1 - con) / (1 + con), e / 2);\r\n\t\ty = -r * Math.log(Math.max(ts, 1E-10));\r\n\r\n\t\treturn new Point(latlng.lng * d * r, y);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI,\r\n\t\t r = this.R,\r\n\t\t tmp = this.R_MINOR / r,\r\n\t\t e = Math.sqrt(1 - tmp * tmp),\r\n\t\t ts = Math.exp(-point.y / r),\r\n\t\t phi = Math.PI / 2 - 2 * Math.atan(ts);\r\n\r\n\t\tfor (var i = 0, dphi = 0.1, con; i < 15 && Math.abs(dphi) > 1e-7; i++) {\r\n\t\t\tcon = e * Math.sin(phi);\r\n\t\t\tcon = Math.pow((1 - con) / (1 + con), e / 2);\r\n\t\t\tdphi = Math.PI / 2 - 2 * Math.atan(ts * con) - phi;\r\n\t\t\tphi += dphi;\r\n\t\t}\r\n\r\n\t\treturn new LatLng(phi * d, point.x * d / r);\r\n\t}\r\n};\r\n","import {Earth} from './CRS.Earth';\r\nimport {Mercator} from '../projection/Projection.Mercator';\r\nimport {toTransformation} from '../../geometry/Transformation';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3395\r\n *\r\n * Rarely used by some commercial tile providers. Uses Elliptical Mercator projection.\r\n */\r\nexport var EPSG3395 = Util.extend({}, Earth, {\r\n\tcode: 'EPSG:3395',\r\n\tprojection: Mercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * Mercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n","import {Earth} from './CRS.Earth';\r\nimport {LonLat} from '../projection/Projection.LonLat';\r\nimport {toTransformation} from '../../geometry/Transformation';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG4326\r\n *\r\n * A common CRS among GIS enthusiasts. Uses simple Equirectangular projection.\r\n *\r\n * Leaflet 1.0.x complies with the [TMS coordinate scheme for EPSG:4326](https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#global-geodetic),\r\n * which is a breaking change from 0.7.x behaviour. If you are using a `TileLayer`\r\n * with this CRS, ensure that there are two 256x256 pixel tiles covering the\r\n * whole earth at zoom level zero, and that the tile coordinate origin is (-180,+90),\r\n * or (-180,-90) for `TileLayer`s with [the `tms` option](#tilelayer-tms) set.\r\n */\r\n\r\nexport var EPSG4326 = Util.extend({}, Earth, {\r\n\tcode: 'EPSG:4326',\r\n\tprojection: LonLat,\r\n\ttransformation: toTransformation(1 / 180, 1, -1 / 180, 0.5)\r\n});\r\n","import {CRS} from './CRS';\nimport {LonLat} from '../projection/Projection.LonLat';\nimport {toTransformation} from '../../geometry/Transformation';\nimport * as Util from '../../core/Util';\n\n/*\n * @namespace CRS\n * @crs L.CRS.Simple\n *\n * A simple CRS that maps longitude and latitude into `x` and `y` directly.\n * May be used for maps of flat surfaces (e.g. game maps). Note that the `y`\n * axis should still be inverted (going from bottom to top). `distance()` returns\n * simple euclidean distance.\n */\n\nexport var Simple = Util.extend({}, CRS, {\n\tprojection: LonLat,\n\ttransformation: toTransformation(1, 0, -1, 0),\n\n\tscale: function (zoom) {\n\t\treturn Math.pow(2, zoom);\n\t},\n\n\tzoom: function (scale) {\n\t\treturn Math.log(scale) / Math.LN2;\n\t},\n\n\tdistance: function (latlng1, latlng2) {\n\t\tvar dx = latlng2.lng - latlng1.lng,\n\t\t dy = latlng2.lat - latlng1.lat;\n\n\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t},\n\n\tinfinite: true\n});\n","import {CRS} from './CRS';\nimport {Earth} from './CRS.Earth';\nimport {EPSG3395} from './CRS.EPSG3395';\nimport {EPSG3857, EPSG900913} from './CRS.EPSG3857';\nimport {EPSG4326} from './CRS.EPSG4326';\nimport {Simple} from './CRS.Simple';\n\nCRS.Earth = Earth;\nCRS.EPSG3395 = EPSG3395;\nCRS.EPSG3857 = EPSG3857;\nCRS.EPSG900913 = EPSG900913;\nCRS.EPSG4326 = EPSG4326;\nCRS.Simple = Simple;\n\nexport {CRS};\n","import {Evented} from '../core/Events';\nimport {Map} from '../map/Map';\nimport * as Util from '../core/Util';\n\n/*\n * @class Layer\n * @inherits Evented\n * @aka L.Layer\n * @aka ILayer\n *\n * A set of methods from the Layer base class that all Leaflet layers use.\n * Inherits all methods, options and events from `L.Evented`.\n *\n * @example\n *\n * ```js\n * var layer = L.marker(latlng).addTo(map);\n * layer.addTo(map);\n * layer.remove();\n * ```\n *\n * @event add: Event\n * Fired after the layer is added to a map\n *\n * @event remove: Event\n * Fired after the layer is removed from a map\n */\n\n\nexport var Layer = Evented.extend({\n\n\t// Classes extending `L.Layer` will inherit the following options:\n\toptions: {\n\t\t// @option pane: String = 'overlayPane'\n\t\t// By default the layer will be added to the map's [overlay pane](#map-overlaypane). Overriding this option will cause the layer to be placed on another pane by default.\n\t\tpane: 'overlayPane',\n\n\t\t// @option attribution: String = null\n\t\t// String to be shown in the attribution control, e.g. \"© OpenStreetMap contributors\". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.\n\t\tattribution: null,\n\n\t\tbubblingMouseEvents: true\n\t},\n\n\t/* @section\n\t * Classes extending `L.Layer` will inherit the following methods:\n\t *\n\t * @method addTo(map: Map|LayerGroup): this\n\t * Adds the layer to the given map or layer group.\n\t */\n\taddTo: function (map) {\n\t\tmap.addLayer(this);\n\t\treturn this;\n\t},\n\n\t// @method remove: this\n\t// Removes the layer from the map it is currently active on.\n\tremove: function () {\n\t\treturn this.removeFrom(this._map || this._mapToAdd);\n\t},\n\n\t// @method removeFrom(map: Map): this\n\t// Removes the layer from the given map\n\t//\n\t// @alternative\n\t// @method removeFrom(group: LayerGroup): this\n\t// Removes the layer from the given `LayerGroup`\n\tremoveFrom: function (obj) {\n\t\tif (obj) {\n\t\t\tobj.removeLayer(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method getPane(name? : String): HTMLElement\n\t// Returns the `HTMLElement` representing the named pane on the map. If `name` is omitted, returns the pane for this layer.\n\tgetPane: function (name) {\n\t\treturn this._map.getPane(name ? (this.options[name] || name) : this.options.pane);\n\t},\n\n\taddInteractiveTarget: function (targetEl) {\n\t\tthis._map._targets[Util.stamp(targetEl)] = this;\n\t\treturn this;\n\t},\n\n\tremoveInteractiveTarget: function (targetEl) {\n\t\tdelete this._map._targets[Util.stamp(targetEl)];\n\t\treturn this;\n\t},\n\n\t// @method getAttribution: String\n\t// Used by the `attribution control`, returns the [attribution option](#gridlayer-attribution).\n\tgetAttribution: function () {\n\t\treturn this.options.attribution;\n\t},\n\n\t_layerAdd: function (e) {\n\t\tvar map = e.target;\n\n\t\t// check in case layer gets added and then removed before the map is ready\n\t\tif (!map.hasLayer(this)) { return; }\n\n\t\tthis._map = map;\n\t\tthis._zoomAnimated = map._zoomAnimated;\n\n\t\tif (this.getEvents) {\n\t\t\tvar events = this.getEvents();\n\t\t\tmap.on(events, this);\n\t\t\tthis.once('remove', function () {\n\t\t\t\tmap.off(events, this);\n\t\t\t}, this);\n\t\t}\n\n\t\tthis.onAdd(map);\n\n\t\tif (this.getAttribution && map.attributionControl) {\n\t\t\tmap.attributionControl.addAttribution(this.getAttribution());\n\t\t}\n\n\t\tthis.fire('add');\n\t\tmap.fire('layeradd', {layer: this});\n\t}\n});\n\n/* @section Extension methods\n * @uninheritable\n *\n * Every layer should extend from `L.Layer` and (re-)implement the following methods.\n *\n * @method onAdd(map: Map): this\n * Should contain code that creates DOM elements for the layer, adds them to `map panes` where they should belong and puts listeners on relevant map events. Called on [`map.addLayer(layer)`](#map-addlayer).\n *\n * @method onRemove(map: Map): this\n * Should contain all clean up code that removes the layer's elements from the DOM and removes listeners previously added in [`onAdd`](#layer-onadd). Called on [`map.removeLayer(layer)`](#map-removelayer).\n *\n * @method getEvents(): Object\n * This optional method should return an object like `{ viewreset: this._reset }` for [`addEventListener`](#evented-addeventlistener). The event handlers in this object will be automatically added and removed from the map with your layer.\n *\n * @method getAttribution(): String\n * This optional method should return a string containing HTML to be shown on the `Attribution control` whenever the layer is visible.\n *\n * @method beforeAdd(map: Map): this\n * Optional method. Called on [`map.addLayer(layer)`](#map-addlayer), before the layer is added to the map, before events are initialized, without waiting until the map is in a usable state. Use for early initialization only.\n */\n\n\n/* @namespace Map\n * @section Layer events\n *\n * @event layeradd: LayerEvent\n * Fired when a new layer is added to the map.\n *\n * @event layerremove: LayerEvent\n * Fired when some layer is removed from the map\n *\n * @section Methods for Layers and Controls\n */\nMap.include({\n\t// @method addLayer(layer: Layer): this\n\t// Adds the given layer to the map\n\taddLayer: function (layer) {\n\t\tif (!layer._layerAdd) {\n\t\t\tthrow new Error('The provided object is not a Layer.');\n\t\t}\n\n\t\tvar id = Util.stamp(layer);\n\t\tif (this._layers[id]) { return this; }\n\t\tthis._layers[id] = layer;\n\n\t\tlayer._mapToAdd = this;\n\n\t\tif (layer.beforeAdd) {\n\t\t\tlayer.beforeAdd(this);\n\t\t}\n\n\t\tthis.whenReady(layer._layerAdd, layer);\n\n\t\treturn this;\n\t},\n\n\t// @method removeLayer(layer: Layer): this\n\t// Removes the given layer from the map.\n\tremoveLayer: function (layer) {\n\t\tvar id = Util.stamp(layer);\n\n\t\tif (!this._layers[id]) { return this; }\n\n\t\tif (this._loaded) {\n\t\t\tlayer.onRemove(this);\n\t\t}\n\n\t\tif (layer.getAttribution && this.attributionControl) {\n\t\t\tthis.attributionControl.removeAttribution(layer.getAttribution());\n\t\t}\n\n\t\tdelete this._layers[id];\n\n\t\tif (this._loaded) {\n\t\t\tthis.fire('layerremove', {layer: layer});\n\t\t\tlayer.fire('remove');\n\t\t}\n\n\t\tlayer._map = layer._mapToAdd = null;\n\n\t\treturn this;\n\t},\n\n\t// @method hasLayer(layer: Layer): Boolean\n\t// Returns `true` if the given layer is currently added to the map\n\thasLayer: function (layer) {\n\t\treturn !!layer && (Util.stamp(layer) in this._layers);\n\t},\n\n\t/* @method eachLayer(fn: Function, context?: Object): this\n\t * Iterates over the layers of the map, optionally specifying context of the iterator function.\n\t * ```\n\t * map.eachLayer(function(layer){\n\t * layer.bindPopup('Hello');\n\t * });\n\t * ```\n\t */\n\teachLayer: function (method, context) {\n\t\tfor (var i in this._layers) {\n\t\t\tmethod.call(context, this._layers[i]);\n\t\t}\n\t\treturn this;\n\t},\n\n\t_addLayers: function (layers) {\n\t\tlayers = layers ? (Util.isArray(layers) ? layers : [layers]) : [];\n\n\t\tfor (var i = 0, len = layers.length; i < len; i++) {\n\t\t\tthis.addLayer(layers[i]);\n\t\t}\n\t},\n\n\t_addZoomLimit: function (layer) {\n\t\tif (isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom)) {\n\t\t\tthis._zoomBoundLayers[Util.stamp(layer)] = layer;\n\t\t\tthis._updateZoomLevels();\n\t\t}\n\t},\n\n\t_removeZoomLimit: function (layer) {\n\t\tvar id = Util.stamp(layer);\n\n\t\tif (this._zoomBoundLayers[id]) {\n\t\t\tdelete this._zoomBoundLayers[id];\n\t\t\tthis._updateZoomLevels();\n\t\t}\n\t},\n\n\t_updateZoomLevels: function () {\n\t\tvar minZoom = Infinity,\n\t\t maxZoom = -Infinity,\n\t\t oldZoomSpan = this._getZoomSpan();\n\n\t\tfor (var i in this._zoomBoundLayers) {\n\t\t\tvar options = this._zoomBoundLayers[i].options;\n\n\t\t\tminZoom = options.minZoom === undefined ? minZoom : Math.min(minZoom, options.minZoom);\n\t\t\tmaxZoom = options.maxZoom === undefined ? maxZoom : Math.max(maxZoom, options.maxZoom);\n\t\t}\n\n\t\tthis._layersMaxZoom = maxZoom === -Infinity ? undefined : maxZoom;\n\t\tthis._layersMinZoom = minZoom === Infinity ? undefined : minZoom;\n\n\t\t// @section Map state change events\n\t\t// @event zoomlevelschange: Event\n\t\t// Fired when the number of zoomlevels on the map is changed due\n\t\t// to adding or removing a layer.\n\t\tif (oldZoomSpan !== this._getZoomSpan()) {\n\t\t\tthis.fire('zoomlevelschange');\n\t\t}\n\n\t\tif (this.options.maxZoom === undefined && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom) {\n\t\t\tthis.setZoom(this._layersMaxZoom);\n\t\t}\n\t\tif (this.options.minZoom === undefined && this._layersMinZoom && this.getZoom() < this._layersMinZoom) {\n\t\t\tthis.setZoom(this._layersMinZoom);\n\t\t}\n\t}\n});\n","\r\nimport {Layer} from './Layer';\r\nimport * as Util from '../core/Util';\r\n\r\n/*\r\n * @class LayerGroup\r\n * @aka L.LayerGroup\r\n * @inherits Layer\r\n *\r\n * Used to group several layers and handle them as one. If you add it to the map,\r\n * any layers added or removed from the group will be added/removed on the map as\r\n * well. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.layerGroup([marker1, marker2])\r\n * \t.addLayer(polyline)\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\nexport var LayerGroup = Layer.extend({\r\n\r\n\tinitialize: function (layers, options) {\r\n\t\tUtil.setOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\r\n\t\tvar i, len;\r\n\r\n\t\tif (layers) {\r\n\t\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n\t\t\t\tthis.addLayer(layers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addLayer(layer: Layer): this\r\n\t// Adds the given layer to the group.\r\n\taddLayer: function (layer) {\r\n\t\tvar id = this.getLayerId(layer);\r\n\r\n\t\tthis._layers[id] = layer;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._map.addLayer(layer);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeLayer(layer: Layer): this\r\n\t// Removes the given layer from the group.\r\n\t// @alternative\r\n\t// @method removeLayer(id: Number): this\r\n\t// Removes the layer with the given internal ID from the group.\r\n\tremoveLayer: function (layer) {\r\n\t\tvar id = layer in this._layers ? layer : this.getLayerId(layer);\r\n\r\n\t\tif (this._map && this._layers[id]) {\r\n\t\t\tthis._map.removeLayer(this._layers[id]);\r\n\t\t}\r\n\r\n\t\tdelete this._layers[id];\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method hasLayer(layer: Layer): Boolean\r\n\t// Returns `true` if the given layer is currently added to the group.\r\n\t// @alternative\r\n\t// @method hasLayer(id: Number): Boolean\r\n\t// Returns `true` if the given internal ID is currently added to the group.\r\n\thasLayer: function (layer) {\r\n\t\tif (!layer) { return false; }\r\n\t\tvar layerId = typeof layer === 'number' ? layer : this.getLayerId(layer);\r\n\t\treturn layerId in this._layers;\r\n\t},\r\n\r\n\t// @method clearLayers(): this\r\n\t// Removes all the layers from the group.\r\n\tclearLayers: function () {\r\n\t\treturn this.eachLayer(this.removeLayer, this);\r\n\t},\r\n\r\n\t// @method invoke(methodName: String, …): this\r\n\t// Calls `methodName` on every layer contained in this group, passing any\r\n\t// additional parameters. Has no effect if the layers contained do not\r\n\t// implement `methodName`.\r\n\tinvoke: function (methodName) {\r\n\t\tvar args = Array.prototype.slice.call(arguments, 1),\r\n\t\t i, layer;\r\n\r\n\t\tfor (i in this._layers) {\r\n\t\t\tlayer = this._layers[i];\r\n\r\n\t\t\tif (layer[methodName]) {\r\n\t\t\t\tlayer[methodName].apply(layer, args);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis.eachLayer(map.addLayer, map);\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tthis.eachLayer(map.removeLayer, map);\r\n\t},\r\n\r\n\t// @method eachLayer(fn: Function, context?: Object): this\r\n\t// Iterates over the layers of the group, optionally specifying context of the iterator function.\r\n\t// ```js\r\n\t// group.eachLayer(function (layer) {\r\n\t// \tlayer.bindPopup('Hello');\r\n\t// });\r\n\t// ```\r\n\teachLayer: function (method, context) {\r\n\t\tfor (var i in this._layers) {\r\n\t\t\tmethod.call(context, this._layers[i]);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getLayer(id: Number): Layer\r\n\t// Returns the layer with the given internal ID.\r\n\tgetLayer: function (id) {\r\n\t\treturn this._layers[id];\r\n\t},\r\n\r\n\t// @method getLayers(): Layer[]\r\n\t// Returns an array of all the layers added to the group.\r\n\tgetLayers: function () {\r\n\t\tvar layers = [];\r\n\t\tthis.eachLayer(layers.push, layers);\r\n\t\treturn layers;\r\n\t},\r\n\r\n\t// @method setZIndex(zIndex: Number): this\r\n\t// Calls `setZIndex` on every layer contained in this group, passing the z-index.\r\n\tsetZIndex: function (zIndex) {\r\n\t\treturn this.invoke('setZIndex', zIndex);\r\n\t},\r\n\r\n\t// @method getLayerId(layer: Layer): Number\r\n\t// Returns the internal ID for a layer\r\n\tgetLayerId: function (layer) {\r\n\t\treturn Util.stamp(layer);\r\n\t}\r\n});\r\n\r\n\r\n// @factory L.layerGroup(layers?: Layer[], options?: Object)\r\n// Create a layer group, optionally given an initial set of layers and an `options` object.\r\nexport var layerGroup = function (layers, options) {\r\n\treturn new LayerGroup(layers, options);\r\n};\r\n","import {LayerGroup} from './LayerGroup';\r\nimport {LatLngBounds} from '../geo/LatLngBounds';\r\n\r\n/*\r\n * @class FeatureGroup\r\n * @aka L.FeatureGroup\r\n * @inherits LayerGroup\r\n *\r\n * Extended `LayerGroup` that makes it easier to do the same thing to all its member layers:\r\n * * [`bindPopup`](#layer-bindpopup) binds a popup to all of the layers at once (likewise with [`bindTooltip`](#layer-bindtooltip))\r\n * * Events are propagated to the `FeatureGroup`, so if the group has an event\r\n * handler, it will handle events from any of the layers. This includes mouse events\r\n * and custom events.\r\n * * Has `layeradd` and `layerremove` events\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.featureGroup([marker1, marker2, polyline])\r\n * \t.bindPopup('Hello world!')\r\n * \t.on('click', function() { alert('Clicked on a member of the group!'); })\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\nexport var FeatureGroup = LayerGroup.extend({\r\n\r\n\taddLayer: function (layer) {\r\n\t\tif (this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tlayer.addEventParent(this);\r\n\r\n\t\tLayerGroup.prototype.addLayer.call(this, layer);\r\n\r\n\t\t// @event layeradd: LayerEvent\r\n\t\t// Fired when a layer is added to this `FeatureGroup`\r\n\t\treturn this.fire('layeradd', {layer: layer});\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tif (!this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif (layer in this._layers) {\r\n\t\t\tlayer = this._layers[layer];\r\n\t\t}\r\n\r\n\t\tlayer.removeEventParent(this);\r\n\r\n\t\tLayerGroup.prototype.removeLayer.call(this, layer);\r\n\r\n\t\t// @event layerremove: LayerEvent\r\n\t\t// Fired when a layer is removed from this `FeatureGroup`\r\n\t\treturn this.fire('layerremove', {layer: layer});\r\n\t},\r\n\r\n\t// @method setStyle(style: Path options): this\r\n\t// Sets the given path options to each layer of the group that has a `setStyle` method.\r\n\tsetStyle: function (style) {\r\n\t\treturn this.invoke('setStyle', style);\r\n\t},\r\n\r\n\t// @method bringToFront(): this\r\n\t// Brings the layer group to the top of all other layers\r\n\tbringToFront: function () {\r\n\t\treturn this.invoke('bringToFront');\r\n\t},\r\n\r\n\t// @method bringToBack(): this\r\n\t// Brings the layer group to the back of all other layers\r\n\tbringToBack: function () {\r\n\t\treturn this.invoke('bringToBack');\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Returns the LatLngBounds of the Feature Group (created from bounds and coordinates of its children).\r\n\tgetBounds: function () {\r\n\t\tvar bounds = new LatLngBounds();\r\n\r\n\t\tfor (var id in this._layers) {\r\n\t\t\tvar layer = this._layers[id];\r\n\t\t\tbounds.extend(layer.getBounds ? layer.getBounds() : layer.getLatLng());\r\n\t\t}\r\n\t\treturn bounds;\r\n\t}\r\n});\r\n\r\n// @factory L.featureGroup(layers?: Layer[], options?: Object)\r\n// Create a feature group, optionally given an initial set of layers and an `options` object.\r\nexport var featureGroup = function (layers, options) {\r\n\treturn new FeatureGroup(layers, options);\r\n};\r\n","import {Class} from '../../core/Class';\r\nimport {setOptions} from '../../core/Util';\r\nimport {toPoint as point} from '../../geometry/Point';\r\nimport {retina} from '../../core/Browser';\r\n\r\n/*\r\n * @class Icon\r\n * @aka L.Icon\r\n *\r\n * Represents an icon to provide when creating a marker.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var myIcon = L.icon({\r\n * iconUrl: 'my-icon.png',\r\n * iconRetinaUrl: 'my-icon@2x.png',\r\n * iconSize: [38, 95],\r\n * iconAnchor: [22, 94],\r\n * popupAnchor: [-3, -76],\r\n * shadowUrl: 'my-icon-shadow.png',\r\n * shadowRetinaUrl: 'my-icon-shadow@2x.png',\r\n * shadowSize: [68, 95],\r\n * shadowAnchor: [22, 94]\r\n * });\r\n *\r\n * L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);\r\n * ```\r\n *\r\n * `L.Icon.Default` extends `L.Icon` and is the blue icon Leaflet uses for markers by default.\r\n *\r\n */\r\n\r\nexport var Icon = Class.extend({\r\n\r\n\t/* @section\r\n\t * @aka Icon options\r\n\t *\r\n\t * @option iconUrl: String = null\r\n\t * **(required)** The URL to the icon image (absolute or relative to your script path).\r\n\t *\r\n\t * @option iconRetinaUrl: String = null\r\n\t * The URL to a retina sized version of the icon image (absolute or relative to your\r\n\t * script path). Used for Retina screen devices.\r\n\t *\r\n\t * @option iconSize: Point = null\r\n\t * Size of the icon image in pixels.\r\n\t *\r\n\t * @option iconAnchor: Point = null\r\n\t * The coordinates of the \"tip\" of the icon (relative to its top left corner). The icon\r\n\t * will be aligned so that this point is at the marker's geographical location. Centered\r\n\t * by default if size is specified, also can be set in CSS with negative margins.\r\n\t *\r\n\t * @option popupAnchor: Point = [0, 0]\r\n\t * The coordinates of the point from which popups will \"open\", relative to the icon anchor.\r\n\t *\r\n\t * @option tooltipAnchor: Point = [0, 0]\r\n\t * The coordinates of the point from which tooltips will \"open\", relative to the icon anchor.\r\n\t *\r\n\t * @option shadowUrl: String = null\r\n\t * The URL to the icon shadow image. If not specified, no shadow image will be created.\r\n\t *\r\n\t * @option shadowRetinaUrl: String = null\r\n\t *\r\n\t * @option shadowSize: Point = null\r\n\t * Size of the shadow image in pixels.\r\n\t *\r\n\t * @option shadowAnchor: Point = null\r\n\t * The coordinates of the \"tip\" of the shadow (relative to its top left corner) (the same\r\n\t * as iconAnchor if not specified).\r\n\t *\r\n\t * @option className: String = ''\r\n\t * A custom class name to assign to both icon and shadow images. Empty by default.\r\n\t */\r\n\r\n\toptions: {\r\n\t\tpopupAnchor: [0, 0],\r\n\t\ttooltipAnchor: [0, 0]\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tsetOptions(this, options);\r\n\t},\r\n\r\n\t// @method createIcon(oldIcon?: HTMLElement): HTMLElement\r\n\t// Called internally when the icon has to be shown, returns a `` HTML element\r\n\t// styled according to the options.\r\n\tcreateIcon: function (oldIcon) {\r\n\t\treturn this._createIcon('icon', oldIcon);\r\n\t},\r\n\r\n\t// @method createShadow(oldIcon?: HTMLElement): HTMLElement\r\n\t// As `createIcon`, but for the shadow beneath it.\r\n\tcreateShadow: function (oldIcon) {\r\n\t\treturn this._createIcon('shadow', oldIcon);\r\n\t},\r\n\r\n\t_createIcon: function (name, oldIcon) {\r\n\t\tvar src = this._getIconUrl(name);\r\n\r\n\t\tif (!src) {\r\n\t\t\tif (name === 'icon') {\r\n\t\t\t\tthrow new Error('iconUrl not set in Icon options (see the docs).');\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar img = this._createImg(src, oldIcon && oldIcon.tagName === 'IMG' ? oldIcon : null);\r\n\t\tthis._setIconStyles(img, name);\r\n\r\n\t\treturn img;\r\n\t},\r\n\r\n\t_setIconStyles: function (img, name) {\r\n\t\tvar options = this.options;\r\n\t\tvar sizeOption = options[name + 'Size'];\r\n\r\n\t\tif (typeof sizeOption === 'number') {\r\n\t\t\tsizeOption = [sizeOption, sizeOption];\r\n\t\t}\r\n\r\n\t\tvar size = point(sizeOption),\r\n\t\t anchor = point(name === 'shadow' && options.shadowAnchor || options.iconAnchor ||\r\n\t\t size && size.divideBy(2, true));\r\n\r\n\t\timg.className = 'leaflet-marker-' + name + ' ' + (options.className || '');\r\n\r\n\t\tif (anchor) {\r\n\t\t\timg.style.marginLeft = (-anchor.x) + 'px';\r\n\t\t\timg.style.marginTop = (-anchor.y) + 'px';\r\n\t\t}\r\n\r\n\t\tif (size) {\r\n\t\t\timg.style.width = size.x + 'px';\r\n\t\t\timg.style.height = size.y + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\t_createImg: function (src, el) {\r\n\t\tel = el || document.createElement('img');\r\n\t\tel.src = src;\r\n\t\treturn el;\r\n\t},\r\n\r\n\t_getIconUrl: function (name) {\r\n\t\treturn retina && this.options[name + 'RetinaUrl'] || this.options[name + 'Url'];\r\n\t}\r\n});\r\n\r\n\r\n// @factory L.icon(options: Icon options)\r\n// Creates an icon instance with the given options.\r\nexport function icon(options) {\r\n\treturn new Icon(options);\r\n}\r\n","import {Icon} from './Icon';\nimport * as DomUtil from '../../dom/DomUtil';\n\n/*\n * @miniclass Icon.Default (Icon)\n * @aka L.Icon.Default\n * @section\n *\n * A trivial subclass of `Icon`, represents the icon to use in `Marker`s when\n * no icon is specified. Points to the blue marker image distributed with Leaflet\n * releases.\n *\n * In order to customize the default icon, just change the properties of `L.Icon.Default.prototype.options`\n * (which is a set of `Icon options`).\n *\n * If you want to _completely_ replace the default icon, override the\n * `L.Marker.prototype.options.icon` with your own icon instead.\n */\n\nexport var IconDefault = Icon.extend({\n\n\toptions: {\n\t\ticonUrl: 'marker-icon.png',\n\t\ticonRetinaUrl: 'marker-icon-2x.png',\n\t\tshadowUrl: 'marker-shadow.png',\n\t\ticonSize: [25, 41],\n\t\ticonAnchor: [12, 41],\n\t\tpopupAnchor: [1, -34],\n\t\ttooltipAnchor: [16, -28],\n\t\tshadowSize: [41, 41]\n\t},\n\n\t_getIconUrl: function (name) {\n\t\tif (!IconDefault.imagePath) {\t// Deprecated, backwards-compatibility only\n\t\t\tIconDefault.imagePath = this._detectIconPath();\n\t\t}\n\n\t\t// @option imagePath: String\n\t\t// `Icon.Default` will try to auto-detect the location of the\n\t\t// blue icon images. If you are placing these images in a non-standard\n\t\t// way, set this option to point to the right path.\n\t\treturn (this.options.imagePath || IconDefault.imagePath) + Icon.prototype._getIconUrl.call(this, name);\n\t},\n\n\t_detectIconPath: function () {\n\t\tvar el = DomUtil.create('div', 'leaflet-default-icon-path', document.body);\n\t\tvar path = DomUtil.getStyle(el, 'background-image') ||\n\t\t DomUtil.getStyle(el, 'backgroundImage');\t// IE8\n\n\t\tdocument.body.removeChild(el);\n\n\t\tif (path === null || path.indexOf('url') !== 0) {\n\t\t\tpath = '';\n\t\t} else {\n\t\t\tpath = path.replace(/^url\\([\"']?/, '').replace(/marker-icon\\.png[\"']?\\)$/, '');\n\t\t}\n\n\t\treturn path;\n\t}\n});\n","import {Handler} from '../../core/Handler';\nimport * as DomUtil from '../../dom/DomUtil';\nimport {Draggable} from '../../dom/Draggable';\nimport {toBounds} from '../../geometry/Bounds';\nimport {toPoint} from '../../geometry/Point';\nimport {requestAnimFrame, cancelAnimFrame} from '../../core/Util';\n\n/*\n * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable.\n */\n\n\n/* @namespace Marker\n * @section Interaction handlers\n *\n * Interaction handlers are properties of a marker instance that allow you to control interaction behavior in runtime, enabling or disabling certain features such as dragging (see `Handler` methods). Example:\n *\n * ```js\n * marker.dragging.disable();\n * ```\n *\n * @property dragging: Handler\n * Marker dragging handler (by both mouse and touch). Only valid when the marker is on the map (Otherwise set [`marker.options.draggable`](#marker-draggable)).\n */\n\nexport var MarkerDrag = Handler.extend({\n\tinitialize: function (marker) {\n\t\tthis._marker = marker;\n\t},\n\n\taddHooks: function () {\n\t\tvar icon = this._marker._icon;\n\n\t\tif (!this._draggable) {\n\t\t\tthis._draggable = new Draggable(icon, icon, true);\n\t\t}\n\n\t\tthis._draggable.on({\n\t\t\tdragstart: this._onDragStart,\n\t\t\tpredrag: this._onPreDrag,\n\t\t\tdrag: this._onDrag,\n\t\t\tdragend: this._onDragEnd\n\t\t}, this).enable();\n\n\t\tDomUtil.addClass(icon, 'leaflet-marker-draggable');\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._draggable.off({\n\t\t\tdragstart: this._onDragStart,\n\t\t\tpredrag: this._onPreDrag,\n\t\t\tdrag: this._onDrag,\n\t\t\tdragend: this._onDragEnd\n\t\t}, this).disable();\n\n\t\tif (this._marker._icon) {\n\t\t\tDomUtil.removeClass(this._marker._icon, 'leaflet-marker-draggable');\n\t\t}\n\t},\n\n\tmoved: function () {\n\t\treturn this._draggable && this._draggable._moved;\n\t},\n\n\t_adjustPan: function (e) {\n\t\tvar marker = this._marker,\n\t\t map = marker._map,\n\t\t speed = this._marker.options.autoPanSpeed,\n\t\t padding = this._marker.options.autoPanPadding,\n\t\t iconPos = DomUtil.getPosition(marker._icon),\n\t\t bounds = map.getPixelBounds(),\n\t\t origin = map.getPixelOrigin();\n\n\t\tvar panBounds = toBounds(\n\t\t\tbounds.min._subtract(origin).add(padding),\n\t\t\tbounds.max._subtract(origin).subtract(padding)\n\t\t);\n\n\t\tif (!panBounds.contains(iconPos)) {\n\t\t\t// Compute incremental movement\n\t\t\tvar movement = toPoint(\n\t\t\t\t(Math.max(panBounds.max.x, iconPos.x) - panBounds.max.x) / (bounds.max.x - panBounds.max.x) -\n\t\t\t\t(Math.min(panBounds.min.x, iconPos.x) - panBounds.min.x) / (bounds.min.x - panBounds.min.x),\n\n\t\t\t\t(Math.max(panBounds.max.y, iconPos.y) - panBounds.max.y) / (bounds.max.y - panBounds.max.y) -\n\t\t\t\t(Math.min(panBounds.min.y, iconPos.y) - panBounds.min.y) / (bounds.min.y - panBounds.min.y)\n\t\t\t).multiplyBy(speed);\n\n\t\t\tmap.panBy(movement, {animate: false});\n\n\t\t\tthis._draggable._newPos._add(movement);\n\t\t\tthis._draggable._startPos._add(movement);\n\n\t\t\tDomUtil.setPosition(marker._icon, this._draggable._newPos);\n\t\t\tthis._onDrag(e);\n\n\t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n\t\t}\n\t},\n\n\t_onDragStart: function () {\n\t\t// @section Dragging events\n\t\t// @event dragstart: Event\n\t\t// Fired when the user starts dragging the marker.\n\n\t\t// @event movestart: Event\n\t\t// Fired when the marker starts moving (because of dragging).\n\n\t\tthis._oldLatLng = this._marker.getLatLng();\n\n\t\t// When using ES6 imports it could not be set when `Popup` was not imported as well\n\t\tthis._marker.closePopup && this._marker.closePopup();\n\n\t\tthis._marker\n\t\t\t.fire('movestart')\n\t\t\t.fire('dragstart');\n\t},\n\n\t_onPreDrag: function (e) {\n\t\tif (this._marker.options.autoPan) {\n\t\t\tcancelAnimFrame(this._panRequest);\n\t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n\t\t}\n\t},\n\n\t_onDrag: function (e) {\n\t\tvar marker = this._marker,\n\t\t shadow = marker._shadow,\n\t\t iconPos = DomUtil.getPosition(marker._icon),\n\t\t latlng = marker._map.layerPointToLatLng(iconPos);\n\n\t\t// update shadow position\n\t\tif (shadow) {\n\t\t\tDomUtil.setPosition(shadow, iconPos);\n\t\t}\n\n\t\tmarker._latlng = latlng;\n\t\te.latlng = latlng;\n\t\te.oldLatLng = this._oldLatLng;\n\n\t\t// @event drag: Event\n\t\t// Fired repeatedly while the user drags the marker.\n\t\tmarker\n\t\t .fire('move', e)\n\t\t .fire('drag', e);\n\t},\n\n\t_onDragEnd: function (e) {\n\t\t// @event dragend: DragEndEvent\n\t\t// Fired when the user stops dragging the marker.\n\n\t\t cancelAnimFrame(this._panRequest);\n\n\t\t// @event moveend: Event\n\t\t// Fired when the marker stops moving (because of dragging).\n\t\tdelete this._oldLatLng;\n\t\tthis._marker\n\t\t .fire('moveend')\n\t\t .fire('dragend', e);\n\t}\n});\n","import {Layer} from '../Layer';\r\nimport {IconDefault} from './Icon.Default';\r\nimport * as Util from '../../core/Util';\r\nimport {toLatLng as latLng} from '../../geo/LatLng';\r\nimport * as DomUtil from '../../dom/DomUtil';\r\nimport {MarkerDrag} from './Marker.Drag';\r\n\r\n/*\r\n * @class Marker\r\n * @inherits Interactive layer\r\n * @aka L.Marker\r\n * L.Marker is used to display clickable/draggable icons on the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.marker([50.5, 30.5]).addTo(map);\r\n * ```\r\n */\r\n\r\nexport var Marker = Layer.extend({\r\n\r\n\t// @section\r\n\t// @aka Marker options\r\n\toptions: {\r\n\t\t// @option icon: Icon = *\r\n\t\t// Icon instance to use for rendering the marker.\r\n\t\t// See [Icon documentation](#L.Icon) for details on how to customize the marker icon.\r\n\t\t// If not specified, a common instance of `L.Icon.Default` is used.\r\n\t\ticon: new IconDefault(),\r\n\r\n\t\t// Option inherited from \"Interactive layer\" abstract class\r\n\t\tinteractive: true,\r\n\r\n\t\t// @option keyboard: Boolean = true\r\n\t\t// Whether the marker can be tabbed to with a keyboard and clicked by pressing enter.\r\n\t\tkeyboard: true,\r\n\r\n\t\t// @option title: String = ''\r\n\t\t// Text for the browser tooltip that appear on marker hover (no tooltip by default).\r\n\t\ttitle: '',\r\n\r\n\t\t// @option alt: String = ''\r\n\t\t// Text for the `alt` attribute of the icon image (useful for accessibility).\r\n\t\talt: '',\r\n\r\n\t\t// @option zIndexOffset: Number = 0\r\n\t\t// By default, marker images zIndex is set automatically based on its latitude. Use this option if you want to put the marker on top of all others (or below), specifying a high value like `1000` (or high negative value, respectively).\r\n\t\tzIndexOffset: 0,\r\n\r\n\t\t// @option opacity: Number = 1.0\r\n\t\t// The opacity of the marker.\r\n\t\topacity: 1,\r\n\r\n\t\t// @option riseOnHover: Boolean = false\r\n\t\t// If `true`, the marker will get on top of others when you hover the mouse over it.\r\n\t\triseOnHover: false,\r\n\r\n\t\t// @option riseOffset: Number = 250\r\n\t\t// The z-index offset used for the `riseOnHover` feature.\r\n\t\triseOffset: 250,\r\n\r\n\t\t// @option pane: String = 'markerPane'\r\n\t\t// `Map pane` where the markers icon will be added.\r\n\t\tpane: 'markerPane',\r\n\r\n\t\t// @option shadowPane: String = 'shadowPane'\r\n\t\t// `Map pane` where the markers shadow will be added.\r\n\t\tshadowPane: 'shadowPane',\r\n\r\n\t\t// @option bubblingMouseEvents: Boolean = false\r\n\t\t// When `true`, a mouse event on this marker will trigger the same event on the map\r\n\t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\r\n\t\tbubblingMouseEvents: false,\r\n\r\n\t\t// @section Draggable marker options\r\n\t\t// @option draggable: Boolean = false\r\n\t\t// Whether the marker is draggable with mouse/touch or not.\r\n\t\tdraggable: false,\r\n\r\n\t\t// @option autoPan: Boolean = false\r\n\t\t// Whether to pan the map when dragging this marker near its edge or not.\r\n\t\tautoPan: false,\r\n\r\n\t\t// @option autoPanPadding: Point = Point(50, 50)\r\n\t\t// Distance (in pixels to the left/right and to the top/bottom) of the\r\n\t\t// map edge to start panning the map.\r\n\t\tautoPanPadding: [50, 50],\r\n\r\n\t\t// @option autoPanSpeed: Number = 10\r\n\t\t// Number of pixels the map should pan by.\r\n\t\tautoPanSpeed: 10\r\n\t},\r\n\r\n\t/* @section\r\n\t *\r\n\t * In addition to [shared layer methods](#Layer) like `addTo()` and `remove()` and [popup methods](#Popup) like bindPopup() you can also use the following methods:\r\n\t */\r\n\r\n\tinitialize: function (latlng, options) {\r\n\t\tUtil.setOptions(this, options);\r\n\t\tthis._latlng = latLng(latlng);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._zoomAnimated = this._zoomAnimated && map.options.markerZoomAnimation;\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\r\n\t\tthis._initIcon();\r\n\t\tthis.update();\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tif (this.dragging && this.dragging.enabled()) {\r\n\t\t\tthis.options.draggable = true;\r\n\t\t\tthis.dragging.removeHooks();\r\n\t\t}\r\n\t\tdelete this.dragging;\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tmap.off('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\r\n\t\tthis._removeIcon();\r\n\t\tthis._removeShadow();\r\n\t},\r\n\r\n\tgetEvents: function () {\r\n\t\treturn {\r\n\t\t\tzoom: this.update,\r\n\t\t\tviewreset: this.update\r\n\t\t};\r\n\t},\r\n\r\n\t// @method getLatLng: LatLng\r\n\t// Returns the current geographical position of the marker.\r\n\tgetLatLng: function () {\r\n\t\treturn this._latlng;\r\n\t},\r\n\r\n\t// @method setLatLng(latlng: LatLng): this\r\n\t// Changes the marker position to the given point.\r\n\tsetLatLng: function (latlng) {\r\n\t\tvar oldLatLng = this._latlng;\r\n\t\tthis._latlng = latLng(latlng);\r\n\t\tthis.update();\r\n\r\n\t\t// @event move: Event\r\n\t\t// Fired when the marker is moved via [`setLatLng`](#marker-setlatlng) or by [dragging](#marker-dragging). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\r\n\t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\r\n\t},\r\n\r\n\t// @method setZIndexOffset(offset: Number): this\r\n\t// Changes the [zIndex offset](#marker-zindexoffset) of the marker.\r\n\tsetZIndexOffset: function (offset) {\r\n\t\tthis.options.zIndexOffset = offset;\r\n\t\treturn this.update();\r\n\t},\r\n\r\n\t// @method getIcon: Icon\r\n\t// Returns the current icon used by the marker\r\n\tgetIcon: function () {\r\n\t\treturn this.options.icon;\r\n\t},\r\n\r\n\t// @method setIcon(icon: Icon): this\r\n\t// Changes the marker icon.\r\n\tsetIcon: function (icon) {\r\n\r\n\t\tthis.options.icon = icon;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._initIcon();\r\n\t\t\tthis.update();\r\n\t\t}\r\n\r\n\t\tif (this._popup) {\r\n\t\t\tthis.bindPopup(this._popup, this._popup.options);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetElement: function () {\r\n\t\treturn this._icon;\r\n\t},\r\n\r\n\tupdate: function () {\r\n\r\n\t\tif (this._icon && this._map) {\r\n\t\t\tvar pos = this._map.latLngToLayerPoint(this._latlng).round();\r\n\t\t\tthis._setPos(pos);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initIcon: function () {\r\n\t\tvar options = this.options,\r\n\t\t classToAdd = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');\r\n\r\n\t\tvar icon = options.icon.createIcon(this._icon),\r\n\t\t addIcon = false;\r\n\r\n\t\t// if we're not reusing the icon, remove the old one and init new one\r\n\t\tif (icon !== this._icon) {\r\n\t\t\tif (this._icon) {\r\n\t\t\t\tthis._removeIcon();\r\n\t\t\t}\r\n\t\t\taddIcon = true;\r\n\r\n\t\t\tif (options.title) {\r\n\t\t\t\ticon.title = options.title;\r\n\t\t\t}\r\n\r\n\t\t\tif (icon.tagName === 'IMG') {\r\n\t\t\t\ticon.alt = options.alt || '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tDomUtil.addClass(icon, classToAdd);\r\n\r\n\t\tif (options.keyboard) {\r\n\t\t\ticon.tabIndex = '0';\r\n\t\t}\r\n\r\n\t\tthis._icon = icon;\r\n\r\n\t\tif (options.riseOnHover) {\r\n\t\t\tthis.on({\r\n\t\t\t\tmouseover: this._bringToFront,\r\n\t\t\t\tmouseout: this._resetZIndex\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar newShadow = options.icon.createShadow(this._shadow),\r\n\t\t addShadow = false;\r\n\r\n\t\tif (newShadow !== this._shadow) {\r\n\t\t\tthis._removeShadow();\r\n\t\t\taddShadow = true;\r\n\t\t}\r\n\r\n\t\tif (newShadow) {\r\n\t\t\tDomUtil.addClass(newShadow, classToAdd);\r\n\t\t\tnewShadow.alt = '';\r\n\t\t}\r\n\t\tthis._shadow = newShadow;\r\n\r\n\r\n\t\tif (options.opacity < 1) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\r\n\t\tif (addIcon) {\r\n\t\t\tthis.getPane().appendChild(this._icon);\r\n\t\t}\r\n\t\tthis._initInteraction();\r\n\t\tif (newShadow && addShadow) {\r\n\t\t\tthis.getPane(options.shadowPane).appendChild(this._shadow);\r\n\t\t}\r\n\t},\r\n\r\n\t_removeIcon: function () {\r\n\t\tif (this.options.riseOnHover) {\r\n\t\t\tthis.off({\r\n\t\t\t\tmouseover: this._bringToFront,\r\n\t\t\t\tmouseout: this._resetZIndex\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tDomUtil.remove(this._icon);\r\n\t\tthis.removeInteractiveTarget(this._icon);\r\n\r\n\t\tthis._icon = null;\r\n\t},\r\n\r\n\t_removeShadow: function () {\r\n\t\tif (this._shadow) {\r\n\t\t\tDomUtil.remove(this._shadow);\r\n\t\t}\r\n\t\tthis._shadow = null;\r\n\t},\r\n\r\n\t_setPos: function (pos) {\r\n\r\n\t\tif (this._icon) {\r\n\t\t\tDomUtil.setPosition(this._icon, pos);\r\n\t\t}\r\n\r\n\t\tif (this._shadow) {\r\n\t\t\tDomUtil.setPosition(this._shadow, pos);\r\n\t\t}\r\n\r\n\t\tthis._zIndex = pos.y + this.options.zIndexOffset;\r\n\r\n\t\tthis._resetZIndex();\r\n\t},\r\n\r\n\t_updateZIndex: function (offset) {\r\n\t\tif (this._icon) {\r\n\t\t\tthis._icon.style.zIndex = this._zIndex + offset;\r\n\t\t}\r\n\t},\r\n\r\n\t_animateZoom: function (opt) {\r\n\t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round();\r\n\r\n\t\tthis._setPos(pos);\r\n\t},\r\n\r\n\t_initInteraction: function () {\r\n\r\n\t\tif (!this.options.interactive) { return; }\r\n\r\n\t\tDomUtil.addClass(this._icon, 'leaflet-interactive');\r\n\r\n\t\tthis.addInteractiveTarget(this._icon);\r\n\r\n\t\tif (MarkerDrag) {\r\n\t\t\tvar draggable = this.options.draggable;\r\n\t\t\tif (this.dragging) {\r\n\t\t\t\tdraggable = this.dragging.enabled();\r\n\t\t\t\tthis.dragging.disable();\r\n\t\t\t}\r\n\r\n\t\t\tthis.dragging = new MarkerDrag(this);\r\n\r\n\t\t\tif (draggable) {\r\n\t\t\t\tthis.dragging.enable();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method setOpacity(opacity: Number): this\r\n\t// Changes the opacity of the marker.\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\t\tif (this._map) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tvar opacity = this.options.opacity;\r\n\r\n\t\tif (this._icon) {\r\n\t\t\tDomUtil.setOpacity(this._icon, opacity);\r\n\t\t}\r\n\r\n\t\tif (this._shadow) {\r\n\t\t\tDomUtil.setOpacity(this._shadow, opacity);\r\n\t\t}\r\n\t},\r\n\r\n\t_bringToFront: function () {\r\n\t\tthis._updateZIndex(this.options.riseOffset);\r\n\t},\r\n\r\n\t_resetZIndex: function () {\r\n\t\tthis._updateZIndex(0);\r\n\t},\r\n\r\n\t_getPopupAnchor: function () {\r\n\t\treturn this.options.icon.options.popupAnchor;\r\n\t},\r\n\r\n\t_getTooltipAnchor: function () {\r\n\t\treturn this.options.icon.options.tooltipAnchor;\r\n\t}\r\n});\r\n\r\n\r\n// factory L.marker(latlng: LatLng, options? : Marker options)\r\n\r\n// @factory L.marker(latlng: LatLng, options? : Marker options)\r\n// Instantiates a Marker object given a geographical point and optionally an options object.\r\nexport function marker(latlng, options) {\r\n\treturn new Marker(latlng, options);\r\n}\r\n","import {Layer} from '../Layer';\nimport * as Util from '../../core/Util';\n\n/*\n * @class Path\n * @aka L.Path\n * @inherits Interactive layer\n *\n * An abstract class that contains options and constants shared between vector\n * overlays (Polygon, Polyline, Circle). Do not use it directly. Extends `Layer`.\n */\n\nexport var Path = Layer.extend({\n\n\t// @section\n\t// @aka Path options\n\toptions: {\n\t\t// @option stroke: Boolean = true\n\t\t// Whether to draw stroke along the path. Set it to `false` to disable borders on polygons or circles.\n\t\tstroke: true,\n\n\t\t// @option color: String = '#3388ff'\n\t\t// Stroke color\n\t\tcolor: '#3388ff',\n\n\t\t// @option weight: Number = 3\n\t\t// Stroke width in pixels\n\t\tweight: 3,\n\n\t\t// @option opacity: Number = 1.0\n\t\t// Stroke opacity\n\t\topacity: 1,\n\n\t\t// @option lineCap: String= 'round'\n\t\t// A string that defines [shape to be used at the end](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linecap) of the stroke.\n\t\tlineCap: 'round',\n\n\t\t// @option lineJoin: String = 'round'\n\t\t// A string that defines [shape to be used at the corners](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linejoin) of the stroke.\n\t\tlineJoin: 'round',\n\n\t\t// @option dashArray: String = null\n\t\t// A string that defines the stroke [dash pattern](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dasharray). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n\t\tdashArray: null,\n\n\t\t// @option dashOffset: String = null\n\t\t// A string that defines the [distance into the dash pattern to start the dash](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dashoffset). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n\t\tdashOffset: null,\n\n\t\t// @option fill: Boolean = depends\n\t\t// Whether to fill the path with color. Set it to `false` to disable filling on polygons or circles.\n\t\tfill: false,\n\n\t\t// @option fillColor: String = *\n\t\t// Fill color. Defaults to the value of the [`color`](#path-color) option\n\t\tfillColor: null,\n\n\t\t// @option fillOpacity: Number = 0.2\n\t\t// Fill opacity.\n\t\tfillOpacity: 0.2,\n\n\t\t// @option fillRule: String = 'evenodd'\n\t\t// A string that defines [how the inside of a shape](https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule) is determined.\n\t\tfillRule: 'evenodd',\n\n\t\t// className: '',\n\n\t\t// Option inherited from \"Interactive layer\" abstract class\n\t\tinteractive: true,\n\n\t\t// @option bubblingMouseEvents: Boolean = true\n\t\t// When `true`, a mouse event on this path will trigger the same event on the map\n\t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\n\t\tbubblingMouseEvents: true\n\t},\n\n\tbeforeAdd: function (map) {\n\t\t// Renderer is set here because we need to call renderer.getEvents\n\t\t// before this.getEvents.\n\t\tthis._renderer = map.getRenderer(this);\n\t},\n\n\tonAdd: function () {\n\t\tthis._renderer._initPath(this);\n\t\tthis._reset();\n\t\tthis._renderer._addPath(this);\n\t},\n\n\tonRemove: function () {\n\t\tthis._renderer._removePath(this);\n\t},\n\n\t// @method redraw(): this\n\t// Redraws the layer. Sometimes useful after you changed the coordinates that the path uses.\n\tredraw: function () {\n\t\tif (this._map) {\n\t\t\tthis._renderer._updatePath(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method setStyle(style: Path options): this\n\t// Changes the appearance of a Path based on the options in the `Path options` object.\n\tsetStyle: function (style) {\n\t\tUtil.setOptions(this, style);\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._updateStyle(this);\n\t\t\tif (this.options.stroke && style && Object.prototype.hasOwnProperty.call(style, 'weight')) {\n\t\t\t\tthis._updateBounds();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method bringToFront(): this\n\t// Brings the layer to the top of all path layers.\n\tbringToFront: function () {\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._bringToFront(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method bringToBack(): this\n\t// Brings the layer to the bottom of all path layers.\n\tbringToBack: function () {\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._bringToBack(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\tgetElement: function () {\n\t\treturn this._path;\n\t},\n\n\t_reset: function () {\n\t\t// defined in child classes\n\t\tthis._project();\n\t\tthis._update();\n\t},\n\n\t_clickTolerance: function () {\n\t\t// used when doing hit detection for Canvas layers\n\t\treturn (this.options.stroke ? this.options.weight / 2 : 0) + this._renderer.options.tolerance;\n\t}\n});\n","import {Path} from './Path';\nimport * as Util from '../../core/Util';\nimport {toLatLng} from '../../geo/LatLng';\nimport {Bounds} from '../../geometry/Bounds';\n\n\n/*\n * @class CircleMarker\n * @aka L.CircleMarker\n * @inherits Path\n *\n * A circle of a fixed size with radius specified in pixels. Extends `Path`.\n */\n\nexport var CircleMarker = Path.extend({\n\n\t// @section\n\t// @aka CircleMarker options\n\toptions: {\n\t\tfill: true,\n\n\t\t// @option radius: Number = 10\n\t\t// Radius of the circle marker, in pixels\n\t\tradius: 10\n\t},\n\n\tinitialize: function (latlng, options) {\n\t\tUtil.setOptions(this, options);\n\t\tthis._latlng = toLatLng(latlng);\n\t\tthis._radius = this.options.radius;\n\t},\n\n\t// @method setLatLng(latLng: LatLng): this\n\t// Sets the position of a circle marker to a new location.\n\tsetLatLng: function (latlng) {\n\t\tvar oldLatLng = this._latlng;\n\t\tthis._latlng = toLatLng(latlng);\n\t\tthis.redraw();\n\n\t\t// @event move: Event\n\t\t// Fired when the marker is moved via [`setLatLng`](#circlemarker-setlatlng). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\n\t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\n\t},\n\n\t// @method getLatLng(): LatLng\n\t// Returns the current geographical position of the circle marker\n\tgetLatLng: function () {\n\t\treturn this._latlng;\n\t},\n\n\t// @method setRadius(radius: Number): this\n\t// Sets the radius of a circle marker. Units are in pixels.\n\tsetRadius: function (radius) {\n\t\tthis.options.radius = this._radius = radius;\n\t\treturn this.redraw();\n\t},\n\n\t// @method getRadius(): Number\n\t// Returns the current radius of the circle\n\tgetRadius: function () {\n\t\treturn this._radius;\n\t},\n\n\tsetStyle : function (options) {\n\t\tvar radius = options && options.radius || this._radius;\n\t\tPath.prototype.setStyle.call(this, options);\n\t\tthis.setRadius(radius);\n\t\treturn this;\n\t},\n\n\t_project: function () {\n\t\tthis._point = this._map.latLngToLayerPoint(this._latlng);\n\t\tthis._updateBounds();\n\t},\n\n\t_updateBounds: function () {\n\t\tvar r = this._radius,\n\t\t r2 = this._radiusY || r,\n\t\t w = this._clickTolerance(),\n\t\t p = [r + w, r2 + w];\n\t\tthis._pxBounds = new Bounds(this._point.subtract(p), this._point.add(p));\n\t},\n\n\t_update: function () {\n\t\tif (this._map) {\n\t\t\tthis._updatePath();\n\t\t}\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updateCircle(this);\n\t},\n\n\t_empty: function () {\n\t\treturn this._radius && !this._renderer._bounds.intersects(this._pxBounds);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p) {\n\t\treturn p.distanceTo(this._point) <= this._radius + this._clickTolerance();\n\t}\n});\n\n\n// @factory L.circleMarker(latlng: LatLng, options?: CircleMarker options)\n// Instantiates a circle marker object given a geographical point, and an optional options object.\nexport function circleMarker(latlng, options) {\n\treturn new CircleMarker(latlng, options);\n}\n","import {CircleMarker} from './CircleMarker';\nimport {Path} from './Path';\nimport * as Util from '../../core/Util';\nimport {toLatLng} from '../../geo/LatLng';\nimport {LatLngBounds} from '../../geo/LatLngBounds';\nimport {Earth} from '../../geo/crs/CRS.Earth';\n\n\n/*\n * @class Circle\n * @aka L.Circle\n * @inherits CircleMarker\n *\n * A class for drawing circle overlays on a map. Extends `CircleMarker`.\n *\n * It's an approximation and starts to diverge from a real circle closer to poles (due to projection distortion).\n *\n * @example\n *\n * ```js\n * L.circle([50.5, 30.5], {radius: 200}).addTo(map);\n * ```\n */\n\nexport var Circle = CircleMarker.extend({\n\n\tinitialize: function (latlng, options, legacyOptions) {\n\t\tif (typeof options === 'number') {\n\t\t\t// Backwards compatibility with 0.7.x factory (latlng, radius, options?)\n\t\t\toptions = Util.extend({}, legacyOptions, {radius: options});\n\t\t}\n\t\tUtil.setOptions(this, options);\n\t\tthis._latlng = toLatLng(latlng);\n\n\t\tif (isNaN(this.options.radius)) { throw new Error('Circle radius cannot be NaN'); }\n\n\t\t// @section\n\t\t// @aka Circle options\n\t\t// @option radius: Number; Radius of the circle, in meters.\n\t\tthis._mRadius = this.options.radius;\n\t},\n\n\t// @method setRadius(radius: Number): this\n\t// Sets the radius of a circle. Units are in meters.\n\tsetRadius: function (radius) {\n\t\tthis._mRadius = radius;\n\t\treturn this.redraw();\n\t},\n\n\t// @method getRadius(): Number\n\t// Returns the current radius of a circle. Units are in meters.\n\tgetRadius: function () {\n\t\treturn this._mRadius;\n\t},\n\n\t// @method getBounds(): LatLngBounds\n\t// Returns the `LatLngBounds` of the path.\n\tgetBounds: function () {\n\t\tvar half = [this._radius, this._radiusY || this._radius];\n\n\t\treturn new LatLngBounds(\n\t\t\tthis._map.layerPointToLatLng(this._point.subtract(half)),\n\t\t\tthis._map.layerPointToLatLng(this._point.add(half)));\n\t},\n\n\tsetStyle: Path.prototype.setStyle,\n\n\t_project: function () {\n\n\t\tvar lng = this._latlng.lng,\n\t\t lat = this._latlng.lat,\n\t\t map = this._map,\n\t\t crs = map.options.crs;\n\n\t\tif (crs.distance === Earth.distance) {\n\t\t\tvar d = Math.PI / 180,\n\t\t\t latR = (this._mRadius / Earth.R) / d,\n\t\t\t top = map.project([lat + latR, lng]),\n\t\t\t bottom = map.project([lat - latR, lng]),\n\t\t\t p = top.add(bottom).divideBy(2),\n\t\t\t lat2 = map.unproject(p).lat,\n\t\t\t lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d)) /\n\t\t\t (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\n\n\t\t\tif (isNaN(lngR) || lngR === 0) {\n\t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\n\t\t\t}\n\n\t\t\tthis._point = p.subtract(map.getPixelOrigin());\n\t\t\tthis._radius = isNaN(lngR) ? 0 : p.x - map.project([lat2, lng - lngR]).x;\n\t\t\tthis._radiusY = p.y - top.y;\n\n\t\t} else {\n\t\t\tvar latlng2 = crs.unproject(crs.project(this._latlng).subtract([this._mRadius, 0]));\n\n\t\t\tthis._point = map.latLngToLayerPoint(this._latlng);\n\t\t\tthis._radius = this._point.x - map.latLngToLayerPoint(latlng2).x;\n\t\t}\n\n\t\tthis._updateBounds();\n\t}\n});\n\n// @factory L.circle(latlng: LatLng, options?: Circle options)\n// Instantiates a circle object given a geographical point, and an options object\n// which contains the circle radius.\n// @alternative\n// @factory L.circle(latlng: LatLng, radius: Number, options?: Circle options)\n// Obsolete way of instantiating a circle, for compatibility with 0.7.x code.\n// Do not use in new applications or plugins.\nexport function circle(latlng, options, legacyOptions) {\n\treturn new Circle(latlng, options, legacyOptions);\n}\n","import {Path} from './Path';\nimport * as Util from '../../core/Util';\nimport * as LineUtil from '../../geometry/LineUtil';\nimport {LatLng, toLatLng} from '../../geo/LatLng';\nimport {LatLngBounds} from '../../geo/LatLngBounds';\nimport {Bounds} from '../../geometry/Bounds';\nimport {Point} from '../../geometry/Point';\n\n/*\n * @class Polyline\n * @aka L.Polyline\n * @inherits Path\n *\n * A class for drawing polyline overlays on a map. Extends `Path`.\n *\n * @example\n *\n * ```js\n * // create a red polyline from an array of LatLng points\n * var latlngs = [\n * \t[45.51, -122.68],\n * \t[37.77, -122.43],\n * \t[34.04, -118.2]\n * ];\n *\n * var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polyline\n * map.fitBounds(polyline.getBounds());\n * ```\n *\n * You can also pass a multi-dimensional array to represent a `MultiPolyline` shape:\n *\n * ```js\n * // create a red polyline from an array of arrays of LatLng points\n * var latlngs = [\n * \t[[45.51, -122.68],\n * \t [37.77, -122.43],\n * \t [34.04, -118.2]],\n * \t[[40.78, -73.91],\n * \t [41.83, -87.62],\n * \t [32.76, -96.72]]\n * ];\n * ```\n */\n\n\nexport var Polyline = Path.extend({\n\n\t// @section\n\t// @aka Polyline options\n\toptions: {\n\t\t// @option smoothFactor: Number = 1.0\n\t\t// How much to simplify the polyline on each zoom level. More means\n\t\t// better performance and smoother look, and less means more accurate representation.\n\t\tsmoothFactor: 1.0,\n\n\t\t// @option noClip: Boolean = false\n\t\t// Disable polyline clipping.\n\t\tnoClip: false\n\t},\n\n\tinitialize: function (latlngs, options) {\n\t\tUtil.setOptions(this, options);\n\t\tthis._setLatLngs(latlngs);\n\t},\n\n\t// @method getLatLngs(): LatLng[]\n\t// Returns an array of the points in the path, or nested arrays of points in case of multi-polyline.\n\tgetLatLngs: function () {\n\t\treturn this._latlngs;\n\t},\n\n\t// @method setLatLngs(latlngs: LatLng[]): this\n\t// Replaces all the points in the polyline with the given array of geographical points.\n\tsetLatLngs: function (latlngs) {\n\t\tthis._setLatLngs(latlngs);\n\t\treturn this.redraw();\n\t},\n\n\t// @method isEmpty(): Boolean\n\t// Returns `true` if the Polyline has no LatLngs.\n\tisEmpty: function () {\n\t\treturn !this._latlngs.length;\n\t},\n\n\t// @method closestLayerPoint(p: Point): Point\n\t// Returns the point closest to `p` on the Polyline.\n\tclosestLayerPoint: function (p) {\n\t\tvar minDistance = Infinity,\n\t\t minPoint = null,\n\t\t closest = LineUtil._sqClosestPointOnSegment,\n\t\t p1, p2;\n\n\t\tfor (var j = 0, jLen = this._parts.length; j < jLen; j++) {\n\t\t\tvar points = this._parts[j];\n\n\t\t\tfor (var i = 1, len = points.length; i < len; i++) {\n\t\t\t\tp1 = points[i - 1];\n\t\t\t\tp2 = points[i];\n\n\t\t\t\tvar sqDist = closest(p, p1, p2, true);\n\n\t\t\t\tif (sqDist < minDistance) {\n\t\t\t\t\tminDistance = sqDist;\n\t\t\t\t\tminPoint = closest(p, p1, p2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (minPoint) {\n\t\t\tminPoint.distance = Math.sqrt(minDistance);\n\t\t}\n\t\treturn minPoint;\n\t},\n\n\t// @method getCenter(): LatLng\n\t// Returns the center ([centroid](http://en.wikipedia.org/wiki/Centroid)) of the polyline.\n\tgetCenter: function () {\n\t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n\t\tif (!this._map) {\n\t\t\tthrow new Error('Must add layer to map before using getCenter()');\n\t\t}\n\n\t\tvar i, halfDist, segDist, dist, p1, p2, ratio,\n\t\t points = this._rings[0],\n\t\t len = points.length;\n\n\t\tif (!len) { return null; }\n\n\t\t// polyline centroid algorithm; only uses the first ring if there are multiple\n\n\t\tfor (i = 0, halfDist = 0; i < len - 1; i++) {\n\t\t\thalfDist += points[i].distanceTo(points[i + 1]) / 2;\n\t\t}\n\n\t\t// The line is so small in the current view that all points are on the same pixel.\n\t\tif (halfDist === 0) {\n\t\t\treturn this._map.layerPointToLatLng(points[0]);\n\t\t}\n\n\t\tfor (i = 0, dist = 0; i < len - 1; i++) {\n\t\t\tp1 = points[i];\n\t\t\tp2 = points[i + 1];\n\t\t\tsegDist = p1.distanceTo(p2);\n\t\t\tdist += segDist;\n\n\t\t\tif (dist > halfDist) {\n\t\t\t\tratio = (dist - halfDist) / segDist;\n\t\t\t\treturn this._map.layerPointToLatLng([\n\t\t\t\t\tp2.x - ratio * (p2.x - p1.x),\n\t\t\t\t\tp2.y - ratio * (p2.y - p1.y)\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\t},\n\n\t// @method getBounds(): LatLngBounds\n\t// Returns the `LatLngBounds` of the path.\n\tgetBounds: function () {\n\t\treturn this._bounds;\n\t},\n\n\t// @method addLatLng(latlng: LatLng, latlngs?: LatLng[]): this\n\t// Adds a given point to the polyline. By default, adds to the first ring of\n\t// the polyline in case of a multi-polyline, but can be overridden by passing\n\t// a specific ring as a LatLng array (that you can earlier access with [`getLatLngs`](#polyline-getlatlngs)).\n\taddLatLng: function (latlng, latlngs) {\n\t\tlatlngs = latlngs || this._defaultShape();\n\t\tlatlng = toLatLng(latlng);\n\t\tlatlngs.push(latlng);\n\t\tthis._bounds.extend(latlng);\n\t\treturn this.redraw();\n\t},\n\n\t_setLatLngs: function (latlngs) {\n\t\tthis._bounds = new LatLngBounds();\n\t\tthis._latlngs = this._convertLatLngs(latlngs);\n\t},\n\n\t_defaultShape: function () {\n\t\treturn LineUtil.isFlat(this._latlngs) ? this._latlngs : this._latlngs[0];\n\t},\n\n\t// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way\n\t_convertLatLngs: function (latlngs) {\n\t\tvar result = [],\n\t\t flat = LineUtil.isFlat(latlngs);\n\n\t\tfor (var i = 0, len = latlngs.length; i < len; i++) {\n\t\t\tif (flat) {\n\t\t\t\tresult[i] = toLatLng(latlngs[i]);\n\t\t\t\tthis._bounds.extend(result[i]);\n\t\t\t} else {\n\t\t\t\tresult[i] = this._convertLatLngs(latlngs[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\t_project: function () {\n\t\tvar pxBounds = new Bounds();\n\t\tthis._rings = [];\n\t\tthis._projectLatlngs(this._latlngs, this._rings, pxBounds);\n\n\t\tif (this._bounds.isValid() && pxBounds.isValid()) {\n\t\t\tthis._rawPxBounds = pxBounds;\n\t\t\tthis._updateBounds();\n\t\t}\n\t},\n\n\t_updateBounds: function () {\n\t\tvar w = this._clickTolerance(),\n\t\t p = new Point(w, w);\n\t\tthis._pxBounds = new Bounds([\n\t\t\tthis._rawPxBounds.min.subtract(p),\n\t\t\tthis._rawPxBounds.max.add(p)\n\t\t]);\n\t},\n\n\t// recursively turns latlngs into a set of rings with projected coordinates\n\t_projectLatlngs: function (latlngs, result, projectedBounds) {\n\t\tvar flat = latlngs[0] instanceof LatLng,\n\t\t len = latlngs.length,\n\t\t i, ring;\n\n\t\tif (flat) {\n\t\t\tring = [];\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tring[i] = this._map.latLngToLayerPoint(latlngs[i]);\n\t\t\t\tprojectedBounds.extend(ring[i]);\n\t\t\t}\n\t\t\tresult.push(ring);\n\t\t} else {\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tthis._projectLatlngs(latlngs[i], result, projectedBounds);\n\t\t\t}\n\t\t}\n\t},\n\n\t// clip polyline by renderer bounds so that we have less to render for performance\n\t_clipPoints: function () {\n\t\tvar bounds = this._renderer._bounds;\n\n\t\tthis._parts = [];\n\t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.noClip) {\n\t\t\tthis._parts = this._rings;\n\t\t\treturn;\n\t\t}\n\n\t\tvar parts = this._parts,\n\t\t i, j, k, len, len2, segment, points;\n\n\t\tfor (i = 0, k = 0, len = this._rings.length; i < len; i++) {\n\t\t\tpoints = this._rings[i];\n\n\t\t\tfor (j = 0, len2 = points.length; j < len2 - 1; j++) {\n\t\t\t\tsegment = LineUtil.clipSegment(points[j], points[j + 1], bounds, j, true);\n\n\t\t\t\tif (!segment) { continue; }\n\n\t\t\t\tparts[k] = parts[k] || [];\n\t\t\t\tparts[k].push(segment[0]);\n\n\t\t\t\t// if segment goes out of screen, or it's the last one, it's the end of the line part\n\t\t\t\tif ((segment[1] !== points[j + 1]) || (j === len2 - 2)) {\n\t\t\t\t\tparts[k].push(segment[1]);\n\t\t\t\t\tk++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// simplify each clipped part of the polyline for performance\n\t_simplifyPoints: function () {\n\t\tvar parts = this._parts,\n\t\t tolerance = this.options.smoothFactor;\n\n\t\tfor (var i = 0, len = parts.length; i < len; i++) {\n\t\t\tparts[i] = LineUtil.simplify(parts[i], tolerance);\n\t\t}\n\t},\n\n\t_update: function () {\n\t\tif (!this._map) { return; }\n\n\t\tthis._clipPoints();\n\t\tthis._simplifyPoints();\n\t\tthis._updatePath();\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updatePoly(this);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p, closed) {\n\t\tvar i, j, k, len, len2, part,\n\t\t w = this._clickTolerance();\n\n\t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n\t\t// hit detection for polylines\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n\t\t\tpart = this._parts[i];\n\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n\t\t\t\tif (!closed && (j === 0)) { continue; }\n\n\t\t\t\tif (LineUtil.pointToSegmentDistance(p, part[k], part[j]) <= w) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n});\n\n// @factory L.polyline(latlngs: LatLng[], options?: Polyline options)\n// Instantiates a polyline object given an array of geographical points and\n// optionally an options object. You can create a `Polyline` object with\n// multiple separate lines (`MultiPolyline`) by passing an array of arrays\n// of geographic points.\nexport function polyline(latlngs, options) {\n\treturn new Polyline(latlngs, options);\n}\n\n// Retrocompat. Allow plugins to support Leaflet versions before and after 1.1.\nPolyline._flat = LineUtil._flat;\n","import {Polyline} from './Polyline';\nimport {LatLng} from '../../geo/LatLng';\nimport * as LineUtil from '../../geometry/LineUtil';\nimport {Point} from '../../geometry/Point';\nimport {Bounds} from '../../geometry/Bounds';\nimport * as PolyUtil from '../../geometry/PolyUtil';\n\n/*\n * @class Polygon\n * @aka L.Polygon\n * @inherits Polyline\n *\n * A class for drawing polygon overlays on a map. Extends `Polyline`.\n *\n * Note that points you pass when creating a polygon shouldn't have an additional last point equal to the first one — it's better to filter out such points.\n *\n *\n * @example\n *\n * ```js\n * // create a red polygon from an array of LatLng points\n * var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];\n *\n * var polygon = L.polygon(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polygon\n * map.fitBounds(polygon.getBounds());\n * ```\n *\n * You can also pass an array of arrays of latlngs, with the first array representing the outer shape and the other arrays representing holes in the outer shape:\n *\n * ```js\n * var latlngs = [\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ];\n * ```\n *\n * Additionally, you can pass a multi-dimensional array to represent a MultiPolygon shape.\n *\n * ```js\n * var latlngs = [\n * [ // first polygon\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ],\n * [ // second polygon\n * [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]\n * ]\n * ];\n * ```\n */\n\nexport var Polygon = Polyline.extend({\n\n\toptions: {\n\t\tfill: true\n\t},\n\n\tisEmpty: function () {\n\t\treturn !this._latlngs.length || !this._latlngs[0].length;\n\t},\n\n\tgetCenter: function () {\n\t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n\t\tif (!this._map) {\n\t\t\tthrow new Error('Must add layer to map before using getCenter()');\n\t\t}\n\n\t\tvar i, j, p1, p2, f, area, x, y, center,\n\t\t points = this._rings[0],\n\t\t len = points.length;\n\n\t\tif (!len) { return null; }\n\n\t\t// polygon centroid algorithm; only uses the first ring if there are multiple\n\n\t\tarea = x = y = 0;\n\n\t\tfor (i = 0, j = len - 1; i < len; j = i++) {\n\t\t\tp1 = points[i];\n\t\t\tp2 = points[j];\n\n\t\t\tf = p1.y * p2.x - p2.y * p1.x;\n\t\t\tx += (p1.x + p2.x) * f;\n\t\t\ty += (p1.y + p2.y) * f;\n\t\t\tarea += f * 3;\n\t\t}\n\n\t\tif (area === 0) {\n\t\t\t// Polygon is so small that all points are on same pixel.\n\t\t\tcenter = points[0];\n\t\t} else {\n\t\t\tcenter = [x / area, y / area];\n\t\t}\n\t\treturn this._map.layerPointToLatLng(center);\n\t},\n\n\t_convertLatLngs: function (latlngs) {\n\t\tvar result = Polyline.prototype._convertLatLngs.call(this, latlngs),\n\t\t len = result.length;\n\n\t\t// remove last point if it equals first one\n\t\tif (len >= 2 && result[0] instanceof LatLng && result[0].equals(result[len - 1])) {\n\t\t\tresult.pop();\n\t\t}\n\t\treturn result;\n\t},\n\n\t_setLatLngs: function (latlngs) {\n\t\tPolyline.prototype._setLatLngs.call(this, latlngs);\n\t\tif (LineUtil.isFlat(this._latlngs)) {\n\t\t\tthis._latlngs = [this._latlngs];\n\t\t}\n\t},\n\n\t_defaultShape: function () {\n\t\treturn LineUtil.isFlat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];\n\t},\n\n\t_clipPoints: function () {\n\t\t// polygons need a different clipping algorithm so we redefine that\n\n\t\tvar bounds = this._renderer._bounds,\n\t\t w = this.options.weight,\n\t\t p = new Point(w, w);\n\n\t\t// increase clip padding by stroke width to avoid stroke on clip edges\n\t\tbounds = new Bounds(bounds.min.subtract(p), bounds.max.add(p));\n\n\t\tthis._parts = [];\n\t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.noClip) {\n\t\t\tthis._parts = this._rings;\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, len = this._rings.length, clipped; i < len; i++) {\n\t\t\tclipped = PolyUtil.clipPolygon(this._rings[i], bounds, true);\n\t\t\tif (clipped.length) {\n\t\t\t\tthis._parts.push(clipped);\n\t\t\t}\n\t\t}\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updatePoly(this, true);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p) {\n\t\tvar inside = false,\n\t\t part, p1, p2, i, j, k, len, len2;\n\n\t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n\t\t// ray casting algorithm for detecting if point is in polygon\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n\t\t\tpart = this._parts[i];\n\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n\t\t\t\tp1 = part[j];\n\t\t\t\tp2 = part[k];\n\n\t\t\t\tif (((p1.y > p.y) !== (p2.y > p.y)) && (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) {\n\t\t\t\t\tinside = !inside;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// also check if it's on polygon stroke\n\t\treturn inside || Polyline.prototype._containsPoint.call(this, p, true);\n\t}\n\n});\n\n\n// @factory L.polygon(latlngs: LatLng[], options?: Polyline options)\nexport function polygon(latlngs, options) {\n\treturn new Polygon(latlngs, options);\n}\n","import {LayerGroup} from './LayerGroup';\r\nimport {FeatureGroup} from './FeatureGroup';\r\nimport * as Util from '../core/Util';\r\nimport {Marker} from './marker/Marker';\r\nimport {Circle} from './vector/Circle';\r\nimport {CircleMarker} from './vector/CircleMarker';\r\nimport {Polyline} from './vector/Polyline';\r\nimport {Polygon} from './vector/Polygon';\r\nimport {LatLng} from '../geo/LatLng';\r\nimport * as LineUtil from '../geometry/LineUtil';\r\n\r\n\r\n/*\r\n * @class GeoJSON\r\n * @aka L.GeoJSON\r\n * @inherits FeatureGroup\r\n *\r\n * Represents a GeoJSON object or an array of GeoJSON objects. Allows you to parse\r\n * GeoJSON data and display it on the map. Extends `FeatureGroup`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.geoJSON(data, {\r\n * \tstyle: function (feature) {\r\n * \t\treturn {color: feature.properties.color};\r\n * \t}\r\n * }).bindPopup(function (layer) {\r\n * \treturn layer.feature.properties.description;\r\n * }).addTo(map);\r\n * ```\r\n */\r\n\r\nexport var GeoJSON = FeatureGroup.extend({\r\n\r\n\t/* @section\r\n\t * @aka GeoJSON options\r\n\t *\r\n\t * @option pointToLayer: Function = *\r\n\t * A `Function` defining how GeoJSON points spawn Leaflet layers. It is internally\r\n\t * called when data is added, passing the GeoJSON point feature and its `LatLng`.\r\n\t * The default is to spawn a default `Marker`:\r\n\t * ```js\r\n\t * function(geoJsonPoint, latlng) {\r\n\t * \treturn L.marker(latlng);\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @option style: Function = *\r\n\t * A `Function` defining the `Path options` for styling GeoJSON lines and polygons,\r\n\t * called internally when data is added.\r\n\t * The default value is to not override any defaults:\r\n\t * ```js\r\n\t * function (geoJsonFeature) {\r\n\t * \treturn {}\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @option onEachFeature: Function = *\r\n\t * A `Function` that will be called once for each created `Feature`, after it has\r\n\t * been created and styled. Useful for attaching events and popups to features.\r\n\t * The default is to do nothing with the newly created layers:\r\n\t * ```js\r\n\t * function (feature, layer) {}\r\n\t * ```\r\n\t *\r\n\t * @option filter: Function = *\r\n\t * A `Function` that will be used to decide whether to include a feature or not.\r\n\t * The default is to include all features:\r\n\t * ```js\r\n\t * function (geoJsonFeature) {\r\n\t * \treturn true;\r\n\t * }\r\n\t * ```\r\n\t * Note: dynamically changing the `filter` option will have effect only on newly\r\n\t * added data. It will _not_ re-evaluate already included features.\r\n\t *\r\n\t * @option coordsToLatLng: Function = *\r\n\t * A `Function` that will be used for converting GeoJSON coordinates to `LatLng`s.\r\n\t * The default is the `coordsToLatLng` static method.\r\n\t *\r\n\t * @option markersInheritOptions: Boolean = false\r\n\t * Whether default Markers for \"Point\" type Features inherit from group options.\r\n\t */\r\n\r\n\tinitialize: function (geojson, options) {\r\n\t\tUtil.setOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\r\n\t\tif (geojson) {\r\n\t\t\tthis.addData(geojson);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addData( data ): this\r\n\t// Adds a GeoJSON object to the layer.\r\n\taddData: function (geojson) {\r\n\t\tvar features = Util.isArray(geojson) ? geojson : geojson.features,\r\n\t\t i, len, feature;\r\n\r\n\t\tif (features) {\r\n\t\t\tfor (i = 0, len = features.length; i < len; i++) {\r\n\t\t\t\t// only add this if geometry or geometries are set and not null\r\n\t\t\t\tfeature = features[i];\r\n\t\t\t\tif (feature.geometries || feature.geometry || feature.features || feature.coordinates) {\r\n\t\t\t\t\tthis.addData(feature);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (options.filter && !options.filter(geojson)) { return this; }\r\n\r\n\t\tvar layer = geometryToLayer(geojson, options);\r\n\t\tif (!layer) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tlayer.feature = asFeature(geojson);\r\n\r\n\t\tlayer.defaultOptions = layer.options;\r\n\t\tthis.resetStyle(layer);\r\n\r\n\t\tif (options.onEachFeature) {\r\n\t\t\toptions.onEachFeature(geojson, layer);\r\n\t\t}\r\n\r\n\t\treturn this.addLayer(layer);\r\n\t},\r\n\r\n\t// @method resetStyle( layer? ): this\r\n\t// Resets the given vector layer's style to the original GeoJSON style, useful for resetting style after hover events.\r\n\t// If `layer` is omitted, the style of all features in the current layer is reset.\r\n\tresetStyle: function (layer) {\r\n\t\tif (layer === undefined) {\r\n\t\t\treturn this.eachLayer(this.resetStyle, this);\r\n\t\t}\r\n\t\t// reset any custom styles\r\n\t\tlayer.options = Util.extend({}, layer.defaultOptions);\r\n\t\tthis._setLayerStyle(layer, this.options.style);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setStyle( style ): this\r\n\t// Changes styles of GeoJSON vector layers with the given style function.\r\n\tsetStyle: function (style) {\r\n\t\treturn this.eachLayer(function (layer) {\r\n\t\t\tthis._setLayerStyle(layer, style);\r\n\t\t}, this);\r\n\t},\r\n\r\n\t_setLayerStyle: function (layer, style) {\r\n\t\tif (layer.setStyle) {\r\n\t\t\tif (typeof style === 'function') {\r\n\t\t\t\tstyle = style(layer.feature);\r\n\t\t\t}\r\n\t\t\tlayer.setStyle(style);\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// @section\r\n// There are several static functions which can be called without instantiating L.GeoJSON:\r\n\r\n// @function geometryToLayer(featureData: Object, options?: GeoJSON options): Layer\r\n// Creates a `Layer` from a given GeoJSON feature. Can use a custom\r\n// [`pointToLayer`](#geojson-pointtolayer) and/or [`coordsToLatLng`](#geojson-coordstolatlng)\r\n// functions if provided as options.\r\nexport function geometryToLayer(geojson, options) {\r\n\r\n\tvar geometry = geojson.type === 'Feature' ? geojson.geometry : geojson,\r\n\t coords = geometry ? geometry.coordinates : null,\r\n\t layers = [],\r\n\t pointToLayer = options && options.pointToLayer,\r\n\t _coordsToLatLng = options && options.coordsToLatLng || coordsToLatLng,\r\n\t latlng, latlngs, i, len;\r\n\r\n\tif (!coords && !geometry) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tswitch (geometry.type) {\r\n\tcase 'Point':\r\n\t\tlatlng = _coordsToLatLng(coords);\r\n\t\treturn _pointToLayer(pointToLayer, geojson, latlng, options);\r\n\r\n\tcase 'MultiPoint':\r\n\t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n\t\t\tlatlng = _coordsToLatLng(coords[i]);\r\n\t\t\tlayers.push(_pointToLayer(pointToLayer, geojson, latlng, options));\r\n\t\t}\r\n\t\treturn new FeatureGroup(layers);\r\n\r\n\tcase 'LineString':\r\n\tcase 'MultiLineString':\r\n\t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'LineString' ? 0 : 1, _coordsToLatLng);\r\n\t\treturn new Polyline(latlngs, options);\r\n\r\n\tcase 'Polygon':\r\n\tcase 'MultiPolygon':\r\n\t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'Polygon' ? 1 : 2, _coordsToLatLng);\r\n\t\treturn new Polygon(latlngs, options);\r\n\r\n\tcase 'GeometryCollection':\r\n\t\tfor (i = 0, len = geometry.geometries.length; i < len; i++) {\r\n\t\t\tvar layer = geometryToLayer({\r\n\t\t\t\tgeometry: geometry.geometries[i],\r\n\t\t\t\ttype: 'Feature',\r\n\t\t\t\tproperties: geojson.properties\r\n\t\t\t}, options);\r\n\r\n\t\t\tif (layer) {\r\n\t\t\t\tlayers.push(layer);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new FeatureGroup(layers);\r\n\r\n\tdefault:\r\n\t\tthrow new Error('Invalid GeoJSON object.');\r\n\t}\r\n}\r\n\r\nfunction _pointToLayer(pointToLayerFn, geojson, latlng, options) {\r\n\treturn pointToLayerFn ?\r\n\t\tpointToLayerFn(geojson, latlng) :\r\n\t\tnew Marker(latlng, options && options.markersInheritOptions && options);\r\n}\r\n\r\n// @function coordsToLatLng(coords: Array): LatLng\r\n// Creates a `LatLng` object from an array of 2 numbers (longitude, latitude)\r\n// or 3 numbers (longitude, latitude, altitude) used in GeoJSON for points.\r\nexport function coordsToLatLng(coords) {\r\n\treturn new LatLng(coords[1], coords[0], coords[2]);\r\n}\r\n\r\n// @function coordsToLatLngs(coords: Array, levelsDeep?: Number, coordsToLatLng?: Function): Array\r\n// Creates a multidimensional array of `LatLng`s from a GeoJSON coordinates array.\r\n// `levelsDeep` specifies the nesting level (0 is for an array of points, 1 for an array of arrays of points, etc., 0 by default).\r\n// Can use a custom [`coordsToLatLng`](#geojson-coordstolatlng) function.\r\nexport function coordsToLatLngs(coords, levelsDeep, _coordsToLatLng) {\r\n\tvar latlngs = [];\r\n\r\n\tfor (var i = 0, len = coords.length, latlng; i < len; i++) {\r\n\t\tlatlng = levelsDeep ?\r\n\t\t\tcoordsToLatLngs(coords[i], levelsDeep - 1, _coordsToLatLng) :\r\n\t\t\t(_coordsToLatLng || coordsToLatLng)(coords[i]);\r\n\r\n\t\tlatlngs.push(latlng);\r\n\t}\r\n\r\n\treturn latlngs;\r\n}\r\n\r\n// @function latLngToCoords(latlng: LatLng, precision?: Number): Array\r\n// Reverse of [`coordsToLatLng`](#geojson-coordstolatlng)\r\nexport function latLngToCoords(latlng, precision) {\r\n\tprecision = typeof precision === 'number' ? precision : 6;\r\n\treturn latlng.alt !== undefined ?\r\n\t\t[Util.formatNum(latlng.lng, precision), Util.formatNum(latlng.lat, precision), Util.formatNum(latlng.alt, precision)] :\r\n\t\t[Util.formatNum(latlng.lng, precision), Util.formatNum(latlng.lat, precision)];\r\n}\r\n\r\n// @function latLngsToCoords(latlngs: Array, levelsDeep?: Number, closed?: Boolean): Array\r\n// Reverse of [`coordsToLatLngs`](#geojson-coordstolatlngs)\r\n// `closed` determines whether the first point should be appended to the end of the array to close the feature, only used when `levelsDeep` is 0. False by default.\r\nexport function latLngsToCoords(latlngs, levelsDeep, closed, precision) {\r\n\tvar coords = [];\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tcoords.push(levelsDeep ?\r\n\t\t\tlatLngsToCoords(latlngs[i], levelsDeep - 1, closed, precision) :\r\n\t\t\tlatLngToCoords(latlngs[i], precision));\r\n\t}\r\n\r\n\tif (!levelsDeep && closed) {\r\n\t\tcoords.push(coords[0]);\r\n\t}\r\n\r\n\treturn coords;\r\n}\r\n\r\nexport function getFeature(layer, newGeometry) {\r\n\treturn layer.feature ?\r\n\t\tUtil.extend({}, layer.feature, {geometry: newGeometry}) :\r\n\t\tasFeature(newGeometry);\r\n}\r\n\r\n// @function asFeature(geojson: Object): Object\r\n// Normalize GeoJSON geometries/features into GeoJSON features.\r\nexport function asFeature(geojson) {\r\n\tif (geojson.type === 'Feature' || geojson.type === 'FeatureCollection') {\r\n\t\treturn geojson;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttype: 'Feature',\r\n\t\tproperties: {},\r\n\t\tgeometry: geojson\r\n\t};\r\n}\r\n\r\nvar PointToGeoJSON = {\r\n\ttoGeoJSON: function (precision) {\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: 'Point',\r\n\t\t\tcoordinates: latLngToCoords(this.getLatLng(), precision)\r\n\t\t});\r\n\t}\r\n};\r\n\r\n// @namespace Marker\r\n// @section Other methods\r\n// @method toGeoJSON(precision?: Number): Object\r\n// `precision` is the number of decimal places for coordinates.\r\n// The default value is 6 places.\r\n// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the marker (as a GeoJSON `Point` Feature).\r\nMarker.include(PointToGeoJSON);\r\n\r\n// @namespace CircleMarker\r\n// @method toGeoJSON(precision?: Number): Object\r\n// `precision` is the number of decimal places for coordinates.\r\n// The default value is 6 places.\r\n// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the circle marker (as a GeoJSON `Point` Feature).\r\nCircle.include(PointToGeoJSON);\r\nCircleMarker.include(PointToGeoJSON);\r\n\r\n\r\n// @namespace Polyline\r\n// @method toGeoJSON(precision?: Number): Object\r\n// `precision` is the number of decimal places for coordinates.\r\n// The default value is 6 places.\r\n// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).\r\nPolyline.include({\r\n\ttoGeoJSON: function (precision) {\r\n\t\tvar multi = !LineUtil.isFlat(this._latlngs);\r\n\r\n\t\tvar coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: (multi ? 'Multi' : '') + 'LineString',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t}\r\n});\r\n\r\n// @namespace Polygon\r\n// @method toGeoJSON(precision?: Number): Object\r\n// `precision` is the number of decimal places for coordinates.\r\n// The default value is 6 places.\r\n// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).\r\nPolygon.include({\r\n\ttoGeoJSON: function (precision) {\r\n\t\tvar holes = !LineUtil.isFlat(this._latlngs),\r\n\t\t multi = holes && !LineUtil.isFlat(this._latlngs[0]);\r\n\r\n\t\tvar coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);\r\n\r\n\t\tif (!holes) {\r\n\t\t\tcoords = [coords];\r\n\t\t}\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: (multi ? 'Multi' : '') + 'Polygon',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t}\r\n});\r\n\r\n\r\n// @namespace LayerGroup\r\nLayerGroup.include({\r\n\ttoMultiPoint: function (precision) {\r\n\t\tvar coords = [];\r\n\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tcoords.push(layer.toGeoJSON(precision).geometry.coordinates);\r\n\t\t});\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: 'MultiPoint',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t},\r\n\r\n\t// @method toGeoJSON(precision?: Number): Object\r\n\t// `precision` is the number of decimal places for coordinates.\r\n\t// The default value is 6 places.\r\n\t// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the layer group (as a GeoJSON `FeatureCollection`, `GeometryCollection`, or `MultiPoint`).\r\n\ttoGeoJSON: function (precision) {\r\n\r\n\t\tvar type = this.feature && this.feature.geometry && this.feature.geometry.type;\r\n\r\n\t\tif (type === 'MultiPoint') {\r\n\t\t\treturn this.toMultiPoint(precision);\r\n\t\t}\r\n\r\n\t\tvar isGeometryCollection = type === 'GeometryCollection',\r\n\t\t jsons = [];\r\n\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tif (layer.toGeoJSON) {\r\n\t\t\t\tvar json = layer.toGeoJSON(precision);\r\n\t\t\t\tif (isGeometryCollection) {\r\n\t\t\t\t\tjsons.push(json.geometry);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar feature = asFeature(json);\r\n\t\t\t\t\t// Squash nested feature collections\r\n\t\t\t\t\tif (feature.type === 'FeatureCollection') {\r\n\t\t\t\t\t\tjsons.push.apply(jsons, feature.features);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tjsons.push(feature);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (isGeometryCollection) {\r\n\t\t\treturn getFeature(this, {\r\n\t\t\t\tgeometries: jsons,\r\n\t\t\t\ttype: 'GeometryCollection'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttype: 'FeatureCollection',\r\n\t\t\tfeatures: jsons\r\n\t\t};\r\n\t}\r\n});\r\n\r\n// @namespace GeoJSON\r\n// @factory L.geoJSON(geojson?: Object, options?: GeoJSON options)\r\n// Creates a GeoJSON layer. Optionally accepts an object in\r\n// [GeoJSON format](https://tools.ietf.org/html/rfc7946) to display on the map\r\n// (you can alternatively add it later with `addData` method) and an `options` object.\r\nexport function geoJSON(geojson, options) {\r\n\treturn new GeoJSON(geojson, options);\r\n}\r\n\r\n// Backward compatibility.\r\nexport var geoJson = geoJSON;\r\n","import {Layer} from './Layer';\r\nimport * as Util from '../core/Util';\r\nimport {toLatLngBounds} from '../geo/LatLngBounds';\r\nimport {Bounds} from '../geometry/Bounds';\r\nimport * as DomUtil from '../dom/DomUtil';\r\n\r\n/*\r\n * @class ImageOverlay\r\n * @aka L.ImageOverlay\r\n * @inherits Interactive layer\r\n *\r\n * Used to load and display a single image over specific bounds of the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var imageUrl = 'http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',\r\n * \timageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];\r\n * L.imageOverlay(imageUrl, imageBounds).addTo(map);\r\n * ```\r\n */\r\n\r\nexport var ImageOverlay = Layer.extend({\r\n\r\n\t// @section\r\n\t// @aka ImageOverlay options\r\n\toptions: {\r\n\t\t// @option opacity: Number = 1.0\r\n\t\t// The opacity of the image overlay.\r\n\t\topacity: 1,\r\n\r\n\t\t// @option alt: String = ''\r\n\t\t// Text for the `alt` attribute of the image (useful for accessibility).\r\n\t\talt: '',\r\n\r\n\t\t// @option interactive: Boolean = false\r\n\t\t// If `true`, the image overlay will emit [mouse events](#interactive-layer) when clicked or hovered.\r\n\t\tinteractive: false,\r\n\r\n\t\t// @option crossOrigin: Boolean|String = false\r\n\t\t// Whether the crossOrigin attribute will be added to the image.\r\n\t\t// If a String is provided, the image will have its crossOrigin attribute set to the String provided. This is needed if you want to access image pixel data.\r\n\t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n\t\tcrossOrigin: false,\r\n\r\n\t\t// @option errorOverlayUrl: String = ''\r\n\t\t// URL to the overlay image to show in place of the overlay that failed to load.\r\n\t\terrorOverlayUrl: '',\r\n\r\n\t\t// @option zIndex: Number = 1\r\n\t\t// The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the overlay layer.\r\n\t\tzIndex: 1,\r\n\r\n\t\t// @option className: String = ''\r\n\t\t// A custom class name to assign to the image. Empty by default.\r\n\t\tclassName: ''\r\n\t},\r\n\r\n\tinitialize: function (url, bounds, options) { // (String, LatLngBounds, Object)\r\n\t\tthis._url = url;\r\n\t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n\t\tUtil.setOptions(this, options);\r\n\t},\r\n\r\n\tonAdd: function () {\r\n\t\tif (!this._image) {\r\n\t\t\tthis._initImage();\r\n\r\n\t\t\tif (this.options.opacity < 1) {\r\n\t\t\t\tthis._updateOpacity();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.options.interactive) {\r\n\t\t\tDomUtil.addClass(this._image, 'leaflet-interactive');\r\n\t\t\tthis.addInteractiveTarget(this._image);\r\n\t\t}\r\n\r\n\t\tthis.getPane().appendChild(this._image);\r\n\t\tthis._reset();\r\n\t},\r\n\r\n\tonRemove: function () {\r\n\t\tDomUtil.remove(this._image);\r\n\t\tif (this.options.interactive) {\r\n\t\t\tthis.removeInteractiveTarget(this._image);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method setOpacity(opacity: Number): this\r\n\t// Sets the opacity of the overlay.\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\r\n\t\tif (this._image) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetStyle: function (styleOpts) {\r\n\t\tif (styleOpts.opacity) {\r\n\t\t\tthis.setOpacity(styleOpts.opacity);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method bringToFront(): this\r\n\t// Brings the layer to the top of all overlays.\r\n\tbringToFront: function () {\r\n\t\tif (this._map) {\r\n\t\t\tDomUtil.toFront(this._image);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method bringToBack(): this\r\n\t// Brings the layer to the bottom of all overlays.\r\n\tbringToBack: function () {\r\n\t\tif (this._map) {\r\n\t\t\tDomUtil.toBack(this._image);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setUrl(url: String): this\r\n\t// Changes the URL of the image.\r\n\tsetUrl: function (url) {\r\n\t\tthis._url = url;\r\n\r\n\t\tif (this._image) {\r\n\t\t\tthis._image.src = url;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setBounds(bounds: LatLngBounds): this\r\n\t// Update the bounds that this ImageOverlay covers\r\n\tsetBounds: function (bounds) {\r\n\t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._reset();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetEvents: function () {\r\n\t\tvar events = {\r\n\t\t\tzoom: this._reset,\r\n\t\t\tviewreset: this._reset\r\n\t\t};\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tevents.zoomanim = this._animateZoom;\r\n\t\t}\r\n\r\n\t\treturn events;\r\n\t},\r\n\r\n\t// @method setZIndex(value: Number): this\r\n\t// Changes the [zIndex](#imageoverlay-zindex) of the image overlay.\r\n\tsetZIndex: function (value) {\r\n\t\tthis.options.zIndex = value;\r\n\t\tthis._updateZIndex();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Get the bounds that this ImageOverlay covers\r\n\tgetBounds: function () {\r\n\t\treturn this._bounds;\r\n\t},\r\n\r\n\t// @method getElement(): HTMLElement\r\n\t// Returns the instance of [`HTMLImageElement`](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)\r\n\t// used by this overlay.\r\n\tgetElement: function () {\r\n\t\treturn this._image;\r\n\t},\r\n\r\n\t_initImage: function () {\r\n\t\tvar wasElementSupplied = this._url.tagName === 'IMG';\r\n\t\tvar img = this._image = wasElementSupplied ? this._url : DomUtil.create('img');\r\n\r\n\t\tDomUtil.addClass(img, 'leaflet-image-layer');\r\n\t\tif (this._zoomAnimated) { DomUtil.addClass(img, 'leaflet-zoom-animated'); }\r\n\t\tif (this.options.className) { DomUtil.addClass(img, this.options.className); }\r\n\r\n\t\timg.onselectstart = Util.falseFn;\r\n\t\timg.onmousemove = Util.falseFn;\r\n\r\n\t\t// @event load: Event\r\n\t\t// Fired when the ImageOverlay layer has loaded its image\r\n\t\timg.onload = Util.bind(this.fire, this, 'load');\r\n\t\timg.onerror = Util.bind(this._overlayOnError, this, 'error');\r\n\r\n\t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n\t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n\t\t}\r\n\r\n\t\tif (this.options.zIndex) {\r\n\t\t\tthis._updateZIndex();\r\n\t\t}\r\n\r\n\t\tif (wasElementSupplied) {\r\n\t\t\tthis._url = img.src;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\timg.src = this._url;\r\n\t\timg.alt = this.options.alt;\r\n\t},\r\n\r\n\t_animateZoom: function (e) {\r\n\t\tvar scale = this._map.getZoomScale(e.zoom),\r\n\t\t offset = this._map._latLngBoundsToNewLayerBounds(this._bounds, e.zoom, e.center).min;\r\n\r\n\t\tDomUtil.setTransform(this._image, offset, scale);\r\n\t},\r\n\r\n\t_reset: function () {\r\n\t\tvar image = this._image,\r\n\t\t bounds = new Bounds(\r\n\t\t this._map.latLngToLayerPoint(this._bounds.getNorthWest()),\r\n\t\t this._map.latLngToLayerPoint(this._bounds.getSouthEast())),\r\n\t\t size = bounds.getSize();\r\n\r\n\t\tDomUtil.setPosition(image, bounds.min);\r\n\r\n\t\timage.style.width = size.x + 'px';\r\n\t\timage.style.height = size.y + 'px';\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tDomUtil.setOpacity(this._image, this.options.opacity);\r\n\t},\r\n\r\n\t_updateZIndex: function () {\r\n\t\tif (this._image && this.options.zIndex !== undefined && this.options.zIndex !== null) {\r\n\t\t\tthis._image.style.zIndex = this.options.zIndex;\r\n\t\t}\r\n\t},\r\n\r\n\t_overlayOnError: function () {\r\n\t\t// @event error: Event\r\n\t\t// Fired when the ImageOverlay layer fails to load its image\r\n\t\tthis.fire('error');\r\n\r\n\t\tvar errorUrl = this.options.errorOverlayUrl;\r\n\t\tif (errorUrl && this._url !== errorUrl) {\r\n\t\t\tthis._url = errorUrl;\r\n\t\t\tthis._image.src = errorUrl;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// @factory L.imageOverlay(imageUrl: String, bounds: LatLngBounds, options?: ImageOverlay options)\r\n// Instantiates an image overlay object given the URL of the image and the\r\n// geographical bounds it is tied to.\r\nexport var imageOverlay = function (url, bounds, options) {\r\n\treturn new ImageOverlay(url, bounds, options);\r\n};\r\n","import {ImageOverlay} from './ImageOverlay';\r\nimport * as DomUtil from '../dom/DomUtil';\r\nimport * as Util from '../core/Util';\r\n\r\n/*\r\n * @class VideoOverlay\r\n * @aka L.VideoOverlay\r\n * @inherits ImageOverlay\r\n *\r\n * Used to load and display a video player over specific bounds of the map. Extends `ImageOverlay`.\r\n *\r\n * A video overlay uses the [`
\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

Activity since the {release.name} release

\n

\n From {release.date.toDateString()} to{' '}\n {new Date().toDateString()}\n

\n
\n\n \n \n \n \n\n
\n Excluding merges, {details.commits} commits from{' '}\n {details.authors} authors have been pushed to master. On\n master, {details.files} files have changed and there have\n been{' '}\n \n \n {numberWithCommas(details.additions)}\n {' '}\n additions\n {' '}\n and{' '}\n \n \n {numberWithCommas(details.deletions)}\n {' '}\n deletions\n \n .\n
\n\n
\n
\n

\n {mergedPulls.length} pull requests merged\n

\n
    \n {mergedPulls.map(pull => buildPull(pull, 'merged'))}\n
\n
\n
\n

\n {openedPulls.length} pull requests opened\n

\n
    \n {openedPulls.map(pull => buildPull(pull, 'open'))}\n
\n
\n
\n\n
\n
\n

\n {closedIssues.length} issues closed\n

\n
    \n {closedIssues.map(pull => buildPull(pull, 'closed'))}\n
\n
\n
\n

\n {openedIssues.length} issues opened\n

\n
    \n {openedIssues.map(pull => buildPull(pull, 'open'))}\n
\n
\n
\n\n

\n {commits.length} new commits\n

\n
    \n {commits.map(commit => {\n return (\n \n {commit.title}\n
    \n by {commit.author.name}\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.a48aed76.chunk.js b/static/js/100.4c100485.chunk.js similarity index 98% rename from static/js/100.a48aed76.chunk.js rename to static/js/100.4c100485.chunk.js index b1f2cf8488..cc060207c8 100644 --- a/static/js/100.a48aed76.chunk.js +++ b/static/js/100.4c100485.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[100],{377: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

gc
\nduels

\n

The clue plugin now supports beginner hot cold clues (this is the last of the\nupdates from the clue update from April)

\n

bhotcold

\n

The interface styles plugin now has an option to replace the left click cross\nsprites with the ones from RuneScape

\n

crosss

\n

The grand exchange plugin now has an option to show the total amount of the\noffers in the grand exchange:

\n

ge

\n

The 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

prayerbar

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map
  • \n
  • Add snakeskin gear to the skill calculator
  • \n
  • Add Larran\'s chest to the loot tracker
  • \n
  • Fix world map Hosidius rare tree icons and Kourend agility obstacle placement
  • \n
  • Add fishing spots south of the farming guild to the fishing plugin
  • \n
  • The Wintertodt plugin now has an option to send a notification before the\nround start
  • \n
  • Fix Father Jean\'s location for the easy cryptic clue
  • \n
  • Fix the alignment of some of the icons on the 2005 interface style to more\nclosely resemble the 2005 gameframe
  • \n
  • The cooking plugin now tracks burning stew
  • \n
  • Add option to the world hopper plugin to hide the Hop-to menu option on\nfriends and clan members
  • \n
  • The cursor plugin now has a dragon dagger (p) cursor
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 28 contributors this release!

\n
Adam (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.a48aed76.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[100],{378: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

gc
\nduels

\n

The clue plugin now supports beginner hot cold clues (this is the last of the\nupdates from the clue update from April)

\n

bhotcold

\n

The interface styles plugin now has an option to replace the left click cross\nsprites with the ones from RuneScape

\n

crosss

\n

The grand exchange plugin now has an option to show the total amount of the\noffers in the grand exchange:

\n

ge

\n

The 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

prayerbar

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map
  • \n
  • Add snakeskin gear to the skill calculator
  • \n
  • Add Larran\'s chest to the loot tracker
  • \n
  • Fix world map Hosidius rare tree icons and Kourend agility obstacle placement
  • \n
  • Add fishing spots south of the farming guild to the fishing plugin
  • \n
  • The Wintertodt plugin now has an option to send a notification before the\nround start
  • \n
  • Fix Father Jean\'s location for the easy cryptic clue
  • \n
  • Fix the alignment of some of the icons on the 2005 interface style to more\nclosely resemble the 2005 gameframe
  • \n
  • The cooking plugin now tracks burning stew
  • \n
  • Add option to the world hopper plugin to hide the Hop-to menu option on\nfriends and clan members
  • \n
  • The cursor plugin now has a dragon dagger (p) cursor
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 28 contributors this release!

\n
Adam (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.4c100485.chunk.js.map \ No newline at end of file diff --git a/static/js/100.a48aed76.chunk.js.map b/static/js/100.4c100485.chunk.js.map similarity index 98% rename from static/js/100.a48aed76.chunk.js.map rename to static/js/100.4c100485.chunk.js.map index 2b8e49a7d1..a17d68dc9b 100644 --- a/static/js/100.a48aed76.chunk.js.map +++ b/static/js/100.4c100485.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.a48aed76.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

\\\"gc\\\"
\\n\\\"duels\\\"

\\n

The clue plugin now supports beginner hot cold clues (this is the last of the\\nupdates from the clue update from April)

\\n

\\\"bhotcold\\\"

\\n

The interface styles plugin now has an option to replace the left click cross\\nsprites with the ones from RuneScape

\\n

\\\"crosss\\\"

\\n

The grand exchange plugin now has an option to show the total amount of the\\noffers in the grand exchange:

\\n

\\\"ge\\\"

\\n

The 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

\\\"prayerbar\\\"

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map
  • \\n
  • Add snakeskin gear to the skill calculator
  • \\n
  • Add Larran's chest to the loot tracker
  • \\n
  • Fix world map Hosidius rare tree icons and Kourend agility obstacle placement
  • \\n
  • Add fishing spots south of the farming guild to the fishing plugin
  • \\n
  • The Wintertodt plugin now has an option to send a notification before the\\nround start
  • \\n
  • Fix Father Jean's location for the easy cryptic clue
  • \\n
  • Fix the alignment of some of the icons on the 2005 interface style to more\\nclosely resemble the 2005 gameframe
  • \\n
  • The cooking plugin now tracks burning stew
  • \\n
  • Add option to the world hopper plugin to hide the Hop-to menu option on\\nfriends and clan members
  • \\n
  • The cursor plugin now has a dragon dagger (p) cursor
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 28 contributors this release!

\\n
Adam (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.4c100485.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

\\\"gc\\\"
\\n\\\"duels\\\"

\\n

The clue plugin now supports beginner hot cold clues (this is the last of the\\nupdates from the clue update from April)

\\n

\\\"bhotcold\\\"

\\n

The interface styles plugin now has an option to replace the left click cross\\nsprites with the ones from RuneScape

\\n

\\\"crosss\\\"

\\n

The grand exchange plugin now has an option to show the total amount of the\\noffers in the grand exchange:

\\n

\\\"ge\\\"

\\n

The 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

\\\"prayerbar\\\"

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the Shield of Arrav, MEP2, and Shadow of the Storm quest start points on the world map
  • \\n
  • Add snakeskin gear to the skill calculator
  • \\n
  • Add Larran's chest to the loot tracker
  • \\n
  • Fix world map Hosidius rare tree icons and Kourend agility obstacle placement
  • \\n
  • Add fishing spots south of the farming guild to the fishing plugin
  • \\n
  • The Wintertodt plugin now has an option to send a notification before the\\nround start
  • \\n
  • Fix Father Jean's location for the easy cryptic clue
  • \\n
  • Fix the alignment of some of the icons on the 2005 interface style to more\\nclosely resemble the 2005 gameframe
  • \\n
  • The cooking plugin now tracks burning stew
  • \\n
  • Add option to the world hopper plugin to hide the Hop-to menu option on\\nfriends and clan members
  • \\n
  • The cursor plugin now has a dragon dagger (p) cursor
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 28 contributors this release!

\\n
Adam (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.0980d76e.chunk.js b/static/js/101.485729cc.chunk.js similarity index 98% rename from static/js/101.0980d76e.chunk.js rename to static/js/101.485729cc.chunk.js index c8862545fc..af5de58d57 100644 --- a/static/js/101.0980d76e.chunk.js +++ b/static/js/101.485729cc.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[101],{378: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

seedvault

\n

The camera zoom plugin now has a setting to configure the scroll zoom speed, and\nallows configuring the control key to reset zoom.

\n

The grounditems plugin can now recolor the telegrab menu to according to the items value

\n

telegrab

\n

The color picker now has a palette of recent colors

\n

colorpicker

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix Esc changing tabs when in typing mode in the key remapping plugin
  • \n
  • Add ability to configure custom key remaps for the F keys and esc to key\nremapping plugin
  • \n
  • Fix impling plugin sometimes not working with Puro-Puro impling spawns
  • \n
  • Fix Motherlode mine rock obstacles not being marked when entering the mine
  • \n
  • Add Dragonfire shield timer to timers plugin
  • \n
  • Add farming harvest actions to the idle notifier
  • \n
  • Add Shilo gem rocks to the mining plugin respawn timer
  • \n
  • Add Sarachnis respawn timer
  • \n
  • Fix location of Fishing Platform elite clue stash unit
  • \n
  • Fix HD prayer bar flick bar
  • \n
  • Add Entrana river fishing spots to fishing plugin
  • \n
  • Fix MTA telekinetic solver sometimes not updating after telegrabbing the\nguardian
  • \n
  • Fix several edge cases related to untradeables in the items kept on death\nplugin
  • \n
  • Add support for labeling ore and gems to the item identification plugin
  • \n
  • Add menu swaps for ToB Quick-Enter and Enchant on Eluned
  • \n
  • Add Rantz arrow collection to the daily task plugin
  • \n
  • Add option to the chat filter plugin to filter all login and logout\nnotifications
  • \n
  • Fix the loot tracker counting duplicate raids chests if opened more than once
  • \n
  • Fix skybox color on the Cosmic entity\'s plane
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.0980d76e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[101],{379: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

seedvault

\n

The camera zoom plugin now has a setting to configure the scroll zoom speed, and\nallows configuring the control key to reset zoom.

\n

The grounditems plugin can now recolor the telegrab menu to according to the items value

\n

telegrab

\n

The color picker now has a palette of recent colors

\n

colorpicker

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix Esc changing tabs when in typing mode in the key remapping plugin
  • \n
  • Add ability to configure custom key remaps for the F keys and esc to key\nremapping plugin
  • \n
  • Fix impling plugin sometimes not working with Puro-Puro impling spawns
  • \n
  • Fix Motherlode mine rock obstacles not being marked when entering the mine
  • \n
  • Add Dragonfire shield timer to timers plugin
  • \n
  • Add farming harvest actions to the idle notifier
  • \n
  • Add Shilo gem rocks to the mining plugin respawn timer
  • \n
  • Add Sarachnis respawn timer
  • \n
  • Fix location of Fishing Platform elite clue stash unit
  • \n
  • Fix HD prayer bar flick bar
  • \n
  • Add Entrana river fishing spots to fishing plugin
  • \n
  • Fix MTA telekinetic solver sometimes not updating after telegrabbing the\nguardian
  • \n
  • Fix several edge cases related to untradeables in the items kept on death\nplugin
  • \n
  • Add support for labeling ore and gems to the item identification plugin
  • \n
  • Add menu swaps for ToB Quick-Enter and Enchant on Eluned
  • \n
  • Add Rantz arrow collection to the daily task plugin
  • \n
  • Add option to the chat filter plugin to filter all login and logout\nnotifications
  • \n
  • Fix the loot tracker counting duplicate raids chests if opened more than once
  • \n
  • Fix skybox color on the Cosmic entity\'s plane
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.485729cc.chunk.js.map \ No newline at end of file diff --git a/static/js/101.0980d76e.chunk.js.map b/static/js/101.485729cc.chunk.js.map similarity index 99% rename from static/js/101.0980d76e.chunk.js.map rename to static/js/101.485729cc.chunk.js.map index 4c10aca7a0..bbbd6144dc 100644 --- a/static/js/101.0980d76e.chunk.js.map +++ b/static/js/101.485729cc.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.0980d76e.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

\\\"seedvault\\\"

\\n

The camera zoom plugin now has a setting to configure the scroll zoom speed, and\\nallows configuring the control key to reset zoom.

\\n

The grounditems plugin can now recolor the telegrab menu to according to the items value

\\n

\\\"telegrab\\\"

\\n

The color picker now has a palette of recent colors

\\n

\\\"colorpicker\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix Esc changing tabs when in typing mode in the key remapping plugin
  • \\n
  • Add ability to configure custom key remaps for the F keys and esc to key\\nremapping plugin
  • \\n
  • Fix impling plugin sometimes not working with Puro-Puro impling spawns
  • \\n
  • Fix Motherlode mine rock obstacles not being marked when entering the mine
  • \\n
  • Add Dragonfire shield timer to timers plugin
  • \\n
  • Add farming harvest actions to the idle notifier
  • \\n
  • Add Shilo gem rocks to the mining plugin respawn timer
  • \\n
  • Add Sarachnis respawn timer
  • \\n
  • Fix location of Fishing Platform elite clue stash unit
  • \\n
  • Fix HD prayer bar flick bar
  • \\n
  • Add Entrana river fishing spots to fishing plugin
  • \\n
  • Fix MTA telekinetic solver sometimes not updating after telegrabbing the\\nguardian
  • \\n
  • Fix several edge cases related to untradeables in the items kept on death\\nplugin
  • \\n
  • Add support for labeling ore and gems to the item identification plugin
  • \\n
  • Add menu swaps for ToB Quick-Enter and Enchant on Eluned
  • \\n
  • Add Rantz arrow collection to the daily task plugin
  • \\n
  • Add option to the chat filter plugin to filter all login and logout\\nnotifications
  • \\n
  • Fix the loot tracker counting duplicate raids chests if opened more than once
  • \\n
  • Fix skybox color on the Cosmic entity's plane
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.485729cc.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

\\\"seedvault\\\"

\\n

The camera zoom plugin now has a setting to configure the scroll zoom speed, and\\nallows configuring the control key to reset zoom.

\\n

The grounditems plugin can now recolor the telegrab menu to according to the items value

\\n

\\\"telegrab\\\"

\\n

The color picker now has a palette of recent colors

\\n

\\\"colorpicker\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix Esc changing tabs when in typing mode in the key remapping plugin
  • \\n
  • Add ability to configure custom key remaps for the F keys and esc to key\\nremapping plugin
  • \\n
  • Fix impling plugin sometimes not working with Puro-Puro impling spawns
  • \\n
  • Fix Motherlode mine rock obstacles not being marked when entering the mine
  • \\n
  • Add Dragonfire shield timer to timers plugin
  • \\n
  • Add farming harvest actions to the idle notifier
  • \\n
  • Add Shilo gem rocks to the mining plugin respawn timer
  • \\n
  • Add Sarachnis respawn timer
  • \\n
  • Fix location of Fishing Platform elite clue stash unit
  • \\n
  • Fix HD prayer bar flick bar
  • \\n
  • Add Entrana river fishing spots to fishing plugin
  • \\n
  • Fix MTA telekinetic solver sometimes not updating after telegrabbing the\\nguardian
  • \\n
  • Fix several edge cases related to untradeables in the items kept on death\\nplugin
  • \\n
  • Add support for labeling ore and gems to the item identification plugin
  • \\n
  • Add menu swaps for ToB Quick-Enter and Enchant on Eluned
  • \\n
  • Add Rantz arrow collection to the daily task plugin
  • \\n
  • Add option to the chat filter plugin to filter all login and logout\\nnotifications
  • \\n
  • Fix the loot tracker counting duplicate raids chests if opened more than once
  • \\n
  • Fix skybox color on the Cosmic entity's plane
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.854c378c.chunk.js b/static/js/102.62e061d0.chunk.js similarity index 98% rename from static/js/102.854c378c.chunk.js rename to static/js/102.62e061d0.chunk.js index 979d874353..2a24d11e9c 100644 --- a/static/js/102.854c378c.chunk.js +++ b/static/js/102.62e061d0.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[102],{379: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
    \n
  • Add divine potion timers to the timers plugin
  • \n
  • Add Zalcano respawn timer to the boss plugin
  • \n
  • Add Prifddinas farming patches to the time tracking plugin
  • \n
  • Add Gauntlet kill count and personal best support to chat commands
  • \n
  • Add Prifddinas agility course "kill count" and personal best to chat commands
  • \n
  • Updates to the world map:\n
      \n
    • Add SotE quest start
    • \n
    • Add rare tree, transportation, and shortcut tooltips
    • \n
    • Fix Elf camp teleport location
    • \n
    • Add farming patch tooltips
    • \n
    • Add teleport crystal locations
    • \n
    • Add minigame icon to the Gauntlet
    • \n
    \n
  • \n
  • Add Prifddinas agility course to the agility plugin
  • \n
  • Add Prifddinas mining rocks to the mining plugin
  • \n
  • Add Gauntlet and Prifddinas Crystal Chest to loot tracking plugin
  • \n
  • Add crystal tree and agility course to the skill calculator
  • \n
  • Add Gauntlet consumable information to the item stats plugin, and to potion\ntimers
  • \n
  • Add Prifddinas and surrounding areas to the skybox plugin
  • \n
  • Add Prifddinas and surrounding areas to the possible Discord locations
  • \n
  • Add crystal sapling to the item identification plugin
  • \n
  • Add new crystal tools to the idle notifier
  • \n
  • Add crystal axe to woodcutting plugin and wintertodt plugin
  • \n
  • Add crystal pickaxe to motherlode plugin
  • \n
  • Add crystal implings to the impling plugin
  • \n
\n

Item 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

despawntimer

\n

The world hopper plugin now has an option to show the current world\'s ping

\n

ping

\n

The clue plugin now shows locations for emote clues on the overlay, instead of\njust the world map:

\n

clueloc

\n

The 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

banktags

\n

The raids scouter plugin now broadcasts scouted raids to your RuneLite party

\n

partyscout

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix tracking of Jad and Zuk personal best
  • \n
  • Show grand exchange value when examining items in the seed vault
  • \n
  • The quest list plugin now has an additional filter to show uncompleted quests\nonly
  • \n
  • Add support for Lava Eels to the fishing plugin
  • \n
  • Fix world map quest marker for Depths of Despair
  • \n
  • Add Hespori to the loot tracker
  • \n
  • The item prices plugin can now show HA profit when casting on items
  • \n
  • Change "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs
  • \n
  • Add option to add skill xptrackers to the canvas on the skill menu tab
  • \n
  • Fix removing teleblock timer when your opponent who cast the teleblock dies
  • \n
  • Add total points and points per hour to the NMZ overlay
  • \n
  • Fix the zoom plugin control reset config value to be properly bounded to\nvalid values
  • \n
  • Add 2005 style sprite override for friend/ignore list toggle icon
  • \n
  • The item charges plugin now supports Rings of Forging
  • \n
  • Add gnome stronghold fishing spots to fishing plugin
  • \n
  • Increase smelting overlay timeout to account for cannonballs
  • \n
  • Fix the XP tracker rounding to not show 100% prior to gaining a level
  • \n
  • Ignore player loot at LMS in the loot tracker
  • \n
  • Change Chaos Elemental respawn timer to 60 seconds
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 29 contributors this release!

\n
15987632 (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.854c378c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[102],{380: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
    \n
  • Add divine potion timers to the timers plugin
  • \n
  • Add Zalcano respawn timer to the boss plugin
  • \n
  • Add Prifddinas farming patches to the time tracking plugin
  • \n
  • Add Gauntlet kill count and personal best support to chat commands
  • \n
  • Add Prifddinas agility course "kill count" and personal best to chat commands
  • \n
  • Updates to the world map:\n
      \n
    • Add SotE quest start
    • \n
    • Add rare tree, transportation, and shortcut tooltips
    • \n
    • Fix Elf camp teleport location
    • \n
    • Add farming patch tooltips
    • \n
    • Add teleport crystal locations
    • \n
    • Add minigame icon to the Gauntlet
    • \n
    \n
  • \n
  • Add Prifddinas agility course to the agility plugin
  • \n
  • Add Prifddinas mining rocks to the mining plugin
  • \n
  • Add Gauntlet and Prifddinas Crystal Chest to loot tracking plugin
  • \n
  • Add crystal tree and agility course to the skill calculator
  • \n
  • Add Gauntlet consumable information to the item stats plugin, and to potion\ntimers
  • \n
  • Add Prifddinas and surrounding areas to the skybox plugin
  • \n
  • Add Prifddinas and surrounding areas to the possible Discord locations
  • \n
  • Add crystal sapling to the item identification plugin
  • \n
  • Add new crystal tools to the idle notifier
  • \n
  • Add crystal axe to woodcutting plugin and wintertodt plugin
  • \n
  • Add crystal pickaxe to motherlode plugin
  • \n
  • Add crystal implings to the impling plugin
  • \n
\n

Item 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

despawntimer

\n

The world hopper plugin now has an option to show the current world\'s ping

\n

ping

\n

The clue plugin now shows locations for emote clues on the overlay, instead of\njust the world map:

\n

clueloc

\n

The 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

banktags

\n

The raids scouter plugin now broadcasts scouted raids to your RuneLite party

\n

partyscout

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix tracking of Jad and Zuk personal best
  • \n
  • Show grand exchange value when examining items in the seed vault
  • \n
  • The quest list plugin now has an additional filter to show uncompleted quests\nonly
  • \n
  • Add support for Lava Eels to the fishing plugin
  • \n
  • Fix world map quest marker for Depths of Despair
  • \n
  • Add Hespori to the loot tracker
  • \n
  • The item prices plugin can now show HA profit when casting on items
  • \n
  • Change "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs
  • \n
  • Add option to add skill xptrackers to the canvas on the skill menu tab
  • \n
  • Fix removing teleblock timer when your opponent who cast the teleblock dies
  • \n
  • Add total points and points per hour to the NMZ overlay
  • \n
  • Fix the zoom plugin control reset config value to be properly bounded to\nvalid values
  • \n
  • Add 2005 style sprite override for friend/ignore list toggle icon
  • \n
  • The item charges plugin now supports Rings of Forging
  • \n
  • Add gnome stronghold fishing spots to fishing plugin
  • \n
  • Increase smelting overlay timeout to account for cannonballs
  • \n
  • Fix the XP tracker rounding to not show 100% prior to gaining a level
  • \n
  • Ignore player loot at LMS in the loot tracker
  • \n
  • Change Chaos Elemental respawn timer to 60 seconds
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 29 contributors this release!

\n
15987632 (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.62e061d0.chunk.js.map \ No newline at end of file diff --git a/static/js/102.854c378c.chunk.js.map b/static/js/102.62e061d0.chunk.js.map similarity index 99% rename from static/js/102.854c378c.chunk.js.map rename to static/js/102.62e061d0.chunk.js.map index 315fece686..aeeea197d9 100644 --- a/static/js/102.854c378c.chunk.js.map +++ b/static/js/102.62e061d0.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.854c378c.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
    \\n
  • Add divine potion timers to the timers plugin
  • \\n
  • Add Zalcano respawn timer to the boss plugin
  • \\n
  • Add Prifddinas farming patches to the time tracking plugin
  • \\n
  • Add Gauntlet kill count and personal best support to chat commands
  • \\n
  • Add Prifddinas agility course "kill count" and personal best to chat commands
  • \\n
  • Updates to the world map:\\n
      \\n
    • Add SotE quest start
    • \\n
    • Add rare tree, transportation, and shortcut tooltips
    • \\n
    • Fix Elf camp teleport location
    • \\n
    • Add farming patch tooltips
    • \\n
    • Add teleport crystal locations
    • \\n
    • Add minigame icon to the Gauntlet
    • \\n
    \\n
  • \\n
  • Add Prifddinas agility course to the agility plugin
  • \\n
  • Add Prifddinas mining rocks to the mining plugin
  • \\n
  • Add Gauntlet and Prifddinas Crystal Chest to loot tracking plugin
  • \\n
  • Add crystal tree and agility course to the skill calculator
  • \\n
  • Add Gauntlet consumable information to the item stats plugin, and to potion\\ntimers
  • \\n
  • Add Prifddinas and surrounding areas to the skybox plugin
  • \\n
  • Add Prifddinas and surrounding areas to the possible Discord locations
  • \\n
  • Add crystal sapling to the item identification plugin
  • \\n
  • Add new crystal tools to the idle notifier
  • \\n
  • Add crystal axe to woodcutting plugin and wintertodt plugin
  • \\n
  • Add crystal pickaxe to motherlode plugin
  • \\n
  • Add crystal implings to the impling plugin
  • \\n
\\n

Item 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

\\\"despawntimer\\\"

\\n

The world hopper plugin now has an option to show the current world's ping

\\n

\\\"ping\\\"

\\n

The clue plugin now shows locations for emote clues on the overlay, instead of\\njust the world map:

\\n

\\\"clueloc\\\"

\\n

The 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

\\\"banktags\\\"

\\n

The raids scouter plugin now broadcasts scouted raids to your RuneLite party

\\n

\\\"partyscout\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix tracking of Jad and Zuk personal best
  • \\n
  • Show grand exchange value when examining items in the seed vault
  • \\n
  • The quest list plugin now has an additional filter to show uncompleted quests\\nonly
  • \\n
  • Add support for Lava Eels to the fishing plugin
  • \\n
  • Fix world map quest marker for Depths of Despair
  • \\n
  • Add Hespori to the loot tracker
  • \\n
  • The item prices plugin can now show HA profit when casting on items
  • \\n
  • Change "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs
  • \\n
  • Add option to add skill xptrackers to the canvas on the skill menu tab
  • \\n
  • Fix removing teleblock timer when your opponent who cast the teleblock dies
  • \\n
  • Add total points and points per hour to the NMZ overlay
  • \\n
  • Fix the zoom plugin control reset config value to be properly bounded to\\nvalid values
  • \\n
  • Add 2005 style sprite override for friend/ignore list toggle icon
  • \\n
  • The item charges plugin now supports Rings of Forging
  • \\n
  • Add gnome stronghold fishing spots to fishing plugin
  • \\n
  • Increase smelting overlay timeout to account for cannonballs
  • \\n
  • Fix the XP tracker rounding to not show 100% prior to gaining a level
  • \\n
  • Ignore player loot at LMS in the loot tracker
  • \\n
  • Change Chaos Elemental respawn timer to 60 seconds
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 29 contributors this release!

\\n
15987632 (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.62e061d0.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
    \\n
  • Add divine potion timers to the timers plugin
  • \\n
  • Add Zalcano respawn timer to the boss plugin
  • \\n
  • Add Prifddinas farming patches to the time tracking plugin
  • \\n
  • Add Gauntlet kill count and personal best support to chat commands
  • \\n
  • Add Prifddinas agility course "kill count" and personal best to chat commands
  • \\n
  • Updates to the world map:\\n
      \\n
    • Add SotE quest start
    • \\n
    • Add rare tree, transportation, and shortcut tooltips
    • \\n
    • Fix Elf camp teleport location
    • \\n
    • Add farming patch tooltips
    • \\n
    • Add teleport crystal locations
    • \\n
    • Add minigame icon to the Gauntlet
    • \\n
    \\n
  • \\n
  • Add Prifddinas agility course to the agility plugin
  • \\n
  • Add Prifddinas mining rocks to the mining plugin
  • \\n
  • Add Gauntlet and Prifddinas Crystal Chest to loot tracking plugin
  • \\n
  • Add crystal tree and agility course to the skill calculator
  • \\n
  • Add Gauntlet consumable information to the item stats plugin, and to potion\\ntimers
  • \\n
  • Add Prifddinas and surrounding areas to the skybox plugin
  • \\n
  • Add Prifddinas and surrounding areas to the possible Discord locations
  • \\n
  • Add crystal sapling to the item identification plugin
  • \\n
  • Add new crystal tools to the idle notifier
  • \\n
  • Add crystal axe to woodcutting plugin and wintertodt plugin
  • \\n
  • Add crystal pickaxe to motherlode plugin
  • \\n
  • Add crystal implings to the impling plugin
  • \\n
\\n

Item 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

\\\"despawntimer\\\"

\\n

The world hopper plugin now has an option to show the current world's ping

\\n

\\\"ping\\\"

\\n

The clue plugin now shows locations for emote clues on the overlay, instead of\\njust the world map:

\\n

\\\"clueloc\\\"

\\n

The 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

\\\"banktags\\\"

\\n

The raids scouter plugin now broadcasts scouted raids to your RuneLite party

\\n

\\\"partyscout\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix tracking of Jad and Zuk personal best
  • \\n
  • Show grand exchange value when examining items in the seed vault
  • \\n
  • The quest list plugin now has an additional filter to show uncompleted quests\\nonly
  • \\n
  • Add support for Lava Eels to the fishing plugin
  • \\n
  • Fix world map quest marker for Depths of Despair
  • \\n
  • Add Hespori to the loot tracker
  • \\n
  • The item prices plugin can now show HA profit when casting on items
  • \\n
  • Change "Mark" to "Unmark" when right clicking already marked tiles, objects, and npcs
  • \\n
  • Add option to add skill xptrackers to the canvas on the skill menu tab
  • \\n
  • Fix removing teleblock timer when your opponent who cast the teleblock dies
  • \\n
  • Add total points and points per hour to the NMZ overlay
  • \\n
  • Fix the zoom plugin control reset config value to be properly bounded to\\nvalid values
  • \\n
  • Add 2005 style sprite override for friend/ignore list toggle icon
  • \\n
  • The item charges plugin now supports Rings of Forging
  • \\n
  • Add gnome stronghold fishing spots to fishing plugin
  • \\n
  • Increase smelting overlay timeout to account for cannonballs
  • \\n
  • Fix the XP tracker rounding to not show 100% prior to gaining a level
  • \\n
  • Ignore player loot at LMS in the loot tracker
  • \\n
  • Change Chaos Elemental respawn timer to 60 seconds
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 29 contributors this release!

\\n
15987632 (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.e68abdfe.chunk.js b/static/js/103.de89b958.chunk.js similarity index 98% rename from static/js/103.e68abdfe.chunk.js rename to static/js/103.de89b958.chunk.js index 1cf063cdda..036d613e23 100644 --- a/static/js/103.e68abdfe.chunk.js +++ b/static/js/103.de89b958.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[103],{380: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

lootcollapse

\n

The clue plugin now supports Sherlock challenge clues

\n

challenge

\n

A 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

splash

\n

A launcher release is planned soon to include a similar themed loading screen,\nand the improved error handling.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix wasd camera sometimes blocking messages from being sent
  • \n
  • Updated the XP tracker to try to account for offline xp gain (from eg. mobile)\nand not factor it into XP/hr
  • \n
  • Add the remaining new SotE clue steps
  • \n
  • Update Prifddinas course xp rates
  • \n
  • Add four dose stamina to herblore calculator
  • \n
  • Add Dragon bolts to skill calculator
  • \n
  • Add ferrets to the hunter plugin
  • \n
  • Add arrow fletching to idle notifier
  • \n
  • Add Isafdar tripwire to agility shortcuts
  • \n
  • Add Sarachnis task to the slayer plugin
  • \n
  • Fix items on death plugin values for repairable untradeables
  • \n
  • Add volcanic mine entrance to menu entry swapper
  • \n
  • Fix a bug causing the attack styles plugin to not hide attack styles properly\nfor certain weapon switches
  • \n
  • Fix loot tracker loot loading on startup to place newer loot at the top
  • \n
  • Fix mining plugin respawn timers in the wilderness resource area, and on Miscellania
  • \n
  • Add Trollweiss Mountain Cave agility shortcut
  • \n
  • Fix camera effects from drunkenness and the fishing trawler with the GPU\nplugin
  • \n
  • Fix bug causing bank tag tabs to sometimes not automatically reopen when the\nbank is opened
  • \n
  • Fix clipping of world map tooltips
  • \n
  • Add divine potions to item stats plugin
  • \n
\n

We 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 24 contributors this release!

\n
15987632 (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.e68abdfe.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[103],{381: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

lootcollapse

\n

The clue plugin now supports Sherlock challenge clues

\n

challenge

\n

A 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

splash

\n

A launcher release is planned soon to include a similar themed loading screen,\nand the improved error handling.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix wasd camera sometimes blocking messages from being sent
  • \n
  • Updated the XP tracker to try to account for offline xp gain (from eg. mobile)\nand not factor it into XP/hr
  • \n
  • Add the remaining new SotE clue steps
  • \n
  • Update Prifddinas course xp rates
  • \n
  • Add four dose stamina to herblore calculator
  • \n
  • Add Dragon bolts to skill calculator
  • \n
  • Add ferrets to the hunter plugin
  • \n
  • Add arrow fletching to idle notifier
  • \n
  • Add Isafdar tripwire to agility shortcuts
  • \n
  • Add Sarachnis task to the slayer plugin
  • \n
  • Fix items on death plugin values for repairable untradeables
  • \n
  • Add volcanic mine entrance to menu entry swapper
  • \n
  • Fix a bug causing the attack styles plugin to not hide attack styles properly\nfor certain weapon switches
  • \n
  • Fix loot tracker loot loading on startup to place newer loot at the top
  • \n
  • Fix mining plugin respawn timers in the wilderness resource area, and on Miscellania
  • \n
  • Add Trollweiss Mountain Cave agility shortcut
  • \n
  • Fix camera effects from drunkenness and the fishing trawler with the GPU\nplugin
  • \n
  • Fix bug causing bank tag tabs to sometimes not automatically reopen when the\nbank is opened
  • \n
  • Fix clipping of world map tooltips
  • \n
  • Add divine potions to item stats plugin
  • \n
\n

We 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 24 contributors this release!

\n
15987632 (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.de89b958.chunk.js.map \ No newline at end of file diff --git a/static/js/103.e68abdfe.chunk.js.map b/static/js/103.de89b958.chunk.js.map similarity index 99% rename from static/js/103.e68abdfe.chunk.js.map rename to static/js/103.de89b958.chunk.js.map index 01b78e539f..e4add43545 100644 --- a/static/js/103.e68abdfe.chunk.js.map +++ b/static/js/103.de89b958.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.e68abdfe.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

\\\"lootcollapse\\\"

\\n

The clue plugin now supports Sherlock challenge clues

\\n

\\\"challenge\\\"

\\n

A 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

\\\"splash\\\"

\\n

A launcher release is planned soon to include a similar themed loading screen,\\nand the improved error handling.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix wasd camera sometimes blocking messages from being sent
  • \\n
  • Updated the XP tracker to try to account for offline xp gain (from eg. mobile)\\nand not factor it into XP/hr
  • \\n
  • Add the remaining new SotE clue steps
  • \\n
  • Update Prifddinas course xp rates
  • \\n
  • Add four dose stamina to herblore calculator
  • \\n
  • Add Dragon bolts to skill calculator
  • \\n
  • Add ferrets to the hunter plugin
  • \\n
  • Add arrow fletching to idle notifier
  • \\n
  • Add Isafdar tripwire to agility shortcuts
  • \\n
  • Add Sarachnis task to the slayer plugin
  • \\n
  • Fix items on death plugin values for repairable untradeables
  • \\n
  • Add volcanic mine entrance to menu entry swapper
  • \\n
  • Fix a bug causing the attack styles plugin to not hide attack styles properly\\nfor certain weapon switches
  • \\n
  • Fix loot tracker loot loading on startup to place newer loot at the top
  • \\n
  • Fix mining plugin respawn timers in the wilderness resource area, and on Miscellania
  • \\n
  • Add Trollweiss Mountain Cave agility shortcut
  • \\n
  • Fix camera effects from drunkenness and the fishing trawler with the GPU\\nplugin
  • \\n
  • Fix bug causing bank tag tabs to sometimes not automatically reopen when the\\nbank is opened
  • \\n
  • Fix clipping of world map tooltips
  • \\n
  • Add divine potions to item stats plugin
  • \\n
\\n

We 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 24 contributors this release!

\\n
15987632 (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.de89b958.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

\\\"lootcollapse\\\"

\\n

The clue plugin now supports Sherlock challenge clues

\\n

\\\"challenge\\\"

\\n

A 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

\\\"splash\\\"

\\n

A launcher release is planned soon to include a similar themed loading screen,\\nand the improved error handling.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix wasd camera sometimes blocking messages from being sent
  • \\n
  • Updated the XP tracker to try to account for offline xp gain (from eg. mobile)\\nand not factor it into XP/hr
  • \\n
  • Add the remaining new SotE clue steps
  • \\n
  • Update Prifddinas course xp rates
  • \\n
  • Add four dose stamina to herblore calculator
  • \\n
  • Add Dragon bolts to skill calculator
  • \\n
  • Add ferrets to the hunter plugin
  • \\n
  • Add arrow fletching to idle notifier
  • \\n
  • Add Isafdar tripwire to agility shortcuts
  • \\n
  • Add Sarachnis task to the slayer plugin
  • \\n
  • Fix items on death plugin values for repairable untradeables
  • \\n
  • Add volcanic mine entrance to menu entry swapper
  • \\n
  • Fix a bug causing the attack styles plugin to not hide attack styles properly\\nfor certain weapon switches
  • \\n
  • Fix loot tracker loot loading on startup to place newer loot at the top
  • \\n
  • Fix mining plugin respawn timers in the wilderness resource area, and on Miscellania
  • \\n
  • Add Trollweiss Mountain Cave agility shortcut
  • \\n
  • Fix camera effects from drunkenness and the fishing trawler with the GPU\\nplugin
  • \\n
  • Fix bug causing bank tag tabs to sometimes not automatically reopen when the\\nbank is opened
  • \\n
  • Fix clipping of world map tooltips
  • \\n
  • Add divine potions to item stats plugin
  • \\n
\\n

We 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 24 contributors this release!

\\n
15987632 (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.c984f63f.chunk.js b/static/js/104.e2fafda2.chunk.js similarity index 89% rename from static/js/104.c984f63f.chunk.js rename to static/js/104.e2fafda2.chunk.js index a0f79e08b4..d0d4f8d071 100644 --- a/static/js/104.c984f63f.chunk.js +++ b/static/js/104.e2fafda2.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[104],{381: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.

\n

Launcher 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.

\n

The 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.

\n

Adam

\n'}}}]); -//# sourceMappingURL=104.c984f63f.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[104],{382: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.

\n

Launcher 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.

\n

The 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.

\n

Adam

\n'}}}]); +//# sourceMappingURL=104.e2fafda2.chunk.js.map \ No newline at end of file diff --git a/static/js/104.c984f63f.chunk.js.map b/static/js/104.e2fafda2.chunk.js.map similarity index 94% rename from static/js/104.c984f63f.chunk.js.map rename to static/js/104.e2fafda2.chunk.js.map index 61059cadbc..a4c9220e55 100644 --- a/static/js/104.c984f63f.chunk.js.map +++ b/static/js/104.e2fafda2.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.c984f63f.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.

\\n

Launcher 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.

\\n

The 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.

\\n

Adam

\\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.e2fafda2.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.

\\n

Launcher 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.

\\n

The 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.

\\n

Adam

\\n\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/105.8655bd95.chunk.js b/static/js/105.26922674.chunk.js similarity index 98% rename from static/js/105.8655bd95.chunk.js rename to static/js/105.26922674.chunk.js index 9b6279962c..4c610c976b 100644 --- a/static/js/105.8655bd95.chunk.js +++ b/static/js/105.26922674.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[105],{382: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)

\n

The Low Detail plugin will now reload your\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.

\n

The 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.

\n

The Fishing plugin no longer draws duplicate\nsprites for stacked fishing spots of the same type.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Boosts Information plugin can\nnow toggle displaying combat/non-combat/both boosts
  • \n
  • Examining items found in the seed box will now trigger the Examine\nplugin
  • \n
  • The overlay renderer now shows drag outlines at their proper locations again
  • \n
  • The Slayer plugin correctly recognizes Lizard\nand Vampyre tasks
  • \n
  • The 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
  • \n
  • The 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
  • \n
  • The white pixels which appeared at the edges of game objects for some players while using MSAA\nwith the GPU plugin have been exterminated
  • \n
  • The Death Indicator plugin will\ncorrectly recognize when players die when respawning in Prifddinas
  • \n
  • Braindeath Island now has a skybox color
  • \n
  • Corrections have been made in the Items Kept on Death\nplugin to show correct values of\nAvernic defenders and Salve amulet (ei)s.
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.8655bd95.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[105],{383: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)

\n

The Low Detail plugin will now reload your\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.

\n

The 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.

\n

The Fishing plugin no longer draws duplicate\nsprites for stacked fishing spots of the same type.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Boosts Information plugin can\nnow toggle displaying combat/non-combat/both boosts
  • \n
  • Examining items found in the seed box will now trigger the Examine\nplugin
  • \n
  • The overlay renderer now shows drag outlines at their proper locations again
  • \n
  • The Slayer plugin correctly recognizes Lizard\nand Vampyre tasks
  • \n
  • The 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
  • \n
  • The 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
  • \n
  • The white pixels which appeared at the edges of game objects for some players while using MSAA\nwith the GPU plugin have been exterminated
  • \n
  • The Death Indicator plugin will\ncorrectly recognize when players die when respawning in Prifddinas
  • \n
  • Braindeath Island now has a skybox color
  • \n
  • Corrections have been made in the Items Kept on Death\nplugin to show correct values of\nAvernic defenders and Salve amulet (ei)s.
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.26922674.chunk.js.map \ No newline at end of file diff --git a/static/js/105.8655bd95.chunk.js.map b/static/js/105.26922674.chunk.js.map similarity index 99% rename from static/js/105.8655bd95.chunk.js.map rename to static/js/105.26922674.chunk.js.map index 621a1f3b5a..7318f927bf 100644 --- a/static/js/105.8655bd95.chunk.js.map +++ b/static/js/105.26922674.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.8655bd95.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)

\\n

The Low Detail plugin will now reload your\\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.

\\n

The 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.

\\n

The Fishing plugin no longer draws duplicate\\nsprites for stacked fishing spots of the same type.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Boosts Information plugin can\\nnow toggle displaying combat/non-combat/both boosts
  • \\n
  • Examining items found in the seed box will now trigger the Examine\\nplugin
  • \\n
  • The overlay renderer now shows drag outlines at their proper locations again
  • \\n
  • The Slayer plugin correctly recognizes Lizard\\nand Vampyre tasks
  • \\n
  • The 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
  • \\n
  • The 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
  • \\n
  • The white pixels which appeared at the edges of game objects for some players while using MSAA\\nwith the GPU plugin have been exterminated
  • \\n
  • The Death Indicator plugin will\\ncorrectly recognize when players die when respawning in Prifddinas
  • \\n
  • Braindeath Island now has a skybox color
  • \\n
  • Corrections have been made in the Items Kept on Death\\nplugin to show correct values of\\nAvernic defenders and Salve amulet (ei)s.
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.26922674.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)

\\n

The Low Detail plugin will now reload your\\ncurrent scene when toggled on or off to apply the changes immediately without requiring a re-log.

\\n

The 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.

\\n

The Fishing plugin no longer draws duplicate\\nsprites for stacked fishing spots of the same type.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Boosts Information plugin can\\nnow toggle displaying combat/non-combat/both boosts
  • \\n
  • Examining items found in the seed box will now trigger the Examine\\nplugin
  • \\n
  • The overlay renderer now shows drag outlines at their proper locations again
  • \\n
  • The Slayer plugin correctly recognizes Lizard\\nand Vampyre tasks
  • \\n
  • The 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
  • \\n
  • The 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
  • \\n
  • The white pixels which appeared at the edges of game objects for some players while using MSAA\\nwith the GPU plugin have been exterminated
  • \\n
  • The Death Indicator plugin will\\ncorrectly recognize when players die when respawning in Prifddinas
  • \\n
  • Braindeath Island now has a skybox color
  • \\n
  • Corrections have been made in the Items Kept on Death\\nplugin to show correct values of\\nAvernic defenders and Salve amulet (ei)s.
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.b1b8ecb4.chunk.js b/static/js/106.aaba779d.chunk.js similarity index 96% rename from static/js/106.b1b8ecb4.chunk.js rename to static/js/106.aaba779d.chunk.js index 77b371c96a..b0e9ef9180 100644 --- a/static/js/106.b1b8ecb4.chunk.js +++ b/static/js/106.aaba779d.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[106],{383: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

world_map_tele_jumping

\n

The Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time

\n

The Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Slayer plugin no longer shows the task infobox on login
  • \n
  • The Chat Notifications plugin has had its highlighting of messages with color improved
  • \n
  • The Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications
  • \n
  • The Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons
  • \n
  • The XP Globes plugin has received an option to configure the tooltip information
  • \n
\n

Enjoy!

\n

- Alexsuperfly

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.b1b8ecb4.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[106],{384: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

world_map_tele_jumping

\n

The Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time

\n

The Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Slayer plugin no longer shows the task infobox on login
  • \n
  • The Chat Notifications plugin has had its highlighting of messages with color improved
  • \n
  • The Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications
  • \n
  • The Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons
  • \n
  • The XP Globes plugin has received an option to configure the tooltip information
  • \n
\n

Enjoy!

\n

- Alexsuperfly

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.aaba779d.chunk.js.map \ No newline at end of file diff --git a/static/js/106.b1b8ecb4.chunk.js.map b/static/js/106.aaba779d.chunk.js.map similarity index 98% rename from static/js/106.b1b8ecb4.chunk.js.map rename to static/js/106.aaba779d.chunk.js.map index 3b8a0ec58b..555b19b996 100644 --- a/static/js/106.b1b8ecb4.chunk.js.map +++ b/static/js/106.aaba779d.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.b1b8ecb4.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

\\\"world_map_tele_jumping\\\"

\\n

The Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time

\\n

The Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Slayer plugin no longer shows the task infobox on login
  • \\n
  • The Chat Notifications plugin has had its highlighting of messages with color improved
  • \\n
  • The Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications
  • \\n
  • The Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons
  • \\n
  • The XP Globes plugin has received an option to configure the tooltip information
  • \\n
\\n

Enjoy!

\\n

- Alexsuperfly

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.aaba779d.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

\\\"world_map_tele_jumping\\\"

\\n

The Idle Notifier plugin can now notify you after not moving your character for a configurable amount of time

\\n

The Clue Scroll plugin has been updated to work correctly for coordinate and Hot/Cold clues located in the city of Prifddinas

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Slayer plugin no longer shows the task infobox on login
  • \\n
  • The Chat Notifications plugin has had its highlighting of messages with color improved
  • \\n
  • The Chat Color plugin now recolors the colon after the username of private chat messages, and the friend login/logout notifications
  • \\n
  • The Agility plugin now highlights shortcuts within the Kourend and Forthos dungeons
  • \\n
  • The XP Globes plugin has received an option to configure the tooltip information
  • \\n
\\n

Enjoy!

\\n

- Alexsuperfly

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.e829d84b.chunk.js b/static/js/107.8f09dd19.chunk.js similarity index 97% rename from static/js/107.e829d84b.chunk.js rename to static/js/107.8f09dd19.chunk.js index f794e4b906..e2006ce156 100644 --- a/static/js/107.e829d84b.chunk.js +++ b/static/js/107.8f09dd19.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[107],{384: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

Bank value search

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Opponent Information plugin\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you
  • \n
  • Forthos 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
  • \n
  • The Agility plugin now has an option to\ndisplay laps needed to reach your set agility goal
  • \n
  • You can now set the left-click menu option of the house advertisement board using the Menu Entry\nSwapper plugin
  • \n
  • The Timers plugin no longer thinks the\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells
  • \n
  • The Loot Tracker plugin now truncates\nmonster names instead of kill count for entries with long text
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.e829d84b.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[107],{385: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

Bank value search

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Opponent Information plugin\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you
  • \n
  • Forthos 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
  • \n
  • The Agility plugin now has an option to\ndisplay laps needed to reach your set agility goal
  • \n
  • You can now set the left-click menu option of the house advertisement board using the Menu Entry\nSwapper plugin
  • \n
  • The Timers plugin no longer thinks the\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells
  • \n
  • The Loot Tracker plugin now truncates\nmonster names instead of kill count for entries with long text
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.8f09dd19.chunk.js.map \ No newline at end of file diff --git a/static/js/107.e829d84b.chunk.js.map b/static/js/107.8f09dd19.chunk.js.map similarity index 98% rename from static/js/107.e829d84b.chunk.js.map rename to static/js/107.8f09dd19.chunk.js.map index af604cb69c..7daa561e1f 100644 --- a/static/js/107.e829d84b.chunk.js.map +++ b/static/js/107.8f09dd19.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.e829d84b.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

\\\"Bank

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Opponent Information plugin\\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you
  • \\n
  • Forthos 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
  • \\n
  • The Agility plugin now has an option to\\ndisplay laps needed to reach your set agility goal
  • \\n
  • You can now set the left-click menu option of the house advertisement board using the Menu Entry\\nSwapper plugin
  • \\n
  • The Timers plugin no longer thinks the\\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells
  • \\n
  • The Loot Tracker plugin now truncates\\nmonster names instead of kill count for entries with long text
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.8f09dd19.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

\\\"Bank

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Opponent Information plugin\\nnow has an option to highlight the Attack option for NPCs you are attacking or are attacking you
  • \\n
  • Forthos 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
  • \\n
  • The Agility plugin now has an option to\\ndisplay laps needed to reach your set agility goal
  • \\n
  • You can now set the left-click menu option of the house advertisement board using the Menu Entry\\nSwapper plugin
  • \\n
  • The Timers plugin no longer thinks the\\n"Protect from Magic" prayer halves the duration of normal spellbook freeze spells
  • \\n
  • The Loot Tracker plugin now truncates\\nmonster names instead of kill count for entries with long text
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.226dd588.chunk.js b/static/js/108.4f31c7e5.chunk.js similarity index 93% rename from static/js/108.226dd588.chunk.js rename to static/js/108.4f31c7e5.chunk.js index 5a8d8a17e2..efc7e1be24 100644 --- a/static/js/108.226dd588.chunk.js +++ b/static/js/108.4f31c7e5.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[108],{385: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.

\n

More 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.

\n

Wording 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.

\n

I 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.

\n

In 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.226dd588.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[108],{386: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.

\n

More 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.

\n

Wording 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.

\n

I 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.

\n

In 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.4f31c7e5.chunk.js.map \ No newline at end of file diff --git a/static/js/108.226dd588.chunk.js.map b/static/js/108.4f31c7e5.chunk.js.map similarity index 96% rename from static/js/108.226dd588.chunk.js.map rename to static/js/108.4f31c7e5.chunk.js.map index 7d02ed7523..0d333b9a6a 100644 --- a/static/js/108.226dd588.chunk.js.map +++ b/static/js/108.4f31c7e5.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.226dd588.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.

\\n

More 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.

\\n

Wording 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.

\\n

I 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.

\\n

In 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.4f31c7e5.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.

\\n

More 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.

\\n

Wording 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.

\\n

I 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.

\\n

In 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.c999bff3.chunk.js b/static/js/109.267273f1.chunk.js similarity index 98% rename from static/js/109.c999bff3.chunk.js rename to static/js/109.267273f1.chunk.js index aa585fe9bb..ac49d51bb7 100644 --- a/static/js/109.c999bff3.chunk.js +++ b/static/js/109.267273f1.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[109],{386: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.

\n

A 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

randoms

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The clickbox generation code has been optimized and now causes less lag when\ndrawing complex clickboxes, such as the the herbiboar trail objects
  • \n
  • The object indicators plugin now supports marking many more object types that\npreviously did not work, such as the MLM sack and ladders
  • \n
  • Setting the slayer plugin infobox timeout to 0 now makes it never timeout,\nconsistent with other plugins
  • \n
  • The item identification plugin now also identifies placeholders and noted\nversions of items
  • \n
  • The inventory grid plugin now shows the results of swapping items, if applicable
  • \n
  • Add Broodoo shield, drift net, spears, and hastae to skill calculator
  • \n
  • Add missing fishing spots from the fishing platform to the fishing plugin
  • \n
  • Fix Monk\'s residence and Rommik cryptic crate locations
  • \n
  • Add Rimmington ship transpotation icons and locations to the world map
  • \n
  • Fix location of the northern pipe in Mount Karuulm on the world map
  • \n
\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
15987632 (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.c999bff3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[109],{387: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.

\n

A 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

randoms

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The clickbox generation code has been optimized and now causes less lag when\ndrawing complex clickboxes, such as the the herbiboar trail objects
  • \n
  • The object indicators plugin now supports marking many more object types that\npreviously did not work, such as the MLM sack and ladders
  • \n
  • Setting the slayer plugin infobox timeout to 0 now makes it never timeout,\nconsistent with other plugins
  • \n
  • The item identification plugin now also identifies placeholders and noted\nversions of items
  • \n
  • The inventory grid plugin now shows the results of swapping items, if applicable
  • \n
  • Add Broodoo shield, drift net, spears, and hastae to skill calculator
  • \n
  • Add missing fishing spots from the fishing platform to the fishing plugin
  • \n
  • Fix Monk\'s residence and Rommik cryptic crate locations
  • \n
  • Add Rimmington ship transpotation icons and locations to the world map
  • \n
  • Fix location of the northern pipe in Mount Karuulm on the world map
  • \n
\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
15987632 (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.267273f1.chunk.js.map \ No newline at end of file diff --git a/static/js/109.c999bff3.chunk.js.map b/static/js/109.267273f1.chunk.js.map similarity index 98% rename from static/js/109.c999bff3.chunk.js.map rename to static/js/109.267273f1.chunk.js.map index d408d04471..534c7ab894 100644 --- a/static/js/109.c999bff3.chunk.js.map +++ b/static/js/109.267273f1.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.c999bff3.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.

\\n

A 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

\\\"randoms\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The clickbox generation code has been optimized and now causes less lag when\\ndrawing complex clickboxes, such as the the herbiboar trail objects
  • \\n
  • The object indicators plugin now supports marking many more object types that\\npreviously did not work, such as the MLM sack and ladders
  • \\n
  • Setting the slayer plugin infobox timeout to 0 now makes it never timeout,\\nconsistent with other plugins
  • \\n
  • The item identification plugin now also identifies placeholders and noted\\nversions of items
  • \\n
  • The inventory grid plugin now shows the results of swapping items, if applicable
  • \\n
  • Add Broodoo shield, drift net, spears, and hastae to skill calculator
  • \\n
  • Add missing fishing spots from the fishing platform to the fishing plugin
  • \\n
  • Fix Monk's residence and Rommik cryptic crate locations
  • \\n
  • Add Rimmington ship transpotation icons and locations to the world map
  • \\n
  • Fix location of the northern pipe in Mount Karuulm on the world map
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
15987632 (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.267273f1.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.

\\n

A 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

\\\"randoms\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The clickbox generation code has been optimized and now causes less lag when\\ndrawing complex clickboxes, such as the the herbiboar trail objects
  • \\n
  • The object indicators plugin now supports marking many more object types that\\npreviously did not work, such as the MLM sack and ladders
  • \\n
  • Setting the slayer plugin infobox timeout to 0 now makes it never timeout,\\nconsistent with other plugins
  • \\n
  • The item identification plugin now also identifies placeholders and noted\\nversions of items
  • \\n
  • The inventory grid plugin now shows the results of swapping items, if applicable
  • \\n
  • Add Broodoo shield, drift net, spears, and hastae to skill calculator
  • \\n
  • Add missing fishing spots from the fishing platform to the fishing plugin
  • \\n
  • Fix Monk's residence and Rommik cryptic crate locations
  • \\n
  • Add Rimmington ship transpotation icons and locations to the world map
  • \\n
  • Fix location of the northern pipe in Mount Karuulm on the world map
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
15987632 (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.eb3139be.chunk.js b/static/js/11.56560e92.chunk.js similarity index 96% rename from static/js/11.eb3139be.chunk.js rename to static/js/11.56560e92.chunk.js index 48f05a227a..fae22d1df2 100644 --- a/static/js/11.eb3139be.chunk.js +++ b/static/js/11.56560e92.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){},460: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.eb3139be.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){},462: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.56560e92.chunk.js.map \ No newline at end of file diff --git a/static/js/11.eb3139be.chunk.js.map b/static/js/11.56560e92.chunk.js.map similarity index 99% rename from static/js/11.eb3139be.chunk.js.map rename to static/js/11.56560e92.chunk.js.map index dc16cf3bbd..23646b9e91 100644 --- a/static/js/11.eb3139be.chunk.js.map +++ b/static/js/11.56560e92.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.eb3139be.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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 \"\" {name}\n

\n\n
{csv}
\n\n
\n {itemsToShow.map(item => (\n
\n
\n \n \n \n
\n {item.name || 'Loading...'}\n
\n
\n
\n ))}\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":"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","file":"static/js/11.56560e92.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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 \"\" {name}\n

\n\n
{csv}
\n\n
\n {itemsToShow.map(item => (\n
\n
\n \n \n \n
\n {item.name || 'Loading...'}\n
\n
\n
\n ))}\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.3da76866.chunk.js b/static/js/110.eec0da7d.chunk.js similarity index 98% rename from static/js/110.3da76866.chunk.js rename to static/js/110.eec0da7d.chunk.js index 9841d3f8e1..79d2113553 100644 --- a/static/js/110.3da76866.chunk.js +++ b/static/js/110.eec0da7d.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[110],{387: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

sliders

\n

The plugin additionally offers a new setting which will mute area sounds caused\nfrom animations of other players (mostly skilling animations like woodcutting).

\n

Jagex 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
    \n
  • Removal of the Cerberus plugin
  • \n
  • Removal of the reorder prayers plugin
  • \n
  • Remove "opponent\'s opponent" part of the opponent info overlay
  • \n
  • Remove the pickpocket/talk-to swap from the menu entry swapper
  • \n
  • Remove the minimap overlay from the barrows plugin
  • \n
  • Remove the Walk here/Attack swap on the Corporeal beast dark core
  • \n
\n

I 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the random event plugin hiding menu options for your own randoms
  • \n
  • Fix the combat level plugin not showing combat level range in the wilderness
  • \n
  • Fix world map tooltip for Prifddinas farming patch
  • \n
  • Fix the PvP kill/death counter to once again be moveable
  • \n
  • Fix full teleblock timer
  • \n
  • Add pyramid plunder start-minigame and quick-leave to the menu entry swapper
  • \n
  • Add Fremennik Exiles to the world map and add tooltips for the new\ntransportation icons
  • \n
  • The fishing overlay colors are now configurable
  • \n
  • Add coordinate clue descriptor for Island of Stone clue
  • \n
  • Add fishing trawler to the loot tracker
  • \n
  • The loot tracker can now use High Alchemy price for item valuation
  • \n
  • Show price check when examining items on the trade interface
  • \n
  • The wiki plugin can now have its "cast" feature used on items in the bank and\nall other interfaces with items other than the inventory
  • \n
  • The loot tracker on the website now shows total value of loot
  • \n
\n

- Adam

\n

New commits

\n

We had 19 contributors this release!

\n
15987632 (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.3da76866.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[110],{388: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

sliders

\n

The plugin additionally offers a new setting which will mute area sounds caused\nfrom animations of other players (mostly skilling animations like woodcutting).

\n

Jagex 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
    \n
  • Removal of the Cerberus plugin
  • \n
  • Removal of the reorder prayers plugin
  • \n
  • Remove "opponent\'s opponent" part of the opponent info overlay
  • \n
  • Remove the pickpocket/talk-to swap from the menu entry swapper
  • \n
  • Remove the minimap overlay from the barrows plugin
  • \n
  • Remove the Walk here/Attack swap on the Corporeal beast dark core
  • \n
\n

I 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the random event plugin hiding menu options for your own randoms
  • \n
  • Fix the combat level plugin not showing combat level range in the wilderness
  • \n
  • Fix world map tooltip for Prifddinas farming patch
  • \n
  • Fix the PvP kill/death counter to once again be moveable
  • \n
  • Fix full teleblock timer
  • \n
  • Add pyramid plunder start-minigame and quick-leave to the menu entry swapper
  • \n
  • Add Fremennik Exiles to the world map and add tooltips for the new\ntransportation icons
  • \n
  • The fishing overlay colors are now configurable
  • \n
  • Add coordinate clue descriptor for Island of Stone clue
  • \n
  • Add fishing trawler to the loot tracker
  • \n
  • The loot tracker can now use High Alchemy price for item valuation
  • \n
  • Show price check when examining items on the trade interface
  • \n
  • The wiki plugin can now have its "cast" feature used on items in the bank and\nall other interfaces with items other than the inventory
  • \n
  • The loot tracker on the website now shows total value of loot
  • \n
\n

- Adam

\n

New commits

\n

We had 19 contributors this release!

\n
15987632 (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.eec0da7d.chunk.js.map \ No newline at end of file diff --git a/static/js/110.3da76866.chunk.js.map b/static/js/110.eec0da7d.chunk.js.map similarity index 99% rename from static/js/110.3da76866.chunk.js.map rename to static/js/110.eec0da7d.chunk.js.map index 851e402eec..06c74b7d9a 100644 --- a/static/js/110.3da76866.chunk.js.map +++ b/static/js/110.eec0da7d.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.3da76866.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

\\\"sliders\\\"

\\n

The plugin additionally offers a new setting which will mute area sounds caused\\nfrom animations of other players (mostly skilling animations like woodcutting).

\\n

Jagex 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
    \\n
  • Removal of the Cerberus plugin
  • \\n
  • Removal of the reorder prayers plugin
  • \\n
  • Remove "opponent's opponent" part of the opponent info overlay
  • \\n
  • Remove the pickpocket/talk-to swap from the menu entry swapper
  • \\n
  • Remove the minimap overlay from the barrows plugin
  • \\n
  • Remove the Walk here/Attack swap on the Corporeal beast dark core
  • \\n
\\n

I 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the random event plugin hiding menu options for your own randoms
  • \\n
  • Fix the combat level plugin not showing combat level range in the wilderness
  • \\n
  • Fix world map tooltip for Prifddinas farming patch
  • \\n
  • Fix the PvP kill/death counter to once again be moveable
  • \\n
  • Fix full teleblock timer
  • \\n
  • Add pyramid plunder start-minigame and quick-leave to the menu entry swapper
  • \\n
  • Add Fremennik Exiles to the world map and add tooltips for the new\\ntransportation icons
  • \\n
  • The fishing overlay colors are now configurable
  • \\n
  • Add coordinate clue descriptor for Island of Stone clue
  • \\n
  • Add fishing trawler to the loot tracker
  • \\n
  • The loot tracker can now use High Alchemy price for item valuation
  • \\n
  • Show price check when examining items on the trade interface
  • \\n
  • The wiki plugin can now have its "cast" feature used on items in the bank and\\nall other interfaces with items other than the inventory
  • \\n
  • The loot tracker on the website now shows total value of loot
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this release!

\\n
15987632 (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.eec0da7d.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

\\\"sliders\\\"

\\n

The plugin additionally offers a new setting which will mute area sounds caused\\nfrom animations of other players (mostly skilling animations like woodcutting).

\\n

Jagex 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
    \\n
  • Removal of the Cerberus plugin
  • \\n
  • Removal of the reorder prayers plugin
  • \\n
  • Remove "opponent's opponent" part of the opponent info overlay
  • \\n
  • Remove the pickpocket/talk-to swap from the menu entry swapper
  • \\n
  • Remove the minimap overlay from the barrows plugin
  • \\n
  • Remove the Walk here/Attack swap on the Corporeal beast dark core
  • \\n
\\n

I 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the random event plugin hiding menu options for your own randoms
  • \\n
  • Fix the combat level plugin not showing combat level range in the wilderness
  • \\n
  • Fix world map tooltip for Prifddinas farming patch
  • \\n
  • Fix the PvP kill/death counter to once again be moveable
  • \\n
  • Fix full teleblock timer
  • \\n
  • Add pyramid plunder start-minigame and quick-leave to the menu entry swapper
  • \\n
  • Add Fremennik Exiles to the world map and add tooltips for the new\\ntransportation icons
  • \\n
  • The fishing overlay colors are now configurable
  • \\n
  • Add coordinate clue descriptor for Island of Stone clue
  • \\n
  • Add fishing trawler to the loot tracker
  • \\n
  • The loot tracker can now use High Alchemy price for item valuation
  • \\n
  • Show price check when examining items on the trade interface
  • \\n
  • The wiki plugin can now have its "cast" feature used on items in the bank and\\nall other interfaces with items other than the inventory
  • \\n
  • The loot tracker on the website now shows total value of loot
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this release!

\\n
15987632 (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.0f764d67.chunk.js b/static/js/111.4fb08f3f.chunk.js similarity index 98% rename from static/js/111.0f764d67.chunk.js rename to static/js/111.4fb08f3f.chunk.js index e46aad3fe4..77e378fa07 100644 --- a/static/js/111.0f764d67.chunk.js +++ b/static/js/111.4fb08f3f.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[111],{388: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

ba healthbars

\n

The 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.

\n

The examine plugin now offers functionality to examine ground items so that you can check the value of\nyour loot before even picking it up.

\n

A new !layout command has been added to the Chambers of Xeric plugin to share a scouted raid layout.

\n

Also, we\'d like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add "sound" and "volume" tags to music plugin
  • \n
  • Remove paste to password on login screen as jagex added their own
  • \n
  • Add Reset option to various session overlays
  • \n
  • Add option to use last world as default
  • \n
  • Add cannon spot for trolls at Quidamortem
  • \n
  • Add arctic pine logs to the woodcutting plugin
  • \n
  • Fix ScreenshotPlugin Kingdom of Miscellania double screenshot
  • \n
  • Add untradeable item values for long/curved bones, tattered pages and shells
  • \n
  • Add five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant
  • \n
  • Add more detailed location description for Mausoleum emote clue
  • \n
  • Highlight correct crate for Rommik\'s shop clue
  • \n
  • Fix speccounter for players with 200m hitpoints
  • \n
  • Add Black Demon cannon spot in Chasm of Fire
  • \n
  • Fix Island of Stone coordinate hint
  • \n
  • Correct direction of Miscellania island coordinate clue
  • \n
  • Fix yew tree Sherlock challenge
  • \n
  • Add notify option for impling spawns
  • \n
  • Add black border to wilderness crab teleport icon
  • \n
  • Fix resetting divine potion timers on death
  • \n
  • Make GWD kill count overlay movable
  • \n
  • Use mouse dragged distance to determine if the inventory grid should show
  • \n
  • Add rc-altar icons to worldmap
  • \n
\n

- dekvall

\n

New commits

\n

We had 25 contributors this release!

\n
15987632 (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.0f764d67.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[111],{389: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

ba healthbars

\n

The 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.

\n

The examine plugin now offers functionality to examine ground items so that you can check the value of\nyour loot before even picking it up.

\n

A new !layout command has been added to the Chambers of Xeric plugin to share a scouted raid layout.

\n

Also, we\'d like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add "sound" and "volume" tags to music plugin
  • \n
  • Remove paste to password on login screen as jagex added their own
  • \n
  • Add Reset option to various session overlays
  • \n
  • Add option to use last world as default
  • \n
  • Add cannon spot for trolls at Quidamortem
  • \n
  • Add arctic pine logs to the woodcutting plugin
  • \n
  • Fix ScreenshotPlugin Kingdom of Miscellania double screenshot
  • \n
  • Add untradeable item values for long/curved bones, tattered pages and shells
  • \n
  • Add five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant
  • \n
  • Add more detailed location description for Mausoleum emote clue
  • \n
  • Highlight correct crate for Rommik\'s shop clue
  • \n
  • Fix speccounter for players with 200m hitpoints
  • \n
  • Add Black Demon cannon spot in Chasm of Fire
  • \n
  • Fix Island of Stone coordinate hint
  • \n
  • Correct direction of Miscellania island coordinate clue
  • \n
  • Fix yew tree Sherlock challenge
  • \n
  • Add notify option for impling spawns
  • \n
  • Add black border to wilderness crab teleport icon
  • \n
  • Fix resetting divine potion timers on death
  • \n
  • Make GWD kill count overlay movable
  • \n
  • Use mouse dragged distance to determine if the inventory grid should show
  • \n
  • Add rc-altar icons to worldmap
  • \n
\n

- dekvall

\n

New commits

\n

We had 25 contributors this release!

\n
15987632 (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.4fb08f3f.chunk.js.map \ No newline at end of file diff --git a/static/js/111.0f764d67.chunk.js.map b/static/js/111.4fb08f3f.chunk.js.map similarity index 98% rename from static/js/111.0f764d67.chunk.js.map rename to static/js/111.4fb08f3f.chunk.js.map index e6363adeeb..8e90764041 100644 --- a/static/js/111.0f764d67.chunk.js.map +++ b/static/js/111.4fb08f3f.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.0f764d67.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

\\\"ba

\\n

The 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.

\\n

The examine plugin now offers functionality to examine ground items so that you can check the value of\\nyour loot before even picking it up.

\\n

A new !layout command has been added to the Chambers of Xeric plugin to share a scouted raid layout.

\\n

Also, we'd like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add "sound" and "volume" tags to music plugin
  • \\n
  • Remove paste to password on login screen as jagex added their own
  • \\n
  • Add Reset option to various session overlays
  • \\n
  • Add option to use last world as default
  • \\n
  • Add cannon spot for trolls at Quidamortem
  • \\n
  • Add arctic pine logs to the woodcutting plugin
  • \\n
  • Fix ScreenshotPlugin Kingdom of Miscellania double screenshot
  • \\n
  • Add untradeable item values for long/curved bones, tattered pages and shells
  • \\n
  • Add five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant
  • \\n
  • Add more detailed location description for Mausoleum emote clue
  • \\n
  • Highlight correct crate for Rommik's shop clue
  • \\n
  • Fix speccounter for players with 200m hitpoints
  • \\n
  • Add Black Demon cannon spot in Chasm of Fire
  • \\n
  • Fix Island of Stone coordinate hint
  • \\n
  • Correct direction of Miscellania island coordinate clue
  • \\n
  • Fix yew tree Sherlock challenge
  • \\n
  • Add notify option for impling spawns
  • \\n
  • Add black border to wilderness crab teleport icon
  • \\n
  • Fix resetting divine potion timers on death
  • \\n
  • Make GWD kill count overlay movable
  • \\n
  • Use mouse dragged distance to determine if the inventory grid should show
  • \\n
  • Add rc-altar icons to worldmap
  • \\n
\\n

- dekvall

\\n

New commits

\\n

We had 25 contributors this release!

\\n
15987632 (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.4fb08f3f.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

\\\"ba

\\n

The 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.

\\n

The examine plugin now offers functionality to examine ground items so that you can check the value of\\nyour loot before even picking it up.

\\n

A new !layout command has been added to the Chambers of Xeric plugin to share a scouted raid layout.

\\n

Also, we'd like to thank Jagex for updating their post about 3rd-party clients with the statement that RuneLite is compliant with their rules.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add "sound" and "volume" tags to music plugin
  • \\n
  • Remove paste to password on login screen as jagex added their own
  • \\n
  • Add Reset option to various session overlays
  • \\n
  • Add option to use last world as default
  • \\n
  • Add cannon spot for trolls at Quidamortem
  • \\n
  • Add arctic pine logs to the woodcutting plugin
  • \\n
  • Fix ScreenshotPlugin Kingdom of Miscellania double screenshot
  • \\n
  • Add untradeable item values for long/curved bones, tattered pages and shells
  • \\n
  • Add five new emojis; Fire, Heart eyes, Alien, Wave and Eggplant
  • \\n
  • Add more detailed location description for Mausoleum emote clue
  • \\n
  • Highlight correct crate for Rommik's shop clue
  • \\n
  • Fix speccounter for players with 200m hitpoints
  • \\n
  • Add Black Demon cannon spot in Chasm of Fire
  • \\n
  • Fix Island of Stone coordinate hint
  • \\n
  • Correct direction of Miscellania island coordinate clue
  • \\n
  • Fix yew tree Sherlock challenge
  • \\n
  • Add notify option for impling spawns
  • \\n
  • Add black border to wilderness crab teleport icon
  • \\n
  • Fix resetting divine potion timers on death
  • \\n
  • Make GWD kill count overlay movable
  • \\n
  • Use mouse dragged distance to determine if the inventory grid should show
  • \\n
  • Add rc-altar icons to worldmap
  • \\n
\\n

- dekvall

\\n

New commits

\\n

We had 25 contributors this release!

\\n
15987632 (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.60488108.chunk.js b/static/js/112.f3767d44.chunk.js similarity index 98% rename from static/js/112.60488108.chunk.js rename to static/js/112.f3767d44.chunk.js index dcd7976b77..abe473cac8 100644 --- a/static/js/112.60488108.chunk.js +++ b/static/js/112.f3767d44.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[112],{389: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

Woodcutting plugin tree respawn timer

\n

The Entity Hider plugin has an added\noption to hide the pets of other players. Thanks to Trevor for this\naddition!

\n

Entity hider pet toggle

\n

We\'ve added support for Twisted Leagues:

\n\n

Finally, 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

leaguechat

\n

The 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:

\n
muttadiles, shamans, mystics\nvespula, tekton, vasa\n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Object markers marking objects which\ncan change into other objects can be properly removed
  • \n
  • The Rune Pouch overlay now displays your\nstored runes on both the normal Rune pouch and the Rune pouch (l)
  • \n
  • The 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
  • \n
  • Teleport sound effects have been classified as "Others\' area sounds" for the purpose of muting via the\nMusic plugin
  • \n
  • You can now configure the FPS Control\nplugin to limit your FPS to two different\namounts when the game is focused or unfocused.
  • \n
  • The Woman face-palmingemoji\nfacepalm emoji has been added to the Emojis\nplugin as the emoticon M-)
  • \n
  • The client now continues to flash\nnotifications until it\nbecomes focused (instead of clearing notifications by only mousing over the window)
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
15987632 (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.60488108.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[112],{390: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

Woodcutting plugin tree respawn timer

\n

The Entity Hider plugin has an added\noption to hide the pets of other players. Thanks to Trevor for this\naddition!

\n

Entity hider pet toggle

\n

We\'ve added support for Twisted Leagues:

\n\n

Finally, 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

leaguechat

\n

The 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:

\n
muttadiles, shamans, mystics\nvespula, tekton, vasa\n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Object markers marking objects which\ncan change into other objects can be properly removed
  • \n
  • The Rune Pouch overlay now displays your\nstored runes on both the normal Rune pouch and the Rune pouch (l)
  • \n
  • The 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
  • \n
  • Teleport sound effects have been classified as "Others\' area sounds" for the purpose of muting via the\nMusic plugin
  • \n
  • You can now configure the FPS Control\nplugin to limit your FPS to two different\namounts when the game is focused or unfocused.
  • \n
  • The Woman face-palmingemoji\nfacepalm emoji has been added to the Emojis\nplugin as the emoticon M-)
  • \n
  • The client now continues to flash\nnotifications until it\nbecomes focused (instead of clearing notifications by only mousing over the window)
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
15987632 (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.f3767d44.chunk.js.map \ No newline at end of file diff --git a/static/js/112.60488108.chunk.js.map b/static/js/112.f3767d44.chunk.js.map similarity index 99% rename from static/js/112.60488108.chunk.js.map rename to static/js/112.f3767d44.chunk.js.map index f5662e24d6..d30bd32f42 100644 --- a/static/js/112.60488108.chunk.js.map +++ b/static/js/112.f3767d44.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.60488108.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

\\\"Woodcutting

\\n

The Entity Hider plugin has an added\\noption to hide the pets of other players. Thanks to Trevor for this\\naddition!

\\n

\\\"Entity

\\n

We've added support for Twisted Leagues:

\\n\\n

Finally, 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

\\\"leaguechat\\\"

\\n

The 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:

\\n
muttadiles, shamans, mystics\\nvespula, tekton, vasa\\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Object markers marking objects which\\ncan change into other objects can be properly removed
  • \\n
  • The Rune Pouch overlay now displays your\\nstored runes on both the normal Rune pouch and the Rune pouch (l)
  • \\n
  • The 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
  • \\n
  • Teleport sound effects have been classified as "Others' area sounds" for the purpose of muting via the\\nMusic plugin
  • \\n
  • You can now configure the FPS Control\\nplugin to limit your FPS to two different\\namounts when the game is focused or unfocused.
  • \\n
  • The \\\"Woman\\nfacepalm emoji has been added to the Emojis\\nplugin as the emoticon M-)
  • \\n
  • The client now continues to flash\\nnotifications until it\\nbecomes focused (instead of clearing notifications by only mousing over the window)
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
15987632 (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.f3767d44.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

\\\"Woodcutting

\\n

The Entity Hider plugin has an added\\noption to hide the pets of other players. Thanks to Trevor for this\\naddition!

\\n

\\\"Entity

\\n

We've added support for Twisted Leagues:

\\n\\n

Finally, 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

\\\"leaguechat\\\"

\\n

The 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:

\\n
muttadiles, shamans, mystics\\nvespula, tekton, vasa\\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Object markers marking objects which\\ncan change into other objects can be properly removed
  • \\n
  • The Rune Pouch overlay now displays your\\nstored runes on both the normal Rune pouch and the Rune pouch (l)
  • \\n
  • The 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
  • \\n
  • Teleport sound effects have been classified as "Others' area sounds" for the purpose of muting via the\\nMusic plugin
  • \\n
  • You can now configure the FPS Control\\nplugin to limit your FPS to two different\\namounts when the game is focused or unfocused.
  • \\n
  • The \\\"Woman\\nfacepalm emoji has been added to the Emojis\\nplugin as the emoticon M-)
  • \\n
  • The client now continues to flash\\nnotifications until it\\nbecomes focused (instead of clearing notifications by only mousing over the window)
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
15987632 (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.cea5ca47.chunk.js b/static/js/113.5f398440.chunk.js similarity index 98% rename from static/js/113.cea5ca47.chunk.js rename to static/js/113.5f398440.chunk.js index 833eb83ef2..7115e0fceb 100644 --- a/static/js/113.cea5ca47.chunk.js +++ b/static/js/113.5f398440.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[113],{390: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!

\n

The 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

Clan Chat plugin kick confirmation chatbox dialog

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Chat Commands plugin\'s chatbox\nclearing keybinds are now configurable
  • \n
  • The Kourend Library plugin has an\noption (enabled by default) to display a tutorial overlay to help get started with it
  • \n
  • Messages displayed via the Twitch plugin now\nhave timestamps
  • \n
  • Captain Khaled and Arceuus library customers now have menu entry\nswaps for their "Task" and "Help"\noptions, respectively
  • \n
  • A menu entry swap for previous\ndestinations of your POH Jewellery box has been added
  • \n
  • The "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\nplugin
  • \n
  • League Chat icons no longer display usernames without their appropriate chat\ncolors applied
  • \n
  • The Slayer plugin has learned to recognize\nKonar giving a player their first slayer task in the Twisted League
  • \n
  • The Object Markers plugin now properly\nallows unmarking objects which may have a different name than when they spawned
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.cea5ca47.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[113],{391: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!

\n

The 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

Clan Chat plugin kick confirmation chatbox dialog

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Chat Commands plugin\'s chatbox\nclearing keybinds are now configurable
  • \n
  • The Kourend Library plugin has an\noption (enabled by default) to display a tutorial overlay to help get started with it
  • \n
  • Messages displayed via the Twitch plugin now\nhave timestamps
  • \n
  • Captain Khaled and Arceuus library customers now have menu entry\nswaps for their "Task" and "Help"\noptions, respectively
  • \n
  • A menu entry swap for previous\ndestinations of your POH Jewellery box has been added
  • \n
  • The "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\nplugin
  • \n
  • League Chat icons no longer display usernames without their appropriate chat\ncolors applied
  • \n
  • The Slayer plugin has learned to recognize\nKonar giving a player their first slayer task in the Twisted League
  • \n
  • The Object Markers plugin now properly\nallows unmarking objects which may have a different name than when they spawned
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.5f398440.chunk.js.map \ No newline at end of file diff --git a/static/js/113.cea5ca47.chunk.js.map b/static/js/113.5f398440.chunk.js.map similarity index 98% rename from static/js/113.cea5ca47.chunk.js.map rename to static/js/113.5f398440.chunk.js.map index cee1c79554..508172e5d4 100644 --- a/static/js/113.cea5ca47.chunk.js.map +++ b/static/js/113.5f398440.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.cea5ca47.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!

\\n

The 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

\\\"Clan

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Chat Commands plugin's chatbox\\nclearing keybinds are now configurable
  • \\n
  • The Kourend Library plugin has an\\noption (enabled by default) to display a tutorial overlay to help get started with it
  • \\n
  • Messages displayed via the Twitch plugin now\\nhave timestamps
  • \\n
  • Captain Khaled and Arceuus library customers now have menu entry\\nswaps for their "Task" and "Help"\\noptions, respectively
  • \\n
  • A menu entry swap for previous\\ndestinations of your POH Jewellery box has been added
  • \\n
  • The "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\\nplugin
  • \\n
  • League Chat icons no longer display usernames without their appropriate chat\\ncolors applied
  • \\n
  • The Slayer plugin has learned to recognize\\nKonar giving a player their first slayer task in the Twisted League
  • \\n
  • The Object Markers plugin now properly\\nallows unmarking objects which may have a different name than when they spawned
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.5f398440.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!

\\n

The 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

\\\"Clan

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Chat Commands plugin's chatbox\\nclearing keybinds are now configurable
  • \\n
  • The Kourend Library plugin has an\\noption (enabled by default) to display a tutorial overlay to help get started with it
  • \\n
  • Messages displayed via the Twitch plugin now\\nhave timestamps
  • \\n
  • Captain Khaled and Arceuus library customers now have menu entry\\nswaps for their "Task" and "Help"\\noptions, respectively
  • \\n
  • A menu entry swap for previous\\ndestinations of your POH Jewellery box has been added
  • \\n
  • The "Chat Leagues Icons plugin" has been renamed to the easier-to-understand League Chat Icons\\nplugin
  • \\n
  • League Chat icons no longer display usernames without their appropriate chat\\ncolors applied
  • \\n
  • The Slayer plugin has learned to recognize\\nKonar giving a player their first slayer task in the Twisted League
  • \\n
  • The Object Markers plugin now properly\\nallows unmarking objects which may have a different name than when they spawned
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.05d08486.chunk.js b/static/js/114.483266ef.chunk.js similarity index 96% rename from static/js/114.05d08486.chunk.js rename to static/js/114.483266ef.chunk.js index 6cc1bc368f..37151ffd31 100644 --- a/static/js/114.05d08486.chunk.js +++ b/static/js/114.483266ef.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[114],{391: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.

\n

The 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.

\n

We 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.

\n

The plugin hub can be browsed in the client by scrolling to the bottom of the\nconfiguration panel.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the Kourend Library plugin incorrectly resetting when searching empty bookcases
  • \n
  • Add support for ignore list notes to the friend notes plugin
  • \n
  • The fog at the scene corners now curves around it slightly
  • \n
  • Fix the tithe farm overlay to be movable again
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Aaron 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.05d08486.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[114],{392: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.

\n

The 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.

\n

We 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.

\n

The plugin hub can be browsed in the client by scrolling to the bottom of the\nconfiguration panel.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the Kourend Library plugin incorrectly resetting when searching empty bookcases
  • \n
  • Add support for ignore list notes to the friend notes plugin
  • \n
  • The fog at the scene corners now curves around it slightly
  • \n
  • Fix the tithe farm overlay to be movable again
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Aaron 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.483266ef.chunk.js.map \ No newline at end of file diff --git a/static/js/114.05d08486.chunk.js.map b/static/js/114.483266ef.chunk.js.map similarity index 97% rename from static/js/114.05d08486.chunk.js.map rename to static/js/114.483266ef.chunk.js.map index f1cde728b2..b06cb5ec88 100644 --- a/static/js/114.05d08486.chunk.js.map +++ b/static/js/114.483266ef.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.05d08486.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.

\\n

The 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.

\\n

We 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.

\\n

The plugin hub can be browsed in the client by scrolling to the bottom of the\\nconfiguration panel.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the Kourend Library plugin incorrectly resetting when searching empty bookcases
  • \\n
  • Add support for ignore list notes to the friend notes plugin
  • \\n
  • The fog at the scene corners now curves around it slightly
  • \\n
  • Fix the tithe farm overlay to be movable again
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Aaron 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.483266ef.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.

\\n

The 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.

\\n

We 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.

\\n

The plugin hub can be browsed in the client by scrolling to the bottom of the\\nconfiguration panel.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the Kourend Library plugin incorrectly resetting when searching empty bookcases
  • \\n
  • Add support for ignore list notes to the friend notes plugin
  • \\n
  • The fog at the scene corners now curves around it slightly
  • \\n
  • Fix the tithe farm overlay to be movable again
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Aaron 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.f315bee9.chunk.js b/static/js/115.723ab803.chunk.js similarity index 97% rename from static/js/115.f315bee9.chunk.js rename to static/js/115.723ab803.chunk.js index 92ca24f54f..0f71c5163f 100644 --- a/static/js/115.f315bee9.chunk.js +++ b/static/js/115.723ab803.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[115],{392: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

bosshiscores

\n

The !kc command remains as-is as it updates kill counts in real-time as\nopposed to the boss hiscores which require relogging.

\n

The camera plugin now has an option to add Look South, Look East, and Look West to the compass.

\n

compasslook

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The new tag-tab button has been moved below the tag-tab list to make room\nfor the new equipment button
  • \n
  • The cannon plugin now has a configurable threshold for when it will warn you\nfor having low ammo
  • \n
  • Add a shift click abort GE offer option to menu swapper
  • \n
  • Add a menu swap for GE offer withdraw mode
  • \n
  • Add an option to show the total value of Chambers of Xeric loot to the raids\nplugin
  • \n
  • Fix slayer plugin to recognize tasks assigned to the Forthos Dungeon
  • \n
  • Fix clipping of 2005 interface style minimap
  • \n
  • Fix several more issues with the Kourend library plugin which cause it to\nreset at the wrong time and incorrectly mark objects when world hopping
  • \n
  • Add the option to Lookup players on your ignore list
  • \n
  • Add potions to the item identification plugin
  • \n
  • Support chat command clear line/word keybinds in pm input dialog
  • \n
  • Fix clan chat ranks not showing up if the clan chat name is recolored
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.f315bee9.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[115],{393: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

bosshiscores

\n

The !kc command remains as-is as it updates kill counts in real-time as\nopposed to the boss hiscores which require relogging.

\n

The camera plugin now has an option to add Look South, Look East, and Look West to the compass.

\n

compasslook

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The new tag-tab button has been moved below the tag-tab list to make room\nfor the new equipment button
  • \n
  • The cannon plugin now has a configurable threshold for when it will warn you\nfor having low ammo
  • \n
  • Add a shift click abort GE offer option to menu swapper
  • \n
  • Add a menu swap for GE offer withdraw mode
  • \n
  • Add an option to show the total value of Chambers of Xeric loot to the raids\nplugin
  • \n
  • Fix slayer plugin to recognize tasks assigned to the Forthos Dungeon
  • \n
  • Fix clipping of 2005 interface style minimap
  • \n
  • Fix several more issues with the Kourend library plugin which cause it to\nreset at the wrong time and incorrectly mark objects when world hopping
  • \n
  • Add the option to Lookup players on your ignore list
  • \n
  • Add potions to the item identification plugin
  • \n
  • Support chat command clear line/word keybinds in pm input dialog
  • \n
  • Fix clan chat ranks not showing up if the clan chat name is recolored
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.723ab803.chunk.js.map \ No newline at end of file diff --git a/static/js/115.f315bee9.chunk.js.map b/static/js/115.723ab803.chunk.js.map similarity index 98% rename from static/js/115.f315bee9.chunk.js.map rename to static/js/115.723ab803.chunk.js.map index a25a23c5fc..e8d96edb31 100644 --- a/static/js/115.f315bee9.chunk.js.map +++ b/static/js/115.723ab803.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.f315bee9.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

\\\"bosshiscores\\\"

\\n

The !kc command remains as-is as it updates kill counts in real-time as\\nopposed to the boss hiscores which require relogging.

\\n

The camera plugin now has an option to add Look South, Look East, and Look West to the compass.

\\n

\\\"compasslook\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The new tag-tab button has been moved below the tag-tab list to make room\\nfor the new equipment button
  • \\n
  • The cannon plugin now has a configurable threshold for when it will warn you\\nfor having low ammo
  • \\n
  • Add a shift click abort GE offer option to menu swapper
  • \\n
  • Add a menu swap for GE offer withdraw mode
  • \\n
  • Add an option to show the total value of Chambers of Xeric loot to the raids\\nplugin
  • \\n
  • Fix slayer plugin to recognize tasks assigned to the Forthos Dungeon
  • \\n
  • Fix clipping of 2005 interface style minimap
  • \\n
  • Fix several more issues with the Kourend library plugin which cause it to\\nreset at the wrong time and incorrectly mark objects when world hopping
  • \\n
  • Add the option to Lookup players on your ignore list
  • \\n
  • Add potions to the item identification plugin
  • \\n
  • Support chat command clear line/word keybinds in pm input dialog
  • \\n
  • Fix clan chat ranks not showing up if the clan chat name is recolored
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.723ab803.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

\\\"bosshiscores\\\"

\\n

The !kc command remains as-is as it updates kill counts in real-time as\\nopposed to the boss hiscores which require relogging.

\\n

The camera plugin now has an option to add Look South, Look East, and Look West to the compass.

\\n

\\\"compasslook\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The new tag-tab button has been moved below the tag-tab list to make room\\nfor the new equipment button
  • \\n
  • The cannon plugin now has a configurable threshold for when it will warn you\\nfor having low ammo
  • \\n
  • Add a shift click abort GE offer option to menu swapper
  • \\n
  • Add a menu swap for GE offer withdraw mode
  • \\n
  • Add an option to show the total value of Chambers of Xeric loot to the raids\\nplugin
  • \\n
  • Fix slayer plugin to recognize tasks assigned to the Forthos Dungeon
  • \\n
  • Fix clipping of 2005 interface style minimap
  • \\n
  • Fix several more issues with the Kourend library plugin which cause it to\\nreset at the wrong time and incorrectly mark objects when world hopping
  • \\n
  • Add the option to Lookup players on your ignore list
  • \\n
  • Add potions to the item identification plugin
  • \\n
  • Support chat command clear line/word keybinds in pm input dialog
  • \\n
  • Fix clan chat ranks not showing up if the clan chat name is recolored
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.ec4acf03.chunk.js b/static/js/116.82cfb4c3.chunk.js similarity index 94% rename from static/js/116.ec4acf03.chunk.js rename to static/js/116.82cfb4c3.chunk.js index 982d07a3f7..e97d7ce313 100644 --- a/static/js/116.ec4acf03.chunk.js +++ b/static/js/116.82cfb4c3.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[116],{393: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

swap-bank-op

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now see score in the tooltips for activities in the hiscore plugin
  • \n
  • Add Sq\'irkjuices to the thieving calculator
  • \n
  • Update the hint for Duel Arena coordinate clue
  • \n
  • The skill calculator will now use your set target level if you have one set
  • \n
  • Add shift click swap for NPC Contact
  • \n
  • Add configuration to hide agility obstacle clickboxes
  • \n
\n

Enjoy!

\n

- dekvall

\n

New commits

\n

We had 10 contributors this release!

\n
15987632 (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.ec4acf03.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[116],{394: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

swap-bank-op

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now see score in the tooltips for activities in the hiscore plugin
  • \n
  • Add Sq\'irkjuices to the thieving calculator
  • \n
  • Update the hint for Duel Arena coordinate clue
  • \n
  • The skill calculator will now use your set target level if you have one set
  • \n
  • Add shift click swap for NPC Contact
  • \n
  • Add configuration to hide agility obstacle clickboxes
  • \n
\n

Enjoy!

\n

- dekvall

\n

New commits

\n

We had 10 contributors this release!

\n
15987632 (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.82cfb4c3.chunk.js.map \ No newline at end of file diff --git a/static/js/116.ec4acf03.chunk.js.map b/static/js/116.82cfb4c3.chunk.js.map similarity index 97% rename from static/js/116.ec4acf03.chunk.js.map rename to static/js/116.82cfb4c3.chunk.js.map index e0d889e264..feb14ec4ea 100644 --- a/static/js/116.ec4acf03.chunk.js.map +++ b/static/js/116.82cfb4c3.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.ec4acf03.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

\\\"swap-bank-op\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now see score in the tooltips for activities in the hiscore plugin
  • \\n
  • Add Sq'irkjuices to the thieving calculator
  • \\n
  • Update the hint for Duel Arena coordinate clue
  • \\n
  • The skill calculator will now use your set target level if you have one set
  • \\n
  • Add shift click swap for NPC Contact
  • \\n
  • Add configuration to hide agility obstacle clickboxes
  • \\n
\\n

Enjoy!

\\n

- dekvall

\\n

New commits

\\n

We had 10 contributors this release!

\\n
15987632 (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.82cfb4c3.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

\\\"swap-bank-op\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now see score in the tooltips for activities in the hiscore plugin
  • \\n
  • Add Sq'irkjuices to the thieving calculator
  • \\n
  • Update the hint for Duel Arena coordinate clue
  • \\n
  • The skill calculator will now use your set target level if you have one set
  • \\n
  • Add shift click swap for NPC Contact
  • \\n
  • Add configuration to hide agility obstacle clickboxes
  • \\n
\\n

Enjoy!

\\n

- dekvall

\\n

New commits

\\n

We had 10 contributors this release!

\\n
15987632 (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.a74fa60a.chunk.js b/static/js/117.ce3dd0bd.chunk.js similarity index 95% rename from static/js/117.a74fa60a.chunk.js rename to static/js/117.ce3dd0bd.chunk.js index 60dee00e63..a460062f06 100644 --- a/static/js/117.a74fa60a.chunk.js +++ b/static/js/117.ce3dd0bd.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[117],{394: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

loot-tab

\n

The Clan Chat plugin now has the ability to recolor players that also are on your ignore list.

\n

clan-member-recolored

\n

The "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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add Brimhaven cart traveling to menu entry swapper
  • \n
  • Add Chambers of Xeric personal best tracking to !pb chat command
  • \n
  • The opponent info plugin now gets its known max NPC hitpoints from the wiki
  • \n
\n

Enjoy!

\n

- dekvall

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.a74fa60a.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[117],{395: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

loot-tab

\n

The Clan Chat plugin now has the ability to recolor players that also are on your ignore list.

\n

clan-member-recolored

\n

The "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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add Brimhaven cart traveling to menu entry swapper
  • \n
  • Add Chambers of Xeric personal best tracking to !pb chat command
  • \n
  • The opponent info plugin now gets its known max NPC hitpoints from the wiki
  • \n
\n

Enjoy!

\n

- dekvall

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.ce3dd0bd.chunk.js.map \ No newline at end of file diff --git a/static/js/117.a74fa60a.chunk.js.map b/static/js/117.ce3dd0bd.chunk.js.map similarity index 97% rename from static/js/117.a74fa60a.chunk.js.map rename to static/js/117.ce3dd0bd.chunk.js.map index 61e8262b54..95609af34e 100644 --- a/static/js/117.a74fa60a.chunk.js.map +++ b/static/js/117.ce3dd0bd.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.a74fa60a.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

\\\"loot-tab\\\"

\\n

The Clan Chat plugin now has the ability to recolor players that also are on your ignore list.

\\n

\\\"clan-member-recolored\\\"

\\n

The "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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add Brimhaven cart traveling to menu entry swapper
  • \\n
  • Add Chambers of Xeric personal best tracking to !pb chat command
  • \\n
  • The opponent info plugin now gets its known max NPC hitpoints from the wiki
  • \\n
\\n

Enjoy!

\\n

- dekvall

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.ce3dd0bd.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

\\\"loot-tab\\\"

\\n

The Clan Chat plugin now has the ability to recolor players that also are on your ignore list.

\\n

\\\"clan-member-recolored\\\"

\\n

The "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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add Brimhaven cart traveling to menu entry swapper
  • \\n
  • Add Chambers of Xeric personal best tracking to !pb chat command
  • \\n
  • The opponent info plugin now gets its known max NPC hitpoints from the wiki
  • \\n
\\n

Enjoy!

\\n

- dekvall

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.5cb728a3.chunk.js b/static/js/118.c46f0032.chunk.js similarity index 95% rename from static/js/118.5cb728a3.chunk.js rename to static/js/118.c46f0032.chunk.js index f8c72629e0..234f3bcaae 100644 --- a/static/js/118.5cb728a3.chunk.js +++ b/static/js/118.c46f0032.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[118],{395: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!

\n

In 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Item overlays\u2014such as teleport charges, inventory tags, rune pouch display\u2014now follow\ntheir overlaid item when being dragged.
  • \n
  • The Clan Chat plugin now strips leading\nslashes from your messages when sent through the "Clan" chat tab
  • \n
  • Clue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\nCamp"
  • \n
  • The Last Man Standing info box is now movable
  • \n
  • The Chat Commands plugin now correctly\ntracks your personal best time to complete the Chambers of Xeric
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 7 contributors this release!

\n
Adam (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.5cb728a3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[118],{396: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!

\n

In 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Item overlays\u2014such as teleport charges, inventory tags, rune pouch display\u2014now follow\ntheir overlaid item when being dragged.
  • \n
  • The Clan Chat plugin now strips leading\nslashes from your messages when sent through the "Clan" chat tab
  • \n
  • Clue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\nCamp"
  • \n
  • The Last Man Standing info box is now movable
  • \n
  • The Chat Commands plugin now correctly\ntracks your personal best time to complete the Chambers of Xeric
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 7 contributors this release!

\n
Adam (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.c46f0032.chunk.js.map \ No newline at end of file diff --git a/static/js/118.5cb728a3.chunk.js.map b/static/js/118.c46f0032.chunk.js.map similarity index 97% rename from static/js/118.5cb728a3.chunk.js.map rename to static/js/118.c46f0032.chunk.js.map index 99212c1488..59e67841f8 100644 --- a/static/js/118.5cb728a3.chunk.js.map +++ b/static/js/118.c46f0032.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.5cb728a3.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!

\\n

In 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Item overlays—such as teleport charges, inventory tags, rune pouch display—now follow\\ntheir overlaid item when being dragged.
  • \\n
  • The Clan Chat plugin now strips leading\\nslashes from your messages when sent through the "Clan" chat tab
  • \\n
  • Clue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\\nCamp"
  • \\n
  • The Last Man Standing info box is now movable
  • \\n
  • The Chat Commands plugin now correctly\\ntracks your personal best time to complete the Chambers of Xeric
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 7 contributors this release!

\\n
Adam (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.c46f0032.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!

\\n

In 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Item overlays—such as teleport charges, inventory tags, rune pouch display—now follow\\ntheir overlaid item when being dragged.
  • \\n
  • The Clan Chat plugin now strips leading\\nslashes from your messages when sent through the "Clan" chat tab
  • \\n
  • Clue hints referencing the "Elf Camp" have been updated to refer to what is now the "Iorwerth\\nCamp"
  • \\n
  • The Last Man Standing info box is now movable
  • \\n
  • The Chat Commands plugin now correctly\\ntracks your personal best time to complete the Chambers of Xeric
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 7 contributors this release!

\\n
Adam (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.bbff61ff.chunk.js b/static/js/119.79bd2e9d.chunk.js similarity index 98% rename from static/js/119.bbff61ff.chunk.js rename to static/js/119.79bd2e9d.chunk.js index 2c03990129..dca554f131 100644 --- a/static/js/119.bbff61ff.chunk.js +++ b/static/js/119.79bd2e9d.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[119],{396: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

pploottracker

\n

The 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

oppinfo

\n

The 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.

\n

The CoX scouter plugin now has an option for screenshotting the overlay into the\nclipboard, making it easy to share.

\n

cox

\n

The clue plugin now tells you when you are missing a light source required for\nyour clue.

\n

lightsource

\n

The interface styles plugin now has an option to always used the stacked-stones\narrangement, regardless of client resolution.

\n

stones

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The loottracker now can track drops from the Nightmare
  • \n
  • Fix the Wintertodt plugin erronously sending a notification about being idle\nwhen you are already idle
  • \n
  • Dragging with the inventory grid enabled no longer drags grid cells
  • \n
  • The mouse tooltip position can now be configured to be above the mouse
  • \n
  • Fix imp spawn notifications sometimies not working in Puro-Puro
  • \n
  • The wiki plugin now has an option to make Search the default left click\noption
  • \n
  • The shift anti-drag plugin now also works in the bank
  • \n
  • Various 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
  • \n
  • The imbued heart timer now more reliably works when in combat
  • \n
  • The 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.
  • \n
  • The NPC unaggro plugin can now notify you when the aggression timer expires
  • \n
  • Fix the LMS overlay to be movable
  • \n
  • The custom cusor plugin now allows user-supplied cursors by placing a file\nnamed cursor.png in your .runelite directory
  • \n
  • The dragonfire shield cooldown timer has been updated to use the correct\ntime
  • \n
  • Skilling potions have been added to the item identification plugin
  • \n
  • The twisted league slayer helm is now a recognized slayer item
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
15987632 (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.bbff61ff.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[119],{397: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

pploottracker

\n

The 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

oppinfo

\n

The 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.

\n

The CoX scouter plugin now has an option for screenshotting the overlay into the\nclipboard, making it easy to share.

\n

cox

\n

The clue plugin now tells you when you are missing a light source required for\nyour clue.

\n

lightsource

\n

The interface styles plugin now has an option to always used the stacked-stones\narrangement, regardless of client resolution.

\n

stones

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The loottracker now can track drops from the Nightmare
  • \n
  • Fix the Wintertodt plugin erronously sending a notification about being idle\nwhen you are already idle
  • \n
  • Dragging with the inventory grid enabled no longer drags grid cells
  • \n
  • The mouse tooltip position can now be configured to be above the mouse
  • \n
  • Fix imp spawn notifications sometimies not working in Puro-Puro
  • \n
  • The wiki plugin now has an option to make Search the default left click\noption
  • \n
  • The shift anti-drag plugin now also works in the bank
  • \n
  • Various 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
  • \n
  • The imbued heart timer now more reliably works when in combat
  • \n
  • The 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.
  • \n
  • The NPC unaggro plugin can now notify you when the aggression timer expires
  • \n
  • Fix the LMS overlay to be movable
  • \n
  • The custom cusor plugin now allows user-supplied cursors by placing a file\nnamed cursor.png in your .runelite directory
  • \n
  • The dragonfire shield cooldown timer has been updated to use the correct\ntime
  • \n
  • Skilling potions have been added to the item identification plugin
  • \n
  • The twisted league slayer helm is now a recognized slayer item
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
15987632 (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.79bd2e9d.chunk.js.map \ No newline at end of file diff --git a/static/js/119.bbff61ff.chunk.js.map b/static/js/119.79bd2e9d.chunk.js.map similarity index 99% rename from static/js/119.bbff61ff.chunk.js.map rename to static/js/119.79bd2e9d.chunk.js.map index 767832a401..b54975e69c 100644 --- a/static/js/119.bbff61ff.chunk.js.map +++ b/static/js/119.79bd2e9d.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.bbff61ff.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

\\\"pploottracker\\\"

\\n

The 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

\\\"oppinfo\\\"

\\n

The 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.

\\n

The CoX scouter plugin now has an option for screenshotting the overlay into the\\nclipboard, making it easy to share.

\\n

\\\"cox\\\"

\\n

The clue plugin now tells you when you are missing a light source required for\\nyour clue.

\\n

\\\"lightsource\\\"

\\n

The interface styles plugin now has an option to always used the stacked-stones\\narrangement, regardless of client resolution.

\\n

\\\"stones\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The loottracker now can track drops from the Nightmare
  • \\n
  • Fix the Wintertodt plugin erronously sending a notification about being idle\\nwhen you are already idle
  • \\n
  • Dragging with the inventory grid enabled no longer drags grid cells
  • \\n
  • The mouse tooltip position can now be configured to be above the mouse
  • \\n
  • Fix imp spawn notifications sometimies not working in Puro-Puro
  • \\n
  • The wiki plugin now has an option to make Search the default left click\\noption
  • \\n
  • The shift anti-drag plugin now also works in the bank
  • \\n
  • Various 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
  • \\n
  • The imbued heart timer now more reliably works when in combat
  • \\n
  • The 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.
  • \\n
  • The NPC unaggro plugin can now notify you when the aggression timer expires
  • \\n
  • Fix the LMS overlay to be movable
  • \\n
  • The custom cusor plugin now allows user-supplied cursors by placing a file\\nnamed cursor.png in your .runelite directory
  • \\n
  • The dragonfire shield cooldown timer has been updated to use the correct\\ntime
  • \\n
  • Skilling potions have been added to the item identification plugin
  • \\n
  • The twisted league slayer helm is now a recognized slayer item
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
15987632 (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.79bd2e9d.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

\\\"pploottracker\\\"

\\n

The 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

\\\"oppinfo\\\"

\\n

The 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.

\\n

The CoX scouter plugin now has an option for screenshotting the overlay into the\\nclipboard, making it easy to share.

\\n

\\\"cox\\\"

\\n

The clue plugin now tells you when you are missing a light source required for\\nyour clue.

\\n

\\\"lightsource\\\"

\\n

The interface styles plugin now has an option to always used the stacked-stones\\narrangement, regardless of client resolution.

\\n

\\\"stones\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The loottracker now can track drops from the Nightmare
  • \\n
  • Fix the Wintertodt plugin erronously sending a notification about being idle\\nwhen you are already idle
  • \\n
  • Dragging with the inventory grid enabled no longer drags grid cells
  • \\n
  • The mouse tooltip position can now be configured to be above the mouse
  • \\n
  • Fix imp spawn notifications sometimies not working in Puro-Puro
  • \\n
  • The wiki plugin now has an option to make Search the default left click\\noption
  • \\n
  • The shift anti-drag plugin now also works in the bank
  • \\n
  • Various 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
  • \\n
  • The imbued heart timer now more reliably works when in combat
  • \\n
  • The 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.
  • \\n
  • The NPC unaggro plugin can now notify you when the aggression timer expires
  • \\n
  • Fix the LMS overlay to be movable
  • \\n
  • The custom cusor plugin now allows user-supplied cursors by placing a file\\nnamed cursor.png in your .runelite directory
  • \\n
  • The dragonfire shield cooldown timer has been updated to use the correct\\ntime
  • \\n
  • Skilling potions have been added to the item identification plugin
  • \\n
  • The twisted league slayer helm is now a recognized slayer item
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
15987632 (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.d7e9e6ce.chunk.js b/static/js/12.490f3107.chunk.js similarity index 98% rename from static/js/12.d7e9e6ce.chunk.js rename to static/js/12.490f3107.chunk.js index dceb5aa29c..9c1dad80f4 100644 --- a/static/js/12.d7e9e6ce.chunk.js +++ b/static/js/12.490f3107.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){},290: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))))}},291: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"}]},453:function(e,i,t){"use strict";t.r(i);var n=t(0),r=t(126),s=t(290),a=t(291),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.d7e9e6ce.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){},291: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))))}},292: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"}]},455:function(e,i,t){"use strict";t.r(i);var n=t(0),r=t(126),s=t(291),a=t(292),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.490f3107.chunk.js.map \ No newline at end of file diff --git a/static/js/12.d7e9e6ce.chunk.js.map b/static/js/12.490f3107.chunk.js.map similarity index 99% rename from static/js/12.d7e9e6ce.chunk.js.map rename to static/js/12.490f3107.chunk.js.map index 8c2de421c3..a5a4f0d3b4 100644 --- a/static/js/12.d7e9e6ce.chunk.js.map +++ b/static/js/12.490f3107.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.d7e9e6ce.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 {title}\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

Features

\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.490f3107.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 {title}\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

Features

\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.6bdb867f.chunk.js b/static/js/120.16e25e66.chunk.js similarity index 97% rename from static/js/120.6bdb867f.chunk.js rename to static/js/120.16e25e66.chunk.js index f201c19d80..dc6b628671 100644 --- a/static/js/120.6bdb867f.chunk.js +++ b/static/js/120.16e25e66.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[120],{397: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

getags

\n

The world map now has tooltips for mining site locations which shows which rocks are there:

\n

mining

\n

The blast furnace overlay now includes the time until the coffer runs out of GP:

\n

blastfurnace

\n

The 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.

\n

The plugin hub has a new webpage which shows all of the plugins available on it.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • GE buy limits are now automatically pulled from the wiki
  • \n
  • The item stats plugin can now show item stats when hovering items in the bank
  • \n
  • The pensive emoji has been added to the emoji plugin (V_V)
  • \n
  • Item price tooltips now work in the seed vault
  • \n
  • Inventory tags now has 2 additional tag groups
  • \n
  • Fix the loottrackker show/hide ignored loot button
  • \n
  • Fix the always stack resizable stones interface styles option
  • \n
  • Add bounty hunter (rogue) and LMS chat commands
  • \n
  • Fix incorrectly hiding salamander attack styles with the attackstyles plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
Adam (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.6bdb867f.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[120],{398: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

getags

\n

The world map now has tooltips for mining site locations which shows which rocks are there:

\n

mining

\n

The blast furnace overlay now includes the time until the coffer runs out of GP:

\n

blastfurnace

\n

The 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.

\n

The plugin hub has a new webpage which shows all of the plugins available on it.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • GE buy limits are now automatically pulled from the wiki
  • \n
  • The item stats plugin can now show item stats when hovering items in the bank
  • \n
  • The pensive emoji has been added to the emoji plugin (V_V)
  • \n
  • Item price tooltips now work in the seed vault
  • \n
  • Inventory tags now has 2 additional tag groups
  • \n
  • Fix the loottrackker show/hide ignored loot button
  • \n
  • Fix the always stack resizable stones interface styles option
  • \n
  • Add bounty hunter (rogue) and LMS chat commands
  • \n
  • Fix incorrectly hiding salamander attack styles with the attackstyles plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
Adam (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.16e25e66.chunk.js.map \ No newline at end of file diff --git a/static/js/120.6bdb867f.chunk.js.map b/static/js/120.16e25e66.chunk.js.map similarity index 98% rename from static/js/120.6bdb867f.chunk.js.map rename to static/js/120.16e25e66.chunk.js.map index 38902af702..f465bf2069 100644 --- a/static/js/120.6bdb867f.chunk.js.map +++ b/static/js/120.16e25e66.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.6bdb867f.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

\\\"getags\\\"

\\n

The world map now has tooltips for mining site locations which shows which rocks are there:

\\n

\\\"mining\\\"

\\n

The blast furnace overlay now includes the time until the coffer runs out of GP:

\\n

\\\"blastfurnace\\\"

\\n

The 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.

\\n

The plugin hub has a new webpage which shows all of the plugins available on it.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • GE buy limits are now automatically pulled from the wiki
  • \\n
  • The item stats plugin can now show item stats when hovering items in the bank
  • \\n
  • The pensive emoji has been added to the emoji plugin (V_V)
  • \\n
  • Item price tooltips now work in the seed vault
  • \\n
  • Inventory tags now has 2 additional tag groups
  • \\n
  • Fix the loottrackker show/hide ignored loot button
  • \\n
  • Fix the always stack resizable stones interface styles option
  • \\n
  • Add bounty hunter (rogue) and LMS chat commands
  • \\n
  • Fix incorrectly hiding salamander attack styles with the attackstyles plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
Adam (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.16e25e66.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

\\\"getags\\\"

\\n

The world map now has tooltips for mining site locations which shows which rocks are there:

\\n

\\\"mining\\\"

\\n

The blast furnace overlay now includes the time until the coffer runs out of GP:

\\n

\\\"blastfurnace\\\"

\\n

The 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.

\\n

The plugin hub has a new webpage which shows all of the plugins available on it.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • GE buy limits are now automatically pulled from the wiki
  • \\n
  • The item stats plugin can now show item stats when hovering items in the bank
  • \\n
  • The pensive emoji has been added to the emoji plugin (V_V)
  • \\n
  • Item price tooltips now work in the seed vault
  • \\n
  • Inventory tags now has 2 additional tag groups
  • \\n
  • Fix the loottrackker show/hide ignored loot button
  • \\n
  • Fix the always stack resizable stones interface styles option
  • \\n
  • Add bounty hunter (rogue) and LMS chat commands
  • \\n
  • Fix incorrectly hiding salamander attack styles with the attackstyles plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
Adam (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.53d36392.chunk.js b/static/js/121.ad0efbf8.chunk.js similarity index 98% rename from static/js/121.53d36392.chunk.js rename to static/js/121.ad0efbf8.chunk.js index 19ab37cb54..c62c30f0de 100644 --- a/static/js/121.53d36392.chunk.js +++ b/static/js/121.ad0efbf8.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[121],{398: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

Bank tag tabs tab demonstration

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The "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.
  • \n
  • Plugin Hub plugins\nare now sorted by display name and are ordered in a more useful way when searched
  • \n
  • RuneLite now records your boss kill count and personal bests for the Chat Commands\nplugin when reading your POH\nadventurer\'s log
  • \n
  • The Item Charges plugin now shows\ncharges for your amulets of bounty and amulets of chemistry
  • \n
  • Numerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\nplugin\'s narrowing feature
  • \n
  • Following 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
  • \n
  • Mouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\noption
  • \n
  • Mounted Mythical capes now display an icon with the Player-owned House\nplugin
  • \n
  • A bug making it difficult to manually type new values into config text boxes with unit suffixes\nhas been fixed
  • \n
  • The Item Stats equipment bonus tooltips no\nlonger confuse the attack speed difference for the attack stab difference
  • \n
  • Drift net rewards are now tracked in the Loot Tracker\nplugin
  • \n
  • The Agility plugin now uses your ingame\ngoal to determine laps to level
  • \n
  • Your active slayer task is canceled when you\nleave the Inferno
  • \n
  • Guthix rests now have their xp values displayed in the Skill Calculator\nplugin
  • \n
  • Impling jars can now be labeled by the Item Identification\nplugin
  • \n
  • The Mining plugin learned the respawn times of\nWeiss salts
  • \n
  • The Report Button plugin can now show\nyour login time as a measure of game ticks
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.53d36392.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[121],{399: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

Bank tag tabs tab demonstration

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The "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.
  • \n
  • Plugin Hub plugins\nare now sorted by display name and are ordered in a more useful way when searched
  • \n
  • RuneLite now records your boss kill count and personal bests for the Chat Commands\nplugin when reading your POH\nadventurer\'s log
  • \n
  • The Item Charges plugin now shows\ncharges for your amulets of bounty and amulets of chemistry
  • \n
  • Numerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\nplugin\'s narrowing feature
  • \n
  • Following 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
  • \n
  • Mouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\noption
  • \n
  • Mounted Mythical capes now display an icon with the Player-owned House\nplugin
  • \n
  • A bug making it difficult to manually type new values into config text boxes with unit suffixes\nhas been fixed
  • \n
  • The Item Stats equipment bonus tooltips no\nlonger confuse the attack speed difference for the attack stab difference
  • \n
  • Drift net rewards are now tracked in the Loot Tracker\nplugin
  • \n
  • The Agility plugin now uses your ingame\ngoal to determine laps to level
  • \n
  • Your active slayer task is canceled when you\nleave the Inferno
  • \n
  • Guthix rests now have their xp values displayed in the Skill Calculator\nplugin
  • \n
  • Impling jars can now be labeled by the Item Identification\nplugin
  • \n
  • The Mining plugin learned the respawn times of\nWeiss salts
  • \n
  • The Report Button plugin can now show\nyour login time as a measure of game ticks
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.ad0efbf8.chunk.js.map \ No newline at end of file diff --git a/static/js/121.53d36392.chunk.js.map b/static/js/121.ad0efbf8.chunk.js.map similarity index 99% rename from static/js/121.53d36392.chunk.js.map rename to static/js/121.ad0efbf8.chunk.js.map index 2159ba21da..00109cbfe7 100644 --- a/static/js/121.53d36392.chunk.js.map +++ b/static/js/121.ad0efbf8.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.53d36392.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

\\\"Bank

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The "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.
  • \\n
  • Plugin Hub plugins\\nare now sorted by display name and are ordered in a more useful way when searched
  • \\n
  • RuneLite now records your boss kill count and personal bests for the Chat Commands\\nplugin when reading your POH\\nadventurer's log
  • \\n
  • The Item Charges plugin now shows\\ncharges for your amulets of bounty and amulets of chemistry
  • \\n
  • Numerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\\nplugin's narrowing feature
  • \\n
  • Following 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
  • \\n
  • Mouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\\noption
  • \\n
  • Mounted Mythical capes now display an icon with the Player-owned House\\nplugin
  • \\n
  • A bug making it difficult to manually type new values into config text boxes with unit suffixes\\nhas been fixed
  • \\n
  • The Item Stats equipment bonus tooltips no\\nlonger confuse the attack speed difference for the attack stab difference
  • \\n
  • Drift net rewards are now tracked in the Loot Tracker\\nplugin
  • \\n
  • The Agility plugin now uses your ingame\\ngoal to determine laps to level
  • \\n
  • Your active slayer task is canceled when you\\nleave the Inferno
  • \\n
  • Guthix rests now have their xp values displayed in the Skill Calculator\\nplugin
  • \\n
  • Impling jars can now be labeled by the Item Identification\\nplugin
  • \\n
  • The Mining plugin learned the respawn times of\\nWeiss salts
  • \\n
  • The Report Button plugin can now show\\nyour login time as a measure of game ticks
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.ad0efbf8.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

\\\"Bank

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The "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.
  • \\n
  • Plugin Hub plugins\\nare now sorted by display name and are ordered in a more useful way when searched
  • \\n
  • RuneLite now records your boss kill count and personal bests for the Chat Commands\\nplugin when reading your POH\\nadventurer's log
  • \\n
  • The Item Charges plugin now shows\\ncharges for your amulets of bounty and amulets of chemistry
  • \\n
  • Numerous hot-cold clues have had their locations made more precise to improve the Clue Scroll\\nplugin's narrowing feature
  • \\n
  • Following 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
  • \\n
  • Mouse tooltips no longer go off-screen or overlap the mouse cursor when using the "Above cursor"\\noption
  • \\n
  • Mounted Mythical capes now display an icon with the Player-owned House\\nplugin
  • \\n
  • A bug making it difficult to manually type new values into config text boxes with unit suffixes\\nhas been fixed
  • \\n
  • The Item Stats equipment bonus tooltips no\\nlonger confuse the attack speed difference for the attack stab difference
  • \\n
  • Drift net rewards are now tracked in the Loot Tracker\\nplugin
  • \\n
  • The Agility plugin now uses your ingame\\ngoal to determine laps to level
  • \\n
  • Your active slayer task is canceled when you\\nleave the Inferno
  • \\n
  • Guthix rests now have their xp values displayed in the Skill Calculator\\nplugin
  • \\n
  • Impling jars can now be labeled by the Item Identification\\nplugin
  • \\n
  • The Mining plugin learned the respawn times of\\nWeiss salts
  • \\n
  • The Report Button plugin can now show\\nyour login time as a measure of game ticks
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.27ed9bc1.chunk.js b/static/js/122.867c12a6.chunk.js similarity index 98% rename from static/js/122.27ed9bc1.chunk.js rename to static/js/122.867c12a6.chunk.js index f7769dcb33..f6b0e17552 100644 --- a/static/js/122.27ed9bc1.chunk.js +++ b/static/js/122.867c12a6.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[122],{399: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

dps

\n

A drift net fishing plugin was added which shows the status of your nets and\nhighlights any fish you haven\'t tagged

\n

driftnet

\n

The interface styles plugin has an additional new 2006 interface style

\n

2006style

\n

The friend notes plugin can now display an icon next to friends who have notes

\n

friendnotes

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the music plugin sliders sometimes not working
  • \n
  • The 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
  • \n
  • Extra mouse buttons (4+) are now prevented from clicking in-game
  • \n
  • The raids scout overlay now includes the world\'s region (US/GB/AU/DE)
  • \n
  • Fix the agility overlay laps remaining to account for agility pyramid bonus xp
  • \n
  • Add Lovakite rocks to the mining respawn timer
  • \n
  • Add Nightmare dungeon and boss areas to Discord game events and skybox
  • \n
  • Add menu swap for essence mine teleport
  • \n
  • Add cannon spot for Lizard Shamans and Black Knights
  • \n
  • Fix the venom hitsplat image in the poison infobox
  • \n
  • Add deposit boxes to shift-click deposit
  • \n
  • Add tooltips to the Prifddinas mining sites on the world map
  • \n
  • The custom cursor plugin now has an option to set your cursor to the weapon\nyou have equipped
  • \n
  • The chatfilter can now also filter messages by player name
  • \n
  • Add world map teleport targets to wilderness levers
  • \n
  • Ground items now supports quantity thresholds, eg: chaos rune>100
  • \n
  • The object indicators plugin now supports per-indicator colors
  • \n
  • The time tracking plugin\'s timers are now sorted in ascending order, and have\na warning color when they are low
  • \n
  • The Herbiboar plugin can now indicate the guaranteed tracks
  • \n
  • The Sarachnis respawn timer has been updated to 10 seconds
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 25 contributors this release!

\n
Adam (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.27ed9bc1.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[122],{400: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

dps

\n

A drift net fishing plugin was added which shows the status of your nets and\nhighlights any fish you haven\'t tagged

\n

driftnet

\n

The interface styles plugin has an additional new 2006 interface style

\n

2006style

\n

The friend notes plugin can now display an icon next to friends who have notes

\n

friendnotes

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix the music plugin sliders sometimes not working
  • \n
  • The 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
  • \n
  • Extra mouse buttons (4+) are now prevented from clicking in-game
  • \n
  • The raids scout overlay now includes the world\'s region (US/GB/AU/DE)
  • \n
  • Fix the agility overlay laps remaining to account for agility pyramid bonus xp
  • \n
  • Add Lovakite rocks to the mining respawn timer
  • \n
  • Add Nightmare dungeon and boss areas to Discord game events and skybox
  • \n
  • Add menu swap for essence mine teleport
  • \n
  • Add cannon spot for Lizard Shamans and Black Knights
  • \n
  • Fix the venom hitsplat image in the poison infobox
  • \n
  • Add deposit boxes to shift-click deposit
  • \n
  • Add tooltips to the Prifddinas mining sites on the world map
  • \n
  • The custom cursor plugin now has an option to set your cursor to the weapon\nyou have equipped
  • \n
  • The chatfilter can now also filter messages by player name
  • \n
  • Add world map teleport targets to wilderness levers
  • \n
  • Ground items now supports quantity thresholds, eg: chaos rune>100
  • \n
  • The object indicators plugin now supports per-indicator colors
  • \n
  • The time tracking plugin\'s timers are now sorted in ascending order, and have\na warning color when they are low
  • \n
  • The Herbiboar plugin can now indicate the guaranteed tracks
  • \n
  • The Sarachnis respawn timer has been updated to 10 seconds
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 25 contributors this release!

\n
Adam (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.867c12a6.chunk.js.map \ No newline at end of file diff --git a/static/js/122.27ed9bc1.chunk.js.map b/static/js/122.867c12a6.chunk.js.map similarity index 99% rename from static/js/122.27ed9bc1.chunk.js.map rename to static/js/122.867c12a6.chunk.js.map index 43ef7cc5f8..888af99962 100644 --- a/static/js/122.27ed9bc1.chunk.js.map +++ b/static/js/122.867c12a6.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.27ed9bc1.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

\\\"dps\\\"

\\n

A drift net fishing plugin was added which shows the status of your nets and\\nhighlights any fish you haven't tagged

\\n

\\\"driftnet\\\"

\\n

The interface styles plugin has an additional new 2006 interface style

\\n

\\\"2006style\\\"

\\n

The friend notes plugin can now display an icon next to friends who have notes

\\n

\\\"friendnotes\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the music plugin sliders sometimes not working
  • \\n
  • The 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
  • \\n
  • Extra mouse buttons (4+) are now prevented from clicking in-game
  • \\n
  • The raids scout overlay now includes the world's region (US/GB/AU/DE)
  • \\n
  • Fix the agility overlay laps remaining to account for agility pyramid bonus xp
  • \\n
  • Add Lovakite rocks to the mining respawn timer
  • \\n
  • Add Nightmare dungeon and boss areas to Discord game events and skybox
  • \\n
  • Add menu swap for essence mine teleport
  • \\n
  • Add cannon spot for Lizard Shamans and Black Knights
  • \\n
  • Fix the venom hitsplat image in the poison infobox
  • \\n
  • Add deposit boxes to shift-click deposit
  • \\n
  • Add tooltips to the Prifddinas mining sites on the world map
  • \\n
  • The custom cursor plugin now has an option to set your cursor to the weapon\\nyou have equipped
  • \\n
  • The chatfilter can now also filter messages by player name
  • \\n
  • Add world map teleport targets to wilderness levers
  • \\n
  • Ground items now supports quantity thresholds, eg: chaos rune>100
  • \\n
  • The object indicators plugin now supports per-indicator colors
  • \\n
  • The time tracking plugin's timers are now sorted in ascending order, and have\\na warning color when they are low
  • \\n
  • The Herbiboar plugin can now indicate the guaranteed tracks
  • \\n
  • The Sarachnis respawn timer has been updated to 10 seconds
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 25 contributors this release!

\\n
Adam (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.867c12a6.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

\\\"dps\\\"

\\n

A drift net fishing plugin was added which shows the status of your nets and\\nhighlights any fish you haven't tagged

\\n

\\\"driftnet\\\"

\\n

The interface styles plugin has an additional new 2006 interface style

\\n

\\\"2006style\\\"

\\n

The friend notes plugin can now display an icon next to friends who have notes

\\n

\\\"friendnotes\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix the music plugin sliders sometimes not working
  • \\n
  • The 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
  • \\n
  • Extra mouse buttons (4+) are now prevented from clicking in-game
  • \\n
  • The raids scout overlay now includes the world's region (US/GB/AU/DE)
  • \\n
  • Fix the agility overlay laps remaining to account for agility pyramid bonus xp
  • \\n
  • Add Lovakite rocks to the mining respawn timer
  • \\n
  • Add Nightmare dungeon and boss areas to Discord game events and skybox
  • \\n
  • Add menu swap for essence mine teleport
  • \\n
  • Add cannon spot for Lizard Shamans and Black Knights
  • \\n
  • Fix the venom hitsplat image in the poison infobox
  • \\n
  • Add deposit boxes to shift-click deposit
  • \\n
  • Add tooltips to the Prifddinas mining sites on the world map
  • \\n
  • The custom cursor plugin now has an option to set your cursor to the weapon\\nyou have equipped
  • \\n
  • The chatfilter can now also filter messages by player name
  • \\n
  • Add world map teleport targets to wilderness levers
  • \\n
  • Ground items now supports quantity thresholds, eg: chaos rune>100
  • \\n
  • The object indicators plugin now supports per-indicator colors
  • \\n
  • The time tracking plugin's timers are now sorted in ascending order, and have\\na warning color when they are low
  • \\n
  • The Herbiboar plugin can now indicate the guaranteed tracks
  • \\n
  • The Sarachnis respawn timer has been updated to 10 seconds
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 25 contributors this release!

\\n
Adam (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.698a1837.chunk.js b/static/js/123.00eab965.chunk.js similarity index 99% rename from static/js/123.698a1837.chunk.js rename to static/js/123.00eab965.chunk.js index acf0897af5..290ccbbc55 100644 --- a/static/js/123.698a1837.chunk.js +++ b/static/js/123.00eab965.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[123],{400: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

Resizing RuneLite overlays

\n

The 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

Resizing infobox container to change wrap count

\n

The 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

Grand Exchange fuzzy searching

\n

The 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

Prayer orb time remaining

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Bank searches are now more responsive with the\nBank plugin active
  • \n
  • Players 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
  • \n
  • Support has been added to various plugins for gilded axe and pickaxe animations
  • \n
  • Clue Scrolls referencing Immenizz or\nvambraces are now properly recognized again since their ingame wording had changed last week
  • \n
  • The World Hopper plugin no longer tries\nto hop into full worlds when hopping up/down
  • \n
  • Screenshots are no longer taken of your\nown death with the Screenshot Friend Deaths option enabled
  • \n
  • The Music and\nCamera plugins now display tooltips showing\nthe slider value when using the ingame volume and camera zoom sliders
  • \n
  • The Camera plugin has gained options to invert\nthe camera pitch and yaw mouse controls
  • \n
  • The Music plugin now has an option to mute\nprayer sounds
  • \n
  • When highlighting players with the Player Indicators\nplugin, the "Walk here" menu entry\nis now also highlighted
  • \n
  • An option to hide the precise combat level has been added to the Combat Level\nplugin
  • \n
  • The Agility plugin now highlights the stick\non the Werewolf agility course
  • \n
  • The 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
  • \n
  • The Quest List plugin no longer causes\nerrors when enabling it after already being logged in
  • \n
  • The 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
  • \n
  • The Nightmare Zone and\nDiscord plugins no longer think you are in\nthe Nightmare Zone when fighting the King Black Dragon
  • \n
  • Slayer tasks assigned to be completed within the Jormungand\'s Prison are now properly recognized\nby the Slayer plugin
  • \n
  • The Run Energy plugin learned the new\ngraceful set energy recovery mechanics from the update in January
  • \n
  • You are no longer considered to be "not woodcutting" by the Woodcutting\nplugin when there is a long pause between\nlogs being chopped
  • \n
  • The Boosts Information plugin no\nlonger shows the restore overlay when it does not show any visible boosts
  • \n
  • The 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
  • \n
  • The Items Kept on Death plugin\nlearned the updated Eternal teleport crystal value
  • \n
  • Magic trees now animate correctly with the GPU plugin on
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 31 contributors this release!

\n
AaronPoon (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.698a1837.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[123],{401: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

Resizing RuneLite overlays

\n

The 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

Resizing infobox container to change wrap count

\n

The 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

Grand Exchange fuzzy searching

\n

The 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

Prayer orb time remaining

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Bank searches are now more responsive with the\nBank plugin active
  • \n
  • Players 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
  • \n
  • Support has been added to various plugins for gilded axe and pickaxe animations
  • \n
  • Clue Scrolls referencing Immenizz or\nvambraces are now properly recognized again since their ingame wording had changed last week
  • \n
  • The World Hopper plugin no longer tries\nto hop into full worlds when hopping up/down
  • \n
  • Screenshots are no longer taken of your\nown death with the Screenshot Friend Deaths option enabled
  • \n
  • The Music and\nCamera plugins now display tooltips showing\nthe slider value when using the ingame volume and camera zoom sliders
  • \n
  • The Camera plugin has gained options to invert\nthe camera pitch and yaw mouse controls
  • \n
  • The Music plugin now has an option to mute\nprayer sounds
  • \n
  • When highlighting players with the Player Indicators\nplugin, the "Walk here" menu entry\nis now also highlighted
  • \n
  • An option to hide the precise combat level has been added to the Combat Level\nplugin
  • \n
  • The Agility plugin now highlights the stick\non the Werewolf agility course
  • \n
  • The 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
  • \n
  • The Quest List plugin no longer causes\nerrors when enabling it after already being logged in
  • \n
  • The 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
  • \n
  • The Nightmare Zone and\nDiscord plugins no longer think you are in\nthe Nightmare Zone when fighting the King Black Dragon
  • \n
  • Slayer tasks assigned to be completed within the Jormungand\'s Prison are now properly recognized\nby the Slayer plugin
  • \n
  • The Run Energy plugin learned the new\ngraceful set energy recovery mechanics from the update in January
  • \n
  • You are no longer considered to be "not woodcutting" by the Woodcutting\nplugin when there is a long pause between\nlogs being chopped
  • \n
  • The Boosts Information plugin no\nlonger shows the restore overlay when it does not show any visible boosts
  • \n
  • The 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
  • \n
  • The Items Kept on Death plugin\nlearned the updated Eternal teleport crystal value
  • \n
  • Magic trees now animate correctly with the GPU plugin on
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 31 contributors this release!

\n
AaronPoon (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.00eab965.chunk.js.map \ No newline at end of file diff --git a/static/js/123.698a1837.chunk.js.map b/static/js/123.00eab965.chunk.js.map similarity index 99% rename from static/js/123.698a1837.chunk.js.map rename to static/js/123.00eab965.chunk.js.map index cdc650d21e..f03856e16d 100644 --- a/static/js/123.698a1837.chunk.js.map +++ b/static/js/123.00eab965.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.698a1837.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

\\\"Resizing

\\n

The 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

\\\"Resizing

\\n

The 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

\\\"Grand

\\n

The 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

\\\"Prayer

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Bank searches are now more responsive with the\\nBank plugin active
  • \\n
  • Players 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
  • \\n
  • Support has been added to various plugins for gilded axe and pickaxe animations
  • \\n
  • Clue Scrolls referencing Immenizz or\\nvambraces are now properly recognized again since their ingame wording had changed last week
  • \\n
  • The World Hopper plugin no longer tries\\nto hop into full worlds when hopping up/down
  • \\n
  • Screenshots are no longer taken of your\\nown death with the Screenshot Friend Deaths option enabled
  • \\n
  • The Music and\\nCamera plugins now display tooltips showing\\nthe slider value when using the ingame volume and camera zoom sliders
  • \\n
  • The Camera plugin has gained options to invert\\nthe camera pitch and yaw mouse controls
  • \\n
  • The Music plugin now has an option to mute\\nprayer sounds
  • \\n
  • When highlighting players with the Player Indicators\\nplugin, the "Walk here" menu entry\\nis now also highlighted
  • \\n
  • An option to hide the precise combat level has been added to the Combat Level\\nplugin
  • \\n
  • The Agility plugin now highlights the stick\\non the Werewolf agility course
  • \\n
  • The 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
  • \\n
  • The Quest List plugin no longer causes\\nerrors when enabling it after already being logged in
  • \\n
  • The 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
  • \\n
  • The Nightmare Zone and\\nDiscord plugins no longer think you are in\\nthe Nightmare Zone when fighting the King Black Dragon
  • \\n
  • Slayer tasks assigned to be completed within the Jormungand's Prison are now properly recognized\\nby the Slayer plugin
  • \\n
  • The Run Energy plugin learned the new\\ngraceful set energy recovery mechanics from the update in January
  • \\n
  • You are no longer considered to be "not woodcutting" by the Woodcutting\\nplugin when there is a long pause between\\nlogs being chopped
  • \\n
  • The Boosts Information plugin no\\nlonger shows the restore overlay when it does not show any visible boosts
  • \\n
  • The 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
  • \\n
  • The Items Kept on Death plugin\\nlearned the updated Eternal teleport crystal value
  • \\n
  • Magic trees now animate correctly with the GPU plugin on
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 31 contributors this release!

\\n
AaronPoon (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.00eab965.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

\\\"Resizing

\\n

The 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

\\\"Resizing

\\n

The 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

\\\"Grand

\\n

The 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

\\\"Prayer

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Bank searches are now more responsive with the\\nBank plugin active
  • \\n
  • Players 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
  • \\n
  • Support has been added to various plugins for gilded axe and pickaxe animations
  • \\n
  • Clue Scrolls referencing Immenizz or\\nvambraces are now properly recognized again since their ingame wording had changed last week
  • \\n
  • The World Hopper plugin no longer tries\\nto hop into full worlds when hopping up/down
  • \\n
  • Screenshots are no longer taken of your\\nown death with the Screenshot Friend Deaths option enabled
  • \\n
  • The Music and\\nCamera plugins now display tooltips showing\\nthe slider value when using the ingame volume and camera zoom sliders
  • \\n
  • The Camera plugin has gained options to invert\\nthe camera pitch and yaw mouse controls
  • \\n
  • The Music plugin now has an option to mute\\nprayer sounds
  • \\n
  • When highlighting players with the Player Indicators\\nplugin, the "Walk here" menu entry\\nis now also highlighted
  • \\n
  • An option to hide the precise combat level has been added to the Combat Level\\nplugin
  • \\n
  • The Agility plugin now highlights the stick\\non the Werewolf agility course
  • \\n
  • The 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
  • \\n
  • The Quest List plugin no longer causes\\nerrors when enabling it after already being logged in
  • \\n
  • The 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
  • \\n
  • The Nightmare Zone and\\nDiscord plugins no longer think you are in\\nthe Nightmare Zone when fighting the King Black Dragon
  • \\n
  • Slayer tasks assigned to be completed within the Jormungand's Prison are now properly recognized\\nby the Slayer plugin
  • \\n
  • The Run Energy plugin learned the new\\ngraceful set energy recovery mechanics from the update in January
  • \\n
  • You are no longer considered to be "not woodcutting" by the Woodcutting\\nplugin when there is a long pause between\\nlogs being chopped
  • \\n
  • The Boosts Information plugin no\\nlonger shows the restore overlay when it does not show any visible boosts
  • \\n
  • The 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
  • \\n
  • The Items Kept on Death plugin\\nlearned the updated Eternal teleport crystal value
  • \\n
  • Magic trees now animate correctly with the GPU plugin on
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 31 contributors this release!

\\n
AaronPoon (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.c1bd1575.chunk.js b/static/js/124.64d8a114.chunk.js similarity index 98% rename from static/js/124.c1bd1575.chunk.js rename to static/js/124.64d8a114.chunk.js index f58d7abe62..b8ffb1cbdc 100644 --- a/static/js/124.c1bd1575.chunk.js +++ b/static/js/124.64d8a114.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[124],{401: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.

\n

The 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

hiscores

\n

Divine Bastion and Battlemage potions have had timers added, and have been added\nto the items stats and item identification plugins.

\n

divine

\n

If 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.

\n

Users 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.

\n

The 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.

\n

A 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The time tracking plugin timers now have an option to automatically loop
  • \n
  • The idle notifier now works when enchanting bolts
  • \n
  • Laps per hour has been added to the agility session overlay
  • \n
  • Item stats now show on the in-bank equipment interface
  • \n
  • Fix the chat notifier Highlight own name setting to correctly work with\nplayers who have spaces in their names
  • \n
  • The world hopper quickhop feature now has an option to only hop to worlds in a\nspecific region
  • \n
  • The bank plugin now has an option to allow entering your bank pin with the keyboard
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
15987632 (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.c1bd1575.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[124],{402: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.

\n

The 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

hiscores

\n

Divine Bastion and Battlemage potions have had timers added, and have been added\nto the items stats and item identification plugins.

\n

divine

\n

If 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.

\n

Users 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.

\n

The 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.

\n

A 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The time tracking plugin timers now have an option to automatically loop
  • \n
  • The idle notifier now works when enchanting bolts
  • \n
  • Laps per hour has been added to the agility session overlay
  • \n
  • Item stats now show on the in-bank equipment interface
  • \n
  • Fix the chat notifier Highlight own name setting to correctly work with\nplayers who have spaces in their names
  • \n
  • The world hopper quickhop feature now has an option to only hop to worlds in a\nspecific region
  • \n
  • The bank plugin now has an option to allow entering your bank pin with the keyboard
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
15987632 (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.64d8a114.chunk.js.map \ No newline at end of file diff --git a/static/js/124.c1bd1575.chunk.js.map b/static/js/124.64d8a114.chunk.js.map similarity index 99% rename from static/js/124.c1bd1575.chunk.js.map rename to static/js/124.64d8a114.chunk.js.map index 416f929058..f05fa4e3ed 100644 --- a/static/js/124.c1bd1575.chunk.js.map +++ b/static/js/124.64d8a114.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.c1bd1575.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.

\\n

The 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

\\\"hiscores\\\"

\\n

Divine Bastion and Battlemage potions have had timers added, and have been added\\nto the items stats and item identification plugins.

\\n

\\\"divine\\\"

\\n

If 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.

\\n

Users 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.

\\n

The 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.

\\n

A 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The time tracking plugin timers now have an option to automatically loop
  • \\n
  • The idle notifier now works when enchanting bolts
  • \\n
  • Laps per hour has been added to the agility session overlay
  • \\n
  • Item stats now show on the in-bank equipment interface
  • \\n
  • Fix the chat notifier Highlight own name setting to correctly work with\\nplayers who have spaces in their names
  • \\n
  • The world hopper quickhop feature now has an option to only hop to worlds in a\\nspecific region
  • \\n
  • The bank plugin now has an option to allow entering your bank pin with the keyboard
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
15987632 (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.64d8a114.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.

\\n

The 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

\\\"hiscores\\\"

\\n

Divine Bastion and Battlemage potions have had timers added, and have been added\\nto the items stats and item identification plugins.

\\n

\\\"divine\\\"

\\n

If 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.

\\n

Users 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.

\\n

The 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.

\\n

A 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The time tracking plugin timers now have an option to automatically loop
  • \\n
  • The idle notifier now works when enchanting bolts
  • \\n
  • Laps per hour has been added to the agility session overlay
  • \\n
  • Item stats now show on the in-bank equipment interface
  • \\n
  • Fix the chat notifier Highlight own name setting to correctly work with\\nplayers who have spaces in their names
  • \\n
  • The world hopper quickhop feature now has an option to only hop to worlds in a\\nspecific region
  • \\n
  • The bank plugin now has an option to allow entering your bank pin with the keyboard
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
15987632 (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.b7e6895b.chunk.js b/static/js/125.013abb3a.chunk.js similarity index 98% rename from static/js/125.b7e6895b.chunk.js rename to static/js/125.013abb3a.chunk.js index b9ba5fbad4..159b0f94d7 100644 --- a/static/js/125.b7e6895b.chunk.js +++ b/static/js/125.013abb3a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[125],{402: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

GPU enabled on MacOS

\n

The 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

Configurable XP tracker labels

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • We 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
  • \n
  • The Chambers of Xeric plugin now continues to scout\nunknown rooms when loading new areas
  • \n
  • The Loot Tracker plugin can now hide unwanted loot events
  • \n
  • You can now right-click chat messages to copy them to your clipboard using the Chat History\nplugin
  • \n
  • Clue scrolls will now always stack when recorded in the Loot Tracker\nplugin
  • \n
  • The World Map plugin has seen several additions, such as\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses
  • \n
  • Barbarian fish have been added to the agility skill\ncalculator
  • \n
  • The ending door of the penguin agility course is now highlighted via the Agility\nplugin
  • \n
  • Teleblock timers are now correctly added when playing with the\ntransparent chatbox enabled
  • \n
  • The Loot Tracker plugin now has options to display chat\nmessages after NPC and/or PVP kills
  • \n
  • Some clue scroll locations and descriptions have been updated
  • \n
  • A bug was fixed causing the ground items menu color to sometimes not match the overlay color
  • \n
  • An acorn emoji has been added to the Emoji plugin
  • \n
  • The Item Stats plugin has learned the correct healing amount\nfor castle wars bandages while wearing the castle wars bracelet
  • \n
  • New POH icons have been added for Weiss and Troll\nstronghold teleport portals
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.b7e6895b.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[125],{403: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

GPU enabled on MacOS

\n

The 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

Configurable XP tracker labels

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • We 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
  • \n
  • The Chambers of Xeric plugin now continues to scout\nunknown rooms when loading new areas
  • \n
  • The Loot Tracker plugin can now hide unwanted loot events
  • \n
  • You can now right-click chat messages to copy them to your clipboard using the Chat History\nplugin
  • \n
  • Clue scrolls will now always stack when recorded in the Loot Tracker\nplugin
  • \n
  • The World Map plugin has seen several additions, such as\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses
  • \n
  • Barbarian fish have been added to the agility skill\ncalculator
  • \n
  • The ending door of the penguin agility course is now highlighted via the Agility\nplugin
  • \n
  • Teleblock timers are now correctly added when playing with the\ntransparent chatbox enabled
  • \n
  • The Loot Tracker plugin now has options to display chat\nmessages after NPC and/or PVP kills
  • \n
  • Some clue scroll locations and descriptions have been updated
  • \n
  • A bug was fixed causing the ground items menu color to sometimes not match the overlay color
  • \n
  • An acorn emoji has been added to the Emoji plugin
  • \n
  • The Item Stats plugin has learned the correct healing amount\nfor castle wars bandages while wearing the castle wars bracelet
  • \n
  • New POH icons have been added for Weiss and Troll\nstronghold teleport portals
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.013abb3a.chunk.js.map \ No newline at end of file diff --git a/static/js/125.b7e6895b.chunk.js.map b/static/js/125.013abb3a.chunk.js.map similarity index 99% rename from static/js/125.b7e6895b.chunk.js.map rename to static/js/125.013abb3a.chunk.js.map index 0b64a11539..9ca31059c1 100644 --- a/static/js/125.b7e6895b.chunk.js.map +++ b/static/js/125.013abb3a.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.b7e6895b.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

\\\"GPU

\\n

The 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

\\\"Configurable

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • We 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
  • \\n
  • The Chambers of Xeric plugin now continues to scout\\nunknown rooms when loading new areas
  • \\n
  • The Loot Tracker plugin can now hide unwanted loot events
  • \\n
  • You can now right-click chat messages to copy them to your clipboard using the Chat History\\nplugin
  • \\n
  • Clue scrolls will now always stack when recorded in the Loot Tracker\\nplugin
  • \\n
  • The World Map plugin has seen several additions, such as\\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses
  • \\n
  • Barbarian fish have been added to the agility skill\\ncalculator
  • \\n
  • The ending door of the penguin agility course is now highlighted via the Agility\\nplugin
  • \\n
  • Teleblock timers are now correctly added when playing with the\\ntransparent chatbox enabled
  • \\n
  • The Loot Tracker plugin now has options to display chat\\nmessages after NPC and/or PVP kills
  • \\n
  • Some clue scroll locations and descriptions have been updated
  • \\n
  • A bug was fixed causing the ground items menu color to sometimes not match the overlay color
  • \\n
  • An acorn emoji has been added to the Emoji plugin
  • \\n
  • The Item Stats plugin has learned the correct healing amount\\nfor castle wars bandages while wearing the castle wars bracelet
  • \\n
  • New POH icons have been added for Weiss and Troll\\nstronghold teleport portals
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.013abb3a.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

\\\"GPU

\\n

The 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

\\\"Configurable

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • We 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
  • \\n
  • The Chambers of Xeric plugin now continues to scout\\nunknown rooms when loading new areas
  • \\n
  • The Loot Tracker plugin can now hide unwanted loot events
  • \\n
  • You can now right-click chat messages to copy them to your clipboard using the Chat History\\nplugin
  • \\n
  • Clue scrolls will now always stack when recorded in the Loot Tracker\\nplugin
  • \\n
  • The World Map plugin has seen several additions, such as\\ntooltips for dungeon names, hunter areas, fishing spots, and agility courses
  • \\n
  • Barbarian fish have been added to the agility skill\\ncalculator
  • \\n
  • The ending door of the penguin agility course is now highlighted via the Agility\\nplugin
  • \\n
  • Teleblock timers are now correctly added when playing with the\\ntransparent chatbox enabled
  • \\n
  • The Loot Tracker plugin now has options to display chat\\nmessages after NPC and/or PVP kills
  • \\n
  • Some clue scroll locations and descriptions have been updated
  • \\n
  • A bug was fixed causing the ground items menu color to sometimes not match the overlay color
  • \\n
  • An acorn emoji has been added to the Emoji plugin
  • \\n
  • The Item Stats plugin has learned the correct healing amount\\nfor castle wars bandages while wearing the castle wars bracelet
  • \\n
  • New POH icons have been added for Weiss and Troll\\nstronghold teleport portals
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.49448497.chunk.js b/static/js/126.c97413d0.chunk.js similarity index 99% rename from static/js/126.49448497.chunk.js rename to static/js/126.c97413d0.chunk.js index ffa426293f..27bb5322ca 100644 --- a/static/js/126.49448497.chunk.js +++ b/static/js/126.c97413d0.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[126],{403: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

Configurable login screen background

\n

When 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

Screen marker widget wrapping

\n

The Chat Filter plugin can now collapse\nduplicate chat messages. Thanks @CoreyForsyth for adding this\nenhancement.

\n

Duplicate chat collapsing

\n

Highlighted below are some features which we released in 1.6.15 and 1.6.16:

\n

The 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

Transparent right-click menu background

\n

We 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

Ground Items notify on or above tier option

\n

You can now customize the background color of overlays and infoboxes. Thanks to\n@TheStonedTurtle for this feature addition.

\n

Configurable overlay color

\n

The Clue Scroll plugin overlay now displays\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\naddition.

\n

Clue overlay enemy display

\n

There are also several smaller improvements and bug fixes, including:

\n\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 42 contributors these past releases!

\n
Adam (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.49448497.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[126],{404: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

Configurable login screen background

\n

When 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

Screen marker widget wrapping

\n

The Chat Filter plugin can now collapse\nduplicate chat messages. Thanks @CoreyForsyth for adding this\nenhancement.

\n

Duplicate chat collapsing

\n

Highlighted below are some features which we released in 1.6.15 and 1.6.16:

\n

The 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

Transparent right-click menu background

\n

We 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

Ground Items notify on or above tier option

\n

You can now customize the background color of overlays and infoboxes. Thanks to\n@TheStonedTurtle for this feature addition.

\n

Configurable overlay color

\n

The Clue Scroll plugin overlay now displays\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\naddition.

\n

Clue overlay enemy display

\n

There are also several smaller improvements and bug fixes, including:

\n\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 42 contributors these past releases!

\n
Adam (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.c97413d0.chunk.js.map \ No newline at end of file diff --git a/static/js/126.49448497.chunk.js.map b/static/js/126.c97413d0.chunk.js.map similarity index 99% rename from static/js/126.49448497.chunk.js.map rename to static/js/126.c97413d0.chunk.js.map index e9123492a1..8cbe36dea9 100644 --- a/static/js/126.49448497.chunk.js.map +++ b/static/js/126.c97413d0.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.49448497.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

\\\"Configurable

\\n

When 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

\\\"Screen

\\n

The Chat Filter plugin can now collapse\\nduplicate chat messages. Thanks @CoreyForsyth for adding this\\nenhancement.

\\n

\\\"Duplicate

\\n

Highlighted below are some features which we released in 1.6.15 and 1.6.16:

\\n

The 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

\\\"Transparent

\\n

We 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

\\\"Ground

\\n

You can now customize the background color of overlays and infoboxes. Thanks to\\n@TheStonedTurtle for this feature addition.

\\n

\\\"Configurable

\\n

The Clue Scroll plugin overlay now displays\\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\\naddition.

\\n

\\\"Clue

\\n

There are also several smaller improvements and bug fixes, including:

\\n\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 42 contributors these past releases!

\\n
Adam (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.c97413d0.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

\\\"Configurable

\\n

When 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

\\\"Screen

\\n

The Chat Filter plugin can now collapse\\nduplicate chat messages. Thanks @CoreyForsyth for adding this\\nenhancement.

\\n

\\\"Duplicate

\\n

Highlighted below are some features which we released in 1.6.15 and 1.6.16:

\\n

The 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

\\\"Transparent

\\n

We 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

\\\"Ground

\\n

You can now customize the background color of overlays and infoboxes. Thanks to\\n@TheStonedTurtle for this feature addition.

\\n

\\\"Configurable

\\n

The Clue Scroll plugin overlay now displays\\nwhich enemy you will encounter. Thanks to @TrevorMartz for this\\naddition.

\\n

\\\"Clue

\\n

There are also several smaller improvements and bug fixes, including:

\\n\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 42 contributors these past releases!

\\n
Adam (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.4454f424.chunk.js b/static/js/127.f68008e1.chunk.js similarity index 98% rename from static/js/127.4454f424.chunk.js rename to static/js/127.f68008e1.chunk.js index 8a3b8a6eb5..e4e3050551 100644 --- a/static/js/127.4454f424.chunk.js +++ b/static/js/127.f68008e1.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[127],{404: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

Config panel sections, resetting individual options

\n

Additionally, you can click the dropdown button of the config panel search bar to see a list of\ncommon plugin categories to search.

\n

Config tag categories dropdown

\n

The 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

XP tracker drag-and-drop reordering

\n

The 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

Farming time tracking contract indicator

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Darkmeyer login screen has been added to the login screen plugin
  • \n
  • RuneLite settings has a new option to change the window transparency
  • \n
  • A gorilla emoji has been added to the Emoji plugin
  • \n
  • Arceuus teleport portals in the POH now display portal icons using the POH plugin
  • \n
  • The NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\ndead NPCs\' menu entries
  • \n
  • The Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\nhighlight swords and arrows
  • \n
  • A number of clues have been given improved hints to better display the target location
  • \n
  • The slayer plugin no longer forgets your points and streak when you have no current task
  • \n
  • The Chat Notifications plugin can now send notifications when receiving broadcast messages
  • \n
  • Quests with non-uniform completion dialogs now capture screenshots with proper file names
  • \n
  • Removing favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds
  • \n
  • The individual group loot tracker view now shows the correct total loot value
  • \n
  • A bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed
  • \n
  • Ground Item notifications no longer display the item quantity twice
  • \n
  • Fix the Grand Exchange search panel from breaking when the search dialog is cleared
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 30 contributors this release!

\n
Adam (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.4454f424.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[127],{405: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

Config panel sections, resetting individual options

\n

Additionally, you can click the dropdown button of the config panel search bar to see a list of\ncommon plugin categories to search.

\n

Config tag categories dropdown

\n

The 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

XP tracker drag-and-drop reordering

\n

The 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

Farming time tracking contract indicator

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Darkmeyer login screen has been added to the login screen plugin
  • \n
  • RuneLite settings has a new option to change the window transparency
  • \n
  • A gorilla emoji has been added to the Emoji plugin
  • \n
  • Arceuus teleport portals in the POH now display portal icons using the POH plugin
  • \n
  • The NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\ndead NPCs\' menu entries
  • \n
  • The Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\nhighlight swords and arrows
  • \n
  • A number of clues have been given improved hints to better display the target location
  • \n
  • The slayer plugin no longer forgets your points and streak when you have no current task
  • \n
  • The Chat Notifications plugin can now send notifications when receiving broadcast messages
  • \n
  • Quests with non-uniform completion dialogs now capture screenshots with proper file names
  • \n
  • Removing favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds
  • \n
  • The individual group loot tracker view now shows the correct total loot value
  • \n
  • A bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed
  • \n
  • Ground Item notifications no longer display the item quantity twice
  • \n
  • Fix the Grand Exchange search panel from breaking when the search dialog is cleared
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 30 contributors this release!

\n
Adam (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.f68008e1.chunk.js.map \ No newline at end of file diff --git a/static/js/127.4454f424.chunk.js.map b/static/js/127.f68008e1.chunk.js.map similarity index 99% rename from static/js/127.4454f424.chunk.js.map rename to static/js/127.f68008e1.chunk.js.map index 3b4efef565..c1019f4c32 100644 --- a/static/js/127.4454f424.chunk.js.map +++ b/static/js/127.f68008e1.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.4454f424.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

\\\"Config

\\n

Additionally, you can click the dropdown button of the config panel search bar to see a list of\\ncommon plugin categories to search.

\\n

\\\"Config

\\n

The 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

\\\"XP

\\n

The 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

\\\"Farming

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Darkmeyer login screen has been added to the login screen plugin
  • \\n
  • RuneLite settings has a new option to change the window transparency
  • \\n
  • A gorilla emoji has been added to the Emoji plugin
  • \\n
  • Arceuus teleport portals in the POH now display portal icons using the POH plugin
  • \\n
  • The NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\\ndead NPCs' menu entries
  • \\n
  • The Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\\nhighlight swords and arrows
  • \\n
  • A number of clues have been given improved hints to better display the target location
  • \\n
  • The slayer plugin no longer forgets your points and streak when you have no current task
  • \\n
  • The Chat Notifications plugin can now send notifications when receiving broadcast messages
  • \\n
  • Quests with non-uniform completion dialogs now capture screenshots with proper file names
  • \\n
  • Removing favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds
  • \\n
  • The individual group loot tracker view now shows the correct total loot value
  • \\n
  • A bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed
  • \\n
  • Ground Item notifications no longer display the item quantity twice
  • \\n
  • Fix the Grand Exchange search panel from breaking when the search dialog is cleared
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 30 contributors this release!

\\n
Adam (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.f68008e1.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

\\\"Config

\\n

Additionally, you can click the dropdown button of the config panel search bar to see a list of\\ncommon plugin categories to search.

\\n

\\\"Config

\\n

The 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

\\\"XP

\\n

The 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

\\\"Farming

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Darkmeyer login screen has been added to the login screen plugin
  • \\n
  • RuneLite settings has a new option to change the window transparency
  • \\n
  • A gorilla emoji has been added to the Emoji plugin
  • \\n
  • Arceuus teleport portals in the POH now display portal icons using the POH plugin
  • \\n
  • The NPC Indicators plugin can now prevent highlighting dead NPCs and can set a custom color to\\ndead NPCs' menu entries
  • \\n
  • The Agility plugin now highlights Sepulchre stairs and platforms, and has an option to also\\nhighlight swords and arrows
  • \\n
  • A number of clues have been given improved hints to better display the target location
  • \\n
  • The slayer plugin no longer forgets your points and streak when you have no current task
  • \\n
  • The Chat Notifications plugin can now send notifications when receiving broadcast messages
  • \\n
  • Quests with non-uniform completion dialogs now capture screenshots with proper file names
  • \\n
  • Removing favorite worlds in the world hopper panel no longer prevents you from removing other favorited worlds
  • \\n
  • The individual group loot tracker view now shows the correct total loot value
  • \\n
  • A bug causing the loottracker to sometimes log Chambers of Xeric loot multiple times has been fixed
  • \\n
  • Ground Item notifications no longer display the item quantity twice
  • \\n
  • Fix the Grand Exchange search panel from breaking when the search dialog is cleared
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 30 contributors this release!

\\n
Adam (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.447aab4e.chunk.js b/static/js/128.b10d1c80.chunk.js similarity index 98% rename from static/js/128.447aab4e.chunk.js rename to static/js/128.b10d1c80.chunk.js index f1a410fe4d..530a4a6f47 100644 --- a/static/js/128.447aab4e.chunk.js +++ b/static/js/128.b10d1c80.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[128],{405: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

Hallowed Sepulchre loot tracking
\nHallowed Sepulchre chat commands

\n

We\'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

Infobox menu options

\n

In 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The client now remembers its screen position when moved across multiple monitors
  • \n
  • The Agility plugin correctly applies your\nselected sepulchre overlay color to the arrows and swords found there
  • \n
  • The Timers plugin\'s stamina timers learned how\nthe timer is affected when using the Ring of endurance
  • \n
  • You may now hide the farming contract infobox in the Time Tracking\nplugin
  • \n
  • The 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
  • \n
  • The Player-owned House plugin now\ncorrectly draws a minimap icon over Occult Altars
  • \n
  • The Clue Scroll plugin has learned the\nlocation of an added hot-cold clue step found in Darkmeyer
  • \n
  • The Slayer plugin can now update your task\ninformation when speaking to your slayer master via the slayer gem dialog
  • \n
  • Some tooltip spelling mistakes have been corrected in the World Map\nplugin
  • \n
  • Baby dragons are now highlighted by the Slayer\nplugin when on a dragon task
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 13 contributors this release!

\n
Adam (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.447aab4e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[128],{406: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

Hallowed Sepulchre loot tracking
\nHallowed Sepulchre chat commands

\n

We\'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

Infobox menu options

\n

In 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The client now remembers its screen position when moved across multiple monitors
  • \n
  • The Agility plugin correctly applies your\nselected sepulchre overlay color to the arrows and swords found there
  • \n
  • The Timers plugin\'s stamina timers learned how\nthe timer is affected when using the Ring of endurance
  • \n
  • You may now hide the farming contract infobox in the Time Tracking\nplugin
  • \n
  • The 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
  • \n
  • The Player-owned House plugin now\ncorrectly draws a minimap icon over Occult Altars
  • \n
  • The Clue Scroll plugin has learned the\nlocation of an added hot-cold clue step found in Darkmeyer
  • \n
  • The Slayer plugin can now update your task\ninformation when speaking to your slayer master via the slayer gem dialog
  • \n
  • Some tooltip spelling mistakes have been corrected in the World Map\nplugin
  • \n
  • Baby dragons are now highlighted by the Slayer\nplugin when on a dragon task
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 13 contributors this release!

\n
Adam (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.b10d1c80.chunk.js.map \ No newline at end of file diff --git a/static/js/128.447aab4e.chunk.js.map b/static/js/128.b10d1c80.chunk.js.map similarity index 99% rename from static/js/128.447aab4e.chunk.js.map rename to static/js/128.b10d1c80.chunk.js.map index 0a4c93773a..f9af04874b 100644 --- a/static/js/128.447aab4e.chunk.js.map +++ b/static/js/128.b10d1c80.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.447aab4e.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

\\\"Hallowed
\\n\\\"Hallowed

\\n

We'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

\\\"Infobox

\\n

In 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The client now remembers its screen position when moved across multiple monitors
  • \\n
  • The Agility plugin correctly applies your\\nselected sepulchre overlay color to the arrows and swords found there
  • \\n
  • The Timers plugin's stamina timers learned how\\nthe timer is affected when using the Ring of endurance
  • \\n
  • You may now hide the farming contract infobox in the Time Tracking\\nplugin
  • \\n
  • The 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
  • \\n
  • The Player-owned House plugin now\\ncorrectly draws a minimap icon over Occult Altars
  • \\n
  • The Clue Scroll plugin has learned the\\nlocation of an added hot-cold clue step found in Darkmeyer
  • \\n
  • The Slayer plugin can now update your task\\ninformation when speaking to your slayer master via the slayer gem dialog
  • \\n
  • Some tooltip spelling mistakes have been corrected in the World Map\\nplugin
  • \\n
  • Baby dragons are now highlighted by the Slayer\\nplugin when on a dragon task
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 13 contributors this release!

\\n
Adam (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.b10d1c80.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

\\\"Hallowed
\\n\\\"Hallowed

\\n

We'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

\\\"Infobox

\\n

In 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The client now remembers its screen position when moved across multiple monitors
  • \\n
  • The Agility plugin correctly applies your\\nselected sepulchre overlay color to the arrows and swords found there
  • \\n
  • The Timers plugin's stamina timers learned how\\nthe timer is affected when using the Ring of endurance
  • \\n
  • You may now hide the farming contract infobox in the Time Tracking\\nplugin
  • \\n
  • The 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
  • \\n
  • The Player-owned House plugin now\\ncorrectly draws a minimap icon over Occult Altars
  • \\n
  • The Clue Scroll plugin has learned the\\nlocation of an added hot-cold clue step found in Darkmeyer
  • \\n
  • The Slayer plugin can now update your task\\ninformation when speaking to your slayer master via the slayer gem dialog
  • \\n
  • Some tooltip spelling mistakes have been corrected in the World Map\\nplugin
  • \\n
  • Baby dragons are now highlighted by the Slayer\\nplugin when on a dragon task
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 13 contributors this release!

\\n
Adam (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.ba2f0451.chunk.js b/static/js/129.68e53a78.chunk.js similarity index 98% rename from static/js/129.ba2f0451.chunk.js rename to static/js/129.68e53a78.chunk.js index b4c5727853..19cd383092 100644 --- a/static/js/129.ba2f0451.chunk.js +++ b/static/js/129.68e53a78.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[129],{406: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

Pyramid Plunder plugin

\n

The Ground Items plugin plugin can now\ndraw an outline around ground item text instead of a simple shadow.

\n

Ground Items overlay with outlined text

\n

You 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

NPC Indicator overlay toggles

\n

With 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The XP Tracker plugin has an option to\nmove skills with most recent XP gains to the top of the list
  • \n
  • The client now remembers when your sidebar is hidden across client restarts
  • \n
  • Your selected bank tag tab is now saved and\nremembered when opening the bank equipment interface
  • \n
  • The Anti Drag plugin now prevents dragging\nin your inventory when the bank interface is open
  • \n
  • The Friends Chat plugin has an option to\nconfigure the duration that join and leave messages remain in chat
  • \n
  • A Tan-all swap has been added to the Menu Entry Swapper\nplugin
  • \n
  • Drakan\'s medallion teleport locations have been added to the World Map\nplugin
  • \n
  • The Discord plugin now shows when you are\nin the Hallowed Sepulchre
  • \n
  • A toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\nplugin
  • \n
  • You can toggle the Daeyalt essence experience bonus in the runecrafting Skill\nCalculator
  • \n
  • Timers have been added to the Mining plugin\nfor Daeyalt essence rocks
  • \n
  • The 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
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 18 contributors this release!

\n
Adam (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.ba2f0451.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[129],{407: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

Pyramid Plunder plugin

\n

The Ground Items plugin plugin can now\ndraw an outline around ground item text instead of a simple shadow.

\n

Ground Items overlay with outlined text

\n

You 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

NPC Indicator overlay toggles

\n

With 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The XP Tracker plugin has an option to\nmove skills with most recent XP gains to the top of the list
  • \n
  • The client now remembers when your sidebar is hidden across client restarts
  • \n
  • Your selected bank tag tab is now saved and\nremembered when opening the bank equipment interface
  • \n
  • The Anti Drag plugin now prevents dragging\nin your inventory when the bank interface is open
  • \n
  • The Friends Chat plugin has an option to\nconfigure the duration that join and leave messages remain in chat
  • \n
  • A Tan-all swap has been added to the Menu Entry Swapper\nplugin
  • \n
  • Drakan\'s medallion teleport locations have been added to the World Map\nplugin
  • \n
  • The Discord plugin now shows when you are\nin the Hallowed Sepulchre
  • \n
  • A toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\nplugin
  • \n
  • You can toggle the Daeyalt essence experience bonus in the runecrafting Skill\nCalculator
  • \n
  • Timers have been added to the Mining plugin\nfor Daeyalt essence rocks
  • \n
  • The 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
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 18 contributors this release!

\n
Adam (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.68e53a78.chunk.js.map \ No newline at end of file diff --git a/static/js/129.ba2f0451.chunk.js.map b/static/js/129.68e53a78.chunk.js.map similarity index 99% rename from static/js/129.ba2f0451.chunk.js.map rename to static/js/129.68e53a78.chunk.js.map index 0e71a98c41..3e9574d09b 100644 --- a/static/js/129.ba2f0451.chunk.js.map +++ b/static/js/129.68e53a78.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.ba2f0451.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

\\\"Pyramid

\\n

The Ground Items plugin plugin can now\\ndraw an outline around ground item text instead of a simple shadow.

\\n

\\\"Ground

\\n

You 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

\\\"NPC

\\n

With 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The XP Tracker plugin has an option to\\nmove skills with most recent XP gains to the top of the list
  • \\n
  • The client now remembers when your sidebar is hidden across client restarts
  • \\n
  • Your selected bank tag tab is now saved and\\nremembered when opening the bank equipment interface
  • \\n
  • The Anti Drag plugin now prevents dragging\\nin your inventory when the bank interface is open
  • \\n
  • The Friends Chat plugin has an option to\\nconfigure the duration that join and leave messages remain in chat
  • \\n
  • A Tan-all swap has been added to the Menu Entry Swapper\\nplugin
  • \\n
  • Drakan's medallion teleport locations have been added to the World Map\\nplugin
  • \\n
  • The Discord plugin now shows when you are\\nin the Hallowed Sepulchre
  • \\n
  • A toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\\nplugin
  • \\n
  • You can toggle the Daeyalt essence experience bonus in the runecrafting Skill\\nCalculator
  • \\n
  • Timers have been added to the Mining plugin\\nfor Daeyalt essence rocks
  • \\n
  • The 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
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 18 contributors this release!

\\n
Adam (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.68e53a78.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

\\\"Pyramid

\\n

The Ground Items plugin plugin can now\\ndraw an outline around ground item text instead of a simple shadow.

\\n

\\\"Ground

\\n

You 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

\\\"NPC

\\n

With 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The XP Tracker plugin has an option to\\nmove skills with most recent XP gains to the top of the list
  • \\n
  • The client now remembers when your sidebar is hidden across client restarts
  • \\n
  • Your selected bank tag tab is now saved and\\nremembered when opening the bank equipment interface
  • \\n
  • The Anti Drag plugin now prevents dragging\\nin your inventory when the bank interface is open
  • \\n
  • The Friends Chat plugin has an option to\\nconfigure the duration that join and leave messages remain in chat
  • \\n
  • A Tan-all swap has been added to the Menu Entry Swapper\\nplugin
  • \\n
  • Drakan's medallion teleport locations have been added to the World Map\\nplugin
  • \\n
  • The Discord plugin now shows when you are\\nin the Hallowed Sepulchre
  • \\n
  • A toggle to hide tooltips in the spellbook has been added to the Mouse Tooltips\\nplugin
  • \\n
  • You can toggle the Daeyalt essence experience bonus in the runecrafting Skill\\nCalculator
  • \\n
  • Timers have been added to the Mining plugin\\nfor Daeyalt essence rocks
  • \\n
  • The 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
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 18 contributors this release!

\\n
Adam (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.865c04a4.chunk.js b/static/js/13.dfdb92fe.chunk.js similarity index 93% rename from static/js/13.865c04a4.chunk.js rename to static/js/13.dfdb92fe.chunk.js index 84a94ca94f..2e50aea1f3 100644 --- a/static/js/13.865c04a4.chunk.js +++ b/static/js/13.dfdb92fe.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){},292: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}})}},455: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),g=a(7),r=a.n(g),b=a(46),o=a(4),u=a(50),d=a(28),h=a(18),f=a(292),j=a(47);a(131);e.default=Object(c.b)((t,e)=>({...e,externalPlugin:Object(u.e)(t).find(t=>t.internalName===e.internalName)}),t=>Object(i.b)({fetchBootstrap:o.b,fetchConfig:d.c,fetchExternalPlugins:u.c,fetchExternalPluginInfo:u.b,fetchPluginHubStats:u.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 - ${r.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),e.github&&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.865c04a4.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){},293: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}})}},457: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),g=a(7),r=a.n(g),b=a(46),o=a(4),u=a(50),d=a(28),h=a(18),f=a(293),j=a(47);a(131);e.default=Object(c.b)((t,e)=>({...e,externalPlugin:Object(u.e)(t).find(t=>t.internalName===e.internalName)}),t=>Object(i.b)({fetchBootstrap:o.b,fetchConfig:d.c,fetchExternalPlugins:u.c,fetchExternalPluginInfo:u.b,fetchPluginHubStats:u.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 - ${r.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),e.github&&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.dfdb92fe.chunk.js.map \ No newline at end of file diff --git a/static/js/13.865c04a4.chunk.js.map b/static/js/13.dfdb92fe.chunk.js.map similarity index 99% rename from static/js/13.865c04a4.chunk.js.map rename to static/js/13.dfdb92fe.chunk.js.map index cea73e9f45..3e5b8b0f47 100644 --- a/static/js/13.865c04a4.chunk.js.map +++ b/static/js/13.dfdb92fe.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.865c04a4.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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
\n \n
\n
\n
{externalPlugin.displayName}
\n
\n \n {externalPlugin.author}\n \n
\n {externalPlugin.count > 0 && (\n

\n \n {numberWithCommas(externalPlugin.count)}{' '}\n {externalPlugin.count > 1\n ? 'active installs'\n : 'active install'}\n {' '}\n {externalPlugin.installed && (\n installed\n )}\n

\n )}\n
\n
\n {externalPlugin.description}\n
\n {externalPlugin.github && (\n
\n \n \n Report an issue\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.dfdb92fe.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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
\n \n
\n
\n
{externalPlugin.displayName}
\n
\n \n {externalPlugin.author}\n \n
\n {externalPlugin.count > 0 && (\n

\n \n {numberWithCommas(externalPlugin.count)}{' '}\n {externalPlugin.count > 1\n ? 'active installs'\n : 'active install'}\n {' '}\n {externalPlugin.installed && (\n installed\n )}\n

\n )}\n
\n
\n {externalPlugin.description}\n
\n {externalPlugin.github && (\n
\n \n \n Report an issue\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.694d6caa.chunk.js b/static/js/130.f9bedcf3.chunk.js similarity index 98% rename from static/js/130.694d6caa.chunk.js rename to static/js/130.f9bedcf3.chunk.js index c39c5d8751..963a769603 100644 --- a/static/js/130.694d6caa.chunk.js +++ b/static/js/130.f9bedcf3.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[130],{407: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

NPC Indicators Tag-All menu option\nNPC Indicators Untag-All menu option

\n

When 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

Nechryaels being killed by a player using an Ancient barrage spell

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now use partially transparent colors for your NPC\nIndicators
  • \n
  • The ingame boss HP bar added for Chambers of Xeric bosses is now\nmoveable
  • \n
  • Chat Notifications now only send\nnotifications when your name is mentioned in a player message. No more notification spam from\nboss kill messages!
  • \n
  • Some Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\nplugin
  • \n
  • Plugins with key remaps no longer interfere with input on the login authenticator screen
  • \n
  • The Grand Exchange plugin\'s offer\npanels now open the item\'s Grand Exchange page\nwhen clicked
  • \n
  • You can use the !kc aa and !kc ape atoll abbreviated chat\ncommands to check\nyour Ape Atoll Agility course lap count
  • \n
  • You can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\nplugin
  • \n
  • You can now toggle the plugin\npanel when on the\nlogin screen
  • \n
  • The Random Events plugin can now notify\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events
  • \n
  • Your configured overlay background\ncolor now draws tooltips with\nthe same color background
  • \n
  • The 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
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.694d6caa.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[130],{408: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

NPC Indicators Tag-All menu option\nNPC Indicators Untag-All menu option

\n

When 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

Nechryaels being killed by a player using an Ancient barrage spell

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now use partially transparent colors for your NPC\nIndicators
  • \n
  • The ingame boss HP bar added for Chambers of Xeric bosses is now\nmoveable
  • \n
  • Chat Notifications now only send\nnotifications when your name is mentioned in a player message. No more notification spam from\nboss kill messages!
  • \n
  • Some Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\nplugin
  • \n
  • Plugins with key remaps no longer interfere with input on the login authenticator screen
  • \n
  • The Grand Exchange plugin\'s offer\npanels now open the item\'s Grand Exchange page\nwhen clicked
  • \n
  • You can use the !kc aa and !kc ape atoll abbreviated chat\ncommands to check\nyour Ape Atoll Agility course lap count
  • \n
  • You can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\nplugin
  • \n
  • You can now toggle the plugin\npanel when on the\nlogin screen
  • \n
  • The Random Events plugin can now notify\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events
  • \n
  • Your configured overlay background\ncolor now draws tooltips with\nthe same color background
  • \n
  • The 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
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.f9bedcf3.chunk.js.map \ No newline at end of file diff --git a/static/js/130.694d6caa.chunk.js.map b/static/js/130.f9bedcf3.chunk.js.map similarity index 99% rename from static/js/130.694d6caa.chunk.js.map rename to static/js/130.f9bedcf3.chunk.js.map index 4dcf6a56c8..f0beac8590 100644 --- a/static/js/130.694d6caa.chunk.js.map +++ b/static/js/130.f9bedcf3.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.694d6caa.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

\\\"NPC\\n\\\"NPC

\\n

When 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

\\\"Nechryaels

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now use partially transparent colors for your NPC\\nIndicators
  • \\n
  • The ingame boss HP bar added for Chambers of Xeric bosses is now\\nmoveable
  • \\n
  • Chat Notifications now only send\\nnotifications when your name is mentioned in a player message. No more notification spam from\\nboss kill messages!
  • \\n
  • Some Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\\nplugin
  • \\n
  • Plugins with key remaps no longer interfere with input on the login authenticator screen
  • \\n
  • The Grand Exchange plugin's offer\\npanels now open the item's Grand Exchange page\\nwhen clicked
  • \\n
  • You can use the !kc aa and !kc ape atoll abbreviated chat\\ncommands to check\\nyour Ape Atoll Agility course lap count
  • \\n
  • You can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\\nplugin
  • \\n
  • You can now toggle the plugin\\npanel when on the\\nlogin screen
  • \\n
  • The Random Events plugin can now notify\\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events
  • \\n
  • Your configured overlay background\\ncolor now draws tooltips with\\nthe same color background
  • \\n
  • The 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
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.f9bedcf3.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

\\\"NPC\\n\\\"NPC

\\n

When 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

\\\"Nechryaels

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now use partially transparent colors for your NPC\\nIndicators
  • \\n
  • The ingame boss HP bar added for Chambers of Xeric bosses is now\\nmoveable
  • \\n
  • Chat Notifications now only send\\nnotifications when your name is mentioned in a player message. No more notification spam from\\nboss kill messages!
  • \\n
  • Some Meiyerditch wall obstacles that were previously missing are now highlighted by the Agility\\nplugin
  • \\n
  • Plugins with key remaps no longer interfere with input on the login authenticator screen
  • \\n
  • The Grand Exchange plugin's offer\\npanels now open the item's Grand Exchange page\\nwhen clicked
  • \\n
  • You can use the !kc aa and !kc ape atoll abbreviated chat\\ncommands to check\\nyour Ape Atoll Agility course lap count
  • \\n
  • You can now toggle visibility of Hallowed Sepulchre skill challenge clickboxes in the Agility\\nplugin
  • \\n
  • You can now toggle the plugin\\npanel when on the\\nlogin screen
  • \\n
  • The Random Events plugin can now notify\\nyou when receiving Dr. Jekyll, Beekeeper, and Sandwich Lady events
  • \\n
  • Your configured overlay background\\ncolor now draws tooltips with\\nthe same color background
  • \\n
  • The 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
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.f1f72eda.chunk.js b/static/js/131.4de7b85e.chunk.js similarity index 97% rename from static/js/131.f1f72eda.chunk.js rename to static/js/131.4de7b85e.chunk.js index 25d6dc2ce7..71eee2bdd9 100644 --- a/static/js/131.f1f72eda.chunk.js +++ b/static/js/131.4de7b85e.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[131],{408: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.

\n

Additionally, when viewing a tag tab or searching in the bank, the bank\nplugin will display the price of the displayed\nitems.

\n

A bank tag tab shown with no tab separators, and displaying the value of its contained items in the header

\n

There are also several smaller improvements and bug fixes, including:

\n\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.f1f72eda.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[131],{409: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.

\n

Additionally, when viewing a tag tab or searching in the bank, the bank\nplugin will display the price of the displayed\nitems.

\n

A bank tag tab shown with no tab separators, and displaying the value of its contained items in the header

\n

There are also several smaller improvements and bug fixes, including:

\n\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.4de7b85e.chunk.js.map \ No newline at end of file diff --git a/static/js/131.f1f72eda.chunk.js.map b/static/js/131.4de7b85e.chunk.js.map similarity index 98% rename from static/js/131.f1f72eda.chunk.js.map rename to static/js/131.4de7b85e.chunk.js.map index f2f15cef98..98b5859473 100644 --- a/static/js/131.f1f72eda.chunk.js.map +++ b/static/js/131.4de7b85e.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.f1f72eda.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.

\\n

Additionally, when viewing a tag tab or searching in the bank, the bank\\nplugin will display the price of the displayed\\nitems.

\\n

\\\"A

\\n

There are also several smaller improvements and bug fixes, including:

\\n\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.4de7b85e.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.

\\n

Additionally, when viewing a tag tab or searching in the bank, the bank\\nplugin will display the price of the displayed\\nitems.

\\n

\\\"A

\\n

There are also several smaller improvements and bug fixes, including:

\\n\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.46329c2e.chunk.js b/static/js/132.f0dc0d4c.chunk.js similarity index 99% rename from static/js/132.46329c2e.chunk.js rename to static/js/132.f0dc0d4c.chunk.js index 8107e6b8b6..e127f6e6f1 100644 --- a/static/js/132.46329c2e.chunk.js +++ b/static/js/132.f0dc0d4c.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[132],{409: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

Weakened Zalcano with a hint arrow above her

\n

The 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

Inventory tag underlines

\n

We 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\n\n\n\n\n\n\n\n\n\n\n
GPU anisotropic filtering enabledGPU anisotropic filtering disabled
\n

The 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

Potion duration tooltips

\n

The 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

Mining session overlay while actively mining\nMining session overlay when not actively mining

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Timers plugin now shows an infobox with\nyour elapsed Fight Cave or Inferno time
  • \n
  • Interacting with Bank Tag\ntabs no longer clears your\nactive bank search
  • \n
  • The Inventory Grid plugin now operates\nwhile viewing your bank
  • \n
  • An issue causing Discord party invites to fail has been fixed
  • \n
  • Tooltip labels have been added to clue scroll and minigame entries in the HiScore\nplugin
  • \n
  • The Agility plugin now estimates your laps\nper hour more accurately
  • \n
  • Some Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\nAgility plugin
  • \n
  • The Clue Scroll plugin now shows a\nlocation description for map clues
  • \n
  • The Cannon plugin now suggests a spot for\nBloodvelds in the Meiyerditch Laboratories
  • \n
  • You can now look up your Nightmare kill count with the Chat Commands\nplugin using the nm, tnm, and\nnmare abbreviations
  • \n
  • Teleport tablets are now labeled by the Item Identification\nplugin
  • \n
  • The Nightmare Zone plugin can now send\nnotifications prior to your overload boosts expiring
  • \n
  • A bug which could cause flash notifications to become stuck has been fixed
  • \n
  • The 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
  • \n
  • The Cooking plugin now updates its session\ncounter when drying sinew
  • \n
  • The Prayer plugin now shows a sensible\nduration text for durations greater than 1 hour
  • \n
  • Iorwerth Warriors are now understood to be elves by the Slayer\nplugin
  • \n
  • XD and pleading emojis have been added to the Emojis\nplugin with the Xd and (n_n) triggers,\nrespectively
  • \n
  • Vyres have been added to the Thieving skill\ncalculator
  • \n
  • A bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\nbeen fixed
  • \n
  • The World Map plugin no longer shows a\nmisplaced quest icon for the Misthalin Mystery quest
  • \n
  • Bird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\nthe Loot Tracker plugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 32 contributors this release!

\n
Adam (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.46329c2e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[132],{410: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

Weakened Zalcano with a hint arrow above her

\n

The 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

Inventory tag underlines

\n

We 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\n\n\n\n\n\n\n\n\n\n\n
GPU anisotropic filtering enabledGPU anisotropic filtering disabled
\n

The 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

Potion duration tooltips

\n

The 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

Mining session overlay while actively mining\nMining session overlay when not actively mining

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Timers plugin now shows an infobox with\nyour elapsed Fight Cave or Inferno time
  • \n
  • Interacting with Bank Tag\ntabs no longer clears your\nactive bank search
  • \n
  • The Inventory Grid plugin now operates\nwhile viewing your bank
  • \n
  • An issue causing Discord party invites to fail has been fixed
  • \n
  • Tooltip labels have been added to clue scroll and minigame entries in the HiScore\nplugin
  • \n
  • The Agility plugin now estimates your laps\nper hour more accurately
  • \n
  • Some Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\nAgility plugin
  • \n
  • The Clue Scroll plugin now shows a\nlocation description for map clues
  • \n
  • The Cannon plugin now suggests a spot for\nBloodvelds in the Meiyerditch Laboratories
  • \n
  • You can now look up your Nightmare kill count with the Chat Commands\nplugin using the nm, tnm, and\nnmare abbreviations
  • \n
  • Teleport tablets are now labeled by the Item Identification\nplugin
  • \n
  • The Nightmare Zone plugin can now send\nnotifications prior to your overload boosts expiring
  • \n
  • A bug which could cause flash notifications to become stuck has been fixed
  • \n
  • The 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
  • \n
  • The Cooking plugin now updates its session\ncounter when drying sinew
  • \n
  • The Prayer plugin now shows a sensible\nduration text for durations greater than 1 hour
  • \n
  • Iorwerth Warriors are now understood to be elves by the Slayer\nplugin
  • \n
  • XD and pleading emojis have been added to the Emojis\nplugin with the Xd and (n_n) triggers,\nrespectively
  • \n
  • Vyres have been added to the Thieving skill\ncalculator
  • \n
  • A bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\nbeen fixed
  • \n
  • The World Map plugin no longer shows a\nmisplaced quest icon for the Misthalin Mystery quest
  • \n
  • Bird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\nthe Loot Tracker plugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 32 contributors this release!

\n
Adam (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.f0dc0d4c.chunk.js.map \ No newline at end of file diff --git a/static/js/132.46329c2e.chunk.js.map b/static/js/132.f0dc0d4c.chunk.js.map similarity index 99% rename from static/js/132.46329c2e.chunk.js.map rename to static/js/132.f0dc0d4c.chunk.js.map index 87a4c7a493..86aac38647 100644 --- a/static/js/132.46329c2e.chunk.js.map +++ b/static/js/132.f0dc0d4c.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.46329c2e.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

\\\"Weakened

\\n

The 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

\\\"Inventory

\\n

We 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
GPU anisotropic filtering enabledGPU anisotropic filtering disabled
\\n

The 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

\\\"Potion

\\n

The 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

\\\"Mining\\n\\\"Mining

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Timers plugin now shows an infobox with\\nyour elapsed Fight Cave or Inferno time
  • \\n
  • Interacting with Bank Tag\\ntabs no longer clears your\\nactive bank search
  • \\n
  • The Inventory Grid plugin now operates\\nwhile viewing your bank
  • \\n
  • An issue causing Discord party invites to fail has been fixed
  • \\n
  • Tooltip labels have been added to clue scroll and minigame entries in the HiScore\\nplugin
  • \\n
  • The Agility plugin now estimates your laps\\nper hour more accurately
  • \\n
  • Some Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\\nAgility plugin
  • \\n
  • The Clue Scroll plugin now shows a\\nlocation description for map clues
  • \\n
  • The Cannon plugin now suggests a spot for\\nBloodvelds in the Meiyerditch Laboratories
  • \\n
  • You can now look up your Nightmare kill count with the Chat Commands\\nplugin using the nm, tnm, and\\nnmare abbreviations
  • \\n
  • Teleport tablets are now labeled by the Item Identification\\nplugin
  • \\n
  • The Nightmare Zone plugin can now send\\nnotifications prior to your overload boosts expiring
  • \\n
  • A bug which could cause flash notifications to become stuck has been fixed
  • \\n
  • The 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
  • \\n
  • The Cooking plugin now updates its session\\ncounter when drying sinew
  • \\n
  • The Prayer plugin now shows a sensible\\nduration text for durations greater than 1 hour
  • \\n
  • Iorwerth Warriors are now understood to be elves by the Slayer\\nplugin
  • \\n
  • XD and pleading emojis have been added to the Emojis\\nplugin with the Xd and (n_n) triggers,\\nrespectively
  • \\n
  • Vyres have been added to the Thieving skill\\ncalculator
  • \\n
  • A bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\\nbeen fixed
  • \\n
  • The World Map plugin no longer shows a\\nmisplaced quest icon for the Misthalin Mystery quest
  • \\n
  • Bird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\\nthe Loot Tracker plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 32 contributors this release!

\\n
Adam (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.f0dc0d4c.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

\\\"Weakened

\\n

The 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

\\\"Inventory

\\n

We 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
GPU anisotropic filtering enabledGPU anisotropic filtering disabled
\\n

The 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

\\\"Potion

\\n

The 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

\\\"Mining\\n\\\"Mining

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Timers plugin now shows an infobox with\\nyour elapsed Fight Cave or Inferno time
  • \\n
  • Interacting with Bank Tag\\ntabs no longer clears your\\nactive bank search
  • \\n
  • The Inventory Grid plugin now operates\\nwhile viewing your bank
  • \\n
  • An issue causing Discord party invites to fail has been fixed
  • \\n
  • Tooltip labels have been added to clue scroll and minigame entries in the HiScore\\nplugin
  • \\n
  • The Agility plugin now estimates your laps\\nper hour more accurately
  • \\n
  • Some Godwars Dungeon obstacles and the Prifddinas portals are now highlighted properly by the\\nAgility plugin
  • \\n
  • The Clue Scroll plugin now shows a\\nlocation description for map clues
  • \\n
  • The Cannon plugin now suggests a spot for\\nBloodvelds in the Meiyerditch Laboratories
  • \\n
  • You can now look up your Nightmare kill count with the Chat Commands\\nplugin using the nm, tnm, and\\nnmare abbreviations
  • \\n
  • Teleport tablets are now labeled by the Item Identification\\nplugin
  • \\n
  • The Nightmare Zone plugin can now send\\nnotifications prior to your overload boosts expiring
  • \\n
  • A bug which could cause flash notifications to become stuck has been fixed
  • \\n
  • The 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
  • \\n
  • The Cooking plugin now updates its session\\ncounter when drying sinew
  • \\n
  • The Prayer plugin now shows a sensible\\nduration text for durations greater than 1 hour
  • \\n
  • Iorwerth Warriors are now understood to be elves by the Slayer\\nplugin
  • \\n
  • XD and pleading emojis have been added to the Emojis\\nplugin with the Xd and (n_n) triggers,\\nrespectively
  • \\n
  • Vyres have been added to the Thieving skill\\ncalculator
  • \\n
  • A bug where Chambers of Xeric personal best times were not recorded for certain team sizes has\\nbeen fixed
  • \\n
  • The World Map plugin no longer shows a\\nmisplaced quest icon for the Misthalin Mystery quest
  • \\n
  • Bird nests and the opening of grubby, stone, Dorgesh-Kaan, and H.A.M. chests are now tracked by\\nthe Loot Tracker plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 32 contributors this release!

\\n
Adam (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.e7f934d4.chunk.js b/static/js/133.476ae942.chunk.js similarity index 98% rename from static/js/133.e7f934d4.chunk.js rename to static/js/133.476ae942.chunk.js index 9e9d344cdf..5139f92e41 100644 --- a/static/js/133.e7f934d4.chunk.js +++ b/static/js/133.476ae942.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[133],{410: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
Website time tracker for fruit treesWebsite time tracker for birdhouses
\n

Item 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
Item outlines prior to release 1.6.27Item outlines after release 1.6.27
\n

Several 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Load times with the GPU plugin enabled have been\nslightly improved
  • \n
  • A "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\nadded via the hub
  • \n
  • The Mining plugin now tracks dense essence\nmining and shows the proper mining status while mining at Motherlode mine and while mining\namethyst
  • \n
  • The Motherlode Mine plugin shows the\nproper mining status while mining with a 3rd Age pickaxe
  • \n
  • The Discord plugin now recognizes many more\nareas such as the Farming Guild, runecrafting altars, Morytania, and more
  • \n
  • The Clue Scroll plugin correctly\nindicates that items protected with a Trouver parchment are eligible for emote clues
  • \n
  • Blisterwood logs, Hallowed Sepulchre floors, and the Carpenter\'s outfit set bonus have been added\nto the Skill Calculator plugin
  • \n
  • You can now toggle the Dark energy core highlight in the Corporeal Beast\nplugin
  • \n
  • The new Gu\'Tanoth agility shortcut is now highlighted with the Agility\nplugin
  • \n
  • Houses decorated with the Twisted League or Hosidius themes now have their own skybox\ncolors
  • \n
  • The Abyssal Sire stun timer shows up correctly\nagain
  • \n
  • The Inferno\'s time tracker is now adjusted by 6\nseconds to be in line with the ingame timer
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.e7f934d4.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[133],{411: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
Website time tracker for fruit treesWebsite time tracker for birdhouses
\n

Item 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
Item outlines prior to release 1.6.27Item outlines after release 1.6.27
\n

Several 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Load times with the GPU plugin enabled have been\nslightly improved
  • \n
  • A "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\nadded via the hub
  • \n
  • The Mining plugin now tracks dense essence\nmining and shows the proper mining status while mining at Motherlode mine and while mining\namethyst
  • \n
  • The Motherlode Mine plugin shows the\nproper mining status while mining with a 3rd Age pickaxe
  • \n
  • The Discord plugin now recognizes many more\nareas such as the Farming Guild, runecrafting altars, Morytania, and more
  • \n
  • The Clue Scroll plugin correctly\nindicates that items protected with a Trouver parchment are eligible for emote clues
  • \n
  • Blisterwood logs, Hallowed Sepulchre floors, and the Carpenter\'s outfit set bonus have been added\nto the Skill Calculator plugin
  • \n
  • You can now toggle the Dark energy core highlight in the Corporeal Beast\nplugin
  • \n
  • The new Gu\'Tanoth agility shortcut is now highlighted with the Agility\nplugin
  • \n
  • Houses decorated with the Twisted League or Hosidius themes now have their own skybox\ncolors
  • \n
  • The Abyssal Sire stun timer shows up correctly\nagain
  • \n
  • The Inferno\'s time tracker is now adjusted by 6\nseconds to be in line with the ingame timer
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.476ae942.chunk.js.map \ No newline at end of file diff --git a/static/js/133.e7f934d4.chunk.js.map b/static/js/133.476ae942.chunk.js.map similarity index 99% rename from static/js/133.e7f934d4.chunk.js.map rename to static/js/133.476ae942.chunk.js.map index cba591e6b3..5e37aecca5 100644 --- a/static/js/133.e7f934d4.chunk.js.map +++ b/static/js/133.476ae942.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.e7f934d4.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
\\\"Website\\\"Website
\\n

Item 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"Item\\\"Item
\\n

Several 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Load times with the GPU plugin enabled have been\\nslightly improved
  • \\n
  • A "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\\nadded via the hub
  • \\n
  • The Mining plugin now tracks dense essence\\nmining and shows the proper mining status while mining at Motherlode mine and while mining\\namethyst
  • \\n
  • The Motherlode Mine plugin shows the\\nproper mining status while mining with a 3rd Age pickaxe
  • \\n
  • The Discord plugin now recognizes many more\\nareas such as the Farming Guild, runecrafting altars, Morytania, and more
  • \\n
  • The Clue Scroll plugin correctly\\nindicates that items protected with a Trouver parchment are eligible for emote clues
  • \\n
  • Blisterwood logs, Hallowed Sepulchre floors, and the Carpenter's outfit set bonus have been added\\nto the Skill Calculator plugin
  • \\n
  • You can now toggle the Dark energy core highlight in the Corporeal Beast\\nplugin
  • \\n
  • The new Gu'Tanoth agility shortcut is now highlighted with the Agility\\nplugin
  • \\n
  • Houses decorated with the Twisted League or Hosidius themes now have their own skybox\\ncolors
  • \\n
  • The Abyssal Sire stun timer shows up correctly\\nagain
  • \\n
  • The Inferno's time tracker is now adjusted by 6\\nseconds to be in line with the ingame timer
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.476ae942.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
\\\"Website\\\"Website
\\n

Item 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"Item\\\"Item
\\n

Several 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Load times with the GPU plugin enabled have been\\nslightly improved
  • \\n
  • A "Plugin Hub" search suggestion has been added to the plugin list panel to help identify plugins\\nadded via the hub
  • \\n
  • The Mining plugin now tracks dense essence\\nmining and shows the proper mining status while mining at Motherlode mine and while mining\\namethyst
  • \\n
  • The Motherlode Mine plugin shows the\\nproper mining status while mining with a 3rd Age pickaxe
  • \\n
  • The Discord plugin now recognizes many more\\nareas such as the Farming Guild, runecrafting altars, Morytania, and more
  • \\n
  • The Clue Scroll plugin correctly\\nindicates that items protected with a Trouver parchment are eligible for emote clues
  • \\n
  • Blisterwood logs, Hallowed Sepulchre floors, and the Carpenter's outfit set bonus have been added\\nto the Skill Calculator plugin
  • \\n
  • You can now toggle the Dark energy core highlight in the Corporeal Beast\\nplugin
  • \\n
  • The new Gu'Tanoth agility shortcut is now highlighted with the Agility\\nplugin
  • \\n
  • Houses decorated with the Twisted League or Hosidius themes now have their own skybox\\ncolors
  • \\n
  • The Abyssal Sire stun timer shows up correctly\\nagain
  • \\n
  • The Inferno's time tracker is now adjusted by 6\\nseconds to be in line with the ingame timer
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.466c306b.chunk.js b/static/js/134.4992c71c.chunk.js similarity index 97% rename from static/js/134.466c306b.chunk.js rename to static/js/134.4992c71c.chunk.js index 665678c19a..d81995422d 100644 --- a/static/js/134.466c306b.chunk.js +++ b/static/js/134.4992c71c.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[134],{411: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

infoboxes

\n

The loot tracker now tracks loot from birdhouses

\n

birdhouses

\n

The tile marker plugin now optionally allows assocating labels to marked tiles

\n

tilelabel

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The cannon plugin now shows the world your cannon was placed on in the\ninfobox tooltip.
  • \n
  • Some 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.
  • \n
  • The OSRS Wiki Crowdsourcing plugin\nis now included and enabled by default. This collects anonymous skilling data\nto help improve the OSRS Wiki.
  • \n
  • The loot tracker now correctly tracks the Grubby chest.
  • \n
  • An option has been added to outline infobox text, which can improve readability.
  • \n
  • The item charges plugin now correctly tracks destroying dodgy necklaces, rings of\nforging, and amulets of chemistry.
  • \n
  • A bug causing the farming tracker to incorrectly track the Catherby patches\nhas been fixed.
  • \n
  • Examining large stacks of items now shows digit group separators.
  • \n
  • The inventory viewer now has a configurable hotkey to toggle the overlay.
  • \n
  • A Use swap has been added for grimy herbs.
  • \n
  • The chat filter plugin can now additionally filter game and spam messages.
  • \n
\n

Enjoy!

\n

- Adam

\n

We had 12 contributors this release!

\n
Adam (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.466c306b.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[134],{412: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

infoboxes

\n

The loot tracker now tracks loot from birdhouses

\n

birdhouses

\n

The tile marker plugin now optionally allows assocating labels to marked tiles

\n

tilelabel

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The cannon plugin now shows the world your cannon was placed on in the\ninfobox tooltip.
  • \n
  • Some 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.
  • \n
  • The OSRS Wiki Crowdsourcing plugin\nis now included and enabled by default. This collects anonymous skilling data\nto help improve the OSRS Wiki.
  • \n
  • The loot tracker now correctly tracks the Grubby chest.
  • \n
  • An option has been added to outline infobox text, which can improve readability.
  • \n
  • The item charges plugin now correctly tracks destroying dodgy necklaces, rings of\nforging, and amulets of chemistry.
  • \n
  • A bug causing the farming tracker to incorrectly track the Catherby patches\nhas been fixed.
  • \n
  • Examining large stacks of items now shows digit group separators.
  • \n
  • The inventory viewer now has a configurable hotkey to toggle the overlay.
  • \n
  • A Use swap has been added for grimy herbs.
  • \n
  • The chat filter plugin can now additionally filter game and spam messages.
  • \n
\n

Enjoy!

\n

- Adam

\n

We had 12 contributors this release!

\n
Adam (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.4992c71c.chunk.js.map \ No newline at end of file diff --git a/static/js/134.466c306b.chunk.js.map b/static/js/134.4992c71c.chunk.js.map similarity index 98% rename from static/js/134.466c306b.chunk.js.map rename to static/js/134.4992c71c.chunk.js.map index aa3722910d..db42366e99 100644 --- a/static/js/134.466c306b.chunk.js.map +++ b/static/js/134.4992c71c.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.466c306b.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

\\\"infoboxes\\\"

\\n

The loot tracker now tracks loot from birdhouses

\\n

\\\"birdhouses\\\"

\\n

The tile marker plugin now optionally allows assocating labels to marked tiles

\\n

\\\"tilelabel\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The cannon plugin now shows the world your cannon was placed on in the\\ninfobox tooltip.
  • \\n
  • Some 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.
  • \\n
  • The OSRS Wiki Crowdsourcing plugin\\nis now included and enabled by default. This collects anonymous skilling data\\nto help improve the OSRS Wiki.
  • \\n
  • The loot tracker now correctly tracks the Grubby chest.
  • \\n
  • An option has been added to outline infobox text, which can improve readability.
  • \\n
  • The item charges plugin now correctly tracks destroying dodgy necklaces, rings of\\nforging, and amulets of chemistry.
  • \\n
  • A bug causing the farming tracker to incorrectly track the Catherby patches\\nhas been fixed.
  • \\n
  • Examining large stacks of items now shows digit group separators.
  • \\n
  • The inventory viewer now has a configurable hotkey to toggle the overlay.
  • \\n
  • A Use swap has been added for grimy herbs.
  • \\n
  • The chat filter plugin can now additionally filter game and spam messages.
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

We had 12 contributors this release!

\\n
Adam (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.4992c71c.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

\\\"infoboxes\\\"

\\n

The loot tracker now tracks loot from birdhouses

\\n

\\\"birdhouses\\\"

\\n

The tile marker plugin now optionally allows assocating labels to marked tiles

\\n

\\\"tilelabel\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The cannon plugin now shows the world your cannon was placed on in the\\ninfobox tooltip.
  • \\n
  • Some 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.
  • \\n
  • The OSRS Wiki Crowdsourcing plugin\\nis now included and enabled by default. This collects anonymous skilling data\\nto help improve the OSRS Wiki.
  • \\n
  • The loot tracker now correctly tracks the Grubby chest.
  • \\n
  • An option has been added to outline infobox text, which can improve readability.
  • \\n
  • The item charges plugin now correctly tracks destroying dodgy necklaces, rings of\\nforging, and amulets of chemistry.
  • \\n
  • A bug causing the farming tracker to incorrectly track the Catherby patches\\nhas been fixed.
  • \\n
  • Examining large stacks of items now shows digit group separators.
  • \\n
  • The inventory viewer now has a configurable hotkey to toggle the overlay.
  • \\n
  • A Use swap has been added for grimy herbs.
  • \\n
  • The chat filter plugin can now additionally filter game and spam messages.
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

We had 12 contributors this release!

\\n
Adam (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.3db3fff1.chunk.js b/static/js/135.13177433.chunk.js similarity index 99% rename from static/js/135.3db3fff1.chunk.js rename to static/js/135.13177433.chunk.js index f59b5886e5..95d50bf99b 100644 --- a/static/js/135.3db3fff1.chunk.js +++ b/static/js/135.13177433.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[135],{412: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

Run energy and special attack bars

\n

Colorblind 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\n\n\n\n\n\n\n\n\n\n\n\n\n
ProtanopeDeuteranopeTritanope
Client screenshot with colors adjusted for protanopiaClient screenshot with colors adjusted for deuteranopiaClient screenshot with colors adjusted for tritanopia
\n

We have opened a merch store where you can purchase shirts,\nsweatshirts, and mugs bearing the RuneLite logo to show your support.

\n

RuneLite merch store

\n

An 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.

\n

The 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.

\n

We 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The League Chat Icons plugin has been removed, as it now exists in the vanilla client.
  • \n
  • XP Globes can now be stacked vertically,\nusing the same method to flip their orientation as infoboxes (shift and right-click).
  • \n
  • We 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.
  • \n
  • The Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\noverlay system
  • \n
  • League relics modifying your XP rates and health regeneration rates are now accounted for in the\nXP Tracker and Regeneration\nMeter plugins respectively
  • \n
  • You 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
  • \n
  • The new league home/minigames teleport animation will now trigger the appropriate teleport\ntimer
  • \n
  • Skilling plugins such as Fishing,\nMining, and\nWoodcutting will show the proper activity\nstatus when using the new League infernal tools
  • \n
  • Ground items now have their overlays\nat the proper height for items placed on surfaces that are not ground-height, such as on tables
  • \n
  • Chat Timestamps are now shown for all\ntypes of chat
  • \n
  • The Ctrl key can now be remapped with the Key Remapping\nplugin
  • \n
  • Sourhogs are now recognized as a task by the Slayer\nplugin. Additionally, Cyclops are now\nrecognized as an alternative monster for Hill giant tasks
  • \n
  • The 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
  • \n
  • The progress of your compost bins is now shown in the Time Tracking\nplugin
  • \n
  • Your cannon ground overlay is no longer shown\nif you are on a different world than the one where your cannon was placed
  • \n
  • Kourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\nthe World Map plugin
  • \n
  • Your anisotropic filtering setting is no longer reset to 0 when toggling the GPU\nplugin
  • \n
  • Item overlays are now shown for items in trade and duel inventory screens
  • \n
  • The Time Tracking plugin better handles\nyour contract state for crops with health checks, and for diseased or dead crops
  • \n
  • Your XP Tracker goal time now has several\nformat options
  • \n
  • You 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
  • \n
  • You can now configure the Discord plugin\'s\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely
  • \n
  • The 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
  • \n
  • The Nightmare Zone\'s overload potion timer and notification are now properly cleared when leaving\nthe minigame
  • \n
  • Chronicle charges are now tracked via the Item Charges\nplugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 37 contributors in these releases!

\n
Adam (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.3db3fff1.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[135],{413: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

Run energy and special attack bars

\n

Colorblind 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\n\n\n\n\n\n\n\n\n\n\n\n\n
ProtanopeDeuteranopeTritanope
Client screenshot with colors adjusted for protanopiaClient screenshot with colors adjusted for deuteranopiaClient screenshot with colors adjusted for tritanopia
\n

We have opened a merch store where you can purchase shirts,\nsweatshirts, and mugs bearing the RuneLite logo to show your support.

\n

RuneLite merch store

\n

An 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.

\n

The 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.

\n

We 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The League Chat Icons plugin has been removed, as it now exists in the vanilla client.
  • \n
  • XP Globes can now be stacked vertically,\nusing the same method to flip their orientation as infoboxes (shift and right-click).
  • \n
  • We 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.
  • \n
  • The Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\noverlay system
  • \n
  • League relics modifying your XP rates and health regeneration rates are now accounted for in the\nXP Tracker and Regeneration\nMeter plugins respectively
  • \n
  • You 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
  • \n
  • The new league home/minigames teleport animation will now trigger the appropriate teleport\ntimer
  • \n
  • Skilling plugins such as Fishing,\nMining, and\nWoodcutting will show the proper activity\nstatus when using the new League infernal tools
  • \n
  • Ground items now have their overlays\nat the proper height for items placed on surfaces that are not ground-height, such as on tables
  • \n
  • Chat Timestamps are now shown for all\ntypes of chat
  • \n
  • The Ctrl key can now be remapped with the Key Remapping\nplugin
  • \n
  • Sourhogs are now recognized as a task by the Slayer\nplugin. Additionally, Cyclops are now\nrecognized as an alternative monster for Hill giant tasks
  • \n
  • The 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
  • \n
  • The progress of your compost bins is now shown in the Time Tracking\nplugin
  • \n
  • Your cannon ground overlay is no longer shown\nif you are on a different world than the one where your cannon was placed
  • \n
  • Kourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\nthe World Map plugin
  • \n
  • Your anisotropic filtering setting is no longer reset to 0 when toggling the GPU\nplugin
  • \n
  • Item overlays are now shown for items in trade and duel inventory screens
  • \n
  • The Time Tracking plugin better handles\nyour contract state for crops with health checks, and for diseased or dead crops
  • \n
  • Your XP Tracker goal time now has several\nformat options
  • \n
  • You 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
  • \n
  • You can now configure the Discord plugin\'s\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely
  • \n
  • The 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
  • \n
  • The Nightmare Zone\'s overload potion timer and notification are now properly cleared when leaving\nthe minigame
  • \n
  • Chronicle charges are now tracked via the Item Charges\nplugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 37 contributors in these releases!

\n
Adam (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.13177433.chunk.js.map \ No newline at end of file diff --git a/static/js/135.3db3fff1.chunk.js.map b/static/js/135.13177433.chunk.js.map similarity index 99% rename from static/js/135.3db3fff1.chunk.js.map rename to static/js/135.13177433.chunk.js.map index fb03b1be2a..77dd0b5b89 100644 --- a/static/js/135.3db3fff1.chunk.js.map +++ b/static/js/135.13177433.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.3db3fff1.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

\\\"Run

\\n

Colorblind 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
ProtanopeDeuteranopeTritanope
\\\"Client\\\"Client\\\"Client
\\n

We have opened a merch store where you can purchase shirts,\\nsweatshirts, and mugs bearing the RuneLite logo to show your support.

\\n

\\\"RuneLite

\\n

An 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.

\\n

The 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.

\\n

We 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The League Chat Icons plugin has been removed, as it now exists in the vanilla client.
  • \\n
  • XP Globes can now be stacked vertically,\\nusing the same method to flip their orientation as infoboxes (shift and right-click).
  • \\n
  • We 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.
  • \\n
  • The Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\\noverlay system
  • \\n
  • League relics modifying your XP rates and health regeneration rates are now accounted for in the\\nXP Tracker and Regeneration\\nMeter plugins respectively
  • \\n
  • You 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
  • \\n
  • The new league home/minigames teleport animation will now trigger the appropriate teleport\\ntimer
  • \\n
  • Skilling plugins such as Fishing,\\nMining, and\\nWoodcutting will show the proper activity\\nstatus when using the new League infernal tools
  • \\n
  • Ground items now have their overlays\\nat the proper height for items placed on surfaces that are not ground-height, such as on tables
  • \\n
  • Chat Timestamps are now shown for all\\ntypes of chat
  • \\n
  • The Ctrl key can now be remapped with the Key Remapping\\nplugin
  • \\n
  • Sourhogs are now recognized as a task by the Slayer\\nplugin. Additionally, Cyclops are now\\nrecognized as an alternative monster for Hill giant tasks
  • \\n
  • The 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
  • \\n
  • The progress of your compost bins is now shown in the Time Tracking\\nplugin
  • \\n
  • Your cannon ground overlay is no longer shown\\nif you are on a different world than the one where your cannon was placed
  • \\n
  • Kourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\\nthe World Map plugin
  • \\n
  • Your anisotropic filtering setting is no longer reset to 0 when toggling the GPU\\nplugin
  • \\n
  • Item overlays are now shown for items in trade and duel inventory screens
  • \\n
  • The Time Tracking plugin better handles\\nyour contract state for crops with health checks, and for diseased or dead crops
  • \\n
  • Your XP Tracker goal time now has several\\nformat options
  • \\n
  • You 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
  • \\n
  • You can now configure the Discord plugin's\\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely
  • \\n
  • The 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
  • \\n
  • The Nightmare Zone's overload potion timer and notification are now properly cleared when leaving\\nthe minigame
  • \\n
  • Chronicle charges are now tracked via the Item Charges\\nplugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 37 contributors in these releases!

\\n
Adam (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.13177433.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

\\\"Run

\\n

Colorblind 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
ProtanopeDeuteranopeTritanope
\\\"Client\\\"Client\\\"Client
\\n

We have opened a merch store where you can purchase shirts,\\nsweatshirts, and mugs bearing the RuneLite logo to show your support.

\\n

\\\"RuneLite

\\n

An 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.

\\n

The 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.

\\n

We 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The League Chat Icons plugin has been removed, as it now exists in the vanilla client.
  • \\n
  • XP Globes can now be stacked vertically,\\nusing the same method to flip their orientation as infoboxes (shift and right-click).
  • \\n
  • We 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.
  • \\n
  • The Volcanic mine and Nightmare totem game overlays have been updated to be moveable with our\\noverlay system
  • \\n
  • League relics modifying your XP rates and health regeneration rates are now accounted for in the\\nXP Tracker and Regeneration\\nMeter plugins respectively
  • \\n
  • You 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
  • \\n
  • The new league home/minigames teleport animation will now trigger the appropriate teleport\\ntimer
  • \\n
  • Skilling plugins such as Fishing,\\nMining, and\\nWoodcutting will show the proper activity\\nstatus when using the new League infernal tools
  • \\n
  • Ground items now have their overlays\\nat the proper height for items placed on surfaces that are not ground-height, such as on tables
  • \\n
  • Chat Timestamps are now shown for all\\ntypes of chat
  • \\n
  • The Ctrl key can now be remapped with the Key Remapping\\nplugin
  • \\n
  • Sourhogs are now recognized as a task by the Slayer\\nplugin. Additionally, Cyclops are now\\nrecognized as an alternative monster for Hill giant tasks
  • \\n
  • The 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
  • \\n
  • The progress of your compost bins is now shown in the Time Tracking\\nplugin
  • \\n
  • Your cannon ground overlay is no longer shown\\nif you are on a different world than the one where your cannon was placed
  • \\n
  • Kourend task and unlock locations and Wilderness slayer cave entrances now have added tooltips via\\nthe World Map plugin
  • \\n
  • Your anisotropic filtering setting is no longer reset to 0 when toggling the GPU\\nplugin
  • \\n
  • Item overlays are now shown for items in trade and duel inventory screens
  • \\n
  • The Time Tracking plugin better handles\\nyour contract state for crops with health checks, and for diseased or dead crops
  • \\n
  • Your XP Tracker goal time now has several\\nformat options
  • \\n
  • You 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
  • \\n
  • You can now configure the Discord plugin's\\ntime to display total time ingame, time elapsed for your current activity, or hidden entirely
  • \\n
  • The 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
  • \\n
  • The Nightmare Zone's overload potion timer and notification are now properly cleared when leaving\\nthe minigame
  • \\n
  • Chronicle charges are now tracked via the Item Charges\\nplugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 37 contributors in these releases!

\\n
Adam (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.f50cc0fc.chunk.js b/static/js/136.5d1414a8.chunk.js similarity index 98% rename from static/js/136.f50cc0fc.chunk.js rename to static/js/136.5d1414a8.chunk.js index 621c2275bf..0480728dbf 100644 --- a/static/js/136.f50cc0fc.chunk.js +++ b/static/js/136.5d1414a8.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[136],{413: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

Ground item despawn timer configuration

\n

The 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.

\n

The Skybox plugin now allows you to set a custom\ncolor for overworld and underground areas to use instead of the default area-specific colors.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Using the bank plugin, you can now trigger a\nbank search using the hotkey Ctrl + F
  • \n
  • The combat level plugin now shows levels\nneeded for a new combat level beyond 99.
  • \n
  • The DPS counter plugin has gained new\noptions to only count boss damage, and to reset when a boss dies
  • \n
  • An NPC Deposit-Items swap has been added to the menu entry swapper\nplugin
  • \n
  • The plugin hub button has been sticky\'d to the bottom of the plugin list. No more scrolling to the\nbottom to find it!
  • \n
  • The slayer plugin now recognizes Battlefront\nas a task location
  • \n
  • Chambers of Xeric potions now have their doses shown via the item charges\nplugin
  • \n
  • The west Al Kharid palace window is no longer highlighted via the agility\nplugin as you cannot go through it
  • \n
  • Some objects marked with the object markers\nplugin correctly maintain their marker\nwhen leaving and revisiting the area
  • \n
  • The chat filter plugin no longer filters\nsome messages for players with icons next to their names
  • \n
  • The timers plugin\'s tzhaar timer no longer\nkeeps counting when disabled mid-run
  • \n
  • The abyssal sire\'s stun timer has been fixed
  • \n
  • The chat notifications plugin now\ncorrectly sends notifications for some messages matching a highlighted word ending in a period
  • \n
  • Using a leagues area teleport will no longer trigger a home or minigame teleport\ntimer
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.f50cc0fc.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[136],{414: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

Ground item despawn timer configuration

\n

The 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.

\n

The Skybox plugin now allows you to set a custom\ncolor for overworld and underground areas to use instead of the default area-specific colors.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Using the bank plugin, you can now trigger a\nbank search using the hotkey Ctrl + F
  • \n
  • The combat level plugin now shows levels\nneeded for a new combat level beyond 99.
  • \n
  • The DPS counter plugin has gained new\noptions to only count boss damage, and to reset when a boss dies
  • \n
  • An NPC Deposit-Items swap has been added to the menu entry swapper\nplugin
  • \n
  • The plugin hub button has been sticky\'d to the bottom of the plugin list. No more scrolling to the\nbottom to find it!
  • \n
  • The slayer plugin now recognizes Battlefront\nas a task location
  • \n
  • Chambers of Xeric potions now have their doses shown via the item charges\nplugin
  • \n
  • The west Al Kharid palace window is no longer highlighted via the agility\nplugin as you cannot go through it
  • \n
  • Some objects marked with the object markers\nplugin correctly maintain their marker\nwhen leaving and revisiting the area
  • \n
  • The chat filter plugin no longer filters\nsome messages for players with icons next to their names
  • \n
  • The timers plugin\'s tzhaar timer no longer\nkeeps counting when disabled mid-run
  • \n
  • The abyssal sire\'s stun timer has been fixed
  • \n
  • The chat notifications plugin now\ncorrectly sends notifications for some messages matching a highlighted word ending in a period
  • \n
  • Using a leagues area teleport will no longer trigger a home or minigame teleport\ntimer
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.5d1414a8.chunk.js.map \ No newline at end of file diff --git a/static/js/136.f50cc0fc.chunk.js.map b/static/js/136.5d1414a8.chunk.js.map similarity index 99% rename from static/js/136.f50cc0fc.chunk.js.map rename to static/js/136.5d1414a8.chunk.js.map index 0e04c83eed..2099f4c8b9 100644 --- a/static/js/136.f50cc0fc.chunk.js.map +++ b/static/js/136.5d1414a8.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.f50cc0fc.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

\\\"Ground

\\n

The 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.

\\n

The Skybox plugin now allows you to set a custom\\ncolor for overworld and underground areas to use instead of the default area-specific colors.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Using the bank plugin, you can now trigger a\\nbank search using the hotkey Ctrl + F
  • \\n
  • The combat level plugin now shows levels\\nneeded for a new combat level beyond 99.
  • \\n
  • The DPS counter plugin has gained new\\noptions to only count boss damage, and to reset when a boss dies
  • \\n
  • An NPC Deposit-Items swap has been added to the menu entry swapper\\nplugin
  • \\n
  • The plugin hub button has been sticky'd to the bottom of the plugin list. No more scrolling to the\\nbottom to find it!
  • \\n
  • The slayer plugin now recognizes Battlefront\\nas a task location
  • \\n
  • Chambers of Xeric potions now have their doses shown via the item charges\\nplugin
  • \\n
  • The west Al Kharid palace window is no longer highlighted via the agility\\nplugin as you cannot go through it
  • \\n
  • Some objects marked with the object markers\\nplugin correctly maintain their marker\\nwhen leaving and revisiting the area
  • \\n
  • The chat filter plugin no longer filters\\nsome messages for players with icons next to their names
  • \\n
  • The timers plugin's tzhaar timer no longer\\nkeeps counting when disabled mid-run
  • \\n
  • The abyssal sire's stun timer has been fixed
  • \\n
  • The chat notifications plugin now\\ncorrectly sends notifications for some messages matching a highlighted word ending in a period
  • \\n
  • Using a leagues area teleport will no longer trigger a home or minigame teleport\\ntimer
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.5d1414a8.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

\\\"Ground

\\n

The 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.

\\n

The Skybox plugin now allows you to set a custom\\ncolor for overworld and underground areas to use instead of the default area-specific colors.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Using the bank plugin, you can now trigger a\\nbank search using the hotkey Ctrl + F
  • \\n
  • The combat level plugin now shows levels\\nneeded for a new combat level beyond 99.
  • \\n
  • The DPS counter plugin has gained new\\noptions to only count boss damage, and to reset when a boss dies
  • \\n
  • An NPC Deposit-Items swap has been added to the menu entry swapper\\nplugin
  • \\n
  • The plugin hub button has been sticky'd to the bottom of the plugin list. No more scrolling to the\\nbottom to find it!
  • \\n
  • The slayer plugin now recognizes Battlefront\\nas a task location
  • \\n
  • Chambers of Xeric potions now have their doses shown via the item charges\\nplugin
  • \\n
  • The west Al Kharid palace window is no longer highlighted via the agility\\nplugin as you cannot go through it
  • \\n
  • Some objects marked with the object markers\\nplugin correctly maintain their marker\\nwhen leaving and revisiting the area
  • \\n
  • The chat filter plugin no longer filters\\nsome messages for players with icons next to their names
  • \\n
  • The timers plugin's tzhaar timer no longer\\nkeeps counting when disabled mid-run
  • \\n
  • The abyssal sire's stun timer has been fixed
  • \\n
  • The chat notifications plugin now\\ncorrectly sends notifications for some messages matching a highlighted word ending in a period
  • \\n
  • Using a leagues area teleport will no longer trigger a home or minigame teleport\\ntimer
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.b001ca4c.chunk.js b/static/js/137.4994fc2b.chunk.js similarity index 98% rename from static/js/137.b001ca4c.chunk.js rename to static/js/137.4994fc2b.chunk.js index 65e1cde553..e043fb08a9 100644 --- a/static/js/137.b001ca4c.chunk.js +++ b/static/js/137.4994fc2b.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[137],{414: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

Farming timer

\n

The 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

Zalcano damage counter

\n

Many of the existing color configuration options for overlays now support\nadjusting their transparency too.

\n

Zalcano damage counter

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Texture brightness with the GPU plugin has been adjusted to more closely\nreflect the software rasterizer
  • \n
  • FPS with GPU on in areas with full-screen transparent overlays, such as\nGodwars, under water, and Ver Sinhaza has been improved
  • \n
  • The xp tracker now respects the in-game xp tracker position setting
  • \n
  • Fix some dead clicks when trying to alt+drag or alt+reset overlays
  • \n
  • Fix item overlays, such as the rune pouch or item identification overlays,\nfrom drawing over top the world map
  • \n
  • The barrows reward potential overlay colors are now exact and no longer an estimation
  • \n
  • Fix the Ape Atoll skull climb obstacle click box overlay
  • \n
  • Mouse tooltips now work on the welcome screen and the full screen world map
  • \n
  • The multicombat icon is now movable when holding alt
  • \n
  • The status bars health bar is now recolored when infected by a parasite
  • \n
  • Timers have been added to the green Tears of Guthix streams
  • \n
  • The Sire stun timer now more accurately tracks when the Sire is stunned while\nalready stunned
  • \n
  • Fix the essence teleport menu swap for Sedridor
  • \n
  • Fix the Charge spell timer time to be 7 minutes
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.b001ca4c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[137],{415: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

Farming timer

\n

The 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

Zalcano damage counter

\n

Many of the existing color configuration options for overlays now support\nadjusting their transparency too.

\n

Zalcano damage counter

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Texture brightness with the GPU plugin has been adjusted to more closely\nreflect the software rasterizer
  • \n
  • FPS with GPU on in areas with full-screen transparent overlays, such as\nGodwars, under water, and Ver Sinhaza has been improved
  • \n
  • The xp tracker now respects the in-game xp tracker position setting
  • \n
  • Fix some dead clicks when trying to alt+drag or alt+reset overlays
  • \n
  • Fix item overlays, such as the rune pouch or item identification overlays,\nfrom drawing over top the world map
  • \n
  • The barrows reward potential overlay colors are now exact and no longer an estimation
  • \n
  • Fix the Ape Atoll skull climb obstacle click box overlay
  • \n
  • Mouse tooltips now work on the welcome screen and the full screen world map
  • \n
  • The multicombat icon is now movable when holding alt
  • \n
  • The status bars health bar is now recolored when infected by a parasite
  • \n
  • Timers have been added to the green Tears of Guthix streams
  • \n
  • The Sire stun timer now more accurately tracks when the Sire is stunned while\nalready stunned
  • \n
  • Fix the essence teleport menu swap for Sedridor
  • \n
  • Fix the Charge spell timer time to be 7 minutes
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.4994fc2b.chunk.js.map \ No newline at end of file diff --git a/static/js/137.b001ca4c.chunk.js.map b/static/js/137.4994fc2b.chunk.js.map similarity index 99% rename from static/js/137.b001ca4c.chunk.js.map rename to static/js/137.4994fc2b.chunk.js.map index 8621908e4e..927dced7be 100644 --- a/static/js/137.b001ca4c.chunk.js.map +++ b/static/js/137.4994fc2b.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.b001ca4c.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

\\\"Farming

\\n

The 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

\\\"Zalcano

\\n

Many of the existing color configuration options for overlays now support\\nadjusting their transparency too.

\\n

\\\"Zalcano

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Texture brightness with the GPU plugin has been adjusted to more closely\\nreflect the software rasterizer
  • \\n
  • FPS with GPU on in areas with full-screen transparent overlays, such as\\nGodwars, under water, and Ver Sinhaza has been improved
  • \\n
  • The xp tracker now respects the in-game xp tracker position setting
  • \\n
  • Fix some dead clicks when trying to alt+drag or alt+reset overlays
  • \\n
  • Fix item overlays, such as the rune pouch or item identification overlays,\\nfrom drawing over top the world map
  • \\n
  • The barrows reward potential overlay colors are now exact and no longer an estimation
  • \\n
  • Fix the Ape Atoll skull climb obstacle click box overlay
  • \\n
  • Mouse tooltips now work on the welcome screen and the full screen world map
  • \\n
  • The multicombat icon is now movable when holding alt
  • \\n
  • The status bars health bar is now recolored when infected by a parasite
  • \\n
  • Timers have been added to the green Tears of Guthix streams
  • \\n
  • The Sire stun timer now more accurately tracks when the Sire is stunned while\\nalready stunned
  • \\n
  • Fix the essence teleport menu swap for Sedridor
  • \\n
  • Fix the Charge spell timer time to be 7 minutes
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.4994fc2b.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

\\\"Farming

\\n

The 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

\\\"Zalcano

\\n

Many of the existing color configuration options for overlays now support\\nadjusting their transparency too.

\\n

\\\"Zalcano

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Texture brightness with the GPU plugin has been adjusted to more closely\\nreflect the software rasterizer
  • \\n
  • FPS with GPU on in areas with full-screen transparent overlays, such as\\nGodwars, under water, and Ver Sinhaza has been improved
  • \\n
  • The xp tracker now respects the in-game xp tracker position setting
  • \\n
  • Fix some dead clicks when trying to alt+drag or alt+reset overlays
  • \\n
  • Fix item overlays, such as the rune pouch or item identification overlays,\\nfrom drawing over top the world map
  • \\n
  • The barrows reward potential overlay colors are now exact and no longer an estimation
  • \\n
  • Fix the Ape Atoll skull climb obstacle click box overlay
  • \\n
  • Mouse tooltips now work on the welcome screen and the full screen world map
  • \\n
  • The multicombat icon is now movable when holding alt
  • \\n
  • The status bars health bar is now recolored when infected by a parasite
  • \\n
  • Timers have been added to the green Tears of Guthix streams
  • \\n
  • The Sire stun timer now more accurately tracks when the Sire is stunned while\\nalready stunned
  • \\n
  • Fix the essence teleport menu swap for Sedridor
  • \\n
  • Fix the Charge spell timer time to be 7 minutes
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.359316b0.chunk.js b/static/js/138.4fb392c9.chunk.js similarity index 98% rename from static/js/138.359316b0.chunk.js rename to static/js/138.4fb392c9.chunk.js index 7d1ff6df81..2b849680d3 100644 --- a/static/js/138.359316b0.chunk.js +++ b/static/js/138.4fb392c9.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[138],{415: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

\n

The hiscore panel\'s boss icons have been refreshed and tidied up, courtesy of\n@Psikoi\'s excellent updated icons.

\n

Updated boss hiscore icons

\n

A "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

Inventory tags shown with a filled-in image icon

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Support 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.
  • \n
  • A 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
  • \n
  • The plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins
  • \n
  • The 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)
  • \n
  • The 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
  • \n
  • World 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
  • \n
  • The menu entry swapper now supports swaps for Spria\'s NPC Contact, the Dwarven rock cake, and the\nSkull sceptre
  • \n
  • You can now configure the color of the Tears of Guthix vein overlays
  • \n
  • Dragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\nrespective skilling plugins
  • \n
  • The Idle Notifier plugin now supports low & high run energy notifications
  • \n
  • The Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons
  • \n
  • The XP Globes plugin can now show your virtual level in the tooltip
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 24 contributors this release!

\n
Adam (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.359316b0.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[138],{416: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

\n

The hiscore panel\'s boss icons have been refreshed and tidied up, courtesy of\n@Psikoi\'s excellent updated icons.

\n

Updated boss hiscore icons

\n

A "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

Inventory tags shown with a filled-in image icon

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Support 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.
  • \n
  • A 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
  • \n
  • The plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins
  • \n
  • The 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)
  • \n
  • The 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
  • \n
  • World 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
  • \n
  • The menu entry swapper now supports swaps for Spria\'s NPC Contact, the Dwarven rock cake, and the\nSkull sceptre
  • \n
  • You can now configure the color of the Tears of Guthix vein overlays
  • \n
  • Dragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\nrespective skilling plugins
  • \n
  • The Idle Notifier plugin now supports low & high run energy notifications
  • \n
  • The Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons
  • \n
  • The XP Globes plugin can now show your virtual level in the tooltip
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 24 contributors this release!

\n
Adam (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.4fb392c9.chunk.js.map \ No newline at end of file diff --git a/static/js/138.359316b0.chunk.js.map b/static/js/138.4fb392c9.chunk.js.map similarity index 99% rename from static/js/138.359316b0.chunk.js.map rename to static/js/138.4fb392c9.chunk.js.map index b19b9fcfa9..5e7ce307b9 100644 --- a/static/js/138.359316b0.chunk.js.map +++ b/static/js/138.4fb392c9.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.359316b0.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

\\n

The hiscore panel's boss icons have been refreshed and tidied up, courtesy of\\n@Psikoi's excellent updated icons.

\\n

\\\"Updated

\\n

A "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

\\\"Inventory

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Support 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.
  • \\n
  • A 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
  • \\n
  • The plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins
  • \\n
  • The 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)
  • \\n
  • The 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
  • \\n
  • World 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
  • \\n
  • The menu entry swapper now supports swaps for Spria's NPC Contact, the Dwarven rock cake, and the\\nSkull sceptre
  • \\n
  • You can now configure the color of the Tears of Guthix vein overlays
  • \\n
  • Dragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\\nrespective skilling plugins
  • \\n
  • The Idle Notifier plugin now supports low & high run energy notifications
  • \\n
  • The Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons
  • \\n
  • The XP Globes plugin can now show your virtual level in the tooltip
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 24 contributors this release!

\\n
Adam (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.4fb392c9.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

\\n

The hiscore panel's boss icons have been refreshed and tidied up, courtesy of\\n@Psikoi's excellent updated icons.

\\n

\\\"Updated

\\n

A "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

\\\"Inventory

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Support 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.
  • \\n
  • A 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
  • \\n
  • The plugin hub panel now sorts plugins by user count so you can more quickly find popular plugins
  • \\n
  • The 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)
  • \\n
  • The 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
  • \\n
  • World 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
  • \\n
  • The menu entry swapper now supports swaps for Spria's NPC Contact, the Dwarven rock cake, and the\\nSkull sceptre
  • \\n
  • You can now configure the color of the Tears of Guthix vein overlays
  • \\n
  • Dragon skilling tools with the Trailblazer ornament kits are now correctly recognized by their\\nrespective skilling plugins
  • \\n
  • The Idle Notifier plugin now supports low & high run energy notifications
  • \\n
  • The Time Tracking plugin has been taught the correct growth times for sweetcorn and watermelons
  • \\n
  • The XP Globes plugin can now show your virtual level in the tooltip
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 24 contributors this release!

\\n
Adam (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.4ec830bb.chunk.js b/static/js/139.7c533985.chunk.js similarity index 98% rename from static/js/139.4ec830bb.chunk.js rename to static/js/139.7c533985.chunk.js index c4cd0cfbcb..2ca31d9c96 100644 --- a/static/js/139.4ec830bb.chunk.js +++ b/static/js/139.7c533985.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[139],{416: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

\n

On 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.

\n

We\'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.

\n

While 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.

\n

Farming tracker notifications

\n

The 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

Farming Notification

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The tag tab named clue now works once again
  • \n
  • The entity hider now allows hiding ignored players
  • \n
  • Chat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\nThey also no longer lose their coloring.
  • \n
  • The fishing plugin can now send notifications for flying fish when fishing minnows
  • \n
  • The idle notifier now works at the Ectofuntus and at looms
  • \n
  • Spoon and weary face emojis have been added (--o and Dx respectively)
  • \n
  • The loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls
  • \n
  • The chat notifications plugin has a new option to send you notifications for receiving private messages
  • \n
  • The despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables
  • \n
  • A Use swap has been added for battlestaves
  • \n
  • The chat color username recolor option now works correctly on ironmen and player moderators
  • \n
  • The player name of the client which sends tray notifications is now included in notification title
  • \n
  • The 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
  • \n
  • The music volume percentage is now shown when hovering the draggable handle, instead of just the track
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors in this release & 1.6.39!

\n
Adam (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.4ec830bb.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[139],{417: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

\n

On 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.

\n

We\'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.

\n

While 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.

\n

Farming tracker notifications

\n

The 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

Farming Notification

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The tag tab named clue now works once again
  • \n
  • The entity hider now allows hiding ignored players
  • \n
  • Chat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\nThey also no longer lose their coloring.
  • \n
  • The fishing plugin can now send notifications for flying fish when fishing minnows
  • \n
  • The idle notifier now works at the Ectofuntus and at looms
  • \n
  • Spoon and weary face emojis have been added (--o and Dx respectively)
  • \n
  • The loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls
  • \n
  • The chat notifications plugin has a new option to send you notifications for receiving private messages
  • \n
  • The despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables
  • \n
  • A Use swap has been added for battlestaves
  • \n
  • The chat color username recolor option now works correctly on ironmen and player moderators
  • \n
  • The player name of the client which sends tray notifications is now included in notification title
  • \n
  • The 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
  • \n
  • The music volume percentage is now shown when hovering the draggable handle, instead of just the track
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors in this release & 1.6.39!

\n
Adam (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.7c533985.chunk.js.map \ No newline at end of file diff --git a/static/js/139.4ec830bb.chunk.js.map b/static/js/139.7c533985.chunk.js.map similarity index 99% rename from static/js/139.4ec830bb.chunk.js.map rename to static/js/139.7c533985.chunk.js.map index d396576f17..b8fa60c26c 100644 --- a/static/js/139.4ec830bb.chunk.js.map +++ b/static/js/139.7c533985.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.4ec830bb.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

\\n

On 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.

\\n

We'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.

\\n

While 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.

\\n

Farming tracker notifications

\\n

The 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

\\\"Farming

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The tag tab named clue now works once again
  • \\n
  • The entity hider now allows hiding ignored players
  • \\n
  • Chat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\\nThey also no longer lose their coloring.
  • \\n
  • The fishing plugin can now send notifications for flying fish when fishing minnows
  • \\n
  • The idle notifier now works at the Ectofuntus and at looms
  • \\n
  • Spoon and weary face emojis have been added (--o and Dx respectively)
  • \\n
  • The loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls
  • \\n
  • The chat notifications plugin has a new option to send you notifications for receiving private messages
  • \\n
  • The despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables
  • \\n
  • A Use swap has been added for battlestaves
  • \\n
  • The chat color username recolor option now works correctly on ironmen and player moderators
  • \\n
  • The player name of the client which sends tray notifications is now included in notification title
  • \\n
  • The 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
  • \\n
  • The music volume percentage is now shown when hovering the draggable handle, instead of just the track
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors in this release & 1.6.39!

\\n
Adam (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.7c533985.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

\\n

On 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.

\\n

We'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.

\\n

While 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.

\\n

Farming tracker notifications

\\n

The 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

\\\"Farming

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The tag tab named clue now works once again
  • \\n
  • The entity hider now allows hiding ignored players
  • \\n
  • Chat messages replayed by the chat history plugin on login no longer re-trip commands or notifications.\\nThey also no longer lose their coloring.
  • \\n
  • The fishing plugin can now send notifications for flying fish when fishing minnows
  • \\n
  • The idle notifier now works at the Ectofuntus and at looms
  • \\n
  • Spoon and weary face emojis have been added (--o and Dx respectively)
  • \\n
  • The loot tracker now tracks the new chests from the Shades of Morton and Isle of Souls
  • \\n
  • The chat notifications plugin has a new option to send you notifications for receiving private messages
  • \\n
  • The despawn timer in the ground items plugin was fixed for the Nightmare instance, and one has been added for items placed on tables
  • \\n
  • A Use swap has been added for battlestaves
  • \\n
  • The chat color username recolor option now works correctly on ironmen and player moderators
  • \\n
  • The player name of the client which sends tray notifications is now included in notification title
  • \\n
  • The 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
  • \\n
  • The music volume percentage is now shown when hovering the draggable handle, instead of just the track
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors in this release & 1.6.39!

\\n
Adam (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.15d2d6c8.chunk.js b/static/js/14.5fee5def.chunk.js similarity index 98% rename from static/js/14.15d2d6c8.chunk.js rename to static/js/14.5fee5def.chunk.js index 92315f1a1e..9e56b6ea5c 100644 --- a/static/js/14.15d2d6c8.chunk.js +++ b/static/js/14.5fee5def.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)}}},450:function(e,a,t){},471:function(e,a,t){"use strict";t.r(a);t(450);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.15d2d6c8.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)}}},452:function(e,a,t){},473:function(e,a,t){"use strict";t.r(a);t(452);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.5fee5def.chunk.js.map \ No newline at end of file diff --git a/static/js/14.15d2d6c8.chunk.js.map b/static/js/14.5fee5def.chunk.js.map similarity index 99% rename from static/js/14.15d2d6c8.chunk.js.map rename to static/js/14.5fee5def.chunk.js.map index eba657e09f..709ceccfe5 100644 --- a/static/js/14.15d2d6c8.chunk.js.map +++ b/static/js/14.5fee5def.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.15d2d6c8.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n
\n
\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 (e.target.value = '')}\n accept=\".dmg,.jar,.exe,.AppImage\"\n />\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 {' '}\n {name} is from{' '}\n https://runelite.net\n

\n

\n
\n
\n )\n }\n\n if (fileState === FILE_STATE.SHORTCUT) {\n return (\n \n
\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
\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}{' '}\n is not from{' '}\n https://runelite.net\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":"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,kGC5B5C,GACb,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,mEACA,oE,wDC7BF,MAAM8B,EAAa3B,OAAO4B,OAAO,CAC/BC,KAAMC,OAAO,QACbC,SAAUD,OAAO,YACjBE,SAAUF,OAAO,YACjBG,QAASH,OAAO,WAChBI,MAAOJ,OAAO,WAGVK,EAAOC,IACXA,EAAEC,iBACFD,EAAEE,mBAGJ,MAAMC,UAAexB,IACnBC,YAAYnB,GACVoB,MAAMpB,GAENqB,KAAKC,MAAQ,CACXqB,UAAU,EACVC,SAAU,KACVC,UAAWf,EAAWE,MAGxBX,KAAKyB,MAAQzB,KAAKyB,MAAMC,KAAK1B,MAC7BA,KAAK2B,aAAe3B,KAAK2B,aAAaD,KAAK1B,MAC3CA,KAAK4B,YAAc5B,KAAK4B,YAAYF,KAAK1B,MACzCA,KAAK6B,SAAW7B,KAAK6B,SAASH,KAAK1B,MACnCA,KAAK8B,UAAY9B,KAAK8B,UAAUJ,KAAK1B,MACrCA,KAAK+B,UAAY/B,KAAK+B,UAAUL,KAAK1B,MACrCA,KAAKgC,YAAchC,KAAKgC,YAAYN,KAAK1B,MAG3C+B,UAAUE,GACR,MAAMC,EAAOlC,KAAKC,MAAMsB,SAExB,IAAIC,EAAYf,EAAWM,QACf,MAARmB,EACFV,EAAYf,EAAWE,KACduB,EAAKC,MAAM,sBACpBX,EAAYf,EAAWK,SACdsB,EAAWC,SAASJ,GAC7BT,EAAYf,EAAWI,SACZb,KAAKrB,MAAM2D,OAAOL,KAC7BT,EAAYf,EAAWO,OAGzBhB,KAAKO,SAAS,CACZiB,cAIJC,QACEzB,KAAKO,SAAS,CACZe,UAAU,EACVC,SAAU,KACVC,UAAWf,EAAWE,OAI1BqB,YAAYO,GACV,IAAKA,GAA0B,IAAjBA,EAAMC,OAElB,YADAxC,KAAKyB,QAIP,MAAMgB,EAAOF,EAAM,GAEnBvC,KAAKO,SAAS,CACZgB,SAAUkB,EAAKP,OAGjB,MAAMQ,EAAS,IAAIC,WACnBD,EAAOE,OAAS1B,GAAK2B,YAAO3B,EAAE4B,OAAOC,OAAQ/C,KAAK+B,WAClDW,EAAOM,kBAAkBP,GACzBQ,OAAOC,SAAS,EAAG,GAGrBvB,aAAawB,GACXlC,EAAKkC,GACLnD,KAAKgC,YAAYmB,EAAIL,OAAOP,OAG9BX,YAAYuB,GACVnD,KAAK8B,UAAUqB,GACfnD,KAAKgC,YAAYmB,EAAIC,aAAab,OAGpCV,SAASsB,GACPlC,EAAKkC,GACLnD,KAAKO,SAAS,CAAEe,UAAU,IAG5BQ,UAAUqB,GACRlC,EAAKkC,GACLnD,KAAKO,SAAS,CAAEe,UAAU,IAG5B+B,cACE,OACElF,YAACmF,IAAQ,KACPnF,YAAA,OAAKE,MAAM,aACTF,YAAA,OACEE,MAAQ,mBAAiB2B,KAAKC,MAAMqB,SAAW,WAAa,IAC5DiC,OAAQvD,KAAK4B,YACb4B,WAAYxD,KAAK6B,SACjB4B,YAAazD,KAAK6B,SAClB6B,YAAa1D,KAAK8B,UAClB6B,UAAW3D,KAAK8B,WAEhB3D,YAAA,SAAG,+EAMPA,YAAA,OAAKE,MAAM,eACTF,YAAA,OAAKE,MAAM,oBACTF,YAAA,OAAKE,MAAM,eACTF,YAAA,SACEyF,KAAK,OACLvF,MAAM,oBACND,GAAG,iBACHyF,SAAU7D,KAAK2B,aACfmC,QAAS5C,GAAMA,EAAE4B,OAAOiB,MAAQ,GAChCC,OAAO,6BAET7F,YAAA,SAAOE,MAAM,oBAAoB4F,IAAI,kBAAiB,mBAUlEC,UAAUhC,EAAMV,GACd,OAAIA,IAAcf,EAAWE,KACpB,KAGLa,IAAcf,EAAWO,MAEzB7C,YAACmF,IAAQ,KACPnF,YAAA,OAAKE,MAAM,0BACTF,YAAA,UAAQE,MAAM,2BAA2ByF,QAAS9D,KAAKyB,OACrDtD,YAAA,KAAGE,MAAM,wBAGbF,YAAA,OAAKE,MAAM,aACTF,YAAA,KAAGE,MAAM,yBACPF,YAAA,UACEA,YAAA,KAAGE,MAAM,0CAA2C,IACpDF,YAAA,SAAI+D,GAAS,WAAS,IACtB/D,YAAA,KAAGG,KAAK,wBAAuB,4BAQvCkD,IAAcf,EAAWK,SAEzB3C,YAACmF,IAAQ,KACPnF,YAAA,OAAKE,MAAM,0BACTF,YAAA,UAAQE,MAAM,2BAA2ByF,QAAS9D,KAAKyB,OACrDtD,YAAA,KAAGE,MAAM,wBAGbF,YAAA,OAAKE,MAAM,yBACTF,YAAA,SACEA,YAAA,SAAI+D,GAAS,0CAEf/D,YAAA,SAAG,8DAMPqD,IAAcf,EAAWI,SAEzB1C,YAACmF,IAAQ,KACPnF,YAAA,OAAKE,MAAM,0BACTF,YAAA,UAAQE,MAAM,2BAA2ByF,QAAS9D,KAAKyB,OACrDtD,YAAA,KAAGE,MAAM,wBAGbF,YAAA,OAAKE,MAAM,yBACTF,YAAA,SACEA,YAAA,SAAI+D,GAAS,kCAEf/D,YAAA,SAAG,8DAOTA,YAACmF,IAAQ,KACPnF,YAAA,OAAKE,MAAM,yBACTF,YAAA,UAAQE,MAAM,2BAA2ByF,QAAS9D,KAAKyB,OACrDtD,YAAA,KAAGE,MAAM,wBAGbF,YAAA,OAAKE,MAAM,aACTF,YAAA,KAAGE,MAAM,yBACPF,YAAA,UACEA,YAAA,KAAGE,MAAM,yCAAyC,IAACF,YAAA,SAAI+D,GAAU,IAAI,cACzD,IACZ/D,YAAA,KAAGG,KAAK,wBAAuB,0BAIlC4D,EAAKC,MAAM,wCACVhE,YAAAmF,IAAA,KACEnF,YAAA,UAAI,2IAKJA,YAAA,SAAG,6FAIHA,YAAA,UACEA,YAAA,UAAI,kCACJA,YAAA,UAAI,gDACJA,YAAA,UAAI,kCACJA,YAAA,UAAI,gCACJA,YAAA,UAAI,uDACJA,YAAA,UAAI,iDAC6C,IAC/CA,YAAA,KAAGG,KAAK,8CAA6C,2BAMzDH,YAAA,SAAG,mJAKHA,YAAA,SAAG,+GAKHA,YAAA,SAAG,kEAC+D,IAChEA,YAAA,KAAGG,KAAK,wBAAuB,wBAAwB,QASrEkC,SACE,OACErC,YAACI,IAAM,KACLJ,YAACgG,IAAI,CACHC,MAAQ,2BAA0BC,IAAKD,MACvCE,YAAY,0CAEdnG,YAAA,WAASC,GAAG,SAASC,MAAM,aACzBF,YAAA,OAAKE,MAAM,mBACTF,YAAA,OAAKE,MAAM,aACR2B,KAAKkE,UAAUlE,KAAKC,MAAMsB,SAAUvB,KAAKC,MAAMuB,YAElDrD,YAAA,OAAKE,MAAM,QAAQ2B,KAAKqD,mBAyBrBkB,sBAjBStE,IAAK,CAC3BqC,OAAQkC,YAAUvE,GAClBwE,UAAWC,YAAazE,KAGC0E,GACzBC,YACE,CACEC,iBAEFF,GAOWJ,CAGb7E,YAP2BoF,UAA4B,IAArB,YAAED,GAAarG,QAC3CqG,KAMNnF,CAA8B2B","file":"static/js/14.5fee5def.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n
\n
\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 (e.target.value = '')}\n accept=\".dmg,.jar,.exe,.AppImage\"\n />\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 {' '}\n {name} is from{' '}\n https://runelite.net\n

\n

\n
\n
\n )\n }\n\n if (fileState === FILE_STATE.SHORTCUT) {\n return (\n \n
\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
\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}{' '}\n is not from{' '}\n https://runelite.net\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.35d283f7.chunk.js b/static/js/140.8ac8b0e1.chunk.js similarity index 92% rename from static/js/140.35d283f7.chunk.js rename to static/js/140.8ac8b0e1.chunk.js index 2d3ab197d5..0e2b33eecc 100644 --- a/static/js/140.35d283f7.chunk.js +++ b/static/js/140.8ac8b0e1.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[140],{417: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

prices

\n

These 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.

\n

In 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.

\n

We 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.35d283f7.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[140],{418: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

prices

\n

These 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.

\n

In 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.

\n

We 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.8ac8b0e1.chunk.js.map \ No newline at end of file diff --git a/static/js/140.35d283f7.chunk.js.map b/static/js/140.8ac8b0e1.chunk.js.map similarity index 96% rename from static/js/140.35d283f7.chunk.js.map rename to static/js/140.8ac8b0e1.chunk.js.map index f786e19c8d..56ff65e934 100644 --- a/static/js/140.35d283f7.chunk.js.map +++ b/static/js/140.8ac8b0e1.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.35d283f7.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

\\\"prices\\\"

\\n

These 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.

\\n

In 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.

\\n

We 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.8ac8b0e1.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

\\\"prices\\\"

\\n

These 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.

\\n

In 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.

\\n

We 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.ad369817.chunk.js b/static/js/141.2565231e.chunk.js similarity index 98% rename from static/js/141.ad369817.chunk.js rename to static/js/141.2565231e.chunk.js index 8e283765bd..c63131c63e 100644 --- a/static/js/141.ad369817.chunk.js +++ b/static/js/141.2565231e.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[141],{418: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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Kingdom of Miscellania\nplugin can now send\nnotifications upon login when your coffer or approval are below configured values
  • \n
  • You 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
  • \n
  • The 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
  • \n
  • Your slayer task and streak information are\nnow profile-specific, and will be tracked correctly between accounts
  • \n
  • The Chat Notifications plugin now\nsupports highlighting messages which match provided regular expressions, similar to the Chat\nFilter plugin
  • \n
  • The Discord plugin now offers a toggle to\nshow RuneLite as the active game while on the login screen
  • \n
  • XP Globe icons now resize with the globes
  • \n
  • Ingame personal best times with the recently-added "precise timing" ingame option are now saved\nto the Chat Commands plugin
  • \n
  • The Timers plugin has learned to identify an\nimbued heart magic boost even in situations where the animation does not play
  • \n
  • NPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\nthe NPC Indicators plugin
  • \n
  • The Mining plugin now highlights the active\ndaeyalt essence with an arrow
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 27 contributors this release!

\n
Adam (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.ad369817.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[141],{419: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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Kingdom of Miscellania\nplugin can now send\nnotifications upon login when your coffer or approval are below configured values
  • \n
  • You 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
  • \n
  • The 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
  • \n
  • Your slayer task and streak information are\nnow profile-specific, and will be tracked correctly between accounts
  • \n
  • The Chat Notifications plugin now\nsupports highlighting messages which match provided regular expressions, similar to the Chat\nFilter plugin
  • \n
  • The Discord plugin now offers a toggle to\nshow RuneLite as the active game while on the login screen
  • \n
  • XP Globe icons now resize with the globes
  • \n
  • Ingame personal best times with the recently-added "precise timing" ingame option are now saved\nto the Chat Commands plugin
  • \n
  • The Timers plugin has learned to identify an\nimbued heart magic boost even in situations where the animation does not play
  • \n
  • NPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\nthe NPC Indicators plugin
  • \n
  • The Mining plugin now highlights the active\ndaeyalt essence with an arrow
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 27 contributors this release!

\n
Adam (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.2565231e.chunk.js.map \ No newline at end of file diff --git a/static/js/141.ad369817.chunk.js.map b/static/js/141.2565231e.chunk.js.map similarity index 99% rename from static/js/141.ad369817.chunk.js.map rename to static/js/141.2565231e.chunk.js.map index 0f4185051d..deb9369db3 100644 --- a/static/js/141.ad369817.chunk.js.map +++ b/static/js/141.2565231e.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.ad369817.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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Kingdom of Miscellania\\nplugin can now send\\nnotifications upon login when your coffer or approval are below configured values
  • \\n
  • You 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
  • \\n
  • The 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
  • \\n
  • Your slayer task and streak information are\\nnow profile-specific, and will be tracked correctly between accounts
  • \\n
  • The Chat Notifications plugin now\\nsupports highlighting messages which match provided regular expressions, similar to the Chat\\nFilter plugin
  • \\n
  • The Discord plugin now offers a toggle to\\nshow RuneLite as the active game while on the login screen
  • \\n
  • XP Globe icons now resize with the globes
  • \\n
  • Ingame personal best times with the recently-added "precise timing" ingame option are now saved\\nto the Chat Commands plugin
  • \\n
  • The Timers plugin has learned to identify an\\nimbued heart magic boost even in situations where the animation does not play
  • \\n
  • NPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\\nthe NPC Indicators plugin
  • \\n
  • The Mining plugin now highlights the active\\ndaeyalt essence with an arrow
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 27 contributors this release!

\\n
Adam (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.2565231e.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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Kingdom of Miscellania\\nplugin can now send\\nnotifications upon login when your coffer or approval are below configured values
  • \\n
  • You 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
  • \\n
  • The 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
  • \\n
  • Your slayer task and streak information are\\nnow profile-specific, and will be tracked correctly between accounts
  • \\n
  • The Chat Notifications plugin now\\nsupports highlighting messages which match provided regular expressions, similar to the Chat\\nFilter plugin
  • \\n
  • The Discord plugin now offers a toggle to\\nshow RuneLite as the active game while on the login screen
  • \\n
  • XP Globe icons now resize with the globes
  • \\n
  • Ingame personal best times with the recently-added "precise timing" ingame option are now saved\\nto the Chat Commands plugin
  • \\n
  • The Timers plugin has learned to identify an\\nimbued heart magic boost even in situations where the animation does not play
  • \\n
  • NPCs which change forms, such as werewolves and nylocas, are now properly highlighted by name by\\nthe NPC Indicators plugin
  • \\n
  • The Mining plugin now highlights the active\\ndaeyalt essence with an arrow
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 27 contributors this release!

\\n
Adam (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.0ef81b98.chunk.js b/static/js/142.fa0d2df4.chunk.js similarity index 98% rename from static/js/142.0ef81b98.chunk.js rename to static/js/142.fa0d2df4.chunk.js index d1c08e4704..25c14a0438 100644 --- a/static/js/142.0ef81b98.chunk.js +++ b/static/js/142.fa0d2df4.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[142],{419: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.

\n

The 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
Hallowed Sepulchre as it normally appearsHallowed Sepulchre shown with the lower floor rendering disabled
\n

The friend list plugin now has an option to show the world a player logged into on the log in message.

\n

login

\n

The item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.

\n

slaughter

\n

A 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

world-hopper

\n

The chat colors config has gained an additional option to allow recoloring your own username in chat.

\n

chat-name-color

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • STASH 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
  • \n
  • When using Lookup from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player
  • \n
  • Items required for skill challenge clues are now found when using the clue bank tag
  • \n
  • The fishing trawler time remaining display has been updated to reflect the recent changes to the game duration
  • \n
  • The status bars alignment in modern resizable mode has been fixed back to its original position
  • \n
  • The obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted
  • \n
  • Tempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker
  • \n
  • The Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing
  • \n
  • A !pb tempoross command has been added (requires getting 1 additional kill post-update)
  • \n
  • The spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately
  • \n
  • Battlestaffs have been added to the fletching calculator
  • \n
  • A Leave swap has been added to the menu entry swapper for leaving Tempoross after a game
  • \n
  • A bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed
  • \n
  • The camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 21 contributors this release!

\n
Adam (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.0ef81b98.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[142],{420: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.

\n

The 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
Hallowed Sepulchre as it normally appearsHallowed Sepulchre shown with the lower floor rendering disabled
\n

The friend list plugin now has an option to show the world a player logged into on the log in message.

\n

login

\n

The item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.

\n

slaughter

\n

A 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

world-hopper

\n

The chat colors config has gained an additional option to allow recoloring your own username in chat.

\n

chat-name-color

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • STASH 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
  • \n
  • When using Lookup from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player
  • \n
  • Items required for skill challenge clues are now found when using the clue bank tag
  • \n
  • The fishing trawler time remaining display has been updated to reflect the recent changes to the game duration
  • \n
  • The status bars alignment in modern resizable mode has been fixed back to its original position
  • \n
  • The obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted
  • \n
  • Tempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker
  • \n
  • The Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing
  • \n
  • A !pb tempoross command has been added (requires getting 1 additional kill post-update)
  • \n
  • The spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately
  • \n
  • Battlestaffs have been added to the fletching calculator
  • \n
  • A Leave swap has been added to the menu entry swapper for leaving Tempoross after a game
  • \n
  • A bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed
  • \n
  • The camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 21 contributors this release!

\n
Adam (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.fa0d2df4.chunk.js.map \ No newline at end of file diff --git a/static/js/142.0ef81b98.chunk.js.map b/static/js/142.fa0d2df4.chunk.js.map similarity index 99% rename from static/js/142.0ef81b98.chunk.js.map rename to static/js/142.fa0d2df4.chunk.js.map index 8a4cf69aff..c73d21528b 100644 --- a/static/js/142.0ef81b98.chunk.js.map +++ b/static/js/142.fa0d2df4.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.0ef81b98.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.

\\n

The 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"Hallowed\\\"Hallowed
\\n

The friend list plugin now has an option to show the world a player logged into on the log in message.

\\n

\\\"login\\\"

\\n

The item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.

\\n

\\\"slaughter\\\"

\\n

A 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

\\\"world-hopper\\\"

\\n

The chat colors config has gained an additional option to allow recoloring your own username in chat.

\\n

\\\"chat-name-color\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • STASH 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
  • \\n
  • When using Lookup from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player
  • \\n
  • Items required for skill challenge clues are now found when using the clue bank tag
  • \\n
  • The fishing trawler time remaining display has been updated to reflect the recent changes to the game duration
  • \\n
  • The status bars alignment in modern resizable mode has been fixed back to its original position
  • \\n
  • The obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted
  • \\n
  • Tempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker
  • \\n
  • The Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing
  • \\n
  • A !pb tempoross command has been added (requires getting 1 additional kill post-update)
  • \\n
  • The spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately
  • \\n
  • Battlestaffs have been added to the fletching calculator
  • \\n
  • A Leave swap has been added to the menu entry swapper for leaving Tempoross after a game
  • \\n
  • A bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed
  • \\n
  • The camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 21 contributors this release!

\\n
Adam (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.fa0d2df4.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.

\\n

The 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"Hallowed\\\"Hallowed
\\n

The friend list plugin now has an option to show the world a player logged into on the log in message.

\\n

\\\"login\\\"

\\n

The item charges plugin can now show infoboxes with a charge count for braclets of slaughter, expeditious bracelets, and the chronicle.

\\n

\\\"slaughter\\\"

\\n

A 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

\\\"world-hopper\\\"

\\n

The chat colors config has gained an additional option to allow recoloring your own username in chat.

\\n

\\\"chat-name-color\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • STASH 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
  • \\n
  • When using Lookup from the chatbox, the hiscore plugin will now use the correct hiscores based on the ironman symbol of the player
  • \\n
  • Items required for skill challenge clues are now found when using the clue bank tag
  • \\n
  • The fishing trawler time remaining display has been updated to reflect the recent changes to the game duration
  • \\n
  • The status bars alignment in modern resizable mode has been fixed back to its original position
  • \\n
  • The obstacles on the way to the Rellekka lighthouse now have their clickboxes highlighted
  • \\n
  • Tempoross and the chest in the Threatre of Blood lobby are now tracked by the loot tracker
  • \\n
  • The Imcando hammer has been added to the idle notifier, once again allowing idle notifications when done smithing
  • \\n
  • A !pb tempoross command has been added (requires getting 1 additional kill post-update)
  • \\n
  • The spec counter has been fixed to not count bandos godsword and bandos godsword (or) specs separately
  • \\n
  • Battlestaffs have been added to the fletching calculator
  • \\n
  • A Leave swap has been added to the menu entry swapper for leaving Tempoross after a game
  • \\n
  • A bug causing the GPU plugin to break when antialiasing is forced by the system has been fixed
  • \\n
  • The camera plugin now has an option to keep the vertical camera position when aligning the camera to cardinal directions
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 21 contributors this release!

\\n
Adam (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.69d890ca.chunk.js b/static/js/143.96cc9182.chunk.js similarity index 98% rename from static/js/143.69d890ca.chunk.js rename to static/js/143.96cc9182.chunk.js index 4e4668867f..c0e8061663 100644 --- a/static/js/143.69d890ca.chunk.js +++ b/static/js/143.96cc9182.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[143],{420: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

Clan member icons

\n

We\'ve added support for clans across various plugins, including:

\n
    \n
  • Support for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\nchat colors, and chat notifications plugins
  • \n
  • The Minimap plugin can recolor clan member player dots
  • \n
  • You can hop-to clan members\' worlds using the World Hopper plugin
  • \n
  • The Player Indicator plugin has highlighting for clan members
  • \n
  • The Twitch plugin now uses /t as its chat trigger
  • \n
\n

Additionally, 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

Chat channel typing modes

\n

Party Panel

\n

We 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

Party plugin panel

\n

XP Tracker Per-Hour Rate Resetting

\n

You 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Item Charges plugin now has a separate toggle for Guthix rests
  • \n
  • Chat message recoloring is fixed for players with spaces in their ingame name
  • \n
  • Skill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 6 contributors this release!

\n
Adam (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.69d890ca.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[143],{421: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

Clan member icons

\n

We\'ve added support for clans across various plugins, including:

\n
    \n
  • Support for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\nchat colors, and chat notifications plugins
  • \n
  • The Minimap plugin can recolor clan member player dots
  • \n
  • You can hop-to clan members\' worlds using the World Hopper plugin
  • \n
  • The Player Indicator plugin has highlighting for clan members
  • \n
  • The Twitch plugin now uses /t as its chat trigger
  • \n
\n

Additionally, 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

Chat channel typing modes

\n

Party Panel

\n

We 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

Party plugin panel

\n

XP Tracker Per-Hour Rate Resetting

\n

You 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The Item Charges plugin now has a separate toggle for Guthix rests
  • \n
  • Chat message recoloring is fixed for players with spaces in their ingame name
  • \n
  • Skill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 6 contributors this release!

\n
Adam (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.96cc9182.chunk.js.map \ No newline at end of file diff --git a/static/js/143.69d890ca.chunk.js.map b/static/js/143.96cc9182.chunk.js.map similarity index 98% rename from static/js/143.69d890ca.chunk.js.map rename to static/js/143.96cc9182.chunk.js.map index bfe29df298..44092e6bfe 100644 --- a/static/js/143.69d890ca.chunk.js.map +++ b/static/js/143.96cc9182.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.69d890ca.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

\\\"Clan

\\n

We've added support for clans across various plugins, including:

\\n
    \\n
  • Support for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\\nchat colors, and chat notifications plugins
  • \\n
  • The Minimap plugin can recolor clan member player dots
  • \\n
  • You can hop-to clan members' worlds using the World Hopper plugin
  • \\n
  • The Player Indicator plugin has highlighting for clan members
  • \\n
  • The Twitch plugin now uses /t as its chat trigger
  • \\n
\\n

Additionally, 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

\\\"Chat

\\n

Party Panel

\\n

We 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

\\\"Party

\\n

XP Tracker Per-Hour Rate Resetting

\\n

You 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Item Charges plugin now has a separate toggle for Guthix rests
  • \\n
  • Chat message recoloring is fixed for players with spaces in their ingame name
  • \\n
  • Skill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 6 contributors this release!

\\n
Adam (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.96cc9182.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

\\\"Clan

\\n

We've added support for clans across various plugins, including:

\\n
    \\n
  • Support for clan messages in the chat timestamps, chat history, chat commands, chat filter, emoji,\\nchat colors, and chat notifications plugins
  • \\n
  • The Minimap plugin can recolor clan member player dots
  • \\n
  • You can hop-to clan members' worlds using the World Hopper plugin
  • \\n
  • The Player Indicator plugin has highlighting for clan members
  • \\n
  • The Twitch plugin now uses /t as its chat trigger
  • \\n
\\n

Additionally, 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

\\\"Chat

\\n

Party Panel

\\n

We 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

\\\"Party

\\n

XP Tracker Per-Hour Rate Resetting

\\n

You 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The Item Charges plugin now has a separate toggle for Guthix rests
  • \\n
  • Chat message recoloring is fixed for players with spaces in their ingame name
  • \\n
  • Skill challenge clues requiring a hammer now recognize the Imcando hammer as being accepted
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 6 contributors this release!

\\n
Adam (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.90f1e2de.chunk.js b/static/js/144.498696a6.chunk.js similarity index 98% rename from static/js/144.90f1e2de.chunk.js rename to static/js/144.498696a6.chunk.js index f70cf6694b..9884b413eb 100644 --- a/static/js/144.90f1e2de.chunk.js +++ b/static/js/144.498696a6.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[144],{421: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.

\n

The various content updates centered around Shayzien and the A Kingdom Divided quest have been\nupdated in the client, including:

\n
    \n
  • Many existing clue scrolls in the Shayzien region have had their solutions or directions changed,\nand a number of new clues have been added
  • \n
  • The new Arceuus spells now display timers of their duration and cooldown
  • \n
  • The Shayzien agility course has a lap counter and shows the number of laps needed to reach your\nlevel or xp goal
  • \n
  • World map icons and tooltips have been added for the A Kingdom Divided quest location and many\nskilling and resource icons in the Shayzien area
  • \n
  • Skill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\nArceuus spells
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now look up clan members\' hiscore information via the clan member listing
  • \n
  • The 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
  • \n
  • The 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.
  • \n
  • Menu entry swapper options have been added for achievement diary item teleports and the\nconstruction cape
  • \n
  • Ground markers, NPC indicators, and object markers now support a configurable width for their\noverlays
  • \n
  • XP 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
  • \n
  • POH icons for house objects decorated with the goblin decorations now display correctly
  • \n
  • Ground item despawn timers have been corrected for items appearing while fighting Tempoross
  • \n
  • The new A Kingdom Divided login screen has been added to the Login Screen plugin
  • \n
  • The colors of the inventory grid overlay are now customizable
  • \n
  • The spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\nresets its counter when leaving instanced areas.
  • \n
  • Wintertodt supply crate loots are now tracked in the Loot Tracker plugin
  • \n
  • An option has been added to capture screenshots when achieving new collection log entries
  • \n
  • Screenshots captured while on tournament/beta worlds are now stored to a separate folder for\nbetter organization
  • \n
  • Item stats shown for stamina potions while wearing the ring of endurance now correctly show it\nrestoring 40 run energy rather than the usual 20
  • \n
  • A bug which could cause clients to launch without correctly downloading Plugin Hub listings has\nbeen fixed
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.90f1e2de.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[144],{422: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.

\n

The various content updates centered around Shayzien and the A Kingdom Divided quest have been\nupdated in the client, including:

\n
    \n
  • Many existing clue scrolls in the Shayzien region have had their solutions or directions changed,\nand a number of new clues have been added
  • \n
  • The new Arceuus spells now display timers of their duration and cooldown
  • \n
  • The Shayzien agility course has a lap counter and shows the number of laps needed to reach your\nlevel or xp goal
  • \n
  • World map icons and tooltips have been added for the A Kingdom Divided quest location and many\nskilling and resource icons in the Shayzien area
  • \n
  • Skill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\nArceuus spells
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You can now look up clan members\' hiscore information via the clan member listing
  • \n
  • The 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
  • \n
  • The 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.
  • \n
  • Menu entry swapper options have been added for achievement diary item teleports and the\nconstruction cape
  • \n
  • Ground markers, NPC indicators, and object markers now support a configurable width for their\noverlays
  • \n
  • XP 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
  • \n
  • POH icons for house objects decorated with the goblin decorations now display correctly
  • \n
  • Ground item despawn timers have been corrected for items appearing while fighting Tempoross
  • \n
  • The new A Kingdom Divided login screen has been added to the Login Screen plugin
  • \n
  • The colors of the inventory grid overlay are now customizable
  • \n
  • The spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\nresets its counter when leaving instanced areas.
  • \n
  • Wintertodt supply crate loots are now tracked in the Loot Tracker plugin
  • \n
  • An option has been added to capture screenshots when achieving new collection log entries
  • \n
  • Screenshots captured while on tournament/beta worlds are now stored to a separate folder for\nbetter organization
  • \n
  • Item stats shown for stamina potions while wearing the ring of endurance now correctly show it\nrestoring 40 run energy rather than the usual 20
  • \n
  • A bug which could cause clients to launch without correctly downloading Plugin Hub listings has\nbeen fixed
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.498696a6.chunk.js.map \ No newline at end of file diff --git a/static/js/144.90f1e2de.chunk.js.map b/static/js/144.498696a6.chunk.js.map similarity index 99% rename from static/js/144.90f1e2de.chunk.js.map rename to static/js/144.498696a6.chunk.js.map index 637970c97d..d6d3285ba2 100644 --- a/static/js/144.90f1e2de.chunk.js.map +++ b/static/js/144.498696a6.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.90f1e2de.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.

\\n

The various content updates centered around Shayzien and the A Kingdom Divided quest have been\\nupdated in the client, including:

\\n
    \\n
  • Many existing clue scrolls in the Shayzien region have had their solutions or directions changed,\\nand a number of new clues have been added
  • \\n
  • The new Arceuus spells now display timers of their duration and cooldown
  • \\n
  • The Shayzien agility course has a lap counter and shows the number of laps needed to reach your\\nlevel or xp goal
  • \\n
  • World map icons and tooltips have been added for the A Kingdom Divided quest location and many\\nskilling and resource icons in the Shayzien area
  • \\n
  • Skill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\\nArceuus spells
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now look up clan members' hiscore information via the clan member listing
  • \\n
  • The 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
  • \\n
  • The 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.
  • \\n
  • Menu entry swapper options have been added for achievement diary item teleports and the\\nconstruction cape
  • \\n
  • Ground markers, NPC indicators, and object markers now support a configurable width for their\\noverlays
  • \\n
  • XP 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
  • \\n
  • POH icons for house objects decorated with the goblin decorations now display correctly
  • \\n
  • Ground item despawn timers have been corrected for items appearing while fighting Tempoross
  • \\n
  • The new A Kingdom Divided login screen has been added to the Login Screen plugin
  • \\n
  • The colors of the inventory grid overlay are now customizable
  • \\n
  • The spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\\nresets its counter when leaving instanced areas.
  • \\n
  • Wintertodt supply crate loots are now tracked in the Loot Tracker plugin
  • \\n
  • An option has been added to capture screenshots when achieving new collection log entries
  • \\n
  • Screenshots captured while on tournament/beta worlds are now stored to a separate folder for\\nbetter organization
  • \\n
  • Item stats shown for stamina potions while wearing the ring of endurance now correctly show it\\nrestoring 40 run energy rather than the usual 20
  • \\n
  • A bug which could cause clients to launch without correctly downloading Plugin Hub listings has\\nbeen fixed
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.498696a6.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.

\\n

The various content updates centered around Shayzien and the A Kingdom Divided quest have been\\nupdated in the client, including:

\\n
    \\n
  • Many existing clue scrolls in the Shayzien region have had their solutions or directions changed,\\nand a number of new clues have been added
  • \\n
  • The new Arceuus spells now display timers of their duration and cooldown
  • \\n
  • The Shayzien agility course has a lap counter and shows the number of laps needed to reach your\\nlevel or xp goal
  • \\n
  • World map icons and tooltips have been added for the A Kingdom Divided quest location and many\\nskilling and resource icons in the Shayzien area
  • \\n
  • Skill calculator entries have been added for demonic ashes, Shayzien agility courses, and the new\\nArceuus spells
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You can now look up clan members' hiscore information via the clan member listing
  • \\n
  • The 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
  • \\n
  • The 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.
  • \\n
  • Menu entry swapper options have been added for achievement diary item teleports and the\\nconstruction cape
  • \\n
  • Ground markers, NPC indicators, and object markers now support a configurable width for their\\noverlays
  • \\n
  • XP 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
  • \\n
  • POH icons for house objects decorated with the goblin decorations now display correctly
  • \\n
  • Ground item despawn timers have been corrected for items appearing while fighting Tempoross
  • \\n
  • The new A Kingdom Divided login screen has been added to the Login Screen plugin
  • \\n
  • The colors of the inventory grid overlay are now customizable
  • \\n
  • The spec counter plugin now displays special attacks landed on the Alchemical Hydra. It also\\nresets its counter when leaving instanced areas.
  • \\n
  • Wintertodt supply crate loots are now tracked in the Loot Tracker plugin
  • \\n
  • An option has been added to capture screenshots when achieving new collection log entries
  • \\n
  • Screenshots captured while on tournament/beta worlds are now stored to a separate folder for\\nbetter organization
  • \\n
  • Item stats shown for stamina potions while wearing the ring of endurance now correctly show it\\nrestoring 40 run energy rather than the usual 20
  • \\n
  • A bug which could cause clients to launch without correctly downloading Plugin Hub listings has\\nbeen fixed
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.c322b12c.chunk.js b/static/js/145.8bdb0315.chunk.js similarity index 99% rename from static/js/145.c322b12c.chunk.js rename to static/js/145.8bdb0315.chunk.js index 61105e3c40..88ad4381dc 100644 --- a/static/js/145.c322b12c.chunk.js +++ b/static/js/145.8bdb0315.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[145],{422: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\n\n\n\n\n\n\n\n\n\n\n\n\n
1px outline2px outline10px feathered outline
Dust devils highlighted with a 1px outlineDust devils highlighted with a 2px outlineDust devils highlighted with a 1px outline
\n

We\'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

\n

Website feature additions

\n

We\'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

Olm boss fight markers

\n

Additionally, 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A border width option has been added to the Ground Markers plugin
  • \n
  • The Inventory Viewer has an option to become hidden when your inventory tab is open
  • \n
  • The Barbarian Assault lobby and healer widgets are now moveable using our overlay system
  • \n
  • The 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
  • \n
  • Recolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\nbank value
  • \n
  • The Wintertodt plugin is now better at detecting when you have started fletching
  • \n
  • The thrall timer counts the extra time given from having a boosted magic level
  • \n
  • The XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\ntoward a configured XP goal
  • \n
  • A number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.c322b12c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[145],{423: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\n\n\n\n\n\n\n\n\n\n\n\n\n
1px outline2px outline10px feathered outline
Dust devils highlighted with a 1px outlineDust devils highlighted with a 2px outlineDust devils highlighted with a 1px outline
\n

We\'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

\n

Website feature additions

\n

We\'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

Olm boss fight markers

\n

Additionally, 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A border width option has been added to the Ground Markers plugin
  • \n
  • The Inventory Viewer has an option to become hidden when your inventory tab is open
  • \n
  • The Barbarian Assault lobby and healer widgets are now moveable using our overlay system
  • \n
  • The 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
  • \n
  • Recolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\nbank value
  • \n
  • The Wintertodt plugin is now better at detecting when you have started fletching
  • \n
  • The thrall timer counts the extra time given from having a boosted magic level
  • \n
  • The XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\ntoward a configured XP goal
  • \n
  • A number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.8bdb0315.chunk.js.map \ No newline at end of file diff --git a/static/js/145.c322b12c.chunk.js.map b/static/js/145.8bdb0315.chunk.js.map similarity index 99% rename from static/js/145.c322b12c.chunk.js.map rename to static/js/145.8bdb0315.chunk.js.map index cf466b544d..8582628771 100644 --- a/static/js/145.c322b12c.chunk.js.map +++ b/static/js/145.8bdb0315.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.c322b12c.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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
1px outline2px outline10px feathered outline
\\\"Dust\\\"Dust\\\"Dust
\\n

We'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

\\n

Website feature additions

\\n

We'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

\\\"Olm

\\n

Additionally, 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A border width option has been added to the Ground Markers plugin
  • \\n
  • The Inventory Viewer has an option to become hidden when your inventory tab is open
  • \\n
  • The Barbarian Assault lobby and healer widgets are now moveable using our overlay system
  • \\n
  • The 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
  • \\n
  • Recolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\\nbank value
  • \\n
  • The Wintertodt plugin is now better at detecting when you have started fletching
  • \\n
  • The thrall timer counts the extra time given from having a boosted magic level
  • \\n
  • The XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\\ntoward a configured XP goal
  • \\n
  • A number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.8bdb0315.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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
1px outline2px outline10px feathered outline
\\\"Dust\\\"Dust\\\"Dust
\\n

We'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

\\n

Website feature additions

\\n

We'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

\\\"Olm

\\n

Additionally, 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A border width option has been added to the Ground Markers plugin
  • \\n
  • The Inventory Viewer has an option to become hidden when your inventory tab is open
  • \\n
  • The Barbarian Assault lobby and healer widgets are now moveable using our overlay system
  • \\n
  • The 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
  • \\n
  • Recolored versions of the Blade of Saeldor and Bow of Faerdhinen correctly count toward your total\\nbank value
  • \\n
  • The Wintertodt plugin is now better at detecting when you have started fletching
  • \\n
  • The thrall timer counts the extra time given from having a boosted magic level
  • \\n
  • The XP Tracker plugin will no longer forget to draw an intermediate marker for the last level\\ntoward a configured XP goal
  • \\n
  • A number of Shayzien and Great Kourend clue scroll steps have had their text or enemies corrected
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.da2d51de.chunk.js b/static/js/146.c5fa6642.chunk.js similarity index 97% rename from static/js/146.da2d51de.chunk.js rename to static/js/146.c5fa6642.chunk.js index 3521a21aba..cf092c2991 100644 --- a/static/js/146.da2d51de.chunk.js +++ b/static/js/146.c5fa6642.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[146],{423: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

\"Ground

\n

A 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

\"Pets

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • An option has been added to the Status Bars plugin to hide them while outside of combat
  • \n
  • The Report Button plugin can now display idle time on the report button
  • \n
  • The Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\nboat's Quick-board option
  • \n
  • Teleport scrolls are now given labels via the Item Identification plugin
  • \n
  • The Timers plugin now shows a timer for being stunned while pickpocketing
  • \n
  • A number of locations have had their roof removal mapping improved. No more random roof pieces\nfloating in the air!
  • \n
  • Clue 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
  • \n
  • The Time Tracking overview panel is no longer blocked from opening when your farming contract crop\nis dead
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.da2d51de.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[146],{424: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

\"Ground

\n

A 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

\"Pets

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • An option has been added to the Status Bars plugin to hide them while outside of combat
  • \n
  • The Report Button plugin can now display idle time on the report button
  • \n
  • The Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\nboat's Quick-board option
  • \n
  • Teleport scrolls are now given labels via the Item Identification plugin
  • \n
  • The Timers plugin now shows a timer for being stunned while pickpocketing
  • \n
  • A number of locations have had their roof removal mapping improved. No more random roof pieces\nfloating in the air!
  • \n
  • Clue 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
  • \n
  • The Time Tracking overview panel is no longer blocked from opening when your farming contract crop\nis dead
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.c5fa6642.chunk.js.map \ No newline at end of file diff --git a/static/js/146.da2d51de.chunk.js.map b/static/js/146.c5fa6642.chunk.js.map similarity index 98% rename from static/js/146.da2d51de.chunk.js.map rename to static/js/146.c5fa6642.chunk.js.map index 246c234c6d..d0623101a6 100644 --- a/static/js/146.da2d51de.chunk.js.map +++ b/static/js/146.c5fa6642.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.da2d51de.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

\\\"Ground

\\n

A 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

\\\"Pets

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • An option has been added to the Status Bars plugin to hide them while outside of combat
  • \\n
  • The Report Button plugin can now display idle time on the report button
  • \\n
  • The Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\\nboat's Quick-board option
  • \\n
  • Teleport scrolls are now given labels via the Item Identification plugin
  • \\n
  • The Timers plugin now shows a timer for being stunned while pickpocketing
  • \\n
  • A number of locations have had their roof removal mapping improved. No more random roof pieces\\nfloating in the air!
  • \\n
  • Clue 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
  • \\n
  • The Time Tracking overview panel is no longer blocked from opening when your farming contract crop\\nis dead
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.c5fa6642.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

\\\"Ground

\\n

A 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

\\\"Pets

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • An option has been added to the Status Bars plugin to hide them while outside of combat
  • \\n
  • The Report Button plugin can now display idle time on the report button
  • \\n
  • The Menu Entry Swapper plugin's "Quick Pass/Open/Start/Travel" swap now swaps Zulrah's sacrificial\\nboat's Quick-board option
  • \\n
  • Teleport scrolls are now given labels via the Item Identification plugin
  • \\n
  • The Timers plugin now shows a timer for being stunned while pickpocketing
  • \\n
  • A number of locations have had their roof removal mapping improved. No more random roof pieces\\nfloating in the air!
  • \\n
  • Clue 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
  • \\n
  • The Time Tracking overview panel is no longer blocked from opening when your farming contract crop\\nis dead
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.cae687bf.chunk.js b/static/js/147.32e24664.chunk.js similarity index 98% rename from static/js/147.cae687bf.chunk.js rename to static/js/147.32e24664.chunk.js index fbd080e840..c8030f9ed6 100644 --- a/static/js/147.cae687bf.chunk.js +++ b/static/js/147.32e24664.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[147],{424: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

\n

Login and logout messages for friends and friends chat chanels no longer appear for world hops.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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.
  • \n
  • The NPC Indicators plugin now has a separate fill color option, allowing the fill and border\ncolors to be fully customizable
  • \n
  • We've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports
  • \n
  • To 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.
  • \n
  • Loot Tracker entries now display unit price of item stacks in their tooltips
  • \n
  • The new combat achievement slayer helmet variations are now supported in the Slayer and Clue\nScroll plugins
  • \n
  • The wilderness level vanilla widget has been made moveable
  • \n
  • Swap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4
  • \n
  • The burner timers of the POH plugin have been fixed to be more accurate
  • \n
  • The expanded side panel is now remembered and restored when restoring the sidebar
  • \n
  • UI tooltips on MacOS are no longer cut off by the game screen
  • \n
  • The Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\ninstances such as quest instances
  • \n
  • The Grotesque Guardians instance timer has been changed to 5 minutes
  • \n
  • The Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest
  • \n
  • The Woodcutting plugin no longer shows respawn timers for POH construction trees
  • \n
  • The mining plugin now shows respawn timers for Barronite ore and deposits
  • \n
  • The XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 20 contributors this release!

\n
Adam (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.cae687bf.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[147],{425: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

\n

Login and logout messages for friends and friends chat chanels no longer appear for world hops.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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.
  • \n
  • The NPC Indicators plugin now has a separate fill color option, allowing the fill and border\ncolors to be fully customizable
  • \n
  • We've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports
  • \n
  • To 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.
  • \n
  • Loot Tracker entries now display unit price of item stacks in their tooltips
  • \n
  • The new combat achievement slayer helmet variations are now supported in the Slayer and Clue\nScroll plugins
  • \n
  • The wilderness level vanilla widget has been made moveable
  • \n
  • Swap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4
  • \n
  • The burner timers of the POH plugin have been fixed to be more accurate
  • \n
  • The expanded side panel is now remembered and restored when restoring the sidebar
  • \n
  • UI tooltips on MacOS are no longer cut off by the game screen
  • \n
  • The Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\ninstances such as quest instances
  • \n
  • The Grotesque Guardians instance timer has been changed to 5 minutes
  • \n
  • The Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest
  • \n
  • The Woodcutting plugin no longer shows respawn timers for POH construction trees
  • \n
  • The mining plugin now shows respawn timers for Barronite ore and deposits
  • \n
  • The XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 20 contributors this release!

\n
Adam (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.32e24664.chunk.js.map \ No newline at end of file diff --git a/static/js/147.cae687bf.chunk.js.map b/static/js/147.32e24664.chunk.js.map similarity index 99% rename from static/js/147.cae687bf.chunk.js.map rename to static/js/147.32e24664.chunk.js.map index 47bb38addb..6c7a572cfc 100644 --- a/static/js/147.cae687bf.chunk.js.map +++ b/static/js/147.32e24664.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.cae687bf.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

\\n

Login and logout messages for friends and friends chat chanels no longer appear for world hops.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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.
  • \\n
  • The NPC Indicators plugin now has a separate fill color option, allowing the fill and border\\ncolors to be fully customizable
  • \\n
  • We've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports
  • \\n
  • To 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.
  • \\n
  • Loot Tracker entries now display unit price of item stacks in their tooltips
  • \\n
  • The new combat achievement slayer helmet variations are now supported in the Slayer and Clue\\nScroll plugins
  • \\n
  • The wilderness level vanilla widget has been made moveable
  • \\n
  • Swap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4
  • \\n
  • The burner timers of the POH plugin have been fixed to be more accurate
  • \\n
  • The expanded side panel is now remembered and restored when restoring the sidebar
  • \\n
  • UI tooltips on MacOS are no longer cut off by the game screen
  • \\n
  • The Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\\ninstances such as quest instances
  • \\n
  • The Grotesque Guardians instance timer has been changed to 5 minutes
  • \\n
  • The Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest
  • \\n
  • The Woodcutting plugin no longer shows respawn timers for POH construction trees
  • \\n
  • The mining plugin now shows respawn timers for Barronite ore and deposits
  • \\n
  • The XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 20 contributors this release!

\\n
Adam (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.32e24664.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

\\n

Login and logout messages for friends and friends chat chanels no longer appear for world hops.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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.
  • \\n
  • The NPC Indicators plugin now has a separate fill color option, allowing the fill and border\\ncolors to be fully customizable
  • \\n
  • We've fixed a bug with the Roof Removal plugin which sometimes caused game crashes on teleports
  • \\n
  • To 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.
  • \\n
  • Loot Tracker entries now display unit price of item stacks in their tooltips
  • \\n
  • The new combat achievement slayer helmet variations are now supported in the Slayer and Clue\\nScroll plugins
  • \\n
  • The wilderness level vanilla widget has been made moveable
  • \\n
  • Swap options have been added to the Menu Entry Swapper plugin for the Desert amulet 4
  • \\n
  • The burner timers of the POH plugin have been fixed to be more accurate
  • \\n
  • The expanded side panel is now remembered and restored when restoring the sidebar
  • \\n
  • UI tooltips on MacOS are no longer cut off by the game screen
  • \\n
  • The Roof Removal plugin has had many areas touched up to better hide roofs, and now works in\\ninstances such as quest instances
  • \\n
  • The Grotesque Guardians instance timer has been changed to 5 minutes
  • \\n
  • The Loot Tracker plugin now detects loot from Camdozaal vault lootboxes and the rogues' chest
  • \\n
  • The Woodcutting plugin no longer shows respawn timers for POH construction trees
  • \\n
  • The mining plugin now shows respawn timers for Barronite ore and deposits
  • \\n
  • The XP Globes overlay no longer tries to draw itself slightly overlapping its bounding box
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 20 contributors this release!

\\n
Adam (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.0770baa3.chunk.js b/static/js/148.eac46e76.chunk.js similarity index 98% rename from static/js/148.0770baa3.chunk.js rename to static/js/148.eac46e76.chunk.js index a8d5b03c68..b4a7dae21a 100644 --- a/static/js/148.0770baa3.chunk.js +++ b/static/js/148.eac46e76.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[148],{425: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\n\n\n\n\n\n\n\n\n\n\n
Nightmare health barsZalcano health bar
Nightmare boss health bar Nightmare pillar health barsZalcano health bar
\n

Ground markers now have a configurable fill opacity.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
0 fill opacity markers50 fill opacity markers (default)150 fill opacity markers
Ground markers with 0 fill opacityGround markers with 50 fill opacityGround markers with 150 fill opacity
\n

MacOS M1 Launcher

\n

MacOS 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Dinh\'s bulwark special attacks are now tracked via the Special Attack Counter plugin
  • \n
  • Inventory tags now appear on items in the gravestone collection interface
  • \n
  • The cannon plugin is more reliable about detecting your cannon placement in situations where your\nanimations are interrupted.
  • \n
  • NPC model outlines are no longer a few pixels mis-aligned when rendered on GPU
  • \n
  • Minimap ground marker overlays have had their positioning corrected
  • \n
  • The 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
  • \n
  • The 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.
  • \n
  • Ducks are now highlighted during bird tasks in the Slayer plugin
  • \n
  • The Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon
  • \n
  • Cannon spots in the Jormungand prison have been added to the Cannon plugin
  • \n
  • The bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\nplugin
  • \n
  • The tag tab tab of the Bank Tags plugin now has a working scrollbar
  • \n
  • The Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes
  • \n
  • The Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\nthat of the Varrock platebody
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.0770baa3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[148],{426: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\n\n\n\n\n\n\n\n\n\n\n
Nightmare health barsZalcano health bar
Nightmare boss health bar Nightmare pillar health barsZalcano health bar
\n

Ground markers now have a configurable fill opacity.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
0 fill opacity markers50 fill opacity markers (default)150 fill opacity markers
Ground markers with 0 fill opacityGround markers with 50 fill opacityGround markers with 150 fill opacity
\n

MacOS M1 Launcher

\n

MacOS 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Dinh\'s bulwark special attacks are now tracked via the Special Attack Counter plugin
  • \n
  • Inventory tags now appear on items in the gravestone collection interface
  • \n
  • The cannon plugin is more reliable about detecting your cannon placement in situations where your\nanimations are interrupted.
  • \n
  • NPC model outlines are no longer a few pixels mis-aligned when rendered on GPU
  • \n
  • Minimap ground marker overlays have had their positioning corrected
  • \n
  • The 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
  • \n
  • The 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.
  • \n
  • Ducks are now highlighted during bird tasks in the Slayer plugin
  • \n
  • The Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon
  • \n
  • Cannon spots in the Jormungand prison have been added to the Cannon plugin
  • \n
  • The bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\nplugin
  • \n
  • The tag tab tab of the Bank Tags plugin now has a working scrollbar
  • \n
  • The Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes
  • \n
  • The Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\nthat of the Varrock platebody
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.eac46e76.chunk.js.map \ No newline at end of file diff --git a/static/js/148.0770baa3.chunk.js.map b/static/js/148.eac46e76.chunk.js.map similarity index 99% rename from static/js/148.0770baa3.chunk.js.map rename to static/js/148.eac46e76.chunk.js.map index e80f6ab0e1..c3e1740b1a 100644 --- a/static/js/148.0770baa3.chunk.js.map +++ b/static/js/148.eac46e76.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.0770baa3.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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Nightmare health barsZalcano health bar
\\\"Nightmare \\\"Nightmare\\\"Zalcano
\\n

Ground markers now have a configurable fill opacity.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
0 fill opacity markers50 fill opacity markers (default)150 fill opacity markers
\\\"Ground\\\"Ground\\\"Ground
\\n

MacOS M1 Launcher

\\n

MacOS 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Dinh's bulwark special attacks are now tracked via the Special Attack Counter plugin
  • \\n
  • Inventory tags now appear on items in the gravestone collection interface
  • \\n
  • The cannon plugin is more reliable about detecting your cannon placement in situations where your\\nanimations are interrupted.
  • \\n
  • NPC model outlines are no longer a few pixels mis-aligned when rendered on GPU
  • \\n
  • Minimap ground marker overlays have had their positioning corrected
  • \\n
  • The 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
  • \\n
  • The 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.
  • \\n
  • Ducks are now highlighted during bird tasks in the Slayer plugin
  • \\n
  • The Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon
  • \\n
  • Cannon spots in the Jormungand prison have been added to the Cannon plugin
  • \\n
  • The bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\\nplugin
  • \\n
  • The tag tab tab of the Bank Tags plugin now has a working scrollbar
  • \\n
  • The Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes
  • \\n
  • The Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\\nthat of the Varrock platebody
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.eac46e76.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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Nightmare health barsZalcano health bar
\\\"Nightmare \\\"Nightmare\\\"Zalcano
\\n

Ground markers now have a configurable fill opacity.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
0 fill opacity markers50 fill opacity markers (default)150 fill opacity markers
\\\"Ground\\\"Ground\\\"Ground
\\n

MacOS M1 Launcher

\\n

MacOS 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Dinh's bulwark special attacks are now tracked via the Special Attack Counter plugin
  • \\n
  • Inventory tags now appear on items in the gravestone collection interface
  • \\n
  • The cannon plugin is more reliable about detecting your cannon placement in situations where your\\nanimations are interrupted.
  • \\n
  • NPC model outlines are no longer a few pixels mis-aligned when rendered on GPU
  • \\n
  • Minimap ground marker overlays have had their positioning corrected
  • \\n
  • The 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
  • \\n
  • The 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.
  • \\n
  • Ducks are now highlighted during bird tasks in the Slayer plugin
  • \\n
  • The Skybox plugin no longer thinks that the inside of Prifddinas is in a dungeon
  • \\n
  • Cannon spots in the Jormungand prison have been added to the Cannon plugin
  • \\n
  • The bonecrusher xp penalty has been added as an available bonus option in the Skill Calculator\\nplugin
  • \\n
  • The tag tab tab of the Bank Tags plugin now has a working scrollbar
  • \\n
  • The Menu Entry Swapper plugin bank option swaps now work correctly in bank deposit boxes
  • \\n
  • The Item Charges plugin tracks Ring of forging charges correctly when its effect is combined with\\nthat of the Varrock platebody
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.7d4a1d41.chunk.js b/static/js/149.4b7bc910.chunk.js similarity index 97% rename from static/js/149.7d4a1d41.chunk.js rename to static/js/149.4b7bc910.chunk.js index 1adb7e3718..e25e37f330 100644 --- a/static/js/149.7d4a1d41.chunk.js +++ b/static/js/149.4b7bc910.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[149],{426: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

\n

MacOS M1 Launcher

\n

If 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Selected 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
  • \n
  • The actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp
  • \n
  • The !pets command now correctly recognizes pet chinchompas
  • \n
  • The Shared Storage button no longer overlaps the bank capacity interface
  • \n
  • A bug causing HD healthbars widths to be incorrect was fixed
  • \n
  • Lookup was added to player names in the group ironman group list
  • \n
  • !kc gg and ggs short names were added for Grotesque Guardians
  • \n
  • A bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level
  • \n
  • The spec counter now has a configuration option for the bulwark special attack threshold
  • \n
  • The black Loading and Connection lost boxes now get drawn correctly in the upper left when GPU is enabled
  • \n
  • The prayer dose overlay now correctly computes how much prayer sanfew serums restore
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.7d4a1d41.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[149],{427: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

\n

MacOS M1 Launcher

\n

If 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Selected 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
  • \n
  • The actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp
  • \n
  • The !pets command now correctly recognizes pet chinchompas
  • \n
  • The Shared Storage button no longer overlaps the bank capacity interface
  • \n
  • A bug causing HD healthbars widths to be incorrect was fixed
  • \n
  • Lookup was added to player names in the group ironman group list
  • \n
  • !kc gg and ggs short names were added for Grotesque Guardians
  • \n
  • A bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level
  • \n
  • The spec counter now has a configuration option for the bulwark special attack threshold
  • \n
  • The black Loading and Connection lost boxes now get drawn correctly in the upper left when GPU is enabled
  • \n
  • The prayer dose overlay now correctly computes how much prayer sanfew serums restore
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.4b7bc910.chunk.js.map \ No newline at end of file diff --git a/static/js/149.7d4a1d41.chunk.js.map b/static/js/149.4b7bc910.chunk.js.map similarity index 98% rename from static/js/149.7d4a1d41.chunk.js.map rename to static/js/149.4b7bc910.chunk.js.map index 57d15c3864..d8025ea787 100644 --- a/static/js/149.7d4a1d41.chunk.js.map +++ b/static/js/149.4b7bc910.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.7d4a1d41.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

\\n

MacOS M1 Launcher

\\n

If 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Selected 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
  • \\n
  • The actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp
  • \\n
  • The !pets command now correctly recognizes pet chinchompas
  • \\n
  • The Shared Storage button no longer overlaps the bank capacity interface
  • \\n
  • A bug causing HD healthbars widths to be incorrect was fixed
  • \\n
  • Lookup was added to player names in the group ironman group list
  • \\n
  • !kc gg and ggs short names were added for Grotesque Guardians
  • \\n
  • A bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level
  • \\n
  • The spec counter now has a configuration option for the bulwark special attack threshold
  • \\n
  • The black Loading and Connection lost boxes now get drawn correctly in the upper left when GPU is enabled
  • \\n
  • The prayer dose overlay now correctly computes how much prayer sanfew serums restore
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.4b7bc910.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

\\n

MacOS M1 Launcher

\\n

If 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Selected 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
  • \\n
  • The actions required in the skill calculator now no longer sometimes give incorrect results when using partial xp
  • \\n
  • The !pets command now correctly recognizes pet chinchompas
  • \\n
  • The Shared Storage button no longer overlaps the bank capacity interface
  • \\n
  • A bug causing HD healthbars widths to be incorrect was fixed
  • \\n
  • Lookup was added to player names in the group ironman group list
  • \\n
  • !kc gg and ggs short names were added for Grotesque Guardians
  • \\n
  • A bird nest tier setting was added to the Woodcutting plugin to allow only sending notifications for bird nests of a certain clue level
  • \\n
  • The spec counter now has a configuration option for the bulwark special attack threshold
  • \\n
  • The black Loading and Connection lost boxes now get drawn correctly in the upper left when GPU is enabled
  • \\n
  • The prayer dose overlay now correctly computes how much prayer sanfew serums restore
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.39c21782.chunk.js b/static/js/15.480db188.chunk.js similarity index 94% rename from static/js/15.39c21782.chunk.js rename to static/js/15.480db188.chunk.js index a3c64f6b98..150e581524 100644 --- a/static/js/15.39c21782.chunk.js +++ b/static/js/15.480db188.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){},459: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.39c21782.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){},461: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.480db188.chunk.js.map \ No newline at end of file diff --git a/static/js/15.39c21782.chunk.js.map b/static/js/15.480db188.chunk.js.map similarity index 98% rename from static/js/15.39c21782.chunk.js.map rename to static/js/15.480db188.chunk.js.map index f51f15d99a..8dd0334fa2 100644 --- a/static/js/15.39c21782.chunk.js.map +++ b/static/js/15.480db188.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.39c21782.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Enter tag

\n

\n Paste a tag exported from RuneLite Bank Tags plugin and click 'GO'\n

\n
\n\n setActiveTag(event.target.value)}\n >\n {activeTag}\n \n \n Go\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.480db188.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Enter tag

\n

\n Paste a tag exported from RuneLite Bank Tags plugin and click 'GO'\n

\n
\n\n setActiveTag(event.target.value)}\n >\n {activeTag}\n \n \n Go\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.67713b63.chunk.js b/static/js/150.55b9afa9.chunk.js similarity index 98% rename from static/js/150.67713b63.chunk.js rename to static/js/150.55b9afa9.chunk.js index d729b39d08..7831e5b62d 100644 --- a/static/js/150.67713b63.chunk.js +++ b/static/js/150.55b9afa9.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[150],{427: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

Leftclickswap

\n

Login and logout notifications can now be hidden per-friend by clicking the Hide notifications option on the friend.

\n

Login notifications

\n

Chat channels can now show the number of online members in the channel.

\n

Chat channels member count

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces.
  • \n
  • The grand exchange buy limit and active traded price has been adjusted to fit on the interface
  • \n
  • The mute button clickbox on the login screen is no longer the entire bottom right area of the client
  • \n
  • Character accents are now ignored when applying chat filters to messages
  • \n
  • The loot tracker now tracks Mahogany Homes supply crates
  • \n
  • The world hopper region filter now supports filters with multiple regions
  • \n
  • The screenshot plugin can now screenshot combat achievement task completions
  • \n
  • Tile indicators now has a separate color configuration for tile fill color
  • \n
  • The party plugin now has a button to join the previous party, as well as join party by id
  • \n
  • Timing for the woodcutting respawn timers has been corrected
  • \n
  • Inventory tags are now shown in the Chambers of Xeric storage chest
  • \n
  • Item identification now works in the group ironman shared storage
  • \n
  • The pickpocket stun timer now works correctly with the dodgy necklace protection
  • \n
  • A rocket emoji was added to the emoji plugin (>==>)
  • \n
  • The player Lookup option now chooses the correct hiscores based on the world type
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.67713b63.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[150],{428: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

Leftclickswap

\n

Login and logout notifications can now be hidden per-friend by clicking the Hide notifications option on the friend.

\n

Login notifications

\n

Chat channels can now show the number of online members in the channel.

\n

Chat channels member count

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces.
  • \n
  • The grand exchange buy limit and active traded price has been adjusted to fit on the interface
  • \n
  • The mute button clickbox on the login screen is no longer the entire bottom right area of the client
  • \n
  • Character accents are now ignored when applying chat filters to messages
  • \n
  • The loot tracker now tracks Mahogany Homes supply crates
  • \n
  • The world hopper region filter now supports filters with multiple regions
  • \n
  • The screenshot plugin can now screenshot combat achievement task completions
  • \n
  • Tile indicators now has a separate color configuration for tile fill color
  • \n
  • The party plugin now has a button to join the previous party, as well as join party by id
  • \n
  • Timing for the woodcutting respawn timers has been corrected
  • \n
  • Inventory tags are now shown in the Chambers of Xeric storage chest
  • \n
  • Item identification now works in the group ironman shared storage
  • \n
  • The pickpocket stun timer now works correctly with the dodgy necklace protection
  • \n
  • A rocket emoji was added to the emoji plugin (>==>)
  • \n
  • The player Lookup option now chooses the correct hiscores based on the world type
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.55b9afa9.chunk.js.map \ No newline at end of file diff --git a/static/js/150.67713b63.chunk.js.map b/static/js/150.55b9afa9.chunk.js.map similarity index 99% rename from static/js/150.67713b63.chunk.js.map rename to static/js/150.55b9afa9.chunk.js.map index 17e1052f91..74671876fa 100644 --- a/static/js/150.67713b63.chunk.js.map +++ b/static/js/150.55b9afa9.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.67713b63.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

\\\"Leftclickswap\\\"

\\n

Login and logout notifications can now be hidden per-friend by clicking the Hide notifications option on the friend.

\\n

\\\"Login

\\n

Chat channels can now show the number of online members in the channel.

\\n

\\\"Chat

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces.
  • \\n
  • The grand exchange buy limit and active traded price has been adjusted to fit on the interface
  • \\n
  • The mute button clickbox on the login screen is no longer the entire bottom right area of the client
  • \\n
  • Character accents are now ignored when applying chat filters to messages
  • \\n
  • The loot tracker now tracks Mahogany Homes supply crates
  • \\n
  • The world hopper region filter now supports filters with multiple regions
  • \\n
  • The screenshot plugin can now screenshot combat achievement task completions
  • \\n
  • Tile indicators now has a separate color configuration for tile fill color
  • \\n
  • The party plugin now has a button to join the previous party, as well as join party by id
  • \\n
  • Timing for the woodcutting respawn timers has been corrected
  • \\n
  • Inventory tags are now shown in the Chambers of Xeric storage chest
  • \\n
  • Item identification now works in the group ironman shared storage
  • \\n
  • The pickpocket stun timer now works correctly with the dodgy necklace protection
  • \\n
  • A rocket emoji was added to the emoji plugin (>==>)
  • \\n
  • The player Lookup option now chooses the correct hiscores based on the world type
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.55b9afa9.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

\\\"Leftclickswap\\\"

\\n

Login and logout notifications can now be hidden per-friend by clicking the Hide notifications option on the friend.

\\n

\\\"Login

\\n

Chat channels can now show the number of online members in the channel.

\\n

\\\"Chat

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The music plugin now has an additional option to mute ambient sounds, which affect passive object sounds such as from magic trees and furnaces.
  • \\n
  • The grand exchange buy limit and active traded price has been adjusted to fit on the interface
  • \\n
  • The mute button clickbox on the login screen is no longer the entire bottom right area of the client
  • \\n
  • Character accents are now ignored when applying chat filters to messages
  • \\n
  • The loot tracker now tracks Mahogany Homes supply crates
  • \\n
  • The world hopper region filter now supports filters with multiple regions
  • \\n
  • The screenshot plugin can now screenshot combat achievement task completions
  • \\n
  • Tile indicators now has a separate color configuration for tile fill color
  • \\n
  • The party plugin now has a button to join the previous party, as well as join party by id
  • \\n
  • Timing for the woodcutting respawn timers has been corrected
  • \\n
  • Inventory tags are now shown in the Chambers of Xeric storage chest
  • \\n
  • Item identification now works in the group ironman shared storage
  • \\n
  • The pickpocket stun timer now works correctly with the dodgy necklace protection
  • \\n
  • A rocket emoji was added to the emoji plugin (>==>)
  • \\n
  • The player Lookup option now chooses the correct hiscores based on the world type
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.ea0c3bd8.chunk.js b/static/js/151.205738ca.chunk.js similarity index 99% rename from static/js/151.ea0c3bd8.chunk.js rename to static/js/151.205738ca.chunk.js index 4aa12b7a3f..7cdcc063ab 100644 --- a/static/js/151.ea0c3bd8.chunk.js +++ b/static/js/151.205738ca.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[151],{428:function(e,n){e.exports={title:"1.8.8 - 1.8.13 Releases",description:"Loot tracker improvements",author:"Adam",body:'

Loottracker changes

\n

The 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.

\n

The 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

lootimport

\n

New runelite.net link from the Old School RuneScape home page

\n

Jagex 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.

\n

Due to this we recommend finding RuneLite by following the link from the\nofficial Old School RuneScape homepage.

\n

We 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))

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The alt key used to configure the ground items plugin is now configurable
  • \n
  • The entity hider now has an option to hide clan members
  • \n
  • Ground items can now deprioritize the left-click Take option on hidden items,\nmaking it no longer possible to accidentally left click Take those items
  • \n
  • Screenmarkers now has a toggle to show their names as a label above the marker
  • \n
  • Group storage withdraw swap has been added to the menu entry swapper
  • \n
  • Hallowed sack was added to the loot tracker
  • \n
  • The roof removal plugin now has an option to always hide roofs in POH
  • \n
  • Jewellery has been added to the item identification plugin
  • \n
  • Mod 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.
  • \n
  • Blood essence has been added to the item charges plugin
  • \n
  • The menu entry swapper can now shift-click swap Climb-up and Climb-down on\nstairs and ladders
  • \n
  • The interact highlight plugin now shows which NPC you are selecting when\nhovering over the menu entry
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 33 contributors this update!

\n
Adam (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.ea0c3bd8.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[151],{429:function(e,n){e.exports={title:"1.8.8 - 1.8.13 Releases",description:"Loot tracker improvements",author:"Adam",body:'

Loottracker changes

\n

The 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.

\n

The 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

lootimport

\n

New runelite.net link from the Old School RuneScape home page

\n

Jagex 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.

\n

Due to this we recommend finding RuneLite by following the link from the\nofficial Old School RuneScape homepage.

\n

We 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))

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The alt key used to configure the ground items plugin is now configurable
  • \n
  • The entity hider now has an option to hide clan members
  • \n
  • Ground items can now deprioritize the left-click Take option on hidden items,\nmaking it no longer possible to accidentally left click Take those items
  • \n
  • Screenmarkers now has a toggle to show their names as a label above the marker
  • \n
  • Group storage withdraw swap has been added to the menu entry swapper
  • \n
  • Hallowed sack was added to the loot tracker
  • \n
  • The roof removal plugin now has an option to always hide roofs in POH
  • \n
  • Jewellery has been added to the item identification plugin
  • \n
  • Mod 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.
  • \n
  • Blood essence has been added to the item charges plugin
  • \n
  • The menu entry swapper can now shift-click swap Climb-up and Climb-down on\nstairs and ladders
  • \n
  • The interact highlight plugin now shows which NPC you are selecting when\nhovering over the menu entry
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 33 contributors this update!

\n
Adam (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.205738ca.chunk.js.map \ No newline at end of file diff --git a/static/js/151.ea0c3bd8.chunk.js.map b/static/js/151.205738ca.chunk.js.map similarity index 99% rename from static/js/151.ea0c3bd8.chunk.js.map rename to static/js/151.205738ca.chunk.js.map index 24752c7b02..43cfe33cb2 100644 --- a/static/js/151.ea0c3bd8.chunk.js.map +++ b/static/js/151.205738ca.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.ea0c3bd8.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.8 - 1.8.13 Releases\",\"description\":\"Loot tracker improvements\",\"author\":\"Adam\",\"body\":\"

Loottracker changes

\\n

The 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.

\\n

The 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

\\\"lootimport\\\"

\\n

New runelite.net link from the Old School RuneScape home page

\\n

Jagex 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.

\\n

Due to this we recommend finding RuneLite by following the link from the\\nofficial Old School RuneScape homepage.

\\n

We 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))

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The alt key used to configure the ground items plugin is now configurable
  • \\n
  • The entity hider now has an option to hide clan members
  • \\n
  • Ground items can now deprioritize the left-click Take option on hidden items,\\nmaking it no longer possible to accidentally left click Take those items
  • \\n
  • Screenmarkers now has a toggle to show their names as a label above the marker
  • \\n
  • Group storage withdraw swap has been added to the menu entry swapper
  • \\n
  • Hallowed sack was added to the loot tracker
  • \\n
  • The roof removal plugin now has an option to always hide roofs in POH
  • \\n
  • Jewellery has been added to the item identification plugin
  • \\n
  • Mod 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.
  • \\n
  • Blood essence has been added to the item charges plugin
  • \\n
  • The menu entry swapper can now shift-click swap Climb-up and Climb-down on\\nstairs and ladders
  • \\n
  • The interact highlight plugin now shows which NPC you are selecting when\\nhovering over the menu entry
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 33 contributors this update!

\\n
Adam (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.205738ca.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.8 - 1.8.13 Releases\",\"description\":\"Loot tracker improvements\",\"author\":\"Adam\",\"body\":\"

Loottracker changes

\\n

The 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.

\\n

The 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

\\\"lootimport\\\"

\\n

New runelite.net link from the Old School RuneScape home page

\\n

Jagex 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.

\\n

Due to this we recommend finding RuneLite by following the link from the\\nofficial Old School RuneScape homepage.

\\n

We 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))

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The alt key used to configure the ground items plugin is now configurable
  • \\n
  • The entity hider now has an option to hide clan members
  • \\n
  • Ground items can now deprioritize the left-click Take option on hidden items,\\nmaking it no longer possible to accidentally left click Take those items
  • \\n
  • Screenmarkers now has a toggle to show their names as a label above the marker
  • \\n
  • Group storage withdraw swap has been added to the menu entry swapper
  • \\n
  • Hallowed sack was added to the loot tracker
  • \\n
  • The roof removal plugin now has an option to always hide roofs in POH
  • \\n
  • Jewellery has been added to the item identification plugin
  • \\n
  • Mod 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.
  • \\n
  • Blood essence has been added to the item charges plugin
  • \\n
  • The menu entry swapper can now shift-click swap Climb-up and Climb-down on\\nstairs and ladders
  • \\n
  • The interact highlight plugin now shows which NPC you are selecting when\\nhovering over the menu entry
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 33 contributors this update!

\\n
Adam (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.86939e7a.chunk.js b/static/js/152.b02cf8a2.chunk.js similarity index 99% rename from static/js/152.86939e7a.chunk.js rename to static/js/152.b02cf8a2.chunk.js index 6ad2f81cb8..3baa55085a 100644 --- a/static/js/152.86939e7a.chunk.js +++ b/static/js/152.b02cf8a2.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[152],{429: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

\n

The 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

compost1\ncompost2

\n

Menu swapper improvements

\n

The 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.

\n

There are a few exclusions\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\nmost things should work.

\n

swap1\nswap2

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Opening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick.
  • \n
  • Catching implings is tracked by the loot tracker
  • \n
  • PBs 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.
  • \n
  • Boss 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
  • \n
  • Dragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too
  • \n
  • Bank searches now supports filtering by quantity, eg qty>30
  • \n
  • The 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.
  • \n
  • A bug causing the !pets icons to not show up sometimes was fixed
  • \n
  • A bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed
  • \n
  • Inventory viewer gained an option to hide the inventory view when the bank is open
  • \n
  • Menu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift
  • \n
  • Player indicators now additionally colors player names in the trade window
  • \n
  • The bank plugin now shows total value of group ironman storage
  • \n
  • The chatbox and inventory interfaces are now movable via holding alt
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this update!

\n
Adam (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.86939e7a.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[152],{430: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

\n

The 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

compost1\ncompost2

\n

Menu swapper improvements

\n

The 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.

\n

There are a few exclusions\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\nmost things should work.

\n

swap1\nswap2

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Opening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick.
  • \n
  • Catching implings is tracked by the loot tracker
  • \n
  • PBs 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.
  • \n
  • Boss 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
  • \n
  • Dragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too
  • \n
  • Bank searches now supports filtering by quantity, eg qty>30
  • \n
  • The 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.
  • \n
  • A bug causing the !pets icons to not show up sometimes was fixed
  • \n
  • A bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed
  • \n
  • Inventory viewer gained an option to hide the inventory view when the bank is open
  • \n
  • Menu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift
  • \n
  • Player indicators now additionally colors player names in the trade window
  • \n
  • The bank plugin now shows total value of group ironman storage
  • \n
  • The chatbox and inventory interfaces are now movable via holding alt
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this update!

\n
Adam (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.b02cf8a2.chunk.js.map \ No newline at end of file diff --git a/static/js/152.86939e7a.chunk.js.map b/static/js/152.b02cf8a2.chunk.js.map similarity index 99% rename from static/js/152.86939e7a.chunk.js.map rename to static/js/152.b02cf8a2.chunk.js.map index 1e35052ab0..076f94af23 100644 --- a/static/js/152.86939e7a.chunk.js.map +++ b/static/js/152.b02cf8a2.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.86939e7a.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

\\n

The 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

\\\"compost1\\\"\\n\\\"compost2\\\"

\\n

Menu swapper improvements

\\n

The 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.

\\n

There are a few exclusions\\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\\nmost things should work.

\\n

\\\"swap1\\\"\\n\\\"swap2\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Opening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick.
  • \\n
  • Catching implings is tracked by the loot tracker
  • \\n
  • PBs 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.
  • \\n
  • Boss 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
  • \\n
  • Dragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too
  • \\n
  • Bank searches now supports filtering by quantity, eg qty>30
  • \\n
  • The 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.
  • \\n
  • A bug causing the !pets icons to not show up sometimes was fixed
  • \\n
  • A bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed
  • \\n
  • Inventory viewer gained an option to hide the inventory view when the bank is open
  • \\n
  • Menu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift
  • \\n
  • Player indicators now additionally colors player names in the trade window
  • \\n
  • The bank plugin now shows total value of group ironman storage
  • \\n
  • The chatbox and inventory interfaces are now movable via holding alt
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this update!

\\n
Adam (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.b02cf8a2.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

\\n

The 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

\\\"compost1\\\"\\n\\\"compost2\\\"

\\n

Menu swapper improvements

\\n

The 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.

\\n

There are a few exclusions\\nwhich are namely pickpocket swaps, blackjack swaps, and construction swaps, but\\nmost things should work.

\\n

\\\"swap1\\\"\\n\\\"swap2\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Opening imp jars is now tracked in the loot tracker. It also should correctly handle opening multiple on the same tick.
  • \\n
  • Catching implings is tracked by the loot tracker
  • \\n
  • PBs 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.
  • \\n
  • Boss 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
  • \\n
  • Dragging inventory items with overlays, such as the rune pouch overlay or inv tags, once again drags the overlay too
  • \\n
  • Bank searches now supports filtering by quantity, eg qty>30
  • \\n
  • The 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.
  • \\n
  • A bug causing the !pets icons to not show up sometimes was fixed
  • \\n
  • A bug causing a Canifis agility course clickbox overlay to be drawn incorrectly was fixed
  • \\n
  • Inventory viewer gained an option to hide the inventory view when the bank is open
  • \\n
  • Menu entry swapper now supports swapping home teleport to the two new group ironman specific teleport options with shift
  • \\n
  • Player indicators now additionally colors player names in the trade window
  • \\n
  • The bank plugin now shows total value of group ironman storage
  • \\n
  • The chatbox and inventory interfaces are now movable via holding alt
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this update!

\\n
Adam (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.559e3066.chunk.js b/static/js/153.4533f6dc.chunk.js similarity index 98% rename from static/js/153.559e3066.chunk.js rename to static/js/153.4533f6dc.chunk.js index 273ebd15ab..6ed7bdf4aa 100644 --- a/static/js/153.559e3066.chunk.js +++ b/static/js/153.4533f6dc.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[153],{430:function(e,n){e.exports={title:"1.8.24 Release",description:"Jagex rules update and party improvements",author:"Adam",body:'

Jagex rules update

\n

Jagex 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.

\n

Pickpocket swap

\n

Pickpocket can now be swapped on all NPCs, even with a Talk-to option, by\nshift-right clicking them and selecting Swap Pickpocket

\n

pickpocket

\n

Removing dead NPC menus

\n

The 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

\n

Walk here swap

\n

It 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

walk

\n

Worn item swaps

\n

Menus 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

wornitems

\n

Party system improvements

\n

As 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.

\n

The 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.

\n

Creating 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

createparty

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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.
  • \n
  • Keris partisan defensive style is now correctly hidden by the attack styles\nplugin
  • \n
  • Another bug causing the !pets icons to not show up has been fixed, again.
  • \n
  • Minigame reset timer no longer shows if the setting to enable it is off.
  • \n
  • A bug causing entity hider\'s hide pets option to not work has been fixed.
  • \n
  • !lvl cox cm now works correctly
  • \n
  • Ancient brew, mixed potions, and other more obscure things have been added to the item stats plugin
  • \n
  • The stamina timer now works more reliably and also with stamina mixes
  • \n
  • NPC agression timer now has a setting to show for slayer tasks
  • \n
  • The timers plugin now has a timer for Shadow Veil
  • \n
  • Item charges now supports imbued ring of wealth, and braclet of clay
  • \n
  • The mining plugin now shows respawn timers for gold veins
  • \n
  • The bank plugin now has an option to force right click the placeholder toggle button
  • \n
  • The Left click walk on core option of the Corporeal Beast plugin has returned once again
  • \n
  • NPC indicators now has an option to highlight true south-west tile and true\ntile
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (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.559e3066.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[153],{431:function(e,n){e.exports={title:"1.8.24 Release",description:"Jagex rules update and party improvements",author:"Adam",body:'

Jagex rules update

\n

Jagex 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.

\n

Pickpocket swap

\n

Pickpocket can now be swapped on all NPCs, even with a Talk-to option, by\nshift-right clicking them and selecting Swap Pickpocket

\n

pickpocket

\n

Removing dead NPC menus

\n

The 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

\n

Walk here swap

\n

It 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

walk

\n

Worn item swaps

\n

Menus 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

wornitems

\n

Party system improvements

\n

As 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.

\n

The 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.

\n

Creating 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

createparty

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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.
  • \n
  • Keris partisan defensive style is now correctly hidden by the attack styles\nplugin
  • \n
  • Another bug causing the !pets icons to not show up has been fixed, again.
  • \n
  • Minigame reset timer no longer shows if the setting to enable it is off.
  • \n
  • A bug causing entity hider\'s hide pets option to not work has been fixed.
  • \n
  • !lvl cox cm now works correctly
  • \n
  • Ancient brew, mixed potions, and other more obscure things have been added to the item stats plugin
  • \n
  • The stamina timer now works more reliably and also with stamina mixes
  • \n
  • NPC agression timer now has a setting to show for slayer tasks
  • \n
  • The timers plugin now has a timer for Shadow Veil
  • \n
  • Item charges now supports imbued ring of wealth, and braclet of clay
  • \n
  • The mining plugin now shows respawn timers for gold veins
  • \n
  • The bank plugin now has an option to force right click the placeholder toggle button
  • \n
  • The Left click walk on core option of the Corporeal Beast plugin has returned once again
  • \n
  • NPC indicators now has an option to highlight true south-west tile and true\ntile
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (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.4533f6dc.chunk.js.map \ No newline at end of file diff --git a/static/js/153.559e3066.chunk.js.map b/static/js/153.4533f6dc.chunk.js.map similarity index 99% rename from static/js/153.559e3066.chunk.js.map rename to static/js/153.4533f6dc.chunk.js.map index 6d21d35408..c62dc26a0f 100644 --- a/static/js/153.559e3066.chunk.js.map +++ b/static/js/153.4533f6dc.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.559e3066.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.24 Release\",\"description\":\"Jagex rules update and party improvements\",\"author\":\"Adam\",\"body\":\"

Jagex rules update

\\n

Jagex 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.

\\n

Pickpocket swap

\\n

Pickpocket can now be swapped on all NPCs, even with a Talk-to option, by\\nshift-right clicking them and selecting Swap Pickpocket

\\n

\\\"pickpocket\\\"

\\n

Removing dead NPC menus

\\n

The 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

\\n

Walk here swap

\\n

It 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

\\\"walk\\\"

\\n

Worn item swaps

\\n

Menus 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

\\\"wornitems\\\"

\\n

Party system improvements

\\n

As 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.

\\n

The 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.

\\n

Creating 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

\\\"createparty\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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.
  • \\n
  • Keris partisan defensive style is now correctly hidden by the attack styles\\nplugin
  • \\n
  • Another bug causing the !pets icons to not show up has been fixed, again.
  • \\n
  • Minigame reset timer no longer shows if the setting to enable it is off.
  • \\n
  • A bug causing entity hider's hide pets option to not work has been fixed.
  • \\n
  • !lvl cox cm now works correctly
  • \\n
  • Ancient brew, mixed potions, and other more obscure things have been added to the item stats plugin
  • \\n
  • The stamina timer now works more reliably and also with stamina mixes
  • \\n
  • NPC agression timer now has a setting to show for slayer tasks
  • \\n
  • The timers plugin now has a timer for Shadow Veil
  • \\n
  • Item charges now supports imbued ring of wealth, and braclet of clay
  • \\n
  • The mining plugin now shows respawn timers for gold veins
  • \\n
  • The bank plugin now has an option to force right click the placeholder toggle button
  • \\n
  • The Left click walk on core option of the Corporeal Beast plugin has returned once again
  • \\n
  • NPC indicators now has an option to highlight true south-west tile and true\\ntile
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (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.4533f6dc.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.24 Release\",\"description\":\"Jagex rules update and party improvements\",\"author\":\"Adam\",\"body\":\"

Jagex rules update

\\n

Jagex 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.

\\n

Pickpocket swap

\\n

Pickpocket can now be swapped on all NPCs, even with a Talk-to option, by\\nshift-right clicking them and selecting Swap Pickpocket

\\n

\\\"pickpocket\\\"

\\n

Removing dead NPC menus

\\n

The 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

\\n

Walk here swap

\\n

It 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

\\\"walk\\\"

\\n

Worn item swaps

\\n

Menus 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

\\\"wornitems\\\"

\\n

Party system improvements

\\n

As 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.

\\n

The 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.

\\n

Creating 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

\\\"createparty\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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.
  • \\n
  • Keris partisan defensive style is now correctly hidden by the attack styles\\nplugin
  • \\n
  • Another bug causing the !pets icons to not show up has been fixed, again.
  • \\n
  • Minigame reset timer no longer shows if the setting to enable it is off.
  • \\n
  • A bug causing entity hider's hide pets option to not work has been fixed.
  • \\n
  • !lvl cox cm now works correctly
  • \\n
  • Ancient brew, mixed potions, and other more obscure things have been added to the item stats plugin
  • \\n
  • The stamina timer now works more reliably and also with stamina mixes
  • \\n
  • NPC agression timer now has a setting to show for slayer tasks
  • \\n
  • The timers plugin now has a timer for Shadow Veil
  • \\n
  • Item charges now supports imbued ring of wealth, and braclet of clay
  • \\n
  • The mining plugin now shows respawn timers for gold veins
  • \\n
  • The bank plugin now has an option to force right click the placeholder toggle button
  • \\n
  • The Left click walk on core option of the Corporeal Beast plugin has returned once again
  • \\n
  • NPC indicators now has an option to highlight true south-west tile and true\\ntile
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (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.782f372d.chunk.js b/static/js/154.ae70fd4e.chunk.js similarity index 98% rename from static/js/154.782f372d.chunk.js rename to static/js/154.ae70fd4e.chunk.js index 20611ae898..f397e1a552 100644 --- a/static/js/154.782f372d.chunk.js +++ b/static/js/154.ae70fd4e.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[154],{431: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

\n

Since 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:

\n

The 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.

\n

Inventory 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.

\n

The 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.

\n

Farming payment tracker

\n

The 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

farm

\n

It is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.

\n

GPU improvements

\n

Last 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • XP 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.
  • \n
  • A bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed.
  • \n
  • The 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)
  • \n
  • CoX private chest has been added to antidrag
  • \n
  • A bug causing the world ping overlay to freeze on MacOS/Linux has been fixed
  • \n
  • A hop command has been added to world hop, eg ::hop 351
  • \n
  • The loot tracker now tracks Take-all on seedpacks
  • \n
  • Various references to the dual arena has been changed to the pvp arena
  • \n
  • PvP arena worlds are now skipped over by the world hopper
  • \n
  • Object indicators now has options to highlight object outlines and clickboxes
  • \n
  • The spec counter now resets at Sotetseg\'s maze phase
  • \n
  • The hiscores have all been shifted back into place due to the addition of the PvP arena
  • \n
  • The party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players
  • \n
  • The bracelet of clay tracker now correctly handles soft clay mining
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 16 contributors this update!

\n
Adam (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.782f372d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[154],{432: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

\n

Since 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:

\n

The 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.

\n

Inventory 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.

\n

The 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.

\n

Farming payment tracker

\n

The 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

farm

\n

It is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.

\n

GPU improvements

\n

Last 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • XP 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.
  • \n
  • A bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed.
  • \n
  • The 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)
  • \n
  • CoX private chest has been added to antidrag
  • \n
  • A bug causing the world ping overlay to freeze on MacOS/Linux has been fixed
  • \n
  • A hop command has been added to world hop, eg ::hop 351
  • \n
  • The loot tracker now tracks Take-all on seedpacks
  • \n
  • Various references to the dual arena has been changed to the pvp arena
  • \n
  • PvP arena worlds are now skipped over by the world hopper
  • \n
  • Object indicators now has options to highlight object outlines and clickboxes
  • \n
  • The spec counter now resets at Sotetseg\'s maze phase
  • \n
  • The hiscores have all been shifted back into place due to the addition of the PvP arena
  • \n
  • The party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players
  • \n
  • The bracelet of clay tracker now correctly handles soft clay mining
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 16 contributors this update!

\n
Adam (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.ae70fd4e.chunk.js.map \ No newline at end of file diff --git a/static/js/154.782f372d.chunk.js.map b/static/js/154.ae70fd4e.chunk.js.map similarity index 99% rename from static/js/154.782f372d.chunk.js.map rename to static/js/154.ae70fd4e.chunk.js.map index e0fe0abd6a..49a7232c15 100644 --- a/static/js/154.782f372d.chunk.js.map +++ b/static/js/154.ae70fd4e.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.782f372d.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

\\n

Since 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:

\\n

The 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.

\\n

Inventory 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.

\\n

The 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.

\\n

Farming payment tracker

\\n

The 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

\\\"farm\\\"

\\n

It is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.

\\n

GPU improvements

\\n

Last 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • XP 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.
  • \\n
  • A bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed.
  • \\n
  • The 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)
  • \\n
  • CoX private chest has been added to antidrag
  • \\n
  • A bug causing the world ping overlay to freeze on MacOS/Linux has been fixed
  • \\n
  • A hop command has been added to world hop, eg ::hop 351
  • \\n
  • The loot tracker now tracks Take-all on seedpacks
  • \\n
  • Various references to the dual arena has been changed to the pvp arena
  • \\n
  • PvP arena worlds are now skipped over by the world hopper
  • \\n
  • Object indicators now has options to highlight object outlines and clickboxes
  • \\n
  • The spec counter now resets at Sotetseg's maze phase
  • \\n
  • The hiscores have all been shifted back into place due to the addition of the PvP arena
  • \\n
  • The party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players
  • \\n
  • The bracelet of clay tracker now correctly handles soft clay mining
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 16 contributors this update!

\\n
Adam (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.ae70fd4e.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

\\n

Since 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:

\\n

The 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.

\\n

Inventory 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.

\\n

The 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.

\\n

Farming payment tracker

\\n

The 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

\\\"farm\\\"

\\n

It is still possible to see if the patch was composted, since that affects yield regardless of payment, by checking the tooltip.

\\n

GPU improvements

\\n

Last 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • XP 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.
  • \\n
  • A bug causing the infoboxes group to be unmovable when in the top-left corner has been fixed.
  • \\n
  • The 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)
  • \\n
  • CoX private chest has been added to antidrag
  • \\n
  • A bug causing the world ping overlay to freeze on MacOS/Linux has been fixed
  • \\n
  • A hop command has been added to world hop, eg ::hop 351
  • \\n
  • The loot tracker now tracks Take-all on seedpacks
  • \\n
  • Various references to the dual arena has been changed to the pvp arena
  • \\n
  • PvP arena worlds are now skipped over by the world hopper
  • \\n
  • Object indicators now has options to highlight object outlines and clickboxes
  • \\n
  • The spec counter now resets at Sotetseg's maze phase
  • \\n
  • The hiscores have all been shifted back into place due to the addition of the PvP arena
  • \\n
  • The party plugin can now overlay health, prayer, energy, special attack energy, and vengenace status on players
  • \\n
  • The bracelet of clay tracker now correctly handles soft clay mining
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 16 contributors this update!

\\n
Adam (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.094bbfa6.chunk.js b/static/js/155.aa3f28a1.chunk.js similarity index 98% rename from static/js/155.094bbfa6.chunk.js rename to static/js/155.aa3f28a1.chunk.js index fc3fcf701b..a29464f7f7 100644 --- a/static/js/155.094bbfa6.chunk.js +++ b/static/js/155.aa3f28a1.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[155],{432:function(e,n){e.exports={title:"1.8.31 Release",description:"Custom UI swaps and ToA preparations",author:"Adam",body:'

UI swaps

\n

Many 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

uiswap1\nuiswap2

\n

Due 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.

\n

Tombs of Amascut

\n

We\'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

runepouch

\n

ToA has been added to the hiscore panel:

\n

hiscores

\n

Additionally, we\'ve been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Minor graphical inconsistences on GPU with compute shaders off have been fixed, such as the GE floor appearing to have white dots between the tiles
  • \n
  • The 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.
  • \n
  • Clan members are included in the hiscore search name autocompleter
  • \n
  • Clan members previous chat message ranks no longer change to "unranked" after they log out
  • \n
  • Friends chat rank icon now displays to the left of the user\'s name instead of to the right of the channel name
  • \n
  • Bank 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.
  • \n
  • Members 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.
  • \n
  • The loot tracker no longer shows member items as Members object when logged into a free to play world.
  • \n
  • The double ammo mould has been added to the smelting plugin
  • \n
  • Clown :O) and cow 3:O have been added to the Emoji plugin.
  • \n
  • The agility plugin once again highlights the skull slope obstacle clickbox
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors this update!

\n
Adam (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.094bbfa6.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[155],{433:function(e,n){e.exports={title:"1.8.31 Release",description:"Custom UI swaps and ToA preparations",author:"Adam",body:'

UI swaps

\n

Many 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

uiswap1\nuiswap2

\n

Due 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.

\n

Tombs of Amascut

\n

We\'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

runepouch

\n

ToA has been added to the hiscore panel:

\n

hiscores

\n

Additionally, we\'ve been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Minor graphical inconsistences on GPU with compute shaders off have been fixed, such as the GE floor appearing to have white dots between the tiles
  • \n
  • The 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.
  • \n
  • Clan members are included in the hiscore search name autocompleter
  • \n
  • Clan members previous chat message ranks no longer change to "unranked" after they log out
  • \n
  • Friends chat rank icon now displays to the left of the user\'s name instead of to the right of the channel name
  • \n
  • Bank 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.
  • \n
  • Members 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.
  • \n
  • The loot tracker no longer shows member items as Members object when logged into a free to play world.
  • \n
  • The double ammo mould has been added to the smelting plugin
  • \n
  • Clown :O) and cow 3:O have been added to the Emoji plugin.
  • \n
  • The agility plugin once again highlights the skull slope obstacle clickbox
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors this update!

\n
Adam (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.aa3f28a1.chunk.js.map \ No newline at end of file diff --git a/static/js/155.094bbfa6.chunk.js.map b/static/js/155.aa3f28a1.chunk.js.map similarity index 99% rename from static/js/155.094bbfa6.chunk.js.map rename to static/js/155.aa3f28a1.chunk.js.map index 352352e8c6..a0b5efcf80 100644 --- a/static/js/155.094bbfa6.chunk.js.map +++ b/static/js/155.aa3f28a1.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.094bbfa6.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.31 Release\",\"description\":\"Custom UI swaps and ToA preparations\",\"author\":\"Adam\",\"body\":\"

UI swaps

\\n

Many 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

\\\"uiswap1\\\"\\n\\\"uiswap2\\\"

\\n

Due 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.

\\n

Tombs of Amascut

\\n

We'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

\\\"runepouch\\\"

\\n

ToA has been added to the hiscore panel:

\\n

\\\"hiscores\\\"

\\n

Additionally, we've been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Minor graphical inconsistences on GPU with compute shaders off have been fixed, such as the GE floor appearing to have white dots between the tiles
  • \\n
  • The 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.
  • \\n
  • Clan members are included in the hiscore search name autocompleter
  • \\n
  • Clan members previous chat message ranks no longer change to "unranked" after they log out
  • \\n
  • Friends chat rank icon now displays to the left of the user's name instead of to the right of the channel name
  • \\n
  • Bank 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.
  • \\n
  • Members 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.
  • \\n
  • The loot tracker no longer shows member items as Members object when logged into a free to play world.
  • \\n
  • The double ammo mould has been added to the smelting plugin
  • \\n
  • Clown :O) and cow 3:O have been added to the Emoji plugin.
  • \\n
  • The agility plugin once again highlights the skull slope obstacle clickbox
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors this update!

\\n
Adam (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.aa3f28a1.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.8.31 Release\",\"description\":\"Custom UI swaps and ToA preparations\",\"author\":\"Adam\",\"body\":\"

UI swaps

\\n

Many 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

\\\"uiswap1\\\"\\n\\\"uiswap2\\\"

\\n

Due 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.

\\n

Tombs of Amascut

\\n

We'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

\\\"runepouch\\\"

\\n

ToA has been added to the hiscore panel:

\\n

\\\"hiscores\\\"

\\n

Additionally, we've been able to add loot tracking for Tombs of Amascut already and expect it to be working for release day.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Minor graphical inconsistences on GPU with compute shaders off have been fixed, such as the GE floor appearing to have white dots between the tiles
  • \\n
  • The 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.
  • \\n
  • Clan members are included in the hiscore search name autocompleter
  • \\n
  • Clan members previous chat message ranks no longer change to "unranked" after they log out
  • \\n
  • Friends chat rank icon now displays to the left of the user's name instead of to the right of the channel name
  • \\n
  • Bank 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.
  • \\n
  • Members 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.
  • \\n
  • The loot tracker no longer shows member items as Members object when logged into a free to play world.
  • \\n
  • The double ammo mould has been added to the smelting plugin
  • \\n
  • Clown :O) and cow 3:O have been added to the Emoji plugin.
  • \\n
  • The agility plugin once again highlights the skull slope obstacle clickbox
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors this update!

\\n
Adam (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.cb2198d0.chunk.js b/static/js/156.75b7ff6b.chunk.js similarity index 98% rename from static/js/156.cb2198d0.chunk.js rename to static/js/156.75b7ff6b.chunk.js index e6fc4f80f8..34011b843f 100644 --- a/static/js/156.cb2198d0.chunk.js +++ b/static/js/156.75b7ff6b.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[156],{433: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
\n

After 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.

\n

Note 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.

\n

The cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:

\n

The 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.

\n

The 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.

\n

After 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.

\n

If 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.

\n

In 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.

\n

This 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.

\n

While 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.

\n

Since 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:

\n
class Vec4 {\n      float[] v = new float[4];\n}\n
\n

into

\n
class Vec4 {\n      float v0;\n      float v1;\n      float v2;\n      float v3;\n}\n
\n

The former has 2 objects, the Vec4 and the float[4], while the latter only has one, despite using the same amount of memory.

\n

This 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.

\n

With 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.

\n

The 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.

\n

After 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
\n

With 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.cb2198d0.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[156],{434: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
\n

After 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.

\n

Note 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.

\n

The cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:

\n

The 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.

\n

The 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.

\n

After 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.

\n

If 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.

\n

In 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.

\n

This 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.

\n

While 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.

\n

Since 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:

\n
class Vec4 {\n      float[] v = new float[4];\n}\n
\n

into

\n
class Vec4 {\n      float v0;\n      float v1;\n      float v2;\n      float v3;\n}\n
\n

The former has 2 objects, the Vec4 and the float[4], while the latter only has one, despite using the same amount of memory.

\n

This 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.

\n

With 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.

\n

The 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.

\n

After 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
\n

With 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.75b7ff6b.chunk.js.map \ No newline at end of file diff --git a/static/js/156.cb2198d0.chunk.js.map b/static/js/156.75b7ff6b.chunk.js.map similarity index 99% rename from static/js/156.cb2198d0.chunk.js.map rename to static/js/156.75b7ff6b.chunk.js.map index 8f6ae88f49..395f7dbb49 100644 --- a/static/js/156.cb2198d0.chunk.js.map +++ b/static/js/156.75b7ff6b.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.cb2198d0.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
\\n

After 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.

\\n

Note 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.

\\n

The cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:

\\n

The 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.

\\n

The 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.

\\n

After 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.

\\n

If 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.

\\n

In 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.

\\n

This 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.

\\n

While 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.

\\n

Since 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:

\\n
class Vec4 {\\n      float[] v = new float[4];\\n}\\n
\\n

into

\\n
class Vec4 {\\n      float v0;\\n      float v1;\\n      float v2;\\n      float v3;\\n}\\n
\\n

The former has 2 objects, the Vec4 and the float[4], while the latter only has one, despite using the same amount of memory.

\\n

This 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.

\\n

With 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.

\\n

The 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.

\\n

After 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
\\n

With 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.75b7ff6b.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
\\n

After 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.

\\n

Note 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.

\\n

The cause of the lag issues have been due to Java garbage collection pressure. There are two different types of pressure which we will cover:

\\n

The 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.

\\n

The 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.

\\n

After 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.

\\n

If 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.

\\n

In 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.

\\n

This 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.

\\n

While 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.

\\n

Since 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:

\\n
class Vec4 {\\n      float[] v = new float[4];\\n}\\n
\\n

into

\\n
class Vec4 {\\n      float v0;\\n      float v1;\\n      float v2;\\n      float v3;\\n}\\n
\\n

The former has 2 objects, the Vec4 and the float[4], while the latter only has one, despite using the same amount of memory.

\\n

This 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.

\\n

With 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.

\\n

The 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.

\\n

After 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
\\n

With 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.35898266.chunk.js b/static/js/157.019e45fe.chunk.js similarity index 98% rename from static/js/157.35898266.chunk.js rename to static/js/157.019e45fe.chunk.js index ba3402fa6d..dea249605b 100644 --- a/static/js/157.35898266.chunk.js +++ b/static/js/157.019e45fe.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[157],{434:function(e,n){e.exports={title:"1.9.0 Release",description:"Zoomable minimap and submenus",author:"Adam",body:'

Minimap zooming

\n

The 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\n\n\n\n\n\n\n\n\n\n\n\n\n
InDefaultOut
zoom-inzoom-defaultzoom-out
\n

Submenus

\n

Last 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
submenuoldsubmenunew
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The run energy plugin now correctly accounts for the passive Ring of Endurance effect
  • \n
  • A bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed
  • \n
  • terminal-notifier on MacOS is now more reliably detected when installed into nonstandard locations
  • \n
  • The pickpocket timer now works with Martin the Master Farmer
  • \n
  • Drinking Liquid Adrenaline prior to the timer running out now correctly resets the timer
  • \n
  • Fix !lvl toa expert to work as expected
  • \n
  • Fresh start hiscores have been added to the hiscore panel
  • \n
  • The Tombs of Amascut background has been added to the login screen plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this update!

\n
Adam (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.35898266.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[157],{435:function(e,n){e.exports={title:"1.9.0 Release",description:"Zoomable minimap and submenus",author:"Adam",body:'

Minimap zooming

\n

The 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\n\n\n\n\n\n\n\n\n\n\n\n\n
InDefaultOut
zoom-inzoom-defaultzoom-out
\n

Submenus

\n

Last 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\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
submenuoldsubmenunew
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The run energy plugin now correctly accounts for the passive Ring of Endurance effect
  • \n
  • A bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed
  • \n
  • terminal-notifier on MacOS is now more reliably detected when installed into nonstandard locations
  • \n
  • The pickpocket timer now works with Martin the Master Farmer
  • \n
  • Drinking Liquid Adrenaline prior to the timer running out now correctly resets the timer
  • \n
  • Fix !lvl toa expert to work as expected
  • \n
  • Fresh start hiscores have been added to the hiscore panel
  • \n
  • The Tombs of Amascut background has been added to the login screen plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this update!

\n
Adam (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.019e45fe.chunk.js.map \ No newline at end of file diff --git a/static/js/157.35898266.chunk.js.map b/static/js/157.019e45fe.chunk.js.map similarity index 99% rename from static/js/157.35898266.chunk.js.map rename to static/js/157.019e45fe.chunk.js.map index 3ab6d6ec92..7378967007 100644 --- a/static/js/157.35898266.chunk.js.map +++ b/static/js/157.019e45fe.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.35898266.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.0 Release\",\"description\":\"Zoomable minimap and submenus\",\"author\":\"Adam\",\"body\":\"

Minimap zooming

\\n

The 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
InDefaultOut
\\\"zoom-in\\\"\\\"zoom-default\\\"\\\"zoom-out\\\"
\\n

Submenus

\\n

Last 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"submenuold\\\"\\\"submenunew\\\"
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The run energy plugin now correctly accounts for the passive Ring of Endurance effect
  • \\n
  • A bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed
  • \\n
  • terminal-notifier on MacOS is now more reliably detected when installed into nonstandard locations
  • \\n
  • The pickpocket timer now works with Martin the Master Farmer
  • \\n
  • Drinking Liquid Adrenaline prior to the timer running out now correctly resets the timer
  • \\n
  • Fix !lvl toa expert to work as expected
  • \\n
  • Fresh start hiscores have been added to the hiscore panel
  • \\n
  • The Tombs of Amascut background has been added to the login screen plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this update!

\\n
Adam (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.019e45fe.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.0 Release\",\"description\":\"Zoomable minimap and submenus\",\"author\":\"Adam\",\"body\":\"

Minimap zooming

\\n

The 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
InDefaultOut
\\\"zoom-in\\\"\\\"zoom-default\\\"\\\"zoom-out\\\"
\\n

Submenus

\\n

Last 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"submenuold\\\"\\\"submenunew\\\"
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The run energy plugin now correctly accounts for the passive Ring of Endurance effect
  • \\n
  • A bug causing the window to maximize over the Windows taskbar on the newest launcher version has been fixed
  • \\n
  • terminal-notifier on MacOS is now more reliably detected when installed into nonstandard locations
  • \\n
  • The pickpocket timer now works with Martin the Master Farmer
  • \\n
  • Drinking Liquid Adrenaline prior to the timer running out now correctly resets the timer
  • \\n
  • Fix !lvl toa expert to work as expected
  • \\n
  • Fresh start hiscores have been added to the hiscore panel
  • \\n
  • The Tombs of Amascut background has been added to the login screen plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this update!

\\n
Adam (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.3d94cd27.chunk.js b/static/js/158.b057afef.chunk.js similarity index 98% rename from static/js/158.3d94cd27.chunk.js rename to static/js/158.b057afef.chunk.js index 7341ff4a48..4874ce1f12 100644 --- a/static/js/158.3d94cd27.chunk.js +++ b/static/js/158.b057afef.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[158],{435:function(e,n){e.exports={title:"1.9.5 Release",description:"Clue notes and npc highlight enhancements",author:"Adam",body:'

Clue notes

\n

Notes 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

clue-note

\n

Per NPC highlight color and types

\n

NPC 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
npc-colornpc-style
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The world hopper has an option to filter the world list by world type
  • \n
  • Wiki FSW GE prices are now used when on a fresh start world
  • \n
  • The thrall timer has been updated for the new CA task rewards
  • \n
  • Thralls can now be hidden with the entity hider
  • \n
  • The prayer flick and orb colors are now configurable
  • \n
  • Objects\' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper
  • \n
  • A bug causing erroneous Wintertodt round start notifications to be sent has been fixed
  • \n
  • Fix tracking Dorgeshuun crossbow special attacks
  • \n
  • Zalcano damage tracker correctly tracks max hitsplat variants
  • \n
  • Menaphite remedy has been added to item identification
  • \n
  • Opponent info\'s always show (de)buffer timer option now works correctly, again
  • \n
  • TOA team sizes have been added to the pb command, eg !pb toa 2
  • \n
\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (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.3d94cd27.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[158],{436:function(e,n){e.exports={title:"1.9.5 Release",description:"Clue notes and npc highlight enhancements",author:"Adam",body:'

Clue notes

\n

Notes 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

clue-note

\n

Per NPC highlight color and types

\n

NPC 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
npc-colornpc-style
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The world hopper has an option to filter the world list by world type
  • \n
  • Wiki FSW GE prices are now used when on a fresh start world
  • \n
  • The thrall timer has been updated for the new CA task rewards
  • \n
  • Thralls can now be hidden with the entity hider
  • \n
  • The prayer flick and orb colors are now configurable
  • \n
  • Objects\' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper
  • \n
  • A bug causing erroneous Wintertodt round start notifications to be sent has been fixed
  • \n
  • Fix tracking Dorgeshuun crossbow special attacks
  • \n
  • Zalcano damage tracker correctly tracks max hitsplat variants
  • \n
  • Menaphite remedy has been added to item identification
  • \n
  • Opponent info\'s always show (de)buffer timer option now works correctly, again
  • \n
  • TOA team sizes have been added to the pb command, eg !pb toa 2
  • \n
\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (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.b057afef.chunk.js.map \ No newline at end of file diff --git a/static/js/158.3d94cd27.chunk.js.map b/static/js/158.b057afef.chunk.js.map similarity index 99% rename from static/js/158.3d94cd27.chunk.js.map rename to static/js/158.b057afef.chunk.js.map index ac2f1e4043..8a8e0440b7 100644 --- a/static/js/158.3d94cd27.chunk.js.map +++ b/static/js/158.b057afef.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.3d94cd27.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.5 Release\",\"description\":\"Clue notes and npc highlight enhancements\",\"author\":\"Adam\",\"body\":\"

Clue notes

\\n

Notes 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

\\\"clue-note\\\"

\\n

Per NPC highlight color and types

\\n

NPC 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
\\\"npc-color\\\"\\\"npc-style\\\"
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The world hopper has an option to filter the world list by world type
  • \\n
  • Wiki FSW GE prices are now used when on a fresh start world
  • \\n
  • The thrall timer has been updated for the new CA task rewards
  • \\n
  • Thralls can now be hidden with the entity hider
  • \\n
  • The prayer flick and orb colors are now configurable
  • \\n
  • Objects' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper
  • \\n
  • A bug causing erroneous Wintertodt round start notifications to be sent has been fixed
  • \\n
  • Fix tracking Dorgeshuun crossbow special attacks
  • \\n
  • Zalcano damage tracker correctly tracks max hitsplat variants
  • \\n
  • Menaphite remedy has been added to item identification
  • \\n
  • Opponent info's always show (de)buffer timer option now works correctly, again
  • \\n
  • TOA team sizes have been added to the pb command, eg !pb toa 2
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (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.b057afef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.5 Release\",\"description\":\"Clue notes and npc highlight enhancements\",\"author\":\"Adam\",\"body\":\"

Clue notes

\\n

Notes 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

\\\"clue-note\\\"

\\n

Per NPC highlight color and types

\\n

NPC 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
\\\"npc-color\\\"\\\"npc-style\\\"
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The world hopper has an option to filter the world list by world type
  • \\n
  • Wiki FSW GE prices are now used when on a fresh start world
  • \\n
  • The thrall timer has been updated for the new CA task rewards
  • \\n
  • Thralls can now be hidden with the entity hider
  • \\n
  • The prayer flick and orb colors are now configurable
  • \\n
  • Objects' 5th options, such as the H.A.M. Hideout trapdoor, can now be swapped with menu entry swapper
  • \\n
  • A bug causing erroneous Wintertodt round start notifications to be sent has been fixed
  • \\n
  • Fix tracking Dorgeshuun crossbow special attacks
  • \\n
  • Zalcano damage tracker correctly tracks max hitsplat variants
  • \\n
  • Menaphite remedy has been added to item identification
  • \\n
  • Opponent info's always show (de)buffer timer option now works correctly, again
  • \\n
  • TOA team sizes have been added to the pb command, eg !pb toa 2
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (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.898105ca.chunk.js b/static/js/159.90e89192.chunk.js similarity index 93% rename from static/js/159.898105ca.chunk.js rename to static/js/159.90e89192.chunk.js index 7e22775355..d5a79d9ed9 100644 --- a/static/js/159.898105ca.chunk.js +++ b/static/js/159.90e89192.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[159],{436: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.

\n

This was caused by human error on our part, where we approved the plugin despite the code being exploitable.

\n

To 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.

\n

Over 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.

\n

We 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.

\n

We have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.

\n

To 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.898105ca.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[159],{437: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.

\n

This was caused by human error on our part, where we approved the plugin despite the code being exploitable.

\n

To 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.

\n

Over 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.

\n

We 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.

\n

We have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.

\n

To 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.90e89192.chunk.js.map \ No newline at end of file diff --git a/static/js/159.898105ca.chunk.js.map b/static/js/159.90e89192.chunk.js.map similarity index 96% rename from static/js/159.898105ca.chunk.js.map rename to static/js/159.90e89192.chunk.js.map index b993e063d8..cee781113e 100644 --- a/static/js/159.898105ca.chunk.js.map +++ b/static/js/159.90e89192.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.898105ca.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.

\\n

This was caused by human error on our part, where we approved the plugin despite the code being exploitable.

\\n

To 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.

\\n

Over 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.

\\n

We 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.

\\n

We have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.

\\n

To 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.90e89192.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.

\\n

This was caused by human error on our part, where we approved the plugin despite the code being exploitable.

\\n

To 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.

\\n

Over 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.

\\n

We 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.

\\n

We have also checked all existing plugin hub plugins and found no other plugins with similarly exploitable code.

\\n

To 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.06b43ad9.chunk.js b/static/js/16.19625a89.chunk.js similarity index 94% rename from static/js/16.06b43ad9.chunk.js rename to static/js/16.19625a89.chunk.js index c4f3da5f96..906dde7412 100644 --- a/static/js/16.06b43ad9.chunk.js +++ b/static/js/16.19625a89.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){},461: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.06b43ad9.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){},463: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.19625a89.chunk.js.map \ No newline at end of file diff --git a/static/js/16.06b43ad9.chunk.js.map b/static/js/16.19625a89.chunk.js.map similarity index 98% rename from static/js/16.06b43ad9.chunk.js.map rename to static/js/16.19625a89.chunk.js.map index 23ec1d6d26..4b2a5b6928 100644 --- a/static/js/16.06b43ad9.chunk.js.map +++ b/static/js/16.19625a89.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.06b43ad9.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Enter tile markers

\n

\n Paste tile markers exported from RuneLite and click 'GO'\n

\n
\n\n setActiveTile(event.target.value)}\n >\n {activeTile}\n \n \n Go\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.19625a89.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Enter tile markers

\n

\n Paste tile markers exported from RuneLite and click 'GO'\n

\n
\n\n setActiveTile(event.target.value)}\n >\n {activeTile}\n \n \n Go\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.439ae5ed.chunk.js b/static/js/160.97d2cc95.chunk.js similarity index 98% rename from static/js/160.439ae5ed.chunk.js rename to static/js/160.97d2cc95.chunk.js index aaa024a1f1..1f30804aab 100644 --- a/static/js/160.439ae5ed.chunk.js +++ b/static/js/160.97d2cc95.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[160],{437:function(e,n){e.exports={title:"1.9.11 Release",description:"Profiles",author:"Adam",body:"

Profiles

\n

Profiles 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.

\n

Your existing settings will be migrated into a single profile named default automatically.

\n

\"profile\"

\n

In 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.

\n

For 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.

\n

Launcher updates

\n

Last 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Player indicators has an option to disable when outside of PvP
  • \n
  • Camera plugin expand pitch mode now also expands the lower pitch limit
  • \n
  • Various missing random events were added to the random event plugin
  • \n
  • Entity hider can now hide random events
  • \n
  • 1 defence and level 3 combat hiscores have been added to the hiscore plugin
  • \n
  • Volcanic mine ore packs have been added to the loot tracker
  • \n
  • xBR UI scaling now works correctly on M1 Macs
  • \n
  • Farmer's affinity has been added to the timers plugin
  • \n
  • A bug causing timers to turn red too early has been fixed
  • \n
\n

- Adam

\n

New commits

\n

We had 27 contributors this update!

\n
Adam (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.439ae5ed.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[160],{438:function(e,n){e.exports={title:"1.9.11 Release",description:"Profiles",author:"Adam",body:"

Profiles

\n

Profiles 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.

\n

Your existing settings will be migrated into a single profile named default automatically.

\n

\"profile\"

\n

In 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.

\n

For 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.

\n

Launcher updates

\n

Last 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Player indicators has an option to disable when outside of PvP
  • \n
  • Camera plugin expand pitch mode now also expands the lower pitch limit
  • \n
  • Various missing random events were added to the random event plugin
  • \n
  • Entity hider can now hide random events
  • \n
  • 1 defence and level 3 combat hiscores have been added to the hiscore plugin
  • \n
  • Volcanic mine ore packs have been added to the loot tracker
  • \n
  • xBR UI scaling now works correctly on M1 Macs
  • \n
  • Farmer's affinity has been added to the timers plugin
  • \n
  • A bug causing timers to turn red too early has been fixed
  • \n
\n

- Adam

\n

New commits

\n

We had 27 contributors this update!

\n
Adam (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.97d2cc95.chunk.js.map \ No newline at end of file diff --git a/static/js/160.439ae5ed.chunk.js.map b/static/js/160.97d2cc95.chunk.js.map similarity index 99% rename from static/js/160.439ae5ed.chunk.js.map rename to static/js/160.97d2cc95.chunk.js.map index a6dccd59e1..e7406f231b 100644 --- a/static/js/160.439ae5ed.chunk.js.map +++ b/static/js/160.97d2cc95.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.439ae5ed.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.11 Release\",\"description\":\"Profiles\",\"author\":\"Adam\",\"body\":\"

Profiles

\\n

Profiles 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.

\\n

Your existing settings will be migrated into a single profile named default automatically.

\\n

\\\"profile\\\"

\\n

In 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.

\\n

For 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.

\\n

Launcher updates

\\n

Last 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Player indicators has an option to disable when outside of PvP
  • \\n
  • Camera plugin expand pitch mode now also expands the lower pitch limit
  • \\n
  • Various missing random events were added to the random event plugin
  • \\n
  • Entity hider can now hide random events
  • \\n
  • 1 defence and level 3 combat hiscores have been added to the hiscore plugin
  • \\n
  • Volcanic mine ore packs have been added to the loot tracker
  • \\n
  • xBR UI scaling now works correctly on M1 Macs
  • \\n
  • Farmer's affinity has been added to the timers plugin
  • \\n
  • A bug causing timers to turn red too early has been fixed
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 27 contributors this update!

\\n
Adam (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.97d2cc95.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.9.11 Release\",\"description\":\"Profiles\",\"author\":\"Adam\",\"body\":\"

Profiles

\\n

Profiles 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.

\\n

Your existing settings will be migrated into a single profile named default automatically.

\\n

\\\"profile\\\"

\\n

In 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.

\\n

For 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.

\\n

Launcher updates

\\n

Last 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Player indicators has an option to disable when outside of PvP
  • \\n
  • Camera plugin expand pitch mode now also expands the lower pitch limit
  • \\n
  • Various missing random events were added to the random event plugin
  • \\n
  • Entity hider can now hide random events
  • \\n
  • 1 defence and level 3 combat hiscores have been added to the hiscore plugin
  • \\n
  • Volcanic mine ore packs have been added to the loot tracker
  • \\n
  • xBR UI scaling now works correctly on M1 Macs
  • \\n
  • Farmer's affinity has been added to the timers plugin
  • \\n
  • A bug causing timers to turn red too early has been fixed
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 27 contributors this update!

\\n
Adam (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.b0f472fd.chunk.js b/static/js/161.341e9f6e.chunk.js similarity index 98% rename from static/js/161.b0f472fd.chunk.js rename to static/js/161.341e9f6e.chunk.js index 41f91249ad..0a7f9e8e6d 100644 --- a/static/js/161.b0f472fd.chunk.js +++ b/static/js/161.341e9f6e.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[161],{438:function(e,n){e.exports={title:"1.10.0 Release",description:"Map loading improvements",author:"Adam",body:"

Map loading improvements

\n

The 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

\n

Jagex Account PSA

\n

With 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.

\n

Jagex 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Multi kills on abyssal demons on task are now correctly counted
  • \n
  • Mirror shield's "mirror" effect now renders correctly on GPU
  • \n
  • Walk here can now be swapped on a per-object basis, similar to NPCs
  • \n
  • Profiles can now be reordered via drag and drop in the profile list
  • \n
  • Fix the ring of forging tracker being off by 1
  • \n
  • The GE plugin can now notify you when an offer is fully complete, instead of on each update
  • \n
\n

- Adam

\n

New commits

\n

We had 28 contributors this update!

\n
Adam (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.b0f472fd.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[161],{439:function(e,n){e.exports={title:"1.10.0 Release",description:"Map loading improvements",author:"Adam",body:"

Map loading improvements

\n

The 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

\n

Jagex Account PSA

\n

With 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.

\n

Jagex 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Multi kills on abyssal demons on task are now correctly counted
  • \n
  • Mirror shield's "mirror" effect now renders correctly on GPU
  • \n
  • Walk here can now be swapped on a per-object basis, similar to NPCs
  • \n
  • Profiles can now be reordered via drag and drop in the profile list
  • \n
  • Fix the ring of forging tracker being off by 1
  • \n
  • The GE plugin can now notify you when an offer is fully complete, instead of on each update
  • \n
\n

- Adam

\n

New commits

\n

We had 28 contributors this update!

\n
Adam (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.341e9f6e.chunk.js.map \ No newline at end of file diff --git a/static/js/161.b0f472fd.chunk.js.map b/static/js/161.341e9f6e.chunk.js.map similarity index 99% rename from static/js/161.b0f472fd.chunk.js.map rename to static/js/161.341e9f6e.chunk.js.map index a9cf54077f..38b4f8f238 100644 --- a/static/js/161.b0f472fd.chunk.js.map +++ b/static/js/161.341e9f6e.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.b0f472fd.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.0 Release\",\"description\":\"Map loading improvements\",\"author\":\"Adam\",\"body\":\"

Map loading improvements

\\n

The 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

\\n

Jagex Account PSA

\\n

With 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.

\\n

Jagex 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Multi kills on abyssal demons on task are now correctly counted
  • \\n
  • Mirror shield's "mirror" effect now renders correctly on GPU
  • \\n
  • Walk here can now be swapped on a per-object basis, similar to NPCs
  • \\n
  • Profiles can now be reordered via drag and drop in the profile list
  • \\n
  • Fix the ring of forging tracker being off by 1
  • \\n
  • The GE plugin can now notify you when an offer is fully complete, instead of on each update
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 28 contributors this update!

\\n
Adam (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.341e9f6e.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.0 Release\",\"description\":\"Map loading improvements\",\"author\":\"Adam\",\"body\":\"

Map loading improvements

\\n

The 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

\\n

Jagex Account PSA

\\n

With 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.

\\n

Jagex 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Multi kills on abyssal demons on task are now correctly counted
  • \\n
  • Mirror shield's "mirror" effect now renders correctly on GPU
  • \\n
  • Walk here can now be swapped on a per-object basis, similar to NPCs
  • \\n
  • Profiles can now be reordered via drag and drop in the profile list
  • \\n
  • Fix the ring of forging tracker being off by 1
  • \\n
  • The GE plugin can now notify you when an offer is fully complete, instead of on each update
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 28 contributors this update!

\\n
Adam (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.670a8e5c.chunk.js b/static/js/162.739b9a95.chunk.js similarity index 98% rename from static/js/162.670a8e5c.chunk.js rename to static/js/162.739b9a95.chunk.js index 9882787ff1..ee8711af37 100644 --- a/static/js/162.670a8e5c.chunk.js +++ b/static/js/162.739b9a95.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[162],{439:function(e,n){e.exports={title:"1.10.6 Release",description:"Forestry",author:"Adam",body:'

Forestry

\n

The 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
beesrootssapling
\n

Prayer reordering

\n

As 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

\n

Windows ARM launcher

\n

We 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • When pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing
  • \n
  • The motherlode mine respawn timers have been fixed, again, and are now definitely correct
  • \n
  • !pb now supports hours
  • \n
  • The feed panel has been removed due to Twitter removing their free API access
  • \n
\n

New commits

\n

We had 17 contributors this update!

\n
Adam (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.670a8e5c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[162],{440:function(e,n){e.exports={title:"1.10.6 Release",description:"Forestry",author:"Adam",body:'

Forestry

\n

The 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
beesrootssapling
\n

Prayer reordering

\n

As 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

\n

Windows ARM launcher

\n

We 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • When pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing
  • \n
  • The motherlode mine respawn timers have been fixed, again, and are now definitely correct
  • \n
  • !pb now supports hours
  • \n
  • The feed panel has been removed due to Twitter removing their free API access
  • \n
\n

New commits

\n

We had 17 contributors this update!

\n
Adam (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.739b9a95.chunk.js.map \ No newline at end of file diff --git a/static/js/162.670a8e5c.chunk.js.map b/static/js/162.739b9a95.chunk.js.map similarity index 98% rename from static/js/162.670a8e5c.chunk.js.map rename to static/js/162.739b9a95.chunk.js.map index 9f0b55caf5..99d2cc7e02 100644 --- a/static/js/162.670a8e5c.chunk.js.map +++ b/static/js/162.739b9a95.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.670a8e5c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.6 Release\",\"description\":\"Forestry\",\"author\":\"Adam\",\"body\":\"

Forestry

\\n

The 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
\\\"bees\\\"\\\"roots\\\"\\\"sapling\\\"
\\n

Prayer reordering

\\n

As 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

\\n

Windows ARM launcher

\\n

We 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • When pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing
  • \\n
  • The motherlode mine respawn timers have been fixed, again, and are now definitely correct
  • \\n
  • !pb now supports hours
  • \\n
  • The feed panel has been removed due to Twitter removing their free API access
  • \\n
\\n

New commits

\\n

We had 17 contributors this update!

\\n
Adam (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.739b9a95.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.6 Release\",\"description\":\"Forestry\",\"author\":\"Adam\",\"body\":\"

Forestry

\\n

The 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
\\\"bees\\\"\\\"roots\\\"\\\"sapling\\\"
\\n

Prayer reordering

\\n

As 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

\\n

Windows ARM launcher

\\n

We 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • When pluginhub plugins become incompatible due to an update, they now show as incompatible instead of silently disappearing
  • \\n
  • The motherlode mine respawn timers have been fixed, again, and are now definitely correct
  • \\n
  • !pb now supports hours
  • \\n
  • The feed panel has been removed due to Twitter removing their free API access
  • \\n
\\n

New commits

\\n

We had 17 contributors this update!

\\n
Adam (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.5318864c.chunk.js b/static/js/163.a8adb4ef.chunk.js similarity index 99% rename from static/js/163.5318864c.chunk.js rename to static/js/163.a8adb4ef.chunk.js index bcf522a6b3..f33a03b455 100644 --- a/static/js/163.5318864c.chunk.js +++ b/static/js/163.a8adb4ef.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[163],{440:function(e,n){e.exports={title:"1.10.12 Release",description:"Extended map loading",author:"Adam",body:'

Extended map loading

\n

RuneLite 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!

\n

When combined with our previous work on seamless map loading the world feels like one continuous area.

\n

When 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

\n

mountain

\n

\n

Note there are a few limitations:

\n

Extended map loading does not work in instances, because there isn\'t a way to tell what the additional map to load is.

\n

You also may have to do a little exploring first! RuneLite can only load areas that it has seen before.

\n

Scrollable menu

\n

The 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

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Tile 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.
  • \n
  • Attack styles can now send a chat message warning when you switched to a warned style
  • \n
  • A 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.
  • \n
  • A bug causing boss slayer tasks to not be shown properly in !task or on the overlay has been fixed.
  • \n
  • The loot tracker now supports bounty crates
  • \n
  • The party plugin ping color assigned to players is now configurable
  • \n
  • The rune pouch overlay\'s runes are now pixel art instead of scaled down rune images
  • \n
\n

New commits

\n

We had 30 contributors this update!

\n
Adam (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.5318864c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[163],{441:function(e,n){e.exports={title:"1.10.12 Release",description:"Extended map loading",author:"Adam",body:'

Extended map loading

\n

RuneLite 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!

\n

When combined with our previous work on seamless map loading the world feels like one continuous area.

\n

When 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

\n

mountain

\n

\n

Note there are a few limitations:

\n

Extended map loading does not work in instances, because there isn\'t a way to tell what the additional map to load is.

\n

You also may have to do a little exploring first! RuneLite can only load areas that it has seen before.

\n

Scrollable menu

\n

The 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

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Tile 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.
  • \n
  • Attack styles can now send a chat message warning when you switched to a warned style
  • \n
  • A 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.
  • \n
  • A bug causing boss slayer tasks to not be shown properly in !task or on the overlay has been fixed.
  • \n
  • The loot tracker now supports bounty crates
  • \n
  • The party plugin ping color assigned to players is now configurable
  • \n
  • The rune pouch overlay\'s runes are now pixel art instead of scaled down rune images
  • \n
\n

New commits

\n

We had 30 contributors this update!

\n
Adam (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.a8adb4ef.chunk.js.map \ No newline at end of file diff --git a/static/js/163.5318864c.chunk.js.map b/static/js/163.a8adb4ef.chunk.js.map similarity index 99% rename from static/js/163.5318864c.chunk.js.map rename to static/js/163.a8adb4ef.chunk.js.map index 8dfb9b39de..2e37b47c05 100644 --- a/static/js/163.5318864c.chunk.js.map +++ b/static/js/163.a8adb4ef.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.5318864c.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.12 Release\",\"description\":\"Extended map loading\",\"author\":\"Adam\",\"body\":\"

Extended map loading

\\n

RuneLite 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!

\\n

When combined with our previous work on seamless map loading the world feels like one continuous area.

\\n

When 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

\\n

\\\"mountain\\\"

\\n

\\n

Note there are a few limitations:

\\n

Extended map loading does not work in instances, because there isn't a way to tell what the additional map to load is.

\\n

You also may have to do a little exploring first! RuneLite can only load areas that it has seen before.

\\n

Scrollable menu

\\n

The 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

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Tile 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.
  • \\n
  • Attack styles can now send a chat message warning when you switched to a warned style
  • \\n
  • A 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.
  • \\n
  • A bug causing boss slayer tasks to not be shown properly in !task or on the overlay has been fixed.
  • \\n
  • The loot tracker now supports bounty crates
  • \\n
  • The party plugin ping color assigned to players is now configurable
  • \\n
  • The rune pouch overlay's runes are now pixel art instead of scaled down rune images
  • \\n
\\n

New commits

\\n

We had 30 contributors this update!

\\n
Adam (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.a8adb4ef.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.12 Release\",\"description\":\"Extended map loading\",\"author\":\"Adam\",\"body\":\"

Extended map loading

\\n

RuneLite 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!

\\n

When combined with our previous work on seamless map loading the world feels like one continuous area.

\\n

When 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

\\n

\\\"mountain\\\"

\\n

\\n

Note there are a few limitations:

\\n

Extended map loading does not work in instances, because there isn't a way to tell what the additional map to load is.

\\n

You also may have to do a little exploring first! RuneLite can only load areas that it has seen before.

\\n

Scrollable menu

\\n

The 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

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Tile 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.
  • \\n
  • Attack styles can now send a chat message warning when you switched to a warned style
  • \\n
  • A 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.
  • \\n
  • A bug causing boss slayer tasks to not be shown properly in !task or on the overlay has been fixed.
  • \\n
  • The loot tracker now supports bounty crates
  • \\n
  • The party plugin ping color assigned to players is now configurable
  • \\n
  • The rune pouch overlay's runes are now pixel art instead of scaled down rune images
  • \\n
\\n

New commits

\\n

We had 30 contributors this update!

\\n
Adam (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.8232149d.chunk.js b/static/js/164.3802dd6f.chunk.js similarity index 98% rename from static/js/164.8232149d.chunk.js rename to static/js/164.3802dd6f.chunk.js index c2fdcfc7cc..987b886d51 100644 --- a/static/js/164.8232149d.chunk.js +++ b/static/js/164.3802dd6f.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[164],{441: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

\n

Earlier 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

A profile with a linked default account

\n

Linking an account with one of your profiles is a simple process:

\n
    \n
  1. Log in to the account to be linked
  2. \n
  3. Expand the card of the profile to link it to
  4. \n
  5. Click the \ud83d\udd17 button
  6. \n
\n

As 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.

\n

GPU performance improvements

\n

Over 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.

\n

Hide unrelated areas on GPU

\n

Have 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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
The top of the agility pyramid, with the Abyss shown in the distanceNow the Abyss is no longer shown on the horizon
You can see the mind altar from the air altar!Not anymore!
What is even happening over at the fire altar?Now it\'s looking much more normal
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Object indicators now support a separately-customizable fill color
  • \n
  • The Entity Hider and Random Event plugins both support the new Count Check random event
  • \n
  • Your gains will now be reported via the XP Updater plugin on world hop as well as on logout
  • \n
  • The Report Button plugin\'s login timer no longer resets on a lost connection being re-established\nwithout logging out
  • \n
  • The special attack counter now tracks Accursed sceptre specs
  • \n
  • A Mark of Darkness timer has been added to the Timers plugin
  • \n
  • The Skill Calculator plugin learned the xp values for making a Forgotten brew
  • \n
  • 2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin
  • \n
\n

Enjoy!

\n

- Jordan & Adam

\n

New commits

\n

We had 21 contributors this update!

\n
Adam (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.8232149d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[164],{442: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

\n

Earlier 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

A profile with a linked default account

\n

Linking an account with one of your profiles is a simple process:

\n
    \n
  1. Log in to the account to be linked
  2. \n
  3. Expand the card of the profile to link it to
  4. \n
  5. Click the \ud83d\udd17 button
  6. \n
\n

As 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.

\n

GPU performance improvements

\n

Over 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.

\n

Hide unrelated areas on GPU

\n

Have 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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
BeforeAfter
The top of the agility pyramid, with the Abyss shown in the distanceNow the Abyss is no longer shown on the horizon
You can see the mind altar from the air altar!Not anymore!
What is even happening over at the fire altar?Now it\'s looking much more normal
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Object indicators now support a separately-customizable fill color
  • \n
  • The Entity Hider and Random Event plugins both support the new Count Check random event
  • \n
  • Your gains will now be reported via the XP Updater plugin on world hop as well as on logout
  • \n
  • The Report Button plugin\'s login timer no longer resets on a lost connection being re-established\nwithout logging out
  • \n
  • The special attack counter now tracks Accursed sceptre specs
  • \n
  • A Mark of Darkness timer has been added to the Timers plugin
  • \n
  • The Skill Calculator plugin learned the xp values for making a Forgotten brew
  • \n
  • 2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin
  • \n
\n

Enjoy!

\n

- Jordan & Adam

\n

New commits

\n

We had 21 contributors this update!

\n
Adam (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.3802dd6f.chunk.js.map \ No newline at end of file diff --git a/static/js/164.8232149d.chunk.js.map b/static/js/164.3802dd6f.chunk.js.map similarity index 99% rename from static/js/164.8232149d.chunk.js.map rename to static/js/164.3802dd6f.chunk.js.map index 243573a825..ea8fd96d03 100644 --- a/static/js/164.8232149d.chunk.js.map +++ b/static/js/164.3802dd6f.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.8232149d.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

\\n

Earlier 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

\\\"A

\\n

Linking an account with one of your profiles is a simple process:

\\n
    \\n
  1. Log in to the account to be linked
  2. \\n
  3. Expand the card of the profile to link it to
  4. \\n
  5. Click the 🔗 button
  6. \\n
\\n

As 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.

\\n

GPU performance improvements

\\n

Over 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.

\\n

Hide unrelated areas on GPU

\\n

Have 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"The\\\"Now
\\\"You\\\"Not
\\\"What\\\"Now
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Object indicators now support a separately-customizable fill color
  • \\n
  • The Entity Hider and Random Event plugins both support the new Count Check random event
  • \\n
  • Your gains will now be reported via the XP Updater plugin on world hop as well as on logout
  • \\n
  • The Report Button plugin's login timer no longer resets on a lost connection being re-established\\nwithout logging out
  • \\n
  • The special attack counter now tracks Accursed sceptre specs
  • \\n
  • A Mark of Darkness timer has been added to the Timers plugin
  • \\n
  • The Skill Calculator plugin learned the xp values for making a Forgotten brew
  • \\n
  • 2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan & Adam

\\n

New commits

\\n

We had 21 contributors this update!

\\n
Adam (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.3802dd6f.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

\\n

Earlier 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

\\\"A

\\n

Linking an account with one of your profiles is a simple process:

\\n
    \\n
  1. Log in to the account to be linked
  2. \\n
  3. Expand the card of the profile to link it to
  4. \\n
  5. Click the 🔗 button
  6. \\n
\\n

As 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.

\\n

GPU performance improvements

\\n

Over 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.

\\n

Hide unrelated areas on GPU

\\n

Have 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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
BeforeAfter
\\\"The\\\"Now
\\\"You\\\"Not
\\\"What\\\"Now
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Object indicators now support a separately-customizable fill color
  • \\n
  • The Entity Hider and Random Event plugins both support the new Count Check random event
  • \\n
  • Your gains will now be reported via the XP Updater plugin on world hop as well as on logout
  • \\n
  • The Report Button plugin's login timer no longer resets on a lost connection being re-established\\nwithout logging out
  • \\n
  • The special attack counter now tracks Accursed sceptre specs
  • \\n
  • A Mark of Darkness timer has been added to the Timers plugin
  • \\n
  • The Skill Calculator plugin learned the xp values for making a Forgotten brew
  • \\n
  • 2h axes and campfires have been added to the idle notifier, and the new forestry events added to the woodcutting plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan & Adam

\\n

New commits

\\n

We had 21 contributors this update!

\\n
Adam (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.bb5bbdee.chunk.js b/static/js/165.31cc8912.chunk.js similarity index 99% rename from static/js/165.bb5bbdee.chunk.js rename to static/js/165.31cc8912.chunk.js index 11e018cba2..96d183cdcf 100644 --- a/static/js/165.bb5bbdee.chunk.js +++ b/static/js/165.31cc8912.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[165],{442:function(e,n){e.exports={title:"1.10.23 Release",description:"New UI Look and Feel",author:"Adam",body:'

New UI Look and Feel

\n

We\'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

sidebar

\n

Additionally 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.

\n

Player menu collapsing

\n

The interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.

\n

player menus

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You 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!
  • \n
  • US servers now show east or west on the world hopper.
  • \n
  • Time tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch.
  • \n
  • The Window opacity setting now works on more systems (MacOS/Linux) and also with custom chrome off.
  • \n
  • The wiki plugin adds a View DPS button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear.
  • \n
  • Tree respawn timers now use the Jagex respawn timers.
  • \n
  • The message from the NPC unaggression plugin being uncalibrated is now an infobox.
  • \n
  • Camera speed can now be adjusted in the camera plugin.
  • \n
  • Custom notification volume can now be adjusted under notification settings.
  • \n
  • Group ironman shared storage can now be searched using the search hotkey.
  • \n
  • Loot tracking for the Nightmare and Phosani\'s Nightmare has been fixed.
  • \n
  • A bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed.
  • \n
  • The chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list.
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 31 contributors this update!

\n
Adam (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.bb5bbdee.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[165],{443:function(e,n){e.exports={title:"1.10.23 Release",description:"New UI Look and Feel",author:"Adam",body:'

New UI Look and Feel

\n

We\'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

sidebar

\n

Additionally 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.

\n

Player menu collapsing

\n

The interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.

\n

player menus

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • You 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!
  • \n
  • US servers now show east or west on the world hopper.
  • \n
  • Time tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch.
  • \n
  • The Window opacity setting now works on more systems (MacOS/Linux) and also with custom chrome off.
  • \n
  • The wiki plugin adds a View DPS button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear.
  • \n
  • Tree respawn timers now use the Jagex respawn timers.
  • \n
  • The message from the NPC unaggression plugin being uncalibrated is now an infobox.
  • \n
  • Camera speed can now be adjusted in the camera plugin.
  • \n
  • Custom notification volume can now be adjusted under notification settings.
  • \n
  • Group ironman shared storage can now be searched using the search hotkey.
  • \n
  • Loot tracking for the Nightmare and Phosani\'s Nightmare has been fixed.
  • \n
  • A bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed.
  • \n
  • The chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list.
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 31 contributors this update!

\n
Adam (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.31cc8912.chunk.js.map \ No newline at end of file diff --git a/static/js/165.bb5bbdee.chunk.js.map b/static/js/165.31cc8912.chunk.js.map similarity index 99% rename from static/js/165.bb5bbdee.chunk.js.map rename to static/js/165.31cc8912.chunk.js.map index 6462afbf1e..5de133cfa8 100644 --- a/static/js/165.bb5bbdee.chunk.js.map +++ b/static/js/165.31cc8912.chunk.js.map @@ -1 +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.bb5bbdee.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.23 Release\",\"description\":\"New UI Look and Feel\",\"author\":\"Adam\",\"body\":\"

New UI Look and Feel

\\n

We'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

\\\"sidebar\\\"

\\n

Additionally 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.

\\n

Player menu collapsing

\\n

The interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.

\\n

\\\"player

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You 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!
  • \\n
  • US servers now show east or west on the world hopper.
  • \\n
  • Time tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch.
  • \\n
  • The Window opacity setting now works on more systems (MacOS/Linux) and also with custom chrome off.
  • \\n
  • The wiki plugin adds a View DPS button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear.
  • \\n
  • Tree respawn timers now use the Jagex respawn timers.
  • \\n
  • The message from the NPC unaggression plugin being uncalibrated is now an infobox.
  • \\n
  • Camera speed can now be adjusted in the camera plugin.
  • \\n
  • Custom notification volume can now be adjusted under notification settings.
  • \\n
  • Group ironman shared storage can now be searched using the search hotkey.
  • \\n
  • Loot tracking for the Nightmare and Phosani's Nightmare has been fixed.
  • \\n
  • A bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed.
  • \\n
  • The chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list.
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 31 contributors this update!

\\n
Adam (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 +{"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.31cc8912.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.23 Release\",\"description\":\"New UI Look and Feel\",\"author\":\"Adam\",\"body\":\"

New UI Look and Feel

\\n

We'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

\\\"sidebar\\\"

\\n

Additionally 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.

\\n

Player menu collapsing

\\n

The interface styles plugin has a new option to place player menu options into a submenu, similar to RuneScape.

\\n

\\\"player

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • You 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!
  • \\n
  • US servers now show east or west on the world hopper.
  • \\n
  • Time tracking now correctly tracks payment to any farmer, instead of only to ones with a single patch.
  • \\n
  • The Window opacity setting now works on more systems (MacOS/Linux) and also with custom chrome off.
  • \\n
  • The wiki plugin adds a View DPS button to the equipment screen to open the OSRS Wiki DPS calculator with your current gear.
  • \\n
  • Tree respawn timers now use the Jagex respawn timers.
  • \\n
  • The message from the NPC unaggression plugin being uncalibrated is now an infobox.
  • \\n
  • Camera speed can now be adjusted in the camera plugin.
  • \\n
  • Custom notification volume can now be adjusted under notification settings.
  • \\n
  • Group ironman shared storage can now be searched using the search hotkey.
  • \\n
  • Loot tracking for the Nightmare and Phosani's Nightmare has been fixed.
  • \\n
  • A bug causing KC/PB tracking of 6+ size TOA teams to record the wrong team size has been fixed.
  • \\n
  • The chat filter plugin has been optimized to no longer cause lag with an excessively large regex filter list.
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 31 contributors this update!

\\n
Adam (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/166.649971e3.chunk.js b/static/js/166.2f841439.chunk.js similarity index 98% rename from static/js/166.649971e3.chunk.js rename to static/js/166.2f841439.chunk.js index 687de59ee4..9b6b603d3b 100644 --- a/static/js/166.649971e3.chunk.js +++ b/static/js/166.2f841439.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[166],{443:function(e,n){e.exports={title:"1.10.25 Release",description:"Varlamore: Part one",author:"Adam",body:"

Varlamore

\n

Varlamore: Part one is here! We've been working on adding a bunch of the new content to the various plugins in the last day. This includes:

\n
    \n
  • New farming patches have been added to timetracking, and to the website
  • \n
  • The hiscores have been updated for Colosseum Glory, Lunar chests, and Sol Heredit
  • \n
  • The world map plugin includes new Varlamore transports, fishing spots, trees, rocks, patches, fairy rings, hunter spots, and dungeons.
  • \n
  • New clues have been added to the clue scroll plugin
  • \n
  • Loot tracking for Lunar chest, Colosseum, and hunters loot sacks have been added
  • \n
  • Embertailed jerboa has been added to the hunter plugin
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A visual bug affecting the hunter guild roof with GPU on has been fixed
  • \n
  • Fix the attack styles plugin to recognize the new weapon types
  • \n
  • Fix roof removal for the hunter guild
  • \n
  • Fix a bug preventing reordering of bank tag tabs on the sidebar
  • \n
  • The color of ground items can now be set via shift + right click on the item
  • \n
  • The moons of peril overlay is now movable
  • \n
  • A bug preventing quest states from showing on the world map has been fixed
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (29):\n      widgetconfig: swap drag and drag on\n      bank tags: fix rememberTab with tagtabs\n      bank tags: fix scrolling while reordering\n      camera: add right click blocks camera setting\n      camera: add camera speed setting\n      clientui: increase tooltip timeout to 10s\n      guice: eagerly instantiate rtconfig refresher\n      hooks: skip outdated check in developer mode\n      party: don't delay spec attack usages\n      loot manager: fix nightmare tracking\n      interface styles: move adjustWidgetDimensions to PostClientTick\n      interface styles: early return if no skin is set\n      party: invert spec regen check\n      wiki: add dps calc buttons\n      rtconfig: mark RuntimeConfig Nullable in RuntimeConfigRefresher\n      Revert "npc aggro area: ignore unattackable NPCs"\n      cache: cleanup temp cache folder if store location setup fails\n      discord: simplify total activity time\n      discord: default elapsed time to total\n      hitsplat: fix poison hitsplat id\n      hitsplat: add other hitsplats\n      ground items: cache item hidden, highlight, and colors\n      ground items: add per item highlight colors\n      clientui: add developer version outdated error message\n      hiscores: move activities from skill_icons_small\n      hiscores: add varlamore\n      gpu: fix texture hillskew\n      clues: support wall decorations for ObjectClueScrolls\n      attack styles: use client enum for looking up weapon attack styles\n\nAdam Sharp (1):\n      interface styles: add player menu condense option\n\nBatedUrGonnaDie (1):\n      worldmap: remove kourend task map points\n\nChris (1):\n      wiki: add toggle for wiki lookup button\n\nDominickCobb (1):\n      mining: fix tracking runite ore\n\nFelanbird (5):\n      achievement diary: update various tasks\n      clues: fix incorrect naming for Wizards' Guild/Tower\n      worldmap: add AJP fairy ring\n      fairyring: add AJP fairy ring\n      clues: add Valmore clues\n\nFrazer Smith (1):\n      ci: update github actions\n\nHexagon (2):\n      api: add isRlClientOutdated hook\n      client: add runtimeConfig refresh functionality\n\nHooder (1):\n      clientui: apply custom borders when maximizing\n\nJZomDev (1):\n      hunter: add Embertailed jerboa\n\nJordan Atwood (8):\n      pmd: Require locale for case conversions\n      timers: Check all timers for resetting on config change\n      worldmap: add varlamore mining spots\n      worldmap: Alphabetize minigame locations and add test for alphabetization\n      worldmap: Add test for world point uniqueness\n      worldmap: add Great Kourend minigames\n      worldmap: add varlamore dungeons\n      worldmap: Add sandworms hunter spot\n\nMacweese (11):\n      worldmap: add varlamore transports\n      fishingspot: add varlamore fishing spots\n      worldmap: add varlamore fishing spots\n      worldmap: add varlamore rare trees\n      worldmap: add varlamore patches\n      worldmap: fix Entrana hops patch location\n      worldmap: add varlamore minigames\n      worldmap: add Grand Exchange Games Zone\n      agility: add varlamore shortcut\n      worldmap: add varlamore hunter spots\n      fishing: prevent false positive session\n\nMax Weber (5):\n      rl-client: update for 2024-3-20\n      timetracking: add varlamore patches\n      api: allow cloning face transparencies if they don't exist\n      api: expose Model::drawOrtho\n      roofremoval: add Varlamore roofs\n\nMichael Parsakia (1):\n      item identification: add sacred and olive oils\n\nMorgan Lewis (5):\n      loot tracker: track lunar chest\n      loot tracker: track fortis colosseum rewards\n      loot tracker: track hunters loot sacks\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\n      widget: make moons of peril overlay movable\n\nRhea (1):\n      chatcommands: add dt2 awakened shorthands (#16956)\n\nYvesW (4):\n      screenshot: add required rs settings to descriptions\n      screenshot: uniformize periods in config descriptions\n      party: add ping information to descriptions\n      party: uniformize periods in config descriptions\n\nZoinkwiz (2):\n      world map: Update outdated DBTableID values\n      clues: fix outdated skill challenge for shayzien armour (#17573)\n\ntesting-ongithub (3):\n      clues: Fix Squire anagram clue challenge text\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\n
\n"}}}]); -//# sourceMappingURL=166.649971e3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[166],{444:function(e,n){e.exports={title:"1.10.25 Release",description:"Varlamore: Part one",author:"Adam",body:"

Varlamore

\n

Varlamore: Part one is here! We've been working on adding a bunch of the new content to the various plugins in the last day. This includes:

\n
    \n
  • New farming patches have been added to timetracking, and to the website
  • \n
  • The hiscores have been updated for Colosseum Glory, Lunar chests, and Sol Heredit
  • \n
  • The world map plugin includes new Varlamore transports, fishing spots, trees, rocks, patches, fairy rings, hunter spots, and dungeons.
  • \n
  • New clues have been added to the clue scroll plugin
  • \n
  • Loot tracking for Lunar chest, Colosseum, and hunters loot sacks have been added
  • \n
  • Embertailed jerboa has been added to the hunter plugin
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A visual bug affecting the hunter guild roof with GPU on has been fixed
  • \n
  • Fix the attack styles plugin to recognize the new weapon types
  • \n
  • Fix roof removal for the hunter guild
  • \n
  • Fix a bug preventing reordering of bank tag tabs on the sidebar
  • \n
  • The color of ground items can now be set via shift + right click on the item
  • \n
  • The moons of peril overlay is now movable
  • \n
  • A bug preventing quest states from showing on the world map has been fixed
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 19 contributors this update!

\n
Adam (29):\n      widgetconfig: swap drag and drag on\n      bank tags: fix rememberTab with tagtabs\n      bank tags: fix scrolling while reordering\n      camera: add right click blocks camera setting\n      camera: add camera speed setting\n      clientui: increase tooltip timeout to 10s\n      guice: eagerly instantiate rtconfig refresher\n      hooks: skip outdated check in developer mode\n      party: don't delay spec attack usages\n      loot manager: fix nightmare tracking\n      interface styles: move adjustWidgetDimensions to PostClientTick\n      interface styles: early return if no skin is set\n      party: invert spec regen check\n      wiki: add dps calc buttons\n      rtconfig: mark RuntimeConfig Nullable in RuntimeConfigRefresher\n      Revert "npc aggro area: ignore unattackable NPCs"\n      cache: cleanup temp cache folder if store location setup fails\n      discord: simplify total activity time\n      discord: default elapsed time to total\n      hitsplat: fix poison hitsplat id\n      hitsplat: add other hitsplats\n      ground items: cache item hidden, highlight, and colors\n      ground items: add per item highlight colors\n      clientui: add developer version outdated error message\n      hiscores: move activities from skill_icons_small\n      hiscores: add varlamore\n      gpu: fix texture hillskew\n      clues: support wall decorations for ObjectClueScrolls\n      attack styles: use client enum for looking up weapon attack styles\n\nAdam Sharp (1):\n      interface styles: add player menu condense option\n\nBatedUrGonnaDie (1):\n      worldmap: remove kourend task map points\n\nChris (1):\n      wiki: add toggle for wiki lookup button\n\nDominickCobb (1):\n      mining: fix tracking runite ore\n\nFelanbird (5):\n      achievement diary: update various tasks\n      clues: fix incorrect naming for Wizards' Guild/Tower\n      worldmap: add AJP fairy ring\n      fairyring: add AJP fairy ring\n      clues: add Valmore clues\n\nFrazer Smith (1):\n      ci: update github actions\n\nHexagon (2):\n      api: add isRlClientOutdated hook\n      client: add runtimeConfig refresh functionality\n\nHooder (1):\n      clientui: apply custom borders when maximizing\n\nJZomDev (1):\n      hunter: add Embertailed jerboa\n\nJordan Atwood (8):\n      pmd: Require locale for case conversions\n      timers: Check all timers for resetting on config change\n      worldmap: add varlamore mining spots\n      worldmap: Alphabetize minigame locations and add test for alphabetization\n      worldmap: Add test for world point uniqueness\n      worldmap: add Great Kourend minigames\n      worldmap: add varlamore dungeons\n      worldmap: Add sandworms hunter spot\n\nMacweese (11):\n      worldmap: add varlamore transports\n      fishingspot: add varlamore fishing spots\n      worldmap: add varlamore fishing spots\n      worldmap: add varlamore rare trees\n      worldmap: add varlamore patches\n      worldmap: fix Entrana hops patch location\n      worldmap: add varlamore minigames\n      worldmap: add Grand Exchange Games Zone\n      agility: add varlamore shortcut\n      worldmap: add varlamore hunter spots\n      fishing: prevent false positive session\n\nMax Weber (5):\n      rl-client: update for 2024-3-20\n      timetracking: add varlamore patches\n      api: allow cloning face transparencies if they don't exist\n      api: expose Model::drawOrtho\n      roofremoval: add Varlamore roofs\n\nMichael Parsakia (1):\n      item identification: add sacred and olive oils\n\nMorgan Lewis (5):\n      loot tracker: track lunar chest\n      loot tracker: track fortis colosseum rewards\n      loot tracker: track hunters loot sacks\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\n      widget: make moons of peril overlay movable\n\nRhea (1):\n      chatcommands: add dt2 awakened shorthands (#16956)\n\nYvesW (4):\n      screenshot: add required rs settings to descriptions\n      screenshot: uniformize periods in config descriptions\n      party: add ping information to descriptions\n      party: uniformize periods in config descriptions\n\nZoinkwiz (2):\n      world map: Update outdated DBTableID values\n      clues: fix outdated skill challenge for shayzien armour (#17573)\n\ntesting-ongithub (3):\n      clues: Fix Squire anagram clue challenge text\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\n
\n"}}}]); +//# sourceMappingURL=166.2f841439.chunk.js.map \ No newline at end of file diff --git a/static/js/166.649971e3.chunk.js.map b/static/js/166.2f841439.chunk.js.map similarity index 99% rename from static/js/166.649971e3.chunk.js.map rename to static/js/166.2f841439.chunk.js.map index 95d02a3d60..0330989ada 100644 --- a/static/js/166.649971e3.chunk.js.map +++ b/static/js/166.2f841439.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["_posts/2024-03-21-23-00-1.10.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/166.649971e3.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.25 Release\",\"description\":\"Varlamore: Part one\",\"author\":\"Adam\",\"body\":\"

Varlamore

\\n

Varlamore: Part one is here! We've been working on adding a bunch of the new content to the various plugins in the last day. This includes:

\\n
    \\n
  • New farming patches have been added to timetracking, and to the website
  • \\n
  • The hiscores have been updated for Colosseum Glory, Lunar chests, and Sol Heredit
  • \\n
  • The world map plugin includes new Varlamore transports, fishing spots, trees, rocks, patches, fairy rings, hunter spots, and dungeons.
  • \\n
  • New clues have been added to the clue scroll plugin
  • \\n
  • Loot tracking for Lunar chest, Colosseum, and hunters loot sacks have been added
  • \\n
  • Embertailed jerboa has been added to the hunter plugin
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A visual bug affecting the hunter guild roof with GPU on has been fixed
  • \\n
  • Fix the attack styles plugin to recognize the new weapon types
  • \\n
  • Fix roof removal for the hunter guild
  • \\n
  • Fix a bug preventing reordering of bank tag tabs on the sidebar
  • \\n
  • The color of ground items can now be set via shift + right click on the item
  • \\n
  • The moons of peril overlay is now movable
  • \\n
  • A bug preventing quest states from showing on the world map has been fixed
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (29):\\n      widgetconfig: swap drag and drag on\\n      bank tags: fix rememberTab with tagtabs\\n      bank tags: fix scrolling while reordering\\n      camera: add right click blocks camera setting\\n      camera: add camera speed setting\\n      clientui: increase tooltip timeout to 10s\\n      guice: eagerly instantiate rtconfig refresher\\n      hooks: skip outdated check in developer mode\\n      party: don't delay spec attack usages\\n      loot manager: fix nightmare tracking\\n      interface styles: move adjustWidgetDimensions to PostClientTick\\n      interface styles: early return if no skin is set\\n      party: invert spec regen check\\n      wiki: add dps calc buttons\\n      rtconfig: mark RuntimeConfig Nullable in RuntimeConfigRefresher\\n      Revert "npc aggro area: ignore unattackable NPCs"\\n      cache: cleanup temp cache folder if store location setup fails\\n      discord: simplify total activity time\\n      discord: default elapsed time to total\\n      hitsplat: fix poison hitsplat id\\n      hitsplat: add other hitsplats\\n      ground items: cache item hidden, highlight, and colors\\n      ground items: add per item highlight colors\\n      clientui: add developer version outdated error message\\n      hiscores: move activities from skill_icons_small\\n      hiscores: add varlamore\\n      gpu: fix texture hillskew\\n      clues: support wall decorations for ObjectClueScrolls\\n      attack styles: use client enum for looking up weapon attack styles\\n\\nAdam Sharp (1):\\n      interface styles: add player menu condense option\\n\\nBatedUrGonnaDie (1):\\n      worldmap: remove kourend task map points\\n\\nChris (1):\\n      wiki: add toggle for wiki lookup button\\n\\nDominickCobb (1):\\n      mining: fix tracking runite ore\\n\\nFelanbird (5):\\n      achievement diary: update various tasks\\n      clues: fix incorrect naming for Wizards' Guild/Tower\\n      worldmap: add AJP fairy ring\\n      fairyring: add AJP fairy ring\\n      clues: add Valmore clues\\n\\nFrazer Smith (1):\\n      ci: update github actions\\n\\nHexagon (2):\\n      api: add isRlClientOutdated hook\\n      client: add runtimeConfig refresh functionality\\n\\nHooder (1):\\n      clientui: apply custom borders when maximizing\\n\\nJZomDev (1):\\n      hunter: add Embertailed jerboa\\n\\nJordan Atwood (8):\\n      pmd: Require locale for case conversions\\n      timers: Check all timers for resetting on config change\\n      worldmap: add varlamore mining spots\\n      worldmap: Alphabetize minigame locations and add test for alphabetization\\n      worldmap: Add test for world point uniqueness\\n      worldmap: add Great Kourend minigames\\n      worldmap: add varlamore dungeons\\n      worldmap: Add sandworms hunter spot\\n\\nMacweese (11):\\n      worldmap: add varlamore transports\\n      fishingspot: add varlamore fishing spots\\n      worldmap: add varlamore fishing spots\\n      worldmap: add varlamore rare trees\\n      worldmap: add varlamore patches\\n      worldmap: fix Entrana hops patch location\\n      worldmap: add varlamore minigames\\n      worldmap: add Grand Exchange Games Zone\\n      agility: add varlamore shortcut\\n      worldmap: add varlamore hunter spots\\n      fishing: prevent false positive session\\n\\nMax Weber (5):\\n      rl-client: update for 2024-3-20\\n      timetracking: add varlamore patches\\n      api: allow cloning face transparencies if they don't exist\\n      api: expose Model::drawOrtho\\n      roofremoval: add Varlamore roofs\\n\\nMichael Parsakia (1):\\n      item identification: add sacred and olive oils\\n\\nMorgan Lewis (5):\\n      loot tracker: track lunar chest\\n      loot tracker: track fortis colosseum rewards\\n      loot tracker: track hunters loot sacks\\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\\n      widget: make moons of peril overlay movable\\n\\nRhea (1):\\n      chatcommands: add dt2 awakened shorthands (#16956)\\n\\nYvesW (4):\\n      screenshot: add required rs settings to descriptions\\n      screenshot: uniformize periods in config descriptions\\n      party: add ping information to descriptions\\n      party: uniformize periods in config descriptions\\n\\nZoinkwiz (2):\\n      world map: Update outdated DBTableID values\\n      clues: fix outdated skill challenge for shayzien armour (#17573)\\n\\ntesting-ongithub (3):\\n      clues: Fix Squire anagram clue challenge text\\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\\n
\\n\"}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["_posts/2024-03-21-23-00-1.10.25-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,sBAAsB,OAAS,OAAO,KAAO","file":"static/js/166.2f841439.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.25 Release\",\"description\":\"Varlamore: Part one\",\"author\":\"Adam\",\"body\":\"

Varlamore

\\n

Varlamore: Part one is here! We've been working on adding a bunch of the new content to the various plugins in the last day. This includes:

\\n
    \\n
  • New farming patches have been added to timetracking, and to the website
  • \\n
  • The hiscores have been updated for Colosseum Glory, Lunar chests, and Sol Heredit
  • \\n
  • The world map plugin includes new Varlamore transports, fishing spots, trees, rocks, patches, fairy rings, hunter spots, and dungeons.
  • \\n
  • New clues have been added to the clue scroll plugin
  • \\n
  • Loot tracking for Lunar chest, Colosseum, and hunters loot sacks have been added
  • \\n
  • Embertailed jerboa has been added to the hunter plugin
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A visual bug affecting the hunter guild roof with GPU on has been fixed
  • \\n
  • Fix the attack styles plugin to recognize the new weapon types
  • \\n
  • Fix roof removal for the hunter guild
  • \\n
  • Fix a bug preventing reordering of bank tag tabs on the sidebar
  • \\n
  • The color of ground items can now be set via shift + right click on the item
  • \\n
  • The moons of peril overlay is now movable
  • \\n
  • A bug preventing quest states from showing on the world map has been fixed
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 19 contributors this update!

\\n
Adam (29):\\n      widgetconfig: swap drag and drag on\\n      bank tags: fix rememberTab with tagtabs\\n      bank tags: fix scrolling while reordering\\n      camera: add right click blocks camera setting\\n      camera: add camera speed setting\\n      clientui: increase tooltip timeout to 10s\\n      guice: eagerly instantiate rtconfig refresher\\n      hooks: skip outdated check in developer mode\\n      party: don't delay spec attack usages\\n      loot manager: fix nightmare tracking\\n      interface styles: move adjustWidgetDimensions to PostClientTick\\n      interface styles: early return if no skin is set\\n      party: invert spec regen check\\n      wiki: add dps calc buttons\\n      rtconfig: mark RuntimeConfig Nullable in RuntimeConfigRefresher\\n      Revert "npc aggro area: ignore unattackable NPCs"\\n      cache: cleanup temp cache folder if store location setup fails\\n      discord: simplify total activity time\\n      discord: default elapsed time to total\\n      hitsplat: fix poison hitsplat id\\n      hitsplat: add other hitsplats\\n      ground items: cache item hidden, highlight, and colors\\n      ground items: add per item highlight colors\\n      clientui: add developer version outdated error message\\n      hiscores: move activities from skill_icons_small\\n      hiscores: add varlamore\\n      gpu: fix texture hillskew\\n      clues: support wall decorations for ObjectClueScrolls\\n      attack styles: use client enum for looking up weapon attack styles\\n\\nAdam Sharp (1):\\n      interface styles: add player menu condense option\\n\\nBatedUrGonnaDie (1):\\n      worldmap: remove kourend task map points\\n\\nChris (1):\\n      wiki: add toggle for wiki lookup button\\n\\nDominickCobb (1):\\n      mining: fix tracking runite ore\\n\\nFelanbird (5):\\n      achievement diary: update various tasks\\n      clues: fix incorrect naming for Wizards' Guild/Tower\\n      worldmap: add AJP fairy ring\\n      fairyring: add AJP fairy ring\\n      clues: add Valmore clues\\n\\nFrazer Smith (1):\\n      ci: update github actions\\n\\nHexagon (2):\\n      api: add isRlClientOutdated hook\\n      client: add runtimeConfig refresh functionality\\n\\nHooder (1):\\n      clientui: apply custom borders when maximizing\\n\\nJZomDev (1):\\n      hunter: add Embertailed jerboa\\n\\nJordan Atwood (8):\\n      pmd: Require locale for case conversions\\n      timers: Check all timers for resetting on config change\\n      worldmap: add varlamore mining spots\\n      worldmap: Alphabetize minigame locations and add test for alphabetization\\n      worldmap: Add test for world point uniqueness\\n      worldmap: add Great Kourend minigames\\n      worldmap: add varlamore dungeons\\n      worldmap: Add sandworms hunter spot\\n\\nMacweese (11):\\n      worldmap: add varlamore transports\\n      fishingspot: add varlamore fishing spots\\n      worldmap: add varlamore fishing spots\\n      worldmap: add varlamore rare trees\\n      worldmap: add varlamore patches\\n      worldmap: fix Entrana hops patch location\\n      worldmap: add varlamore minigames\\n      worldmap: add Grand Exchange Games Zone\\n      agility: add varlamore shortcut\\n      worldmap: add varlamore hunter spots\\n      fishing: prevent false positive session\\n\\nMax Weber (5):\\n      rl-client: update for 2024-3-20\\n      timetracking: add varlamore patches\\n      api: allow cloning face transparencies if they don't exist\\n      api: expose Model::drawOrtho\\n      roofremoval: add Varlamore roofs\\n\\nMichael Parsakia (1):\\n      item identification: add sacred and olive oils\\n\\nMorgan Lewis (5):\\n      loot tracker: track lunar chest\\n      loot tracker: track fortis colosseum rewards\\n      loot tracker: track hunters loot sacks\\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\\n      widget: make moons of peril overlay movable\\n\\nRhea (1):\\n      chatcommands: add dt2 awakened shorthands (#16956)\\n\\nYvesW (4):\\n      screenshot: add required rs settings to descriptions\\n      screenshot: uniformize periods in config descriptions\\n      party: add ping information to descriptions\\n      party: uniformize periods in config descriptions\\n\\nZoinkwiz (2):\\n      world map: Update outdated DBTableID values\\n      clues: fix outdated skill challenge for shayzien armour (#17573)\\n\\ntesting-ongithub (3):\\n      clues: Fix Squire anagram clue challenge text\\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\\n
\\n\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/167.b292f1e5.chunk.js b/static/js/167.b292f1e5.chunk.js new file mode 100644 index 0000000000..8b162008f8 --- /dev/null +++ b/static/js/167.b292f1e5.chunk.js @@ -0,0 +1,2 @@ +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[167],{445:function(e,n){e.exports={title:"1.10.27 Release",description:"Spell reordering, notification improvements, and teleport submenus",author:"Adam",body:'

Spell reordering

\n

Spell reordering is here! The new Spellbook plugin allows reordering and hiding spells, similar to how prayer reordering works.

\n

\n

Notification overrides

\n

Most client notifications can now have their notification style configured per-notification. Compatible notifications will have a cog icon next to the checkbox when enabled which opens the per-notification settings. Notifications without customized settings continue to use the default notification settings found in the RuneLite Notification Settings configuration section.

\n

notif1\n->\nnotif2

\n

Teleport submenus

\n

Menu entry swapper has a new Teleport submenus setting which adds submenus for cape teleports. It supports the max, construction, and achievement diary capes. The submenus can also be swapped to be the top option via the usual shift-click swap, allowing easy one click\nteleports to any of the various teleports.

\n

teleports

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Ground items despawn timers now use the enhanced client despawn times, which works more reliably and on all items
  • \n
  • All costume room storage items can now be searched via bank tags: treasure chest, magic wardrobe, armour case, cape rack, and toy box
  • \n
  • MacOS retina displays are now supported on the GPU plugin
  • \n
  • An amulet of chemistry notification was added to the item charges plugin
  • \n
  • Tonalztics of Ralos has been added to the special attack counter
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 25 contributors this update!

\n
Adam (34):\n      hiscores: move activities from skill_icons_small\n      hiscores: add varlamore\n      gpu: fix texture hillskew\n      clues: support wall decorations for ObjectClueScrolls\n      attack styles: use client enum for looking up weapon attack styles\n      gpu: fix cl compilation on amd gpus\n      cache: remove old world map index\n      ground items: invalidate item cache when quantity changes\n      devtools: add script args to script inspector\n      cluescrolls: add tags for remaining costume room storage\n      rtconfig: add time boxing for outage message\n      cache: add item examine\n      Revert "implings: add essence impling spawns"\n      opponent info: fix npe from hud check\n      ground items: invalidate item cache when quantity changes\n      ge: add beta world type\n      loot tracker: add beta world type\n      config: add serializers\n      config: add notification overrides\n      notifier: remove double shell escaping\n      pluin panel: fix typo\n      overlay panel: clear children even if render throws\n      gpu: add macos retina support\n      api: add item despawn time\n      ground items: use TileItem despawn times\n      gpu: fix animated texture uv overflow\n      plugins: use new notification system\n      api: add cs2 arrays\n      config: show config panel for any plugin with config descriptor\n      add spellbook plugin\n      api: add menuAction\n      menuaction: add widget submenu parent\n      menu swapper: add teleport submenus\n      menuentryswapper: remove construction build/remove block\n\nAnton Olsson (1):\n      clues: remove butterfly jar requirement\n\nAntony Linden (7):\n      skill calculator: Order actions by level, xp, then alphabetically\n      skill calculator: Fix mahogany lectern icons\n      skill calculator: Fix Mithril crossbow enum name\n      skill calculator: Add Kourend Castle Teleport\n      skill calculator: Add Juniper logs\n      skill calculator: Update Rogues\' Castle chest xp value\n      skill calculator: Add Varlamore skill actions and bonuses\n\nBakkingamu (1):\n      item charges: add amulet of chemistry notification\n\nChris Brown (4):\n      cache: fix label positions in underground areas\n      cache: fix icons rendering on the wrong plane\n      cache: add map links\n      cache: render area labels on the map\n\nDapperMickie (12):\n      chat commands: add lunar chest aliases (#17700)\n      skill calculator: Allow multiple bonuses to apply at once\n      skill calculator: Add Forester\'s Campfire firemaking bonus\n      skill calculator: Add Zealot Robes prayer bonus\n      skill calculator: Fix skill action bonus multiplication\n      skill calculator: Standardize bonus percentage format\n      skill calculator: Add Goldsmith Gauntlets smithing bonus\n      skill calculator: Add felling axe + rations woodcutting bonus\n      skill calculator: Improve prayer bonus ordering\n      skill calculator: Improve prayer bonus stacking\n      skill calculator: Fix Wilderness agility course xp value\n      skill calculator: Add Wilderness agility tickets\n\nFelanbird (14):\n      worldmap: add AJP fairy ring\n      fairyring: add AJP fairy ring\n      clues: add Valmore clues\n      clues: fix NO OWNER anagram location\n      worldmap: add Civitas illa Fortis teleport\n      runepouch overlay: add sunfire rune image\n      implings: add essence impling spawns\n      clues: update SW Kharazi jungle HotCold step\n      clues: update Cam Torum emote clue\n      github: link to wiki safemode instructions in bug template\n      clues: update various varlamore steps\n      clues: update sunfire fanatic armour step\n      clues: update south-eastern chaos temple hard clue\n      chat commands: add more toa normal mode aliases\n\nFrosty-J (1):\n      boss timers: update chaos elemental respawn time\n\nHooder (1):\n      gpu: fix nearest neighbor with integer DPI scaling\n\nJZomDev (1):\n      hunter: add Embertailed jerboa\n\nJoona (1):\n      clientui: set frame location after game size (#17621)\n\nJordan Atwood (11):\n      worldmap: add varlamore mining spots\n      worldmap: Alphabetize minigame locations and add test for alphabetization\n      worldmap: Add test for world point uniqueness\n      worldmap: add Great Kourend minigames\n      worldmap: add varlamore dungeons\n      worldmap: Add sandworms hunter spot\n      Remove unused Slf4j annotations and imports\n      timers: Remove tzhaar timer defeat message trigger\n      skill calculator: Add test for mutually-stacking bonuses\n      skill calculator: Fix Maple longbow xp value\n      skill calculator: Use real levels for plank actions\n\nJoshua Dunbrack (1):\n      regen meter: apply updated lightbearer equipping behavior (#17678)\n\nMacweese (19):\n      worldmap: add varlamore transports\n      fishingspot: add varlamore fishing spots\n      worldmap: add varlamore fishing spots\n      worldmap: add varlamore rare trees\n      worldmap: add varlamore patches\n      worldmap: fix Entrana hops patch location\n      worldmap: add varlamore minigames\n      worldmap: add Grand Exchange Games Zone\n      agility: add varlamore shortcut\n      worldmap: add varlamore hunter spots\n      fishing: prevent false positive session\n      hunter: add varlamore hunter traps\n      devtools: restore button background on toggle\n      worldmap: fix quest icons paint cutoff (#17650)\n      slayer: include zygomites in task weakness config tooltip\n      minimap: restore map dots on config reset\n      login screen: add varlamore login screen\n      game: add isDying override for tutorial island giant rat (#17733)\n      discord: add varlamore regions\n\nMario Hendriks (1):\n      implings: add essence impling spawns\n\nMax Weber (6):\n      timetracking: add varlamore patches\n      api: allow cloning face transparencies if they don\'t exist\n      api: expose Model::drawOrtho\n      roofremoval: add Varlamore roofs\n      rl-client: update ids to 2024-3-27\n      rl-client: show reveal button on swing password fields\n\nMorgan Lewis (5):\n      loot tracker: track lunar chest\n      loot tracker: track fortis colosseum rewards\n      loot tracker: track hunters loot sacks\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\n      widget: make moons of peril overlay movable\n\nOurmond (1):\n      idle notifier: Add Ent & Canoe chopping animations\n\nSRLJustin (1):\n      menuentryswapper: add fortis colosseum to jewellerybox swap\n\nYvesW (4):\n      farming: fix tracking contracts\n      farming: fix marcellus protection\n      surefire: set locale to en_US\n      world map: add Fortis Colosseum teleport (#17727)\n\nZander Bolgar (1):\n      mining plugin: add calcified rocks\n\ncapslock13 (3):\n      game: Add isDying override for bee swarm (#17651)\n      spec counter: add Tonalztics of Ralos\n      timers: Fix ElapsedTimer NPE with null start time\n\ncdfisher (2):\n      skillcalculator: Add Dorgesh-Kaan Agility Course\n      worldhopper: Add High Risk option to world filter.\n\nmopi (2):\n      opponent info: fix hp bar being shown for moons of peril bosses (#17619)\n      hitsplat: add doom and burn hitsplats\n\ntesting-ongithub (2):\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\n
\n',image:"/img/blog/1.10.27-Release/notif1.png"}}}]); +//# sourceMappingURL=167.b292f1e5.chunk.js.map \ No newline at end of file diff --git a/static/js/167.b292f1e5.chunk.js.map b/static/js/167.b292f1e5.chunk.js.map new file mode 100644 index 0000000000..a8fc3d761c --- /dev/null +++ b/static/js/167.b292f1e5.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["_posts/2024-04-17-23-00-1.10.27-Release.md"],"names":["module","exports"],"mappings":"uGAAAA,EAAOC,QAAU,CAAC,MAAQ,kBAAkB,YAAc,qEAAqE,OAAS,OAAO,KAAO,29SAA0+S,MAAQ","file":"static/js/167.b292f1e5.chunk.js","sourcesContent":["module.exports = {\"title\":\"1.10.27 Release\",\"description\":\"Spell reordering, notification improvements, and teleport submenus\",\"author\":\"Adam\",\"body\":\"

Spell reordering

\\n

Spell reordering is here! The new Spellbook plugin allows reordering and hiding spells, similar to how prayer reordering works.

\\n

\\n

Notification overrides

\\n

Most client notifications can now have their notification style configured per-notification. Compatible notifications will have a cog icon next to the checkbox when enabled which opens the per-notification settings. Notifications without customized settings continue to use the default notification settings found in the RuneLite Notification Settings configuration section.

\\n

\\\"notif1\\\"\\n->\\n\\\"notif2\\\"

\\n

Teleport submenus

\\n

Menu entry swapper has a new Teleport submenus setting which adds submenus for cape teleports. It supports the max, construction, and achievement diary capes. The submenus can also be swapped to be the top option via the usual shift-click swap, allowing easy one click\\nteleports to any of the various teleports.

\\n

\\\"teleports\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Ground items despawn timers now use the enhanced client despawn times, which works more reliably and on all items
  • \\n
  • All costume room storage items can now be searched via bank tags: treasure chest, magic wardrobe, armour case, cape rack, and toy box
  • \\n
  • MacOS retina displays are now supported on the GPU plugin
  • \\n
  • An amulet of chemistry notification was added to the item charges plugin
  • \\n
  • Tonalztics of Ralos has been added to the special attack counter
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 25 contributors this update!

\\n
Adam (34):\\n      hiscores: move activities from skill_icons_small\\n      hiscores: add varlamore\\n      gpu: fix texture hillskew\\n      clues: support wall decorations for ObjectClueScrolls\\n      attack styles: use client enum for looking up weapon attack styles\\n      gpu: fix cl compilation on amd gpus\\n      cache: remove old world map index\\n      ground items: invalidate item cache when quantity changes\\n      devtools: add script args to script inspector\\n      cluescrolls: add tags for remaining costume room storage\\n      rtconfig: add time boxing for outage message\\n      cache: add item examine\\n      Revert "implings: add essence impling spawns"\\n      opponent info: fix npe from hud check\\n      ground items: invalidate item cache when quantity changes\\n      ge: add beta world type\\n      loot tracker: add beta world type\\n      config: add serializers\\n      config: add notification overrides\\n      notifier: remove double shell escaping\\n      pluin panel: fix typo\\n      overlay panel: clear children even if render throws\\n      gpu: add macos retina support\\n      api: add item despawn time\\n      ground items: use TileItem despawn times\\n      gpu: fix animated texture uv overflow\\n      plugins: use new notification system\\n      api: add cs2 arrays\\n      config: show config panel for any plugin with config descriptor\\n      add spellbook plugin\\n      api: add menuAction\\n      menuaction: add widget submenu parent\\n      menu swapper: add teleport submenus\\n      menuentryswapper: remove construction build/remove block\\n\\nAnton Olsson (1):\\n      clues: remove butterfly jar requirement\\n\\nAntony Linden (7):\\n      skill calculator: Order actions by level, xp, then alphabetically\\n      skill calculator: Fix mahogany lectern icons\\n      skill calculator: Fix Mithril crossbow enum name\\n      skill calculator: Add Kourend Castle Teleport\\n      skill calculator: Add Juniper logs\\n      skill calculator: Update Rogues' Castle chest xp value\\n      skill calculator: Add Varlamore skill actions and bonuses\\n\\nBakkingamu (1):\\n      item charges: add amulet of chemistry notification\\n\\nChris Brown (4):\\n      cache: fix label positions in underground areas\\n      cache: fix icons rendering on the wrong plane\\n      cache: add map links\\n      cache: render area labels on the map\\n\\nDapperMickie (12):\\n      chat commands: add lunar chest aliases (#17700)\\n      skill calculator: Allow multiple bonuses to apply at once\\n      skill calculator: Add Forester's Campfire firemaking bonus\\n      skill calculator: Add Zealot Robes prayer bonus\\n      skill calculator: Fix skill action bonus multiplication\\n      skill calculator: Standardize bonus percentage format\\n      skill calculator: Add Goldsmith Gauntlets smithing bonus\\n      skill calculator: Add felling axe + rations woodcutting bonus\\n      skill calculator: Improve prayer bonus ordering\\n      skill calculator: Improve prayer bonus stacking\\n      skill calculator: Fix Wilderness agility course xp value\\n      skill calculator: Add Wilderness agility tickets\\n\\nFelanbird (14):\\n      worldmap: add AJP fairy ring\\n      fairyring: add AJP fairy ring\\n      clues: add Valmore clues\\n      clues: fix NO OWNER anagram location\\n      worldmap: add Civitas illa Fortis teleport\\n      runepouch overlay: add sunfire rune image\\n      implings: add essence impling spawns\\n      clues: update SW Kharazi jungle HotCold step\\n      clues: update Cam Torum emote clue\\n      github: link to wiki safemode instructions in bug template\\n      clues: update various varlamore steps\\n      clues: update sunfire fanatic armour step\\n      clues: update south-eastern chaos temple hard clue\\n      chat commands: add more toa normal mode aliases\\n\\nFrosty-J (1):\\n      boss timers: update chaos elemental respawn time\\n\\nHooder (1):\\n      gpu: fix nearest neighbor with integer DPI scaling\\n\\nJZomDev (1):\\n      hunter: add Embertailed jerboa\\n\\nJoona (1):\\n      clientui: set frame location after game size (#17621)\\n\\nJordan Atwood (11):\\n      worldmap: add varlamore mining spots\\n      worldmap: Alphabetize minigame locations and add test for alphabetization\\n      worldmap: Add test for world point uniqueness\\n      worldmap: add Great Kourend minigames\\n      worldmap: add varlamore dungeons\\n      worldmap: Add sandworms hunter spot\\n      Remove unused Slf4j annotations and imports\\n      timers: Remove tzhaar timer defeat message trigger\\n      skill calculator: Add test for mutually-stacking bonuses\\n      skill calculator: Fix Maple longbow xp value\\n      skill calculator: Use real levels for plank actions\\n\\nJoshua Dunbrack (1):\\n      regen meter: apply updated lightbearer equipping behavior (#17678)\\n\\nMacweese (19):\\n      worldmap: add varlamore transports\\n      fishingspot: add varlamore fishing spots\\n      worldmap: add varlamore fishing spots\\n      worldmap: add varlamore rare trees\\n      worldmap: add varlamore patches\\n      worldmap: fix Entrana hops patch location\\n      worldmap: add varlamore minigames\\n      worldmap: add Grand Exchange Games Zone\\n      agility: add varlamore shortcut\\n      worldmap: add varlamore hunter spots\\n      fishing: prevent false positive session\\n      hunter: add varlamore hunter traps\\n      devtools: restore button background on toggle\\n      worldmap: fix quest icons paint cutoff (#17650)\\n      slayer: include zygomites in task weakness config tooltip\\n      minimap: restore map dots on config reset\\n      login screen: add varlamore login screen\\n      game: add isDying override for tutorial island giant rat (#17733)\\n      discord: add varlamore regions\\n\\nMario Hendriks (1):\\n      implings: add essence impling spawns\\n\\nMax Weber (6):\\n      timetracking: add varlamore patches\\n      api: allow cloning face transparencies if they don't exist\\n      api: expose Model::drawOrtho\\n      roofremoval: add Varlamore roofs\\n      rl-client: update ids to 2024-3-27\\n      rl-client: show reveal button on swing password fields\\n\\nMorgan Lewis (5):\\n      loot tracker: track lunar chest\\n      loot tracker: track fortis colosseum rewards\\n      loot tracker: track hunters loot sacks\\n      timetracking: add additional farming regions for civitas illa fortis (#17602)\\n      widget: make moons of peril overlay movable\\n\\nOurmond (1):\\n      idle notifier: Add Ent & Canoe chopping animations\\n\\nSRLJustin (1):\\n      menuentryswapper: add fortis colosseum to jewellerybox swap\\n\\nYvesW (4):\\n      farming: fix tracking contracts\\n      farming: fix marcellus protection\\n      surefire: set locale to en_US\\n      world map: add Fortis Colosseum teleport (#17727)\\n\\nZander Bolgar (1):\\n      mining plugin: add calcified rocks\\n\\ncapslock13 (3):\\n      game: Add isDying override for bee swarm (#17651)\\n      spec counter: add Tonalztics of Ralos\\n      timers: Fix ElapsedTimer NPE with null start time\\n\\ncdfisher (2):\\n      skillcalculator: Add Dorgesh-Kaan Agility Course\\n      worldhopper: Add High Risk option to world filter.\\n\\nmopi (2):\\n      opponent info: fix hp bar being shown for moons of peril bosses (#17619)\\n      hitsplat: add doom and burn hitsplats\\n\\ntesting-ongithub (2):\\n      fairyrings: Alphabetize fairy rings and add test for alphabetization\\n      worldmap: Add tests for fairy ring plugin overlap and alphabetization\\n
\\n\",\"image\":\"/img/blog/1.10.27-Release/notif1.png\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/17.749ecabc.chunk.js b/static/js/17.429a6923.chunk.js similarity index 93% rename from static/js/17.749ecabc.chunk.js rename to static/js/17.429a6923.chunk.js index c74191d56e..0ab6afbb3b 100644 --- a/static/js/17.749ecabc.chunk.js +++ b/static/js/17.429a6923.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))}},457: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.749ecabc.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))}},459: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.429a6923.chunk.js.map \ No newline at end of file diff --git a/static/js/17.749ecabc.chunk.js.map b/static/js/17.429a6923.chunk.js.map similarity index 97% rename from static/js/17.749ecabc.chunk.js.map rename to static/js/17.429a6923.chunk.js.map index 8a623a850a..9de5417bd5 100644 --- a/static/js/17.749ecabc.chunk.js.map +++ b/static/js/17.429a6923.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.749ecabc.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Almost there...

\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.429a6923.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Almost there...

\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.c42c1b0d.chunk.js b/static/js/18.ab757883.chunk.js similarity index 91% rename from static/js/18.c42c1b0d.chunk.js rename to static/js/18.ab757883.chunk.js index 95d72c3a4b..b0d821e7c5 100644 --- a/static/js/18.c42c1b0d.chunk.js +++ b/static/js/18.ab757883.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))}},458: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.c42c1b0d.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))}},460: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.ab757883.chunk.js.map \ No newline at end of file diff --git a/static/js/18.c42c1b0d.chunk.js.map b/static/js/18.ab757883.chunk.js.map similarity index 95% rename from static/js/18.c42c1b0d.chunk.js.map rename to static/js/18.ab757883.chunk.js.map index 2e90dccf8e..af49f290d3 100644 --- a/static/js/18.c42c1b0d.chunk.js.map +++ b/static/js/18.ab757883.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.c42c1b0d.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Loading...

\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.ab757883.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Loading...

\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.d890df25.chunk.js b/static/js/19.965cd23c.chunk.js similarity index 94% rename from static/js/19.d890df25.chunk.js rename to static/js/19.965cd23c.chunk.js index b69ba363dd..9fa4782a75 100644 --- a/static/js/19.d890df25.chunk.js +++ b/static/js/19.965cd23c.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))}},456: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.d890df25.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))}},458: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.965cd23c.chunk.js.map \ No newline at end of file diff --git a/static/js/19.d890df25.chunk.js.map b/static/js/19.965cd23c.chunk.js.map similarity index 98% rename from static/js/19.d890df25.chunk.js.map rename to static/js/19.965cd23c.chunk.js.map index aaedadbbfc..312c241b2f 100644 --- a/static/js/19.d890df25.chunk.js.map +++ b/static/js/19.965cd23c.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.d890df25.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Congratulations!

\n {message}\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.965cd23c.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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

Congratulations!

\n {message}\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.50501647.chunk.js b/static/js/20.71ae775c.chunk.js similarity index 90% rename from static/js/20.50501647.chunk.js rename to static/js/20.71ae775c.chunk.js index 948d4d2b3a..f3865dce1b 100644 --- a/static/js/20.50501647.chunk.js +++ b/static/js/20.71ae775c.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[20],{297: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.

\n

This 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.

\n

Also, 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.

\n

Well, all I can say now is, enjoy!

\n

~ Tomas

\n'}}}]); -//# sourceMappingURL=20.50501647.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[20],{298: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.

\n

This 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.

\n

Also, 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.

\n

Well, all I can say now is, enjoy!

\n

~ Tomas

\n'}}}]); +//# sourceMappingURL=20.71ae775c.chunk.js.map \ No newline at end of file diff --git a/static/js/20.50501647.chunk.js.map b/static/js/20.71ae775c.chunk.js.map similarity index 90% rename from static/js/20.50501647.chunk.js.map rename to static/js/20.71ae775c.chunk.js.map index c58c027b43..f8399fb1ea 100644 --- a/static/js/20.50501647.chunk.js.map +++ b/static/js/20.71ae775c.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.50501647.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.

\\n

This 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.

\\n

Also, 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.

\\n

Well, 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.71ae775c.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.

\\n

This 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.

\\n

Also, 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.

\\n

Well, all I can say now is, enjoy!

\\n

~ Tomas

\\n\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/21.6728bb30.chunk.js b/static/js/21.b69ae13a.chunk.js similarity index 98% rename from static/js/21.6728bb30.chunk.js rename to static/js/21.b69ae13a.chunk.js index 48683cfa46..89fbbab30b 100644 --- a/static/js/21.6728bb30.chunk.js +++ b/static/js/21.b69ae13a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[21],{298: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.

\n

The 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

native ui

\n

The 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.

\n

The 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

team capes plugin

\n

Till 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

examine plugin

\n

To 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

clan chat plugin

\n

There 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

native notifications

\n

Well, hopefully you like new release, and as usual, enjoy!

\n

~ Tomas

\n

New commits

\n

We had 9 contributors this release! Special thanks to @deathbeam for his hard work.

\n
Adam (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.6728bb30.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[21],{299: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.

\n

The 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

native ui

\n

The 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.

\n

The 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

team capes plugin

\n

Till 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

examine plugin

\n

To 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

clan chat plugin

\n

There 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

native notifications

\n

Well, hopefully you like new release, and as usual, enjoy!

\n

~ Tomas

\n

New commits

\n

We had 9 contributors this release! Special thanks to @deathbeam for his hard work.

\n
Adam (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.b69ae13a.chunk.js.map \ No newline at end of file diff --git a/static/js/21.6728bb30.chunk.js.map b/static/js/21.b69ae13a.chunk.js.map similarity index 99% rename from static/js/21.6728bb30.chunk.js.map rename to static/js/21.b69ae13a.chunk.js.map index 8c8595d8e0..6ba88f5d16 100644 --- a/static/js/21.6728bb30.chunk.js.map +++ b/static/js/21.b69ae13a.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.6728bb30.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.

\\n

The 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

\\\"native

\\n

The 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.

\\n

The 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

\\\"team

\\n

Till 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

\\\"examine

\\n

To 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

\\\"clan

\\n

There 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

\\\"native

\\n

Well, hopefully you like new release, and as usual, enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 9 contributors this release! Special thanks to @deathbeam for his hard work.

\\n
Adam (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.b69ae13a.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.

\\n

The 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

\\\"native

\\n

The 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.

\\n

The 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

\\\"team

\\n

Till 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

\\\"examine

\\n

To 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

\\\"clan

\\n

There 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

\\\"native

\\n

Well, hopefully you like new release, and as usual, enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 9 contributors this release! Special thanks to @deathbeam for his hard work.

\\n
Adam (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.763fd789.chunk.js b/static/js/22.ead97899.chunk.js similarity index 98% rename from static/js/22.763fd789.chunk.js rename to static/js/22.ead97899.chunk.js index 2e150945a4..1f3f21fe04 100644 --- a/static/js/22.763fd789.chunk.js +++ b/static/js/22.ead97899.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[22],{299: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.

\n

First, 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

hunter-plugin

\n

We also added support for some missing potions for the Timers plugin, and that\nalso includes the newest released potion, Super Antifire Potion.

\n

newtimers

\n

And 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

native-window

\n

As 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!

\n

Hopefully you will like the new release, enjoy!

\n

~ Tomas

\n

New commits

\n

We had 15 contributors this release!

\n
Abex (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.763fd789.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[22],{300: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.

\n

First, 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

hunter-plugin

\n

We also added support for some missing potions for the Timers plugin, and that\nalso includes the newest released potion, Super Antifire Potion.

\n

newtimers

\n

And 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

native-window

\n

As 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!

\n

Hopefully you will like the new release, enjoy!

\n

~ Tomas

\n

New commits

\n

We had 15 contributors this release!

\n
Abex (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.ead97899.chunk.js.map \ No newline at end of file diff --git a/static/js/22.763fd789.chunk.js.map b/static/js/22.ead97899.chunk.js.map similarity index 99% rename from static/js/22.763fd789.chunk.js.map rename to static/js/22.ead97899.chunk.js.map index d38ef4179f..033550f2ad 100644 --- a/static/js/22.763fd789.chunk.js.map +++ b/static/js/22.ead97899.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.763fd789.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.

\\n

First, 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

\\\"hunter-plugin\\\"

\\n

We also added support for some missing potions for the Timers plugin, and that\\nalso includes the newest released potion, Super Antifire Potion.

\\n

\\\"newtimers\\\"

\\n

And 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

\\\"native-window\\\"

\\n

As 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!

\\n

Hopefully you will like the new release, enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Abex (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.ead97899.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.

\\n

First, 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

\\\"hunter-plugin\\\"

\\n

We also added support for some missing potions for the Timers plugin, and that\\nalso includes the newest released potion, Super Antifire Potion.

\\n

\\\"newtimers\\\"

\\n

And 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

\\\"native-window\\\"

\\n

As 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!

\\n

Hopefully you will like the new release, enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Abex (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.099ac622.chunk.js b/static/js/23.d0f7f215.chunk.js similarity index 98% rename from static/js/23.099ac622.chunk.js rename to static/js/23.d0f7f215.chunk.js index a9e6016c9e..5a5830d679 100644 --- a/static/js/23.099ac622.chunk.js +++ b/static/js/23.d0f7f215.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[23],{300: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

interface-layers

\n

@Noremac201 added a barbarian assult plugin\nwhich introduces a timer until next change, and allows left-click calls.

\n

ba-click

\n

ba-timer

\n

A new cannon plugin was introduced to count the number of cannonballs left in\nyour cannon, thanks to @Sethtroll.

\n

cannon

\n

The new player indicators plugin will draw your friend and clanmates names:

\n

clannames

\n

Some improvements have been made to the attack indicator plugin to hide unwanted\nattack styles instantly. Thanks to @Dreyri for his\nwork on this.

\n

attackstyles

\n

Additionally, various new AoE attacks have been added to the AoE plugin,\nincluding Vorkath, Galvek, Vet\'ion, Chaos Fanatic, and the Corporeal Beast.

\n

acid

\n

fireball

\n

spawn

\n

Finally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam:

\n

configsearch

\n

Enjoy.

\n

- Adam

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.099ac622.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[23],{301: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

interface-layers

\n

@Noremac201 added a barbarian assult plugin\nwhich introduces a timer until next change, and allows left-click calls.

\n

ba-click

\n

ba-timer

\n

A new cannon plugin was introduced to count the number of cannonballs left in\nyour cannon, thanks to @Sethtroll.

\n

cannon

\n

The new player indicators plugin will draw your friend and clanmates names:

\n

clannames

\n

Some improvements have been made to the attack indicator plugin to hide unwanted\nattack styles instantly. Thanks to @Dreyri for his\nwork on this.

\n

attackstyles

\n

Additionally, various new AoE attacks have been added to the AoE plugin,\nincluding Vorkath, Galvek, Vet\'ion, Chaos Fanatic, and the Corporeal Beast.

\n

acid

\n

fireball

\n

spawn

\n

Finally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam:

\n

configsearch

\n

Enjoy.

\n

- Adam

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.d0f7f215.chunk.js.map \ No newline at end of file diff --git a/static/js/23.099ac622.chunk.js.map b/static/js/23.d0f7f215.chunk.js.map similarity index 99% rename from static/js/23.099ac622.chunk.js.map rename to static/js/23.d0f7f215.chunk.js.map index bade6e21f7..730cec0398 100644 --- a/static/js/23.099ac622.chunk.js.map +++ b/static/js/23.d0f7f215.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.099ac622.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

\\\"interface-layers\\\"

\\n

@Noremac201 added a barbarian assult plugin\\nwhich introduces a timer until next change, and allows left-click calls.

\\n

\\\"ba-click\\\"

\\n

\\\"ba-timer\\\"

\\n

A new cannon plugin was introduced to count the number of cannonballs left in\\nyour cannon, thanks to @Sethtroll.

\\n

\\\"cannon\\\"

\\n

The new player indicators plugin will draw your friend and clanmates names:

\\n

\\\"clannames\\\"

\\n

Some improvements have been made to the attack indicator plugin to hide unwanted\\nattack styles instantly. Thanks to @Dreyri for his\\nwork on this.

\\n

\\\"attackstyles\\\"

\\n

Additionally, various new AoE attacks have been added to the AoE plugin,\\nincluding Vorkath, Galvek, Vet'ion, Chaos Fanatic, and the Corporeal Beast.

\\n

\\\"acid\\\"

\\n

\\\"fireball\\\"

\\n

\\\"spawn\\\"

\\n

Finally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam:

\\n

\\\"configsearch\\\"

\\n

Enjoy.

\\n

- Adam

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.d0f7f215.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

\\\"interface-layers\\\"

\\n

@Noremac201 added a barbarian assult plugin\\nwhich introduces a timer until next change, and allows left-click calls.

\\n

\\\"ba-click\\\"

\\n

\\\"ba-timer\\\"

\\n

A new cannon plugin was introduced to count the number of cannonballs left in\\nyour cannon, thanks to @Sethtroll.

\\n

\\\"cannon\\\"

\\n

The new player indicators plugin will draw your friend and clanmates names:

\\n

\\\"clannames\\\"

\\n

Some improvements have been made to the attack indicator plugin to hide unwanted\\nattack styles instantly. Thanks to @Dreyri for his\\nwork on this.

\\n

\\\"attackstyles\\\"

\\n

Additionally, various new AoE attacks have been added to the AoE plugin,\\nincluding Vorkath, Galvek, Vet'ion, Chaos Fanatic, and the Corporeal Beast.

\\n

\\\"acid\\\"

\\n

\\\"fireball\\\"

\\n

\\\"spawn\\\"

\\n

Finally, the configuration panel is now more searchable with a new search bar thanks to @deathbeam:

\\n

\\\"configsearch\\\"

\\n

Enjoy.

\\n

- Adam

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.e3cbefe4.chunk.js b/static/js/24.ed21d2d5.chunk.js similarity index 98% rename from static/js/24.e3cbefe4.chunk.js rename to static/js/24.ed21d2d5.chunk.js index acba550cb5..78265bea65 100644 --- a/static/js/24.e3cbefe4.chunk.js +++ b/static/js/24.ed21d2d5.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[24],{301: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.

\n

You may manually take a screenshot by clicking the camera icon in the titlebar:

\n

screenshot-plugin

\n

If you enjoy the old Low Detail mode, @deathbeam\ncontributed a low detail mode plugin which lets you toggle it.

\n

lowdetail

\n

Finally, @SomeoneWithAnInternetConnection\nadded a metronome plugin to aid with timing game ticks.

\n

There were also several smaller improvements, including:

\n
    \n
  • Fixed ground items overlay to correctly account for tile height when drawing item names.
  • \n
  • Allow plugin panels, including the configuration panel, to keep state between\nbeing collapsed and expanded.
  • \n
  • Fix idle notifier to more reliably notify you
  • \n
  • Fix broken glyphs which are evident on some overlays
  • \n
  • Add infernal eel to fishing plugin
  • \n
\n

On 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.

\n

Additionally, support for loading external plugins has been removed upon request\nfrom Jagex.

\n

- Adam

\n

New commits

\n

We had 13 contributors this release!

\n
Adam (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.e3cbefe4.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[24],{302: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.

\n

You may manually take a screenshot by clicking the camera icon in the titlebar:

\n

screenshot-plugin

\n

If you enjoy the old Low Detail mode, @deathbeam\ncontributed a low detail mode plugin which lets you toggle it.

\n

lowdetail

\n

Finally, @SomeoneWithAnInternetConnection\nadded a metronome plugin to aid with timing game ticks.

\n

There were also several smaller improvements, including:

\n
    \n
  • Fixed ground items overlay to correctly account for tile height when drawing item names.
  • \n
  • Allow plugin panels, including the configuration panel, to keep state between\nbeing collapsed and expanded.
  • \n
  • Fix idle notifier to more reliably notify you
  • \n
  • Fix broken glyphs which are evident on some overlays
  • \n
  • Add infernal eel to fishing plugin
  • \n
\n

On 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.

\n

Additionally, support for loading external plugins has been removed upon request\nfrom Jagex.

\n

- Adam

\n

New commits

\n

We had 13 contributors this release!

\n
Adam (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.ed21d2d5.chunk.js.map \ No newline at end of file diff --git a/static/js/24.e3cbefe4.chunk.js.map b/static/js/24.ed21d2d5.chunk.js.map similarity index 99% rename from static/js/24.e3cbefe4.chunk.js.map rename to static/js/24.ed21d2d5.chunk.js.map index 657887f1fa..6ffa2f7e10 100644 --- a/static/js/24.e3cbefe4.chunk.js.map +++ b/static/js/24.ed21d2d5.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.e3cbefe4.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.

\\n

You may manually take a screenshot by clicking the camera icon in the titlebar:

\\n

\\\"screenshot-plugin\\\"

\\n

If you enjoy the old Low Detail mode, @deathbeam\\ncontributed a low detail mode plugin which lets you toggle it.

\\n

\\\"lowdetail\\\"

\\n

Finally, @SomeoneWithAnInternetConnection\\nadded a metronome plugin to aid with timing game ticks.

\\n

There were also several smaller improvements, including:

\\n
    \\n
  • Fixed ground items overlay to correctly account for tile height when drawing item names.
  • \\n
  • Allow plugin panels, including the configuration panel, to keep state between\\nbeing collapsed and expanded.
  • \\n
  • Fix idle notifier to more reliably notify you
  • \\n
  • Fix broken glyphs which are evident on some overlays
  • \\n
  • Add infernal eel to fishing plugin
  • \\n
\\n

On 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.

\\n

Additionally, support for loading external plugins has been removed upon request\\nfrom Jagex.

\\n

- Adam

\\n

New commits

\\n

We had 13 contributors this release!

\\n
Adam (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.ed21d2d5.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.

\\n

You may manually take a screenshot by clicking the camera icon in the titlebar:

\\n

\\\"screenshot-plugin\\\"

\\n

If you enjoy the old Low Detail mode, @deathbeam\\ncontributed a low detail mode plugin which lets you toggle it.

\\n

\\\"lowdetail\\\"

\\n

Finally, @SomeoneWithAnInternetConnection\\nadded a metronome plugin to aid with timing game ticks.

\\n

There were also several smaller improvements, including:

\\n
    \\n
  • Fixed ground items overlay to correctly account for tile height when drawing item names.
  • \\n
  • Allow plugin panels, including the configuration panel, to keep state between\\nbeing collapsed and expanded.
  • \\n
  • Fix idle notifier to more reliably notify you
  • \\n
  • Fix broken glyphs which are evident on some overlays
  • \\n
  • Add infernal eel to fishing plugin
  • \\n
\\n

On 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.

\\n

Additionally, support for loading external plugins has been removed upon request\\nfrom Jagex.

\\n

- Adam

\\n

New commits

\\n

We had 13 contributors this release!

\\n
Adam (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.a9e71e71.chunk.js b/static/js/25.2fcb3630.chunk.js similarity index 98% rename from static/js/25.a9e71e71.chunk.js rename to static/js/25.2fcb3630.chunk.js index 20a43f8a1a..5c63d8c16f 100644 --- a/static/js/25.a9e71e71.chunk.js +++ b/static/js/25.2fcb3630.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[25],{302: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

itemstats

\n

A new zoom plugin was added which extends the zoom limits on the built in client\nZoom feature:

\n

zoom

\n

A 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

mlm

\n

@deathbeam reworked the XP tracker plugin to have a nice new UI:

\n

xptracker

\n

@oplosthee added an achievement diary indicator\nplugin which shows which sections of diaries have been completed.

\n

diary

\n

There are also several smaller improvements, including:

\n
    \n
  • XP drop plugin to recolor xp drops when prayers are activated
  • \n
  • Fix BA plugin for recent game update
  • \n
  • Add granite cannonballs to cannon plugin
  • \n
  • Add configuration option for the runepouch overaly to only show on hover
  • \n
  • Added configurable tick delay to metronome plugin
  • \n
\n

- Adam

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.a9e71e71.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[25],{303: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

itemstats

\n

A new zoom plugin was added which extends the zoom limits on the built in client\nZoom feature:

\n

zoom

\n

A 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

mlm

\n

@deathbeam reworked the XP tracker plugin to have a nice new UI:

\n

xptracker

\n

@oplosthee added an achievement diary indicator\nplugin which shows which sections of diaries have been completed.

\n

diary

\n

There are also several smaller improvements, including:

\n
    \n
  • XP drop plugin to recolor xp drops when prayers are activated
  • \n
  • Fix BA plugin for recent game update
  • \n
  • Add granite cannonballs to cannon plugin
  • \n
  • Add configuration option for the runepouch overaly to only show on hover
  • \n
  • Added configurable tick delay to metronome plugin
  • \n
\n

- Adam

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.2fcb3630.chunk.js.map \ No newline at end of file diff --git a/static/js/25.a9e71e71.chunk.js.map b/static/js/25.2fcb3630.chunk.js.map similarity index 99% rename from static/js/25.a9e71e71.chunk.js.map rename to static/js/25.2fcb3630.chunk.js.map index 509460d4fe..57e70aaf93 100644 --- a/static/js/25.a9e71e71.chunk.js.map +++ b/static/js/25.2fcb3630.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.a9e71e71.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

\\\"itemstats\\\"

\\n

A new zoom plugin was added which extends the zoom limits on the built in client\\nZoom feature:

\\n

\\\"zoom\\\"

\\n

A 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

\\\"mlm\\\"

\\n

@deathbeam reworked the XP tracker plugin to have a nice new UI:

\\n

\\\"xptracker\\\"

\\n

@oplosthee added an achievement diary indicator\\nplugin which shows which sections of diaries have been completed.

\\n

\\\"diary\\\"

\\n

There are also several smaller improvements, including:

\\n
    \\n
  • XP drop plugin to recolor xp drops when prayers are activated
  • \\n
  • Fix BA plugin for recent game update
  • \\n
  • Add granite cannonballs to cannon plugin
  • \\n
  • Add configuration option for the runepouch overaly to only show on hover
  • \\n
  • Added configurable tick delay to metronome plugin
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.2fcb3630.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

\\\"itemstats\\\"

\\n

A new zoom plugin was added which extends the zoom limits on the built in client\\nZoom feature:

\\n

\\\"zoom\\\"

\\n

A 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

\\\"mlm\\\"

\\n

@deathbeam reworked the XP tracker plugin to have a nice new UI:

\\n

\\\"xptracker\\\"

\\n

@oplosthee added an achievement diary indicator\\nplugin which shows which sections of diaries have been completed.

\\n

\\\"diary\\\"

\\n

There are also several smaller improvements, including:

\\n
    \\n
  • XP drop plugin to recolor xp drops when prayers are activated
  • \\n
  • Fix BA plugin for recent game update
  • \\n
  • Add granite cannonballs to cannon plugin
  • \\n
  • Add configuration option for the runepouch overaly to only show on hover
  • \\n
  • Added configurable tick delay to metronome plugin
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.a8c58ff8.chunk.js b/static/js/26.03657595.chunk.js similarity index 97% rename from static/js/26.a8c58ff8.chunk.js rename to static/js/26.03657595.chunk.js index a5c37d1f81..e6928ac552 100644 --- a/static/js/26.a8c58ff8.chunk.js +++ b/static/js/26.03657595.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[26],{303: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

agility1

\n

agility2

\n

agility3

\n

Discord 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

discord

\n

Additionally, abyss rift locations and player owned house locations are now\nmarked on the minimap thanks to @Sethtroll.

\n

abyss

\n

poh

\n

And the burners are now marked as lit or unlit:

\n

burners

\n

There are also several smaller improvements, including:

\n
    \n
  • The screenshot plugin now has configuration for the auto screenshot of\nlevelups and rewards
  • \n
  • There is now an option to overlay non-clan members in the player indicator\nplugin
  • \n
  • Theoretical boosts have been added to the item stats plugin
  • \n
  • Indicators have been added for stat boots as an alternative to the current\noverlay
  • \n
  • Fix sometimes drawing overlays at the wrong height above players and npcs
  • \n
  • Don\'t enable low memory mode on the audio subsystem when the client is\nconfigured in low memory mode, so the sounds sound normal
  • \n
  • The teamcape plugin has been readded
  • \n
\n

- Adam

\n

New commits

\n

We had 9 contributors this release!

\n
Adam (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.a8c58ff8.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[26],{304: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

agility1

\n

agility2

\n

agility3

\n

Discord 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

discord

\n

Additionally, abyss rift locations and player owned house locations are now\nmarked on the minimap thanks to @Sethtroll.

\n

abyss

\n

poh

\n

And the burners are now marked as lit or unlit:

\n

burners

\n

There are also several smaller improvements, including:

\n
    \n
  • The screenshot plugin now has configuration for the auto screenshot of\nlevelups and rewards
  • \n
  • There is now an option to overlay non-clan members in the player indicator\nplugin
  • \n
  • Theoretical boosts have been added to the item stats plugin
  • \n
  • Indicators have been added for stat boots as an alternative to the current\noverlay
  • \n
  • Fix sometimes drawing overlays at the wrong height above players and npcs
  • \n
  • Don\'t enable low memory mode on the audio subsystem when the client is\nconfigured in low memory mode, so the sounds sound normal
  • \n
  • The teamcape plugin has been readded
  • \n
\n

- Adam

\n

New commits

\n

We had 9 contributors this release!

\n
Adam (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.03657595.chunk.js.map \ No newline at end of file diff --git a/static/js/26.a8c58ff8.chunk.js.map b/static/js/26.03657595.chunk.js.map similarity index 98% rename from static/js/26.a8c58ff8.chunk.js.map rename to static/js/26.03657595.chunk.js.map index 2c26cfd3c0..4041b99597 100644 --- a/static/js/26.a8c58ff8.chunk.js.map +++ b/static/js/26.03657595.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.a8c58ff8.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

\\\"agility1\\\"

\\n

\\\"agility2\\\"

\\n

\\\"agility3\\\"

\\n

Discord 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

\\\"discord\\\"

\\n

Additionally, abyss rift locations and player owned house locations are now\\nmarked on the minimap thanks to @Sethtroll.

\\n

\\\"abyss\\\"

\\n

\\\"poh\\\"

\\n

And the burners are now marked as lit or unlit:

\\n

\\\"burners\\\"

\\n

There are also several smaller improvements, including:

\\n
    \\n
  • The screenshot plugin now has configuration for the auto screenshot of\\nlevelups and rewards
  • \\n
  • There is now an option to overlay non-clan members in the player indicator\\nplugin
  • \\n
  • Theoretical boosts have been added to the item stats plugin
  • \\n
  • Indicators have been added for stat boots as an alternative to the current\\noverlay
  • \\n
  • Fix sometimes drawing overlays at the wrong height above players and npcs
  • \\n
  • Don't enable low memory mode on the audio subsystem when the client is\\nconfigured in low memory mode, so the sounds sound normal
  • \\n
  • The teamcape plugin has been readded
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 9 contributors this release!

\\n
Adam (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.03657595.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

\\\"agility1\\\"

\\n

\\\"agility2\\\"

\\n

\\\"agility3\\\"

\\n

Discord 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

\\\"discord\\\"

\\n

Additionally, abyss rift locations and player owned house locations are now\\nmarked on the minimap thanks to @Sethtroll.

\\n

\\\"abyss\\\"

\\n

\\\"poh\\\"

\\n

And the burners are now marked as lit or unlit:

\\n

\\\"burners\\\"

\\n

There are also several smaller improvements, including:

\\n
    \\n
  • The screenshot plugin now has configuration for the auto screenshot of\\nlevelups and rewards
  • \\n
  • There is now an option to overlay non-clan members in the player indicator\\nplugin
  • \\n
  • Theoretical boosts have been added to the item stats plugin
  • \\n
  • Indicators have been added for stat boots as an alternative to the current\\noverlay
  • \\n
  • Fix sometimes drawing overlays at the wrong height above players and npcs
  • \\n
  • Don't enable low memory mode on the audio subsystem when the client is\\nconfigured in low memory mode, so the sounds sound normal
  • \\n
  • The teamcape plugin has been readded
  • \\n
\\n

- Adam

\\n

New commits

\\n

We had 9 contributors this release!

\\n
Adam (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.295ad2c8.chunk.js b/static/js/27.650ef959.chunk.js similarity index 97% rename from static/js/27.295ad2c8.chunk.js rename to static/js/27.650ef959.chunk.js index 7e67526493..3c1dbdfdbb 100644 --- a/static/js/27.295ad2c8.chunk.js +++ b/static/js/27.650ef959.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[27],{304: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

puzzlebox1

\n

puzzlebox2

\n

For 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

nmz

\n

Barrows helper has been added in a new Barrows plugin by @Sethtroll.\nNo more black minimap when in tunnels or finding the correct doors!

\n

barrows1

\n

barrows2

\n

Additionally, abyss rift click boxes are now highlighted thanks to\n@Sethtroll (again).

\n

abyss

\n

And 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

roguesden

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The zoom plugin is now working again thanks to @Abextm
  • \n
  • New option has been added to RuneLite settings that will make your window stay always on top
  • \n
  • Client 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.
  • \n
  • POH icon\'s displaying when on the wrong floor was fixed
  • \n
  • Slayer task now do not decrements anymore when your slayer level is decremented\n(for example in God wars or from KBD special attack)
  • \n
  • Title bar buttons are now shown in the info panel when you have custom title bar disabled
  • \n
\n

Enjoy the new release!

\n

~ Tomas

\n

New commits

\n

We had 11 contributors this release!

\n
Abex (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.295ad2c8.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[27],{305: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

puzzlebox1

\n

puzzlebox2

\n

For 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

nmz

\n

Barrows helper has been added in a new Barrows plugin by @Sethtroll.\nNo more black minimap when in tunnels or finding the correct doors!

\n

barrows1

\n

barrows2

\n

Additionally, abyss rift click boxes are now highlighted thanks to\n@Sethtroll (again).

\n

abyss

\n

And 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

roguesden

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The zoom plugin is now working again thanks to @Abextm
  • \n
  • New option has been added to RuneLite settings that will make your window stay always on top
  • \n
  • Client 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.
  • \n
  • POH icon\'s displaying when on the wrong floor was fixed
  • \n
  • Slayer task now do not decrements anymore when your slayer level is decremented\n(for example in God wars or from KBD special attack)
  • \n
  • Title bar buttons are now shown in the info panel when you have custom title bar disabled
  • \n
\n

Enjoy the new release!

\n

~ Tomas

\n

New commits

\n

We had 11 contributors this release!

\n
Abex (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.650ef959.chunk.js.map \ No newline at end of file diff --git a/static/js/27.295ad2c8.chunk.js.map b/static/js/27.650ef959.chunk.js.map similarity index 98% rename from static/js/27.295ad2c8.chunk.js.map rename to static/js/27.650ef959.chunk.js.map index 5ea688adfe..41f2f41887 100644 --- a/static/js/27.295ad2c8.chunk.js.map +++ b/static/js/27.650ef959.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.295ad2c8.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

\\\"puzzlebox1\\\"

\\n

\\\"puzzlebox2\\\"

\\n

For 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

\\\"nmz\\\"

\\n

Barrows helper has been added in a new Barrows plugin by @Sethtroll.\\nNo more black minimap when in tunnels or finding the correct doors!

\\n

\\\"barrows1\\\"

\\n

\\\"barrows2\\\"

\\n

Additionally, abyss rift click boxes are now highlighted thanks to\\n@Sethtroll (again).

\\n

\\\"abyss\\\"

\\n

And 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

\\\"roguesden\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The zoom plugin is now working again thanks to @Abextm
  • \\n
  • New option has been added to RuneLite settings that will make your window stay always on top
  • \\n
  • Client 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.
  • \\n
  • POH icon's displaying when on the wrong floor was fixed
  • \\n
  • Slayer task now do not decrements anymore when your slayer level is decremented\\n(for example in God wars or from KBD special attack)
  • \\n
  • Title bar buttons are now shown in the info panel when you have custom title bar disabled
  • \\n
\\n

Enjoy the new release!

\\n

~ Tomas

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Abex (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.650ef959.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

\\\"puzzlebox1\\\"

\\n

\\\"puzzlebox2\\\"

\\n

For 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

\\\"nmz\\\"

\\n

Barrows helper has been added in a new Barrows plugin by @Sethtroll.\\nNo more black minimap when in tunnels or finding the correct doors!

\\n

\\\"barrows1\\\"

\\n

\\\"barrows2\\\"

\\n

Additionally, abyss rift click boxes are now highlighted thanks to\\n@Sethtroll (again).

\\n

\\\"abyss\\\"

\\n

And 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

\\\"roguesden\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The zoom plugin is now working again thanks to @Abextm
  • \\n
  • New option has been added to RuneLite settings that will make your window stay always on top
  • \\n
  • Client 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.
  • \\n
  • POH icon's displaying when on the wrong floor was fixed
  • \\n
  • Slayer task now do not decrements anymore when your slayer level is decremented\\n(for example in God wars or from KBD special attack)
  • \\n
  • Title bar buttons are now shown in the info panel when you have custom title bar disabled
  • \\n
\\n

Enjoy the new release!

\\n

~ Tomas

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Abex (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.d344fb98.chunk.js b/static/js/28.61c87868.chunk.js similarity index 98% rename from static/js/28.d344fb98.chunk.js rename to static/js/28.61c87868.chunk.js index d52849ef31..6755829e48 100644 --- a/static/js/28.d344fb98.chunk.js +++ b/static/js/28.61c87868.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[28],{305: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

raids-scouting

\n

raids-points

\n

raids-timer

\n

Due 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

kourend-library

\n

For 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

blastfurnace.png

\n

The configuration system was significantly improved and the plugin manager interface was changed\nto provide better access to enabling and disabling of plugins.

\n

plugin-manager

\n

A 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

chat-history

\n

If you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\ncolors of the dots was added.

\n

minimap

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Screenshot plugin was improved and should now properly work with most of the level ups
  • \n
  • Tooltips are now displaying even for game interface actions
  • \n
  • Tooltips for ironmen and moderators now show the correct icon when hovered
  • \n
  • Toggle to show only highlighted items was added to the Ground Items plugin
  • \n
  • Configuration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin
  • \n
  • Clan chat icons now look good even in fixed mode
  • \n
  • The speed of !price lookups is now quicker
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.d344fb98.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[28],{306: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

raids-scouting

\n

raids-points

\n

raids-timer

\n

Due 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

kourend-library

\n

For 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

blastfurnace.png

\n

The configuration system was significantly improved and the plugin manager interface was changed\nto provide better access to enabling and disabling of plugins.

\n

plugin-manager

\n

A 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

chat-history

\n

If you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\ncolors of the dots was added.

\n

minimap

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Screenshot plugin was improved and should now properly work with most of the level ups
  • \n
  • Tooltips are now displaying even for game interface actions
  • \n
  • Tooltips for ironmen and moderators now show the correct icon when hovered
  • \n
  • Toggle to show only highlighted items was added to the Ground Items plugin
  • \n
  • Configuration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin
  • \n
  • Clan chat icons now look good even in fixed mode
  • \n
  • The speed of !price lookups is now quicker
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 10 contributors this release!

\n
Adam (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.61c87868.chunk.js.map \ No newline at end of file diff --git a/static/js/28.d344fb98.chunk.js.map b/static/js/28.61c87868.chunk.js.map similarity index 99% rename from static/js/28.d344fb98.chunk.js.map rename to static/js/28.61c87868.chunk.js.map index a0914f2889..5e07731ec5 100644 --- a/static/js/28.d344fb98.chunk.js.map +++ b/static/js/28.61c87868.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.d344fb98.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

\\\"raids-scouting\\\"

\\n

\\\"raids-points\\\"

\\n

\\\"raids-timer\\\"

\\n

Due 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

\\\"kourend-library\\\"

\\n

For 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

\\\"blastfurnace.png\\\"

\\n

The configuration system was significantly improved and the plugin manager interface was changed\\nto provide better access to enabling and disabling of plugins.

\\n

\\\"plugin-manager\\\"

\\n

A 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

\\\"chat-history\\\"

\\n

If you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\\ncolors of the dots was added.

\\n

\\\"minimap\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Screenshot plugin was improved and should now properly work with most of the level ups
  • \\n
  • Tooltips are now displaying even for game interface actions
  • \\n
  • Tooltips for ironmen and moderators now show the correct icon when hovered
  • \\n
  • Toggle to show only highlighted items was added to the Ground Items plugin
  • \\n
  • Configuration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin
  • \\n
  • Clan chat icons now look good even in fixed mode
  • \\n
  • The speed of !price lookups is now quicker
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.61c87868.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

\\\"raids-scouting\\\"

\\n

\\\"raids-points\\\"

\\n

\\\"raids-timer\\\"

\\n

Due 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

\\\"kourend-library\\\"

\\n

For 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

\\\"blastfurnace.png\\\"

\\n

The configuration system was significantly improved and the plugin manager interface was changed\\nto provide better access to enabling and disabling of plugins.

\\n

\\\"plugin-manager\\\"

\\n

A 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

\\\"chat-history\\\"

\\n

If you had problems before differentiating player and NPC minimap dots before, a new plugin for modifying\\ncolors of the dots was added.

\\n

\\\"minimap\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Screenshot plugin was improved and should now properly work with most of the level ups
  • \\n
  • Tooltips are now displaying even for game interface actions
  • \\n
  • Tooltips for ironmen and moderators now show the correct icon when hovered
  • \\n
  • Toggle to show only highlighted items was added to the Ground Items plugin
  • \\n
  • Configuration for the color of the NMZ absorption counter was added to the Nightmare Zone plugin
  • \\n
  • Clan chat icons now look good even in fixed mode
  • \\n
  • The speed of !price lookups is now quicker
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 10 contributors this release!

\\n
Adam (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.d49afaed.chunk.js b/static/js/29.de5b64b9.chunk.js similarity index 98% rename from static/js/29.d49afaed.chunk.js rename to static/js/29.de5b64b9.chunk.js index ae5e173294..6c8394738e 100644 --- a/static/js/29.d49afaed.chunk.js +++ b/static/js/29.de5b64b9.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[29],{306: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

ge

\n

@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:

\n

pp

\n

Finally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:

\n

cannon

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • TzTok-Jad overlay is now shown for the whole fight duration
  • \n
  • The puzzle solver now displays the fastest solution
  • \n
  • Add Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin
  • \n
  • Show skill details on hover instead of click in the hiscore panel
  • \n
  • Maniacal monkeys have been added to the hunter plugin
  • \n
  • Hunter plugin was improved to be more accurate, and catch rate overlay was removed
  • \n
  • Fullscreen support has been added for OSX
  • \n
  • Achievement diary plugin has been removed in favour of new OSRS achievement diary interface
  • \n
  • World map has been fixed, no more increased memory consumption after it is closed
  • \n
  • Positive and negative boosts are now properly colored when using absolute boosts
  • \n
  • Cannonball plugin now supports unloading
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.d49afaed.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[29],{307: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

ge

\n

@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:

\n

pp

\n

Finally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:

\n

cannon

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • TzTok-Jad overlay is now shown for the whole fight duration
  • \n
  • The puzzle solver now displays the fastest solution
  • \n
  • Add Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin
  • \n
  • Show skill details on hover instead of click in the hiscore panel
  • \n
  • Maniacal monkeys have been added to the hunter plugin
  • \n
  • Hunter plugin was improved to be more accurate, and catch rate overlay was removed
  • \n
  • Fullscreen support has been added for OSX
  • \n
  • Achievement diary plugin has been removed in favour of new OSRS achievement diary interface
  • \n
  • World map has been fixed, no more increased memory consumption after it is closed
  • \n
  • Positive and negative boosts are now properly colored when using absolute boosts
  • \n
  • Cannonball plugin now supports unloading
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.de5b64b9.chunk.js.map \ No newline at end of file diff --git a/static/js/29.d49afaed.chunk.js.map b/static/js/29.de5b64b9.chunk.js.map similarity index 99% rename from static/js/29.d49afaed.chunk.js.map rename to static/js/29.de5b64b9.chunk.js.map index 4d86cb5c0b..b98a1b356b 100644 --- a/static/js/29.d49afaed.chunk.js.map +++ b/static/js/29.de5b64b9.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.d49afaed.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

\\\"ge\\\"

\\n

@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:

\\n

\\\"pp\\\"

\\n

Finally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:

\\n

\\\"cannon\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • TzTok-Jad overlay is now shown for the whole fight duration
  • \\n
  • The puzzle solver now displays the fastest solution
  • \\n
  • Add Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin
  • \\n
  • Show skill details on hover instead of click in the hiscore panel
  • \\n
  • Maniacal monkeys have been added to the hunter plugin
  • \\n
  • Hunter plugin was improved to be more accurate, and catch rate overlay was removed
  • \\n
  • Fullscreen support has been added for OSX
  • \\n
  • Achievement diary plugin has been removed in favour of new OSRS achievement diary interface
  • \\n
  • World map has been fixed, no more increased memory consumption after it is closed
  • \\n
  • Positive and negative boosts are now properly colored when using absolute boosts
  • \\n
  • Cannonball plugin now supports unloading
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.de5b64b9.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

\\\"ge\\\"

\\n

@NotFoxtrot contributed a pyramid plunder plugin which uses a less obtrusive interface:

\\n

\\\"pp\\\"

\\n

Finally, the cannon plugin was extended by @SemtexError to show the NPC double-hit spots:

\\n

\\\"cannon\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • TzTok-Jad overlay is now shown for the whole fight duration
  • \\n
  • The puzzle solver now displays the fastest solution
  • \\n
  • Add Dorgesh-Kaan and Brimhaven agility arenas to the agility plugin
  • \\n
  • Show skill details on hover instead of click in the hiscore panel
  • \\n
  • Maniacal monkeys have been added to the hunter plugin
  • \\n
  • Hunter plugin was improved to be more accurate, and catch rate overlay was removed
  • \\n
  • Fullscreen support has been added for OSX
  • \\n
  • Achievement diary plugin has been removed in favour of new OSRS achievement diary interface
  • \\n
  • World map has been fixed, no more increased memory consumption after it is closed
  • \\n
  • Positive and negative boosts are now properly colored when using absolute boosts
  • \\n
  • Cannonball plugin now supports unloading
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.2b2c87c8.chunk.js b/static/js/30.3df49031.chunk.js similarity index 98% rename from static/js/30.2b2c87c8.chunk.js rename to static/js/30.3df49031.chunk.js index 66faf3cc89..c636c9f06f 100644 --- a/static/js/30.2b2c87c8.chunk.js +++ b/static/js/30.3df49031.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[30],{307: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

ge-search

\n

A news feed plugin was added which shows the latest RuneLite blog posts, Old\nSchool RuneScape news, and a Twitter feed of JMods.

\n

news-feed

\n

@ChaoticConundrum added Notes plugin that will allow you to\nstore notes that will be persisted via RuneLite configuration system.

\n

notes

\n

Finally, the long-requested default world plugin has been added thanks to\n@deathbeam, which sets a preconfigured home\nworld by default.

\n

There were many smaller improvements and bug fixes, including:

\n
    \n
  • The raids plugin now allows configuring whitelist/blacklist layouts and\nrotations.
  • \n
  • The screenshot plugin now takes screenshots of raid rewards
  • \n
  • Fix length of prayer enhance timer
  • \n
  • The instance map can now be closed with escape and floor can be changed with scrollbar
  • \n
  • The "You are fishing" overlay now works again since the last OSRS update
  • \n
  • @arlyon improved native OSX support - with native fullscreen, and focus\nrequesting
  • \n
  • Fix cannon plugin showing incorrect double hit spots after region change
  • \n
  • Allow disabling of the skill icons on XP drops
  • \n
  • Clear saved private chat history upon clear request
  • \n
  • Fix clanchat icons not showing during region loading
  • \n
  • Add configuation option to make the client size fixed
  • \n
  • Add minimum threshold to teamcape configuration, and now disable by default
  • \n
  • Most 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")
  • \n
  • Special Attack Orb plugin was removed in favour of native OSRS special attack orb
  • \n
  • Various notifaction-related settings was moved to "RuneLite" config section, and now they are applied\nto all notifications
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.2b2c87c8.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[30],{308: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

ge-search

\n

A news feed plugin was added which shows the latest RuneLite blog posts, Old\nSchool RuneScape news, and a Twitter feed of JMods.

\n

news-feed

\n

@ChaoticConundrum added Notes plugin that will allow you to\nstore notes that will be persisted via RuneLite configuration system.

\n

notes

\n

Finally, the long-requested default world plugin has been added thanks to\n@deathbeam, which sets a preconfigured home\nworld by default.

\n

There were many smaller improvements and bug fixes, including:

\n
    \n
  • The raids plugin now allows configuring whitelist/blacklist layouts and\nrotations.
  • \n
  • The screenshot plugin now takes screenshots of raid rewards
  • \n
  • Fix length of prayer enhance timer
  • \n
  • The instance map can now be closed with escape and floor can be changed with scrollbar
  • \n
  • The "You are fishing" overlay now works again since the last OSRS update
  • \n
  • @arlyon improved native OSX support - with native fullscreen, and focus\nrequesting
  • \n
  • Fix cannon plugin showing incorrect double hit spots after region change
  • \n
  • Allow disabling of the skill icons on XP drops
  • \n
  • Clear saved private chat history upon clear request
  • \n
  • Fix clanchat icons not showing during region loading
  • \n
  • Add configuation option to make the client size fixed
  • \n
  • Add minimum threshold to teamcape configuration, and now disable by default
  • \n
  • Most 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")
  • \n
  • Special Attack Orb plugin was removed in favour of native OSRS special attack orb
  • \n
  • Various notifaction-related settings was moved to "RuneLite" config section, and now they are applied\nto all notifications
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.3df49031.chunk.js.map \ No newline at end of file diff --git a/static/js/30.2b2c87c8.chunk.js.map b/static/js/30.3df49031.chunk.js.map similarity index 99% rename from static/js/30.2b2c87c8.chunk.js.map rename to static/js/30.3df49031.chunk.js.map index 741fdf1062..2e93a1cc86 100644 --- a/static/js/30.2b2c87c8.chunk.js.map +++ b/static/js/30.3df49031.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.2b2c87c8.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

\\\"ge-search\\\"

\\n

A news feed plugin was added which shows the latest RuneLite blog posts, Old\\nSchool RuneScape news, and a Twitter feed of JMods.

\\n

\\\"news-feed\\\"

\\n

@ChaoticConundrum added Notes plugin that will allow you to\\nstore notes that will be persisted via RuneLite configuration system.

\\n

\\\"notes\\\"

\\n

Finally, the long-requested default world plugin has been added thanks to\\n@deathbeam, which sets a preconfigured home\\nworld by default.

\\n

There were many smaller improvements and bug fixes, including:

\\n
    \\n
  • The raids plugin now allows configuring whitelist/blacklist layouts and\\nrotations.
  • \\n
  • The screenshot plugin now takes screenshots of raid rewards
  • \\n
  • Fix length of prayer enhance timer
  • \\n
  • The instance map can now be closed with escape and floor can be changed with scrollbar
  • \\n
  • The "You are fishing" overlay now works again since the last OSRS update
  • \\n
  • @arlyon improved native OSX support - with native fullscreen, and focus\\nrequesting
  • \\n
  • Fix cannon plugin showing incorrect double hit spots after region change
  • \\n
  • Allow disabling of the skill icons on XP drops
  • \\n
  • Clear saved private chat history upon clear request
  • \\n
  • Fix clanchat icons not showing during region loading
  • \\n
  • Add configuation option to make the client size fixed
  • \\n
  • Add minimum threshold to teamcape configuration, and now disable by default
  • \\n
  • Most 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")
  • \\n
  • Special Attack Orb plugin was removed in favour of native OSRS special attack orb
  • \\n
  • Various notifaction-related settings was moved to "RuneLite" config section, and now they are applied\\nto all notifications
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.3df49031.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

\\\"ge-search\\\"

\\n

A news feed plugin was added which shows the latest RuneLite blog posts, Old\\nSchool RuneScape news, and a Twitter feed of JMods.

\\n

\\\"news-feed\\\"

\\n

@ChaoticConundrum added Notes plugin that will allow you to\\nstore notes that will be persisted via RuneLite configuration system.

\\n

\\\"notes\\\"

\\n

Finally, the long-requested default world plugin has been added thanks to\\n@deathbeam, which sets a preconfigured home\\nworld by default.

\\n

There were many smaller improvements and bug fixes, including:

\\n
    \\n
  • The raids plugin now allows configuring whitelist/blacklist layouts and\\nrotations.
  • \\n
  • The screenshot plugin now takes screenshots of raid rewards
  • \\n
  • Fix length of prayer enhance timer
  • \\n
  • The instance map can now be closed with escape and floor can be changed with scrollbar
  • \\n
  • The "You are fishing" overlay now works again since the last OSRS update
  • \\n
  • @arlyon improved native OSX support - with native fullscreen, and focus\\nrequesting
  • \\n
  • Fix cannon plugin showing incorrect double hit spots after region change
  • \\n
  • Allow disabling of the skill icons on XP drops
  • \\n
  • Clear saved private chat history upon clear request
  • \\n
  • Fix clanchat icons not showing during region loading
  • \\n
  • Add configuation option to make the client size fixed
  • \\n
  • Add minimum threshold to teamcape configuration, and now disable by default
  • \\n
  • Most 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")
  • \\n
  • Special Attack Orb plugin was removed in favour of native OSRS special attack orb
  • \\n
  • Various notifaction-related settings was moved to "RuneLite" config section, and now they are applied\\nto all notifications
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.7dd40ba1.chunk.js b/static/js/31.4a4c233f.chunk.js similarity index 98% rename from static/js/31.7dd40ba1.chunk.js rename to static/js/31.4a4c233f.chunk.js index 0a4a81141d..5a2aa6e867 100644 --- a/static/js/31.7dd40ba1.chunk.js +++ b/static/js/31.4a4c233f.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[31],{308: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

menuswap

\n

The ground items plugin can now highlight menu options based on item price,\nthanks to @devdennis.

\n

menuhighlight

\n

@abex added a regen meter to the hitpoints and\nspecial attack orbs.

\n

regen

\n

The player indicator plugin can now show player names on the minimap, from\n@deathbeam

\n

minimap

\n

Also, thanks to @josharoo and\n@fe-mirino for their work on\nexpanding the wiki.

\n

The minimap plugin now has an option to allow hiding the minimap on resized mode\n(@Blizik)

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The xp tracker plugin has been overhauled to show more information in less\nspace
  • \n
  • Fixed item sprites in the fishing plugin (among other places) sometimes having\nthe incorrect zoom applied to them
  • \n
  • Opponent info overlay will now update hitpoints for opponents you recently\nwere targeting
  • \n
  • Fix hiscore player menu option intefering with other game menu options like\nWhack
  • \n
  • Fix attack styles not being hidden when attack style plugin configuration is\nchanged
  • \n
  • Add right click menu to screenshot button to open the screenshot folder
  • \n
  • Reposition points box in raids to be underneat the xp dropper overlay
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.7dd40ba1.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[31],{309: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

menuswap

\n

The ground items plugin can now highlight menu options based on item price,\nthanks to @devdennis.

\n

menuhighlight

\n

@abex added a regen meter to the hitpoints and\nspecial attack orbs.

\n

regen

\n

The player indicator plugin can now show player names on the minimap, from\n@deathbeam

\n

minimap

\n

Also, thanks to @josharoo and\n@fe-mirino for their work on\nexpanding the wiki.

\n

The minimap plugin now has an option to allow hiding the minimap on resized mode\n(@Blizik)

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The xp tracker plugin has been overhauled to show more information in less\nspace
  • \n
  • Fixed item sprites in the fishing plugin (among other places) sometimes having\nthe incorrect zoom applied to them
  • \n
  • Opponent info overlay will now update hitpoints for opponents you recently\nwere targeting
  • \n
  • Fix hiscore player menu option intefering with other game menu options like\nWhack
  • \n
  • Fix attack styles not being hidden when attack style plugin configuration is\nchanged
  • \n
  • Add right click menu to screenshot button to open the screenshot folder
  • \n
  • Reposition points box in raids to be underneat the xp dropper overlay
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.4a4c233f.chunk.js.map \ No newline at end of file diff --git a/static/js/31.7dd40ba1.chunk.js.map b/static/js/31.4a4c233f.chunk.js.map similarity index 99% rename from static/js/31.7dd40ba1.chunk.js.map rename to static/js/31.4a4c233f.chunk.js.map index 3e7ee50b0b..f80eb24cfd 100644 --- a/static/js/31.7dd40ba1.chunk.js.map +++ b/static/js/31.4a4c233f.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.7dd40ba1.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

\\\"menuswap\\\"

\\n

The ground items plugin can now highlight menu options based on item price,\\nthanks to @devdennis.

\\n

\\\"menuhighlight\\\"

\\n

@abex added a regen meter to the hitpoints and\\nspecial attack orbs.

\\n

\\\"regen\\\"

\\n

The player indicator plugin can now show player names on the minimap, from\\n@deathbeam

\\n

\\\"minimap\\\"

\\n

Also, thanks to @josharoo and\\n@fe-mirino for their work on\\nexpanding the wiki.

\\n

The minimap plugin now has an option to allow hiding the minimap on resized mode\\n(@Blizik)

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The xp tracker plugin has been overhauled to show more information in less\\nspace
  • \\n
  • Fixed item sprites in the fishing plugin (among other places) sometimes having\\nthe incorrect zoom applied to them
  • \\n
  • Opponent info overlay will now update hitpoints for opponents you recently\\nwere targeting
  • \\n
  • Fix hiscore player menu option intefering with other game menu options like\\nWhack
  • \\n
  • Fix attack styles not being hidden when attack style plugin configuration is\\nchanged
  • \\n
  • Add right click menu to screenshot button to open the screenshot folder
  • \\n
  • Reposition points box in raids to be underneat the xp dropper overlay
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.4a4c233f.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

\\\"menuswap\\\"

\\n

The ground items plugin can now highlight menu options based on item price,\\nthanks to @devdennis.

\\n

\\\"menuhighlight\\\"

\\n

@abex added a regen meter to the hitpoints and\\nspecial attack orbs.

\\n

\\\"regen\\\"

\\n

The player indicator plugin can now show player names on the minimap, from\\n@deathbeam

\\n

\\\"minimap\\\"

\\n

Also, thanks to @josharoo and\\n@fe-mirino for their work on\\nexpanding the wiki.

\\n

The minimap plugin now has an option to allow hiding the minimap on resized mode\\n(@Blizik)

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The xp tracker plugin has been overhauled to show more information in less\\nspace
  • \\n
  • Fixed item sprites in the fishing plugin (among other places) sometimes having\\nthe incorrect zoom applied to them
  • \\n
  • Opponent info overlay will now update hitpoints for opponents you recently\\nwere targeting
  • \\n
  • Fix hiscore player menu option intefering with other game menu options like\\nWhack
  • \\n
  • Fix attack styles not being hidden when attack style plugin configuration is\\nchanged
  • \\n
  • Add right click menu to screenshot button to open the screenshot folder
  • \\n
  • Reposition points box in raids to be underneat the xp dropper overlay
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.4583ab7d.chunk.js b/static/js/32.4474bc7f.chunk.js similarity index 98% rename from static/js/32.4583ab7d.chunk.js rename to static/js/32.4474bc7f.chunk.js index 10e5fba680..48c610b90f 100644 --- a/static/js/32.4583ab7d.chunk.js +++ b/static/js/32.4474bc7f.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[32],{309: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

prayorder

\n

@McSwindler contributed a NPC highlight plugin\nwhich lets you tag npcs, and also configure a list of npcs which are\nhighlighted.

\n

npctag

\n

A 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

bankval

\n

The ground items plugin now supports quickly hiding and highlighting items.\nThanks to @sethtroll.

\n

grounditems

\n

A 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

herbiboar

\n

An item price plugin has been added, from\n@ChaoticConundrum, which shows the price\nof items when hovered over in the bank.

\n

itemprice

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Ground items now support wildcards in both hidden and highlighted fields, so for example *bone*\nwill hide/highlight all bones
  • \n
  • The boosted stats plugin now shows time until next change
  • \n
  • The agility plugin allows configuring of the hitbox overlay color
  • \n
  • Game menus options are no longer left broken when moving regions with the menu\noption
  • \n
  • Attack style plugin now hides attack styles better
  • \n
  • Fixed Kourend library plugin, which was broken last release
  • \n
  • Show glory location in POH plugin
  • \n
  • Common cannon placement spots have been added to the cannon plugin
  • \n
  • Remaining XP to level has been added to the hiscore panel
  • \n
  • Removed background from the prayer flick overlay, which made the quick prayers\n\xa0toggle hard to see
  • \n
  • Added godwars altar timer
  • \n
  • Superior slayer notifications have been added to the slayer plugin
  • \n
  • The slayer plugin infobox (with your current task) now has a configurable\ntimeout
  • \n
  • The time until levelup has been added to the xp tracker panel
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 16 contributors this release!

\n
Adam (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.4583ab7d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[32],{310: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

prayorder

\n

@McSwindler contributed a NPC highlight plugin\nwhich lets you tag npcs, and also configure a list of npcs which are\nhighlighted.

\n

npctag

\n

A 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

bankval

\n

The ground items plugin now supports quickly hiding and highlighting items.\nThanks to @sethtroll.

\n

grounditems

\n

A 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

herbiboar

\n

An item price plugin has been added, from\n@ChaoticConundrum, which shows the price\nof items when hovered over in the bank.

\n

itemprice

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Ground items now support wildcards in both hidden and highlighted fields, so for example *bone*\nwill hide/highlight all bones
  • \n
  • The boosted stats plugin now shows time until next change
  • \n
  • The agility plugin allows configuring of the hitbox overlay color
  • \n
  • Game menus options are no longer left broken when moving regions with the menu\noption
  • \n
  • Attack style plugin now hides attack styles better
  • \n
  • Fixed Kourend library plugin, which was broken last release
  • \n
  • Show glory location in POH plugin
  • \n
  • Common cannon placement spots have been added to the cannon plugin
  • \n
  • Remaining XP to level has been added to the hiscore panel
  • \n
  • Removed background from the prayer flick overlay, which made the quick prayers\n\xa0toggle hard to see
  • \n
  • Added godwars altar timer
  • \n
  • Superior slayer notifications have been added to the slayer plugin
  • \n
  • The slayer plugin infobox (with your current task) now has a configurable\ntimeout
  • \n
  • The time until levelup has been added to the xp tracker panel
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 16 contributors this release!

\n
Adam (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.4474bc7f.chunk.js.map \ No newline at end of file diff --git a/static/js/32.4583ab7d.chunk.js.map b/static/js/32.4474bc7f.chunk.js.map similarity index 99% rename from static/js/32.4583ab7d.chunk.js.map rename to static/js/32.4474bc7f.chunk.js.map index 927ae52e47..d8ac35c7e0 100644 --- a/static/js/32.4583ab7d.chunk.js.map +++ b/static/js/32.4474bc7f.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.4583ab7d.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

\\\"prayorder\\\"

\\n

@McSwindler contributed a NPC highlight plugin\\nwhich lets you tag npcs, and also configure a list of npcs which are\\nhighlighted.

\\n

\\\"npctag\\\"

\\n

A 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

\\\"bankval\\\"

\\n

The ground items plugin now supports quickly hiding and highlighting items.\\nThanks to @sethtroll.

\\n

\\\"grounditems\\\"

\\n

A 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

\\\"herbiboar\\\"

\\n

An item price plugin has been added, from\\n@ChaoticConundrum, which shows the price\\nof items when hovered over in the bank.

\\n

\\\"itemprice\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Ground items now support wildcards in both hidden and highlighted fields, so for example *bone*\\nwill hide/highlight all bones
  • \\n
  • The boosted stats plugin now shows time until next change
  • \\n
  • The agility plugin allows configuring of the hitbox overlay color
  • \\n
  • Game menus options are no longer left broken when moving regions with the menu\\noption
  • \\n
  • Attack style plugin now hides attack styles better
  • \\n
  • Fixed Kourend library plugin, which was broken last release
  • \\n
  • Show glory location in POH plugin
  • \\n
  • Common cannon placement spots have been added to the cannon plugin
  • \\n
  • Remaining XP to level has been added to the hiscore panel
  • \\n
  • Removed background from the prayer flick overlay, which made the quick prayers\\n toggle hard to see
  • \\n
  • Added godwars altar timer
  • \\n
  • Superior slayer notifications have been added to the slayer plugin
  • \\n
  • The slayer plugin infobox (with your current task) now has a configurable\\ntimeout
  • \\n
  • The time until levelup has been added to the xp tracker panel
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 16 contributors this release!

\\n
Adam (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.4474bc7f.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

\\\"prayorder\\\"

\\n

@McSwindler contributed a NPC highlight plugin\\nwhich lets you tag npcs, and also configure a list of npcs which are\\nhighlighted.

\\n

\\\"npctag\\\"

\\n

A 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

\\\"bankval\\\"

\\n

The ground items plugin now supports quickly hiding and highlighting items.\\nThanks to @sethtroll.

\\n

\\\"grounditems\\\"

\\n

A 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

\\\"herbiboar\\\"

\\n

An item price plugin has been added, from\\n@ChaoticConundrum, which shows the price\\nof items when hovered over in the bank.

\\n

\\\"itemprice\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Ground items now support wildcards in both hidden and highlighted fields, so for example *bone*\\nwill hide/highlight all bones
  • \\n
  • The boosted stats plugin now shows time until next change
  • \\n
  • The agility plugin allows configuring of the hitbox overlay color
  • \\n
  • Game menus options are no longer left broken when moving regions with the menu\\noption
  • \\n
  • Attack style plugin now hides attack styles better
  • \\n
  • Fixed Kourend library plugin, which was broken last release
  • \\n
  • Show glory location in POH plugin
  • \\n
  • Common cannon placement spots have been added to the cannon plugin
  • \\n
  • Remaining XP to level has been added to the hiscore panel
  • \\n
  • Removed background from the prayer flick overlay, which made the quick prayers\\n toggle hard to see
  • \\n
  • Added godwars altar timer
  • \\n
  • Superior slayer notifications have been added to the slayer plugin
  • \\n
  • The slayer plugin infobox (with your current task) now has a configurable\\ntimeout
  • \\n
  • The time until levelup has been added to the xp tracker panel
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 16 contributors this release!

\\n
Adam (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.c5534493.chunk.js b/static/js/33.c4289d83.chunk.js similarity index 98% rename from static/js/33.c5534493.chunk.js rename to static/js/33.c4289d83.chunk.js index 63b240c4be..6acc8021cf 100644 --- a/static/js/33.c5534493.chunk.js +++ b/static/js/33.c4289d83.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[33],{310: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

overlay

\n

The clue scroll plugin has been rewritten, and now supports all clue types.\nThanks to @devLotto for their work on this.

\n

clue1\nclue2

\n

A tithe farm plugin was added by @Unmoon, which tracks plant growth stages and state.

\n

tithe

\n

The agility plugin now has an additional lap counter overlay by @sethtroll:

\n

agility

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The instance map plugin maps now look the same as the ingame minimap
  • \n
  • Mouse tooltips were moved to the bottom right corner of the mouse, and are now\nhidden when the game has a tooltip open.
  • \n
  • Fixed slayer points and streak being lost on restart
  • \n
  • A kingdom of Miscellania plugin has been added to show you your support, and\noptionally warn if it is unpopular
  • \n
  • The raids points interface has been replaced with an overlay that also\nincludes party size. As with the other overlays, this is now movable.
  • \n
  • Antipoison and superantipoision were added to the timers plugin
  • \n
  • Add holy wrench effect to itemstats plugin
  • \n
  • Sort infoboxes by plugin and priority
  • \n
  • Add Silver sickle(b) to menu swapper plugin
  • \n
  • Expand list of skill abbreviations for the !lvl command
  • \n
  • Add spicey stew to item stats plugin
  • \n
  • Add cave horror cannon spot
  • \n
  • Fix lizardmen cannon spot
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.c5534493.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[33],{311: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

overlay

\n

The clue scroll plugin has been rewritten, and now supports all clue types.\nThanks to @devLotto for their work on this.

\n

clue1\nclue2

\n

A tithe farm plugin was added by @Unmoon, which tracks plant growth stages and state.

\n

tithe

\n

The agility plugin now has an additional lap counter overlay by @sethtroll:

\n

agility

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The instance map plugin maps now look the same as the ingame minimap
  • \n
  • Mouse tooltips were moved to the bottom right corner of the mouse, and are now\nhidden when the game has a tooltip open.
  • \n
  • Fixed slayer points and streak being lost on restart
  • \n
  • A kingdom of Miscellania plugin has been added to show you your support, and\noptionally warn if it is unpopular
  • \n
  • The raids points interface has been replaced with an overlay that also\nincludes party size. As with the other overlays, this is now movable.
  • \n
  • Antipoison and superantipoision were added to the timers plugin
  • \n
  • Add holy wrench effect to itemstats plugin
  • \n
  • Sort infoboxes by plugin and priority
  • \n
  • Add Silver sickle(b) to menu swapper plugin
  • \n
  • Expand list of skill abbreviations for the !lvl command
  • \n
  • Add spicey stew to item stats plugin
  • \n
  • Add cave horror cannon spot
  • \n
  • Fix lizardmen cannon spot
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.c4289d83.chunk.js.map \ No newline at end of file diff --git a/static/js/33.c5534493.chunk.js.map b/static/js/33.c4289d83.chunk.js.map similarity index 99% rename from static/js/33.c5534493.chunk.js.map rename to static/js/33.c4289d83.chunk.js.map index f565020a26..5a1599c2e5 100644 --- a/static/js/33.c5534493.chunk.js.map +++ b/static/js/33.c4289d83.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.c5534493.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

\\\"overlay\\\"

\\n

The clue scroll plugin has been rewritten, and now supports all clue types.\\nThanks to @devLotto for their work on this.

\\n

\\\"clue1\\\"\\n\\\"clue2\\\"

\\n

A tithe farm plugin was added by @Unmoon, which tracks plant growth stages and state.

\\n

\\\"tithe\\\"

\\n

The agility plugin now has an additional lap counter overlay by @sethtroll:

\\n

\\\"agility\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The instance map plugin maps now look the same as the ingame minimap
  • \\n
  • Mouse tooltips were moved to the bottom right corner of the mouse, and are now\\nhidden when the game has a tooltip open.
  • \\n
  • Fixed slayer points and streak being lost on restart
  • \\n
  • A kingdom of Miscellania plugin has been added to show you your support, and\\noptionally warn if it is unpopular
  • \\n
  • The raids points interface has been replaced with an overlay that also\\nincludes party size. As with the other overlays, this is now movable.
  • \\n
  • Antipoison and superantipoision were added to the timers plugin
  • \\n
  • Add holy wrench effect to itemstats plugin
  • \\n
  • Sort infoboxes by plugin and priority
  • \\n
  • Add Silver sickle(b) to menu swapper plugin
  • \\n
  • Expand list of skill abbreviations for the !lvl command
  • \\n
  • Add spicey stew to item stats plugin
  • \\n
  • Add cave horror cannon spot
  • \\n
  • Fix lizardmen cannon spot
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.c4289d83.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

\\\"overlay\\\"

\\n

The clue scroll plugin has been rewritten, and now supports all clue types.\\nThanks to @devLotto for their work on this.

\\n

\\\"clue1\\\"\\n\\\"clue2\\\"

\\n

A tithe farm plugin was added by @Unmoon, which tracks plant growth stages and state.

\\n

\\\"tithe\\\"

\\n

The agility plugin now has an additional lap counter overlay by @sethtroll:

\\n

\\\"agility\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The instance map plugin maps now look the same as the ingame minimap
  • \\n
  • Mouse tooltips were moved to the bottom right corner of the mouse, and are now\\nhidden when the game has a tooltip open.
  • \\n
  • Fixed slayer points and streak being lost on restart
  • \\n
  • A kingdom of Miscellania plugin has been added to show you your support, and\\noptionally warn if it is unpopular
  • \\n
  • The raids points interface has been replaced with an overlay that also\\nincludes party size. As with the other overlays, this is now movable.
  • \\n
  • Antipoison and superantipoision were added to the timers plugin
  • \\n
  • Add holy wrench effect to itemstats plugin
  • \\n
  • Sort infoboxes by plugin and priority
  • \\n
  • Add Silver sickle(b) to menu swapper plugin
  • \\n
  • Expand list of skill abbreviations for the !lvl command
  • \\n
  • Add spicey stew to item stats plugin
  • \\n
  • Add cave horror cannon spot
  • \\n
  • Fix lizardmen cannon spot
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.f75ad7c3.chunk.js b/static/js/34.ad76e96a.chunk.js similarity index 98% rename from static/js/34.f75ad7c3.chunk.js rename to static/js/34.ad76e96a.chunk.js index c27551d8b8..902551c89f 100644 --- a/static/js/34.f75ad7c3.chunk.js +++ b/static/js/34.ad76e96a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[34],{311: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

banktags

\n

You 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

shiftclick

\n

The 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

indicators

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix prayer reoder plugin not always reodering prayers since the last update
  • \n
  • Disable kingdom of misc plugin by default
  • \n
  • Add last destination for spiritual fairy tree to menu swapper plugin
  • \n
  • Allow configuring gp thresholds for ground items highlighting
  • \n
  • Add options to disable mouse tooltips on interfaces and in chatbox
  • \n
  • Fix nmz plugin informing you your absorption is low immediately after entering\nnmz
  • \n
  • Require shift to be held for npc tag option to be visibile
  • \n
  • Fix overlays drawing over the minimap area in fixed mode
  • \n
  • Move titlebar buttons to side bar when custom chrome is disabled
  • \n
  • Add option to enable the small font on all of the overlays
  • \n
  • Fix grounditems showing items as Members only when hopping from f2p to p2p
  • \n
  • Add fishing spots at Mount Quidamortem
  • \n
  • Add turquoise slayer helmet to the slayer plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.f75ad7c3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[34],{312: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

banktags

\n

You 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

shiftclick

\n

The 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

indicators

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix prayer reoder plugin not always reodering prayers since the last update
  • \n
  • Disable kingdom of misc plugin by default
  • \n
  • Add last destination for spiritual fairy tree to menu swapper plugin
  • \n
  • Allow configuring gp thresholds for ground items highlighting
  • \n
  • Add options to disable mouse tooltips on interfaces and in chatbox
  • \n
  • Fix nmz plugin informing you your absorption is low immediately after entering\nnmz
  • \n
  • Require shift to be held for npc tag option to be visibile
  • \n
  • Fix overlays drawing over the minimap area in fixed mode
  • \n
  • Move titlebar buttons to side bar when custom chrome is disabled
  • \n
  • Add option to enable the small font on all of the overlays
  • \n
  • Fix grounditems showing items as Members only when hopping from f2p to p2p
  • \n
  • Add fishing spots at Mount Quidamortem
  • \n
  • Add turquoise slayer helmet to the slayer plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 11 contributors this release!

\n
Adam (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.ad76e96a.chunk.js.map \ No newline at end of file diff --git a/static/js/34.f75ad7c3.chunk.js.map b/static/js/34.ad76e96a.chunk.js.map similarity index 99% rename from static/js/34.f75ad7c3.chunk.js.map rename to static/js/34.ad76e96a.chunk.js.map index 88f63ddb3c..59779d33a5 100644 --- a/static/js/34.f75ad7c3.chunk.js.map +++ b/static/js/34.ad76e96a.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.f75ad7c3.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

\\\"banktags\\\"

\\n

You 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

\\\"shiftclick\\\"

\\n

The 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

\\\"indicators\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix prayer reoder plugin not always reodering prayers since the last update
  • \\n
  • Disable kingdom of misc plugin by default
  • \\n
  • Add last destination for spiritual fairy tree to menu swapper plugin
  • \\n
  • Allow configuring gp thresholds for ground items highlighting
  • \\n
  • Add options to disable mouse tooltips on interfaces and in chatbox
  • \\n
  • Fix nmz plugin informing you your absorption is low immediately after entering\\nnmz
  • \\n
  • Require shift to be held for npc tag option to be visibile
  • \\n
  • Fix overlays drawing over the minimap area in fixed mode
  • \\n
  • Move titlebar buttons to side bar when custom chrome is disabled
  • \\n
  • Add option to enable the small font on all of the overlays
  • \\n
  • Fix grounditems showing items as Members only when hopping from f2p to p2p
  • \\n
  • Add fishing spots at Mount Quidamortem
  • \\n
  • Add turquoise slayer helmet to the slayer plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.ad76e96a.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

\\\"banktags\\\"

\\n

You 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

\\\"shiftclick\\\"

\\n

The 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

\\\"indicators\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix prayer reoder plugin not always reodering prayers since the last update
  • \\n
  • Disable kingdom of misc plugin by default
  • \\n
  • Add last destination for spiritual fairy tree to menu swapper plugin
  • \\n
  • Allow configuring gp thresholds for ground items highlighting
  • \\n
  • Add options to disable mouse tooltips on interfaces and in chatbox
  • \\n
  • Fix nmz plugin informing you your absorption is low immediately after entering\\nnmz
  • \\n
  • Require shift to be held for npc tag option to be visibile
  • \\n
  • Fix overlays drawing over the minimap area in fixed mode
  • \\n
  • Move titlebar buttons to side bar when custom chrome is disabled
  • \\n
  • Add option to enable the small font on all of the overlays
  • \\n
  • Fix grounditems showing items as Members only when hopping from f2p to p2p
  • \\n
  • Add fishing spots at Mount Quidamortem
  • \\n
  • Add turquoise slayer helmet to the slayer plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 11 contributors this release!

\\n
Adam (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.a739d48c.chunk.js b/static/js/35.77d3866f.chunk.js similarity index 98% rename from static/js/35.a739d48c.chunk.js rename to static/js/35.77d3866f.chunk.js index f580686bd3..5041604c95 100644 --- a/static/js/35.a739d48c.chunk.js +++ b/static/js/35.77d3866f.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[35],{312: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

animsmoothing1\nanimsmoothing2\nanimsmoothing3

\n

HiScore 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

lookups

\n

The 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

darkmage

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Added healing values for 30+ missing foods; most importantly, easter eggs!
  • \n
  • Menu 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).
  • \n
  • Removed the Pyramid Plunder plugin because\nwe don\'t need it any more.\nGood Jagex.
  • \n
  • Renamed the Attack Indicators plugin to Attack Styles, and added better\ncontrol over when the indicator appears.
  • \n
  • Added a toggle for displaying skilling session stats.
  • \n
  • Updated our overlay text to use the current oldschool font, complete with\nslashed 0\'s.
  • \n
  • Fixed several clue scroll helpers which pointed to wrong spots, suggested\nthe wrong dance emote, or contained typos.
  • \n
  • Hunter plugin: fix bug related to setting traps and walking in the same tick.
  • \n
  • Fixed report button not returning to normal when the plugin was disabled.
  • \n
  • Fixed the bank tag search forgetting to match item placeholders.
  • \n
  • Fixed the screenshot plugin crashing on certain dialogs, like grabbing a\nhammer from a Motherlode crate.
  • \n
\n

Enjoy!

\n

~ Soy

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.a739d48c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[35],{313: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

animsmoothing1\nanimsmoothing2\nanimsmoothing3

\n

HiScore 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

lookups

\n

The 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

darkmage

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Added healing values for 30+ missing foods; most importantly, easter eggs!
  • \n
  • Menu 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).
  • \n
  • Removed the Pyramid Plunder plugin because\nwe don\'t need it any more.\nGood Jagex.
  • \n
  • Renamed the Attack Indicators plugin to Attack Styles, and added better\ncontrol over when the indicator appears.
  • \n
  • Added a toggle for displaying skilling session stats.
  • \n
  • Updated our overlay text to use the current oldschool font, complete with\nslashed 0\'s.
  • \n
  • Fixed several clue scroll helpers which pointed to wrong spots, suggested\nthe wrong dance emote, or contained typos.
  • \n
  • Hunter plugin: fix bug related to setting traps and walking in the same tick.
  • \n
  • Fixed report button not returning to normal when the plugin was disabled.
  • \n
  • Fixed the bank tag search forgetting to match item placeholders.
  • \n
  • Fixed the screenshot plugin crashing on certain dialogs, like grabbing a\nhammer from a Motherlode crate.
  • \n
\n

Enjoy!

\n

~ Soy

\n

New commits

\n

We had 19 contributors this release!

\n
Adam (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.77d3866f.chunk.js.map \ No newline at end of file diff --git a/static/js/35.a739d48c.chunk.js.map b/static/js/35.77d3866f.chunk.js.map similarity index 99% rename from static/js/35.a739d48c.chunk.js.map rename to static/js/35.77d3866f.chunk.js.map index 8c5449e283..ab390a7e1f 100644 --- a/static/js/35.a739d48c.chunk.js.map +++ b/static/js/35.77d3866f.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.a739d48c.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

\\\"animsmoothing1\\\"\\n\\\"animsmoothing2\\\"\\n\\\"animsmoothing3\\\"

\\n

HiScore 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

\\\"lookups\\\"

\\n

The 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

\\\"darkmage\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Added healing values for 30+ missing foods; most importantly, easter eggs!
  • \\n
  • Menu 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).
  • \\n
  • Removed the Pyramid Plunder plugin because\\nwe don't need it any more.\\nGood Jagex.
  • \\n
  • Renamed the Attack Indicators plugin to Attack Styles, and added better\\ncontrol over when the indicator appears.
  • \\n
  • Added a toggle for displaying skilling session stats.
  • \\n
  • Updated our overlay text to use the current oldschool font, complete with\\nslashed 0's.
  • \\n
  • Fixed several clue scroll helpers which pointed to wrong spots, suggested\\nthe wrong dance emote, or contained typos.
  • \\n
  • Hunter plugin: fix bug related to setting traps and walking in the same tick.
  • \\n
  • Fixed report button not returning to normal when the plugin was disabled.
  • \\n
  • Fixed the bank tag search forgetting to match item placeholders.
  • \\n
  • Fixed the screenshot plugin crashing on certain dialogs, like grabbing a\\nhammer from a Motherlode crate.
  • \\n
\\n

Enjoy!

\\n

~ Soy

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.77d3866f.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

\\\"animsmoothing1\\\"\\n\\\"animsmoothing2\\\"\\n\\\"animsmoothing3\\\"

\\n

HiScore 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

\\\"lookups\\\"

\\n

The 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

\\\"darkmage\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Added healing values for 30+ missing foods; most importantly, easter eggs!
  • \\n
  • Menu 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).
  • \\n
  • Removed the Pyramid Plunder plugin because\\nwe don't need it any more.\\nGood Jagex.
  • \\n
  • Renamed the Attack Indicators plugin to Attack Styles, and added better\\ncontrol over when the indicator appears.
  • \\n
  • Added a toggle for displaying skilling session stats.
  • \\n
  • Updated our overlay text to use the current oldschool font, complete with\\nslashed 0's.
  • \\n
  • Fixed several clue scroll helpers which pointed to wrong spots, suggested\\nthe wrong dance emote, or contained typos.
  • \\n
  • Hunter plugin: fix bug related to setting traps and walking in the same tick.
  • \\n
  • Fixed report button not returning to normal when the plugin was disabled.
  • \\n
  • Fixed the bank tag search forgetting to match item placeholders.
  • \\n
  • Fixed the screenshot plugin crashing on certain dialogs, like grabbing a\\nhammer from a Motherlode crate.
  • \\n
\\n

Enjoy!

\\n

~ Soy

\\n

New commits

\\n

We had 19 contributors this release!

\\n
Adam (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.8bd4edc4.chunk.js b/static/js/36.c3f93721.chunk.js similarity index 98% rename from static/js/36.8bd4edc4.chunk.js rename to static/js/36.c3f93721.chunk.js index a4646ca3c2..8c124100d6 100644 --- a/static/js/36.8bd4edc4.chunk.js +++ b/static/js/36.c3f93721.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[36],{313: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

xptracker

\n

Thanks 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

cluearrows

\n

The motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig.

\n

motherlode

\n

The HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.

\n

lookup

\n

NPCs 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

\n

For a list of all changes, see the list below.

\n

Enjoy!

\n

~ Kamiel

\n

New commits

\n

We had 33 contributors this release!

\n
Adam (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.8bd4edc4.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[36],{314: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

xptracker

\n

Thanks 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

cluearrows

\n

The motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig.

\n

motherlode

\n

The HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.

\n

lookup

\n

NPCs 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

\n

For a list of all changes, see the list below.

\n

Enjoy!

\n

~ Kamiel

\n

New commits

\n

We had 33 contributors this release!

\n
Adam (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.c3f93721.chunk.js.map \ No newline at end of file diff --git a/static/js/36.8bd4edc4.chunk.js.map b/static/js/36.c3f93721.chunk.js.map similarity index 99% rename from static/js/36.8bd4edc4.chunk.js.map rename to static/js/36.c3f93721.chunk.js.map index 9813c60a66..7bf5d73e33 100644 --- a/static/js/36.8bd4edc4.chunk.js.map +++ b/static/js/36.c3f93721.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.8bd4edc4.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

\\\"xptracker\\\"

\\n

Thanks 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

\\\"cluearrows\\\"

\\n

The motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig.

\\n

\\\"motherlode\\\"

\\n

The HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.

\\n

\\\"lookup\\\"

\\n

NPCs 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

\\n

For a list of all changes, see the list below.

\\n

Enjoy!

\\n

~ Kamiel

\\n

New commits

\\n

We had 33 contributors this release!

\\n
Adam (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.c3f93721.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

\\\"xptracker\\\"

\\n

Thanks 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

\\\"cluearrows\\\"

\\n

The motherlode overlay has been updated to show more information. You can now see the amount of gems received thanks to @ypperlig.

\\n

\\\"motherlode\\\"

\\n

The HiScore lookup within the client now supports virtual levels and shows clue stats for each individual clue tier now.

\\n

\\\"lookup\\\"

\\n

NPCs 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

\\n

For a list of all changes, see the list below.

\\n

Enjoy!

\\n

~ Kamiel

\\n

New commits

\\n

We had 33 contributors this release!

\\n
Adam (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.92c716e2.chunk.js b/static/js/37.0e895e23.chunk.js similarity index 98% rename from static/js/37.92c716e2.chunk.js rename to static/js/37.0e895e23.chunk.js index 987e564a27..4e7d667e44 100644 --- a/static/js/37.92c716e2.chunk.js +++ b/static/js/37.0e895e23.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[37],{314: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

tilemarker

\n

Agility shortcuts throughout the game are now highlighted, and the agility\nplugin now highlights marks of grace:

\n

agilityshortcut

\n

A fairy ring location plugin was added which tells you the location fairy rings\nare configured to:

\n

fairyring

\n

An entity hider plugin was added which lets you hide other players and npcs from\nview.

\n

entityhider

\n

There 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Opponent info should no longer sometimes show "null" for opponent name
  • \n
  • The infoboxes now have a configurable wrap limit, and can be configured to\nstack verically instead.
  • \n
  • Support for slayer braclets have been added to the slayer plugin
  • \n
  • The MLM plugin now only shows veins on the same floor as you are
  • \n
  • Fix notes plugin to textwrap
  • \n
  • Add kingdom of misc. to screenshot plugin
  • \n
  • The length XP globes are shown is now configurable
  • \n
  • Fix client resizing itself when the plugin panel is collapsed and the client\nis maximized
  • \n
  • Color HP xp drops when praying too if XP drops are split
  • \n
  • "Actions Left" has been added to XP globes
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.92c716e2.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[37],{315: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

tilemarker

\n

Agility shortcuts throughout the game are now highlighted, and the agility\nplugin now highlights marks of grace:

\n

agilityshortcut

\n

A fairy ring location plugin was added which tells you the location fairy rings\nare configured to:

\n

fairyring

\n

An entity hider plugin was added which lets you hide other players and npcs from\nview.

\n

entityhider

\n

There 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Opponent info should no longer sometimes show "null" for opponent name
  • \n
  • The infoboxes now have a configurable wrap limit, and can be configured to\nstack verically instead.
  • \n
  • Support for slayer braclets have been added to the slayer plugin
  • \n
  • The MLM plugin now only shows veins on the same floor as you are
  • \n
  • Fix notes plugin to textwrap
  • \n
  • Add kingdom of misc. to screenshot plugin
  • \n
  • The length XP globes are shown is now configurable
  • \n
  • Fix client resizing itself when the plugin panel is collapsed and the client\nis maximized
  • \n
  • Color HP xp drops when praying too if XP drops are split
  • \n
  • "Actions Left" has been added to XP globes
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.0e895e23.chunk.js.map \ No newline at end of file diff --git a/static/js/37.92c716e2.chunk.js.map b/static/js/37.0e895e23.chunk.js.map similarity index 99% rename from static/js/37.92c716e2.chunk.js.map rename to static/js/37.0e895e23.chunk.js.map index 29f3df0755..0335c516bb 100644 --- a/static/js/37.92c716e2.chunk.js.map +++ b/static/js/37.0e895e23.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.92c716e2.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

\\\"tilemarker\\\"

\\n

Agility shortcuts throughout the game are now highlighted, and the agility\\nplugin now highlights marks of grace:

\\n

\\\"agilityshortcut\\\"

\\n

A fairy ring location plugin was added which tells you the location fairy rings\\nare configured to:

\\n

\\\"fairyring\\\"

\\n

An entity hider plugin was added which lets you hide other players and npcs from\\nview.

\\n

\\\"entityhider\\\"

\\n

There 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Opponent info should no longer sometimes show "null" for opponent name
  • \\n
  • The infoboxes now have a configurable wrap limit, and can be configured to\\nstack verically instead.
  • \\n
  • Support for slayer braclets have been added to the slayer plugin
  • \\n
  • The MLM plugin now only shows veins on the same floor as you are
  • \\n
  • Fix notes plugin to textwrap
  • \\n
  • Add kingdom of misc. to screenshot plugin
  • \\n
  • The length XP globes are shown is now configurable
  • \\n
  • Fix client resizing itself when the plugin panel is collapsed and the client\\nis maximized
  • \\n
  • Color HP xp drops when praying too if XP drops are split
  • \\n
  • "Actions Left" has been added to XP globes
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.0e895e23.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

\\\"tilemarker\\\"

\\n

Agility shortcuts throughout the game are now highlighted, and the agility\\nplugin now highlights marks of grace:

\\n

\\\"agilityshortcut\\\"

\\n

A fairy ring location plugin was added which tells you the location fairy rings\\nare configured to:

\\n

\\\"fairyring\\\"

\\n

An entity hider plugin was added which lets you hide other players and npcs from\\nview.

\\n

\\\"entityhider\\\"

\\n

There 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Opponent info should no longer sometimes show "null" for opponent name
  • \\n
  • The infoboxes now have a configurable wrap limit, and can be configured to\\nstack verically instead.
  • \\n
  • Support for slayer braclets have been added to the slayer plugin
  • \\n
  • The MLM plugin now only shows veins on the same floor as you are
  • \\n
  • Fix notes plugin to textwrap
  • \\n
  • Add kingdom of misc. to screenshot plugin
  • \\n
  • The length XP globes are shown is now configurable
  • \\n
  • Fix client resizing itself when the plugin panel is collapsed and the client\\nis maximized
  • \\n
  • Color HP xp drops when praying too if XP drops are split
  • \\n
  • "Actions Left" has been added to XP globes
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.4e4930d9.chunk.js b/static/js/38.aa273ffd.chunk.js similarity index 98% rename from static/js/38.4e4930d9.chunk.js rename to static/js/38.aa273ffd.chunk.js index 2a76a13b33..17ed1cc24c 100644 --- a/static/js/38.4e4930d9.chunk.js +++ b/static/js/38.aa273ffd.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[38],{315: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

farming

\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

gorillas

\n

A Cerberus plugin has been added, from\n@deathbeam which shows the ghost order.

\n

cerberus

\n

Also, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The cannonball count plugin tracks the count correctly again
  • \n
  • The side toolbar can now be hidden via a button in the menu bar, or ctrl+f11
  • \n
  • There is now a toggle for highlighting agility shortcuts
  • \n
  • A vengeance other timer has been added
  • \n
  • The XP orbs stay on screen while hovered
  • \n
  • Third age tools added to idle notifier
  • \n
  • XP tracker "actions left" no longer rounds down, and doesn\'t get confused by\nhopping accounts anymore
  • \n
  • Screenshots can now be taken with the "insert" key
  • \n
  • Add ability to disable low HP and prayer notifications
  • \n
  • Add skill progress bar to hiscore panel
  • \n
  • Add stat change indicator to boosts plugin when indicators are selected
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 25 contributors this release!

\n
Adam (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.4e4930d9.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[38],{316: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

farming

\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

gorillas

\n

A Cerberus plugin has been added, from\n@deathbeam which shows the ghost order.

\n

cerberus

\n

Also, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The cannonball count plugin tracks the count correctly again
  • \n
  • The side toolbar can now be hidden via a button in the menu bar, or ctrl+f11
  • \n
  • There is now a toggle for highlighting agility shortcuts
  • \n
  • A vengeance other timer has been added
  • \n
  • The XP orbs stay on screen while hovered
  • \n
  • Third age tools added to idle notifier
  • \n
  • XP tracker "actions left" no longer rounds down, and doesn\'t get confused by\nhopping accounts anymore
  • \n
  • Screenshots can now be taken with the "insert" key
  • \n
  • Add ability to disable low HP and prayer notifications
  • \n
  • Add skill progress bar to hiscore panel
  • \n
  • Add stat change indicator to boosts plugin when indicators are selected
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 25 contributors this release!

\n
Adam (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.aa273ffd.chunk.js.map \ No newline at end of file diff --git a/static/js/38.4e4930d9.chunk.js.map b/static/js/38.aa273ffd.chunk.js.map similarity index 99% rename from static/js/38.4e4930d9.chunk.js.map rename to static/js/38.aa273ffd.chunk.js.map index 5ae463433c..8f72e152de 100644 --- a/static/js/38.4e4930d9.chunk.js.map +++ b/static/js/38.aa273ffd.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.4e4930d9.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

\\\"farming\\\"

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

\\\"gorillas\\\"

\\n

A Cerberus plugin has been added, from\\n@deathbeam which shows the ghost order.

\\n

\\\"cerberus\\\"

\\n

Also, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The cannonball count plugin tracks the count correctly again
  • \\n
  • The side toolbar can now be hidden via a button in the menu bar, or ctrl+f11
  • \\n
  • There is now a toggle for highlighting agility shortcuts
  • \\n
  • A vengeance other timer has been added
  • \\n
  • The XP orbs stay on screen while hovered
  • \\n
  • Third age tools added to idle notifier
  • \\n
  • XP tracker "actions left" no longer rounds down, and doesn't get confused by\\nhopping accounts anymore
  • \\n
  • Screenshots can now be taken with the "insert" key
  • \\n
  • Add ability to disable low HP and prayer notifications
  • \\n
  • Add skill progress bar to hiscore panel
  • \\n
  • Add stat change indicator to boosts plugin when indicators are selected
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 25 contributors this release!

\\n
Adam (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.aa273ffd.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

\\\"farming\\\"

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

\\\"gorillas\\\"

\\n

A Cerberus plugin has been added, from\\n@deathbeam which shows the ghost order.

\\n

\\\"cerberus\\\"

\\n

Also, a special thanks to Brandon Kase, FatalWaffles, Jordan Atwood, Maiddog,\\nNotFoxtrot, and Rprrr for continuing to correct and update the clues.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The cannonball count plugin tracks the count correctly again
  • \\n
  • The side toolbar can now be hidden via a button in the menu bar, or ctrl+f11
  • \\n
  • There is now a toggle for highlighting agility shortcuts
  • \\n
  • A vengeance other timer has been added
  • \\n
  • The XP orbs stay on screen while hovered
  • \\n
  • Third age tools added to idle notifier
  • \\n
  • XP tracker "actions left" no longer rounds down, and doesn't get confused by\\nhopping accounts anymore
  • \\n
  • Screenshots can now be taken with the "insert" key
  • \\n
  • Add ability to disable low HP and prayer notifications
  • \\n
  • Add skill progress bar to hiscore panel
  • \\n
  • Add stat change indicator to boosts plugin when indicators are selected
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 25 contributors this release!

\\n
Adam (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.92d7af0d.chunk.js b/static/js/39.246782de.chunk.js similarity index 98% rename from static/js/39.92d7af0d.chunk.js rename to static/js/39.246782de.chunk.js index 7494ad89c5..5cb2287b18 100644 --- a/static/js/39.92d7af0d.chunk.js +++ b/static/js/39.246782de.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[39],{316: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

cluemap

\n

A friend notes plugin has been added which lets you associate notes to friends\non your friends list.

\n

friendnotes

\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.

\n

A special attack counter was added which counts draining special attacks done\nagainst certain bosses like the Corporeal Beast.

\n

speccounter

\n

A FPS plugin was added from @LeviSchuck which\ndisplays the current FPS, and allows you to configure a max FPS limit.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix agility plugin calculating laps to level when you level up on a lap
  • \n
  • Add missing Rellekka fishing spots to fishing plugin
  • \n
  • XP globes mouseover now shows xp per hour
  • \n
  • Fix date placement in screenshot with stretched fixed mode
  • \n
  • Fix xp tracker sometimes showing negative XP
  • \n
  • Fix bank tags to be case insensitive
  • \n
  • Add Puro-Puro static spawn locations to imp plugin
  • \n
  • A chest price evaluator was added to the barrows plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 29 contributors this release!

\n
AWarbear (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.92d7af0d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[39],{317: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

cluemap

\n

A friend notes plugin has been added which lets you associate notes to friends\non your friends list.

\n

friendnotes

\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.

\n

A special attack counter was added which counts draining special attacks done\nagainst certain bosses like the Corporeal Beast.

\n

speccounter

\n

A FPS plugin was added from @LeviSchuck which\ndisplays the current FPS, and allows you to configure a max FPS limit.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix agility plugin calculating laps to level when you level up on a lap
  • \n
  • Add missing Rellekka fishing spots to fishing plugin
  • \n
  • XP globes mouseover now shows xp per hour
  • \n
  • Fix date placement in screenshot with stretched fixed mode
  • \n
  • Fix xp tracker sometimes showing negative XP
  • \n
  • Fix bank tags to be case insensitive
  • \n
  • Add Puro-Puro static spawn locations to imp plugin
  • \n
  • A chest price evaluator was added to the barrows plugin
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 29 contributors this release!

\n
AWarbear (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.246782de.chunk.js.map \ No newline at end of file diff --git a/static/js/39.92d7af0d.chunk.js.map b/static/js/39.246782de.chunk.js.map similarity index 99% rename from static/js/39.92d7af0d.chunk.js.map rename to static/js/39.246782de.chunk.js.map index 2b6dea635f..2d0a54c0b9 100644 --- a/static/js/39.92d7af0d.chunk.js.map +++ b/static/js/39.246782de.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.92d7af0d.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

\\\"cluemap\\\"

\\n

A friend notes plugin has been added which lets you associate notes to friends\\non your friends list.

\\n

\\\"friendnotes\\\"

\\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.

\\n

A special attack counter was added which counts draining special attacks done\\nagainst certain bosses like the Corporeal Beast.

\\n

\\\"speccounter\\\"

\\n

A FPS plugin was added from @LeviSchuck which\\ndisplays the current FPS, and allows you to configure a max FPS limit.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix agility plugin calculating laps to level when you level up on a lap
  • \\n
  • Add missing Rellekka fishing spots to fishing plugin
  • \\n
  • XP globes mouseover now shows xp per hour
  • \\n
  • Fix date placement in screenshot with stretched fixed mode
  • \\n
  • Fix xp tracker sometimes showing negative XP
  • \\n
  • Fix bank tags to be case insensitive
  • \\n
  • Add Puro-Puro static spawn locations to imp plugin
  • \\n
  • A chest price evaluator was added to the barrows plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 29 contributors this release!

\\n
AWarbear (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.246782de.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

\\\"cluemap\\\"

\\n

A friend notes plugin has been added which lets you associate notes to friends\\non your friends list.

\\n

\\\"friendnotes\\\"

\\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.

\\n

A special attack counter was added which counts draining special attacks done\\nagainst certain bosses like the Corporeal Beast.

\\n

\\\"speccounter\\\"

\\n

A FPS plugin was added from @LeviSchuck which\\ndisplays the current FPS, and allows you to configure a max FPS limit.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix agility plugin calculating laps to level when you level up on a lap
  • \\n
  • Add missing Rellekka fishing spots to fishing plugin
  • \\n
  • XP globes mouseover now shows xp per hour
  • \\n
  • Fix date placement in screenshot with stretched fixed mode
  • \\n
  • Fix xp tracker sometimes showing negative XP
  • \\n
  • Fix bank tags to be case insensitive
  • \\n
  • Add Puro-Puro static spawn locations to imp plugin
  • \\n
  • A chest price evaluator was added to the barrows plugin
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 29 contributors this release!

\\n
AWarbear (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.aa61be93.chunk.js b/static/js/4.aa61be93.chunk.js deleted file mode 100644 index 3e2337e7ac..0000000000 --- a/static/js/4.aa61be93.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(284)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283};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){},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":[297,20],"./2017-12-21-00-00-1.2.10-Release.md":[298,21],"./2018-01-12-00-00-1.2.11-Release.md":[299,22],"./2018-01-18-00-00-1.2.12-Release.md":[300,23],"./2018-01-25-00-00-1.2.13-Release.md":[301,24],"./2018-02-01-00-00-1.2.14-Release.md":[302,25],"./2018-02-08-00-00-1.2.15-Release.md":[303,26],"./2018-02-15-00-00-1.2.16-Release.md":[304,27],"./2018-02-22-00-00-1.2.17-Release.md":[305,28],"./2018-03-01-00-00-1.2.18-Release.md":[306,29],"./2018-03-08-00-00-1.2.19-Release.md":[307,30],"./2018-03-15-00-00-1.3.0-Release.md":[308,31],"./2018-03-22-00-00-1.3.1-Release.md":[309,32],"./2018-03-29-00-00-1.3.2-Release.md":[310,33],"./2018-04-05-00-00-1.3.3-Release.md":[311,34],"./2018-04-12-00-00-1.3.4-Release.md":[312,35],"./2018-04-19-00-00-1.3.5-Release.md":[313,36],"./2018-04-26-00-00-1.3.6-Release.md":[314,37],"./2018-05-03-00-00-1.3.7-Release.md":[315,38],"./2018-05-10-00-00-1.3.8-Release.md":[316,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[317,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[318,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[319,42],"./2018-05-18-00-00-1.3.9-Release.md":[320,43],"./2018-05-24-00-00-1.4.0-Release.md":[321,44],"./2018-05-25-23-00-Phishing-Attempts.md":[322,45],"./2018-05-31-07-00-1.4.1-Release.md":[323,46],"./2018-06-07-07-00-1.4.2-Release.md":[324,47],"./2018-06-14-07-00-1.4.3-Release.md":[325,48],"./2018-06-21-07-00-1.4.4-Release.md":[326,49],"./2018-06-28-07-00-1.4.5-Release.md":[327,50],"./2018-07-05-07-00-1.4.6-Release.md":[328,51],"./2018-07-12-07-00-1.4.7-Release.md":[329,52],"./2018-07-19-07-00-1.4.8-Release.md":[330,53],"./2018-07-26-07-00-1.4.9-Release.md":[331,54],"./2018-08-02-10-00-1.4.10-Release.md":[332,55],"./2018-08-09-10-00-1.4.11-Release.md":[333,56],"./2018-08-16-10-00-1.4.12-Release.md":[334,57],"./2018-08-23-10-00-1.4.13-Release.md":[335,58],"./2018-08-30-10-00-1.4.15-Release.md":[336,59],"./2018-09-06-10-00-1.4.16-Release.md":[337,60],"./2018-09-13-10-00-1.4.17-Release.md":[338,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[339,62],"./2018-09-20-10-00-1.4.18-Release.md":[340,63],"./2018-09-27-10-00-1.4.19-Release.md":[341,64],"./2018-10-04-10-00-1.4.20-Release.md":[342,65],"./2018-10-11-10-00-1.4.21-Release.md":[343,66],"./2018-10-18-10-00-1.4.22-Release.md":[344,67],"./2018-10-25-10-00-1.4.23-Release.md":[345,68],"./2018-11-01-10-00-1.4.24-Release.md":[346,69],"./2018-11-08-10-00-1.4.25-Release.md":[347,70],"./2018-11-15-10-00-1.4.26-Release.md":[348,71],"./2018-11-16-12-00-1.5.0-Release.md":[349,72],"./2018-11-22-10-00-1.5.1-Release.md":[350,73],"./2018-11-29-10-00-1.5.2-Release.md":[351,74],"./2018-12-06-10-00-1.5.3-Release.md":[352,75],"./2018-12-13-10-00-1.5.4-Release.md":[353,76],"./2018-12-20-10-00-1.5.5-Release.md":[354,77],"./2019-01-03-10-00-1.5.6-Release.md":[355,78],"./2019-01-10-10-00-1.5.7-Release.md":[356,79],"./2019-01-17-10-00-1.5.8-Release.md":[357,80],"./2019-01-24-10-00-1.5.9-Release.md":[358,81],"./2019-01-31-10-00-1.5.10-Release.md":[359,82],"./2019-02-07-10-00-1.5.11-Release.md":[360,83],"./2019-02-14-10-00-1.5.12-Release.md":[361,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[362,85],"./2019-02-21-10-00-1.5.13-Release.md":[363,86],"./2019-02-28-10-00-1.5.14-Release.md":[364,87],"./2019-03-07-10-00-1.5.15-Release.md":[365,88],"./2019-03-14-10-00-1.5.16-Release.md":[366,89],"./2019-03-21-12-00-1.5.17-Release.md":[367,90],"./2019-03-28-10-00-1.5.18-Release.md":[368,91],"./2019-04-11-10-00-1.5.19-Release.md":[369,92],"./2019-04-18-10-00-1.5.20-Release.md":[370,93],"./2019-04-25-10-00-1.5.21-Release.md":[371,94],"./2019-05-03-10-00-1.5.22-Release.md":[372,95],"./2019-05-16-10-00-1.5.23-Release.md":[373,96],"./2019-05-30-10-00-1.5.25-Release.md":[374,97],"./2019-06-06-10-00-1.5.26-Release.md":[375,98],"./2019-06-20-10-00-1.5.27-Release.md":[376,99],"./2019-07-04-10-00-1.5.28-Release.md":[377,100],"./2019-07-18-10-00-1.5.29-Release.md":[378,101],"./2019-08-01-10-00-1.5.30-Release.md":[379,102],"./2019-08-15-10-00-1.5.31-Release.md":[380,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[381,104],"./2019-08-29-10-00-1.5.32-Release.md":[382,105],"./2019-09-12-10-00-1.5.33-Release.md":[383,106],"./2019-09-26-10-00-1.5.34-Release.md":[384,107],"./2019-10-02-10-00-1.5.35-Release.md":[385,108],"./2019-10-17-10-00-1.5.36-Release.md":[386,109],"./2019-10-30-10-00-1.5.37-Release.md":[387,110],"./2019-11-14-10-00-1.5.40-Release.md":[388,111],"./2019-11-28-10-00-1.5.42-Release.md":[389,112],"./2019-12-16-10-00-1.5.43-Release.md":[390,113],"./2019-12-19-10-00-1.6.0-Release.md":[391,114],"./2020-01-09-10-00-1.6.1-Release.md":[392,115],"./2020-01-16-10-00-1.6.2-Release.md":[393,116],"./2020-01-22-10-00-1.6.4-Release.md":[394,117],"./2020-01-29-10-00-1.6.5-Release.md":[395,118],"./2020-02-13-10-00-1.6.6-Release.md":[396,119],"./2020-02-27-10-00-1.6.8-Release.md":[397,120],"./2020-03-05-10-00-1.6.9-Release.md":[398,121],"./2020-03-26-10-00-1.6.10-Release.md":[399,122],"./2020-04-16-10-00-1.6.11-Release.md":[400,123],"./2020-05-01-10-00-1.6.13-Release.md":[401,124],"./2020-05-09-10-00-1.6.14-Release.md":[402,125],"./2020-05-28-10-00-1.6.17-Release.md":[403,126],"./2020-06-12-10-00-1.6.19-Release.md":[404,127],"./2020-06-18-10-00-1.6.20-Release.md":[405,128],"./2020-06-25-10-00-1.6.21-Release.md":[406,129],"./2020-07-16-10-00-1.6.22-Release.md":[407,130],"./2020-07-23-10-00-1.6.23-Release.md":[408,131],"./2020-08-26-10-00-1.6.25-Release.md":[409,132],"./2020-09-23-10-00-1.6.27-Release.md":[410,133],"./2020-10-07-10-00-1.6.28-Release.md":[411,134],"./2020-11-11-10-00-1.6.31-Release.md":[412,135],"./2020-12-02-10-00-1.6.33-Release.md":[413,136],"./2021-01-06-10-00-1.6.36-Release.md":[414,137],"./2021-01-27-10-00-1.6.38-Release.md":[415,138],"./2021-02-13-00-00-1.7.0-Release.md":[416,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[417,140],"./2021-03-24-10-00-1.7.3-Release.md":[418,141],"./2021-05-12-10-00-1.7.7-Release.md":[419,142],"./2021-05-28-10-00-1.7.10-Release.md":[420,143],"./2021-06-23-10-00-1.7.13-Release.md":[421,144],"./2021-07-14-10-00-1.7.16-Release.md":[422,145],"./2021-07-21-10-00-1.7.17-Release.md":[423,146],"./2021-09-06-10-00-1.7.22-Release.md":[424,147],"./2021-10-06-10-00-1.7.25-Release.md":[425,148],"./2021-10-28-19-00-1.8.0-Release.md":[426,149],"./2021-12-16-19-00-1.8.7-Release.md":[427,150],"./2022-03-09-19-00-1.8.13-Release.md":[428,151],"./2022-05-11-19-00-1.8.19-Release.md":[429,152],"./2022-06-17-19-00-1.8.24-Release.md":[430,153],"./2022-07-13-19-00-1.8.27-Release.md":[431,154],"./2022-08-21-19-00-1.8.31-Release.md":[432,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[433,156],"./2022-10-05-15-00-1.9.0-Release.md":[434,157],"./2022-12-07-15-00-1.9.5-Release.md":[435,158],"./2023-01-22-10-00-security-incident-jan21.md":[436,159],"./2023-02-18-15-00-1.9.11-Release.md":[437,160],"./2023-05-13-15-00-1.10.0-Release.md":[438,161],"./2023-07-01-15-00-1.10.6-Release.md":[439,162],"./2023-09-09-15-00-1.10.12-Release.md":[440,163],"./2023-11-05-10-00-1.10.15-Release.md":[441,164],"./2024-02-24-23-00-1.10.23-Release.md":[442,165],"./2024-03-21-23-00-1.10.25-Release.md":[443,166]};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=284,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(289),i(133),i(27)),a=i(290),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(291),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.aa61be93.chunk.js.map \ No newline at end of file diff --git a/static/js/4.aa61be93.chunk.js.map b/static/js/4.aa61be93.chunk.js.map deleted file mode 100644 index 80895ea792..0000000000 --- a/static/js/4.aa61be93.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":"6IAoBeA,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,wCCoBEc,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,8BCb3D,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,mEC/C9E,0FAEA,MAAMsB,EAAOC,OAEVC,OACAC,OACAC,UACAC,OAAO,CAACC,EAAMC,KAEb,MAAMC,EAASC,IAAUF,GAgBzB,OAAOD,EAAKI,IAAIF,EAAOpE,GAAGuE,cAdTC,IASR,OAAQ,KAA8BJ,EAAOK,WAAWvC,KARhDwC,IACN,CACL1E,GAAIoE,EAAOpE,GACXsD,KAAMc,EAAOd,QACVoB,OAUR,IAAIC,KAEIC,EAAU5E,IACrB,MAAM6E,EAAOjB,EAAKkB,IAAI9E,EAAGuE,eAEzB,OAAIM,EACKA,IAGF5C,QAAQ8C,QAAQ,KAGZC,EAASC,UACpB,MAAMC,EAAStB,EAAKsB,SAEpB,IAAK,IAAIhC,KAASgC,EAAQ,CACxB,MAAML,QAAa3B,IAEnB,IAAI2B,EAAKM,eAAe,UAAWN,EAAKO,KAIxC,OAAOP,EAGT,MAAO,IAGMjB,O,cCtDfR,EAAOC,QAAUoB,IAKf,MAAMY,GAHNZ,EAAOA,EAAKa,MAAM,mBAAmB,IAGNA,MAAM,0CAGrC,IACGD,IACAA,EAAkB,KAClBA,EAAkB,KAClBA,EAAkB,GAEnB,MAAM,IAAIE,MAAM,8CAIlB,MAAMC,EAAaH,EAAkB,GAC/BI,EAAaJ,EAAkB,GAE/BrF,EAAKwF,EADGH,EAAkB,GAG1BK,GADWF,EAAa,IAAMC,GACTE,MAAM,KAkBjC,MAAO,CACLrC,KAhBW,IAAIC,KACfA,KAAKqC,IAEHC,SAASH,EAAU,GAAI,IAEvBG,SAASH,EAAU,GAAI,IAAM,EAE7BG,SAASH,EAAU,GAAI,IAEvBG,SAASH,EAAU,GAAI,IAEvBG,SAASH,EAAU,GAAI,MAMzB1F,KACAyE,U,gBC5CJ,IAAIqB,EAAM,CACT,iCAAkC,IAClC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,wDAAyD,IACzD,+DAAgE,IAChE,iEAAkE,IAClE,sCAAuC,IACvC,sCAAuC,IACvC,0CAA2C,IAC3C,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,6CAA8C,IAC9C,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,+CAAgD,IAChD,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,+CAAgD,IAChD,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,sCAAuC,IACvC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,sCAAuC,IACvC,4CAA6C,IAC7C,sCAAuC,IACvC,sCAAuC,IACvC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,sCAAuC,IACvC,sCAAuC,IACvC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,4EAA6E,IAC7E,sCAAuC,IACvC,sCAAuC,IACvC,gDAAiD,IACjD,uCAAwC,IACxC,uCAAwC,IACxC,uCAAwC,IACxC,wCAAyC,IACzC,wCAAyC,IACzC,wCAAyC,IACzC,wCAAyC,KAI1C,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,g0ECxKpB,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,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,mDChmBjB,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,KAA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","file":"static/js/4.aa61be93.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n
\n
\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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283\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\t297,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t298,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t299,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t300,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t301,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t302,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t303,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t304,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t305,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t306,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t307,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t308,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t309,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t310,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t311,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t312,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t313,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t314,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t315,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t316,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t320,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t321,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t322,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t323,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t324,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t325,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t326,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t327,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t328,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t329,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t330,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t331,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t332,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t333,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t334,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t335,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t336,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t337,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t338,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t339,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t340,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t341,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t342,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t343,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t344,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t345,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t346,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t347,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t348,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t349,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t350,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t351,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t352,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t353,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t354,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t355,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t356,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t357,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t358,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t359,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t360,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t361,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t362,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t363,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t364,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t365,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t366,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t367,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t368,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t369,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t370,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t371,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t372,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t373,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t374,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t375,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t376,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t377,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t378,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t379,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t380,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t381,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t382,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t383,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t384,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t385,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t386,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t387,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t388,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t389,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t390,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t391,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t392,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t393,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t394,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t395,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t396,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t397,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t398,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t399,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t400,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t401,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t402,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t403,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t404,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t405,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t406,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t407,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t408,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t409,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t410,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t411,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t412,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t413,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t414,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t415,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t416,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t417,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t418,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t419,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t420,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t421,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t422,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t423,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t424,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t425,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t426,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t427,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t428,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t429,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t430,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t431,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t432,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t433,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t434,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t435,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t436,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t437,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t438,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t439,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t440,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t441,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t442,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t443,\n\t\t166\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 = 284;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n
\n
\n {title}\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 RUNELITE.NET\n

\n

{description}

\n\n \n Contribute\n \n\n
\n
\n {downloadButtons.map(({ link, icon, text }) => (\n \n Download\n {showDetail && text.arch ? ' (' + text.arch + ')' : ''}\n \n ))}\n
\n \n Toggle Dropdown\n \n
\n {buttons.map(({ link, icon, text }) => (\n \n Download for {text.os}{' '}\n {text.arch ? ' (' + text.arch + ')' : ''}\n \n ))}\n
\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

FEATURES

\n \n

SHOW ALL FEATURES

\n \n\n
\n {features\n .filter(feature => feature.home)\n .map(feature => (\n \n ))}\n
\n
\n
\n\n
\n
\n

LATEST NEWS

\n \n

SHOW ALL NEWS

\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.c7f743bf.chunk.js b/static/js/4.c7f743bf.chunk.js new file mode 100644 index 0000000000..e11b4c25c9 --- /dev/null +++ b/static/js/4.c7f743bf.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(285)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283,"./2024-04-17-23-00-1.10.27-Release.md":284};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){},function(e,t){},function(e,t,i){var n={"./2017-12-13-00-00-New-Site.md":[298,20],"./2017-12-21-00-00-1.2.10-Release.md":[299,21],"./2018-01-12-00-00-1.2.11-Release.md":[300,22],"./2018-01-18-00-00-1.2.12-Release.md":[301,23],"./2018-01-25-00-00-1.2.13-Release.md":[302,24],"./2018-02-01-00-00-1.2.14-Release.md":[303,25],"./2018-02-08-00-00-1.2.15-Release.md":[304,26],"./2018-02-15-00-00-1.2.16-Release.md":[305,27],"./2018-02-22-00-00-1.2.17-Release.md":[306,28],"./2018-03-01-00-00-1.2.18-Release.md":[307,29],"./2018-03-08-00-00-1.2.19-Release.md":[308,30],"./2018-03-15-00-00-1.3.0-Release.md":[309,31],"./2018-03-22-00-00-1.3.1-Release.md":[310,32],"./2018-03-29-00-00-1.3.2-Release.md":[311,33],"./2018-04-05-00-00-1.3.3-Release.md":[312,34],"./2018-04-12-00-00-1.3.4-Release.md":[313,35],"./2018-04-19-00-00-1.3.5-Release.md":[314,36],"./2018-04-26-00-00-1.3.6-Release.md":[315,37],"./2018-05-03-00-00-1.3.7-Release.md":[316,38],"./2018-05-10-00-00-1.3.8-Release.md":[317,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[318,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[319,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[320,42],"./2018-05-18-00-00-1.3.9-Release.md":[321,43],"./2018-05-24-00-00-1.4.0-Release.md":[322,44],"./2018-05-25-23-00-Phishing-Attempts.md":[323,45],"./2018-05-31-07-00-1.4.1-Release.md":[324,46],"./2018-06-07-07-00-1.4.2-Release.md":[325,47],"./2018-06-14-07-00-1.4.3-Release.md":[326,48],"./2018-06-21-07-00-1.4.4-Release.md":[327,49],"./2018-06-28-07-00-1.4.5-Release.md":[328,50],"./2018-07-05-07-00-1.4.6-Release.md":[329,51],"./2018-07-12-07-00-1.4.7-Release.md":[330,52],"./2018-07-19-07-00-1.4.8-Release.md":[331,53],"./2018-07-26-07-00-1.4.9-Release.md":[332,54],"./2018-08-02-10-00-1.4.10-Release.md":[333,55],"./2018-08-09-10-00-1.4.11-Release.md":[334,56],"./2018-08-16-10-00-1.4.12-Release.md":[335,57],"./2018-08-23-10-00-1.4.13-Release.md":[336,58],"./2018-08-30-10-00-1.4.15-Release.md":[337,59],"./2018-09-06-10-00-1.4.16-Release.md":[338,60],"./2018-09-13-10-00-1.4.17-Release.md":[339,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[340,62],"./2018-09-20-10-00-1.4.18-Release.md":[341,63],"./2018-09-27-10-00-1.4.19-Release.md":[342,64],"./2018-10-04-10-00-1.4.20-Release.md":[343,65],"./2018-10-11-10-00-1.4.21-Release.md":[344,66],"./2018-10-18-10-00-1.4.22-Release.md":[345,67],"./2018-10-25-10-00-1.4.23-Release.md":[346,68],"./2018-11-01-10-00-1.4.24-Release.md":[347,69],"./2018-11-08-10-00-1.4.25-Release.md":[348,70],"./2018-11-15-10-00-1.4.26-Release.md":[349,71],"./2018-11-16-12-00-1.5.0-Release.md":[350,72],"./2018-11-22-10-00-1.5.1-Release.md":[351,73],"./2018-11-29-10-00-1.5.2-Release.md":[352,74],"./2018-12-06-10-00-1.5.3-Release.md":[353,75],"./2018-12-13-10-00-1.5.4-Release.md":[354,76],"./2018-12-20-10-00-1.5.5-Release.md":[355,77],"./2019-01-03-10-00-1.5.6-Release.md":[356,78],"./2019-01-10-10-00-1.5.7-Release.md":[357,79],"./2019-01-17-10-00-1.5.8-Release.md":[358,80],"./2019-01-24-10-00-1.5.9-Release.md":[359,81],"./2019-01-31-10-00-1.5.10-Release.md":[360,82],"./2019-02-07-10-00-1.5.11-Release.md":[361,83],"./2019-02-14-10-00-1.5.12-Release.md":[362,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[363,85],"./2019-02-21-10-00-1.5.13-Release.md":[364,86],"./2019-02-28-10-00-1.5.14-Release.md":[365,87],"./2019-03-07-10-00-1.5.15-Release.md":[366,88],"./2019-03-14-10-00-1.5.16-Release.md":[367,89],"./2019-03-21-12-00-1.5.17-Release.md":[368,90],"./2019-03-28-10-00-1.5.18-Release.md":[369,91],"./2019-04-11-10-00-1.5.19-Release.md":[370,92],"./2019-04-18-10-00-1.5.20-Release.md":[371,93],"./2019-04-25-10-00-1.5.21-Release.md":[372,94],"./2019-05-03-10-00-1.5.22-Release.md":[373,95],"./2019-05-16-10-00-1.5.23-Release.md":[374,96],"./2019-05-30-10-00-1.5.25-Release.md":[375,97],"./2019-06-06-10-00-1.5.26-Release.md":[376,98],"./2019-06-20-10-00-1.5.27-Release.md":[377,99],"./2019-07-04-10-00-1.5.28-Release.md":[378,100],"./2019-07-18-10-00-1.5.29-Release.md":[379,101],"./2019-08-01-10-00-1.5.30-Release.md":[380,102],"./2019-08-15-10-00-1.5.31-Release.md":[381,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[382,104],"./2019-08-29-10-00-1.5.32-Release.md":[383,105],"./2019-09-12-10-00-1.5.33-Release.md":[384,106],"./2019-09-26-10-00-1.5.34-Release.md":[385,107],"./2019-10-02-10-00-1.5.35-Release.md":[386,108],"./2019-10-17-10-00-1.5.36-Release.md":[387,109],"./2019-10-30-10-00-1.5.37-Release.md":[388,110],"./2019-11-14-10-00-1.5.40-Release.md":[389,111],"./2019-11-28-10-00-1.5.42-Release.md":[390,112],"./2019-12-16-10-00-1.5.43-Release.md":[391,113],"./2019-12-19-10-00-1.6.0-Release.md":[392,114],"./2020-01-09-10-00-1.6.1-Release.md":[393,115],"./2020-01-16-10-00-1.6.2-Release.md":[394,116],"./2020-01-22-10-00-1.6.4-Release.md":[395,117],"./2020-01-29-10-00-1.6.5-Release.md":[396,118],"./2020-02-13-10-00-1.6.6-Release.md":[397,119],"./2020-02-27-10-00-1.6.8-Release.md":[398,120],"./2020-03-05-10-00-1.6.9-Release.md":[399,121],"./2020-03-26-10-00-1.6.10-Release.md":[400,122],"./2020-04-16-10-00-1.6.11-Release.md":[401,123],"./2020-05-01-10-00-1.6.13-Release.md":[402,124],"./2020-05-09-10-00-1.6.14-Release.md":[403,125],"./2020-05-28-10-00-1.6.17-Release.md":[404,126],"./2020-06-12-10-00-1.6.19-Release.md":[405,127],"./2020-06-18-10-00-1.6.20-Release.md":[406,128],"./2020-06-25-10-00-1.6.21-Release.md":[407,129],"./2020-07-16-10-00-1.6.22-Release.md":[408,130],"./2020-07-23-10-00-1.6.23-Release.md":[409,131],"./2020-08-26-10-00-1.6.25-Release.md":[410,132],"./2020-09-23-10-00-1.6.27-Release.md":[411,133],"./2020-10-07-10-00-1.6.28-Release.md":[412,134],"./2020-11-11-10-00-1.6.31-Release.md":[413,135],"./2020-12-02-10-00-1.6.33-Release.md":[414,136],"./2021-01-06-10-00-1.6.36-Release.md":[415,137],"./2021-01-27-10-00-1.6.38-Release.md":[416,138],"./2021-02-13-00-00-1.7.0-Release.md":[417,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[418,140],"./2021-03-24-10-00-1.7.3-Release.md":[419,141],"./2021-05-12-10-00-1.7.7-Release.md":[420,142],"./2021-05-28-10-00-1.7.10-Release.md":[421,143],"./2021-06-23-10-00-1.7.13-Release.md":[422,144],"./2021-07-14-10-00-1.7.16-Release.md":[423,145],"./2021-07-21-10-00-1.7.17-Release.md":[424,146],"./2021-09-06-10-00-1.7.22-Release.md":[425,147],"./2021-10-06-10-00-1.7.25-Release.md":[426,148],"./2021-10-28-19-00-1.8.0-Release.md":[427,149],"./2021-12-16-19-00-1.8.7-Release.md":[428,150],"./2022-03-09-19-00-1.8.13-Release.md":[429,151],"./2022-05-11-19-00-1.8.19-Release.md":[430,152],"./2022-06-17-19-00-1.8.24-Release.md":[431,153],"./2022-07-13-19-00-1.8.27-Release.md":[432,154],"./2022-08-21-19-00-1.8.31-Release.md":[433,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[434,156],"./2022-10-05-15-00-1.9.0-Release.md":[435,157],"./2022-12-07-15-00-1.9.5-Release.md":[436,158],"./2023-01-22-10-00-security-incident-jan21.md":[437,159],"./2023-02-18-15-00-1.9.11-Release.md":[438,160],"./2023-05-13-15-00-1.10.0-Release.md":[439,161],"./2023-07-01-15-00-1.10.6-Release.md":[440,162],"./2023-09-09-15-00-1.10.12-Release.md":[441,163],"./2023-11-05-10-00-1.10.15-Release.md":[442,164],"./2024-02-24-23-00-1.10.23-Release.md":[443,165],"./2024-03-21-23-00-1.10.25-Release.md":[444,166],"./2024-04-17-23-00-1.10.27-Release.md":[445,167]};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=285,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(290),i(133),i(27)),a=i(291),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(292),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.c7f743bf.chunk.js.map \ No newline at end of file diff --git a/static/js/4.c7f743bf.chunk.js.map b/static/js/4.c7f743bf.chunk.js.map new file mode 100644 index 0000000000..b5339015d7 --- /dev/null +++ b/static/js/4.c7f743bf.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,wCAAyC,IACzC,wCAAyC,KAI1C,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,g1ECzKpB,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,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,mDCpmBjB,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,MA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","file":"static/js/4.c7f743bf.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283,\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": 284\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\t298,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t299,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t300,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t301,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t302,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t303,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t304,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t305,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t306,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t307,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t308,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t309,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t310,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t311,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t312,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t313,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t314,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t315,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t316,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t317,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t320,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t321,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t322,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t323,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t324,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t325,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t326,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t327,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t328,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t329,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t330,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t331,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t332,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t333,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t334,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t335,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t336,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t337,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t338,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t339,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t340,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t341,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t342,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t343,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t344,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t345,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t346,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t347,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t348,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t349,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t350,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t351,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t352,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t353,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t354,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t355,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t356,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t357,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t358,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t359,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t360,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t361,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t362,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t363,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t364,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t365,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t366,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t367,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t368,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t369,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t370,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t371,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t372,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t373,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t374,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t375,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t376,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t377,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t378,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t379,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t380,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t381,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t382,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t383,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t384,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t385,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t386,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t387,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t388,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t389,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t390,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t391,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t392,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t393,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t394,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t395,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t396,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t397,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t398,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t399,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t400,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t401,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t402,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t403,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t404,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t405,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t406,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t407,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t408,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t409,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t410,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t411,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t412,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t413,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t414,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t415,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t416,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t417,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t418,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t419,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t420,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t421,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t422,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t423,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t424,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t425,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t426,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t427,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t428,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t429,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t430,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t431,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t432,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t433,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t434,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t435,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t436,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t437,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t438,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t439,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t440,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t441,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t442,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t443,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t444,\n\t\t166\n\t],\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": [\n\t\t445,\n\t\t167\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 = 285;\nmodule.exports = webpackAsyncContext;","import { h } from 'preact'\nimport './feature.scss'\n\nconst Feature = ({ image, title, description, link, linkAlt }) => (\n
\n
\n {title}\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 RUNELITE.NET\n

\n

{description}

\n\n \n Contribute\n \n\n
\n
\n {downloadButtons.map(({ link, icon, text }) => (\n \n Download\n {showDetail && text.arch ? ' (' + text.arch + ')' : ''}\n \n ))}\n
\n \n Toggle Dropdown\n \n
\n {buttons.map(({ link, icon, text }) => (\n \n Download for {text.os}{' '}\n {text.arch ? ' (' + text.arch + ')' : ''}\n \n ))}\n
\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

FEATURES

\n \n

SHOW ALL FEATURES

\n \n\n
\n {features\n .filter(feature => feature.home)\n .map(feature => (\n \n ))}\n
\n
\n
\n\n
\n
\n

LATEST NEWS

\n \n

SHOW ALL NEWS

\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.9aaf62be.chunk.js b/static/js/40.a15a7621.chunk.js similarity index 94% rename from static/js/40.9aaf62be.chunk.js rename to static/js/40.a15a7621.chunk.js index edf1ce3759..d2b5645b22 100644 --- a/static/js/40.9aaf62be.chunk.js +++ b/static/js/40.a15a7621.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[40],{317: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.

\n

I 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.

\n

I was also informed that they were "working on" shutting down both OSB and\nKonduit, and that I was the "first" to be contacted.

\n

RuneLite 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.

\n

While 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.

\n

Jagex, 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.

\n

If anyone within the community happens to be a (copyright) lawyer, please\ncontact me.

\n

- Adam

\n"}}}]); -//# sourceMappingURL=40.9aaf62be.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[40],{318: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.

\n

I 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.

\n

I was also informed that they were "working on" shutting down both OSB and\nKonduit, and that I was the "first" to be contacted.

\n

RuneLite 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.

\n

While 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.

\n

Jagex, 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.

\n

If anyone within the community happens to be a (copyright) lawyer, please\ncontact me.

\n

- Adam

\n"}}}]); +//# sourceMappingURL=40.a15a7621.chunk.js.map \ No newline at end of file diff --git a/static/js/40.9aaf62be.chunk.js.map b/static/js/40.a15a7621.chunk.js.map similarity index 97% rename from static/js/40.9aaf62be.chunk.js.map rename to static/js/40.a15a7621.chunk.js.map index 7e054446e4..5c0990e807 100644 --- a/static/js/40.9aaf62be.chunk.js.map +++ b/static/js/40.a15a7621.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.9aaf62be.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.

\\n

I 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.

\\n

I was also informed that they were "working on" shutting down both OSB and\\nKonduit, and that I was the "first" to be contacted.

\\n

RuneLite 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.

\\n

While 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.

\\n

Jagex, 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.

\\n

If 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.a15a7621.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.

\\n

I 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.

\\n

I was also informed that they were "working on" shutting down both OSB and\\nKonduit, and that I was the "first" to be contacted.

\\n

RuneLite 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.

\\n

While 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.

\\n

Jagex, 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.

\\n

If 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.592215a6.chunk.js b/static/js/41.5172a0ab.chunk.js similarity index 95% rename from static/js/41.592215a6.chunk.js rename to static/js/41.5172a0ab.chunk.js index 4457194df4..a99a4c0b01 100644 --- a/static/js/41.592215a6.chunk.js +++ b/static/js/41.5172a0ab.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[41],{318: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.

\n

It is unfortunate the only way I seem to be able to have any meaningful\ndiscussion with Jagex is via loud blog posts.

\n

I 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.".

\n

So, I have stripped the aforementioned tools and RuneScape client from GitHub. I\nwill be removing the other distributions off of the server shortly.

\n

Unfortunately 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.

\n

I 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.

\n

Regarding "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.

\n

Jagex, 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.

\n

There 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.592215a6.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[41],{319: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.

\n

It is unfortunate the only way I seem to be able to have any meaningful\ndiscussion with Jagex is via loud blog posts.

\n

I 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.".

\n

So, I have stripped the aforementioned tools and RuneScape client from GitHub. I\nwill be removing the other distributions off of the server shortly.

\n

Unfortunately 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.

\n

I 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.

\n

Regarding "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.

\n

Jagex, 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.

\n

There 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.5172a0ab.chunk.js.map \ No newline at end of file diff --git a/static/js/41.592215a6.chunk.js.map b/static/js/41.5172a0ab.chunk.js.map similarity index 97% rename from static/js/41.592215a6.chunk.js.map rename to static/js/41.5172a0ab.chunk.js.map index 779cc43845..75bd276a6f 100644 --- a/static/js/41.592215a6.chunk.js.map +++ b/static/js/41.5172a0ab.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.592215a6.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.

\\n

It is unfortunate the only way I seem to be able to have any meaningful\\ndiscussion with Jagex is via loud blog posts.

\\n

I 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.".

\\n

So, I have stripped the aforementioned tools and RuneScape client from GitHub. I\\nwill be removing the other distributions off of the server shortly.

\\n

Unfortunately 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.

\\n

I 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.

\\n

Regarding "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.

\\n

Jagex, 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.

\\n

There 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.5172a0ab.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.

\\n

It is unfortunate the only way I seem to be able to have any meaningful\\ndiscussion with Jagex is via loud blog posts.

\\n

I 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.".

\\n

So, I have stripped the aforementioned tools and RuneScape client from GitHub. I\\nwill be removing the other distributions off of the server shortly.

\\n

Unfortunately 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.

\\n

I 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.

\\n

Regarding "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.

\\n

Jagex, 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.

\\n

There 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.903c5167.chunk.js b/static/js/42.b64f47e5.chunk.js similarity index 91% rename from static/js/42.903c5167.chunk.js rename to static/js/42.b64f47e5.chunk.js index d637d84b55..924a133057 100644 --- a/static/js/42.903c5167.chunk.js +++ b/static/js/42.b64f47e5.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[42],{319: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.

\n

The 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.

\n

What 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.

\n

The 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.

\n

Hopefully it gets better from here...

\n

- Adam

\n"}}}]); -//# sourceMappingURL=42.903c5167.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[42],{320: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.

\n

The 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.

\n

What 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.

\n

The 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.

\n

Hopefully it gets better from here...

\n

- Adam

\n"}}}]); +//# sourceMappingURL=42.b64f47e5.chunk.js.map \ No newline at end of file diff --git a/static/js/42.903c5167.chunk.js.map b/static/js/42.b64f47e5.chunk.js.map similarity index 95% rename from static/js/42.903c5167.chunk.js.map rename to static/js/42.b64f47e5.chunk.js.map index 1038bd44b7..7f1be7fbdc 100644 --- a/static/js/42.903c5167.chunk.js.map +++ b/static/js/42.b64f47e5.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.903c5167.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.

\\n

The 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.

\\n

What 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.

\\n

The 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.

\\n

Hopefully 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.b64f47e5.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.

\\n

The 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.

\\n

What 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.

\\n

The 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.

\\n

Hopefully it gets better from here...

\\n

- Adam

\\n\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/43.b1e16791.chunk.js b/static/js/43.7b5e24c0.chunk.js similarity index 98% rename from static/js/43.b1e16791.chunk.js rename to static/js/43.7b5e24c0.chunk.js index e9eba327ca..3514690a39 100644 --- a/static/js/43.b1e16791.chunk.js +++ b/static/js/43.7b5e24c0.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[43],{320: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.

\n

I 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.

\n

Hot/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

hotcold

\n

@Kruithne has added a skill calculator plugin.

\n

skillcalc

\n

An 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The opponent info plugin now displays approximate players hitpoints instead of\na percentage
  • \n
  • Show GE and high alch prices on shop items when examined
  • \n
  • Made existing config option for higlighting marks of grace also affect overlay\ncolor
  • \n
  • Add trap obstacles to agility plugin
  • \n
  • Fix motherlode mine plugin when it is enabled when inside of the mine
  • \n
  • Mitigate a rare crash in the official client at certain areas ingame
  • \n
  • Add a tooltip font type configuration option
  • \n
  • Auto complete hiscore lookups based on friends, clan members, and players
  • \n
\n

Also thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\nclue fixes.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
Adam (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.b1e16791.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[43],{321: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.

\n

I 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.

\n

Hot/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

hotcold

\n

@Kruithne has added a skill calculator plugin.

\n

skillcalc

\n

An 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The opponent info plugin now displays approximate players hitpoints instead of\na percentage
  • \n
  • Show GE and high alch prices on shop items when examined
  • \n
  • Made existing config option for higlighting marks of grace also affect overlay\ncolor
  • \n
  • Add trap obstacles to agility plugin
  • \n
  • Fix motherlode mine plugin when it is enabled when inside of the mine
  • \n
  • Mitigate a rare crash in the official client at certain areas ingame
  • \n
  • Add a tooltip font type configuration option
  • \n
  • Auto complete hiscore lookups based on friends, clan members, and players
  • \n
\n

Also thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\nclue fixes.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 22 contributors this release!

\n
Adam (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.7b5e24c0.chunk.js.map \ No newline at end of file diff --git a/static/js/43.b1e16791.chunk.js.map b/static/js/43.7b5e24c0.chunk.js.map similarity index 99% rename from static/js/43.b1e16791.chunk.js.map rename to static/js/43.7b5e24c0.chunk.js.map index 3caad89ca4..71b6e278dd 100644 --- a/static/js/43.b1e16791.chunk.js.map +++ b/static/js/43.7b5e24c0.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.b1e16791.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.

\\n

I 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.

\\n

Hot/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

\\\"hotcold\\\"

\\n

@Kruithne has added a skill calculator plugin.

\\n

\\\"skillcalc\\\"

\\n

An 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The opponent info plugin now displays approximate players hitpoints instead of\\na percentage
  • \\n
  • Show GE and high alch prices on shop items when examined
  • \\n
  • Made existing config option for higlighting marks of grace also affect overlay\\ncolor
  • \\n
  • Add trap obstacles to agility plugin
  • \\n
  • Fix motherlode mine plugin when it is enabled when inside of the mine
  • \\n
  • Mitigate a rare crash in the official client at certain areas ingame
  • \\n
  • Add a tooltip font type configuration option
  • \\n
  • Auto complete hiscore lookups based on friends, clan members, and players
  • \\n
\\n

Also thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\\nclue fixes.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
Adam (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.7b5e24c0.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.

\\n

I 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.

\\n

Hot/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

\\\"hotcold\\\"

\\n

@Kruithne has added a skill calculator plugin.

\\n

\\\"skillcalc\\\"

\\n

An 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The opponent info plugin now displays approximate players hitpoints instead of\\na percentage
  • \\n
  • Show GE and high alch prices on shop items when examined
  • \\n
  • Made existing config option for higlighting marks of grace also affect overlay\\ncolor
  • \\n
  • Add trap obstacles to agility plugin
  • \\n
  • Fix motherlode mine plugin when it is enabled when inside of the mine
  • \\n
  • Mitigate a rare crash in the official client at certain areas ingame
  • \\n
  • Add a tooltip font type configuration option
  • \\n
  • Auto complete hiscore lookups based on friends, clan members, and players
  • \\n
\\n

Also thanks to trimbe, Shuhao Wu, Jordan Atwood, and Alex Kolpa for contributing\\nclue fixes.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 22 contributors this release!

\\n
Adam (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.0adcba78.chunk.js b/static/js/44.15cb5c09.chunk.js similarity index 98% rename from static/js/44.0adcba78.chunk.js rename to static/js/44.15cb5c09.chunk.js index 14a525d3a6..9a332cd798 100644 --- a/static/js/44.0adcba78.chunk.js +++ b/static/js/44.15cb5c09.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[44],{321: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

obsidian1

\n

obsidian2

\n

obsidian3

\n

obsidian4

\n

An interface style plugin was added to allow switching the 2005 or 2010 game\nframes.

\n

2005

\n

2010

\n

A screenmarker plugin was added to mark areas on the screen.

\n

screenmarker

\n

Support for level goals has been added, that loads the XP/level goals from the\nVanilla goals interface and displays it in XP tracker.

\n

goals

\n

The world map plugin now shows all teleport locations, and detailed requirements\nfor all agility obstacles.

\n

tele

\n

shortcut

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix agility plugin to not show obstacles in Vespula\'s raid room
  • \n
  • Fix impling plugin incorrectly showing imps after a world hop (1.3.9.1)
  • \n
  • Add Corsair Cove fishing spots to fishing plugin
  • \n
  • Add Gu\'Tanoth bridge obstacles to agility plugin
  • \n
  • Improve performance of stretched fixed mode by utilizing volatile images
  • \n
  • Check inventory for required emote clue items too
  • \n
  • Add gem rocks to mining calculator
  • \n
  • Fix plugin toolbar tooltips
  • \n
  • Fix low detail mode sometimes causing game sounds to not load
  • \n
  • Change the anti-drag plugin to only work with shift held
  • \n
  • Fix slayer bracelet charges not updating when there is only one charge left
  • \n
  • Add commas to ground item quantities
  • \n
  • Add Burgh de Rott fishing spots to fishing plugin
  • \n
  • Fix bounds for west bookcases in the Kourend Library (1.3.9.1)
  • \n
  • Add teak garden bench to construction calculator
  • \n
  • A notification and timer were added to the agility plugin for the agility\narena
  • \n
  • XP boosts for bones have been corrected in the skill calculator
  • \n
  • Farming, fishing, herblore, and hunter have been expanded on in the skill\ncalculator
  • \n
\n

Additionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\nAtwood.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Abex (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.0adcba78.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[44],{322: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

obsidian1

\n

obsidian2

\n

obsidian3

\n

obsidian4

\n

An interface style plugin was added to allow switching the 2005 or 2010 game\nframes.

\n

2005

\n

2010

\n

A screenmarker plugin was added to mark areas on the screen.

\n

screenmarker

\n

Support for level goals has been added, that loads the XP/level goals from the\nVanilla goals interface and displays it in XP tracker.

\n

goals

\n

The world map plugin now shows all teleport locations, and detailed requirements\nfor all agility obstacles.

\n

tele

\n

shortcut

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix agility plugin to not show obstacles in Vespula\'s raid room
  • \n
  • Fix impling plugin incorrectly showing imps after a world hop (1.3.9.1)
  • \n
  • Add Corsair Cove fishing spots to fishing plugin
  • \n
  • Add Gu\'Tanoth bridge obstacles to agility plugin
  • \n
  • Improve performance of stretched fixed mode by utilizing volatile images
  • \n
  • Check inventory for required emote clue items too
  • \n
  • Add gem rocks to mining calculator
  • \n
  • Fix plugin toolbar tooltips
  • \n
  • Fix low detail mode sometimes causing game sounds to not load
  • \n
  • Change the anti-drag plugin to only work with shift held
  • \n
  • Fix slayer bracelet charges not updating when there is only one charge left
  • \n
  • Add commas to ground item quantities
  • \n
  • Add Burgh de Rott fishing spots to fishing plugin
  • \n
  • Fix bounds for west bookcases in the Kourend Library (1.3.9.1)
  • \n
  • Add teak garden bench to construction calculator
  • \n
  • A notification and timer were added to the agility plugin for the agility\narena
  • \n
  • XP boosts for bones have been corrected in the skill calculator
  • \n
  • Farming, fishing, herblore, and hunter have been expanded on in the skill\ncalculator
  • \n
\n

Additionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\nAtwood.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Abex (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.15cb5c09.chunk.js.map \ No newline at end of file diff --git a/static/js/44.0adcba78.chunk.js.map b/static/js/44.15cb5c09.chunk.js.map similarity index 99% rename from static/js/44.0adcba78.chunk.js.map rename to static/js/44.15cb5c09.chunk.js.map index dc19e4d917..8d1f6bb51e 100644 --- a/static/js/44.0adcba78.chunk.js.map +++ b/static/js/44.15cb5c09.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.0adcba78.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

\\\"obsidian1\\\"

\\n

\\\"obsidian2\\\"

\\n

\\\"obsidian3\\\"

\\n

\\\"obsidian4\\\"

\\n

An interface style plugin was added to allow switching the 2005 or 2010 game\\nframes.

\\n

\\\"2005\\\"

\\n

\\\"2010\\\"

\\n

A screenmarker plugin was added to mark areas on the screen.

\\n

\\\"screenmarker\\\"

\\n

Support for level goals has been added, that loads the XP/level goals from the\\nVanilla goals interface and displays it in XP tracker.

\\n

\\\"goals\\\"

\\n

The world map plugin now shows all teleport locations, and detailed requirements\\nfor all agility obstacles.

\\n

\\\"tele\\\"

\\n

\\\"shortcut\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix agility plugin to not show obstacles in Vespula's raid room
  • \\n
  • Fix impling plugin incorrectly showing imps after a world hop (1.3.9.1)
  • \\n
  • Add Corsair Cove fishing spots to fishing plugin
  • \\n
  • Add Gu'Tanoth bridge obstacles to agility plugin
  • \\n
  • Improve performance of stretched fixed mode by utilizing volatile images
  • \\n
  • Check inventory for required emote clue items too
  • \\n
  • Add gem rocks to mining calculator
  • \\n
  • Fix plugin toolbar tooltips
  • \\n
  • Fix low detail mode sometimes causing game sounds to not load
  • \\n
  • Change the anti-drag plugin to only work with shift held
  • \\n
  • Fix slayer bracelet charges not updating when there is only one charge left
  • \\n
  • Add commas to ground item quantities
  • \\n
  • Add Burgh de Rott fishing spots to fishing plugin
  • \\n
  • Fix bounds for west bookcases in the Kourend Library (1.3.9.1)
  • \\n
  • Add teak garden bench to construction calculator
  • \\n
  • A notification and timer were added to the agility plugin for the agility\\narena
  • \\n
  • XP boosts for bones have been corrected in the skill calculator
  • \\n
  • Farming, fishing, herblore, and hunter have been expanded on in the skill\\ncalculator
  • \\n
\\n

Additionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\\nAtwood.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Abex (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.15cb5c09.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

\\\"obsidian1\\\"

\\n

\\\"obsidian2\\\"

\\n

\\\"obsidian3\\\"

\\n

\\\"obsidian4\\\"

\\n

An interface style plugin was added to allow switching the 2005 or 2010 game\\nframes.

\\n

\\\"2005\\\"

\\n

\\\"2010\\\"

\\n

A screenmarker plugin was added to mark areas on the screen.

\\n

\\\"screenmarker\\\"

\\n

Support for level goals has been added, that loads the XP/level goals from the\\nVanilla goals interface and displays it in XP tracker.

\\n

\\\"goals\\\"

\\n

The world map plugin now shows all teleport locations, and detailed requirements\\nfor all agility obstacles.

\\n

\\\"tele\\\"

\\n

\\\"shortcut\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix agility plugin to not show obstacles in Vespula's raid room
  • \\n
  • Fix impling plugin incorrectly showing imps after a world hop (1.3.9.1)
  • \\n
  • Add Corsair Cove fishing spots to fishing plugin
  • \\n
  • Add Gu'Tanoth bridge obstacles to agility plugin
  • \\n
  • Improve performance of stretched fixed mode by utilizing volatile images
  • \\n
  • Check inventory for required emote clue items too
  • \\n
  • Add gem rocks to mining calculator
  • \\n
  • Fix plugin toolbar tooltips
  • \\n
  • Fix low detail mode sometimes causing game sounds to not load
  • \\n
  • Change the anti-drag plugin to only work with shift held
  • \\n
  • Fix slayer bracelet charges not updating when there is only one charge left
  • \\n
  • Add commas to ground item quantities
  • \\n
  • Add Burgh de Rott fishing spots to fishing plugin
  • \\n
  • Fix bounds for west bookcases in the Kourend Library (1.3.9.1)
  • \\n
  • Add teak garden bench to construction calculator
  • \\n
  • A notification and timer were added to the agility plugin for the agility\\narena
  • \\n
  • XP boosts for bones have been corrected in the skill calculator
  • \\n
  • Farming, fishing, herblore, and hunter have been expanded on in the skill\\ncalculator
  • \\n
\\n

Additionally there were clue fixes from user35557, Jouni Pikkarainen, and Jordan\\nAtwood.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Abex (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.c4bbc4cf.chunk.js b/static/js/45.4620406b.chunk.js similarity index 87% rename from static/js/45.c4bbc4cf.chunk.js rename to static/js/45.4620406b.chunk.js index a0f28915a4..d88c74d54b 100644 --- a/static/js/45.c4bbc4cf.chunk.js +++ b/static/js/45.4620406b.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[45],{322: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.

\n

This 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.

\n

I 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.c4bbc4cf.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[45],{323: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.

\n

This 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.

\n

I 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.4620406b.chunk.js.map \ No newline at end of file diff --git a/static/js/45.c4bbc4cf.chunk.js.map b/static/js/45.4620406b.chunk.js.map similarity index 93% rename from static/js/45.c4bbc4cf.chunk.js.map rename to static/js/45.4620406b.chunk.js.map index 5dd2cf0b3a..7cf3ee5099 100644 --- a/static/js/45.c4bbc4cf.chunk.js.map +++ b/static/js/45.4620406b.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.c4bbc4cf.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.

\\n

This 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.

\\n

I 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.4620406b.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.

\\n

This 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.

\\n

I 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.8227b11c.chunk.js b/static/js/46.702693cd.chunk.js similarity index 98% rename from static/js/46.8227b11c.chunk.js rename to static/js/46.702693cd.chunk.js index fd3a2acb69..9e34be46f8 100644 --- a/static/js/46.8227b11c.chunk.js +++ b/static/js/46.702693cd.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[46],{323: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.

\n

Now for the update:

\n

Chat color for each chat type (public, private, clan, trade, etc.) are now\nconfigurable in the "Chat Colors" configuratrion.

\n

chatcolors

\n

The woodcutting plugin now can overlay redwood tree locations.

\n

redwood

\n

The grand exchange plugin can now notify you when something buys or sells.

\n

genotification

\n

Also a special thanks to @Matthew Steglinski who\ncontributed Javadoc for 155\nfiles in the API. This greatly\nimproves our published Javadoc.

\n

Screen 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.

\n

Full screen mode was added and is toggleable in RuneLite settings.

\n

fullscreen

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix hiscore lookup autocomplete
  • \n
  • Fix hiscore and GE lookups getting stuck when given invalid input
  • \n
  • Improve boss timer spawn timers by start them when the NPC despawns instead of\nat the beginning of the death animation
  • \n
  • Add miscellaneous and scroll teleports to the world map plugin
  • \n
  • Skill calculator now turns actions that will become available before target\nlevel orange
  • \n
  • The bank evaluator plugin now includes the price of untradeable items\ntradeable versions
  • \n
  • Optimize clickbox calculation code
  • \n
  • Fix Vet\'ion boss timer and add KQ boss timer
  • \n
  • Add option to swap "interact" with "empty" on birdhouses
  • \n
  • Update menu swapper to support multiple fairy ring defaults
  • \n
  • Fix slayer plugin to work with NPC contact
  • \n
  • Add Bandit Camp fishing spot to fishing plugin
  • \n
  • Fix MLM plugin when it is started/stopped from within the MLM
  • \n
  • Fix UI responsiveness when closing skill calculator
  • \n
  • Add Limestone attack stone to skill calc
  • \n
  • Reset gorillas in demonic gorilla plugin on startup and world hop
  • \n
  • Add gilded altar to idle notifier
  • \n
  • Add wine making to idle notifier
  • \n
  • Add option to swap minecart menu option to travel from GE to Keldagrim
  • \n
  • Add bar dispenser clickbox overlay to blast furnace plugin
  • \n
  • Show clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\nplugin
  • \n
\n

Additionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.8227b11c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[46],{324: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.

\n

Now for the update:

\n

Chat color for each chat type (public, private, clan, trade, etc.) are now\nconfigurable in the "Chat Colors" configuratrion.

\n

chatcolors

\n

The woodcutting plugin now can overlay redwood tree locations.

\n

redwood

\n

The grand exchange plugin can now notify you when something buys or sells.

\n

genotification

\n

Also a special thanks to @Matthew Steglinski who\ncontributed Javadoc for 155\nfiles in the API. This greatly\nimproves our published Javadoc.

\n

Screen 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.

\n

Full screen mode was added and is toggleable in RuneLite settings.

\n

fullscreen

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix hiscore lookup autocomplete
  • \n
  • Fix hiscore and GE lookups getting stuck when given invalid input
  • \n
  • Improve boss timer spawn timers by start them when the NPC despawns instead of\nat the beginning of the death animation
  • \n
  • Add miscellaneous and scroll teleports to the world map plugin
  • \n
  • Skill calculator now turns actions that will become available before target\nlevel orange
  • \n
  • The bank evaluator plugin now includes the price of untradeable items\ntradeable versions
  • \n
  • Optimize clickbox calculation code
  • \n
  • Fix Vet\'ion boss timer and add KQ boss timer
  • \n
  • Add option to swap "interact" with "empty" on birdhouses
  • \n
  • Update menu swapper to support multiple fairy ring defaults
  • \n
  • Fix slayer plugin to work with NPC contact
  • \n
  • Add Bandit Camp fishing spot to fishing plugin
  • \n
  • Fix MLM plugin when it is started/stopped from within the MLM
  • \n
  • Fix UI responsiveness when closing skill calculator
  • \n
  • Add Limestone attack stone to skill calc
  • \n
  • Reset gorillas in demonic gorilla plugin on startup and world hop
  • \n
  • Add gilded altar to idle notifier
  • \n
  • Add wine making to idle notifier
  • \n
  • Add option to swap minecart menu option to travel from GE to Keldagrim
  • \n
  • Add bar dispenser clickbox overlay to blast furnace plugin
  • \n
  • Show clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\nplugin
  • \n
\n

Additionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.702693cd.chunk.js.map \ No newline at end of file diff --git a/static/js/46.8227b11c.chunk.js.map b/static/js/46.702693cd.chunk.js.map similarity index 99% rename from static/js/46.8227b11c.chunk.js.map rename to static/js/46.702693cd.chunk.js.map index 0a1b43afc6..2b050ec0de 100644 --- a/static/js/46.8227b11c.chunk.js.map +++ b/static/js/46.702693cd.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.8227b11c.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.

\\n

Now for the update:

\\n

Chat color for each chat type (public, private, clan, trade, etc.) are now\\nconfigurable in the "Chat Colors" configuratrion.

\\n

\\\"chatcolors\\\"

\\n

The woodcutting plugin now can overlay redwood tree locations.

\\n

\\\"redwood\\\"

\\n

The grand exchange plugin can now notify you when something buys or sells.

\\n

\\\"genotification\\\"

\\n

Also a special thanks to @Matthew Steglinski who\\ncontributed Javadoc for 155\\nfiles in the API. This greatly\\nimproves our published Javadoc.

\\n

Screen 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.

\\n

Full screen mode was added and is toggleable in RuneLite settings.

\\n

\\\"fullscreen\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix hiscore lookup autocomplete
  • \\n
  • Fix hiscore and GE lookups getting stuck when given invalid input
  • \\n
  • Improve boss timer spawn timers by start them when the NPC despawns instead of\\nat the beginning of the death animation
  • \\n
  • Add miscellaneous and scroll teleports to the world map plugin
  • \\n
  • Skill calculator now turns actions that will become available before target\\nlevel orange
  • \\n
  • The bank evaluator plugin now includes the price of untradeable items\\ntradeable versions
  • \\n
  • Optimize clickbox calculation code
  • \\n
  • Fix Vet'ion boss timer and add KQ boss timer
  • \\n
  • Add option to swap "interact" with "empty" on birdhouses
  • \\n
  • Update menu swapper to support multiple fairy ring defaults
  • \\n
  • Fix slayer plugin to work with NPC contact
  • \\n
  • Add Bandit Camp fishing spot to fishing plugin
  • \\n
  • Fix MLM plugin when it is started/stopped from within the MLM
  • \\n
  • Fix UI responsiveness when closing skill calculator
  • \\n
  • Add Limestone attack stone to skill calc
  • \\n
  • Reset gorillas in demonic gorilla plugin on startup and world hop
  • \\n
  • Add gilded altar to idle notifier
  • \\n
  • Add wine making to idle notifier
  • \\n
  • Add option to swap minecart menu option to travel from GE to Keldagrim
  • \\n
  • Add bar dispenser clickbox overlay to blast furnace plugin
  • \\n
  • Show clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\\nplugin
  • \\n
\\n

Additionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.702693cd.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.

\\n

Now for the update:

\\n

Chat color for each chat type (public, private, clan, trade, etc.) are now\\nconfigurable in the "Chat Colors" configuratrion.

\\n

\\\"chatcolors\\\"

\\n

The woodcutting plugin now can overlay redwood tree locations.

\\n

\\\"redwood\\\"

\\n

The grand exchange plugin can now notify you when something buys or sells.

\\n

\\\"genotification\\\"

\\n

Also a special thanks to @Matthew Steglinski who\\ncontributed Javadoc for 155\\nfiles in the API. This greatly\\nimproves our published Javadoc.

\\n

Screen 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.

\\n

Full screen mode was added and is toggleable in RuneLite settings.

\\n

\\\"fullscreen\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix hiscore lookup autocomplete
  • \\n
  • Fix hiscore and GE lookups getting stuck when given invalid input
  • \\n
  • Improve boss timer spawn timers by start them when the NPC despawns instead of\\nat the beginning of the death animation
  • \\n
  • Add miscellaneous and scroll teleports to the world map plugin
  • \\n
  • Skill calculator now turns actions that will become available before target\\nlevel orange
  • \\n
  • The bank evaluator plugin now includes the price of untradeable items\\ntradeable versions
  • \\n
  • Optimize clickbox calculation code
  • \\n
  • Fix Vet'ion boss timer and add KQ boss timer
  • \\n
  • Add option to swap "interact" with "empty" on birdhouses
  • \\n
  • Update menu swapper to support multiple fairy ring defaults
  • \\n
  • Fix slayer plugin to work with NPC contact
  • \\n
  • Add Bandit Camp fishing spot to fishing plugin
  • \\n
  • Fix MLM plugin when it is started/stopped from within the MLM
  • \\n
  • Fix UI responsiveness when closing skill calculator
  • \\n
  • Add Limestone attack stone to skill calc
  • \\n
  • Reset gorillas in demonic gorilla plugin on startup and world hop
  • \\n
  • Add gilded altar to idle notifier
  • \\n
  • Add wine making to idle notifier
  • \\n
  • Add option to swap minecart menu option to travel from GE to Keldagrim
  • \\n
  • Add bar dispenser clickbox overlay to blast furnace plugin
  • \\n
  • Show clickbox of the Boiler in Dorgesh-Kaan agility course in the agility\\nplugin
  • \\n
\\n

Additionally, there were clue fixes from Eadgars-Ruse, Jordan Atwood, and Maiddog.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.7c49292c.chunk.js b/static/js/47.495473b8.chunk.js similarity index 98% rename from static/js/47.7c49292c.chunk.js rename to static/js/47.495473b8.chunk.js index 3d335e2366..1990feb11d 100644 --- a/static/js/47.7c49292c.chunk.js +++ b/static/js/47.495473b8.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[47],{324: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

respawn

\n

@DannysPVM added a death indicator plugin which\nremembers where you\'ve died last, and on what world.

\n

deathindicator

\n

The prayer flicking plugin was renamed to the prayer plugin - and now shows\nprayer indicator infoboxes, from @raqes.

\n

prayindicator

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The screenshot plugin now screenshots pvp kills and pet drops
  • \n
  • A \'Reset others\' option was added to the xp tracker panel
  • \n
  • A Charge timer was added
  • \n
  • Fix Callisto and Venenatis boss timers from previous release
  • \n
  • Fix regen plugin showing when orb is hidden
  • \n
  • Added Zeah fishing spots to fishing plugin
  • \n
  • Add dragonfire-charged items to untradeable item mappings
  • \n
  • Fix expeditious bracelet charge tracking, which was broke last release
  • \n
  • Add support for swapping all options on the house portal to the menu entry\nswapper
  • \n
  • Show RuneLite launcher version in the info panel
  • \n
  • Add bake pie and string jewellery to idle notifier
  • \n
  • Fix rare crash when drawing clickboxes
  • \n
\n

Additionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.7c49292c.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[47],{325: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

respawn

\n

@DannysPVM added a death indicator plugin which\nremembers where you\'ve died last, and on what world.

\n

deathindicator

\n

The prayer flicking plugin was renamed to the prayer plugin - and now shows\nprayer indicator infoboxes, from @raqes.

\n

prayindicator

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The screenshot plugin now screenshots pvp kills and pet drops
  • \n
  • A \'Reset others\' option was added to the xp tracker panel
  • \n
  • A Charge timer was added
  • \n
  • Fix Callisto and Venenatis boss timers from previous release
  • \n
  • Fix regen plugin showing when orb is hidden
  • \n
  • Added Zeah fishing spots to fishing plugin
  • \n
  • Add dragonfire-charged items to untradeable item mappings
  • \n
  • Fix expeditious bracelet charge tracking, which was broke last release
  • \n
  • Add support for swapping all options on the house portal to the menu entry\nswapper
  • \n
  • Show RuneLite launcher version in the info panel
  • \n
  • Add bake pie and string jewellery to idle notifier
  • \n
  • Fix rare crash when drawing clickboxes
  • \n
\n

Additionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.

\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 26 contributors this release!

\n
Adam (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.495473b8.chunk.js.map \ No newline at end of file diff --git a/static/js/47.7c49292c.chunk.js.map b/static/js/47.495473b8.chunk.js.map similarity index 99% rename from static/js/47.7c49292c.chunk.js.map rename to static/js/47.495473b8.chunk.js.map index c151c2b6d3..7eb92858ac 100644 --- a/static/js/47.7c49292c.chunk.js.map +++ b/static/js/47.495473b8.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.7c49292c.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

\\\"respawn\\\"

\\n

@DannysPVM added a death indicator plugin which\\nremembers where you've died last, and on what world.

\\n

\\\"deathindicator\\\"

\\n

The prayer flicking plugin was renamed to the prayer plugin - and now shows\\nprayer indicator infoboxes, from @raqes.

\\n

\\\"prayindicator\\\"

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The screenshot plugin now screenshots pvp kills and pet drops
  • \\n
  • A 'Reset others' option was added to the xp tracker panel
  • \\n
  • A Charge timer was added
  • \\n
  • Fix Callisto and Venenatis boss timers from previous release
  • \\n
  • Fix regen plugin showing when orb is hidden
  • \\n
  • Added Zeah fishing spots to fishing plugin
  • \\n
  • Add dragonfire-charged items to untradeable item mappings
  • \\n
  • Fix expeditious bracelet charge tracking, which was broke last release
  • \\n
  • Add support for swapping all options on the house portal to the menu entry\\nswapper
  • \\n
  • Show RuneLite launcher version in the info panel
  • \\n
  • Add bake pie and string jewellery to idle notifier
  • \\n
  • Fix rare crash when drawing clickboxes
  • \\n
\\n

Additionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.495473b8.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

\\\"respawn\\\"

\\n

@DannysPVM added a death indicator plugin which\\nremembers where you've died last, and on what world.

\\n

\\\"deathindicator\\\"

\\n

The prayer flicking plugin was renamed to the prayer plugin - and now shows\\nprayer indicator infoboxes, from @raqes.

\\n

\\\"prayindicator\\\"

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The screenshot plugin now screenshots pvp kills and pet drops
  • \\n
  • A 'Reset others' option was added to the xp tracker panel
  • \\n
  • A Charge timer was added
  • \\n
  • Fix Callisto and Venenatis boss timers from previous release
  • \\n
  • Fix regen plugin showing when orb is hidden
  • \\n
  • Added Zeah fishing spots to fishing plugin
  • \\n
  • Add dragonfire-charged items to untradeable item mappings
  • \\n
  • Fix expeditious bracelet charge tracking, which was broke last release
  • \\n
  • Add support for swapping all options on the house portal to the menu entry\\nswapper
  • \\n
  • Show RuneLite launcher version in the info panel
  • \\n
  • Add bake pie and string jewellery to idle notifier
  • \\n
  • Fix rare crash when drawing clickboxes
  • \\n
\\n

Additionally, there were clue fixes from Jordan Atwood, StanleyMole, and Trig.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 26 contributors this release!

\\n
Adam (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.c0d72fee.chunk.js b/static/js/48.563ff224.chunk.js similarity index 97% rename from static/js/48.c0d72fee.chunk.js rename to static/js/48.563ff224.chunk.js index d4223ea31e..7062031d20 100644 --- a/static/js/48.c0d72fee.chunk.js +++ b/static/js/48.563ff224.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[48],{325: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

blastmine

\n

A 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

chatnotif

\n

chatnotif2

\n

A Crystal Math Labs plugin was added which, when enabled, automatically updates\nyour stats on CML whenever you log out.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • ctrl+w and backspace can now be used to delete the last word and the entire\nline from the chatbox input, respectively
  • \n
  • Add public chat friend name color in chat color config
  • \n
  • The boosts plugin can now notify you when your boost gets low
  • \n
  • Add Isafdar and Jatizso fishing spots to fishing plugin
  • \n
  • Remove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled
  • \n
  • Add fungicide spray to item stats plugin
  • \n
  • The ground items plugin can now grey hidden items from the take menu
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.c0d72fee.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[48],{326: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

blastmine

\n

A 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

chatnotif

\n

chatnotif2

\n

A Crystal Math Labs plugin was added which, when enabled, automatically updates\nyour stats on CML whenever you log out.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • ctrl+w and backspace can now be used to delete the last word and the entire\nline from the chatbox input, respectively
  • \n
  • Add public chat friend name color in chat color config
  • \n
  • The boosts plugin can now notify you when your boost gets low
  • \n
  • Add Isafdar and Jatizso fishing spots to fishing plugin
  • \n
  • Remove \'Actions left\' and \'Xp per hour\' from Xp Globes when Xp Tracker is disabled
  • \n
  • Add fungicide spray to item stats plugin
  • \n
  • The ground items plugin can now grey hidden items from the take menu
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.563ff224.chunk.js.map \ No newline at end of file diff --git a/static/js/48.c0d72fee.chunk.js.map b/static/js/48.563ff224.chunk.js.map similarity index 98% rename from static/js/48.c0d72fee.chunk.js.map rename to static/js/48.563ff224.chunk.js.map index 84ce0ed33b..ccf40a6e99 100644 --- a/static/js/48.c0d72fee.chunk.js.map +++ b/static/js/48.563ff224.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.c0d72fee.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

\\\"blastmine\\\"

\\n

A 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

\\\"chatnotif\\\"

\\n

\\\"chatnotif2\\\"

\\n

A Crystal Math Labs plugin was added which, when enabled, automatically updates\\nyour stats on CML whenever you log out.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • ctrl+w and backspace can now be used to delete the last word and the entire\\nline from the chatbox input, respectively
  • \\n
  • Add public chat friend name color in chat color config
  • \\n
  • The boosts plugin can now notify you when your boost gets low
  • \\n
  • Add Isafdar and Jatizso fishing spots to fishing plugin
  • \\n
  • Remove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled
  • \\n
  • Add fungicide spray to item stats plugin
  • \\n
  • The ground items plugin can now grey hidden items from the take menu
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.563ff224.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

\\\"blastmine\\\"

\\n

A 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

\\\"chatnotif\\\"

\\n

\\\"chatnotif2\\\"

\\n

A Crystal Math Labs plugin was added which, when enabled, automatically updates\\nyour stats on CML whenever you log out.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • ctrl+w and backspace can now be used to delete the last word and the entire\\nline from the chatbox input, respectively
  • \\n
  • Add public chat friend name color in chat color config
  • \\n
  • The boosts plugin can now notify you when your boost gets low
  • \\n
  • Add Isafdar and Jatizso fishing spots to fishing plugin
  • \\n
  • Remove 'Actions left' and 'Xp per hour' from Xp Globes when Xp Tracker is disabled
  • \\n
  • Add fungicide spray to item stats plugin
  • \\n
  • The ground items plugin can now grey hidden items from the take menu
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.198f8502.chunk.js b/static/js/49.dcd54463.chunk.js similarity index 98% rename from static/js/49.198f8502.chunk.js rename to static/js/49.dcd54463.chunk.js index f0ee08a804..da4eedb166 100644 --- a/static/js/49.198f8502.chunk.js +++ b/static/js/49.dcd54463.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[49],{326: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

mta

\n

The 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

prayer

\n

The boosts plugin now takes into account the preserve prayer when showing when\nthe next stat drain takes place.

\n

The grand exchange plugin can now show the "actively traded" OSBuddy price on\nthe grand exchange interface now, if enabled.

\n

osbprice

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix infobox overlay resetting its position after each client restart.
  • \n
  • Add dodgy necklace charge counter and notification to item charges plugin
  • \n
  • Fix attack styles plugin not correctly hiding staff of the dead defence style
  • \n
  • Made tagging NPCs no longer interrupt actions
  • \n
  • Hide Kourend Library navigation button when not in the library
  • \n
  • Fix Shilo Village stepping stones agilty marker
  • \n
  • Add option to highlight tiles under ground items
  • \n
  • Re-add ability to show hidden items on right click menu, with a toggle this\ntime
  • \n
  • Added a link to the wiki to the info panel
  • \n
  • More clue fixes
  • \n
  • Fix icons of onyx items in skill calculator
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
4th8 (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.198f8502.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[49],{327: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

mta

\n

The 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

prayer

\n

The boosts plugin now takes into account the preserve prayer when showing when\nthe next stat drain takes place.

\n

The grand exchange plugin can now show the "actively traded" OSBuddy price on\nthe grand exchange interface now, if enabled.

\n

osbprice

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix infobox overlay resetting its position after each client restart.
  • \n
  • Add dodgy necklace charge counter and notification to item charges plugin
  • \n
  • Fix attack styles plugin not correctly hiding staff of the dead defence style
  • \n
  • Made tagging NPCs no longer interrupt actions
  • \n
  • Hide Kourend Library navigation button when not in the library
  • \n
  • Fix Shilo Village stepping stones agilty marker
  • \n
  • Add option to highlight tiles under ground items
  • \n
  • Re-add ability to show hidden items on right click menu, with a toggle this\ntime
  • \n
  • Added a link to the wiki to the info panel
  • \n
  • More clue fixes
  • \n
  • Fix icons of onyx items in skill calculator
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
4th8 (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.dcd54463.chunk.js.map \ No newline at end of file diff --git a/static/js/49.198f8502.chunk.js.map b/static/js/49.dcd54463.chunk.js.map similarity index 98% rename from static/js/49.198f8502.chunk.js.map rename to static/js/49.dcd54463.chunk.js.map index d248232152..445254ea68 100644 --- a/static/js/49.198f8502.chunk.js.map +++ b/static/js/49.dcd54463.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.198f8502.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

\\\"mta\\\"

\\n

The 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

\\\"prayer\\\"

\\n

The boosts plugin now takes into account the preserve prayer when showing when\\nthe next stat drain takes place.

\\n

The grand exchange plugin can now show the "actively traded" OSBuddy price on\\nthe grand exchange interface now, if enabled.

\\n

\\\"osbprice\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix infobox overlay resetting its position after each client restart.
  • \\n
  • Add dodgy necklace charge counter and notification to item charges plugin
  • \\n
  • Fix attack styles plugin not correctly hiding staff of the dead defence style
  • \\n
  • Made tagging NPCs no longer interrupt actions
  • \\n
  • Hide Kourend Library navigation button when not in the library
  • \\n
  • Fix Shilo Village stepping stones agilty marker
  • \\n
  • Add option to highlight tiles under ground items
  • \\n
  • Re-add ability to show hidden items on right click menu, with a toggle this\\ntime
  • \\n
  • Added a link to the wiki to the info panel
  • \\n
  • More clue fixes
  • \\n
  • Fix icons of onyx items in skill calculator
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
4th8 (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.dcd54463.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

\\\"mta\\\"

\\n

The 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

\\\"prayer\\\"

\\n

The boosts plugin now takes into account the preserve prayer when showing when\\nthe next stat drain takes place.

\\n

The grand exchange plugin can now show the "actively traded" OSBuddy price on\\nthe grand exchange interface now, if enabled.

\\n

\\\"osbprice\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix infobox overlay resetting its position after each client restart.
  • \\n
  • Add dodgy necklace charge counter and notification to item charges plugin
  • \\n
  • Fix attack styles plugin not correctly hiding staff of the dead defence style
  • \\n
  • Made tagging NPCs no longer interrupt actions
  • \\n
  • Hide Kourend Library navigation button when not in the library
  • \\n
  • Fix Shilo Village stepping stones agilty marker
  • \\n
  • Add option to highlight tiles under ground items
  • \\n
  • Re-add ability to show hidden items on right click menu, with a toggle this\\ntime
  • \\n
  • Added a link to the wiki to the info panel
  • \\n
  • More clue fixes
  • \\n
  • Fix icons of onyx items in skill calculator
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
4th8 (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.387ebcc8.chunk.js b/static/js/5.387ebcc8.chunk.js deleted file mode 100644 index 0f84774c92..0000000000 --- a/static/js/5.387ebcc8.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(284)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283};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){},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":[297,20],"./2017-12-21-00-00-1.2.10-Release.md":[298,21],"./2018-01-12-00-00-1.2.11-Release.md":[299,22],"./2018-01-18-00-00-1.2.12-Release.md":[300,23],"./2018-01-25-00-00-1.2.13-Release.md":[301,24],"./2018-02-01-00-00-1.2.14-Release.md":[302,25],"./2018-02-08-00-00-1.2.15-Release.md":[303,26],"./2018-02-15-00-00-1.2.16-Release.md":[304,27],"./2018-02-22-00-00-1.2.17-Release.md":[305,28],"./2018-03-01-00-00-1.2.18-Release.md":[306,29],"./2018-03-08-00-00-1.2.19-Release.md":[307,30],"./2018-03-15-00-00-1.3.0-Release.md":[308,31],"./2018-03-22-00-00-1.3.1-Release.md":[309,32],"./2018-03-29-00-00-1.3.2-Release.md":[310,33],"./2018-04-05-00-00-1.3.3-Release.md":[311,34],"./2018-04-12-00-00-1.3.4-Release.md":[312,35],"./2018-04-19-00-00-1.3.5-Release.md":[313,36],"./2018-04-26-00-00-1.3.6-Release.md":[314,37],"./2018-05-03-00-00-1.3.7-Release.md":[315,38],"./2018-05-10-00-00-1.3.8-Release.md":[316,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[317,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[318,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[319,42],"./2018-05-18-00-00-1.3.9-Release.md":[320,43],"./2018-05-24-00-00-1.4.0-Release.md":[321,44],"./2018-05-25-23-00-Phishing-Attempts.md":[322,45],"./2018-05-31-07-00-1.4.1-Release.md":[323,46],"./2018-06-07-07-00-1.4.2-Release.md":[324,47],"./2018-06-14-07-00-1.4.3-Release.md":[325,48],"./2018-06-21-07-00-1.4.4-Release.md":[326,49],"./2018-06-28-07-00-1.4.5-Release.md":[327,50],"./2018-07-05-07-00-1.4.6-Release.md":[328,51],"./2018-07-12-07-00-1.4.7-Release.md":[329,52],"./2018-07-19-07-00-1.4.8-Release.md":[330,53],"./2018-07-26-07-00-1.4.9-Release.md":[331,54],"./2018-08-02-10-00-1.4.10-Release.md":[332,55],"./2018-08-09-10-00-1.4.11-Release.md":[333,56],"./2018-08-16-10-00-1.4.12-Release.md":[334,57],"./2018-08-23-10-00-1.4.13-Release.md":[335,58],"./2018-08-30-10-00-1.4.15-Release.md":[336,59],"./2018-09-06-10-00-1.4.16-Release.md":[337,60],"./2018-09-13-10-00-1.4.17-Release.md":[338,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[339,62],"./2018-09-20-10-00-1.4.18-Release.md":[340,63],"./2018-09-27-10-00-1.4.19-Release.md":[341,64],"./2018-10-04-10-00-1.4.20-Release.md":[342,65],"./2018-10-11-10-00-1.4.21-Release.md":[343,66],"./2018-10-18-10-00-1.4.22-Release.md":[344,67],"./2018-10-25-10-00-1.4.23-Release.md":[345,68],"./2018-11-01-10-00-1.4.24-Release.md":[346,69],"./2018-11-08-10-00-1.4.25-Release.md":[347,70],"./2018-11-15-10-00-1.4.26-Release.md":[348,71],"./2018-11-16-12-00-1.5.0-Release.md":[349,72],"./2018-11-22-10-00-1.5.1-Release.md":[350,73],"./2018-11-29-10-00-1.5.2-Release.md":[351,74],"./2018-12-06-10-00-1.5.3-Release.md":[352,75],"./2018-12-13-10-00-1.5.4-Release.md":[353,76],"./2018-12-20-10-00-1.5.5-Release.md":[354,77],"./2019-01-03-10-00-1.5.6-Release.md":[355,78],"./2019-01-10-10-00-1.5.7-Release.md":[356,79],"./2019-01-17-10-00-1.5.8-Release.md":[357,80],"./2019-01-24-10-00-1.5.9-Release.md":[358,81],"./2019-01-31-10-00-1.5.10-Release.md":[359,82],"./2019-02-07-10-00-1.5.11-Release.md":[360,83],"./2019-02-14-10-00-1.5.12-Release.md":[361,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[362,85],"./2019-02-21-10-00-1.5.13-Release.md":[363,86],"./2019-02-28-10-00-1.5.14-Release.md":[364,87],"./2019-03-07-10-00-1.5.15-Release.md":[365,88],"./2019-03-14-10-00-1.5.16-Release.md":[366,89],"./2019-03-21-12-00-1.5.17-Release.md":[367,90],"./2019-03-28-10-00-1.5.18-Release.md":[368,91],"./2019-04-11-10-00-1.5.19-Release.md":[369,92],"./2019-04-18-10-00-1.5.20-Release.md":[370,93],"./2019-04-25-10-00-1.5.21-Release.md":[371,94],"./2019-05-03-10-00-1.5.22-Release.md":[372,95],"./2019-05-16-10-00-1.5.23-Release.md":[373,96],"./2019-05-30-10-00-1.5.25-Release.md":[374,97],"./2019-06-06-10-00-1.5.26-Release.md":[375,98],"./2019-06-20-10-00-1.5.27-Release.md":[376,99],"./2019-07-04-10-00-1.5.28-Release.md":[377,100],"./2019-07-18-10-00-1.5.29-Release.md":[378,101],"./2019-08-01-10-00-1.5.30-Release.md":[379,102],"./2019-08-15-10-00-1.5.31-Release.md":[380,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[381,104],"./2019-08-29-10-00-1.5.32-Release.md":[382,105],"./2019-09-12-10-00-1.5.33-Release.md":[383,106],"./2019-09-26-10-00-1.5.34-Release.md":[384,107],"./2019-10-02-10-00-1.5.35-Release.md":[385,108],"./2019-10-17-10-00-1.5.36-Release.md":[386,109],"./2019-10-30-10-00-1.5.37-Release.md":[387,110],"./2019-11-14-10-00-1.5.40-Release.md":[388,111],"./2019-11-28-10-00-1.5.42-Release.md":[389,112],"./2019-12-16-10-00-1.5.43-Release.md":[390,113],"./2019-12-19-10-00-1.6.0-Release.md":[391,114],"./2020-01-09-10-00-1.6.1-Release.md":[392,115],"./2020-01-16-10-00-1.6.2-Release.md":[393,116],"./2020-01-22-10-00-1.6.4-Release.md":[394,117],"./2020-01-29-10-00-1.6.5-Release.md":[395,118],"./2020-02-13-10-00-1.6.6-Release.md":[396,119],"./2020-02-27-10-00-1.6.8-Release.md":[397,120],"./2020-03-05-10-00-1.6.9-Release.md":[398,121],"./2020-03-26-10-00-1.6.10-Release.md":[399,122],"./2020-04-16-10-00-1.6.11-Release.md":[400,123],"./2020-05-01-10-00-1.6.13-Release.md":[401,124],"./2020-05-09-10-00-1.6.14-Release.md":[402,125],"./2020-05-28-10-00-1.6.17-Release.md":[403,126],"./2020-06-12-10-00-1.6.19-Release.md":[404,127],"./2020-06-18-10-00-1.6.20-Release.md":[405,128],"./2020-06-25-10-00-1.6.21-Release.md":[406,129],"./2020-07-16-10-00-1.6.22-Release.md":[407,130],"./2020-07-23-10-00-1.6.23-Release.md":[408,131],"./2020-08-26-10-00-1.6.25-Release.md":[409,132],"./2020-09-23-10-00-1.6.27-Release.md":[410,133],"./2020-10-07-10-00-1.6.28-Release.md":[411,134],"./2020-11-11-10-00-1.6.31-Release.md":[412,135],"./2020-12-02-10-00-1.6.33-Release.md":[413,136],"./2021-01-06-10-00-1.6.36-Release.md":[414,137],"./2021-01-27-10-00-1.6.38-Release.md":[415,138],"./2021-02-13-00-00-1.7.0-Release.md":[416,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[417,140],"./2021-03-24-10-00-1.7.3-Release.md":[418,141],"./2021-05-12-10-00-1.7.7-Release.md":[419,142],"./2021-05-28-10-00-1.7.10-Release.md":[420,143],"./2021-06-23-10-00-1.7.13-Release.md":[421,144],"./2021-07-14-10-00-1.7.16-Release.md":[422,145],"./2021-07-21-10-00-1.7.17-Release.md":[423,146],"./2021-09-06-10-00-1.7.22-Release.md":[424,147],"./2021-10-06-10-00-1.7.25-Release.md":[425,148],"./2021-10-28-19-00-1.8.0-Release.md":[426,149],"./2021-12-16-19-00-1.8.7-Release.md":[427,150],"./2022-03-09-19-00-1.8.13-Release.md":[428,151],"./2022-05-11-19-00-1.8.19-Release.md":[429,152],"./2022-06-17-19-00-1.8.24-Release.md":[430,153],"./2022-07-13-19-00-1.8.27-Release.md":[431,154],"./2022-08-21-19-00-1.8.31-Release.md":[432,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[433,156],"./2022-10-05-15-00-1.9.0-Release.md":[434,157],"./2022-12-07-15-00-1.9.5-Release.md":[435,158],"./2023-01-22-10-00-security-incident-jan21.md":[436,159],"./2023-02-18-15-00-1.9.11-Release.md":[437,160],"./2023-05-13-15-00-1.10.0-Release.md":[438,161],"./2023-07-01-15-00-1.10.6-Release.md":[439,162],"./2023-09-09-15-00-1.10.12-Release.md":[440,163],"./2023-11-05-10-00-1.10.15-Release.md":[441,164],"./2024-02-24-23-00-1.10.23-Release.md":[442,165],"./2024-03-21-23-00-1.10.25-Release.md":[443,166]};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=284,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(292));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.387ebcc8.chunk.js.map \ No newline at end of file diff --git a/static/js/5.387ebcc8.chunk.js.map b/static/js/5.387ebcc8.chunk.js.map deleted file mode 100644 index e49369ab2d..0000000000 --- a/static/js/5.387ebcc8.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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C,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,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,oCChmBjB,WAKeG,IAHS9E,IAAA,IAAC,QAAE+E,EAAO,KAAEC,GAAMhF,EAAA,OACxCL,YAAEoF,EAAS,CAAEE,wBAAyB,CAAEC,OAAQF,O,4LCHlD,+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.387ebcc8.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283\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\t297,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t298,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t299,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t300,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t301,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t302,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t303,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t304,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t305,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t306,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t307,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t308,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t309,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t310,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t311,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t312,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t313,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t314,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t315,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t316,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t320,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t321,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t322,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t323,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t324,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t325,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t326,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t327,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t328,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t329,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t330,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t331,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t332,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t333,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t334,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t335,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t336,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t337,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t338,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t339,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t340,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t341,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t342,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t343,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t344,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t345,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t346,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t347,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t348,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t349,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t350,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t351,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t352,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t353,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t354,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t355,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t356,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t357,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t358,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t359,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t360,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t361,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t362,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t363,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t364,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t365,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t366,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t367,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t368,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t369,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t370,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t371,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t372,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t373,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t374,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t375,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t376,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t377,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t378,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t379,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t380,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t381,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t382,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t383,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t384,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t385,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t386,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t387,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t388,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t389,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t390,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t391,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t392,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t393,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t394,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t395,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t396,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t397,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t398,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t399,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t400,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t401,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t402,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t403,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t404,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t405,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t406,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t407,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t408,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t409,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t410,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t411,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t412,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t413,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t414,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t415,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t416,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t417,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t418,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t419,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t420,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t421,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t422,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t423,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t424,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t425,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t426,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t427,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t428,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t429,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t430,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t431,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t432,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t433,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t434,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t435,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t436,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t437,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t438,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t439,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t440,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t441,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t442,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t443,\n\t\t166\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 = 284;\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

{title}

\n

\n {ago(date)} by {author}\n

\n
\n\n
\n \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.ca584576.chunk.js b/static/js/5.ca584576.chunk.js new file mode 100644 index 0000000000..5df5323418 --- /dev/null +++ b/static/js/5.ca584576.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(285)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283,"./2024-04-17-23-00-1.10.27-Release.md":284};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){},function(e,n){},function(e,n,a){var t={"./2017-12-13-00-00-New-Site.md":[298,20],"./2017-12-21-00-00-1.2.10-Release.md":[299,21],"./2018-01-12-00-00-1.2.11-Release.md":[300,22],"./2018-01-18-00-00-1.2.12-Release.md":[301,23],"./2018-01-25-00-00-1.2.13-Release.md":[302,24],"./2018-02-01-00-00-1.2.14-Release.md":[303,25],"./2018-02-08-00-00-1.2.15-Release.md":[304,26],"./2018-02-15-00-00-1.2.16-Release.md":[305,27],"./2018-02-22-00-00-1.2.17-Release.md":[306,28],"./2018-03-01-00-00-1.2.18-Release.md":[307,29],"./2018-03-08-00-00-1.2.19-Release.md":[308,30],"./2018-03-15-00-00-1.3.0-Release.md":[309,31],"./2018-03-22-00-00-1.3.1-Release.md":[310,32],"./2018-03-29-00-00-1.3.2-Release.md":[311,33],"./2018-04-05-00-00-1.3.3-Release.md":[312,34],"./2018-04-12-00-00-1.3.4-Release.md":[313,35],"./2018-04-19-00-00-1.3.5-Release.md":[314,36],"./2018-04-26-00-00-1.3.6-Release.md":[315,37],"./2018-05-03-00-00-1.3.7-Release.md":[316,38],"./2018-05-10-00-00-1.3.8-Release.md":[317,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[318,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[319,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[320,42],"./2018-05-18-00-00-1.3.9-Release.md":[321,43],"./2018-05-24-00-00-1.4.0-Release.md":[322,44],"./2018-05-25-23-00-Phishing-Attempts.md":[323,45],"./2018-05-31-07-00-1.4.1-Release.md":[324,46],"./2018-06-07-07-00-1.4.2-Release.md":[325,47],"./2018-06-14-07-00-1.4.3-Release.md":[326,48],"./2018-06-21-07-00-1.4.4-Release.md":[327,49],"./2018-06-28-07-00-1.4.5-Release.md":[328,50],"./2018-07-05-07-00-1.4.6-Release.md":[329,51],"./2018-07-12-07-00-1.4.7-Release.md":[330,52],"./2018-07-19-07-00-1.4.8-Release.md":[331,53],"./2018-07-26-07-00-1.4.9-Release.md":[332,54],"./2018-08-02-10-00-1.4.10-Release.md":[333,55],"./2018-08-09-10-00-1.4.11-Release.md":[334,56],"./2018-08-16-10-00-1.4.12-Release.md":[335,57],"./2018-08-23-10-00-1.4.13-Release.md":[336,58],"./2018-08-30-10-00-1.4.15-Release.md":[337,59],"./2018-09-06-10-00-1.4.16-Release.md":[338,60],"./2018-09-13-10-00-1.4.17-Release.md":[339,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[340,62],"./2018-09-20-10-00-1.4.18-Release.md":[341,63],"./2018-09-27-10-00-1.4.19-Release.md":[342,64],"./2018-10-04-10-00-1.4.20-Release.md":[343,65],"./2018-10-11-10-00-1.4.21-Release.md":[344,66],"./2018-10-18-10-00-1.4.22-Release.md":[345,67],"./2018-10-25-10-00-1.4.23-Release.md":[346,68],"./2018-11-01-10-00-1.4.24-Release.md":[347,69],"./2018-11-08-10-00-1.4.25-Release.md":[348,70],"./2018-11-15-10-00-1.4.26-Release.md":[349,71],"./2018-11-16-12-00-1.5.0-Release.md":[350,72],"./2018-11-22-10-00-1.5.1-Release.md":[351,73],"./2018-11-29-10-00-1.5.2-Release.md":[352,74],"./2018-12-06-10-00-1.5.3-Release.md":[353,75],"./2018-12-13-10-00-1.5.4-Release.md":[354,76],"./2018-12-20-10-00-1.5.5-Release.md":[355,77],"./2019-01-03-10-00-1.5.6-Release.md":[356,78],"./2019-01-10-10-00-1.5.7-Release.md":[357,79],"./2019-01-17-10-00-1.5.8-Release.md":[358,80],"./2019-01-24-10-00-1.5.9-Release.md":[359,81],"./2019-01-31-10-00-1.5.10-Release.md":[360,82],"./2019-02-07-10-00-1.5.11-Release.md":[361,83],"./2019-02-14-10-00-1.5.12-Release.md":[362,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[363,85],"./2019-02-21-10-00-1.5.13-Release.md":[364,86],"./2019-02-28-10-00-1.5.14-Release.md":[365,87],"./2019-03-07-10-00-1.5.15-Release.md":[366,88],"./2019-03-14-10-00-1.5.16-Release.md":[367,89],"./2019-03-21-12-00-1.5.17-Release.md":[368,90],"./2019-03-28-10-00-1.5.18-Release.md":[369,91],"./2019-04-11-10-00-1.5.19-Release.md":[370,92],"./2019-04-18-10-00-1.5.20-Release.md":[371,93],"./2019-04-25-10-00-1.5.21-Release.md":[372,94],"./2019-05-03-10-00-1.5.22-Release.md":[373,95],"./2019-05-16-10-00-1.5.23-Release.md":[374,96],"./2019-05-30-10-00-1.5.25-Release.md":[375,97],"./2019-06-06-10-00-1.5.26-Release.md":[376,98],"./2019-06-20-10-00-1.5.27-Release.md":[377,99],"./2019-07-04-10-00-1.5.28-Release.md":[378,100],"./2019-07-18-10-00-1.5.29-Release.md":[379,101],"./2019-08-01-10-00-1.5.30-Release.md":[380,102],"./2019-08-15-10-00-1.5.31-Release.md":[381,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[382,104],"./2019-08-29-10-00-1.5.32-Release.md":[383,105],"./2019-09-12-10-00-1.5.33-Release.md":[384,106],"./2019-09-26-10-00-1.5.34-Release.md":[385,107],"./2019-10-02-10-00-1.5.35-Release.md":[386,108],"./2019-10-17-10-00-1.5.36-Release.md":[387,109],"./2019-10-30-10-00-1.5.37-Release.md":[388,110],"./2019-11-14-10-00-1.5.40-Release.md":[389,111],"./2019-11-28-10-00-1.5.42-Release.md":[390,112],"./2019-12-16-10-00-1.5.43-Release.md":[391,113],"./2019-12-19-10-00-1.6.0-Release.md":[392,114],"./2020-01-09-10-00-1.6.1-Release.md":[393,115],"./2020-01-16-10-00-1.6.2-Release.md":[394,116],"./2020-01-22-10-00-1.6.4-Release.md":[395,117],"./2020-01-29-10-00-1.6.5-Release.md":[396,118],"./2020-02-13-10-00-1.6.6-Release.md":[397,119],"./2020-02-27-10-00-1.6.8-Release.md":[398,120],"./2020-03-05-10-00-1.6.9-Release.md":[399,121],"./2020-03-26-10-00-1.6.10-Release.md":[400,122],"./2020-04-16-10-00-1.6.11-Release.md":[401,123],"./2020-05-01-10-00-1.6.13-Release.md":[402,124],"./2020-05-09-10-00-1.6.14-Release.md":[403,125],"./2020-05-28-10-00-1.6.17-Release.md":[404,126],"./2020-06-12-10-00-1.6.19-Release.md":[405,127],"./2020-06-18-10-00-1.6.20-Release.md":[406,128],"./2020-06-25-10-00-1.6.21-Release.md":[407,129],"./2020-07-16-10-00-1.6.22-Release.md":[408,130],"./2020-07-23-10-00-1.6.23-Release.md":[409,131],"./2020-08-26-10-00-1.6.25-Release.md":[410,132],"./2020-09-23-10-00-1.6.27-Release.md":[411,133],"./2020-10-07-10-00-1.6.28-Release.md":[412,134],"./2020-11-11-10-00-1.6.31-Release.md":[413,135],"./2020-12-02-10-00-1.6.33-Release.md":[414,136],"./2021-01-06-10-00-1.6.36-Release.md":[415,137],"./2021-01-27-10-00-1.6.38-Release.md":[416,138],"./2021-02-13-00-00-1.7.0-Release.md":[417,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[418,140],"./2021-03-24-10-00-1.7.3-Release.md":[419,141],"./2021-05-12-10-00-1.7.7-Release.md":[420,142],"./2021-05-28-10-00-1.7.10-Release.md":[421,143],"./2021-06-23-10-00-1.7.13-Release.md":[422,144],"./2021-07-14-10-00-1.7.16-Release.md":[423,145],"./2021-07-21-10-00-1.7.17-Release.md":[424,146],"./2021-09-06-10-00-1.7.22-Release.md":[425,147],"./2021-10-06-10-00-1.7.25-Release.md":[426,148],"./2021-10-28-19-00-1.8.0-Release.md":[427,149],"./2021-12-16-19-00-1.8.7-Release.md":[428,150],"./2022-03-09-19-00-1.8.13-Release.md":[429,151],"./2022-05-11-19-00-1.8.19-Release.md":[430,152],"./2022-06-17-19-00-1.8.24-Release.md":[431,153],"./2022-07-13-19-00-1.8.27-Release.md":[432,154],"./2022-08-21-19-00-1.8.31-Release.md":[433,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[434,156],"./2022-10-05-15-00-1.9.0-Release.md":[435,157],"./2022-12-07-15-00-1.9.5-Release.md":[436,158],"./2023-01-22-10-00-security-incident-jan21.md":[437,159],"./2023-02-18-15-00-1.9.11-Release.md":[438,160],"./2023-05-13-15-00-1.10.0-Release.md":[439,161],"./2023-07-01-15-00-1.10.6-Release.md":[440,162],"./2023-09-09-15-00-1.10.12-Release.md":[441,163],"./2023-11-05-10-00-1.10.15-Release.md":[442,164],"./2024-02-24-23-00-1.10.23-Release.md":[443,165],"./2024-03-21-23-00-1.10.25-Release.md":[444,166],"./2024-04-17-23-00-1.10.27-Release.md":[445,167]};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=285,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(293));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.ca584576.chunk.js.map \ No newline at end of file diff --git a/static/js/5.ca584576.chunk.js.map b/static/js/5.ca584576.chunk.js.map new file mode 100644 index 0000000000..cfdff268c6 --- /dev/null +++ b/static/js/5.ca584576.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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CA,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,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,oCCpmBjB,WAKeG,IAHS9E,IAAA,IAAC,QAAE+E,EAAO,KAAEC,GAAMhF,EAAA,OACxCL,YAAEoF,EAAS,CAAEE,wBAAyB,CAAEC,OAAQF,O,6LCHlD,+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.ca584576.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283,\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": 284\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\t298,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t299,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t300,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t301,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t302,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t303,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t304,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t305,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t306,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t307,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t308,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t309,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t310,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t311,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t312,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t313,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t314,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t315,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t316,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t317,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t320,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t321,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t322,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t323,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t324,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t325,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t326,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t327,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t328,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t329,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t330,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t331,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t332,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t333,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t334,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t335,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t336,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t337,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t338,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t339,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t340,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t341,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t342,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t343,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t344,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t345,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t346,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t347,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t348,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t349,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t350,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t351,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t352,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t353,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t354,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t355,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t356,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t357,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t358,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t359,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t360,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t361,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t362,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t363,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t364,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t365,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t366,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t367,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t368,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t369,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t370,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t371,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t372,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t373,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t374,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t375,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t376,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t377,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t378,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t379,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t380,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t381,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t382,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t383,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t384,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t385,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t386,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t387,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t388,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t389,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t390,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t391,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t392,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t393,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t394,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t395,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t396,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t397,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t398,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t399,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t400,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t401,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t402,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t403,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t404,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t405,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t406,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t407,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t408,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t409,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t410,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t411,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t412,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t413,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t414,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t415,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t416,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t417,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t418,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t419,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t420,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t421,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t422,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t423,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t424,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t425,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t426,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t427,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t428,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t429,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t430,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t431,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t432,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t433,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t434,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t435,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t436,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t437,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t438,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t439,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t440,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t441,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t442,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t443,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t444,\n\t\t166\n\t],\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": [\n\t\t445,\n\t\t167\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 = 285;\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

{title}

\n

\n {ago(date)} by {author}\n

\n
\n\n
\n \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.c0161ec5.chunk.js b/static/js/50.e486c0fa.chunk.js similarity index 98% rename from static/js/50.c0161ec5.chunk.js rename to static/js/50.e486c0fa.chunk.js index 7d3cee095c..192283666a 100644 --- a/static/js/50.c0161ec5.chunk.js +++ b/static/js/50.e486c0fa.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[50],{327: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

inventorytags

\n

The opponent info plugin now has an option to show and compare the stats of an\nopponent you interact with. Contributed by\n@Nightfirecat.

\n

playercomparison

\n

An inventory viewer was added by @jplsek which lets\nyou overlay a view of your inventory:

\n

inventoryviewer

\n

Finally, a corporeal beast plugin was added:

\n

corp

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix animation smoother with interpolating rotation frames
  • \n
  • Fix animation smoother to not smooth hellhound defence animation
  • \n
  • Fix agility plugin to not reset arena timer when falling from obstacles
  • \n
  • Fix fight cave plugin to work more reliably
  • \n
  • Fix price of tentacle tridents
  • \n
  • Add informative dialog for when the client is outdated due to game updates
  • \n
  • Add configuration setting for chat commands clear chat keyboard shortcuts
  • \n
  • The screenshot plugin now has a configurable hotkey for screenshots
  • \n
  • Add Battle staffs to the idle notifier
  • \n
  • Add !clues chat command
  • \n
  • Add timer for stamina mixes
  • \n
  • Add (slayer) assignment to menu swapper
  • \n
  • Fix binding necklaces charges to reset when the necklace is destroyed
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
AWPH-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.c0161ec5.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[50],{328: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

inventorytags

\n

The opponent info plugin now has an option to show and compare the stats of an\nopponent you interact with. Contributed by\n@Nightfirecat.

\n

playercomparison

\n

An inventory viewer was added by @jplsek which lets\nyou overlay a view of your inventory:

\n

inventoryviewer

\n

Finally, a corporeal beast plugin was added:

\n

corp

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix animation smoother with interpolating rotation frames
  • \n
  • Fix animation smoother to not smooth hellhound defence animation
  • \n
  • Fix agility plugin to not reset arena timer when falling from obstacles
  • \n
  • Fix fight cave plugin to work more reliably
  • \n
  • Fix price of tentacle tridents
  • \n
  • Add informative dialog for when the client is outdated due to game updates
  • \n
  • Add configuration setting for chat commands clear chat keyboard shortcuts
  • \n
  • The screenshot plugin now has a configurable hotkey for screenshots
  • \n
  • Add Battle staffs to the idle notifier
  • \n
  • Add !clues chat command
  • \n
  • Add timer for stamina mixes
  • \n
  • Add (slayer) assignment to menu swapper
  • \n
  • Fix binding necklaces charges to reset when the necklace is destroyed
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
AWPH-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.e486c0fa.chunk.js.map \ No newline at end of file diff --git a/static/js/50.c0161ec5.chunk.js.map b/static/js/50.e486c0fa.chunk.js.map similarity index 98% rename from static/js/50.c0161ec5.chunk.js.map rename to static/js/50.e486c0fa.chunk.js.map index bbc42a118a..ec423338ae 100644 --- a/static/js/50.c0161ec5.chunk.js.map +++ b/static/js/50.e486c0fa.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.c0161ec5.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

\\\"inventorytags\\\"

\\n

The opponent info plugin now has an option to show and compare the stats of an\\nopponent you interact with. Contributed by\\n@Nightfirecat.

\\n

\\\"playercomparison\\\"

\\n

An inventory viewer was added by @jplsek which lets\\nyou overlay a view of your inventory:

\\n

\\\"inventoryviewer\\\"

\\n

Finally, a corporeal beast plugin was added:

\\n

\\\"corp\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix animation smoother with interpolating rotation frames
  • \\n
  • Fix animation smoother to not smooth hellhound defence animation
  • \\n
  • Fix agility plugin to not reset arena timer when falling from obstacles
  • \\n
  • Fix fight cave plugin to work more reliably
  • \\n
  • Fix price of tentacle tridents
  • \\n
  • Add informative dialog for when the client is outdated due to game updates
  • \\n
  • Add configuration setting for chat commands clear chat keyboard shortcuts
  • \\n
  • The screenshot plugin now has a configurable hotkey for screenshots
  • \\n
  • Add Battle staffs to the idle notifier
  • \\n
  • Add !clues chat command
  • \\n
  • Add timer for stamina mixes
  • \\n
  • Add (slayer) assignment to menu swapper
  • \\n
  • Fix binding necklaces charges to reset when the necklace is destroyed
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
AWPH-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.e486c0fa.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

\\\"inventorytags\\\"

\\n

The opponent info plugin now has an option to show and compare the stats of an\\nopponent you interact with. Contributed by\\n@Nightfirecat.

\\n

\\\"playercomparison\\\"

\\n

An inventory viewer was added by @jplsek which lets\\nyou overlay a view of your inventory:

\\n

\\\"inventoryviewer\\\"

\\n

Finally, a corporeal beast plugin was added:

\\n

\\\"corp\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix animation smoother with interpolating rotation frames
  • \\n
  • Fix animation smoother to not smooth hellhound defence animation
  • \\n
  • Fix agility plugin to not reset arena timer when falling from obstacles
  • \\n
  • Fix fight cave plugin to work more reliably
  • \\n
  • Fix price of tentacle tridents
  • \\n
  • Add informative dialog for when the client is outdated due to game updates
  • \\n
  • Add configuration setting for chat commands clear chat keyboard shortcuts
  • \\n
  • The screenshot plugin now has a configurable hotkey for screenshots
  • \\n
  • Add Battle staffs to the idle notifier
  • \\n
  • Add !clues chat command
  • \\n
  • Add timer for stamina mixes
  • \\n
  • Add (slayer) assignment to menu swapper
  • \\n
  • Fix binding necklaces charges to reset when the necklace is destroyed
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
AWPH-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.605852c3.chunk.js b/static/js/51.b7dad8dd.chunk.js similarity index 98% rename from static/js/51.605852c3.chunk.js rename to static/js/51.b7dad8dd.chunk.js index 4ca98ae20c..3bff6f92d6 100644 --- a/static/js/51.605852c3.chunk.js +++ b/static/js/51.b7dad8dd.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[51],{328: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

lightboxsolver

\n

A 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

varrockmuseumsolver

\n

The configuration panel was significantly improved thanks to big contribution from\n@takuyakanbr. Some of the improvements are:

\n
    \n
  • Each plugin now has a short description when hovered
  • \n
  • Each plugin now has tags that will make plugins easier to search for
  • \n
  • Plugins 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)
  • \n
  • Search bar in configuration panel will now always stay on top
  • \n
  • Each configuration page for plugins now have back and on/off buttons at the top of panel
  • \n
\n

configbackbutton\nconfigfavorites\nconfigtags\nconfigtooltip

\n

Thanks 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.

\n

Due 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

discord1\ndiscord2

\n

In 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
  • \n
  • Plenty of new food types have been added to Item Stats plugin
  • \n
  • SOTD timer now properly works also for SOTL
  • \n
  • Obstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin
  • \n
  • Al-Kharid lap counter has been fixed
  • \n
  • XP tracker now shows dots instead of commas to follow OSRS style of displaying numbers
  • \n
  • Fishing plugin now supports all types of eels
  • \n
  • Bug with inventory tagger plugin showing items with different models depending on the quantity\nincorrectly have been fixed
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.605852c3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[51],{329: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

lightboxsolver

\n

A 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

varrockmuseumsolver

\n

The configuration panel was significantly improved thanks to big contribution from\n@takuyakanbr. Some of the improvements are:

\n
    \n
  • Each plugin now has a short description when hovered
  • \n
  • Each plugin now has tags that will make plugins easier to search for
  • \n
  • Plugins 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)
  • \n
  • Search bar in configuration panel will now always stay on top
  • \n
  • Each configuration page for plugins now have back and on/off buttons at the top of panel
  • \n
\n

configbackbutton\nconfigfavorites\nconfigtags\nconfigtooltip

\n

Thanks 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.

\n

Due 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

discord1\ndiscord2

\n

In 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
  • \n
  • Plenty of new food types have been added to Item Stats plugin
  • \n
  • SOTD timer now properly works also for SOTL
  • \n
  • Obstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin
  • \n
  • Al-Kharid lap counter has been fixed
  • \n
  • XP tracker now shows dots instead of commas to follow OSRS style of displaying numbers
  • \n
  • Fishing plugin now supports all types of eels
  • \n
  • Bug with inventory tagger plugin showing items with different models depending on the quantity\nincorrectly have been fixed
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.b7dad8dd.chunk.js.map \ No newline at end of file diff --git a/static/js/51.605852c3.chunk.js.map b/static/js/51.b7dad8dd.chunk.js.map similarity index 99% rename from static/js/51.605852c3.chunk.js.map rename to static/js/51.b7dad8dd.chunk.js.map index 2d8a8d6736..6474f585f4 100644 --- a/static/js/51.605852c3.chunk.js.map +++ b/static/js/51.b7dad8dd.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.605852c3.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

\\\"lightboxsolver\\\"

\\n

A 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

\\\"varrockmuseumsolver\\\"

\\n

The configuration panel was significantly improved thanks to big contribution from\\n@takuyakanbr. Some of the improvements are:

\\n
    \\n
  • Each plugin now has a short description when hovered
  • \\n
  • Each plugin now has tags that will make plugins easier to search for
  • \\n
  • Plugins 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)
  • \\n
  • Search bar in configuration panel will now always stay on top
  • \\n
  • Each configuration page for plugins now have back and on/off buttons at the top of panel
  • \\n
\\n

\\\"configbackbutton\\\"\\n\\\"configfavorites\\\"\\n\\\"configtags\\\"\\n\\\"configtooltip\\\"

\\n

Thanks 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.

\\n

Due 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

\\\"discord1\\\"\\n\\\"discord2\\\"

\\n

In 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
  • \\n
  • Plenty of new food types have been added to Item Stats plugin
  • \\n
  • SOTD timer now properly works also for SOTL
  • \\n
  • Obstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin
  • \\n
  • Al-Kharid lap counter has been fixed
  • \\n
  • XP tracker now shows dots instead of commas to follow OSRS style of displaying numbers
  • \\n
  • Fishing plugin now supports all types of eels
  • \\n
  • Bug with inventory tagger plugin showing items with different models depending on the quantity\\nincorrectly have been fixed
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.b7dad8dd.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

\\\"lightboxsolver\\\"

\\n

A 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

\\\"varrockmuseumsolver\\\"

\\n

The configuration panel was significantly improved thanks to big contribution from\\n@takuyakanbr. Some of the improvements are:

\\n
    \\n
  • Each plugin now has a short description when hovered
  • \\n
  • Each plugin now has tags that will make plugins easier to search for
  • \\n
  • Plugins 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)
  • \\n
  • Search bar in configuration panel will now always stay on top
  • \\n
  • Each configuration page for plugins now have back and on/off buttons at the top of panel
  • \\n
\\n

\\\"configbackbutton\\\"\\n\\\"configfavorites\\\"\\n\\\"configtags\\\"\\n\\\"configtooltip\\\"

\\n

Thanks 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.

\\n

Due 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

\\\"discord1\\\"\\n\\\"discord2\\\"

\\n

In 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
  • \\n
  • Plenty of new food types have been added to Item Stats plugin
  • \\n
  • SOTD timer now properly works also for SOTL
  • \\n
  • Obstacles for Agility Pyramid entrance and Morytania pirate ship have been added to Agility plugin
  • \\n
  • Al-Kharid lap counter has been fixed
  • \\n
  • XP tracker now shows dots instead of commas to follow OSRS style of displaying numbers
  • \\n
  • Fishing plugin now supports all types of eels
  • \\n
  • Bug with inventory tagger plugin showing items with different models depending on the quantity\\nincorrectly have been fixed
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.6e287ecc.chunk.js b/static/js/52.5b975a19.chunk.js similarity index 97% rename from static/js/52.6e287ecc.chunk.js rename to static/js/52.5b975a19.chunk.js index 9c85975eb8..b870bc5f4e 100644 --- a/static/js/52.6e287ecc.chunk.js +++ b/static/js/52.5b975a19.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[52],{329: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.

\n

Note that as the kill count data is sent from the client it is trusted and is not\ndifficult for someone to fake.

\n

kc

\n

The prayer plugin now can show a prayer bar, below your hitpoints bar, showing\nhow much prayer you have left.

\n

prayerbar

\n

A Tears of Guthix plugin was added which displays time remaining on the blue streams:

\n

tog

\n

The special attack orb now indicates when you have special attack enabled.

\n

specorb

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add broad arrows to the fletching skill calculator
  • \n
  • XP drop plugin will now center text of XP if skill icons are hidden
  • \n
  • Fix agility plugin counting laps on the agility pyramid
  • \n
  • The runecraft plugin can now send a notification when rune pouches degrade
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.6e287ecc.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[52],{330: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.

\n

Note that as the kill count data is sent from the client it is trusted and is not\ndifficult for someone to fake.

\n

kc

\n

The prayer plugin now can show a prayer bar, below your hitpoints bar, showing\nhow much prayer you have left.

\n

prayerbar

\n

A Tears of Guthix plugin was added which displays time remaining on the blue streams:

\n

tog

\n

The special attack orb now indicates when you have special attack enabled.

\n

specorb

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add broad arrows to the fletching skill calculator
  • \n
  • XP drop plugin will now center text of XP if skill icons are hidden
  • \n
  • Fix agility plugin counting laps on the agility pyramid
  • \n
  • The runecraft plugin can now send a notification when rune pouches degrade
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.5b975a19.chunk.js.map \ No newline at end of file diff --git a/static/js/52.6e287ecc.chunk.js.map b/static/js/52.5b975a19.chunk.js.map similarity index 98% rename from static/js/52.6e287ecc.chunk.js.map rename to static/js/52.5b975a19.chunk.js.map index b29ce86cad..7e2d9e0eeb 100644 --- a/static/js/52.6e287ecc.chunk.js.map +++ b/static/js/52.5b975a19.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.6e287ecc.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.

\\n

Note that as the kill count data is sent from the client it is trusted and is not\\ndifficult for someone to fake.

\\n

\\\"kc\\\"

\\n

The prayer plugin now can show a prayer bar, below your hitpoints bar, showing\\nhow much prayer you have left.

\\n

\\\"prayerbar\\\"

\\n

A Tears of Guthix plugin was added which displays time remaining on the blue streams:

\\n

\\\"tog\\\"

\\n

The special attack orb now indicates when you have special attack enabled.

\\n

\\\"specorb\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add broad arrows to the fletching skill calculator
  • \\n
  • XP drop plugin will now center text of XP if skill icons are hidden
  • \\n
  • Fix agility plugin counting laps on the agility pyramid
  • \\n
  • The runecraft plugin can now send a notification when rune pouches degrade
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.5b975a19.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.

\\n

Note that as the kill count data is sent from the client it is trusted and is not\\ndifficult for someone to fake.

\\n

\\\"kc\\\"

\\n

The prayer plugin now can show a prayer bar, below your hitpoints bar, showing\\nhow much prayer you have left.

\\n

\\\"prayerbar\\\"

\\n

A Tears of Guthix plugin was added which displays time remaining on the blue streams:

\\n

\\\"tog\\\"

\\n

The special attack orb now indicates when you have special attack enabled.

\\n

\\\"specorb\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add broad arrows to the fletching skill calculator
  • \\n
  • XP drop plugin will now center text of XP if skill icons are hidden
  • \\n
  • Fix agility plugin counting laps on the agility pyramid
  • \\n
  • The runecraft plugin can now send a notification when rune pouches degrade
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.182d04ca.chunk.js b/static/js/53.a5a4cd5a.chunk.js similarity index 97% rename from static/js/53.182d04ca.chunk.js rename to static/js/53.a5a4cd5a.chunk.js index b0a61cdb18..b45b7ae9e0 100644 --- a/static/js/53.182d04ca.chunk.js +++ b/static/js/53.a5a4cd5a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[53],{330: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

fairy-ring-filter

\n

The XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck)

\n

xp-tracker-pause

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Reading the Ring of Wealth boss log now updates the !kc command kill counts
  • \n
  • Theatre of Blood rewards are now automatically screenshotted
  • \n
  • Hunter level-ups are now properly screenshotted
  • \n
  • Screenshots taken in Deadman mode now reside in separate directory
  • \n
  • The King percival clue now also contains informations about nearest fairy ring
  • \n
  • Added Mounted Mythical Cape to the skill calculator
  • \n
  • Fix slayer plugin sometimes highlighting nonexistent NPCs
  • \n
  • Fix bug with ground items not always showing ground items
  • \n
  • Cacti in farming plugin now work correctly
  • \n
  • Untradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly
  • \n
  • Fix alignment of xpdrops when sprites are configured to be hidden
  • \n
  • Fix hiscore autocomplete when typing too quickly
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.182d04ca.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[53],{331: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

fairy-ring-filter

\n

The XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck)

\n

xp-tracker-pause

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Reading the Ring of Wealth boss log now updates the !kc command kill counts
  • \n
  • Theatre of Blood rewards are now automatically screenshotted
  • \n
  • Hunter level-ups are now properly screenshotted
  • \n
  • Screenshots taken in Deadman mode now reside in separate directory
  • \n
  • The King percival clue now also contains informations about nearest fairy ring
  • \n
  • Added Mounted Mythical Cape to the skill calculator
  • \n
  • Fix slayer plugin sometimes highlighting nonexistent NPCs
  • \n
  • Fix bug with ground items not always showing ground items
  • \n
  • Cacti in farming plugin now work correctly
  • \n
  • Untradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly
  • \n
  • Fix alignment of xpdrops when sprites are configured to be hidden
  • \n
  • Fix hiscore autocomplete when typing too quickly
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.a5a4cd5a.chunk.js.map \ No newline at end of file diff --git a/static/js/53.182d04ca.chunk.js.map b/static/js/53.a5a4cd5a.chunk.js.map similarity index 98% rename from static/js/53.182d04ca.chunk.js.map rename to static/js/53.a5a4cd5a.chunk.js.map index 7c37f1e4db..5f83bc839e 100644 --- a/static/js/53.182d04ca.chunk.js.map +++ b/static/js/53.a5a4cd5a.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.182d04ca.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

\\\"fairy-ring-filter\\\"

\\n

The XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck)

\\n

\\\"xp-tracker-pause\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Reading the Ring of Wealth boss log now updates the !kc command kill counts
  • \\n
  • Theatre of Blood rewards are now automatically screenshotted
  • \\n
  • Hunter level-ups are now properly screenshotted
  • \\n
  • Screenshots taken in Deadman mode now reside in separate directory
  • \\n
  • The King percival clue now also contains informations about nearest fairy ring
  • \\n
  • Added Mounted Mythical Cape to the skill calculator
  • \\n
  • Fix slayer plugin sometimes highlighting nonexistent NPCs
  • \\n
  • Fix bug with ground items not always showing ground items
  • \\n
  • Cacti in farming plugin now work correctly
  • \\n
  • Untradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly
  • \\n
  • Fix alignment of xpdrops when sprites are configured to be hidden
  • \\n
  • Fix hiscore autocomplete when typing too quickly
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.a5a4cd5a.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

\\\"fairy-ring-filter\\\"

\\n

The XP tracker now can be paused either on logout or after a configurable time period. (Contributed by @LeviSchuck)

\\n

\\\"xp-tracker-pause\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Reading the Ring of Wealth boss log now updates the !kc command kill counts
  • \\n
  • Theatre of Blood rewards are now automatically screenshotted
  • \\n
  • Hunter level-ups are now properly screenshotted
  • \\n
  • Screenshots taken in Deadman mode now reside in separate directory
  • \\n
  • The King percival clue now also contains informations about nearest fairy ring
  • \\n
  • Added Mounted Mythical Cape to the skill calculator
  • \\n
  • Fix slayer plugin sometimes highlighting nonexistent NPCs
  • \\n
  • Fix bug with ground items not always showing ground items
  • \\n
  • Cacti in farming plugin now work correctly
  • \\n
  • Untradeable versions of Sanguinesti Staff and Scythe now calculate GE value correctly
  • \\n
  • Fix alignment of xpdrops when sprites are configured to be hidden
  • \\n
  • Fix hiscore autocomplete when typing too quickly
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.fbfa5538.chunk.js b/static/js/54.08c5d72d.chunk.js similarity index 97% rename from static/js/54.fbfa5538.chunk.js rename to static/js/54.08c5d72d.chunk.js index 71ded6d69d..91619a2918 100644 --- a/static/js/54.fbfa5538.chunk.js +++ b/static/js/54.08c5d72d.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[54],{331: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

movable-widgets

\n

An achievement diary plugin was added which shows skill requirements on each\ntask in the diaries:

\n

diary

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix minimap overlays drawing on the minimap when it was hidden
  • \n
  • Fix minimap plugin to be able to hide the minimap on \'bottom line\' side stones\narrangement
  • \n
  • Fix !kc not working in private messages
  • \n
  • Rewrite ge plugin alt+click search to work more reliably on more interfaces,\nsuch as the inventory when in the grand exchange.
  • \n
  • Add abyssal sire stun timer
  • \n
  • Fix opponent info plugin hiscore lookup on seasonal deadman worlds
  • \n
  • Fix menaphite emote clue requirements
  • \n
  • Fix XP tracker to no longer track skills while they are not being trained
  • \n
  • Fix XP tracker to track past virtual level 126, up to 200m
  • \n
  • Add "show exact value" option to bank value plugin
  • \n
  • Move banana plantation clue out of tree
  • \n
  • Fix height of ground items
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.fbfa5538.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[54],{332: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

movable-widgets

\n

An achievement diary plugin was added which shows skill requirements on each\ntask in the diaries:

\n

diary

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix minimap overlays drawing on the minimap when it was hidden
  • \n
  • Fix minimap plugin to be able to hide the minimap on \'bottom line\' side stones\narrangement
  • \n
  • Fix !kc not working in private messages
  • \n
  • Rewrite ge plugin alt+click search to work more reliably on more interfaces,\nsuch as the inventory when in the grand exchange.
  • \n
  • Add abyssal sire stun timer
  • \n
  • Fix opponent info plugin hiscore lookup on seasonal deadman worlds
  • \n
  • Fix menaphite emote clue requirements
  • \n
  • Fix XP tracker to no longer track skills while they are not being trained
  • \n
  • Fix XP tracker to track past virtual level 126, up to 200m
  • \n
  • Add "show exact value" option to bank value plugin
  • \n
  • Move banana plantation clue out of tree
  • \n
  • Fix height of ground items
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.08c5d72d.chunk.js.map \ No newline at end of file diff --git a/static/js/54.fbfa5538.chunk.js.map b/static/js/54.08c5d72d.chunk.js.map similarity index 98% rename from static/js/54.fbfa5538.chunk.js.map rename to static/js/54.08c5d72d.chunk.js.map index ba3b9dbd6a..af0c57f245 100644 --- a/static/js/54.fbfa5538.chunk.js.map +++ b/static/js/54.08c5d72d.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.fbfa5538.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

\\\"movable-widgets\\\"

\\n

An achievement diary plugin was added which shows skill requirements on each\\ntask in the diaries:

\\n

\\\"diary\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix minimap overlays drawing on the minimap when it was hidden
  • \\n
  • Fix minimap plugin to be able to hide the minimap on 'bottom line' side stones\\narrangement
  • \\n
  • Fix !kc not working in private messages
  • \\n
  • Rewrite ge plugin alt+click search to work more reliably on more interfaces,\\nsuch as the inventory when in the grand exchange.
  • \\n
  • Add abyssal sire stun timer
  • \\n
  • Fix opponent info plugin hiscore lookup on seasonal deadman worlds
  • \\n
  • Fix menaphite emote clue requirements
  • \\n
  • Fix XP tracker to no longer track skills while they are not being trained
  • \\n
  • Fix XP tracker to track past virtual level 126, up to 200m
  • \\n
  • Add "show exact value" option to bank value plugin
  • \\n
  • Move banana plantation clue out of tree
  • \\n
  • Fix height of ground items
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.08c5d72d.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

\\\"movable-widgets\\\"

\\n

An achievement diary plugin was added which shows skill requirements on each\\ntask in the diaries:

\\n

\\\"diary\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix minimap overlays drawing on the minimap when it was hidden
  • \\n
  • Fix minimap plugin to be able to hide the minimap on 'bottom line' side stones\\narrangement
  • \\n
  • Fix !kc not working in private messages
  • \\n
  • Rewrite ge plugin alt+click search to work more reliably on more interfaces,\\nsuch as the inventory when in the grand exchange.
  • \\n
  • Add abyssal sire stun timer
  • \\n
  • Fix opponent info plugin hiscore lookup on seasonal deadman worlds
  • \\n
  • Fix menaphite emote clue requirements
  • \\n
  • Fix XP tracker to no longer track skills while they are not being trained
  • \\n
  • Fix XP tracker to track past virtual level 126, up to 200m
  • \\n
  • Add "show exact value" option to bank value plugin
  • \\n
  • Move banana plantation clue out of tree
  • \\n
  • Fix height of ground items
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.c6dac92d.chunk.js b/static/js/55.26f9d5db.chunk.js similarity index 98% rename from static/js/55.c6dac92d.chunk.js rename to static/js/55.26f9d5db.chunk.js index 046a536578..701c89cc01 100644 --- a/static/js/55.c6dac92d.chunk.js +++ b/static/js/55.26f9d5db.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[55],{332: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
    \n
  • Monsters
  • \n
  • Bosses (like Vorkath and Zulrah)
  • \n
  • Clue scrolls
  • \n
  • Chambers of Xeric
  • \n
  • Theatre of Blood
  • \n
  • Barrows Brothers
  • \n
  • Players you PK (!)
  • \n
\n

For 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.

\n

This feature is result of hard work of @WooxSolo, @Adam-,\n@TheStonedTurtle and @Psikoi, so thank you all for\nyour great work on it:

\n

loottracker1\nloottracker2\nloottracker3\nloottracker4

\n

Support 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

minnows

\n

The flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\n@forsco:

\n

prayerbarflick

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Ungael (Vorkath) obstacles has been added to agility plugin
  • \n
  • Meyerditch obstacles has been added to agility plugin
  • \n
  • Fairy ring clues will now warn about missing spade from inventory
  • \n
  • Lumbridge swamp emote clue now shows correct location
  • \n
  • Loading of window sidebar has been fixed, now it should not mysteriously disappear anymore
  • \n
  • Dig location for Barbarian Villag Hot&Cold clue is now correct
  • \n
  • Idle notifier now notify on crafting leather idle
  • \n
  • Requirement for slaying an Abyssal Demon corrected in Achievement Diary\nplugin
  • \n
  • Fix tile overlay height when highlighting a tile next to the edge of a bridge
  • \n
  • Add config for whether the killcount command is enabled
  • \n
  • Fix minimap overlay dot overlay being slightly off
  • \n
  • Crafting leather has been added to the idle notifier
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 18 contributors this release!

\n
Adam (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.c6dac92d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[55],{333: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
    \n
  • Monsters
  • \n
  • Bosses (like Vorkath and Zulrah)
  • \n
  • Clue scrolls
  • \n
  • Chambers of Xeric
  • \n
  • Theatre of Blood
  • \n
  • Barrows Brothers
  • \n
  • Players you PK (!)
  • \n
\n

For 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.

\n

This feature is result of hard work of @WooxSolo, @Adam-,\n@TheStonedTurtle and @Psikoi, so thank you all for\nyour great work on it:

\n

loottracker1\nloottracker2\nloottracker3\nloottracker4

\n

Support 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

minnows

\n

The flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\n@forsco:

\n

prayerbarflick

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Ungael (Vorkath) obstacles has been added to agility plugin
  • \n
  • Meyerditch obstacles has been added to agility plugin
  • \n
  • Fairy ring clues will now warn about missing spade from inventory
  • \n
  • Lumbridge swamp emote clue now shows correct location
  • \n
  • Loading of window sidebar has been fixed, now it should not mysteriously disappear anymore
  • \n
  • Dig location for Barbarian Villag Hot&Cold clue is now correct
  • \n
  • Idle notifier now notify on crafting leather idle
  • \n
  • Requirement for slaying an Abyssal Demon corrected in Achievement Diary\nplugin
  • \n
  • Fix tile overlay height when highlighting a tile next to the edge of a bridge
  • \n
  • Add config for whether the killcount command is enabled
  • \n
  • Fix minimap overlay dot overlay being slightly off
  • \n
  • Crafting leather has been added to the idle notifier
  • \n
\n

Enjoy!

\n

~ Tomas

\n

New commits

\n

We had 18 contributors this release!

\n
Adam (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.26f9d5db.chunk.js.map \ No newline at end of file diff --git a/static/js/55.c6dac92d.chunk.js.map b/static/js/55.26f9d5db.chunk.js.map similarity index 99% rename from static/js/55.c6dac92d.chunk.js.map rename to static/js/55.26f9d5db.chunk.js.map index 1ed88e5d93..1a3f00aa85 100644 --- a/static/js/55.c6dac92d.chunk.js.map +++ b/static/js/55.26f9d5db.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.c6dac92d.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
    \\n
  • Monsters
  • \\n
  • Bosses (like Vorkath and Zulrah)
  • \\n
  • Clue scrolls
  • \\n
  • Chambers of Xeric
  • \\n
  • Theatre of Blood
  • \\n
  • Barrows Brothers
  • \\n
  • Players you PK (!)
  • \\n
\\n

For 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.

\\n

This feature is result of hard work of @WooxSolo, @Adam-,\\n@TheStonedTurtle and @Psikoi, so thank you all for\\nyour great work on it:

\\n

\\\"loottracker1\\\"\\n\\\"loottracker2\\\"\\n\\\"loottracker3\\\"\\n\\\"loottracker4\\\"

\\n

Support 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

\\\"minnows\\\"

\\n

The flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\\n@forsco:

\\n

\\\"prayerbarflick\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Ungael (Vorkath) obstacles has been added to agility plugin
  • \\n
  • Meyerditch obstacles has been added to agility plugin
  • \\n
  • Fairy ring clues will now warn about missing spade from inventory
  • \\n
  • Lumbridge swamp emote clue now shows correct location
  • \\n
  • Loading of window sidebar has been fixed, now it should not mysteriously disappear anymore
  • \\n
  • Dig location for Barbarian Villag Hot&Cold clue is now correct
  • \\n
  • Idle notifier now notify on crafting leather idle
  • \\n
  • Requirement for slaying an Abyssal Demon corrected in Achievement Diary\\nplugin
  • \\n
  • Fix tile overlay height when highlighting a tile next to the edge of a bridge
  • \\n
  • Add config for whether the killcount command is enabled
  • \\n
  • Fix minimap overlay dot overlay being slightly off
  • \\n
  • Crafting leather has been added to the idle notifier
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 18 contributors this release!

\\n
Adam (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.26f9d5db.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
    \\n
  • Monsters
  • \\n
  • Bosses (like Vorkath and Zulrah)
  • \\n
  • Clue scrolls
  • \\n
  • Chambers of Xeric
  • \\n
  • Theatre of Blood
  • \\n
  • Barrows Brothers
  • \\n
  • Players you PK (!)
  • \\n
\\n

For 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.

\\n

This feature is result of hard work of @WooxSolo, @Adam-,\\n@TheStonedTurtle and @Psikoi, so thank you all for\\nyour great work on it:

\\n

\\\"loottracker1\\\"\\n\\\"loottracker2\\\"\\n\\\"loottracker3\\\"\\n\\\"loottracker4\\\"

\\n

Support 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

\\\"minnows\\\"

\\n

The flicking helper in Prayer plugin has been extended to also display in prayer bar, if it is enabled, thanks to\\n@forsco:

\\n

\\\"prayerbarflick\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Ungael (Vorkath) obstacles has been added to agility plugin
  • \\n
  • Meyerditch obstacles has been added to agility plugin
  • \\n
  • Fairy ring clues will now warn about missing spade from inventory
  • \\n
  • Lumbridge swamp emote clue now shows correct location
  • \\n
  • Loading of window sidebar has been fixed, now it should not mysteriously disappear anymore
  • \\n
  • Dig location for Barbarian Villag Hot&Cold clue is now correct
  • \\n
  • Idle notifier now notify on crafting leather idle
  • \\n
  • Requirement for slaying an Abyssal Demon corrected in Achievement Diary\\nplugin
  • \\n
  • Fix tile overlay height when highlighting a tile next to the edge of a bridge
  • \\n
  • Add config for whether the killcount command is enabled
  • \\n
  • Fix minimap overlay dot overlay being slightly off
  • \\n
  • Crafting leather has been added to the idle notifier
  • \\n
\\n

Enjoy!

\\n

~ Tomas

\\n

New commits

\\n

We had 18 contributors this release!

\\n
Adam (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.b5ab65d9.chunk.js b/static/js/56.042a9f61.chunk.js similarity index 97% rename from static/js/56.b5ab65d9.chunk.js rename to static/js/56.042a9f61.chunk.js index ff16800a5a..9d87ada454 100644 --- a/static/js/56.b5ab65d9.chunk.js +++ b/static/js/56.042a9f61.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[56],{333: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

timer1\ntimer2\ntimer3

\n

The RuneLite XP globes are now movable similar to other overlays:

\n

globes

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add !cmb chat command
  • \n
  • Add agility clickbox overlay to Werewolf course
  • \n
  • Add tablet creation to idle notifier
  • \n
  • Fix pest control and report button plugins which broke in the Monday game\nupdate
  • \n
  • Fix screen shake interfering with vertical camera
  • \n
  • Add option to raids plugin to show scouter interface throughout the raid
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.b5ab65d9.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[56],{334: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

timer1\ntimer2\ntimer3

\n

The RuneLite XP globes are now movable similar to other overlays:

\n

globes

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add !cmb chat command
  • \n
  • Add agility clickbox overlay to Werewolf course
  • \n
  • Add tablet creation to idle notifier
  • \n
  • Fix pest control and report button plugins which broke in the Monday game\nupdate
  • \n
  • Fix screen shake interfering with vertical camera
  • \n
  • Add option to raids plugin to show scouter interface throughout the raid
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.042a9f61.chunk.js.map \ No newline at end of file diff --git a/static/js/56.b5ab65d9.chunk.js.map b/static/js/56.042a9f61.chunk.js.map similarity index 98% rename from static/js/56.b5ab65d9.chunk.js.map rename to static/js/56.042a9f61.chunk.js.map index d0e7e80254..68cd735ca7 100644 --- a/static/js/56.b5ab65d9.chunk.js.map +++ b/static/js/56.042a9f61.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.b5ab65d9.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

\\\"timer1\\\"\\n\\\"timer2\\\"\\n\\\"timer3\\\"

\\n

The RuneLite XP globes are now movable similar to other overlays:

\\n

\\\"globes\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add !cmb chat command
  • \\n
  • Add agility clickbox overlay to Werewolf course
  • \\n
  • Add tablet creation to idle notifier
  • \\n
  • Fix pest control and report button plugins which broke in the Monday game\\nupdate
  • \\n
  • Fix screen shake interfering with vertical camera
  • \\n
  • Add option to raids plugin to show scouter interface throughout the raid
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.042a9f61.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

\\\"timer1\\\"\\n\\\"timer2\\\"\\n\\\"timer3\\\"

\\n

The RuneLite XP globes are now movable similar to other overlays:

\\n

\\\"globes\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add !cmb chat command
  • \\n
  • Add agility clickbox overlay to Werewolf course
  • \\n
  • Add tablet creation to idle notifier
  • \\n
  • Fix pest control and report button plugins which broke in the Monday game\\nupdate
  • \\n
  • Fix screen shake interfering with vertical camera
  • \\n
  • Add option to raids plugin to show scouter interface throughout the raid
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.b4ec6473.chunk.js b/static/js/57.1560ecd1.chunk.js similarity index 97% rename from static/js/57.b4ec6473.chunk.js rename to static/js/57.1560ecd1.chunk.js index 1097859c9c..2c808d7f67 100644 --- a/static/js/57.b4ec6473.chunk.js +++ b/static/js/57.1560ecd1.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[57],{334: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

whop1\nwhop2

\n

A 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix puzzle box solver showing solution arrows
  • \n
  • Fix player indicators plugin coloring entire menu option of other players
  • \n
  • Add Wintertodt to Discord plugin activity
  • \n
  • Add Woodcutting guild to Discord plugin activity
  • \n
  • Fix SDMM normal spellbook freeze timers
  • \n
  • Fix ancient freeze timers resetting on each animation
  • \n
  • Fix Grotesque Guardian loot tracker
  • \n
  • Fix seaweed patch times in the timer plugin
  • \n
  • Fix Chambers of Xeric plugin to not add multiple timers
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.b4ec6473.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[57],{335: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

whop1\nwhop2

\n

A 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix puzzle box solver showing solution arrows
  • \n
  • Fix player indicators plugin coloring entire menu option of other players
  • \n
  • Add Wintertodt to Discord plugin activity
  • \n
  • Add Woodcutting guild to Discord plugin activity
  • \n
  • Fix SDMM normal spellbook freeze timers
  • \n
  • Fix ancient freeze timers resetting on each animation
  • \n
  • Fix Grotesque Guardian loot tracker
  • \n
  • Fix seaweed patch times in the timer plugin
  • \n
  • Fix Chambers of Xeric plugin to not add multiple timers
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.1560ecd1.chunk.js.map \ No newline at end of file diff --git a/static/js/57.b4ec6473.chunk.js.map b/static/js/57.1560ecd1.chunk.js.map similarity index 98% rename from static/js/57.b4ec6473.chunk.js.map rename to static/js/57.1560ecd1.chunk.js.map index 5aacfc8aba..3e23b6fa90 100644 --- a/static/js/57.b4ec6473.chunk.js.map +++ b/static/js/57.1560ecd1.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.b4ec6473.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

\\\"whop1\\\"\\n\\\"whop2\\\"

\\n

A 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix puzzle box solver showing solution arrows
  • \\n
  • Fix player indicators plugin coloring entire menu option of other players
  • \\n
  • Add Wintertodt to Discord plugin activity
  • \\n
  • Add Woodcutting guild to Discord plugin activity
  • \\n
  • Fix SDMM normal spellbook freeze timers
  • \\n
  • Fix ancient freeze timers resetting on each animation
  • \\n
  • Fix Grotesque Guardian loot tracker
  • \\n
  • Fix seaweed patch times in the timer plugin
  • \\n
  • Fix Chambers of Xeric plugin to not add multiple timers
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.1560ecd1.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

\\\"whop1\\\"\\n\\\"whop2\\\"

\\n

A 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix puzzle box solver showing solution arrows
  • \\n
  • Fix player indicators plugin coloring entire menu option of other players
  • \\n
  • Add Wintertodt to Discord plugin activity
  • \\n
  • Add Woodcutting guild to Discord plugin activity
  • \\n
  • Fix SDMM normal spellbook freeze timers
  • \\n
  • Fix ancient freeze timers resetting on each animation
  • \\n
  • Fix Grotesque Guardian loot tracker
  • \\n
  • Fix seaweed patch times in the timer plugin
  • \\n
  • Fix Chambers of Xeric plugin to not add multiple timers
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.c505ca02.chunk.js b/static/js/58.0ffde795.chunk.js similarity index 98% rename from static/js/58.c505ca02.chunk.js rename to static/js/58.0ffde795.chunk.js index 90f3b370d0..c5a132e605 100644 --- a/static/js/58.c505ca02.chunk.js +++ b/static/js/58.0ffde795.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[58],{335: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

ardougne cloak teleport icon\nexplorer\'s ring teleport icon\nfremennik sea boots teleport icon\nwilderness obelisk teleport icons

\n

Several agility shortcuts and obstacles have been added to the agility shortcut\nhighlighter.

\n

falador wall shortcut\nriver salve shortcut\nunderwater obstacles\nunderwater shortcuts

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The WASD plugin is now smarter at deciding when to block inputs to the game
  • \n
  • Fix world hopper freezing client when trying to hop during times the game\nprevents you from hopping
  • \n
  • Add option to Corporeal Beast plugin to make left click on the Dark Energey\ncore "Walk here"
  • \n
  • Fix Corporal Beast plugin overlay sometimes not showing
  • \n
  • Fix Brimhaven agility alrena timer from resetting whenever an obstacle makes\nyou fall to the ground floor
  • \n
  • Fix GE plugin not to show the OSB actively traded price more reliably
  • \n
  • Fix NPCs with empty names being highlighted in some cases
  • \n
  • Fix Pest control plugin detecting shield status
  • \n
  • Time tracker stopwatches and timers now also accept more user-friendly time\nstrings, such as "01h30m15s"
  • \n
  • Adjusted Autumn and Winter Deadman Mode teleblock timers have been created in\nadvance of the upcoming DMM tournaments
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.c505ca02.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[58],{336: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

ardougne cloak teleport icon\nexplorer\'s ring teleport icon\nfremennik sea boots teleport icon\nwilderness obelisk teleport icons

\n

Several agility shortcuts and obstacles have been added to the agility shortcut\nhighlighter.

\n

falador wall shortcut\nriver salve shortcut\nunderwater obstacles\nunderwater shortcuts

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The WASD plugin is now smarter at deciding when to block inputs to the game
  • \n
  • Fix world hopper freezing client when trying to hop during times the game\nprevents you from hopping
  • \n
  • Add option to Corporeal Beast plugin to make left click on the Dark Energey\ncore "Walk here"
  • \n
  • Fix Corporal Beast plugin overlay sometimes not showing
  • \n
  • Fix Brimhaven agility alrena timer from resetting whenever an obstacle makes\nyou fall to the ground floor
  • \n
  • Fix GE plugin not to show the OSB actively traded price more reliably
  • \n
  • Fix NPCs with empty names being highlighted in some cases
  • \n
  • Fix Pest control plugin detecting shield status
  • \n
  • Time tracker stopwatches and timers now also accept more user-friendly time\nstrings, such as "01h30m15s"
  • \n
  • Adjusted Autumn and Winter Deadman Mode teleblock timers have been created in\nadvance of the upcoming DMM tournaments
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 15 contributors this release!

\n
Adam (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.0ffde795.chunk.js.map \ No newline at end of file diff --git a/static/js/58.c505ca02.chunk.js.map b/static/js/58.0ffde795.chunk.js.map similarity index 98% rename from static/js/58.c505ca02.chunk.js.map rename to static/js/58.0ffde795.chunk.js.map index cef16302da..b00717ea8d 100644 --- a/static/js/58.c505ca02.chunk.js.map +++ b/static/js/58.0ffde795.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.c505ca02.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

\\\"ardougne\\n\\\"explorer's\\n\\\"fremennik\\n\\\"wilderness

\\n

Several agility shortcuts and obstacles have been added to the agility shortcut\\nhighlighter.

\\n

\\\"falador\\n\\\"river\\n\\\"underwater\\n\\\"underwater

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The WASD plugin is now smarter at deciding when to block inputs to the game
  • \\n
  • Fix world hopper freezing client when trying to hop during times the game\\nprevents you from hopping
  • \\n
  • Add option to Corporeal Beast plugin to make left click on the Dark Energey\\ncore "Walk here"
  • \\n
  • Fix Corporal Beast plugin overlay sometimes not showing
  • \\n
  • Fix Brimhaven agility alrena timer from resetting whenever an obstacle makes\\nyou fall to the ground floor
  • \\n
  • Fix GE plugin not to show the OSB actively traded price more reliably
  • \\n
  • Fix NPCs with empty names being highlighted in some cases
  • \\n
  • Fix Pest control plugin detecting shield status
  • \\n
  • Time tracker stopwatches and timers now also accept more user-friendly time\\nstrings, such as "01h30m15s"
  • \\n
  • Adjusted Autumn and Winter Deadman Mode teleblock timers have been created in\\nadvance of the upcoming DMM tournaments
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.0ffde795.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

\\\"ardougne\\n\\\"explorer's\\n\\\"fremennik\\n\\\"wilderness

\\n

Several agility shortcuts and obstacles have been added to the agility shortcut\\nhighlighter.

\\n

\\\"falador\\n\\\"river\\n\\\"underwater\\n\\\"underwater

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The WASD plugin is now smarter at deciding when to block inputs to the game
  • \\n
  • Fix world hopper freezing client when trying to hop during times the game\\nprevents you from hopping
  • \\n
  • Add option to Corporeal Beast plugin to make left click on the Dark Energey\\ncore "Walk here"
  • \\n
  • Fix Corporal Beast plugin overlay sometimes not showing
  • \\n
  • Fix Brimhaven agility alrena timer from resetting whenever an obstacle makes\\nyou fall to the ground floor
  • \\n
  • Fix GE plugin not to show the OSB actively traded price more reliably
  • \\n
  • Fix NPCs with empty names being highlighted in some cases
  • \\n
  • Fix Pest control plugin detecting shield status
  • \\n
  • Time tracker stopwatches and timers now also accept more user-friendly time\\nstrings, such as "01h30m15s"
  • \\n
  • Adjusted Autumn and Winter Deadman Mode teleblock timers have been created in\\nadvance of the upcoming DMM tournaments
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 15 contributors this release!

\\n
Adam (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.bd3d8da5.chunk.js b/static/js/59.7f3967e3.chunk.js similarity index 97% rename from static/js/59.bd3d8da5.chunk.js rename to static/js/59.7f3967e3.chunk.js index 62f5bbe50f..90e2ca2796 100644 --- a/static/js/59.bd3d8da5.chunk.js +++ b/static/js/59.7f3967e3.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[59],{336: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

runenergy1\nrunenergy2

\n

Thanks 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

friendlist

\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

teamcapes

\n

The world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\n@Retoxified:

\n

hopto

\n

Loose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\n@ItsSebas:

\n

looserailing

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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
  • \n
  • Barrows kill count chat message will now properly update the !kc data
  • \n
  • Time tracking plugin now also has "Special patches" in the overview tab
  • \n
  • Teleblock timers are now removed on logout
  • \n
  • Corp plugin now has option to hide the damage overlay
  • \n
  • "Pause all" menu option has been added to XP tracker right-click menu
  • \n
\n

Enjoy!

\n

- Tomas

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.bd3d8da5.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[59],{337: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

runenergy1\nrunenergy2

\n

Thanks 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

friendlist

\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

teamcapes

\n

The world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\n@Retoxified:

\n

hopto

\n

Loose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\n@ItsSebas:

\n

looserailing

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The 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
  • \n
  • Barrows kill count chat message will now properly update the !kc data
  • \n
  • Time tracking plugin now also has "Special patches" in the overview tab
  • \n
  • Teleblock timers are now removed on logout
  • \n
  • Corp plugin now has option to hide the damage overlay
  • \n
  • "Pause all" menu option has been added to XP tracker right-click menu
  • \n
\n

Enjoy!

\n

- Tomas

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.7f3967e3.chunk.js.map \ No newline at end of file diff --git a/static/js/59.bd3d8da5.chunk.js.map b/static/js/59.7f3967e3.chunk.js.map similarity index 98% rename from static/js/59.bd3d8da5.chunk.js.map rename to static/js/59.7f3967e3.chunk.js.map index 9a392b026e..6751bf0b7b 100644 --- a/static/js/59.bd3d8da5.chunk.js.map +++ b/static/js/59.7f3967e3.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.bd3d8da5.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

\\\"runenergy1\\\"\\n\\\"runenergy2\\\"

\\n

Thanks 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

\\\"friendlist\\\"

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

\\\"teamcapes\\\"

\\n

The world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\\n@Retoxified:

\\n

\\\"hopto\\\"

\\n

Loose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\\n@ItsSebas:

\\n

\\\"looserailing\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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
  • \\n
  • Barrows kill count chat message will now properly update the !kc data
  • \\n
  • Time tracking plugin now also has "Special patches" in the overview tab
  • \\n
  • Teleblock timers are now removed on logout
  • \\n
  • Corp plugin now has option to hide the damage overlay
  • \\n
  • "Pause all" menu option has been added to XP tracker right-click menu
  • \\n
\\n

Enjoy!

\\n

- Tomas

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.7f3967e3.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

\\\"runenergy1\\\"\\n\\\"runenergy2\\\"

\\n

Thanks 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

\\\"friendlist\\\"

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

\\\"teamcapes\\\"

\\n

The world hopper plugin now has support for hopping to people in chat via right-click menu thanks to\\n@Retoxified:

\\n

\\\"hopto\\\"

\\n

Loose railing shortcut near Tree Gnome Village highlighting has been added to agility plugin thanks to\\n@ItsSebas:

\\n

\\\"looserailing\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The 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
  • \\n
  • Barrows kill count chat message will now properly update the !kc data
  • \\n
  • Time tracking plugin now also has "Special patches" in the overview tab
  • \\n
  • Teleblock timers are now removed on logout
  • \\n
  • Corp plugin now has option to hide the damage overlay
  • \\n
  • "Pause all" menu option has been added to XP tracker right-click menu
  • \\n
\\n

Enjoy!

\\n

- Tomas

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.1374853e.chunk.js b/static/js/6.1374853e.chunk.js deleted file mode 100644 index 2e87da8d6c..0000000000 --- a/static/js/6.1374853e.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(284)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283};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){},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":[297,20],"./2017-12-21-00-00-1.2.10-Release.md":[298,21],"./2018-01-12-00-00-1.2.11-Release.md":[299,22],"./2018-01-18-00-00-1.2.12-Release.md":[300,23],"./2018-01-25-00-00-1.2.13-Release.md":[301,24],"./2018-02-01-00-00-1.2.14-Release.md":[302,25],"./2018-02-08-00-00-1.2.15-Release.md":[303,26],"./2018-02-15-00-00-1.2.16-Release.md":[304,27],"./2018-02-22-00-00-1.2.17-Release.md":[305,28],"./2018-03-01-00-00-1.2.18-Release.md":[306,29],"./2018-03-08-00-00-1.2.19-Release.md":[307,30],"./2018-03-15-00-00-1.3.0-Release.md":[308,31],"./2018-03-22-00-00-1.3.1-Release.md":[309,32],"./2018-03-29-00-00-1.3.2-Release.md":[310,33],"./2018-04-05-00-00-1.3.3-Release.md":[311,34],"./2018-04-12-00-00-1.3.4-Release.md":[312,35],"./2018-04-19-00-00-1.3.5-Release.md":[313,36],"./2018-04-26-00-00-1.3.6-Release.md":[314,37],"./2018-05-03-00-00-1.3.7-Release.md":[315,38],"./2018-05-10-00-00-1.3.8-Release.md":[316,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[317,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[318,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[319,42],"./2018-05-18-00-00-1.3.9-Release.md":[320,43],"./2018-05-24-00-00-1.4.0-Release.md":[321,44],"./2018-05-25-23-00-Phishing-Attempts.md":[322,45],"./2018-05-31-07-00-1.4.1-Release.md":[323,46],"./2018-06-07-07-00-1.4.2-Release.md":[324,47],"./2018-06-14-07-00-1.4.3-Release.md":[325,48],"./2018-06-21-07-00-1.4.4-Release.md":[326,49],"./2018-06-28-07-00-1.4.5-Release.md":[327,50],"./2018-07-05-07-00-1.4.6-Release.md":[328,51],"./2018-07-12-07-00-1.4.7-Release.md":[329,52],"./2018-07-19-07-00-1.4.8-Release.md":[330,53],"./2018-07-26-07-00-1.4.9-Release.md":[331,54],"./2018-08-02-10-00-1.4.10-Release.md":[332,55],"./2018-08-09-10-00-1.4.11-Release.md":[333,56],"./2018-08-16-10-00-1.4.12-Release.md":[334,57],"./2018-08-23-10-00-1.4.13-Release.md":[335,58],"./2018-08-30-10-00-1.4.15-Release.md":[336,59],"./2018-09-06-10-00-1.4.16-Release.md":[337,60],"./2018-09-13-10-00-1.4.17-Release.md":[338,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[339,62],"./2018-09-20-10-00-1.4.18-Release.md":[340,63],"./2018-09-27-10-00-1.4.19-Release.md":[341,64],"./2018-10-04-10-00-1.4.20-Release.md":[342,65],"./2018-10-11-10-00-1.4.21-Release.md":[343,66],"./2018-10-18-10-00-1.4.22-Release.md":[344,67],"./2018-10-25-10-00-1.4.23-Release.md":[345,68],"./2018-11-01-10-00-1.4.24-Release.md":[346,69],"./2018-11-08-10-00-1.4.25-Release.md":[347,70],"./2018-11-15-10-00-1.4.26-Release.md":[348,71],"./2018-11-16-12-00-1.5.0-Release.md":[349,72],"./2018-11-22-10-00-1.5.1-Release.md":[350,73],"./2018-11-29-10-00-1.5.2-Release.md":[351,74],"./2018-12-06-10-00-1.5.3-Release.md":[352,75],"./2018-12-13-10-00-1.5.4-Release.md":[353,76],"./2018-12-20-10-00-1.5.5-Release.md":[354,77],"./2019-01-03-10-00-1.5.6-Release.md":[355,78],"./2019-01-10-10-00-1.5.7-Release.md":[356,79],"./2019-01-17-10-00-1.5.8-Release.md":[357,80],"./2019-01-24-10-00-1.5.9-Release.md":[358,81],"./2019-01-31-10-00-1.5.10-Release.md":[359,82],"./2019-02-07-10-00-1.5.11-Release.md":[360,83],"./2019-02-14-10-00-1.5.12-Release.md":[361,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[362,85],"./2019-02-21-10-00-1.5.13-Release.md":[363,86],"./2019-02-28-10-00-1.5.14-Release.md":[364,87],"./2019-03-07-10-00-1.5.15-Release.md":[365,88],"./2019-03-14-10-00-1.5.16-Release.md":[366,89],"./2019-03-21-12-00-1.5.17-Release.md":[367,90],"./2019-03-28-10-00-1.5.18-Release.md":[368,91],"./2019-04-11-10-00-1.5.19-Release.md":[369,92],"./2019-04-18-10-00-1.5.20-Release.md":[370,93],"./2019-04-25-10-00-1.5.21-Release.md":[371,94],"./2019-05-03-10-00-1.5.22-Release.md":[372,95],"./2019-05-16-10-00-1.5.23-Release.md":[373,96],"./2019-05-30-10-00-1.5.25-Release.md":[374,97],"./2019-06-06-10-00-1.5.26-Release.md":[375,98],"./2019-06-20-10-00-1.5.27-Release.md":[376,99],"./2019-07-04-10-00-1.5.28-Release.md":[377,100],"./2019-07-18-10-00-1.5.29-Release.md":[378,101],"./2019-08-01-10-00-1.5.30-Release.md":[379,102],"./2019-08-15-10-00-1.5.31-Release.md":[380,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[381,104],"./2019-08-29-10-00-1.5.32-Release.md":[382,105],"./2019-09-12-10-00-1.5.33-Release.md":[383,106],"./2019-09-26-10-00-1.5.34-Release.md":[384,107],"./2019-10-02-10-00-1.5.35-Release.md":[385,108],"./2019-10-17-10-00-1.5.36-Release.md":[386,109],"./2019-10-30-10-00-1.5.37-Release.md":[387,110],"./2019-11-14-10-00-1.5.40-Release.md":[388,111],"./2019-11-28-10-00-1.5.42-Release.md":[389,112],"./2019-12-16-10-00-1.5.43-Release.md":[390,113],"./2019-12-19-10-00-1.6.0-Release.md":[391,114],"./2020-01-09-10-00-1.6.1-Release.md":[392,115],"./2020-01-16-10-00-1.6.2-Release.md":[393,116],"./2020-01-22-10-00-1.6.4-Release.md":[394,117],"./2020-01-29-10-00-1.6.5-Release.md":[395,118],"./2020-02-13-10-00-1.6.6-Release.md":[396,119],"./2020-02-27-10-00-1.6.8-Release.md":[397,120],"./2020-03-05-10-00-1.6.9-Release.md":[398,121],"./2020-03-26-10-00-1.6.10-Release.md":[399,122],"./2020-04-16-10-00-1.6.11-Release.md":[400,123],"./2020-05-01-10-00-1.6.13-Release.md":[401,124],"./2020-05-09-10-00-1.6.14-Release.md":[402,125],"./2020-05-28-10-00-1.6.17-Release.md":[403,126],"./2020-06-12-10-00-1.6.19-Release.md":[404,127],"./2020-06-18-10-00-1.6.20-Release.md":[405,128],"./2020-06-25-10-00-1.6.21-Release.md":[406,129],"./2020-07-16-10-00-1.6.22-Release.md":[407,130],"./2020-07-23-10-00-1.6.23-Release.md":[408,131],"./2020-08-26-10-00-1.6.25-Release.md":[409,132],"./2020-09-23-10-00-1.6.27-Release.md":[410,133],"./2020-10-07-10-00-1.6.28-Release.md":[411,134],"./2020-11-11-10-00-1.6.31-Release.md":[412,135],"./2020-12-02-10-00-1.6.33-Release.md":[413,136],"./2021-01-06-10-00-1.6.36-Release.md":[414,137],"./2021-01-27-10-00-1.6.38-Release.md":[415,138],"./2021-02-13-00-00-1.7.0-Release.md":[416,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[417,140],"./2021-03-24-10-00-1.7.3-Release.md":[418,141],"./2021-05-12-10-00-1.7.7-Release.md":[419,142],"./2021-05-28-10-00-1.7.10-Release.md":[420,143],"./2021-06-23-10-00-1.7.13-Release.md":[421,144],"./2021-07-14-10-00-1.7.16-Release.md":[422,145],"./2021-07-21-10-00-1.7.17-Release.md":[423,146],"./2021-09-06-10-00-1.7.22-Release.md":[424,147],"./2021-10-06-10-00-1.7.25-Release.md":[425,148],"./2021-10-28-19-00-1.8.0-Release.md":[426,149],"./2021-12-16-19-00-1.8.7-Release.md":[427,150],"./2022-03-09-19-00-1.8.13-Release.md":[428,151],"./2022-05-11-19-00-1.8.19-Release.md":[429,152],"./2022-06-17-19-00-1.8.24-Release.md":[430,153],"./2022-07-13-19-00-1.8.27-Release.md":[431,154],"./2022-08-21-19-00-1.8.31-Release.md":[432,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[433,156],"./2022-10-05-15-00-1.9.0-Release.md":[434,157],"./2022-12-07-15-00-1.9.5-Release.md":[435,158],"./2023-01-22-10-00-security-incident-jan21.md":[436,159],"./2023-02-18-15-00-1.9.11-Release.md":[437,160],"./2023-05-13-15-00-1.10.0-Release.md":[438,161],"./2023-07-01-15-00-1.10.6-Release.md":[439,162],"./2023-09-09-15-00-1.10.12-Release.md":[440,163],"./2023-11-05-10-00-1.10.15-Release.md":[441,164],"./2024-02-24-23-00-1.10.23-Release.md":[442,165],"./2024-03-21-23-00-1.10.25-Release.md":[443,166]};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=284,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.1374853e.chunk.js.map \ No newline at end of file diff --git a/static/js/6.1374853e.chunk.js.map b/static/js/6.1374853e.chunk.js.map deleted file mode 100644 index 587a2cece3..0000000000 --- a/static/js/6.1374853e.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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C,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,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,mMChmBjB,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.1374853e.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283\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\t297,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t298,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t299,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t300,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t301,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t302,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t303,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t304,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t305,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t306,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t307,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t308,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t309,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t310,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t311,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t312,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t313,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t314,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t315,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t316,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t317,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t320,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t321,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t322,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t323,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t324,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t325,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t326,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t327,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t328,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t329,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t330,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t331,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t332,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t333,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t334,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t335,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t336,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t337,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t338,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t339,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t340,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t341,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t342,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t343,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t344,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t345,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t346,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t347,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t348,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t349,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t350,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t351,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t352,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t353,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t354,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t355,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t356,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t357,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t358,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t359,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t360,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t361,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t362,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t363,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t364,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t365,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t366,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t367,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t368,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t369,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t370,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t371,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t372,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t373,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t374,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t375,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t376,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t377,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t378,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t379,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t380,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t381,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t382,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t383,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t384,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t385,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t386,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t387,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t388,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t389,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t390,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t391,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t392,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t393,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t394,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t395,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t396,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t397,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t398,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t399,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t400,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t401,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t402,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t403,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t404,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t405,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t406,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t407,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t408,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t409,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t410,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t411,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t412,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t413,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t414,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t415,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t416,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t417,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t418,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t419,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t420,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t421,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t422,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t423,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t424,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t425,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t426,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t427,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t428,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t429,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t430,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t431,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t432,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t433,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t434,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t435,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t436,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t437,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t438,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t439,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t440,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t441,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t442,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t443,\n\t\t166\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 = 284;\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

Blog

\n
    \n {Array.from(blog.keys()).map(id => (\n \n blog\n .get(id)()\n .then(({ id, date, title, description, author }) => (\n \n
    \n
    {title || id}
    \n \n {ago(date)} by {author}\n \n
    \n

    {description}

    \n \n ))\n }\n />\n ))}\n
\n
\n
\n
\n)\n\nexport default Blog\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6.8b31eff6.chunk.js b/static/js/6.8b31eff6.chunk.js new file mode 100644 index 0000000000..5b4f703235 --- /dev/null +++ b/static/js/6.8b31eff6.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(285)(`./${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,"./2024-03-21-23-00-1.10.25-Release.md":283,"./2024-04-17-23-00-1.10.27-Release.md":284};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){},function(e,n){},function(e,n,a){var s={"./2017-12-13-00-00-New-Site.md":[298,20],"./2017-12-21-00-00-1.2.10-Release.md":[299,21],"./2018-01-12-00-00-1.2.11-Release.md":[300,22],"./2018-01-18-00-00-1.2.12-Release.md":[301,23],"./2018-01-25-00-00-1.2.13-Release.md":[302,24],"./2018-02-01-00-00-1.2.14-Release.md":[303,25],"./2018-02-08-00-00-1.2.15-Release.md":[304,26],"./2018-02-15-00-00-1.2.16-Release.md":[305,27],"./2018-02-22-00-00-1.2.17-Release.md":[306,28],"./2018-03-01-00-00-1.2.18-Release.md":[307,29],"./2018-03-08-00-00-1.2.19-Release.md":[308,30],"./2018-03-15-00-00-1.3.0-Release.md":[309,31],"./2018-03-22-00-00-1.3.1-Release.md":[310,32],"./2018-03-29-00-00-1.3.2-Release.md":[311,33],"./2018-04-05-00-00-1.3.3-Release.md":[312,34],"./2018-04-12-00-00-1.3.4-Release.md":[313,35],"./2018-04-19-00-00-1.3.5-Release.md":[314,36],"./2018-04-26-00-00-1.3.6-Release.md":[315,37],"./2018-05-03-00-00-1.3.7-Release.md":[316,38],"./2018-05-10-00-00-1.3.8-Release.md":[317,39],"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md":[318,40],"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md":[319,41],"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md":[320,42],"./2018-05-18-00-00-1.3.9-Release.md":[321,43],"./2018-05-24-00-00-1.4.0-Release.md":[322,44],"./2018-05-25-23-00-Phishing-Attempts.md":[323,45],"./2018-05-31-07-00-1.4.1-Release.md":[324,46],"./2018-06-07-07-00-1.4.2-Release.md":[325,47],"./2018-06-14-07-00-1.4.3-Release.md":[326,48],"./2018-06-21-07-00-1.4.4-Release.md":[327,49],"./2018-06-28-07-00-1.4.5-Release.md":[328,50],"./2018-07-05-07-00-1.4.6-Release.md":[329,51],"./2018-07-12-07-00-1.4.7-Release.md":[330,52],"./2018-07-19-07-00-1.4.8-Release.md":[331,53],"./2018-07-26-07-00-1.4.9-Release.md":[332,54],"./2018-08-02-10-00-1.4.10-Release.md":[333,55],"./2018-08-09-10-00-1.4.11-Release.md":[334,56],"./2018-08-16-10-00-1.4.12-Release.md":[335,57],"./2018-08-23-10-00-1.4.13-Release.md":[336,58],"./2018-08-30-10-00-1.4.15-Release.md":[337,59],"./2018-09-06-10-00-1.4.16-Release.md":[338,60],"./2018-09-13-10-00-1.4.17-Release.md":[339,61],"./2018-09-18-21-00-Worldhopper-disabled.md":[340,62],"./2018-09-20-10-00-1.4.18-Release.md":[341,63],"./2018-09-27-10-00-1.4.19-Release.md":[342,64],"./2018-10-04-10-00-1.4.20-Release.md":[343,65],"./2018-10-11-10-00-1.4.21-Release.md":[344,66],"./2018-10-18-10-00-1.4.22-Release.md":[345,67],"./2018-10-25-10-00-1.4.23-Release.md":[346,68],"./2018-11-01-10-00-1.4.24-Release.md":[347,69],"./2018-11-08-10-00-1.4.25-Release.md":[348,70],"./2018-11-15-10-00-1.4.26-Release.md":[349,71],"./2018-11-16-12-00-1.5.0-Release.md":[350,72],"./2018-11-22-10-00-1.5.1-Release.md":[351,73],"./2018-11-29-10-00-1.5.2-Release.md":[352,74],"./2018-12-06-10-00-1.5.3-Release.md":[353,75],"./2018-12-13-10-00-1.5.4-Release.md":[354,76],"./2018-12-20-10-00-1.5.5-Release.md":[355,77],"./2019-01-03-10-00-1.5.6-Release.md":[356,78],"./2019-01-10-10-00-1.5.7-Release.md":[357,79],"./2019-01-17-10-00-1.5.8-Release.md":[358,80],"./2019-01-24-10-00-1.5.9-Release.md":[359,81],"./2019-01-31-10-00-1.5.10-Release.md":[360,82],"./2019-02-07-10-00-1.5.11-Release.md":[361,83],"./2019-02-14-10-00-1.5.12-Release.md":[362,84],"./2019-02-16-16-00-Launcher-1.6.2-Release.md":[363,85],"./2019-02-21-10-00-1.5.13-Release.md":[364,86],"./2019-02-28-10-00-1.5.14-Release.md":[365,87],"./2019-03-07-10-00-1.5.15-Release.md":[366,88],"./2019-03-14-10-00-1.5.16-Release.md":[367,89],"./2019-03-21-12-00-1.5.17-Release.md":[368,90],"./2019-03-28-10-00-1.5.18-Release.md":[369,91],"./2019-04-11-10-00-1.5.19-Release.md":[370,92],"./2019-04-18-10-00-1.5.20-Release.md":[371,93],"./2019-04-25-10-00-1.5.21-Release.md":[372,94],"./2019-05-03-10-00-1.5.22-Release.md":[373,95],"./2019-05-16-10-00-1.5.23-Release.md":[374,96],"./2019-05-30-10-00-1.5.25-Release.md":[375,97],"./2019-06-06-10-00-1.5.26-Release.md":[376,98],"./2019-06-20-10-00-1.5.27-Release.md":[377,99],"./2019-07-04-10-00-1.5.28-Release.md":[378,100],"./2019-07-18-10-00-1.5.29-Release.md":[379,101],"./2019-08-01-10-00-1.5.30-Release.md":[380,102],"./2019-08-15-10-00-1.5.31-Release.md":[381,103],"./2019-08-16-10-00-Launcher-Release-2.0.0.md":[382,104],"./2019-08-29-10-00-1.5.32-Release.md":[383,105],"./2019-09-12-10-00-1.5.33-Release.md":[384,106],"./2019-09-26-10-00-1.5.34-Release.md":[385,107],"./2019-10-02-10-00-1.5.35-Release.md":[386,108],"./2019-10-17-10-00-1.5.36-Release.md":[387,109],"./2019-10-30-10-00-1.5.37-Release.md":[388,110],"./2019-11-14-10-00-1.5.40-Release.md":[389,111],"./2019-11-28-10-00-1.5.42-Release.md":[390,112],"./2019-12-16-10-00-1.5.43-Release.md":[391,113],"./2019-12-19-10-00-1.6.0-Release.md":[392,114],"./2020-01-09-10-00-1.6.1-Release.md":[393,115],"./2020-01-16-10-00-1.6.2-Release.md":[394,116],"./2020-01-22-10-00-1.6.4-Release.md":[395,117],"./2020-01-29-10-00-1.6.5-Release.md":[396,118],"./2020-02-13-10-00-1.6.6-Release.md":[397,119],"./2020-02-27-10-00-1.6.8-Release.md":[398,120],"./2020-03-05-10-00-1.6.9-Release.md":[399,121],"./2020-03-26-10-00-1.6.10-Release.md":[400,122],"./2020-04-16-10-00-1.6.11-Release.md":[401,123],"./2020-05-01-10-00-1.6.13-Release.md":[402,124],"./2020-05-09-10-00-1.6.14-Release.md":[403,125],"./2020-05-28-10-00-1.6.17-Release.md":[404,126],"./2020-06-12-10-00-1.6.19-Release.md":[405,127],"./2020-06-18-10-00-1.6.20-Release.md":[406,128],"./2020-06-25-10-00-1.6.21-Release.md":[407,129],"./2020-07-16-10-00-1.6.22-Release.md":[408,130],"./2020-07-23-10-00-1.6.23-Release.md":[409,131],"./2020-08-26-10-00-1.6.25-Release.md":[410,132],"./2020-09-23-10-00-1.6.27-Release.md":[411,133],"./2020-10-07-10-00-1.6.28-Release.md":[412,134],"./2020-11-11-10-00-1.6.31-Release.md":[413,135],"./2020-12-02-10-00-1.6.33-Release.md":[414,136],"./2021-01-06-10-00-1.6.36-Release.md":[415,137],"./2021-01-27-10-00-1.6.38-Release.md":[416,138],"./2021-02-13-00-00-1.7.0-Release.md":[417,139],"./2021-03-08-20-00-Wiki-Ge-Partnership.md":[418,140],"./2021-03-24-10-00-1.7.3-Release.md":[419,141],"./2021-05-12-10-00-1.7.7-Release.md":[420,142],"./2021-05-28-10-00-1.7.10-Release.md":[421,143],"./2021-06-23-10-00-1.7.13-Release.md":[422,144],"./2021-07-14-10-00-1.7.16-Release.md":[423,145],"./2021-07-21-10-00-1.7.17-Release.md":[424,146],"./2021-09-06-10-00-1.7.22-Release.md":[425,147],"./2021-10-06-10-00-1.7.25-Release.md":[426,148],"./2021-10-28-19-00-1.8.0-Release.md":[427,149],"./2021-12-16-19-00-1.8.7-Release.md":[428,150],"./2022-03-09-19-00-1.8.13-Release.md":[429,151],"./2022-05-11-19-00-1.8.19-Release.md":[430,152],"./2022-06-17-19-00-1.8.24-Release.md":[431,153],"./2022-07-13-19-00-1.8.27-Release.md":[432,154],"./2022-08-21-19-00-1.8.31-Release.md":[433,155],"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md":[434,156],"./2022-10-05-15-00-1.9.0-Release.md":[435,157],"./2022-12-07-15-00-1.9.5-Release.md":[436,158],"./2023-01-22-10-00-security-incident-jan21.md":[437,159],"./2023-02-18-15-00-1.9.11-Release.md":[438,160],"./2023-05-13-15-00-1.10.0-Release.md":[439,161],"./2023-07-01-15-00-1.10.6-Release.md":[440,162],"./2023-09-09-15-00-1.10.12-Release.md":[441,163],"./2023-11-05-10-00-1.10.15-Release.md":[442,164],"./2024-02-24-23-00-1.10.23-Release.md":[443,165],"./2024-03-21-23-00-1.10.25-Release.md":[444,166],"./2024-04-17-23-00-1.10.27-Release.md":[445,167]};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=285,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.8b31eff6.chunk.js.map \ No newline at end of file diff --git a/static/js/6.8b31eff6.chunk.js.map b/static/js/6.8b31eff6.chunk.js.map new file mode 100644 index 0000000000..7b8813eb02 --- /dev/null +++ b/static/js/6.8b31eff6.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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CA,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,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,oMCpmBjB,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.8b31eff6.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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\t\"./2024-03-21-23-00-1.10.25-Release.md\": 283,\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": 284\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\t298,\n\t\t20\n\t],\n\t\"./2017-12-21-00-00-1.2.10-Release.md\": [\n\t\t299,\n\t\t21\n\t],\n\t\"./2018-01-12-00-00-1.2.11-Release.md\": [\n\t\t300,\n\t\t22\n\t],\n\t\"./2018-01-18-00-00-1.2.12-Release.md\": [\n\t\t301,\n\t\t23\n\t],\n\t\"./2018-01-25-00-00-1.2.13-Release.md\": [\n\t\t302,\n\t\t24\n\t],\n\t\"./2018-02-01-00-00-1.2.14-Release.md\": [\n\t\t303,\n\t\t25\n\t],\n\t\"./2018-02-08-00-00-1.2.15-Release.md\": [\n\t\t304,\n\t\t26\n\t],\n\t\"./2018-02-15-00-00-1.2.16-Release.md\": [\n\t\t305,\n\t\t27\n\t],\n\t\"./2018-02-22-00-00-1.2.17-Release.md\": [\n\t\t306,\n\t\t28\n\t],\n\t\"./2018-03-01-00-00-1.2.18-Release.md\": [\n\t\t307,\n\t\t29\n\t],\n\t\"./2018-03-08-00-00-1.2.19-Release.md\": [\n\t\t308,\n\t\t30\n\t],\n\t\"./2018-03-15-00-00-1.3.0-Release.md\": [\n\t\t309,\n\t\t31\n\t],\n\t\"./2018-03-22-00-00-1.3.1-Release.md\": [\n\t\t310,\n\t\t32\n\t],\n\t\"./2018-03-29-00-00-1.3.2-Release.md\": [\n\t\t311,\n\t\t33\n\t],\n\t\"./2018-04-05-00-00-1.3.3-Release.md\": [\n\t\t312,\n\t\t34\n\t],\n\t\"./2018-04-12-00-00-1.3.4-Release.md\": [\n\t\t313,\n\t\t35\n\t],\n\t\"./2018-04-19-00-00-1.3.5-Release.md\": [\n\t\t314,\n\t\t36\n\t],\n\t\"./2018-04-26-00-00-1.3.6-Release.md\": [\n\t\t315,\n\t\t37\n\t],\n\t\"./2018-05-03-00-00-1.3.7-Release.md\": [\n\t\t316,\n\t\t38\n\t],\n\t\"./2018-05-10-00-00-1.3.8-Release.md\": [\n\t\t317,\n\t\t39\n\t],\n\t\"./2018-05-15-00-00-RuneLite-threatened-to-shutdown.md\": [\n\t\t318,\n\t\t40\n\t],\n\t\"./2018-05-16-00-00-Update-RuneLite-threatened-to-shutdown.md\": [\n\t\t319,\n\t\t41\n\t],\n\t\"./2018-05-16-03-00-Update-2-RuneLite-threatened-to-shutdown.md\": [\n\t\t320,\n\t\t42\n\t],\n\t\"./2018-05-18-00-00-1.3.9-Release.md\": [\n\t\t321,\n\t\t43\n\t],\n\t\"./2018-05-24-00-00-1.4.0-Release.md\": [\n\t\t322,\n\t\t44\n\t],\n\t\"./2018-05-25-23-00-Phishing-Attempts.md\": [\n\t\t323,\n\t\t45\n\t],\n\t\"./2018-05-31-07-00-1.4.1-Release.md\": [\n\t\t324,\n\t\t46\n\t],\n\t\"./2018-06-07-07-00-1.4.2-Release.md\": [\n\t\t325,\n\t\t47\n\t],\n\t\"./2018-06-14-07-00-1.4.3-Release.md\": [\n\t\t326,\n\t\t48\n\t],\n\t\"./2018-06-21-07-00-1.4.4-Release.md\": [\n\t\t327,\n\t\t49\n\t],\n\t\"./2018-06-28-07-00-1.4.5-Release.md\": [\n\t\t328,\n\t\t50\n\t],\n\t\"./2018-07-05-07-00-1.4.6-Release.md\": [\n\t\t329,\n\t\t51\n\t],\n\t\"./2018-07-12-07-00-1.4.7-Release.md\": [\n\t\t330,\n\t\t52\n\t],\n\t\"./2018-07-19-07-00-1.4.8-Release.md\": [\n\t\t331,\n\t\t53\n\t],\n\t\"./2018-07-26-07-00-1.4.9-Release.md\": [\n\t\t332,\n\t\t54\n\t],\n\t\"./2018-08-02-10-00-1.4.10-Release.md\": [\n\t\t333,\n\t\t55\n\t],\n\t\"./2018-08-09-10-00-1.4.11-Release.md\": [\n\t\t334,\n\t\t56\n\t],\n\t\"./2018-08-16-10-00-1.4.12-Release.md\": [\n\t\t335,\n\t\t57\n\t],\n\t\"./2018-08-23-10-00-1.4.13-Release.md\": [\n\t\t336,\n\t\t58\n\t],\n\t\"./2018-08-30-10-00-1.4.15-Release.md\": [\n\t\t337,\n\t\t59\n\t],\n\t\"./2018-09-06-10-00-1.4.16-Release.md\": [\n\t\t338,\n\t\t60\n\t],\n\t\"./2018-09-13-10-00-1.4.17-Release.md\": [\n\t\t339,\n\t\t61\n\t],\n\t\"./2018-09-18-21-00-Worldhopper-disabled.md\": [\n\t\t340,\n\t\t62\n\t],\n\t\"./2018-09-20-10-00-1.4.18-Release.md\": [\n\t\t341,\n\t\t63\n\t],\n\t\"./2018-09-27-10-00-1.4.19-Release.md\": [\n\t\t342,\n\t\t64\n\t],\n\t\"./2018-10-04-10-00-1.4.20-Release.md\": [\n\t\t343,\n\t\t65\n\t],\n\t\"./2018-10-11-10-00-1.4.21-Release.md\": [\n\t\t344,\n\t\t66\n\t],\n\t\"./2018-10-18-10-00-1.4.22-Release.md\": [\n\t\t345,\n\t\t67\n\t],\n\t\"./2018-10-25-10-00-1.4.23-Release.md\": [\n\t\t346,\n\t\t68\n\t],\n\t\"./2018-11-01-10-00-1.4.24-Release.md\": [\n\t\t347,\n\t\t69\n\t],\n\t\"./2018-11-08-10-00-1.4.25-Release.md\": [\n\t\t348,\n\t\t70\n\t],\n\t\"./2018-11-15-10-00-1.4.26-Release.md\": [\n\t\t349,\n\t\t71\n\t],\n\t\"./2018-11-16-12-00-1.5.0-Release.md\": [\n\t\t350,\n\t\t72\n\t],\n\t\"./2018-11-22-10-00-1.5.1-Release.md\": [\n\t\t351,\n\t\t73\n\t],\n\t\"./2018-11-29-10-00-1.5.2-Release.md\": [\n\t\t352,\n\t\t74\n\t],\n\t\"./2018-12-06-10-00-1.5.3-Release.md\": [\n\t\t353,\n\t\t75\n\t],\n\t\"./2018-12-13-10-00-1.5.4-Release.md\": [\n\t\t354,\n\t\t76\n\t],\n\t\"./2018-12-20-10-00-1.5.5-Release.md\": [\n\t\t355,\n\t\t77\n\t],\n\t\"./2019-01-03-10-00-1.5.6-Release.md\": [\n\t\t356,\n\t\t78\n\t],\n\t\"./2019-01-10-10-00-1.5.7-Release.md\": [\n\t\t357,\n\t\t79\n\t],\n\t\"./2019-01-17-10-00-1.5.8-Release.md\": [\n\t\t358,\n\t\t80\n\t],\n\t\"./2019-01-24-10-00-1.5.9-Release.md\": [\n\t\t359,\n\t\t81\n\t],\n\t\"./2019-01-31-10-00-1.5.10-Release.md\": [\n\t\t360,\n\t\t82\n\t],\n\t\"./2019-02-07-10-00-1.5.11-Release.md\": [\n\t\t361,\n\t\t83\n\t],\n\t\"./2019-02-14-10-00-1.5.12-Release.md\": [\n\t\t362,\n\t\t84\n\t],\n\t\"./2019-02-16-16-00-Launcher-1.6.2-Release.md\": [\n\t\t363,\n\t\t85\n\t],\n\t\"./2019-02-21-10-00-1.5.13-Release.md\": [\n\t\t364,\n\t\t86\n\t],\n\t\"./2019-02-28-10-00-1.5.14-Release.md\": [\n\t\t365,\n\t\t87\n\t],\n\t\"./2019-03-07-10-00-1.5.15-Release.md\": [\n\t\t366,\n\t\t88\n\t],\n\t\"./2019-03-14-10-00-1.5.16-Release.md\": [\n\t\t367,\n\t\t89\n\t],\n\t\"./2019-03-21-12-00-1.5.17-Release.md\": [\n\t\t368,\n\t\t90\n\t],\n\t\"./2019-03-28-10-00-1.5.18-Release.md\": [\n\t\t369,\n\t\t91\n\t],\n\t\"./2019-04-11-10-00-1.5.19-Release.md\": [\n\t\t370,\n\t\t92\n\t],\n\t\"./2019-04-18-10-00-1.5.20-Release.md\": [\n\t\t371,\n\t\t93\n\t],\n\t\"./2019-04-25-10-00-1.5.21-Release.md\": [\n\t\t372,\n\t\t94\n\t],\n\t\"./2019-05-03-10-00-1.5.22-Release.md\": [\n\t\t373,\n\t\t95\n\t],\n\t\"./2019-05-16-10-00-1.5.23-Release.md\": [\n\t\t374,\n\t\t96\n\t],\n\t\"./2019-05-30-10-00-1.5.25-Release.md\": [\n\t\t375,\n\t\t97\n\t],\n\t\"./2019-06-06-10-00-1.5.26-Release.md\": [\n\t\t376,\n\t\t98\n\t],\n\t\"./2019-06-20-10-00-1.5.27-Release.md\": [\n\t\t377,\n\t\t99\n\t],\n\t\"./2019-07-04-10-00-1.5.28-Release.md\": [\n\t\t378,\n\t\t100\n\t],\n\t\"./2019-07-18-10-00-1.5.29-Release.md\": [\n\t\t379,\n\t\t101\n\t],\n\t\"./2019-08-01-10-00-1.5.30-Release.md\": [\n\t\t380,\n\t\t102\n\t],\n\t\"./2019-08-15-10-00-1.5.31-Release.md\": [\n\t\t381,\n\t\t103\n\t],\n\t\"./2019-08-16-10-00-Launcher-Release-2.0.0.md\": [\n\t\t382,\n\t\t104\n\t],\n\t\"./2019-08-29-10-00-1.5.32-Release.md\": [\n\t\t383,\n\t\t105\n\t],\n\t\"./2019-09-12-10-00-1.5.33-Release.md\": [\n\t\t384,\n\t\t106\n\t],\n\t\"./2019-09-26-10-00-1.5.34-Release.md\": [\n\t\t385,\n\t\t107\n\t],\n\t\"./2019-10-02-10-00-1.5.35-Release.md\": [\n\t\t386,\n\t\t108\n\t],\n\t\"./2019-10-17-10-00-1.5.36-Release.md\": [\n\t\t387,\n\t\t109\n\t],\n\t\"./2019-10-30-10-00-1.5.37-Release.md\": [\n\t\t388,\n\t\t110\n\t],\n\t\"./2019-11-14-10-00-1.5.40-Release.md\": [\n\t\t389,\n\t\t111\n\t],\n\t\"./2019-11-28-10-00-1.5.42-Release.md\": [\n\t\t390,\n\t\t112\n\t],\n\t\"./2019-12-16-10-00-1.5.43-Release.md\": [\n\t\t391,\n\t\t113\n\t],\n\t\"./2019-12-19-10-00-1.6.0-Release.md\": [\n\t\t392,\n\t\t114\n\t],\n\t\"./2020-01-09-10-00-1.6.1-Release.md\": [\n\t\t393,\n\t\t115\n\t],\n\t\"./2020-01-16-10-00-1.6.2-Release.md\": [\n\t\t394,\n\t\t116\n\t],\n\t\"./2020-01-22-10-00-1.6.4-Release.md\": [\n\t\t395,\n\t\t117\n\t],\n\t\"./2020-01-29-10-00-1.6.5-Release.md\": [\n\t\t396,\n\t\t118\n\t],\n\t\"./2020-02-13-10-00-1.6.6-Release.md\": [\n\t\t397,\n\t\t119\n\t],\n\t\"./2020-02-27-10-00-1.6.8-Release.md\": [\n\t\t398,\n\t\t120\n\t],\n\t\"./2020-03-05-10-00-1.6.9-Release.md\": [\n\t\t399,\n\t\t121\n\t],\n\t\"./2020-03-26-10-00-1.6.10-Release.md\": [\n\t\t400,\n\t\t122\n\t],\n\t\"./2020-04-16-10-00-1.6.11-Release.md\": [\n\t\t401,\n\t\t123\n\t],\n\t\"./2020-05-01-10-00-1.6.13-Release.md\": [\n\t\t402,\n\t\t124\n\t],\n\t\"./2020-05-09-10-00-1.6.14-Release.md\": [\n\t\t403,\n\t\t125\n\t],\n\t\"./2020-05-28-10-00-1.6.17-Release.md\": [\n\t\t404,\n\t\t126\n\t],\n\t\"./2020-06-12-10-00-1.6.19-Release.md\": [\n\t\t405,\n\t\t127\n\t],\n\t\"./2020-06-18-10-00-1.6.20-Release.md\": [\n\t\t406,\n\t\t128\n\t],\n\t\"./2020-06-25-10-00-1.6.21-Release.md\": [\n\t\t407,\n\t\t129\n\t],\n\t\"./2020-07-16-10-00-1.6.22-Release.md\": [\n\t\t408,\n\t\t130\n\t],\n\t\"./2020-07-23-10-00-1.6.23-Release.md\": [\n\t\t409,\n\t\t131\n\t],\n\t\"./2020-08-26-10-00-1.6.25-Release.md\": [\n\t\t410,\n\t\t132\n\t],\n\t\"./2020-09-23-10-00-1.6.27-Release.md\": [\n\t\t411,\n\t\t133\n\t],\n\t\"./2020-10-07-10-00-1.6.28-Release.md\": [\n\t\t412,\n\t\t134\n\t],\n\t\"./2020-11-11-10-00-1.6.31-Release.md\": [\n\t\t413,\n\t\t135\n\t],\n\t\"./2020-12-02-10-00-1.6.33-Release.md\": [\n\t\t414,\n\t\t136\n\t],\n\t\"./2021-01-06-10-00-1.6.36-Release.md\": [\n\t\t415,\n\t\t137\n\t],\n\t\"./2021-01-27-10-00-1.6.38-Release.md\": [\n\t\t416,\n\t\t138\n\t],\n\t\"./2021-02-13-00-00-1.7.0-Release.md\": [\n\t\t417,\n\t\t139\n\t],\n\t\"./2021-03-08-20-00-Wiki-Ge-Partnership.md\": [\n\t\t418,\n\t\t140\n\t],\n\t\"./2021-03-24-10-00-1.7.3-Release.md\": [\n\t\t419,\n\t\t141\n\t],\n\t\"./2021-05-12-10-00-1.7.7-Release.md\": [\n\t\t420,\n\t\t142\n\t],\n\t\"./2021-05-28-10-00-1.7.10-Release.md\": [\n\t\t421,\n\t\t143\n\t],\n\t\"./2021-06-23-10-00-1.7.13-Release.md\": [\n\t\t422,\n\t\t144\n\t],\n\t\"./2021-07-14-10-00-1.7.16-Release.md\": [\n\t\t423,\n\t\t145\n\t],\n\t\"./2021-07-21-10-00-1.7.17-Release.md\": [\n\t\t424,\n\t\t146\n\t],\n\t\"./2021-09-06-10-00-1.7.22-Release.md\": [\n\t\t425,\n\t\t147\n\t],\n\t\"./2021-10-06-10-00-1.7.25-Release.md\": [\n\t\t426,\n\t\t148\n\t],\n\t\"./2021-10-28-19-00-1.8.0-Release.md\": [\n\t\t427,\n\t\t149\n\t],\n\t\"./2021-12-16-19-00-1.8.7-Release.md\": [\n\t\t428,\n\t\t150\n\t],\n\t\"./2022-03-09-19-00-1.8.13-Release.md\": [\n\t\t429,\n\t\t151\n\t],\n\t\"./2022-05-11-19-00-1.8.19-Release.md\": [\n\t\t430,\n\t\t152\n\t],\n\t\"./2022-06-17-19-00-1.8.24-Release.md\": [\n\t\t431,\n\t\t153\n\t],\n\t\"./2022-07-13-19-00-1.8.27-Release.md\": [\n\t\t432,\n\t\t154\n\t],\n\t\"./2022-08-21-19-00-1.8.31-Release.md\": [\n\t\t433,\n\t\t155\n\t],\n\t\"./2022-09-04-19-00-recent-performance-regressions-and-tombs-of-amascut.md\": [\n\t\t434,\n\t\t156\n\t],\n\t\"./2022-10-05-15-00-1.9.0-Release.md\": [\n\t\t435,\n\t\t157\n\t],\n\t\"./2022-12-07-15-00-1.9.5-Release.md\": [\n\t\t436,\n\t\t158\n\t],\n\t\"./2023-01-22-10-00-security-incident-jan21.md\": [\n\t\t437,\n\t\t159\n\t],\n\t\"./2023-02-18-15-00-1.9.11-Release.md\": [\n\t\t438,\n\t\t160\n\t],\n\t\"./2023-05-13-15-00-1.10.0-Release.md\": [\n\t\t439,\n\t\t161\n\t],\n\t\"./2023-07-01-15-00-1.10.6-Release.md\": [\n\t\t440,\n\t\t162\n\t],\n\t\"./2023-09-09-15-00-1.10.12-Release.md\": [\n\t\t441,\n\t\t163\n\t],\n\t\"./2023-11-05-10-00-1.10.15-Release.md\": [\n\t\t442,\n\t\t164\n\t],\n\t\"./2024-02-24-23-00-1.10.23-Release.md\": [\n\t\t443,\n\t\t165\n\t],\n\t\"./2024-03-21-23-00-1.10.25-Release.md\": [\n\t\t444,\n\t\t166\n\t],\n\t\"./2024-04-17-23-00-1.10.27-Release.md\": [\n\t\t445,\n\t\t167\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 = 285;\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

Blog

\n
    \n {Array.from(blog.keys()).map(id => (\n \n blog\n .get(id)()\n .then(({ id, date, title, description, author }) => (\n \n
    \n
    {title || id}
    \n \n {ago(date)} by {author}\n \n
    \n

    {description}

    \n \n ))\n }\n />\n ))}\n
\n
\n
\n
\n)\n\nexport default Blog\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/60.ed179461.chunk.js b/static/js/60.7bfb81d4.chunk.js similarity index 98% rename from static/js/60.ed179461.chunk.js rename to static/js/60.7bfb81d4.chunk.js index 61e2cde033..d9d06fa648 100644 --- a/static/js/60.ed179461.chunk.js +++ b/static/js/60.7bfb81d4.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[60],{337: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

layoutable-runescape-widgets

\n

A 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

top-center-snap-point

\n

An option has been added to the hiscore plugin to automatically look up bounty targets when they are\nassigned, thanks to @noelkeijzer.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Loot tracker now behaves correctly when multiple enemies die on same tick,\nwhen player is despawned and when receiving Theatre of Blood drops
  • \n
  • Some common items have been added to the ground item plugin\'s hidden items list by default
  • \n
  • The idle logout timer supports checking the logout timer when in combat
  • \n
  • The dense essence idle animation has been fixed and will correctly trigger the idle notifier
  • \n
  • The fossil island oxygen bar and pest control info widgets are now movable
  • \n
  • Some 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
  • \n
  • Fixed the magic training arena dragonstone hint arrow not being cleared
  • \n
  • Prayer and run orb tooltips no longer display when the minimap is hidden
  • \n
  • The run energy tooltip now shows remaining energy when the orb shows run time remaining
  • \n
  • Some achievement diary requirements texts have been corrected
  • \n
  • Various skill calculator entries have been re-ordered to come in level requirement order
  • \n
  • Ourania teleport has been added to the skill calculator
  • \n
  • Fixed binding necklace charge counter when checking a necklace with one charge
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.ed179461.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[60],{338: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

layoutable-runescape-widgets

\n

A 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

top-center-snap-point

\n

An option has been added to the hiscore plugin to automatically look up bounty targets when they are\nassigned, thanks to @noelkeijzer.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Loot tracker now behaves correctly when multiple enemies die on same tick,\nwhen player is despawned and when receiving Theatre of Blood drops
  • \n
  • Some common items have been added to the ground item plugin\'s hidden items list by default
  • \n
  • The idle logout timer supports checking the logout timer when in combat
  • \n
  • The dense essence idle animation has been fixed and will correctly trigger the idle notifier
  • \n
  • The fossil island oxygen bar and pest control info widgets are now movable
  • \n
  • Some 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
  • \n
  • Fixed the magic training arena dragonstone hint arrow not being cleared
  • \n
  • Prayer and run orb tooltips no longer display when the minimap is hidden
  • \n
  • The run energy tooltip now shows remaining energy when the orb shows run time remaining
  • \n
  • Some achievement diary requirements texts have been corrected
  • \n
  • Various skill calculator entries have been re-ordered to come in level requirement order
  • \n
  • Ourania teleport has been added to the skill calculator
  • \n
  • Fixed binding necklace charge counter when checking a necklace with one charge
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.7bfb81d4.chunk.js.map \ No newline at end of file diff --git a/static/js/60.ed179461.chunk.js.map b/static/js/60.7bfb81d4.chunk.js.map similarity index 98% rename from static/js/60.ed179461.chunk.js.map rename to static/js/60.7bfb81d4.chunk.js.map index 017b245903..8acd5f5ec7 100644 --- a/static/js/60.ed179461.chunk.js.map +++ b/static/js/60.7bfb81d4.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.ed179461.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

\\\"layoutable-runescape-widgets\\\"

\\n

A 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

\\\"top-center-snap-point\\\"

\\n

An option has been added to the hiscore plugin to automatically look up bounty targets when they are\\nassigned, thanks to @noelkeijzer.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Loot tracker now behaves correctly when multiple enemies die on same tick,\\nwhen player is despawned and when receiving Theatre of Blood drops
  • \\n
  • Some common items have been added to the ground item plugin's hidden items list by default
  • \\n
  • The idle logout timer supports checking the logout timer when in combat
  • \\n
  • The dense essence idle animation has been fixed and will correctly trigger the idle notifier
  • \\n
  • The fossil island oxygen bar and pest control info widgets are now movable
  • \\n
  • Some 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
  • \\n
  • Fixed the magic training arena dragonstone hint arrow not being cleared
  • \\n
  • Prayer and run orb tooltips no longer display when the minimap is hidden
  • \\n
  • The run energy tooltip now shows remaining energy when the orb shows run time remaining
  • \\n
  • Some achievement diary requirements texts have been corrected
  • \\n
  • Various skill calculator entries have been re-ordered to come in level requirement order
  • \\n
  • Ourania teleport has been added to the skill calculator
  • \\n
  • Fixed binding necklace charge counter when checking a necklace with one charge
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.7bfb81d4.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

\\\"layoutable-runescape-widgets\\\"

\\n

A 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

\\\"top-center-snap-point\\\"

\\n

An option has been added to the hiscore plugin to automatically look up bounty targets when they are\\nassigned, thanks to @noelkeijzer.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Loot tracker now behaves correctly when multiple enemies die on same tick,\\nwhen player is despawned and when receiving Theatre of Blood drops
  • \\n
  • Some common items have been added to the ground item plugin's hidden items list by default
  • \\n
  • The idle logout timer supports checking the logout timer when in combat
  • \\n
  • The dense essence idle animation has been fixed and will correctly trigger the idle notifier
  • \\n
  • The fossil island oxygen bar and pest control info widgets are now movable
  • \\n
  • Some 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
  • \\n
  • Fixed the magic training arena dragonstone hint arrow not being cleared
  • \\n
  • Prayer and run orb tooltips no longer display when the minimap is hidden
  • \\n
  • The run energy tooltip now shows remaining energy when the orb shows run time remaining
  • \\n
  • Some achievement diary requirements texts have been corrected
  • \\n
  • Various skill calculator entries have been re-ordered to come in level requirement order
  • \\n
  • Ourania teleport has been added to the skill calculator
  • \\n
  • Fixed binding necklace charge counter when checking a necklace with one charge
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.47dcf177.chunk.js b/static/js/61.601b2085.chunk.js similarity index 98% rename from static/js/61.47dcf177.chunk.js rename to static/js/61.601b2085.chunk.js index 40902bafdc..2b7b08ece3 100644 --- a/static/js/61.47dcf177.chunk.js +++ b/static/js/61.601b2085.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[61],{338: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

grouped-loot-tracker

\n

Home and minigame teleports will now add a timer for their cooldowns.

\n

home-minigame-teleport-timers

\n

The World Map plugin now displays tooltips for quest and minigame names, thanks to\n@johnhamilto and @MagicfTail.

\n

quest-tooltips\nminigame-tooltips

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • The Achievement Diary plugin has been fixed
  • \n
  • The idle notifier now considers mouse clicks, not mouse movement, to determine when players are\nno longer idle for the Idle Notifier plugin
  • \n
  • Fixed Fishing plugin inventory and equipment check
  • \n
  • The Player-owned House plugin now displays the new Troll stronghold teleport portal
  • \n
  • The farming tracker now tracks the Weiss herb patch
  • \n
  • The bottom-right snap corner no longer moves when the collapsible chatbox is opened
  • \n
  • Cutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin
  • \n
  • Time tracking tabs have been better ordered by priority
  • \n
  • The vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\noverlay
  • \n
  • Wizard\'s tower clue solutions now indicate the nearby fairy ring for convenience
  • \n
  • The stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted
  • \n
  • Weiss and Troll stronghold basalt teleports and Kharedst\'s Memoirs teleports have been added to\nthe World Map plugin
  • \n
  • The Ape Atoll Arceuus teleport location has been fixed in the World Map plugin
  • \n
  • Dark crabs have been added to the Fishing plugin
  • \n
  • Quest screenshots now use a standardized naming format
  • \n
  • The Chambers of Xeric party size overlay indicator is now hidden when raiding solo
  • \n
  • Ogre bellows now display the number of charges they contain
  • \n
  • NPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion
  • \n
  • Fixed 2005 interface swapper sprites for quest and spellbook icons
  • \n
  • The clue scroll plugin now checks for sets across the user\'s inventory and equipped items
  • \n
  • Upon killing Grotesque Guardians, a timer is created showing the time until the instance closes
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.47dcf177.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[61],{339: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

grouped-loot-tracker

\n

Home and minigame teleports will now add a timer for their cooldowns.

\n

home-minigame-teleport-timers

\n

The World Map plugin now displays tooltips for quest and minigame names, thanks to\n@johnhamilto and @MagicfTail.

\n

quest-tooltips\nminigame-tooltips

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • The Achievement Diary plugin has been fixed
  • \n
  • The idle notifier now considers mouse clicks, not mouse movement, to determine when players are\nno longer idle for the Idle Notifier plugin
  • \n
  • Fixed Fishing plugin inventory and equipment check
  • \n
  • The Player-owned House plugin now displays the new Troll stronghold teleport portal
  • \n
  • The farming tracker now tracks the Weiss herb patch
  • \n
  • The bottom-right snap corner no longer moves when the collapsible chatbox is opened
  • \n
  • Cutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin
  • \n
  • Time tracking tabs have been better ordered by priority
  • \n
  • The vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\noverlay
  • \n
  • Wizard\'s tower clue solutions now indicate the nearby fairy ring for convenience
  • \n
  • The stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted
  • \n
  • Weiss and Troll stronghold basalt teleports and Kharedst\'s Memoirs teleports have been added to\nthe World Map plugin
  • \n
  • The Ape Atoll Arceuus teleport location has been fixed in the World Map plugin
  • \n
  • Dark crabs have been added to the Fishing plugin
  • \n
  • Quest screenshots now use a standardized naming format
  • \n
  • The Chambers of Xeric party size overlay indicator is now hidden when raiding solo
  • \n
  • Ogre bellows now display the number of charges they contain
  • \n
  • NPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion
  • \n
  • Fixed 2005 interface swapper sprites for quest and spellbook icons
  • \n
  • The clue scroll plugin now checks for sets across the user\'s inventory and equipped items
  • \n
  • Upon killing Grotesque Guardians, a timer is created showing the time until the instance closes
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.601b2085.chunk.js.map \ No newline at end of file diff --git a/static/js/61.47dcf177.chunk.js.map b/static/js/61.601b2085.chunk.js.map similarity index 99% rename from static/js/61.47dcf177.chunk.js.map rename to static/js/61.601b2085.chunk.js.map index 878a8387e1..304761deba 100644 --- a/static/js/61.47dcf177.chunk.js.map +++ b/static/js/61.601b2085.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.47dcf177.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

\\\"grouped-loot-tracker\\\"

\\n

Home and minigame teleports will now add a timer for their cooldowns.

\\n

\\\"home-minigame-teleport-timers\\\"

\\n

The World Map plugin now displays tooltips for quest and minigame names, thanks to\\n@johnhamilto and @MagicfTail.

\\n

\\\"quest-tooltips\\\"\\n\\\"minigame-tooltips\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • The Achievement Diary plugin has been fixed
  • \\n
  • The idle notifier now considers mouse clicks, not mouse movement, to determine when players are\\nno longer idle for the Idle Notifier plugin
  • \\n
  • Fixed Fishing plugin inventory and equipment check
  • \\n
  • The Player-owned House plugin now displays the new Troll stronghold teleport portal
  • \\n
  • The farming tracker now tracks the Weiss herb patch
  • \\n
  • The bottom-right snap corner no longer moves when the collapsible chatbox is opened
  • \\n
  • Cutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin
  • \\n
  • Time tracking tabs have been better ordered by priority
  • \\n
  • The vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\\noverlay
  • \\n
  • Wizard's tower clue solutions now indicate the nearby fairy ring for convenience
  • \\n
  • The stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted
  • \\n
  • Weiss and Troll stronghold basalt teleports and Kharedst's Memoirs teleports have been added to\\nthe World Map plugin
  • \\n
  • The Ape Atoll Arceuus teleport location has been fixed in the World Map plugin
  • \\n
  • Dark crabs have been added to the Fishing plugin
  • \\n
  • Quest screenshots now use a standardized naming format
  • \\n
  • The Chambers of Xeric party size overlay indicator is now hidden when raiding solo
  • \\n
  • Ogre bellows now display the number of charges they contain
  • \\n
  • NPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion
  • \\n
  • Fixed 2005 interface swapper sprites for quest and spellbook icons
  • \\n
  • The clue scroll plugin now checks for sets across the user's inventory and equipped items
  • \\n
  • Upon killing Grotesque Guardians, a timer is created showing the time until the instance closes
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.601b2085.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

\\\"grouped-loot-tracker\\\"

\\n

Home and minigame teleports will now add a timer for their cooldowns.

\\n

\\\"home-minigame-teleport-timers\\\"

\\n

The World Map plugin now displays tooltips for quest and minigame names, thanks to\\n@johnhamilto and @MagicfTail.

\\n

\\\"quest-tooltips\\\"\\n\\\"minigame-tooltips\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • The Achievement Diary plugin has been fixed
  • \\n
  • The idle notifier now considers mouse clicks, not mouse movement, to determine when players are\\nno longer idle for the Idle Notifier plugin
  • \\n
  • Fixed Fishing plugin inventory and equipment check
  • \\n
  • The Player-owned House plugin now displays the new Troll stronghold teleport portal
  • \\n
  • The farming tracker now tracks the Weiss herb patch
  • \\n
  • The bottom-right snap corner no longer moves when the collapsible chatbox is opened
  • \\n
  • Cutting sacred eels will no longer incorrectly trigger the Idle Notifier plugin
  • \\n
  • Time tracking tabs have been better ordered by priority
  • \\n
  • The vanilla Tithe farm overlay has been made layoutable and now replaces the previous custom\\noverlay
  • \\n
  • Wizard's tower clue solutions now indicate the nearby fairy ring for convenience
  • \\n
  • The stairway to the task-only Kurask room and Godwars crossbow climbing rocks are now highlighted
  • \\n
  • Weiss and Troll stronghold basalt teleports and Kharedst's Memoirs teleports have been added to\\nthe World Map plugin
  • \\n
  • The Ape Atoll Arceuus teleport location has been fixed in the World Map plugin
  • \\n
  • Dark crabs have been added to the Fishing plugin
  • \\n
  • Quest screenshots now use a standardized naming format
  • \\n
  • The Chambers of Xeric party size overlay indicator is now hidden when raiding solo
  • \\n
  • Ogre bellows now display the number of charges they contain
  • \\n
  • NPCs highlighted with the slayer plugin are now immediately un-highlighted upon task completion
  • \\n
  • Fixed 2005 interface swapper sprites for quest and spellbook icons
  • \\n
  • The clue scroll plugin now checks for sets across the user's inventory and equipped items
  • \\n
  • Upon killing Grotesque Guardians, a timer is created showing the time until the instance closes
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.73ea7cbc.chunk.js b/static/js/62.5a073228.chunk.js similarity index 80% rename from static/js/62.73ea7cbc.chunk.js rename to static/js/62.5a073228.chunk.js index 4e3270dcd9..aa9abe382e 100644 --- a/static/js/62.73ea7cbc.chunk.js +++ b/static/js/62.5a073228.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[62],{339: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.73ea7cbc.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[62],{340: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.5a073228.chunk.js.map \ No newline at end of file diff --git a/static/js/62.73ea7cbc.chunk.js.map b/static/js/62.5a073228.chunk.js.map similarity index 90% rename from static/js/62.73ea7cbc.chunk.js.map rename to static/js/62.5a073228.chunk.js.map index f382a2e340..6c5665534b 100644 --- a/static/js/62.73ea7cbc.chunk.js.map +++ b/static/js/62.5a073228.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.73ea7cbc.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.5a073228.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.024514d1.chunk.js b/static/js/63.d344125a.chunk.js similarity index 97% rename from static/js/63.024514d1.chunk.js rename to static/js/63.d344125a.chunk.js index 06aa0b9d09..cd357ca9a2 100644 --- a/static/js/63.024514d1.chunk.js +++ b/static/js/63.d344125a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[63],{340: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

wintertodt1\nwintertodt2

\n

A 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

virtuallevels

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • Add Fairy Ring AIQ to Mudskipper Point Clue
  • \n
  • Colorize "Lookup" player menu entry if applicable
  • \n
  • Fix Dwarf Cannon quest start location on the world map
  • \n
  • Add notification for low fishing trawler activity
  • \n
  • Add sand to Daily Notifications plugin
  • \n
  • Add daily runes to Daily Notifications plugin
  • \n
\n

Regarding 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.

\n

I 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.024514d1.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[63],{341: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

wintertodt1\nwintertodt2

\n

A 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

virtuallevels

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • Add Fairy Ring AIQ to Mudskipper Point Clue
  • \n
  • Colorize "Lookup" player menu entry if applicable
  • \n
  • Fix Dwarf Cannon quest start location on the world map
  • \n
  • Add notification for low fishing trawler activity
  • \n
  • Add sand to Daily Notifications plugin
  • \n
  • Add daily runes to Daily Notifications plugin
  • \n
\n

Regarding 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.

\n

I 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.d344125a.chunk.js.map \ No newline at end of file diff --git a/static/js/63.024514d1.chunk.js.map b/static/js/63.d344125a.chunk.js.map similarity index 98% rename from static/js/63.024514d1.chunk.js.map rename to static/js/63.d344125a.chunk.js.map index 1ed7838025..7677334fc7 100644 --- a/static/js/63.024514d1.chunk.js.map +++ b/static/js/63.d344125a.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.024514d1.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

\\\"wintertodt1\\\"\\n\\\"wintertodt2\\\"

\\n

A 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

\\\"virtuallevels\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • Add Fairy Ring AIQ to Mudskipper Point Clue
  • \\n
  • Colorize "Lookup" player menu entry if applicable
  • \\n
  • Fix Dwarf Cannon quest start location on the world map
  • \\n
  • Add notification for low fishing trawler activity
  • \\n
  • Add sand to Daily Notifications plugin
  • \\n
  • Add daily runes to Daily Notifications plugin
  • \\n
\\n

Regarding 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.

\\n

I 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.d344125a.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

\\\"wintertodt1\\\"\\n\\\"wintertodt2\\\"

\\n

A 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

\\\"virtuallevels\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • Add Fairy Ring AIQ to Mudskipper Point Clue
  • \\n
  • Colorize "Lookup" player menu entry if applicable
  • \\n
  • Fix Dwarf Cannon quest start location on the world map
  • \\n
  • Add notification for low fishing trawler activity
  • \\n
  • Add sand to Daily Notifications plugin
  • \\n
  • Add daily runes to Daily Notifications plugin
  • \\n
\\n

Regarding 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.

\\n

I 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.0d8de512.chunk.js b/static/js/64.ac4863b7.chunk.js similarity index 98% rename from static/js/64.0d8de512.chunk.js rename to static/js/64.ac4863b7.chunk.js index c426828c7b..b99d44e31f 100644 --- a/static/js/64.0d8de512.chunk.js +++ b/static/js/64.ac4863b7.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[64],{341: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

gebuylimits

\n

A 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

bawave\nbagame

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • Duplicated display of actively traded price in GE interface has been fixed
  • \n
  • Teleblock timers are now removed when entering safe zone/leaving wilderness
  • \n
  • Search bar was added to the skill calculator plugin
  • \n
  • Little boulder in Weiss was added to the agility plugin obstacle highlighting
  • \n
  • Notes plugin now supports undo and redo (with ctrl-z and ctrl-u)
  • \n
  • Instance map now has a close button in top-right corner
  • \n
  • NPC indicators now has support for highlighting the south-west tile for large NPCs
  • \n
  • Idle notifier now also supports idle notifications for low oxygen on Fossil Island
  • \n
  • Charged versions of the new wilderness weapons will now display their prices correctly
  • \n
  • World map clipping in fixed mode has been fixed
  • \n
  • Multiple world points for hot/cold clues has been centered and should not show the wrong destination anymore
  • \n
  • The opponent info plugin now has a configuration option to always show opponent health in percent
  • \n
  • The Discord plugin now has a configuration option to hide the "time elapsed"
  • \n
  • You can now configure the prayer flick helper to show even when prayers are off
  • \n
  • Fix loot tracker not grouping Barrows loots
  • \n
\n

In 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.

\n

Enjoy!

\n

- Tomas

\n

New commits

\n

We had 24 contributors this release!

\n
Adam (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.0d8de512.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[64],{342: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

gebuylimits

\n

A 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

bawave\nbagame

\n

There are also numerous smaller improvements and bug fixes, including:

\n
    \n
  • Duplicated display of actively traded price in GE interface has been fixed
  • \n
  • Teleblock timers are now removed when entering safe zone/leaving wilderness
  • \n
  • Search bar was added to the skill calculator plugin
  • \n
  • Little boulder in Weiss was added to the agility plugin obstacle highlighting
  • \n
  • Notes plugin now supports undo and redo (with ctrl-z and ctrl-u)
  • \n
  • Instance map now has a close button in top-right corner
  • \n
  • NPC indicators now has support for highlighting the south-west tile for large NPCs
  • \n
  • Idle notifier now also supports idle notifications for low oxygen on Fossil Island
  • \n
  • Charged versions of the new wilderness weapons will now display their prices correctly
  • \n
  • World map clipping in fixed mode has been fixed
  • \n
  • Multiple world points for hot/cold clues has been centered and should not show the wrong destination anymore
  • \n
  • The opponent info plugin now has a configuration option to always show opponent health in percent
  • \n
  • The Discord plugin now has a configuration option to hide the "time elapsed"
  • \n
  • You can now configure the prayer flick helper to show even when prayers are off
  • \n
  • Fix loot tracker not grouping Barrows loots
  • \n
\n

In 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.

\n

Enjoy!

\n

- Tomas

\n

New commits

\n

We had 24 contributors this release!

\n
Adam (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.ac4863b7.chunk.js.map \ No newline at end of file diff --git a/static/js/64.0d8de512.chunk.js.map b/static/js/64.ac4863b7.chunk.js.map similarity index 98% rename from static/js/64.0d8de512.chunk.js.map rename to static/js/64.ac4863b7.chunk.js.map index 4e1abc72cd..7fd76650da 100644 --- a/static/js/64.0d8de512.chunk.js.map +++ b/static/js/64.ac4863b7.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.0d8de512.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

\\\"gebuylimits\\\"

\\n

A 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

\\\"bawave\\\"\\n\\\"bagame\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • Duplicated display of actively traded price in GE interface has been fixed
  • \\n
  • Teleblock timers are now removed when entering safe zone/leaving wilderness
  • \\n
  • Search bar was added to the skill calculator plugin
  • \\n
  • Little boulder in Weiss was added to the agility plugin obstacle highlighting
  • \\n
  • Notes plugin now supports undo and redo (with ctrl-z and ctrl-u)
  • \\n
  • Instance map now has a close button in top-right corner
  • \\n
  • NPC indicators now has support for highlighting the south-west tile for large NPCs
  • \\n
  • Idle notifier now also supports idle notifications for low oxygen on Fossil Island
  • \\n
  • Charged versions of the new wilderness weapons will now display their prices correctly
  • \\n
  • World map clipping in fixed mode has been fixed
  • \\n
  • Multiple world points for hot/cold clues has been centered and should not show the wrong destination anymore
  • \\n
  • The opponent info plugin now has a configuration option to always show opponent health in percent
  • \\n
  • The Discord plugin now has a configuration option to hide the "time elapsed"
  • \\n
  • You can now configure the prayer flick helper to show even when prayers are off
  • \\n
  • Fix loot tracker not grouping Barrows loots
  • \\n
\\n

In 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.

\\n

Enjoy!

\\n

- Tomas

\\n

New commits

\\n

We had 24 contributors this release!

\\n
Adam (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.ac4863b7.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

\\\"gebuylimits\\\"

\\n

A 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

\\\"bawave\\\"\\n\\\"bagame\\\"

\\n

There are also numerous smaller improvements and bug fixes, including:

\\n
    \\n
  • Duplicated display of actively traded price in GE interface has been fixed
  • \\n
  • Teleblock timers are now removed when entering safe zone/leaving wilderness
  • \\n
  • Search bar was added to the skill calculator plugin
  • \\n
  • Little boulder in Weiss was added to the agility plugin obstacle highlighting
  • \\n
  • Notes plugin now supports undo and redo (with ctrl-z and ctrl-u)
  • \\n
  • Instance map now has a close button in top-right corner
  • \\n
  • NPC indicators now has support for highlighting the south-west tile for large NPCs
  • \\n
  • Idle notifier now also supports idle notifications for low oxygen on Fossil Island
  • \\n
  • Charged versions of the new wilderness weapons will now display their prices correctly
  • \\n
  • World map clipping in fixed mode has been fixed
  • \\n
  • Multiple world points for hot/cold clues has been centered and should not show the wrong destination anymore
  • \\n
  • The opponent info plugin now has a configuration option to always show opponent health in percent
  • \\n
  • The Discord plugin now has a configuration option to hide the "time elapsed"
  • \\n
  • You can now configure the prayer flick helper to show even when prayers are off
  • \\n
  • Fix loot tracker not grouping Barrows loots
  • \\n
\\n

In 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.

\\n

Enjoy!

\\n

- Tomas

\\n

New commits

\\n

We had 24 contributors this release!

\\n
Adam (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.eaf4b8e3.chunk.js b/static/js/65.1f63a476.chunk.js similarity index 98% rename from static/js/65.eaf4b8e3.chunk.js rename to static/js/65.1f63a476.chunk.js index bd9091058e..0cd399acbd 100644 --- a/static/js/65.eaf4b8e3.chunk.js +++ b/static/js/65.1f63a476.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[65],{342: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

Currently-hovered tile indicator

\n

The 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.

\n

The world map overlay has had its fairy ring icon changed to be easier on the eyes.

\n

Cleaner fairy ring icon

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • An option has been added to hide XP globes and/or XP trackers for skills which have reached level\n99
  • \n
  • A stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\nspell
  • \n
  • Various clues have had their item requirements fixed
  • \n
  • The idle notifier will notify you when you\'ve stopped collecting sand
  • \n
  • The friends list counter now correctly displays the maximum friends list capacity for members
  • \n
  • Obstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\nthe McGrubor\'s Woods railing
  • \n
  • The raids scouting overlay is now hidden when on Olm\'s floor
  • \n
  • The raids ending message default color has been improved
  • \n
  • Items examined within the clue scroll reward panel or smithing interface-as well as item\nplaceholders within the bank-will now display their price information
  • \n
  • Tars, leather shields, and super antifire potions have been added to the skill calculator
  • \n
  • The cannon spot for ice trolls has been improved via a slight adjustment
  • \n
  • Timers which no longer apply will now clear themselves upon death
  • \n
  • Map clues will now indicate in the clue overlay if you are missing a spade in your inventory
  • \n
  • A Karamja diary requirement has been corrected
  • \n
  • The screenshot plugin can now take screenshots upon player death
  • \n
  • The 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!)
  • \n
  • The slayer plugin now displays icons for all missing wilderness task monsters
  • \n
  • Wilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\nmonsters
  • \n
  • The 2010 interface style has had some icon locations adjusted to be better aligned
  • \n
  • Chat commands now have more descriptive tooltips within the settings menu, indicating the exact\ntext needed to use the command
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Andre (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.eaf4b8e3.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[65],{343: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

Currently-hovered tile indicator

\n

The 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.

\n

The world map overlay has had its fairy ring icon changed to be easier on the eyes.

\n

Cleaner fairy ring icon

\n

The 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • An option has been added to hide XP globes and/or XP trackers for skills which have reached level\n99
  • \n
  • A stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\nspell
  • \n
  • Various clues have had their item requirements fixed
  • \n
  • The idle notifier will notify you when you\'ve stopped collecting sand
  • \n
  • The friends list counter now correctly displays the maximum friends list capacity for members
  • \n
  • Obstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\nthe McGrubor\'s Woods railing
  • \n
  • The raids scouting overlay is now hidden when on Olm\'s floor
  • \n
  • The raids ending message default color has been improved
  • \n
  • Items examined within the clue scroll reward panel or smithing interface-as well as item\nplaceholders within the bank-will now display their price information
  • \n
  • Tars, leather shields, and super antifire potions have been added to the skill calculator
  • \n
  • The cannon spot for ice trolls has been improved via a slight adjustment
  • \n
  • Timers which no longer apply will now clear themselves upon death
  • \n
  • Map clues will now indicate in the clue overlay if you are missing a spade in your inventory
  • \n
  • A Karamja diary requirement has been corrected
  • \n
  • The screenshot plugin can now take screenshots upon player death
  • \n
  • The 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!)
  • \n
  • The slayer plugin now displays icons for all missing wilderness task monsters
  • \n
  • Wilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\nmonsters
  • \n
  • The 2010 interface style has had some icon locations adjusted to be better aligned
  • \n
  • Chat commands now have more descriptive tooltips within the settings menu, indicating the exact\ntext needed to use the command
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Andre (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.1f63a476.chunk.js.map \ No newline at end of file diff --git a/static/js/65.eaf4b8e3.chunk.js.map b/static/js/65.1f63a476.chunk.js.map similarity index 99% rename from static/js/65.eaf4b8e3.chunk.js.map rename to static/js/65.1f63a476.chunk.js.map index fa0b0b58f3..6fe66f40a6 100644 --- a/static/js/65.eaf4b8e3.chunk.js.map +++ b/static/js/65.1f63a476.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.eaf4b8e3.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

\\\"Currently-hovered

\\n

The 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.

\\n

The world map overlay has had its fairy ring icon changed to be easier on the eyes.

\\n

\\\"Cleaner

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • An option has been added to hide XP globes and/or XP trackers for skills which have reached level\\n99
  • \\n
  • A stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\\nspell
  • \\n
  • Various clues have had their item requirements fixed
  • \\n
  • The idle notifier will notify you when you've stopped collecting sand
  • \\n
  • The friends list counter now correctly displays the maximum friends list capacity for members
  • \\n
  • Obstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\\nthe McGrubor's Woods railing
  • \\n
  • The raids scouting overlay is now hidden when on Olm's floor
  • \\n
  • The raids ending message default color has been improved
  • \\n
  • Items examined within the clue scroll reward panel or smithing interface-as well as item\\nplaceholders within the bank-will now display their price information
  • \\n
  • Tars, leather shields, and super antifire potions have been added to the skill calculator
  • \\n
  • The cannon spot for ice trolls has been improved via a slight adjustment
  • \\n
  • Timers which no longer apply will now clear themselves upon death
  • \\n
  • Map clues will now indicate in the clue overlay if you are missing a spade in your inventory
  • \\n
  • A Karamja diary requirement has been corrected
  • \\n
  • The screenshot plugin can now take screenshots upon player death
  • \\n
  • The 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!)
  • \\n
  • The slayer plugin now displays icons for all missing wilderness task monsters
  • \\n
  • Wilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\\nmonsters
  • \\n
  • The 2010 interface style has had some icon locations adjusted to be better aligned
  • \\n
  • Chat commands now have more descriptive tooltips within the settings menu, indicating the exact\\ntext needed to use the command
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Andre (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.1f63a476.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

\\\"Currently-hovered

\\n

The 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.

\\n

The world map overlay has had its fairy ring icon changed to be easier on the eyes.

\\n

\\\"Cleaner

\\n

The 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • An option has been added to hide XP globes and/or XP trackers for skills which have reached level\\n99
  • \\n
  • A stamina timer will be started when you are the recipient of a dose via the Boost Potion Share\\nspell
  • \\n
  • Various clues have had their item requirements fixed
  • \\n
  • The idle notifier will notify you when you've stopped collecting sand
  • \\n
  • The friends list counter now correctly displays the maximum friends list capacity for members
  • \\n
  • Obstacle highlighting has been added for the Meiyerditch entrance, the Weiss entrance, and\\nthe McGrubor's Woods railing
  • \\n
  • The raids scouting overlay is now hidden when on Olm's floor
  • \\n
  • The raids ending message default color has been improved
  • \\n
  • Items examined within the clue scroll reward panel or smithing interface-as well as item\\nplaceholders within the bank-will now display their price information
  • \\n
  • Tars, leather shields, and super antifire potions have been added to the skill calculator
  • \\n
  • The cannon spot for ice trolls has been improved via a slight adjustment
  • \\n
  • Timers which no longer apply will now clear themselves upon death
  • \\n
  • Map clues will now indicate in the clue overlay if you are missing a spade in your inventory
  • \\n
  • A Karamja diary requirement has been corrected
  • \\n
  • The screenshot plugin can now take screenshots upon player death
  • \\n
  • The 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!)
  • \\n
  • The slayer plugin now displays icons for all missing wilderness task monsters
  • \\n
  • Wilderness slayer updates from the slayer gem no longer interfere with the plugin highlighting\\nmonsters
  • \\n
  • The 2010 interface style has had some icon locations adjusted to be better aligned
  • \\n
  • Chat commands now have more descriptive tooltips within the settings menu, indicating the exact\\ntext needed to use the command
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Andre (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.b9608f5d.chunk.js b/static/js/66.aac767c4.chunk.js similarity index 98% rename from static/js/66.b9608f5d.chunk.js rename to static/js/66.aac767c4.chunk.js index efcccabdd0..921d49e1e7 100644 --- a/static/js/66.b9608f5d.chunk.js +++ b/static/js/66.aac767c4.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[66],{343: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

\n

Thanks 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

Bank tag tabs: adding and selecting tabs

\n

As 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.

\n

Master clue 3-step cryptic solutions

\n

The 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

Master-level three step cryptic clue solution\nPartial solution for master-level three step cryptic clue

\n

Grand Exchange partial name searching

\n

The 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

Grand exchange search results: before and after

\n

Visual improvements

\n

Thanks to @Adam-, @Monsterxsync,\n@psikoi, and\n@SebastiaanVanspauwen respectively, a number of plugins\nhave had their visuals updated, which can be seen below:

\n
    \n
  • The "To:" and "From:" in split private chat can now be recolored
  • \n
  • A toggle has been added to use default skill coloring for XP globe progress arcs
  • \n
  • XP globes\' progress bar has been changed into an overlay directly on the globe to save space
  • \n
  • A chatbox background image has been added to the 2005 interface style
  • \n
\n

Recolored "To:" and "From:" in split private chat\nXP globes default skill colors\nUpdated XP globes progress overlay\n2005 interface chat background

\n

The Camera Zoom plugin has been disabled until we can fix it for the update today.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The percentage completion component of the XP tracker is now accurate to two decimal places
  • \n
  • The 2010 interface style has had some tab icon offsets updated to be more accurate to the style
  • \n
  • Cavaliers will now display their buy limit in the grand exchange plugin
  • \n
  • Mouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed
  • \n
  • Chat notification highlight words now ignore leading and trailing space for highlight terms
  • \n
  • Regen meters should now be more accurate for the beginning and end of a regen cycle
  • \n
  • Overlays snapped above chatbox will now be rendered when text input or chat dialogs are open
  • \n
  • An option has been added to the boosts overlay to display in yellow when below the boost threshold
  • \n
  • Notifications have been added for highlighted ground items
  • \n
  • The Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu
  • \n
  • The Slayer plugin will now update when assigned a task through partner slayer
  • \n
  • The NPC HP overlay has been updated to use a more accurate HP formula
  • \n
  • The Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood
  • \n
  • The newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter
  • \n
  • An idle alert should no longer trigger after casting most Lunar spells
  • \n
  • A toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\nbeen added
  • \n
  • The Kingdom of Miscellania completion state check has been corrected
  • \n
  • Several bank tag editing edge cases have been fixed
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.b9608f5d.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[66],{344: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

\n

Thanks 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

Bank tag tabs: adding and selecting tabs

\n

As 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.

\n

Master clue 3-step cryptic solutions

\n

The 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

Master-level three step cryptic clue solution\nPartial solution for master-level three step cryptic clue

\n

Grand Exchange partial name searching

\n

The 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

Grand exchange search results: before and after

\n

Visual improvements

\n

Thanks to @Adam-, @Monsterxsync,\n@psikoi, and\n@SebastiaanVanspauwen respectively, a number of plugins\nhave had their visuals updated, which can be seen below:

\n
    \n
  • The "To:" and "From:" in split private chat can now be recolored
  • \n
  • A toggle has been added to use default skill coloring for XP globe progress arcs
  • \n
  • XP globes\' progress bar has been changed into an overlay directly on the globe to save space
  • \n
  • A chatbox background image has been added to the 2005 interface style
  • \n
\n

Recolored "To:" and "From:" in split private chat\nXP globes default skill colors\nUpdated XP globes progress overlay\n2005 interface chat background

\n

The Camera Zoom plugin has been disabled until we can fix it for the update today.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The percentage completion component of the XP tracker is now accurate to two decimal places
  • \n
  • The 2010 interface style has had some tab icon offsets updated to be more accurate to the style
  • \n
  • Cavaliers will now display their buy limit in the grand exchange plugin
  • \n
  • Mouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed
  • \n
  • Chat notification highlight words now ignore leading and trailing space for highlight terms
  • \n
  • Regen meters should now be more accurate for the beginning and end of a regen cycle
  • \n
  • Overlays snapped above chatbox will now be rendered when text input or chat dialogs are open
  • \n
  • An option has been added to the boosts overlay to display in yellow when below the boost threshold
  • \n
  • Notifications have been added for highlighted ground items
  • \n
  • The Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu
  • \n
  • The Slayer plugin will now update when assigned a task through partner slayer
  • \n
  • The NPC HP overlay has been updated to use a more accurate HP formula
  • \n
  • The Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood
  • \n
  • The newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter
  • \n
  • An idle alert should no longer trigger after casting most Lunar spells
  • \n
  • A toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\nbeen added
  • \n
  • The Kingdom of Miscellania completion state check has been corrected
  • \n
  • Several bank tag editing edge cases have been fixed
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 23 contributors this release!

\n
Adam (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.aac767c4.chunk.js.map \ No newline at end of file diff --git a/static/js/66.b9608f5d.chunk.js.map b/static/js/66.aac767c4.chunk.js.map similarity index 99% rename from static/js/66.b9608f5d.chunk.js.map rename to static/js/66.aac767c4.chunk.js.map index 555f1e4dd8..d2b82d2bfb 100644 --- a/static/js/66.b9608f5d.chunk.js.map +++ b/static/js/66.aac767c4.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.b9608f5d.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

\\n

Thanks 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

\\\"Bank

\\n

As 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.

\\n

Master clue 3-step cryptic solutions

\\n

The 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

\\\"Master-level\\n\\\"Partial

\\n

Grand Exchange partial name searching

\\n

The 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

\\\"Grand

\\n

Visual improvements

\\n

Thanks to @Adam-, @Monsterxsync,\\n@psikoi, and\\n@SebastiaanVanspauwen respectively, a number of plugins\\nhave had their visuals updated, which can be seen below:

\\n
    \\n
  • The "To:" and "From:" in split private chat can now be recolored
  • \\n
  • A toggle has been added to use default skill coloring for XP globe progress arcs
  • \\n
  • XP globes' progress bar has been changed into an overlay directly on the globe to save space
  • \\n
  • A chatbox background image has been added to the 2005 interface style
  • \\n
\\n

\\\"Recolored\\n\\\"XP\\n\\\"Updated\\n\\\"2005

\\n

The Camera Zoom plugin has been disabled until we can fix it for the update today.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The percentage completion component of the XP tracker is now accurate to two decimal places
  • \\n
  • The 2010 interface style has had some tab icon offsets updated to be more accurate to the style
  • \\n
  • Cavaliers will now display their buy limit in the grand exchange plugin
  • \\n
  • Mouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed
  • \\n
  • Chat notification highlight words now ignore leading and trailing space for highlight terms
  • \\n
  • Regen meters should now be more accurate for the beginning and end of a regen cycle
  • \\n
  • Overlays snapped above chatbox will now be rendered when text input or chat dialogs are open
  • \\n
  • An option has been added to the boosts overlay to display in yellow when below the boost threshold
  • \\n
  • Notifications have been added for highlighted ground items
  • \\n
  • The Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu
  • \\n
  • The Slayer plugin will now update when assigned a task through partner slayer
  • \\n
  • The NPC HP overlay has been updated to use a more accurate HP formula
  • \\n
  • The Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood
  • \\n
  • The newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter
  • \\n
  • An idle alert should no longer trigger after casting most Lunar spells
  • \\n
  • A toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\\nbeen added
  • \\n
  • The Kingdom of Miscellania completion state check has been corrected
  • \\n
  • Several bank tag editing edge cases have been fixed
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.aac767c4.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

\\n

Thanks 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

\\\"Bank

\\n

As 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.

\\n

Master clue 3-step cryptic solutions

\\n

The 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

\\\"Master-level\\n\\\"Partial

\\n

Grand Exchange partial name searching

\\n

The 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

\\\"Grand

\\n

Visual improvements

\\n

Thanks to @Adam-, @Monsterxsync,\\n@psikoi, and\\n@SebastiaanVanspauwen respectively, a number of plugins\\nhave had their visuals updated, which can be seen below:

\\n
    \\n
  • The "To:" and "From:" in split private chat can now be recolored
  • \\n
  • A toggle has been added to use default skill coloring for XP globe progress arcs
  • \\n
  • XP globes' progress bar has been changed into an overlay directly on the globe to save space
  • \\n
  • A chatbox background image has been added to the 2005 interface style
  • \\n
\\n

\\\"Recolored\\n\\\"XP\\n\\\"Updated\\n\\\"2005

\\n

The Camera Zoom plugin has been disabled until we can fix it for the update today.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The percentage completion component of the XP tracker is now accurate to two decimal places
  • \\n
  • The 2010 interface style has had some tab icon offsets updated to be more accurate to the style
  • \\n
  • Cavaliers will now display their buy limit in the grand exchange plugin
  • \\n
  • Mouse tooltips should now properly be hidden whenever a RuneScape tooltip is displayed
  • \\n
  • Chat notification highlight words now ignore leading and trailing space for highlight terms
  • \\n
  • Regen meters should now be more accurate for the beginning and end of a regen cycle
  • \\n
  • Overlays snapped above chatbox will now be rendered when text input or chat dialogs are open
  • \\n
  • An option has been added to the boosts overlay to display in yellow when below the boost threshold
  • \\n
  • Notifications have been added for highlighted ground items
  • \\n
  • The Fairy ring plugin now remembers scroll position when re-opening the fairy ring menu
  • \\n
  • The Slayer plugin will now update when assigned a task through partner slayer
  • \\n
  • The NPC HP overlay has been updated to use a more accurate HP formula
  • \\n
  • The Loot tracker no longer tries to add empty slots from Chambers of Xeric or Theatre of Blood
  • \\n
  • The newly-added Al Kharid palace shortcuts have been added to the agility obstacle highlighter
  • \\n
  • An idle alert should no longer trigger after casting most Lunar spells
  • \\n
  • A toggle to send a notification upon the Ulitmate Force powerup spawning in Nightmare Zone has\\nbeen added
  • \\n
  • The Kingdom of Miscellania completion state check has been corrected
  • \\n
  • Several bank tag editing edge cases have been fixed
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 23 contributors this release!

\\n
Adam (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.af3df1eb.chunk.js b/static/js/67.613c11a8.chunk.js similarity index 98% rename from static/js/67.af3df1eb.chunk.js rename to static/js/67.613c11a8.chunk.js index 420ff1a858..324dcc7cf0 100644 --- a/static/js/67.af3df1eb.chunk.js +++ b/static/js/67.613c11a8.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[67],{344: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

Recent clan chats listing in the clan chat tab

\n

An enhancement has been added to the bank tags feature to tag items in your inventory or equipment\ndirectly, also thanks to @raiyni.

\n

bank tags: Tag inventory and equipment

\n

Tag 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):

\n
mining,12797,12020,12019,12016,12015,12014,12797,1712,1710\n
\n

and you can view it online here.\nThanks to @deathbeam for this feature.

\n

bank tags: Import and export using clipboard

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen
  • \n
  • Motherlode Mine and raiding have been added to the Discord plugin activity reporter
  • \n
  • Private messages received from player moderators are now properly recolored
  • \n
  • The Chambers of Xeric scouting overlay now displays while at the nearby bank
  • \n
  • Bank tag icons now display a higher quantity for stackable items
  • \n
  • Bank searching (and thus bank tags) now allows for terms larger than 15 characters
  • \n
  • The wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\nmoveable
  • \n
  • Fixed some slayer plugin parsing bugs
  • \n
  • An option has been added to the Bank Tags plugin to remember the last-opened tag tab
  • \n
  • An option has been added to the Runelite settings to display your username in the window title
  • \n
  • Some bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added
  • \n
  • Runelite on OSX will now attempt to use terminal-notifier for better-quality notifications
  • \n
  • The Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.af3df1eb.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[67],{345: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

Recent clan chats listing in the clan chat tab

\n

An enhancement has been added to the bank tags feature to tag items in your inventory or equipment\ndirectly, also thanks to @raiyni.

\n

bank tags: Tag inventory and equipment

\n

Tag 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):

\n
mining,12797,12020,12019,12016,12015,12014,12797,1712,1710\n
\n

and you can view it online here.\nThanks to @deathbeam for this feature.

\n

bank tags: Import and export using clipboard

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen
  • \n
  • Motherlode Mine and raiding have been added to the Discord plugin activity reporter
  • \n
  • Private messages received from player moderators are now properly recolored
  • \n
  • The Chambers of Xeric scouting overlay now displays while at the nearby bank
  • \n
  • Bank tag icons now display a higher quantity for stackable items
  • \n
  • Bank searching (and thus bank tags) now allows for terms larger than 15 characters
  • \n
  • The wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\nmoveable
  • \n
  • Fixed some slayer plugin parsing bugs
  • \n
  • An option has been added to the Bank Tags plugin to remember the last-opened tag tab
  • \n
  • An option has been added to the Runelite settings to display your username in the window title
  • \n
  • Some bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added
  • \n
  • Runelite on OSX will now attempt to use terminal-notifier for better-quality notifications
  • \n
  • The Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.613c11a8.chunk.js.map \ No newline at end of file diff --git a/static/js/67.af3df1eb.chunk.js.map b/static/js/67.613c11a8.chunk.js.map similarity index 99% rename from static/js/67.af3df1eb.chunk.js.map rename to static/js/67.613c11a8.chunk.js.map index 899344297a..3d57f46518 100644 --- a/static/js/67.af3df1eb.chunk.js.map +++ b/static/js/67.613c11a8.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.af3df1eb.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

\\\"Recent

\\n

An enhancement has been added to the bank tags feature to tag items in your inventory or equipment\\ndirectly, also thanks to @raiyni.

\\n

\\\"bank

\\n

Tag 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):

\\n
mining,12797,12020,12019,12016,12015,12014,12797,1712,1710\\n
\\n

and you can view it online here.\\nThanks to @deathbeam for this feature.

\\n

\\\"bank

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen
  • \\n
  • Motherlode Mine and raiding have been added to the Discord plugin activity reporter
  • \\n
  • Private messages received from player moderators are now properly recolored
  • \\n
  • The Chambers of Xeric scouting overlay now displays while at the nearby bank
  • \\n
  • Bank tag icons now display a higher quantity for stackable items
  • \\n
  • Bank searching (and thus bank tags) now allows for terms larger than 15 characters
  • \\n
  • The wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\\nmoveable
  • \\n
  • Fixed some slayer plugin parsing bugs
  • \\n
  • An option has been added to the Bank Tags plugin to remember the last-opened tag tab
  • \\n
  • An option has been added to the Runelite settings to display your username in the window title
  • \\n
  • Some bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added
  • \\n
  • Runelite on OSX will now attempt to use terminal-notifier for better-quality notifications
  • \\n
  • The Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.613c11a8.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

\\\"Recent

\\n

An enhancement has been added to the bank tags feature to tag items in your inventory or equipment\\ndirectly, also thanks to @raiyni.

\\n

\\\"bank

\\n

Tag 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):

\\n
mining,12797,12020,12019,12016,12015,12014,12797,1712,1710\\n
\\n

and you can view it online here.\\nThanks to @deathbeam for this feature.

\\n

\\\"bank

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fixed a bug where the OSBuddy price overlay text was duplicated on the Grand Exchange offer screen
  • \\n
  • Motherlode Mine and raiding have been added to the Discord plugin activity reporter
  • \\n
  • Private messages received from player moderators are now properly recolored
  • \\n
  • The Chambers of Xeric scouting overlay now displays while at the nearby bank
  • \\n
  • Bank tag icons now display a higher quantity for stackable items
  • \\n
  • Bank searching (and thus bank tags) now allows for terms larger than 15 characters
  • \\n
  • The wilderness kill/death counter, Bounty Hunter stats widget, and Zeah mess hall widgets are now\\nmoveable
  • \\n
  • Fixed some slayer plugin parsing bugs
  • \\n
  • An option has been added to the Bank Tags plugin to remember the last-opened tag tab
  • \\n
  • An option has been added to the Runelite settings to display your username in the window title
  • \\n
  • Some bugfixes for clues (particularly the newly-added 3-cryptic clues) have been added
  • \\n
  • Runelite on OSX will now attempt to use terminal-notifier for better-quality notifications
  • \\n
  • The Menu Entry Swapper plugin can now swap Quick-pass/travel/start menu options
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.ec9d010e.chunk.js b/static/js/68.88ba4792.chunk.js similarity index 98% rename from static/js/68.ec9d010e.chunk.js rename to static/js/68.88ba4792.chunk.js index bcd0a06d0b..32e907c361 100644 --- a/static/js/68.ec9d010e.chunk.js +++ b/static/js/68.88ba4792.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[68],{345: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

twitch

\n

The 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

POH incense burners

\n

The 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

Loot Tracker: toggling items to be ignored\nLoot Tracker: hiding ignored items\nLoot tracker: tooltip of ignored items

\n

Items 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

Searching the bank for clue items

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Recent clan chat listings with spaces in their names no longer become corrupted
  • \n
  • Multiple marks of grace can now be highlighted while training on rooftop agility courses
  • \n
  • Mounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\nentry swapper plugin
  • \n
  • If set, XP globes now use the ingame skill goals for displaying completion progress
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.ec9d010e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[68],{346: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

twitch

\n

The 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

POH incense burners

\n

The 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

Loot Tracker: toggling items to be ignored\nLoot Tracker: hiding ignored items\nLoot tracker: tooltip of ignored items

\n

Items 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

Searching the bank for clue items

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Recent clan chat listings with spaces in their names no longer become corrupted
  • \n
  • Multiple marks of grace can now be highlighted while training on rooftop agility courses
  • \n
  • Mounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\nentry swapper plugin
  • \n
  • If set, XP globes now use the ingame skill goals for displaying completion progress
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.88ba4792.chunk.js.map \ No newline at end of file diff --git a/static/js/68.ec9d010e.chunk.js.map b/static/js/68.88ba4792.chunk.js.map similarity index 99% rename from static/js/68.ec9d010e.chunk.js.map rename to static/js/68.88ba4792.chunk.js.map index 8ff17b823e..de1e1b0f05 100644 --- a/static/js/68.ec9d010e.chunk.js.map +++ b/static/js/68.88ba4792.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.ec9d010e.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

\\\"twitch\\\"

\\n

The 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

\\\"POH

\\n

The 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

\\\"Loot\\n\\\"Loot\\n\\\"Loot

\\n

Items 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

\\\"Searching

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Recent clan chat listings with spaces in their names no longer become corrupted
  • \\n
  • Multiple marks of grace can now be highlighted while training on rooftop agility courses
  • \\n
  • Mounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\\nentry swapper plugin
  • \\n
  • If set, XP globes now use the ingame skill goals for displaying completion progress
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.88ba4792.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

\\\"twitch\\\"

\\n

The 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

\\\"POH

\\n

The 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

\\\"Loot\\n\\\"Loot\\n\\\"Loot

\\n

Items 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

\\\"Searching

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Recent clan chat listings with spaces in their names no longer become corrupted
  • \\n
  • Multiple marks of grace can now be highlighted while training on rooftop agility courses
  • \\n
  • Mounted capes now prioritize Teleport and Spellbook options in a player-owned house via the menu\\nentry swapper plugin
  • \\n
  • If set, XP globes now use the ingame skill goals for displaying completion progress
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.0e1bedb0.chunk.js b/static/js/69.eedabcd7.chunk.js similarity index 97% rename from static/js/69.0e1bedb0.chunk.js rename to static/js/69.eedabcd7.chunk.js index 8e8f8c5cf0..50facb2671 100644 --- a/static/js/69.0e1bedb0.chunk.js +++ b/static/js/69.eedabcd7.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[69],{346: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

Stretched resizable mode at 75% resizing

\n

You 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

Bank tags: tagging and untagging variations

\n

Shift-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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Some clue scrolls will display less text in their panels to take up less space
  • \n
  • Added Abyssal Bracelet charge tracking
  • \n
  • The Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\nreward active
  • \n
  • Chopping sullicep mushrooms now activates the woodcutting plugin
  • \n
  • Fix clue and bounty hunter hiscores lookup for update
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 16 contributors this release!

\n
15987632 (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.0e1bedb0.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[69],{347: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

Stretched resizable mode at 75% resizing

\n

You 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

Bank tags: tagging and untagging variations

\n

Shift-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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Some clue scrolls will display less text in their panels to take up less space
  • \n
  • Added Abyssal Bracelet charge tracking
  • \n
  • The Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\nreward active
  • \n
  • Chopping sullicep mushrooms now activates the woodcutting plugin
  • \n
  • Fix clue and bounty hunter hiscores lookup for update
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 16 contributors this release!

\n
15987632 (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.eedabcd7.chunk.js.map \ No newline at end of file diff --git a/static/js/69.0e1bedb0.chunk.js.map b/static/js/69.eedabcd7.chunk.js.map similarity index 98% rename from static/js/69.0e1bedb0.chunk.js.map rename to static/js/69.eedabcd7.chunk.js.map index 14c7693ab7..adb6c7dea8 100644 --- a/static/js/69.0e1bedb0.chunk.js.map +++ b/static/js/69.eedabcd7.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.0e1bedb0.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

\\\"Stretched

\\n

You 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

\\\"Bank

\\n

Shift-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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Some clue scrolls will display less text in their panels to take up less space
  • \\n
  • Added Abyssal Bracelet charge tracking
  • \\n
  • The Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\\nreward active
  • \\n
  • Chopping sullicep mushrooms now activates the woodcutting plugin
  • \\n
  • Fix clue and bounty hunter hiscores lookup for update
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 16 contributors this release!

\\n
15987632 (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.eedabcd7.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

\\\"Stretched

\\n

You 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

\\\"Bank

\\n

Shift-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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Some clue scrolls will display less text in their panels to take up less space
  • \\n
  • Added Abyssal Bracelet charge tracking
  • \\n
  • The Slayer plugin will no longer desync when slaying Grotesque Guardians with the Double Trouble\\nreward active
  • \\n
  • Chopping sullicep mushrooms now activates the woodcutting plugin
  • \\n
  • Fix clue and bounty hunter hiscores lookup for update
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 16 contributors this release!

\\n
15987632 (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.9ca1515e.chunk.js b/static/js/70.64a0e193.chunk.js similarity index 98% rename from static/js/70.9ca1515e.chunk.js rename to static/js/70.64a0e193.chunk.js index fb0461589f..84ccd3afc8 100644 --- a/static/js/70.9ca1515e.chunk.js +++ b/static/js/70.64a0e193.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[70],{347: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

Enhanced chatbox input

\n

The 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

xp tracker: kills to level

\n

When 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

native chrome sidebar closer

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The WASD Camera plugin will now prepends\nyour player name to the chatbox text
  • \n
  • The Examine plugin will now perform price\nlookups on items examined within the looting bag interface
  • \n
  • The Menu Entry Swapper plugin now\noffers a "Repairs" option swap for the dark mage
  • \n
  • A 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
  • \n
  • Game overlays in the fixed viewport should now be more accurate
  • \n
  • Fix Werewolf agility course xp in the skill calculator
  • \n
  • Add Burgh de Rott shortcut to agility plugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.9ca1515e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[70],{348: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

Enhanced chatbox input

\n

The 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

xp tracker: kills to level

\n

When 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

native chrome sidebar closer

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The WASD Camera plugin will now prepends\nyour player name to the chatbox text
  • \n
  • The Examine plugin will now perform price\nlookups on items examined within the looting bag interface
  • \n
  • The Menu Entry Swapper plugin now\noffers a "Repairs" option swap for the dark mage
  • \n
  • A 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
  • \n
  • Game overlays in the fixed viewport should now be more accurate
  • \n
  • Fix Werewolf agility course xp in the skill calculator
  • \n
  • Add Burgh de Rott shortcut to agility plugin
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 14 contributors this release!

\n
Adam (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.64a0e193.chunk.js.map \ No newline at end of file diff --git a/static/js/70.9ca1515e.chunk.js.map b/static/js/70.64a0e193.chunk.js.map similarity index 98% rename from static/js/70.9ca1515e.chunk.js.map rename to static/js/70.64a0e193.chunk.js.map index 15007613d7..6e24fc5777 100644 --- a/static/js/70.9ca1515e.chunk.js.map +++ b/static/js/70.64a0e193.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.9ca1515e.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

\\\"Enhanced

\\n

The 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

\\\"xp

\\n

When 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

\\\"native

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The WASD Camera plugin will now prepends\\nyour player name to the chatbox text
  • \\n
  • The Examine plugin will now perform price\\nlookups on items examined within the looting bag interface
  • \\n
  • The Menu Entry Swapper plugin now\\noffers a "Repairs" option swap for the dark mage
  • \\n
  • A 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
  • \\n
  • Game overlays in the fixed viewport should now be more accurate
  • \\n
  • Fix Werewolf agility course xp in the skill calculator
  • \\n
  • Add Burgh de Rott shortcut to agility plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.64a0e193.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

\\\"Enhanced

\\n

The 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

\\\"xp

\\n

When 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

\\\"native

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The WASD Camera plugin will now prepends\\nyour player name to the chatbox text
  • \\n
  • The Examine plugin will now perform price\\nlookups on items examined within the looting bag interface
  • \\n
  • The Menu Entry Swapper plugin now\\noffers a "Repairs" option swap for the dark mage
  • \\n
  • A 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
  • \\n
  • Game overlays in the fixed viewport should now be more accurate
  • \\n
  • Fix Werewolf agility course xp in the skill calculator
  • \\n
  • Add Burgh de Rott shortcut to agility plugin
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 14 contributors this release!

\\n
Adam (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.aa3651ff.chunk.js b/static/js/71.8ad630e3.chunk.js similarity index 98% rename from static/js/71.aa3651ff.chunk.js rename to static/js/71.8ad630e3.chunk.js index 317c58d674..864b0423d6 100644 --- a/static/js/71.aa3651ff.chunk.js +++ b/static/js/71.8ad630e3.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[71],{348: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

Status bars plugin demonstration

\n

As we\'ve announced on Twitter, we\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A bug causing the XP Tracker plugin to\nimproperly display combat skills with strange values has been fixed
  • \n
  • Menu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters
  • \n
  • The Grand Exchange plugin panel has\nhad its color scheme updated to better match the rest of the client
  • \n
  • The Friend Notes plugin now uses the\nupdated chatbox dialog
  • \n
  • XP globes are now ordered statically, and\nwill not change order based on the time skill experience is received
  • \n
  • A Myth\'s guild cannon spot for blue dragons has been highlighted in the Cannon\nplugin
  • \n
  • Shortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\nnow highlighted in the Agility plugin
  • \n
  • The Barrows Brothers plugin\'s\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\noverlay
  • \n
  • Icons for the new portal nexus and mounted jewellery have been added to the Player-owned house\nplugin
  • \n
  • A menu entry swapper option has\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest
  • \n
  • Overlays can no longer get stuck offscreen when switching between fixed and resizable views
  • \n
  • The Diary Requirements plugin now\ndisplays combat level requirements for achievements requiring them
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 16 contributors this release!

\n
15987632 (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.aa3651ff.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[71],{349: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

Status bars plugin demonstration

\n

As we\'ve announced on Twitter, we\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • A bug causing the XP Tracker plugin to\nimproperly display combat skills with strange values has been fixed
  • \n
  • Menu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters
  • \n
  • The Grand Exchange plugin panel has\nhad its color scheme updated to better match the rest of the client
  • \n
  • The Friend Notes plugin now uses the\nupdated chatbox dialog
  • \n
  • XP globes are now ordered statically, and\nwill not change order based on the time skill experience is received
  • \n
  • A Myth\'s guild cannon spot for blue dragons has been highlighted in the Cannon\nplugin
  • \n
  • Shortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\nnow highlighted in the Agility plugin
  • \n
  • The Barrows Brothers plugin\'s\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\noverlay
  • \n
  • Icons for the new portal nexus and mounted jewellery have been added to the Player-owned house\nplugin
  • \n
  • A menu entry swapper option has\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest
  • \n
  • Overlays can no longer get stuck offscreen when switching between fixed and resizable views
  • \n
  • The Diary Requirements plugin now\ndisplays combat level requirements for achievements requiring them
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 16 contributors this release!

\n
15987632 (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.8ad630e3.chunk.js.map \ No newline at end of file diff --git a/static/js/71.aa3651ff.chunk.js.map b/static/js/71.8ad630e3.chunk.js.map similarity index 98% rename from static/js/71.aa3651ff.chunk.js.map rename to static/js/71.8ad630e3.chunk.js.map index e2525cec0f..b9ff86360b 100644 --- a/static/js/71.aa3651ff.chunk.js.map +++ b/static/js/71.8ad630e3.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.aa3651ff.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

\\\"Status

\\n

As we've announced on Twitter, we\\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A bug causing the XP Tracker plugin to\\nimproperly display combat skills with strange values has been fixed
  • \\n
  • Menu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters
  • \\n
  • The Grand Exchange plugin panel has\\nhad its color scheme updated to better match the rest of the client
  • \\n
  • The Friend Notes plugin now uses the\\nupdated chatbox dialog
  • \\n
  • XP globes are now ordered statically, and\\nwill not change order based on the time skill experience is received
  • \\n
  • A Myth's guild cannon spot for blue dragons has been highlighted in the Cannon\\nplugin
  • \\n
  • Shortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\\nnow highlighted in the Agility plugin
  • \\n
  • The Barrows Brothers plugin's\\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\\noverlay
  • \\n
  • Icons for the new portal nexus and mounted jewellery have been added to the Player-owned house\\nplugin
  • \\n
  • A menu entry swapper option has\\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest
  • \\n
  • Overlays can no longer get stuck offscreen when switching between fixed and resizable views
  • \\n
  • The Diary Requirements plugin now\\ndisplays combat level requirements for achievements requiring them
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 16 contributors this release!

\\n
15987632 (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.8ad630e3.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

\\\"Status

\\n

As we've announced on Twitter, we\\nwill soon be releasing the highly-anticipated GPU plugin. Keep on the lookout!

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • A bug causing the XP Tracker plugin to\\nimproperly display combat skills with strange values has been fixed
  • \\n
  • Menu entry swaps will no longer affect NPCs with hint arrows above them to aid clue hunters
  • \\n
  • The Grand Exchange plugin panel has\\nhad its color scheme updated to better match the rest of the client
  • \\n
  • The Friend Notes plugin now uses the\\nupdated chatbox dialog
  • \\n
  • XP globes are now ordered statically, and\\nwill not change order based on the time skill experience is received
  • \\n
  • A Myth's guild cannon spot for blue dragons has been highlighted in the Cannon\\nplugin
  • \\n
  • Shortcuts for a stile in Taverly and the stairs to the task-restricted Skeletal wyverns area are\\nnow highlighted in the Agility plugin
  • \\n
  • The Barrows Brothers plugin's\\noverlay panel now displays reward potential and utilizes custom minimap colors in its minimap\\noverlay
  • \\n
  • Icons for the new portal nexus and mounted jewellery have been added to the Player-owned house\\nplugin
  • \\n
  • A menu entry swapper option has\\nbeen added to swap the Private and Shared options of the Chambers of Xeric chest
  • \\n
  • Overlays can no longer get stuck offscreen when switching between fixed and resizable views
  • \\n
  • The Diary Requirements plugin now\\ndisplays combat level requirements for achievements requiring them
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 16 contributors this release!

\\n
15987632 (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.1808ce35.chunk.js b/static/js/72.53d1a1c5.chunk.js similarity index 93% rename from static/js/72.1808ce35.chunk.js rename to static/js/72.53d1a1c5.chunk.js index 81f35f3dbd..ab625c41da 100644 --- a/static/js/72.1808ce35.chunk.js +++ b/static/js/72.53d1a1c5.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[72],{349: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.

\n

The 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.

\n

We 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.

\n

If 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.

\n

Enjoy!

\n

- Adam

\n'}}}]); -//# sourceMappingURL=72.1808ce35.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[72],{350: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.

\n

The 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.

\n

We 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.

\n

If 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.

\n

Enjoy!

\n

- Adam

\n'}}}]); +//# sourceMappingURL=72.53d1a1c5.chunk.js.map \ No newline at end of file diff --git a/static/js/72.1808ce35.chunk.js.map b/static/js/72.53d1a1c5.chunk.js.map similarity index 93% rename from static/js/72.1808ce35.chunk.js.map rename to static/js/72.53d1a1c5.chunk.js.map index ed5fd743c8..b4300aa345 100644 --- a/static/js/72.1808ce35.chunk.js.map +++ b/static/js/72.53d1a1c5.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.1808ce35.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.

\\n

The 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.

\\n

We 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.

\\n

If 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.

\\n

Enjoy!

\\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.53d1a1c5.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.

\\n

The 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.

\\n

We 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.

\\n

If 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.

\\n

Enjoy!

\\n

- Adam

\\n\"}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/73.79d53550.chunk.js b/static/js/73.494e7d44.chunk.js similarity index 97% rename from static/js/73.79d53550.chunk.js rename to static/js/73.494e7d44.chunk.js index ac50768f92..e5bfbcb386 100644 --- a/static/js/73.79d53550.chunk.js +++ b/static/js/73.494e7d44.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[73],{350: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.

\n

Thanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\nto reach the next combat level in Attack Style interface.

\n

combat1\ncombat2

\n

Thanks 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.

\n

GPU fixes for this week:

\n
    \n
  • Add support for Stretched Mode
  • \n
  • Fix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19
  • \n
  • Fix relying on some undefined behavior causing some AMD cards to not work corectly
  • \n
  • Fix visible lag from resizing the client or when expanding/contracting the side panel
  • \n
  • Fix resource leaks from shutting down the GPU plugin
  • \n
  • More consistently limit interaction with far away objects
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix smoke rune level requirement in skill calc
  • \n
  • Show ironman icons when chat is locked with the WASD plugin
  • \n
  • Add new POH teleport icons to minimap
  • \n
  • Fix hiding attack styles after autocast selection
  • \n
  • Make Skotizo interface layoutable
  • \n
  • Fix some boulders at Maniacal Monkeys not working with the hunter plugin
  • \n
  • Add kills left to XP orbs
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.79d53550.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[73],{351: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.

\n

Thanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\nto reach the next combat level in Attack Style interface.

\n

combat1\ncombat2

\n

Thanks 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.

\n

GPU fixes for this week:

\n
    \n
  • Add support for Stretched Mode
  • \n
  • Fix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19
  • \n
  • Fix relying on some undefined behavior causing some AMD cards to not work corectly
  • \n
  • Fix visible lag from resizing the client or when expanding/contracting the side panel
  • \n
  • Fix resource leaks from shutting down the GPU plugin
  • \n
  • More consistently limit interaction with far away objects
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix smoke rune level requirement in skill calc
  • \n
  • Show ironman icons when chat is locked with the WASD plugin
  • \n
  • Add new POH teleport icons to minimap
  • \n
  • Fix hiding attack styles after autocast selection
  • \n
  • Make Skotizo interface layoutable
  • \n
  • Fix some boulders at Maniacal Monkeys not working with the hunter plugin
  • \n
  • Add kills left to XP orbs
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.494e7d44.chunk.js.map \ No newline at end of file diff --git a/static/js/73.79d53550.chunk.js.map b/static/js/73.494e7d44.chunk.js.map similarity index 98% rename from static/js/73.79d53550.chunk.js.map rename to static/js/73.494e7d44.chunk.js.map index 7e8fbd3aa6..011461ae9b 100644 --- a/static/js/73.79d53550.chunk.js.map +++ b/static/js/73.494e7d44.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.79d53550.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.

\\n

Thanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\\nto reach the next combat level in Attack Style interface.

\\n

\\\"combat1\\\"\\n\\\"combat2\\\"

\\n

Thanks 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.

\\n

GPU fixes for this week:

\\n
    \\n
  • Add support for Stretched Mode
  • \\n
  • Fix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19
  • \\n
  • Fix relying on some undefined behavior causing some AMD cards to not work corectly
  • \\n
  • Fix visible lag from resizing the client or when expanding/contracting the side panel
  • \\n
  • Fix resource leaks from shutting down the GPU plugin
  • \\n
  • More consistently limit interaction with far away objects
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix smoke rune level requirement in skill calc
  • \\n
  • Show ironman icons when chat is locked with the WASD plugin
  • \\n
  • Add new POH teleport icons to minimap
  • \\n
  • Fix hiding attack styles after autocast selection
  • \\n
  • Make Skotizo interface layoutable
  • \\n
  • Fix some boulders at Maniacal Monkeys not working with the hunter plugin
  • \\n
  • Add kills left to XP orbs
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.494e7d44.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.

\\n

Thanks to @bmiddle Combat Level plugin now displays a tooltip for levels required\\nto reach the next combat level in Attack Style interface.

\\n

\\\"combat1\\\"\\n\\\"combat2\\\"

\\n

Thanks 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.

\\n

GPU fixes for this week:

\\n
    \\n
  • Add support for Stretched Mode
  • \\n
  • Fix tiles having black outlines on Intel HD Graphics with drivers newer than 20.19
  • \\n
  • Fix relying on some undefined behavior causing some AMD cards to not work corectly
  • \\n
  • Fix visible lag from resizing the client or when expanding/contracting the side panel
  • \\n
  • Fix resource leaks from shutting down the GPU plugin
  • \\n
  • More consistently limit interaction with far away objects
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix smoke rune level requirement in skill calc
  • \\n
  • Show ironman icons when chat is locked with the WASD plugin
  • \\n
  • Add new POH teleport icons to minimap
  • \\n
  • Fix hiding attack styles after autocast selection
  • \\n
  • Make Skotizo interface layoutable
  • \\n
  • Fix some boulders at Maniacal Monkeys not working with the hunter plugin
  • \\n
  • Add kills left to XP orbs
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.94c75616.chunk.js b/static/js/74.621a6485.chunk.js similarity index 97% rename from static/js/74.94c75616.chunk.js rename to static/js/74.621a6485.chunk.js index e8b059bb4b..3122b853a8 100644 --- a/static/js/74.94c75616.chunk.js +++ b/static/js/74.621a6485.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[74],{351: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

stretched-rezizable\nstretched-fixed

\n

The 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.

\n

The camera zoom plugin now has a configurable outer zoom limit, which controls\nhow far the ingame zoom can zoom out.

\n

GPU fixes for this week:

\n
    \n
  • Fix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others.
  • \n
  • Fix screenshots with stretched mode.
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix pasting on the login screen on OSX
  • \n
  • Fix observatory shortcut highlight
  • \n
  • Fix slayer plugin not working on the first assigned slayer task
  • \n
  • Add Ivandis Flail to prayer plugin
  • \n
  • Fix the world map plugin to not noticibly drop FPS when the map is open
  • \n
  • Fix freeze timer not showing when you move on the same tick as being frozen
  • \n
  • Fix incorrect slayer kills remaining count in xp tracker
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors this release!

\n
Adam (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.94c75616.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[74],{352: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

stretched-rezizable\nstretched-fixed

\n

The 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.

\n

The camera zoom plugin now has a configurable outer zoom limit, which controls\nhow far the ingame zoom can zoom out.

\n

GPU fixes for this week:

\n
    \n
  • Fix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others.
  • \n
  • Fix screenshots with stretched mode.
  • \n
\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix pasting on the login screen on OSX
  • \n
  • Fix observatory shortcut highlight
  • \n
  • Fix slayer plugin not working on the first assigned slayer task
  • \n
  • Add Ivandis Flail to prayer plugin
  • \n
  • Fix the world map plugin to not noticibly drop FPS when the map is open
  • \n
  • Fix freeze timer not showing when you move on the same tick as being frozen
  • \n
  • Fix incorrect slayer kills remaining count in xp tracker
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n

We had 20 contributors this release!

\n
Adam (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.621a6485.chunk.js.map \ No newline at end of file diff --git a/static/js/74.94c75616.chunk.js.map b/static/js/74.621a6485.chunk.js.map similarity index 98% rename from static/js/74.94c75616.chunk.js.map rename to static/js/74.621a6485.chunk.js.map index cb8b5792ec..2ca6bd7ef3 100644 --- a/static/js/74.94c75616.chunk.js.map +++ b/static/js/74.621a6485.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.94c75616.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

\\\"stretched-rezizable\\\"\\n\\\"stretched-fixed\\\"

\\n

The 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.

\\n

The camera zoom plugin now has a configurable outer zoom limit, which controls\\nhow far the ingame zoom can zoom out.

\\n

GPU fixes for this week:

\\n
    \\n
  • Fix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others.
  • \\n
  • Fix screenshots with stretched mode.
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix pasting on the login screen on OSX
  • \\n
  • Fix observatory shortcut highlight
  • \\n
  • Fix slayer plugin not working on the first assigned slayer task
  • \\n
  • Add Ivandis Flail to prayer plugin
  • \\n
  • Fix the world map plugin to not noticibly drop FPS when the map is open
  • \\n
  • Fix freeze timer not showing when you move on the same tick as being frozen
  • \\n
  • Fix incorrect slayer kills remaining count in xp tracker
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors this release!

\\n
Adam (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.621a6485.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

\\\"stretched-rezizable\\\"\\n\\\"stretched-fixed\\\"

\\n

The 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.

\\n

The camera zoom plugin now has a configurable outer zoom limit, which controls\\nhow far the ingame zoom can zoom out.

\\n

GPU fixes for this week:

\\n
    \\n
  • Fix texturing for volcanic whips, Fountain of Rune, closed bank booths, and others.
  • \\n
  • Fix screenshots with stretched mode.
  • \\n
\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix pasting on the login screen on OSX
  • \\n
  • Fix observatory shortcut highlight
  • \\n
  • Fix slayer plugin not working on the first assigned slayer task
  • \\n
  • Add Ivandis Flail to prayer plugin
  • \\n
  • Fix the world map plugin to not noticibly drop FPS when the map is open
  • \\n
  • Fix freeze timer not showing when you move on the same tick as being frozen
  • \\n
  • Fix incorrect slayer kills remaining count in xp tracker
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n

We had 20 contributors this release!

\\n
Adam (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.c4d418ac.chunk.js b/static/js/75.69a4b1bf.chunk.js similarity index 97% rename from static/js/75.c4d418ac.chunk.js rename to static/js/75.69a4b1bf.chunk.js index f804be226f..b0366c95c5 100644 --- a/static/js/75.c4d418ac.chunk.js +++ b/static/js/75.69a4b1bf.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[75],{352: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

GPU anti-aliasing

\n

The Ground Items plugin now has an option\nto only show loot. Thanks to @Adam- for this feature.

\n

ground items plugin showing only loot

\n

After 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\nand during the fight with the Grotesque Guardians
  • \n
  • The WASD Camera plugin will no longer\ncause camera spinning when the chatbox loses focus
  • \n
  • Marks 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
  • \n
  • The "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\nslot item
  • \n
  • Teleport icons for the pharaoh\'s sceptre have been added to the World Map\nplugin
  • \n
  • The fairy ring search chatbox will no longer remain active when you select a teleport destination\nvery quickly
  • \n
  • The Slayer plugin will now display your\ninitial task amount when hovering the slayer infobox
  • \n
  • The Kourend favour widget is now moveable
  • \n
  • The Screenshot plugin can now take\nscreenshots when receiving valuable and/or untradeable drops
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.c4d418ac.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[75],{353: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

GPU anti-aliasing

\n

The Ground Items plugin now has an option\nto only show loot. Thanks to @Adam- for this feature.

\n

ground items plugin showing only loot

\n

After 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.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\nand during the fight with the Grotesque Guardians
  • \n
  • The WASD Camera plugin will no longer\ncause camera spinning when the chatbox loses focus
  • \n
  • Marks 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
  • \n
  • The "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\nslot item
  • \n
  • Teleport icons for the pharaoh\'s sceptre have been added to the World Map\nplugin
  • \n
  • The fairy ring search chatbox will no longer remain active when you select a teleport destination\nvery quickly
  • \n
  • The Slayer plugin will now display your\ninitial task amount when hovering the slayer infobox
  • \n
  • The Kourend favour widget is now moveable
  • \n
  • The Screenshot plugin can now take\nscreenshots when receiving valuable and/or untradeable drops
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 17 contributors this release!

\n
Adam (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.69a4b1bf.chunk.js.map \ No newline at end of file diff --git a/static/js/75.c4d418ac.chunk.js.map b/static/js/75.69a4b1bf.chunk.js.map similarity index 98% rename from static/js/75.c4d418ac.chunk.js.map rename to static/js/75.69a4b1bf.chunk.js.map index 569d909629..df3126a71d 100644 --- a/static/js/75.c4d418ac.chunk.js.map +++ b/static/js/75.69a4b1bf.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.c4d418ac.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

\\\"GPU

\\n

The Ground Items plugin now has an option\\nto only show loot. Thanks to @Adam- for this feature.

\\n

\\\"ground

\\n

After 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\\nand during the fight with the Grotesque Guardians
  • \\n
  • The WASD Camera plugin will no longer\\ncause camera spinning when the chatbox loses focus
  • \\n
  • Marks 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
  • \\n
  • The "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\\nslot item
  • \\n
  • Teleport icons for the pharaoh's sceptre have been added to the World Map\\nplugin
  • \\n
  • The fairy ring search chatbox will no longer remain active when you select a teleport destination\\nvery quickly
  • \\n
  • The Slayer plugin will now display your\\ninitial task amount when hovering the slayer infobox
  • \\n
  • The Kourend favour widget is now moveable
  • \\n
  • The Screenshot plugin can now take\\nscreenshots when receiving valuable and/or untradeable drops
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.69a4b1bf.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

\\\"GPU

\\n

The Ground Items plugin now has an option\\nto only show loot. Thanks to @Adam- for this feature.

\\n

\\\"ground

\\n

After 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.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The GPU plugin no longer causes overlays to render in black within the smoke devil dungeon\\nand during the fight with the Grotesque Guardians
  • \\n
  • The WASD Camera plugin will no longer\\ncause camera spinning when the chatbox loses focus
  • \\n
  • Marks 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
  • \\n
  • The "Panic in the heart of the Haunted Woods" clue step properly warns you to remove your ammo\\nslot item
  • \\n
  • Teleport icons for the pharaoh's sceptre have been added to the World Map\\nplugin
  • \\n
  • The fairy ring search chatbox will no longer remain active when you select a teleport destination\\nvery quickly
  • \\n
  • The Slayer plugin will now display your\\ninitial task amount when hovering the slayer infobox
  • \\n
  • The Kourend favour widget is now moveable
  • \\n
  • The Screenshot plugin can now take\\nscreenshots when receiving valuable and/or untradeable drops
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 17 contributors this release!

\\n
Adam (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.24221d23.chunk.js b/static/js/76.eef5a2d5.chunk.js similarity index 97% rename from static/js/76.24221d23.chunk.js rename to static/js/76.eef5a2d5.chunk.js index e7cc77b293..75619e19ff 100644 --- a/static/js/76.24221d23.chunk.js +++ b/static/js/76.eef5a2d5.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[76],{353: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

ping

\n

The item stats plugin will now show equipment stats when hovering over items.

\n

itemstats

\n

The timers plugin now shows an additional infobox for when vengence is active\nalongside the existing vengence cooldown timer.

\n

venge

\n

The idle notifier now has a notification for when your special attack regenerates\nto a configurable percent.

\n

The camera zoom plugin now allows reducing the outer zoom limit, as well as the\nusual extending of it, by setting the limit negative.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The hiscore plugin can now show unranked levels, if the player is on the\nhiscores
  • \n
  • Add Xeric\'s aid and revitalisation potions to itemstats plugin
  • \n
  • Fix slayer plugin tracking Commander Zilyana tasks
  • \n
  • Add Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup
  • \n
  • Fix the bounty hunter interface to be movable again
  • \n
  • Add wyvern staircase to agility plugin
  • \n
  • Correct Oak Armchair level requirement in Construction Skill Calc
  • \n
  • Fix grounditems "only show loot" option to work correctly with multi-tile NPCs
  • \n
  • Fix itemstats papaya fruit health restore
  • \n
\n

The 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.24221d23.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[76],{354: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

ping

\n

The item stats plugin will now show equipment stats when hovering over items.

\n

itemstats

\n

The timers plugin now shows an additional infobox for when vengence is active\nalongside the existing vengence cooldown timer.

\n

venge

\n

The idle notifier now has a notification for when your special attack regenerates\nto a configurable percent.

\n

The camera zoom plugin now allows reducing the outer zoom limit, as well as the\nusual extending of it, by setting the limit negative.

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • The hiscore plugin can now show unranked levels, if the player is on the\nhiscores
  • \n
  • Add Xeric\'s aid and revitalisation potions to itemstats plugin
  • \n
  • Fix slayer plugin tracking Commander Zilyana tasks
  • \n
  • Add Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup
  • \n
  • Fix the bounty hunter interface to be movable again
  • \n
  • Add wyvern staircase to agility plugin
  • \n
  • Correct Oak Armchair level requirement in Construction Skill Calc
  • \n
  • Fix grounditems "only show loot" option to work correctly with multi-tile NPCs
  • \n
  • Fix itemstats papaya fruit health restore
  • \n
\n

The 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.

\n

Enjoy!

\n

- Adam

\n

New commits

\n
Adam (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.eef5a2d5.chunk.js.map \ No newline at end of file diff --git a/static/js/76.24221d23.chunk.js.map b/static/js/76.eef5a2d5.chunk.js.map similarity index 98% rename from static/js/76.24221d23.chunk.js.map rename to static/js/76.eef5a2d5.chunk.js.map index d29369929a..79395e676b 100644 --- a/static/js/76.24221d23.chunk.js.map +++ b/static/js/76.eef5a2d5.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.24221d23.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

\\\"ping\\\"

\\n

The item stats plugin will now show equipment stats when hovering over items.

\\n

\\\"itemstats\\\"

\\n

The timers plugin now shows an additional infobox for when vengence is active\\nalongside the existing vengence cooldown timer.

\\n

\\\"venge\\\"

\\n

The idle notifier now has a notification for when your special attack regenerates\\nto a configurable percent.

\\n

The camera zoom plugin now allows reducing the outer zoom limit, as well as the\\nusual extending of it, by setting the limit negative.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The hiscore plugin can now show unranked levels, if the player is on the\\nhiscores
  • \\n
  • Add Xeric's aid and revitalisation potions to itemstats plugin
  • \\n
  • Fix slayer plugin tracking Commander Zilyana tasks
  • \\n
  • Add Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup
  • \\n
  • Fix the bounty hunter interface to be movable again
  • \\n
  • Add wyvern staircase to agility plugin
  • \\n
  • Correct Oak Armchair level requirement in Construction Skill Calc
  • \\n
  • Fix grounditems "only show loot" option to work correctly with multi-tile NPCs
  • \\n
  • Fix itemstats papaya fruit health restore
  • \\n
\\n

The 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.eef5a2d5.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

\\\"ping\\\"

\\n

The item stats plugin will now show equipment stats when hovering over items.

\\n

\\\"itemstats\\\"

\\n

The timers plugin now shows an additional infobox for when vengence is active\\nalongside the existing vengence cooldown timer.

\\n

\\\"venge\\\"

\\n

The idle notifier now has a notification for when your special attack regenerates\\nto a configurable percent.

\\n

The camera zoom plugin now allows reducing the outer zoom limit, as well as the\\nusual extending of it, by setting the limit negative.

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • The hiscore plugin can now show unranked levels, if the player is on the\\nhiscores
  • \\n
  • Add Xeric's aid and revitalisation potions to itemstats plugin
  • \\n
  • Fix slayer plugin tracking Commander Zilyana tasks
  • \\n
  • Add Deadman Mode Tournament hiscore support to the hiscore plugin and opponent info hitpoints lookup
  • \\n
  • Fix the bounty hunter interface to be movable again
  • \\n
  • Add wyvern staircase to agility plugin
  • \\n
  • Correct Oak Armchair level requirement in Construction Skill Calc
  • \\n
  • Fix grounditems "only show loot" option to work correctly with multi-tile NPCs
  • \\n
  • Fix itemstats papaya fruit health restore
  • \\n
\\n

The 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.

\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
Adam (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.fcbd2fa1.chunk.js b/static/js/77.7018f253.chunk.js similarity index 97% rename from static/js/77.fcbd2fa1.chunk.js rename to static/js/77.7018f253.chunk.js index 3ffdd620f8..0b0a9e1e34 100644 --- a/static/js/77.fcbd2fa1.chunk.js +++ b/static/js/77.7018f253.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[77],{354: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

timestamp

\n

A cooking plugin has been added which tracks success and burn rates.

\n

timestamp

\n

The 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

grounditems

\n

Gargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\nshown when they are weak and can be killed with their corresponding item.

\n

The 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

grounditems

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\nclient starts
  • \n
  • Fix level 37 wilderness hot clue step location
  • \n
  • Add Bottle of Wine stats to item stats plugin
  • \n
  • Add silver jewellery to crafting skill calculator
  • \n
  • Add missing empty ammo slot requirements to emote clues
  • \n
  • Prevent overlays rendering if fullscreen map is open
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.fcbd2fa1.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[77],{355: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

timestamp

\n

A cooking plugin has been added which tracks success and burn rates.

\n

timestamp

\n

The 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

grounditems

\n

Gargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\nshown when they are weak and can be killed with their corresponding item.

\n

The 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

grounditems

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\nclient starts
  • \n
  • Fix level 37 wilderness hot clue step location
  • \n
  • Add Bottle of Wine stats to item stats plugin
  • \n
  • Add silver jewellery to crafting skill calculator
  • \n
  • Add missing empty ammo slot requirements to emote clues
  • \n
  • Prevent overlays rendering if fullscreen map is open
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.7018f253.chunk.js.map \ No newline at end of file diff --git a/static/js/77.fcbd2fa1.chunk.js.map b/static/js/77.7018f253.chunk.js.map similarity index 98% rename from static/js/77.fcbd2fa1.chunk.js.map rename to static/js/77.7018f253.chunk.js.map index d908d00767..1d92158060 100644 --- a/static/js/77.fcbd2fa1.chunk.js.map +++ b/static/js/77.7018f253.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.fcbd2fa1.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

\\\"timestamp\\\"

\\n

A cooking plugin has been added which tracks success and burn rates.

\\n

\\\"timestamp\\\"

\\n

The 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

\\\"grounditems\\\"

\\n

Gargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\\nshown when they are weak and can be killed with their corresponding item.

\\n

The 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

\\\"grounditems\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\\nclient starts
  • \\n
  • Fix level 37 wilderness hot clue step location
  • \\n
  • Add Bottle of Wine stats to item stats plugin
  • \\n
  • Add silver jewellery to crafting skill calculator
  • \\n
  • Add missing empty ammo slot requirements to emote clues
  • \\n
  • Prevent overlays rendering if fullscreen map is open
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.7018f253.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

\\\"timestamp\\\"

\\n

A cooking plugin has been added which tracks success and burn rates.

\\n

\\\"timestamp\\\"

\\n

The 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

\\\"grounditems\\\"

\\n

Gargoyles, desert lizards, mutated zygomites, and rockslugs now have an overlay\\nshown when they are weak and can be killed with their corresponding item.

\\n

The 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

\\\"grounditems\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix GPU plugin sometimes getting stuck in a canvas rebuild loop after the\\nclient starts
  • \\n
  • Fix level 37 wilderness hot clue step location
  • \\n
  • Add Bottle of Wine stats to item stats plugin
  • \\n
  • Add silver jewellery to crafting skill calculator
  • \\n
  • Add missing empty ammo slot requirements to emote clues
  • \\n
  • Prevent overlays rendering if fullscreen map is open
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.e0cdb49e.chunk.js b/static/js/78.e0340fa9.chunk.js similarity index 97% rename from static/js/78.e0cdb49e.chunk.js rename to static/js/78.e0340fa9.chunk.js index 64325c1e4e..7278d71310 100644 --- a/static/js/78.e0cdb49e.chunk.js +++ b/static/js/78.e0340fa9.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[78],{355: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

loottracker

\n

An object marker plugin which lets you mark most game objects by holding shift\nand right clicking was added.

\n

objectmarker

\n

The xp tracker plugin now shows intermediate progress markers for each level, if\nyou have a goal set which spans multiple levels.

\n

xptracker

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix FPS loss from clickbox calculation introduced in the previous release\nwhich was most noticeable in the herbiboar area
  • \n
  • Add Chaos Altar to Prayer calculator
  • \n
  • Add wilderness cannon spots to cannon plugin
  • \n
  • Add Flax and Bonemeal options to Daily Task plugin
  • \n
  • Add weiss agility obstacles
  • \n
  • Add farming patch type to tooltips on world map
  • \n
  • Add barbarian mix timers to Timers plugin
  • \n
  • Improve performance of full screen overlays with GPU on (zammy godwars, underwater, etc.)
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.e0cdb49e.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[78],{356: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

loottracker

\n

An object marker plugin which lets you mark most game objects by holding shift\nand right clicking was added.

\n

objectmarker

\n

The xp tracker plugin now shows intermediate progress markers for each level, if\nyou have a goal set which spans multiple levels.

\n

xptracker

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Fix FPS loss from clickbox calculation introduced in the previous release\nwhich was most noticeable in the herbiboar area
  • \n
  • Add Chaos Altar to Prayer calculator
  • \n
  • Add wilderness cannon spots to cannon plugin
  • \n
  • Add Flax and Bonemeal options to Daily Task plugin
  • \n
  • Add weiss agility obstacles
  • \n
  • Add farming patch type to tooltips on world map
  • \n
  • Add barbarian mix timers to Timers plugin
  • \n
  • Improve performance of full screen overlays with GPU on (zammy godwars, underwater, etc.)
  • \n
\n

Enjoy!

\n

- Adam

\n

New commits

\n
15987632 (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.e0340fa9.chunk.js.map \ No newline at end of file diff --git a/static/js/78.e0cdb49e.chunk.js.map b/static/js/78.e0340fa9.chunk.js.map similarity index 98% rename from static/js/78.e0cdb49e.chunk.js.map rename to static/js/78.e0340fa9.chunk.js.map index 374e4fa198..f31b28d8ef 100644 --- a/static/js/78.e0cdb49e.chunk.js.map +++ b/static/js/78.e0340fa9.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.e0cdb49e.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

\\\"loottracker\\\"

\\n

An object marker plugin which lets you mark most game objects by holding shift\\nand right clicking was added.

\\n

\\\"objectmarker\\\"

\\n

The xp tracker plugin now shows intermediate progress markers for each level, if\\nyou have a goal set which spans multiple levels.

\\n

\\\"xptracker\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix FPS loss from clickbox calculation introduced in the previous release\\nwhich was most noticeable in the herbiboar area
  • \\n
  • Add Chaos Altar to Prayer calculator
  • \\n
  • Add wilderness cannon spots to cannon plugin
  • \\n
  • Add Flax and Bonemeal options to Daily Task plugin
  • \\n
  • Add weiss agility obstacles
  • \\n
  • Add farming patch type to tooltips on world map
  • \\n
  • Add barbarian mix timers to Timers plugin
  • \\n
  • Improve performance of full screen overlays with GPU on (zammy godwars, underwater, etc.)
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.e0340fa9.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

\\\"loottracker\\\"

\\n

An object marker plugin which lets you mark most game objects by holding shift\\nand right clicking was added.

\\n

\\\"objectmarker\\\"

\\n

The xp tracker plugin now shows intermediate progress markers for each level, if\\nyou have a goal set which spans multiple levels.

\\n

\\\"xptracker\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Fix FPS loss from clickbox calculation introduced in the previous release\\nwhich was most noticeable in the herbiboar area
  • \\n
  • Add Chaos Altar to Prayer calculator
  • \\n
  • Add wilderness cannon spots to cannon plugin
  • \\n
  • Add Flax and Bonemeal options to Daily Task plugin
  • \\n
  • Add weiss agility obstacles
  • \\n
  • Add farming patch type to tooltips on world map
  • \\n
  • Add barbarian mix timers to Timers plugin
  • \\n
  • Improve performance of full screen overlays with GPU on (zammy godwars, underwater, etc.)
  • \\n
\\n

Enjoy!

\\n

- Adam

\\n

New commits

\\n
15987632 (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.4fd5727b.chunk.js b/static/js/79.e9258a3a.chunk.js similarity index 97% rename from static/js/79.4fd5727b.chunk.js rename to static/js/79.e9258a3a.chunk.js index 9d3447faec..398eb30b1b 100644 --- a/static/js/79.4fd5727b.chunk.js +++ b/static/js/79.e9258a3a.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[79],{356: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

Skybox

\n

The 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

Fog

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add karambwans and wine to cooking plugin
  • \n
  • Added a !qp command to the chat commands plugin
  • \n
  • The world hopper plugin now changes the header color to yellow with active filter
  • \n
  • The report button plugin now has a date time format matching that of the screenshot plugin
  • \n
  • Added quest requirements support to the achievement diary plugin
  • \n
  • Added Kebos and Kourend diary to the achievement diary plugin
  • \n
  • Looking up hiscores will now automatically select the correct game mode based on current world
  • \n
  • Split Valuable and Untradeable screenshot options
  • \n
  • Fix artic pine log exp in skill calc
  • \n
  • Change Caviar healing value from 3 to 5
  • \n
  • Add puzzle solver for monkey madness 1 puzzle box
  • \n
  • Fixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.4fd5727b.chunk.js.map \ No newline at end of file +(this["webpackJsonprunelite.net"]=this["webpackJsonprunelite.net"]||[]).push([[79],{357: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

Skybox

\n

The 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

Fog

\n

There are also several smaller improvements and bug fixes, including:

\n
    \n
  • Add karambwans and wine to cooking plugin
  • \n
  • Added a !qp command to the chat commands plugin
  • \n
  • The world hopper plugin now changes the header color to yellow with active filter
  • \n
  • The report button plugin now has a date time format matching that of the screenshot plugin
  • \n
  • Added quest requirements support to the achievement diary plugin
  • \n
  • Added Kebos and Kourend diary to the achievement diary plugin
  • \n
  • Looking up hiscores will now automatically select the correct game mode based on current world
  • \n
  • Split Valuable and Untradeable screenshot options
  • \n
  • Fix artic pine log exp in skill calc
  • \n
  • Change Caviar healing value from 3 to 5
  • \n
  • Add puzzle solver for monkey madness 1 puzzle box
  • \n
  • Fixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely
  • \n
\n

Enjoy!

\n

- Jordan

\n

New commits

\n

We had 12 contributors this release!

\n
Adam (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.e9258a3a.chunk.js.map \ No newline at end of file diff --git a/static/js/79.4fd5727b.chunk.js.map b/static/js/79.e9258a3a.chunk.js.map similarity index 98% rename from static/js/79.4fd5727b.chunk.js.map rename to static/js/79.e9258a3a.chunk.js.map index 3c57853278..f9ce102198 100644 --- a/static/js/79.4fd5727b.chunk.js.map +++ b/static/js/79.e9258a3a.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.4fd5727b.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

\\\"Skybox\\\"

\\n

The 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

\\\"Fog\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add karambwans and wine to cooking plugin
  • \\n
  • Added a !qp command to the chat commands plugin
  • \\n
  • The world hopper plugin now changes the header color to yellow with active filter
  • \\n
  • The report button plugin now has a date time format matching that of the screenshot plugin
  • \\n
  • Added quest requirements support to the achievement diary plugin
  • \\n
  • Added Kebos and Kourend diary to the achievement diary plugin
  • \\n
  • Looking up hiscores will now automatically select the correct game mode based on current world
  • \\n
  • Split Valuable and Untradeable screenshot options
  • \\n
  • Fix artic pine log exp in skill calc
  • \\n
  • Change Caviar healing value from 3 to 5
  • \\n
  • Add puzzle solver for monkey madness 1 puzzle box
  • \\n
  • Fixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.e9258a3a.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

\\\"Skybox\\\"

\\n

The 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

\\\"Fog\\\"

\\n

There are also several smaller improvements and bug fixes, including:

\\n
    \\n
  • Add karambwans and wine to cooking plugin
  • \\n
  • Added a !qp command to the chat commands plugin
  • \\n
  • The world hopper plugin now changes the header color to yellow with active filter
  • \\n
  • The report button plugin now has a date time format matching that of the screenshot plugin
  • \\n
  • Added quest requirements support to the achievement diary plugin
  • \\n
  • Added Kebos and Kourend diary to the achievement diary plugin
  • \\n
  • Looking up hiscores will now automatically select the correct game mode based on current world
  • \\n
  • Split Valuable and Untradeable screenshot options
  • \\n
  • Fix artic pine log exp in skill calc
  • \\n
  • Change Caviar healing value from 3 to 5
  • \\n
  • Add puzzle solver for monkey madness 1 puzzle box
  • \\n
  • Fixed a bug with the inventory tags plugin causing tooltips to stay active indefinitely
  • \\n
\\n

Enjoy!

\\n

- Jordan

\\n

New commits

\\n

We had 12 contributors this release!

\\n
Adam (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.c51bfff0.chunk.js b/static/js/8.e46392e3.chunk.js similarity index 98% rename from static/js/8.c51bfff0.chunk.js rename to static/js/8.e46392e3.chunk.js index 382f118ccc..7f701ae48b 100644 --- a/static/js/8.c51bfff0.chunk.js +++ b/static/js/8.e46392e3.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()}))}},288: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("")}},293:function(e,t,n){},294: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))))}},295:function(e,t,n){"use strict";var r=n(0),a=n(132),o=n(463),c=n(472),s=n(464),E=n(465),i=n(466),R=n(49);n(296);const A=[3225,3219],O=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)}),l=(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=l(A[0],A[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([l(t.x,t.y),l(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 R.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)},I=e=>{let{tiles:t,selected:n,plane:a}=e;const i=Object(o.a)();if(i.tileLayer||(i.tileLayer=new O("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=[l(r,o),l(a,c)];i.viewport=s,i.fitBounds(s)}return t.map(e=>{const t=[l(e.x,e.y),l(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)(I,{tiles:t,selected:n,plane:o})))}},296:function(e,t,n){},446:function(e,t,n){},447:function(e,t,n){},448:function(e,t,n){},449:function(e,t,n){},467: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),R=n(46),A=n(20);class O extends r.a{componentWillMount(){window.location.replace(this.props.to)}render(){return null}}var u=n(28),l=(n(288),n(18)),d=n(127),P=n(4);const I=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 S=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/${I(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(l.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(446),n(287)),w=n(32),G=n(24);const N={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}},g=["","K","M"],D=e=>{let t=0;for(;e>9999;)e/=1e3,t++;const n=g[t];return[~~e+n,n]},W=e=>{return Object(r.g)("div",{class:"drop-wrapper"},(e=>{let[t,n]=D(e);return e>1&&Object(r.g)("span",{class:"rs-item-quantity rs-item-quantity-"+(n||"none")},[...t].map(e=>N[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(l.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,"(",_(e.price)," gp)"))));var t},_=e=>{let[t]=D(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"},_(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(W))));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:G.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)))})),m=n(47);n(447),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(l.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(l.i)(e)},Object(r.g)("img",{class:"card-img-top",alt:t,src:Object(l.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,B,f,C,H=Object(a.b)((e,t)=>({...t,tags:Object(u.q)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,fetchItems:G.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 U{}U.GRIMY_RANARR_WEED=207,U.LIMPWURT_ROOT=225,U.SNAPE_GRASS=231,U.WHITE_BERRIES=239,U.JANGERBERRIES=247,U.GUAM_LEAF=249,U.MARRENTILL=251,U.TARROMIN=253,U.HARRALANDER=255,U.RANARR_WEED=257,U.IRIT_LEAF=259,U.AVANTOE=261,U.KWUARM=263,U.CADANTINE=265,U.DWARF_WEED=267,U.TORSTOL=269,U.CADAVA_BERRIES=753,U.BATTLESTAFF=1391,U.MAGIC_LOGS=1513,U.YEW_LOGS=1515,U.MAPLE_LOGS=1517,U.WILLOW_LOGS=1519,U.OAK_LOGS=1521,U.WOAD_LEAF=1793,U.POTATO=1942,U.REDBERRIES=1951,U.COOKING_APPLE=1955,U.ONION=1957,U.BANANA=1963,U.CABBAGE=1965,U.TOMATO=1982,U.GRAPES=1987,U.ORANGE=2108,U.PINEAPPLE=2114,U.DWELLBERRIES=2126,U.CAVE_NIGHTSHADE=2398,U.RED_FLOWERS=2462,U.LANTADYME=2481,U.WATCH=2575,U.TOADFLAX=2998,U.SNAPDRAGON=3e3,U.POTATO_CACTUS=3138,U.GOUTWEED=3261,U.STRAWBERRY=5504,U.JUTE_FIBRE=5931,U.CURRY_LEAF=5970,U.PAPAYA_FRUIT=5972,U.COCONUT=5974,U.CALQUAT_FRUIT=5980,U.WATERMELON=5982,U.SWEETCORN=5986,U.HAMMERSTONE_HOPS=5994,U.ASGARNIAN_HOPS=5996,U.YANILLIAN_HOPS=5998,U.KRANDORIAN_HOPS=6e3,U.WILDBLOOD_HOPS=6002,U.MUSHROOM=6004,U.BARLEY=6006,U.MARIGOLDS=6010,U.NASTURTIUMS=6012,U.ROSEMARY=6014,U.CACTUS_SPINE=6016,U.POISON_IVY_BERRIES=6018,U.WEEDS=6055,U.SCARECROW=6059,U.SPIRIT_TREE=6063,U.MAHOGANY_LOGS=6332,U.TEAK_LOGS=6333,U.REDWOOD_LOGS=19669,U.GIANT_SEAWEED=21504,U.OLD_NOTES=22051,U.DRAGONFRUIT=22929,U.WHITE_LILY=22932,U.CRYSTAL_SHARDS=23866,U.BIRD_HOUSE=21512,U.OAK_BIRD_HOUSE=21515,U.WILLOW_BIRD_HOUSE=21518,U.TEAK_BIRD_HOUSE=21521,U.MAPLE_BIRD_HOUSE=22192,U.MAHOGANY_BIRD_HOUSE=22195,U.YEW_BIRD_HOUSE=22198,U.MAGIC_BIRD_HOUSE=22201,U.REDWOOD_BIRD_HOUSE=22204,U.FEATHER=314,U.COMPOST_BIN=3271,U.COMPOST=6032,U.SUPERCOMPOST=6034,U.ULTRACOMPOST=21483,U.ROTTEN_TOMATO=2518,U.__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 v{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==v.FARMING_TABS&&(v.FARMING_TABS=[b.HERB,b.TREE,b.FRUIT_TREE,b.SPECIAL,b.FLOWER,b.ALLOTMENT,b.BUSH,b.GRAPE,b.HOPS]),v.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._$wrappers={0:new v(0,"OVERVIEW","Overview",U.OLD_NOTES),1:new v(1,"CLOCK","Timers & Stopwatches",U.WATCH),2:new v(2,"BIRD_HOUSE","Bird Houses",U.OAK_BIRD_HOUSE),3:new v(3,"ALLOTMENT","Allotment Patches",U.CABBAGE),4:new v(4,"FLOWER","Flower Patches",U.RED_FLOWERS),5:new v(5,"HERB","Herb Patches",U.GRIMY_RANARR_WEED),6:new v(6,"TREE","Tree Patches",U.YEW_LOGS),7:new v(7,"FRUIT_TREE","Fruit Tree Patches",U.PINEAPPLE),8:new v(8,"HOPS","Hops Patches",U.BARLEY),9:new v(9,"BUSH","Bush Patches",U.POISON_IVY_BERRIES),10:new v(10,"GRAPE","Grape Patches",U.GRAPES),11:new v(11,"SPECIAL","Special Patches",U.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 F{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?B.Produce._$wrappers[this.produce].getHarvestStages():B.Produce._$wrappers[this.produce].getStages()}getTickRate(){switch(this.cropState){case M.HARVESTABLE:return B.Produce._$wrappers[this.produce].getRegrowTickrate();case M.GROWING:return B.Produce._$wrappers[this.produce].getTickrate();default:return 0}}getStage(){return this.stage}getProduce(){return this.produce}getCropState(){return this.cropState}}F.__class="timetracking.PatchState";class j{}j.NULL_22938=22938,j.NULL_22939=22939,j.NULL_22940=22940,j.NULL_23044=23044,j.__class="timetracking.NullItemID",(f=B||(B={}))[f.BELLADONNA=0]="BELLADONNA",f[f.MUSHROOM=1]="MUSHROOM",f[f.HESPORI=2]="HESPORI",f[f.ALLOTMENT=3]="ALLOTMENT",f[f.HERB=4]="HERB",f[f.FLOWER=5]="FLOWER",f[f.BUSH=6]="BUSH",f[f.FRUIT_TREE=7]="FRUIT_TREE",f[f.HOPS=8]="HOPS",f[f.TREE=9]="TREE",f[f.HARDWOOD_TREE=10]="HARDWOOD_TREE",f[f.REDWOOD=11]="REDWOOD",f[f.SPIRIT_TREE=12]="SPIRIT_TREE",f[f.ANIMA=13]="ANIMA",f[f.CACTUS=14]="CACTUS",f[f.SEAWEED=15]="SEAWEED",f[f.CALQUAT=16]="CALQUAT",f[f.CELASTRUS=17]="CELASTRUS",f[f.GRAPES=18]="GRAPES",f[f.CRYSTAL_TREE=19]="CRYSTAL_TREE",f[f.COMPOST=20]="COMPOST",f[f.BIG_COMPOST=21]="BIG_COMPOST";class V{constructor(e,t,n,r,a){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)}}B.__class="timetracking.PatchImplementation",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_BIG_COMPOST_BIN=80]="EMPTY_BIG_COMPOST_BIN",e[e.BIG_COMPOST=81]="BIG_COMPOST",e[e.BIG_SUPERCOMPOST=82]="BIG_SUPERCOMPOST",e[e.BIG_ULTRACOMPOST=83]="BIG_ULTRACOMPOST",e[e.BIG_ROTTEN_TOMATO=84]="BIG_ROTTEN_TOMATO"}(t=e.Produce||(e.Produce={}));class n{constructor(e,t,n,r,a,o,c,s,E){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"number"!==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){if("string"!==typeof n&&null!==n||"number"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||void 0!==s||void 0!==E)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=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.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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=s,this.harvestStages=E}}getName(){return this.__name}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._$wrappers={0:new n(0,"WEEDS","Weeds",null,U.WEEDS,5,4),1:new n(1,"SCARECROW","Scarecrow",null,U.SCARECROW,5,4),2:new n(2,"POTATO","Potato",e.ALLOTMENT,U.POTATO,10,5,0,3),3:new n(3,"ONION","Onion",e.ALLOTMENT,U.ONION,10,5,0,3),4:new n(4,"CABBAGE","Cabbage",e.ALLOTMENT,U.CABBAGE,10,5,0,3),5:new n(5,"TOMATO","Tomato",e.ALLOTMENT,U.TOMATO,10,5,0,3),6:new n(6,"SWEETCORN","Sweetcorn",e.ALLOTMENT,U.SWEETCORN,10,7,0,3),7:new n(7,"STRAWBERRY","Strawberry",e.ALLOTMENT,U.STRAWBERRY,10,7,0,3),8:new n(8,"WATERMELON","Watermelon",e.ALLOTMENT,U.WATERMELON,10,9,0,3),9:new n(9,"SNAPE_GRASS","Snape grass",e.ALLOTMENT,U.SNAPE_GRASS,10,8,0,3),10:new n(10,"MARIGOLD","Marigold",e.FLOWER,U.MARIGOLDS,5,5),11:new n(11,"ROSEMARY","Rosemary",e.FLOWER,U.ROSEMARY,5,5),12:new n(12,"NASTURTIUM","Nasturtium",e.FLOWER,U.NASTURTIUMS,5,5),13:new n(13,"WOAD","Woad",e.FLOWER,U.WOAD_LEAF,5,5),14:new n(14,"LIMPWURT","Limpwurt",e.FLOWER,U.LIMPWURT_ROOT,5,5),15:new n(15,"WHITE_LILY","White lily",e.FLOWER,U.WHITE_LILY,5,5),16:new n(16,"REDBERRIES","Redberry",e.BUSH,U.REDBERRIES,20,6,20,5),17:new n(17,"CADAVABERRIES","Cadavaberry",e.BUSH,U.CADAVA_BERRIES,20,7,20,5),18:new n(18,"DWELLBERRIES","Dwellberry",e.BUSH,U.DWELLBERRIES,20,8,20,5),19:new n(19,"JANGERBERRIES","Jangerberry",e.BUSH,U.JANGERBERRIES,20,9,20,5),20:new n(20,"WHITEBERRIES","Whiteberry",e.BUSH,U.WHITE_BERRIES,20,9,20,5),21:new n(21,"POISON_IVY","Poison ivy",e.BUSH,U.POISON_IVY_BERRIES,20,9,20,5),22:new n(22,"BARLEY","Barley",e.HOPS,U.BARLEY,10,5,0,3),23:new n(23,"HAMMERSTONE","Hammerstone",e.HOPS,U.HAMMERSTONE_HOPS,10,5,0,3),24:new n(24,"ASGARNIAN","Asgarnian",e.HOPS,U.ASGARNIAN_HOPS,10,6,0,3),25:new n(25,"JUTE","Jute",e.HOPS,U.JUTE_FIBRE,10,6,0,3),26:new n(26,"YANILLIAN","Yanillian",e.HOPS,U.YANILLIAN_HOPS,10,7,0,3),27:new n(27,"KRANDORIAN","Krandorian",e.HOPS,U.KRANDORIAN_HOPS,10,8,0,3),28:new n(28,"WILDBLOOD","Wildblood",e.HOPS,U.WILDBLOOD_HOPS,10,9,0,3),29:new n(29,"GUAM","Guam",e.HERB,U.GUAM_LEAF,20,5,0,3),30:new n(30,"MARRENTILL","Marrentill",e.HERB,U.MARRENTILL,20,5,0,3),31:new n(31,"TARROMIN","Tarromin",e.HERB,U.TARROMIN,20,5,0,3),32:new n(32,"HARRALANDER","Harralander",e.HERB,U.HARRALANDER,20,5,0,3),33:new n(33,"RANARR","Ranarr",e.HERB,U.RANARR_WEED,20,5,0,3),34:new n(34,"TOADFLAX","Toadflax",e.HERB,U.TOADFLAX,20,5,0,3),35:new n(35,"IRIT","Irit",e.HERB,U.IRIT_LEAF,20,5,0,3),36:new n(36,"AVANTOE","Avantoe",e.HERB,U.AVANTOE,20,5,0,3),37:new n(37,"KWUARM","Kwuarm",e.HERB,U.KWUARM,20,5,0,3),38:new n(38,"SNAPDRAGON","Snapdragon",e.HERB,U.SNAPDRAGON,20,5,0,3),39:new n(39,"CADANTINE","Cadantine",e.HERB,U.CADANTINE,20,5,0,3),40:new n(40,"LANTADYME","Lantadyme",e.HERB,U.LANTADYME,20,5,0,3),41:new n(41,"DWARF_WEED","Dwarf weed",e.HERB,U.DWARF_WEED,20,5,0,3),42:new n(42,"TORSTOL","Torstol",e.HERB,U.TORSTOL,20,5,0,3),43:new n(43,"GOUTWEED","Goutweed",e.HERB,U.GOUTWEED,20,5,0,2),44:new n(44,"ANYHERB","Any herb",e.HERB,U.GUAM_LEAF,20,5,0,3),45:new n(45,"OAK","Oak",e.TREE,U.OAK_LOGS,40,5),46:new n(46,"WILLOW","Willow",e.TREE,U.WILLOW_LOGS,40,7),47:new n(47,"MAPLE","Maple",e.TREE,U.MAPLE_LOGS,40,9),48:new n(48,"YEW","Yew",e.TREE,U.YEW_LOGS,40,11),49:new n(49,"MAGIC","Magic",e.TREE,U.MAGIC_LOGS,40,13),50:new n(50,"APPLE","Apple",e.FRUIT_TREE,U.COOKING_APPLE,160,7,45,7),51:new n(51,"BANANA","Banana",e.FRUIT_TREE,U.BANANA,160,7,45,7),52:new n(52,"ORANGE","Orange",e.FRUIT_TREE,U.ORANGE,160,7,45,7),53:new n(53,"CURRY","Curry",e.FRUIT_TREE,U.CURRY_LEAF,160,7,45,7),54:new n(54,"PINEAPPLE","Pineapple",e.FRUIT_TREE,U.PINEAPPLE,160,7,45,7),55:new n(55,"PAPAYA","Papaya",e.FRUIT_TREE,U.PAPAYA_FRUIT,160,7,45,7),56:new n(56,"PALM","Palm",e.FRUIT_TREE,U.COCONUT,160,7,45,7),57:new n(57,"DRAGONFRUIT","Dragonfruit",e.FRUIT_TREE,U.DRAGONFRUIT,160,7,45,7),58:new n(58,"CACTUS","Cactus",e.CACTUS,U.CACTUS_SPINE,80,8,20,4),59:new n(59,"POTATO_CACTUS","Potato cactus",e.CACTUS,U.POTATO_CACTUS,10,8,5,7),60:new n(60,"TEAK","Teak",e.HARDWOOD_TREE,U.TEAK_LOGS,640,8),61:new n(61,"MAHOGANY","Mahogany",e.HARDWOOD_TREE,U.MAHOGANY_LOGS,640,9),62:new n(62,"ATTAS","Attas",e.ANIMA,j.NULL_22940,640,9),63:new n(63,"IASOR","Iasor",e.ANIMA,j.NULL_22939,640,9),64:new n(64,"KRONOS","Kronos",e.ANIMA,j.NULL_22938,640,9),65:new n(65,"SEAWEED","Seaweed",e.SEAWEED,U.GIANT_SEAWEED,10,5,0,4),66:new n(66,"GRAPE","Grape",e.GRAPES,U.GRAPES,5,8,0,5),67:new n(67,"MUSHROOM","Mushroom",e.MUSHROOM,U.MUSHROOM,40,7,0,7),68:new n(68,"BELLADONNA","Belladonna",e.BELLADONNA,U.CAVE_NIGHTSHADE,80,5),69:new n(69,"CALQUAT","Calquat",e.CALQUAT,U.CALQUAT_FRUIT,160,9,0,7),70:new n(70,"SPIRIT_TREE","Spirit tree",e.SPIRIT_TREE,U.SPIRIT_TREE,320,13),71:new n(71,"CELASTRUS","Celastrus",e.CELASTRUS,U.BATTLESTAFF,160,6,0,4),72:new n(72,"REDWOOD","Redwood",e.REDWOOD,U.REDWOOD_LOGS,640,11),73:new n(73,"HESPORI","Hespori",e.HESPORI,j.NULL_23044,640,4,0,2),74:new n(74,"CRYSTAL_TREE","Crystal tree",e.CRYSTAL_TREE,U.CRYSTAL_SHARDS,80,7),75:new n(75,"EMPTY_COMPOST_BIN","Compost Bin",e.COMPOST,U.COMPOST_BIN,0,1,0,0),76:new n(76,"COMPOST","Compost",e.COMPOST,U.COMPOST,40,3,0,15),77:new n(77,"SUPERCOMPOST","Supercompost",e.COMPOST,U.SUPERCOMPOST,40,3,0,15),78:new n(78,"ULTRACOMPOST","Ultracompost",e.COMPOST,U.ULTRACOMPOST,0,3,0,15),79:new n(79,"ROTTEN_TOMATO","Rotten Tomato",e.COMPOST,U.ROTTEN_TOMATO,40,3,0,15),80:new n(80,"EMPTY_BIG_COMPOST_BIN","Big Compost Bin",e.COMPOST,U.COMPOST_BIN,0,1,0,0),81:new n(81,"BIG_COMPOST","Compost",e.BIG_COMPOST,U.COMPOST,40,3,0,30),82:new n(82,"BIG_SUPERCOMPOST","Supercompost",e.BIG_COMPOST,U.SUPERCOMPOST,40,3,0,30),83:new n(83,"BIG_ULTRACOMPOST","Ultracompost",e.BIG_COMPOST,U.ULTRACOMPOST,0,3,0,30),84:new n(84,"BIG_ROTTEN_TOMATO","Rotten Tomato",e.BIG_COMPOST,U.ROTTEN_TOMATO,40,3,0,30)}}(B||(B={})),function(e){e.Produce_$WRAPPER=class{constructor(e,t,n,r,a,o,c,s,E){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"number"!==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){if("string"!==typeof n&&null!==n||"number"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||void 0!==s||void 0!==E)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=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.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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=s,this.harvestStages=E}}getName(){return this.__name}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.PatchImplementation$0_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.BELLADONNA,M.GROWING,t-4):8===t?new F(e.Produce.BELLADONNA,M.HARVESTABLE,0):t>=9&&t<=11?new F(e.Produce.BELLADONNA,M.DISEASED,t-8):t>=12&&t<=14?new F(e.Produce.BELLADONNA,M.DEAD,t-11):t>=15&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$1_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=9?new F(e.Produce.MUSHROOM,M.GROWING,t-4):t>=10&&t<=15?new F(e.Produce.MUSHROOM,M.HARVESTABLE,t-10):t>=16&&t<=20?new F(e.Produce.MUSHROOM,M.DISEASED,t-15):t>=21&&t<=25?new F(e.Produce.MUSHROOM,M.DEAD,t-20):t>=26&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$2_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=6?new F(e.Produce.HESPORI,M.GROWING,t-4):t>=7&&t<=8?new F(e.Produce.HESPORI,M.HARVESTABLE,t-7):9===t?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$3_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=5?new F(e.Produce.WEEDS,M.GROWING,3):t>=6&&t<=9?new F(e.Produce.POTATO,M.GROWING,t-6):t>=10&&t<=12?new F(e.Produce.POTATO,M.HARVESTABLE,t-10):t>=13&&t<=16?new F(e.Produce.ONION,M.GROWING,t-13):t>=17&&t<=19?new F(e.Produce.ONION,M.HARVESTABLE,t-17):t>=20&&t<=23?new F(e.Produce.CABBAGE,M.GROWING,t-20):t>=24&&t<=26?new F(e.Produce.CABBAGE,M.HARVESTABLE,t-24):t>=27&&t<=30?new F(e.Produce.TOMATO,M.GROWING,t-27):t>=31&&t<=33?new F(e.Produce.TOMATO,M.HARVESTABLE,t-31):t>=34&&t<=39?new F(e.Produce.SWEETCORN,M.GROWING,t-34):t>=40&&t<=42?new F(e.Produce.SWEETCORN,M.HARVESTABLE,t-40):t>=43&&t<=48?new F(e.Produce.STRAWBERRY,M.GROWING,t-43):t>=49&&t<=51?new F(e.Produce.STRAWBERRY,M.HARVESTABLE,t-49):t>=52&&t<=59?new F(e.Produce.WATERMELON,M.GROWING,t-52):t>=60&&t<=62?new F(e.Produce.WATERMELON,M.HARVESTABLE,t-60):t>=63&&t<=69?new F(e.Produce.SNAPE_GRASS,M.GROWING,t-63):t>=70&&t<=73?new F(e.Produce.POTATO,M.GROWING,t-70):t>=74&&t<=76?new F(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new F(e.Produce.ONION,M.GROWING,t-77):t>=81&&t<=83?new F(e.Produce.WEEDS,M.GROWING,3):t>=84&&t<=87?new F(e.Produce.CABBAGE,M.GROWING,t-84):t>=88&&t<=90?new F(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=94?new F(e.Produce.TOMATO,M.GROWING,t-91):t>=95&&t<=97?new F(e.Produce.WEEDS,M.GROWING,3):t>=98&&t<=103?new F(e.Produce.SWEETCORN,M.GROWING,t-98):t>=104&&t<=106?new F(e.Produce.WEEDS,M.GROWING,3):t>=107&&t<=112?new F(e.Produce.STRAWBERRY,M.GROWING,t-107):t>=113&&t<=115?new F(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new F(e.Produce.WATERMELON,M.GROWING,t-116):t>=124&&t<=127?new F(e.Produce.WEEDS,M.GROWING,3):t>=128&&t<=134?new F(e.Produce.SNAPE_GRASS,M.GROWING,t-128):t>=135&&t<=137?new F(e.Produce.POTATO,M.DISEASED,t-134):t>=138&&t<=140?new F(e.Produce.SNAPE_GRASS,M.HARVESTABLE,t-138):141===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new F(e.Produce.ONION,M.DISEASED,t-141):t>=145&&t<=148?new F(e.Produce.WEEDS,M.GROWING,3):t>=149&&t<=151?new F(e.Produce.CABBAGE,M.DISEASED,t-148):t>=152&&t<=155?new F(e.Produce.WEEDS,M.GROWING,3):t>=156&&t<=158?new F(e.Produce.TOMATO,M.DISEASED,t-155):t>=159&&t<=162?new F(e.Produce.WEEDS,M.GROWING,3):t>=163&&t<=167?new F(e.Produce.SWEETCORN,M.DISEASED,t-162):t>=168&&t<=171?new F(e.Produce.WEEDS,M.GROWING,3):t>=172&&t<=176?new F(e.Produce.STRAWBERRY,M.DISEASED,t-171):t>=177&&t<=180?new F(e.Produce.WEEDS,M.GROWING,3):t>=181&&t<=187?new F(e.Produce.WATERMELON,M.DISEASED,t-180):t>=188&&t<=192?new F(e.Produce.WEEDS,M.GROWING,3):t>=193&&t<=195?new F(e.Produce.SNAPE_GRASS,M.DEAD,t-192):t>=196&&t<=198?new F(e.Produce.SNAPE_GRASS,M.DISEASED,t-195):t>=199&&t<=201?new F(e.Produce.POTATO,M.DEAD,t-198):t>=202&&t<=204?new F(e.Produce.SNAPE_GRASS,M.DISEASED,3+t-201):205===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=208?new F(e.Produce.ONION,M.DEAD,t-205):t>=209&&t<=211?new F(e.Produce.SNAPE_GRASS,M.DEAD,3+t-208):212===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=213&&t<=215?new F(e.Produce.CABBAGE,M.DEAD,t-212):t>=216&&t<=219?new F(e.Produce.WEEDS,M.GROWING,3):t>=220&&t<=222?new F(e.Produce.TOMATO,M.DEAD,t-219):t>=223&&t<=226?new F(e.Produce.WEEDS,M.GROWING,3):t>=227&&t<=231?new F(e.Produce.SWEETCORN,M.DEAD,t-226):t>=232&&t<=235?new F(e.Produce.WEEDS,M.GROWING,3):t>=236&&t<=240?new F(e.Produce.STRAWBERRY,M.DEAD,t-235):t>=241&&t<=244?new F(e.Produce.WEEDS,M.GROWING,3):t>=245&&t<=251?new F(e.Produce.WATERMELON,M.DEAD,t-244):t>=252&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$4_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.GUAM,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.GUAM,M.HARVESTABLE,10-t):t>=11&&t<=14?new F(e.Produce.MARRENTILL,M.GROWING,t-11):t>=15&&t<=17?new F(e.Produce.MARRENTILL,M.HARVESTABLE,17-t):t>=18&&t<=21?new F(e.Produce.TARROMIN,M.GROWING,t-18):t>=22&&t<=24?new F(e.Produce.TARROMIN,M.HARVESTABLE,24-t):t>=25&&t<=28?new F(e.Produce.HARRALANDER,M.GROWING,t-25):t>=29&&t<=31?new F(e.Produce.HARRALANDER,M.HARVESTABLE,31-t):t>=32&&t<=35?new F(e.Produce.RANARR,M.GROWING,t-32):t>=36&&t<=38?new F(e.Produce.RANARR,M.HARVESTABLE,38-t):t>=39&&t<=42?new F(e.Produce.TOADFLAX,M.GROWING,t-39):t>=43&&t<=45?new F(e.Produce.TOADFLAX,M.HARVESTABLE,45-t):t>=46&&t<=49?new F(e.Produce.IRIT,M.GROWING,t-46):t>=50&&t<=52?new F(e.Produce.IRIT,M.HARVESTABLE,52-t):t>=53&&t<=56?new F(e.Produce.AVANTOE,M.GROWING,t-53):t>=57&&t<=59?new F(e.Produce.AVANTOE,M.HARVESTABLE,59-t):t>=60&&t<=67?new F(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new F(e.Produce.KWUARM,M.GROWING,t-68):t>=72&&t<=74?new F(e.Produce.KWUARM,M.HARVESTABLE,74-t):t>=75&&t<=78?new F(e.Produce.SNAPDRAGON,M.GROWING,t-75):t>=79&&t<=81?new F(e.Produce.SNAPDRAGON,M.HARVESTABLE,81-t):t>=82&&t<=85?new F(e.Produce.CADANTINE,M.GROWING,t-82):t>=86&&t<=88?new F(e.Produce.CADANTINE,M.HARVESTABLE,88-t):t>=89&&t<=92?new F(e.Produce.LANTADYME,M.GROWING,t-89):t>=93&&t<=95?new F(e.Produce.LANTADYME,M.HARVESTABLE,95-t):t>=96&&t<=99?new F(e.Produce.DWARF_WEED,M.GROWING,t-96):t>=100&&t<=102?new F(e.Produce.DWARF_WEED,M.HARVESTABLE,102-t):t>=103&&t<=106?new F(e.Produce.TORSTOL,M.GROWING,t-103):t>=107&&t<=109?new F(e.Produce.TORSTOL,M.HARVESTABLE,109-t):t>=128&&t<=130?new F(e.Produce.GUAM,M.DISEASED,t-127):t>=131&&t<=133?new F(e.Produce.MARRENTILL,M.DISEASED,t-130):t>=134&&t<=136?new F(e.Produce.TARROMIN,M.DISEASED,t-133):t>=137&&t<=139?new F(e.Produce.HARRALANDER,M.DISEASED,t-136):t>=140&&t<=142?new F(e.Produce.RANARR,M.DISEASED,t-139):t>=143&&t<=145?new F(e.Produce.TOADFLAX,M.DISEASED,t-142):t>=146&&t<=148?new F(e.Produce.IRIT,M.DISEASED,t-145):t>=149&&t<=151?new F(e.Produce.AVANTOE,M.DISEASED,t-148):t>=152&&t<=154?new F(e.Produce.KWUARM,M.DISEASED,t-151):t>=155&&t<=157?new F(e.Produce.SNAPDRAGON,M.DISEASED,t-154):t>=158&&t<=160?new F(e.Produce.CADANTINE,M.DISEASED,t-157):t>=161&&t<=163?new F(e.Produce.LANTADYME,M.DISEASED,t-160):t>=164&&t<=166?new F(e.Produce.DWARF_WEED,M.DISEASED,t-163):t>=167&&t<=169?new F(e.Produce.TORSTOL,M.DISEASED,t-166):t>=170&&t<=172?new F(e.Produce.ANYHERB,M.DEAD,t-169):t>=173&&t<=191?new F(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=195?new F(e.Produce.GOUTWEED,M.GROWING,t-192):t>=196&&t<=197?new F(e.Produce.GOUTWEED,M.HARVESTABLE,197-t):t>=198&&t<=200?new F(e.Produce.GOUTWEED,M.DISEASED,t-197):t>=201&&t<=203?new F(e.Produce.GOUTWEED,M.DEAD,t-200):t>=204&&t<=219||t>=221&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$5_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new F(e.Produce.MARIGOLD,M.GROWING,t-8):12===t?new F(e.Produce.MARIGOLD,M.HARVESTABLE,0):t>=13&&t<=16?new F(e.Produce.ROSEMARY,M.GROWING,t-13):17===t?new F(e.Produce.ROSEMARY,M.HARVESTABLE,0):t>=18&&t<=21?new F(e.Produce.NASTURTIUM,M.GROWING,t-18):22===t?new F(e.Produce.NASTURTIUM,M.HARVESTABLE,0):t>=23&&t<=26?new F(e.Produce.WOAD,M.GROWING,t-23):27===t?new F(e.Produce.WOAD,M.HARVESTABLE,0):t>=28&&t<=31?new F(e.Produce.LIMPWURT,M.GROWING,t-28):32===t?new F(e.Produce.LIMPWURT,M.HARVESTABLE,0):t>=33&&t<=35?new F(e.Produce.SCARECROW,M.GROWING,35-t):36===t?new F(e.Produce.SCARECROW,M.GROWING,0):t>=37&&t<=40?new F(e.Produce.WHITE_LILY,M.GROWING,t-37):41===t?new F(e.Produce.WHITE_LILY,M.HARVESTABLE,0):t>=42&&t<=71?new F(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=75?new F(e.Produce.MARIGOLD,M.GROWING,t-72):76===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new F(e.Produce.ROSEMARY,M.GROWING,t-77):81===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=82&&t<=85?new F(e.Produce.NASTURTIUM,M.GROWING,t-82):86===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=87&&t<=90?new F(e.Produce.WOAD,M.GROWING,t-87):91===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=95?new F(e.Produce.LIMPWURT,M.GROWING,t-92):t>=96&&t<=100?new F(e.Produce.WEEDS,M.GROWING,3):t>=101&&t<=104?new F(e.Produce.WHITE_LILY,M.GROWING,t-101):t>=105&&t<=136?new F(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new F(e.Produce.MARIGOLD,M.DISEASED,t-136):t>=140&&t<=141?new F(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new F(e.Produce.ROSEMARY,M.DISEASED,t-141):t>=145&&t<=146?new F(e.Produce.WEEDS,M.GROWING,3):t>=147&&t<=149?new F(e.Produce.NASTURTIUM,M.DISEASED,t-146):t>=150&&t<=151?new F(e.Produce.WEEDS,M.GROWING,3):t>=152&&t<=154?new F(e.Produce.WOAD,M.DISEASED,t-151):t>=155&&t<=156?new F(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=159?new F(e.Produce.LIMPWURT,M.DISEASED,t-156):t>=160&&t<=165?new F(e.Produce.WEEDS,M.GROWING,3):t>=166&&t<=168?new F(e.Produce.WHITE_LILY,M.DISEASED,t-165):t>=169&&t<=200?new F(e.Produce.WEEDS,M.GROWING,3):t>=201&&t<=204?new F(e.Produce.MARIGOLD,M.DEAD,t-200):205===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=209?new F(e.Produce.ROSEMARY,M.DEAD,t-205):210===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=211&&t<=214?new F(e.Produce.NASTURTIUM,M.DEAD,t-210):215===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=216&&t<=219?new F(e.Produce.WOAD,M.DEAD,t-215):220===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=224?new F(e.Produce.LIMPWURT,M.DEAD,t-220):t>=225&&t<=229?new F(e.Produce.WEEDS,M.GROWING,3):t>=230&&t<=233?new F(e.Produce.WHITE_LILY,M.DEAD,t-229):t>=234&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$6_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):4===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=5&&t<=9?new F(e.Produce.REDBERRIES,M.GROWING,t-5):t>=10&&t<=14?new F(e.Produce.REDBERRIES,M.HARVESTABLE,t-10):t>=15&&t<=20?new F(e.Produce.CADAVABERRIES,M.GROWING,t-15):t>=21&&t<=25?new F(e.Produce.CADAVABERRIES,M.HARVESTABLE,t-21):t>=26&&t<=32?new F(e.Produce.DWELLBERRIES,M.GROWING,t-26):t>=33&&t<=37?new F(e.Produce.DWELLBERRIES,M.HARVESTABLE,t-33):t>=38&&t<=45?new F(e.Produce.JANGERBERRIES,M.GROWING,t-38):t>=46&&t<=50?new F(e.Produce.JANGERBERRIES,M.HARVESTABLE,t-46):t>=51&&t<=58?new F(e.Produce.WHITEBERRIES,M.GROWING,t-51):t>=59&&t<=63?new F(e.Produce.WHITEBERRIES,M.HARVESTABLE,t-59):t>=64&&t<=69?new F(e.Produce.WEEDS,M.GROWING,3):t>=70&&t<=74?new F(e.Produce.REDBERRIES,M.DISEASED,t-69):t>=75&&t<=79?new F(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=85?new F(e.Produce.CADAVABERRIES,M.DISEASED,t-79):t>=86&&t<=90?new F(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=97?new F(e.Produce.DWELLBERRIES,M.DISEASED,t-90):t>=98&&t<=102?new F(e.Produce.WEEDS,M.GROWING,3):t>=103&&t<=110?new F(e.Produce.JANGERBERRIES,M.DISEASED,t-102):t>=111&&t<=115?new F(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new F(e.Produce.WHITEBERRIES,M.DISEASED,t-115):t>=124&&t<=133?new F(e.Produce.WEEDS,M.GROWING,3):t>=134&&t<=138?new F(e.Produce.REDBERRIES,M.DEAD,t-133):t>=139&&t<=143?new F(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=149?new F(e.Produce.CADAVABERRIES,M.DEAD,t-143):t>=150&&t<=154?new F(e.Produce.WEEDS,M.GROWING,3):t>=155&&t<=161?new F(e.Produce.DWELLBERRIES,M.DEAD,t-154):t>=162&&t<=166?new F(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=174?new F(e.Produce.JANGERBERRIES,M.DEAD,t-166):t>=175&&t<=179?new F(e.Produce.WEEDS,M.GROWING,3):t>=180&&t<=187?new F(e.Produce.WHITEBERRIES,M.DEAD,t-179):t>=188&&t<=196?new F(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=204?new F(e.Produce.POISON_IVY,M.GROWING,t-197):t>=205&&t<=209?new F(e.Produce.POISON_IVY,M.HARVESTABLE,t-205):t>=210&&t<=216?new F(e.Produce.POISON_IVY,M.DISEASED,t-209):t>=217&&t<=224?new F(e.Produce.POISON_IVY,M.DEAD,t-216):225===t?new F(e.Produce.POISON_IVY,M.DISEASED,8):t>=226&&t<=249?new F(e.Produce.WEEDS,M.GROWING,3):250===t?new F(e.Produce.REDBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.REDBERRIES].getStages()-1):251===t?new F(e.Produce.CADAVABERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.CADAVABERRIES].getStages()-1):252===t?new F(e.Produce.DWELLBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.DWELLBERRIES].getStages()-1):253===t?new F(e.Produce.JANGERBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.JANGERBERRIES].getStages()-1):254===t?new F(e.Produce.WHITEBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.WHITEBERRIES].getStages()-1):255===t?new F(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,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=13?new F(e.Produce.APPLE,M.GROWING,t-8):t>=14&&t<=20?new F(e.Produce.APPLE,M.HARVESTABLE,t-14):t>=21&&t<=26?new F(e.Produce.APPLE,M.DISEASED,t-20):t>=27&&t<=32?new F(e.Produce.APPLE,M.DEAD,t-26):33===t?new F(e.Produce.APPLE,M.HARVESTABLE,0):34===t?new F(e.Produce.APPLE,M.GROWING,e.Produce._$wrappers[e.Produce.APPLE].getStages()-1):t>=35&&t<=40?new F(e.Produce.BANANA,M.GROWING,t-35):t>=41&&t<=47?new F(e.Produce.BANANA,M.HARVESTABLE,t-41):t>=48&&t<=53?new F(e.Produce.BANANA,M.DISEASED,t-47):t>=54&&t<=59?new F(e.Produce.BANANA,M.DEAD,t-53):60===t?new F(e.Produce.BANANA,M.HARVESTABLE,0):61===t?new F(e.Produce.BANANA,M.GROWING,e.Produce._$wrappers[e.Produce.BANANA].getStages()-1):t>=62&&t<=71?new F(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=77?new F(e.Produce.ORANGE,M.GROWING,t-72):t>=78&&t<=84?new F(e.Produce.ORANGE,M.HARVESTABLE,t-78):t>=85&&t<=89?new F(e.Produce.ORANGE,M.DISEASED,t-84):90===t?new F(e.Produce.ORANGE,M.DISEASED,6):t>=91&&t<=96?new F(e.Produce.ORANGE,M.DEAD,t-90):97===t?new F(e.Produce.ORANGE,M.HARVESTABLE,0):98===t?new F(e.Produce.ORANGE,M.GROWING,e.Produce._$wrappers[e.Produce.ORANGE].getStages()-1):t>=99&&t<=104?new F(e.Produce.CURRY,M.GROWING,t-99):t>=105&&t<=111?new F(e.Produce.CURRY,M.HARVESTABLE,t-105):t>=112&&t<=117?new F(e.Produce.CURRY,M.DISEASED,t-111):t>=118&&t<=123?new F(e.Produce.CURRY,M.DEAD,t-117):124===t?new F(e.Produce.CURRY,M.HARVESTABLE,0):125===t?new F(e.Produce.CURRY,M.GROWING,e.Produce._$wrappers[e.Produce.CURRY].getStages()-1):t>=126&&t<=135?new F(e.Produce.WEEDS,M.GROWING,3):t>=136&&t<=141?new F(e.Produce.PINEAPPLE,M.GROWING,t-136):t>=142&&t<=148?new F(e.Produce.PINEAPPLE,M.HARVESTABLE,t-142):t>=149&&t<=154?new F(e.Produce.PINEAPPLE,M.DISEASED,t-148):t>=155&&t<=160?new F(e.Produce.PINEAPPLE,M.DEAD,t-154):161===t?new F(e.Produce.PINEAPPLE,M.HARVESTABLE,0):162===t?new F(e.Produce.PINEAPPLE,M.GROWING,e.Produce._$wrappers[e.Produce.PINEAPPLE].getStages()-1):t>=163&&t<=168?new F(e.Produce.PAPAYA,M.GROWING,t-163):t>=169&&t<=175?new F(e.Produce.PAPAYA,M.HARVESTABLE,t-169):t>=176&&t<=181?new F(e.Produce.PAPAYA,M.DISEASED,t-175):t>=182&&t<=187?new F(e.Produce.PAPAYA,M.DEAD,t-181):188===t?new F(e.Produce.PAPAYA,M.HARVESTABLE,0):189===t?new F(e.Produce.PAPAYA,M.GROWING,e.Produce._$wrappers[e.Produce.PAPAYA].getStages()-1):t>=190&&t<=199?new F(e.Produce.WEEDS,M.GROWING,3):t>=200&&t<=205?new F(e.Produce.PALM,M.GROWING,t-200):t>=206&&t<=212?new F(e.Produce.PALM,M.HARVESTABLE,t-206):t>=213&&t<=218?new F(e.Produce.PALM,M.DISEASED,t-212):t>=219&&t<=224?new F(e.Produce.PALM,M.DEAD,t-218):225===t?new F(e.Produce.PALM,M.HARVESTABLE,0):226===t?new F(e.Produce.PALM,M.GROWING,e.Produce._$wrappers[e.Produce.PALM].getStages()-1):t>=227&&t<=232?new F(e.Produce.DRAGONFRUIT,M.GROWING,t-227):t>=233&&t<=239?new F(e.Produce.DRAGONFRUIT,M.HARVESTABLE,t-233):t>=240&&t<=245?new F(e.Produce.DRAGONFRUIT,M.DISEASED,t-239):t>=246&&t<=251?new F(e.Produce.DRAGONFRUIT,M.DEAD,t-245):252===t?new F(e.Produce.DRAGONFRUIT,M.HARVESTABLE,0):253===t?new F(e.Produce.DRAGONFRUIT,M.GROWING,e.Produce._$wrappers[e.Produce.DRAGONFRUIT].getStages()-1):t>=254&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$8_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.HAMMERSTONE,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.HAMMERSTONE,M.HARVESTABLE,t-8):t>=11&&t<=15?new F(e.Produce.ASGARNIAN,M.GROWING,t-11):t>=16&&t<=18?new F(e.Produce.ASGARNIAN,M.HARVESTABLE,t-16):t>=19&&t<=24?new F(e.Produce.YANILLIAN,M.GROWING,t-19):t>=25&&t<=27?new F(e.Produce.YANILLIAN,M.HARVESTABLE,t-25):t>=28&&t<=34?new F(e.Produce.KRANDORIAN,M.GROWING,t-28):t>=35&&t<=37?new F(e.Produce.KRANDORIAN,M.HARVESTABLE,t-35):t>=38&&t<=45?new F(e.Produce.WILDBLOOD,M.GROWING,t-38):t>=46&&t<=48?new F(e.Produce.WILDBLOOD,M.HARVESTABLE,t-46):t>=49&&t<=52?new F(e.Produce.BARLEY,M.GROWING,t-49):t>=53&&t<=55?new F(e.Produce.BARLEY,M.HARVESTABLE,t-53):t>=56&&t<=60?new F(e.Produce.JUTE,M.GROWING,t-56):t>=61&&t<=63?new F(e.Produce.JUTE,M.HARVESTABLE,t-61):t>=64&&t<=67?new F(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new F(e.Produce.HAMMERSTONE,M.GROWING,t-68):t>=72&&t<=74?new F(e.Produce.WEEDS,M.GROWING,3):t>=75&&t<=79?new F(e.Produce.ASGARNIAN,M.GROWING,t-75):t>=80&&t<=82?new F(e.Produce.WEEDS,M.GROWING,3):t>=83&&t<=88?new F(e.Produce.YANILLIAN,M.GROWING,t-83):t>=89&&t<=91?new F(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=98?new F(e.Produce.KRANDORIAN,M.GROWING,t-92):t>=99&&t<=101?new F(e.Produce.WEEDS,M.GROWING,3):t>=102&&t<=109?new F(e.Produce.WILDBLOOD,M.GROWING,t-102):t>=110&&t<=112?new F(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=116?new F(e.Produce.BARLEY,M.GROWING,t-113):t>=117&&t<=119?new F(e.Produce.WEEDS,M.GROWING,3):t>=120&&t<=124?new F(e.Produce.JUTE,M.GROWING,t-120):t>=125&&t<=132?new F(e.Produce.WEEDS,M.GROWING,3):t>=133&&t<=135?new F(e.Produce.HAMMERSTONE,M.DISEASED,t-132):t>=136&&t<=139?new F(e.Produce.WEEDS,M.GROWING,3):t>=140&&t<=143?new F(e.Produce.ASGARNIAN,M.DISEASED,t-139):t>=144&&t<=147?new F(e.Produce.WEEDS,M.GROWING,3):t>=148&&t<=152?new F(e.Produce.YANILLIAN,M.DISEASED,t-147):t>=153&&t<=156?new F(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=162?new F(e.Produce.KRANDORIAN,M.DISEASED,t-156):t>=163&&t<=166?new F(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=173?new F(e.Produce.WILDBLOOD,M.DISEASED,t-166):t>=174&&t<=177?new F(e.Produce.WEEDS,M.GROWING,3):t>=178&&t<=180?new F(e.Produce.BARLEY,M.DISEASED,t-177):181===t||t>=183&&t<=184?new F(e.Produce.WEEDS,M.GROWING,3):t>=185&&t<=188?new F(e.Produce.JUTE,M.DISEASED,t-184):t>=189&&t<=196?new F(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=199?new F(e.Produce.HAMMERSTONE,M.DEAD,t-196):t>=200&&t<=203?new F(e.Produce.WEEDS,M.GROWING,3):t>=204&&t<=207?new F(e.Produce.ASGARNIAN,M.DEAD,t-203):t>=208&&t<=211?new F(e.Produce.WEEDS,M.GROWING,3):t>=212&&t<=216?new F(e.Produce.YANILLIAN,M.DEAD,t-211):t>=217&&t<=220?new F(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=226?new F(e.Produce.KRANDORIAN,M.DEAD,t-220):t>=227&&t<=230?new F(e.Produce.WEEDS,M.GROWING,3):t>=231&&t<=237?new F(e.Produce.WILDBLOOD,M.DEAD,t-230):t>=238&&t<=241?new F(e.Produce.WEEDS,M.GROWING,3):t>=242&&t<=244?new F(e.Produce.BARLEY,M.DEAD,t-241):t>=245&&t<=248?new F(e.Produce.WEEDS,M.GROWING,3):t>=249&&t<=252?new F(e.Produce.JUTE,M.DEAD,t-248):t>=253&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$9_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new F(e.Produce.OAK,M.GROWING,t-8):12===t?new F(e.Produce.OAK,M.GROWING,e.Produce._$wrappers[e.Produce.OAK].getStages()-1):13===t||14===t?new F(e.Produce.OAK,M.HARVESTABLE,0):t>=15&&t<=20?new F(e.Produce.WILLOW,M.GROWING,t-15):21===t?new F(e.Produce.WILLOW,M.GROWING,e.Produce._$wrappers[e.Produce.WILLOW].getStages()-1):22===t||23===t?new F(e.Produce.WILLOW,M.HARVESTABLE,0):t>=24&&t<=31?new F(e.Produce.MAPLE,M.GROWING,t-24):32===t?new F(e.Produce.MAPLE,M.GROWING,e.Produce._$wrappers[e.Produce.MAPLE].getStages()-1):33===t||34===t?new F(e.Produce.MAPLE,M.HARVESTABLE,0):t>=35&&t<=44?new F(e.Produce.YEW,M.GROWING,t-35):45===t?new F(e.Produce.YEW,M.GROWING,e.Produce._$wrappers[e.Produce.YEW].getStages()-1):46===t||47===t?new F(e.Produce.YEW,M.HARVESTABLE,0):t>=48&&t<=59?new F(e.Produce.MAGIC,M.GROWING,t-48):60===t?new F(e.Produce.MAGIC,M.GROWING,e.Produce._$wrappers[e.Produce.MAGIC].getStages()-1):61===t||62===t?new F(e.Produce.MAGIC,M.HARVESTABLE,0):t>=63&&t<=72?new F(e.Produce.WEEDS,M.GROWING,3):t>=73&&t<=75?new F(e.Produce.OAK,M.DISEASED,t-72):77===t?new F(e.Produce.OAK,M.DISEASED,4):t>=78&&t<=79?new F(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=84?new F(e.Produce.WILLOW,M.DISEASED,t-79):86===t?new F(e.Produce.WILLOW,M.DISEASED,6):t>=87&&t<=88?new F(e.Produce.WEEDS,M.GROWING,3):t>=89&&t<=95?new F(e.Produce.MAPLE,M.DISEASED,t-88):97===t?new F(e.Produce.MAPLE,M.DISEASED,8):t>=98&&t<=99?new F(e.Produce.WEEDS,M.GROWING,3):t>=100&&t<=108?new F(e.Produce.YEW,M.DISEASED,t-99):110===t?new F(e.Produce.YEW,M.DISEASED,10):t>=111&&t<=112?new F(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=123?new F(e.Produce.MAGIC,M.DISEASED,t-112):125===t?new F(e.Produce.MAGIC,M.DISEASED,12):t>=126&&t<=136?new F(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new F(e.Produce.OAK,M.DEAD,t-136):141===t?new F(e.Produce.OAK,M.DEAD,4):t>=142&&t<=143?new F(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=148?new F(e.Produce.WILLOW,M.DEAD,t-143):150===t?new F(e.Produce.WILLOW,M.DEAD,6):t>=151&&t<=152?new F(e.Produce.WEEDS,M.GROWING,3):t>=153&&t<=159?new F(e.Produce.MAPLE,M.DEAD,t-152):161===t?new F(e.Produce.MAPLE,M.DEAD,8):t>=162&&t<=163?new F(e.Produce.WEEDS,M.GROWING,3):t>=164&&t<=172?new F(e.Produce.YEW,M.DEAD,t-163):174===t?new F(e.Produce.YEW,M.DEAD,10):t>=175&&t<=176?new F(e.Produce.WEEDS,M.GROWING,3):t>=177&&t<=187?new F(e.Produce.MAGIC,M.DEAD,t-176):189===t?new F(e.Produce.MAGIC,M.DEAD,12):t>=190&&t<=191?new F(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=197?new F(e.Produce.WILLOW,M.HARVESTABLE,0):t>=198&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$10_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new F(e.Produce.TEAK,M.GROWING,t-8):15===t?new F(e.Produce.TEAK,M.GROWING,e.Produce._$wrappers[e.Produce.TEAK].getStages()-1):16===t||17===t?new F(e.Produce.TEAK,M.HARVESTABLE,0):t>=18&&t<=23?new F(e.Produce.TEAK,M.DISEASED,t-17):t>=24&&t<=29?new F(e.Produce.TEAK,M.DEAD,t-23):t>=30&&t<=37?new F(e.Produce.MAHOGANY,M.GROWING,t-30):38===t?new F(e.Produce.MAHOGANY,M.GROWING,e.Produce._$wrappers[e.Produce.MAHOGANY].getStages()-1):39===t||40===t?new F(e.Produce.MAHOGANY,M.HARVESTABLE,0):t>=41&&t<=47?new F(e.Produce.MAHOGANY,M.DISEASED,t-40):t>=48&&t<=54?new F(e.Produce.MAHOGANY,M.DEAD,t-47):t>=55&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$11_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=17?new F(e.Produce.REDWOOD,M.GROWING,t-8):18===t?new F(e.Produce.REDWOOD,M.HARVESTABLE,0):t>=19&&t<=27?new F(e.Produce.REDWOOD,M.DISEASED,t-18):t>=28&&t<=36?new F(e.Produce.REDWOOD,M.DEAD,t-27):37===t?new F(e.Produce.REDWOOD,M.GROWING,e.Produce._$wrappers[e.Produce.REDWOOD].getStages()-1):t>=41&&t<=55?new F(e.Produce.REDWOOD,M.HARVESTABLE,0):null}};e.PatchImplementation$12_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=19?new F(e.Produce.SPIRIT_TREE,M.GROWING,t-8):20===t?new F(e.Produce.SPIRIT_TREE,M.GROWING,12):t>=21&&t<=31?new F(e.Produce.SPIRIT_TREE,M.DISEASED,t-20):t>=32&&t<=43?new F(e.Produce.SPIRIT_TREE,M.DEAD,t-31):44===t?new F(e.Produce.SPIRIT_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.SPIRIT_TREE].getStages()-1):t>=45&&t<=63?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$13_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=16?new F(e.Produce.ATTAS,M.GROWING,t-8):t>=17&&t<=25?new F(e.Produce.IASOR,M.GROWING,t-17):t>=26&&t<=34?new F(e.Produce.KRONOS,M.GROWING,t-26):t>=35&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$14_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new F(e.Produce.CACTUS,M.GROWING,t-8):t>=15&&t<=18?new F(e.Produce.CACTUS,M.HARVESTABLE,t-15):t>=19&&t<=24?new F(e.Produce.CACTUS,M.DISEASED,t-18):t>=25&&t<=30?new F(e.Produce.CACTUS,M.DEAD,t-24):31===t?new F(e.Produce.CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.CACTUS].getStages()-1):t>=32&&t<=38?new F(e.Produce.POTATO_CACTUS,M.GROWING,t-32):t>=39&&t<=45?new F(e.Produce.POTATO_CACTUS,M.HARVESTABLE,t-39):t>=46&&t<=51?new F(e.Produce.POTATO_CACTUS,M.DISEASED,t-45):t>=52&&t<=57?new F(e.Produce.POTATO_CACTUS,M.DEAD,t-51):58===t?new F(e.Produce.POTATO_CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.POTATO_CACTUS].getStages()-1):t>=59&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$15_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.SEAWEED,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.SEAWEED,M.HARVESTABLE,t-8):t>=11&&t<=13?new F(e.Produce.SEAWEED,M.DISEASED,t-10):t>=14&&t<=16?new F(e.Produce.SEAWEED,M.DEAD,t-13):t>=17&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$16_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=11?new F(e.Produce.CALQUAT,M.GROWING,t-4):t>=12&&t<=18?new F(e.Produce.CALQUAT,M.HARVESTABLE,t-12):t>=19&&t<=25?new F(e.Produce.CALQUAT,M.DISEASED,t-18):t>=26&&t<=33?new F(e.Produce.CALQUAT,M.DEAD,t-25):34===t?new F(e.Produce.CALQUAT,M.GROWING,e.Produce._$wrappers[e.Produce.CALQUAT].getStages()-1):t>=35&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$17_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=12?new F(e.Produce.CELASTRUS,M.GROWING,t-8):13===t?new F(e.Produce.CELASTRUS,M.GROWING,e.Produce._$wrappers[e.Produce.CELASTRUS].getStages()-1):t>=14&&t<=16?new F(e.Produce.CELASTRUS,M.HARVESTABLE,t-14):17===t?new F(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=18&&t<=22?new F(e.Produce.CELASTRUS,M.DISEASED,t-17):t>=23&&t<=27?new F(e.Produce.CELASTRUS,M.DEAD,t-22):28===t?new F(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=29&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$18_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=1?new F(e.Produce.WEEDS,M.GROWING,3):t>=2&&t<=9?new F(e.Produce.GRAPE,M.GROWING,t-2):10===t?new F(e.Produce.GRAPE,M.GROWING,7):t>=11&&t<=15?new F(e.Produce.GRAPE,M.HARVESTABLE,t-11):null}};e.PatchImplementation$19_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=8&&t<=13?new F(e.Produce.CRYSTAL_TREE,M.GROWING,t-8):14===t?new F(e.Produce.CRYSTAL_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.CRYSTAL_TREE].getStages()-1):15===t?new F(e.Produce.CRYSTAL_TREE,M.HARVESTABLE,0):null}};e.PatchImplementation$20_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return 0===t?new F(e.Produce.EMPTY_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new F(e.Produce.COMPOST,M.FILLING,t-1):t>=16&&t<=30?new F(e.Produce.COMPOST,M.HARVESTABLE,t-16):31===t||32===t?new F(e.Produce.COMPOST,M.GROWING,t-31):t>=33&&t<=47?new F(e.Produce.SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new F(e.Produce.SUPERCOMPOST,M.HARVESTABLE,t-48):94===t?new F(e.Produce.COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.COMPOST].getStages()-1):95===t||96===t?new F(e.Produce.SUPERCOMPOST,M.GROWING,t-95):126===t?new F(e.Produce.SUPERCOMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.SUPERCOMPOST].getStages()-1):t>=129&&t<=143?new F(e.Produce.ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new F(e.Produce.ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new F(e.Produce.ROTTEN_TOMATO,M.GROWING,t-159):t>=176&&t<=190?new F(e.Produce.ULTRACOMPOST,M.HARVESTABLE,t-176):null}};e.PatchImplementation$21_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return 0===t?new F(e.Produce.EMPTY_BIG_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new F(e.Produce.BIG_COMPOST,M.FILLING,t-1):t>=16&&t<=30?new F(e.Produce.BIG_COMPOST,M.HARVESTABLE,t-16):t>=33&&t<=47?new F(e.Produce.BIG_SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new F(e.Produce.BIG_SUPERCOMPOST,M.HARVESTABLE,t-48):t>=63&&t<=77?new F(e.Produce.BIG_COMPOST,M.FILLING,15+t-63):t>=78&&t<=92?new F(e.Produce.BIG_COMPOST,M.HARVESTABLE,15+t-78):93===t?new F(e.Produce.BIG_COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.BIG_COMPOST].getStages()-1):t>=97&&t<=99?new F(e.Produce.BIG_SUPERCOMPOST,M.GROWING,t-97):t>=100&&t<=114?new F(e.Produce.BIG_SUPERCOMPOST,M.HARVESTABLE,15+t-100):t>=127&&t<=128?new F(e.Produce.BIG_COMPOST,M.GROWING,t-127):t>=129&&t<=143?new F(e.Produce.BIG_ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new F(e.Produce.BIG_ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new F(e.Produce.BIG_ROTTEN_TOMATO,M.GROWING,t-159):t>=161&&t<=175?new F(e.Produce.BIG_SUPERCOMPOST,M.FILLING,15+t-161):t>=176&&t<=205?new F(e.Produce.BIG_ULTRACOMPOST,M.HARVESTABLE,t-176):t>=207&&t<=221?new F(e.Produce.BIG_ROTTEN_TOMATO,M.HARVESTABLE,15+t-207):222===t?new F(e.Produce.BIG_ROTTEN_TOMATO,M.GROWING,e.Produce._$wrappers[e.Produce.BIG_ROTTEN_TOMATO].getStages()-1):t>=223&&t<=237?new F(e.Produce.BIG_ROTTEN_TOMATO,M.FILLING,15+t-223):null}}}(B||(B={})),B._$wrappers={0:new B.PatchImplementation$0_$WRAPPER(0,"BELLADONNA",b.SPECIAL,"",!1),1:new B.PatchImplementation$1_$WRAPPER(1,"MUSHROOM",b.SPECIAL,"",!1),2:new B.PatchImplementation$2_$WRAPPER(2,"HESPORI",b.SPECIAL,"",!0),3:new B.PatchImplementation$3_$WRAPPER(3,"ALLOTMENT",b.ALLOTMENT,"",!1),4:new B.PatchImplementation$4_$WRAPPER(4,"HERB",b.HERB,"",!1),5:new B.PatchImplementation$5_$WRAPPER(5,"FLOWER",b.FLOWER,"",!1),6:new B.PatchImplementation$6_$WRAPPER(6,"BUSH",b.BUSH,"",!0),7:new B.PatchImplementation$7_$WRAPPER(7,"FRUIT_TREE",b.FRUIT_TREE,"",!0),8:new B.PatchImplementation$8_$WRAPPER(8,"HOPS",b.HOPS,"",!1),9:new B.PatchImplementation$9_$WRAPPER(9,"TREE",b.TREE,"",!0),10:new B.PatchImplementation$10_$WRAPPER(10,"HARDWOOD_TREE",b.TREE,"Hardwood Trees",!0),11:new B.PatchImplementation$11_$WRAPPER(11,"REDWOOD",b.TREE,"Redwood Trees",!0),12:new B.PatchImplementation$12_$WRAPPER(12,"SPIRIT_TREE",b.TREE,"Spirit Trees",!0),13:new B.PatchImplementation$13_$WRAPPER(13,"ANIMA",b.SPECIAL,"",!1),14:new B.PatchImplementation$14_$WRAPPER(14,"CACTUS",b.SPECIAL,"Cactus",!0),15:new B.PatchImplementation$15_$WRAPPER(15,"SEAWEED",b.SPECIAL,"Seaweed",!1),16:new B.PatchImplementation$16_$WRAPPER(16,"CALQUAT",b.FRUIT_TREE,"Calquat",!0),17:new B.PatchImplementation$17_$WRAPPER(17,"CELASTRUS",b.FRUIT_TREE,"Celastrus",!0),18:new B.PatchImplementation$18_$WRAPPER(18,"GRAPES",b.GRAPE,"",!0),19:new B.PatchImplementation$19_$WRAPPER(19,"CRYSTAL_TREE",b.FRUIT_TREE,"Crystal Tree",!0),20:new B.PatchImplementation$20_$WRAPPER(20,"COMPOST",b.SPECIAL,"Compost Bin",!0),21:new B.PatchImplementation$21_$WRAPPER(21,"BIG_COMPOST",b.SPECIAL,"Big Compost Bin",!0)};class y{}y.FARMING_4771=4771,y.FARMING_4772=4772,y.FARMING_4773=4773,y.FARMING_4774=4774,y.FARMING_4775=4775,y.FARMING_7904=7904,y.FARMING_7905=7905,y.FARMING_7906=7906,y.FARMING_7907=7907,y.FARMING_7908=7908,y.FARMING_7909=7909,y.FARMING_7910=7910,y.FARMING_7911=7911,y.FARMING_7912=7912,y.GRAPES_4953=4953,y.GRAPES_4954=4954,y.GRAPES_4955=4955,y.GRAPES_4956=4956,y.GRAPES_4957=4957,y.GRAPES_4958=4958,y.GRAPES_4959=4959,y.GRAPES_4960=4960,y.GRAPES_4961=4961,y.GRAPES_4962=4962,y.GRAPES_4963=4963,y.GRAPES_4964=4964,y.AUTOWEED=5557,y.__class="timetracking.Varbits";class ${constructor(e,t,n){void 0===this.region&&(this.region=null),void 0===this.name&&(this.name=null),void 0===this.varbit&&(this.varbit=0),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}}$.__class="timetracking.FarmingPatch";class Y{constructor(e,t,n){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 r=arguments.length,a=new Array(r>3?r-3:0),o=3;o{let t=[];for(;e-- >0;)t.push(0);return t})(a.length);for(let c=0;c"function"===typeof e?e(x.CONFIG_GROUP,x.BOTANIST):e.apply(x.CONFIG_GROUP,x.BOTANIST))(t),s=e.getRegion().getRegionID()+"."+e.getVarbit(),E=(e=>"function"===typeof e?e(x.CONFIG_GROUP,s):e.apply(x.CONFIG_GROUP,s))(t);if(null==E)return null;let i=0,R=0;{const e=E.split(":");if(2===e.length)try{R=parseInt(e[0]),i=parseInt(e[1])}catch(I){}}if(i<=0)return null;const A=B._$wrappers[e.getImplementation()].forVarbitValue(R);if(null==A)return null;let O=A.getStage(),u=A.getStages(),l=A.getTickRate();a&&A.getProduce()===B.Produce.WEEDS&&(O=0,u=1,l=0),c&&(l=(e=>e<0?Math.ceil(e):Math.floor(e))(l/5));let d=0;if(l>0){const e=J.getTickTime(l,0,n,"function"==typeof(P=t)?P:(e,t)=>(P.apply?P.apply:P).call(P,e,t)),r=J.getTickTime(l,0,i,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),a=(e-r|0)/(60*l)|0;d=J.getTickTime(l,u-1-O,r,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),O+=a,O>=u&&(O=u-1)}var P;return new K(A.getProduce(),A.getCropState(),d,O,u)}static getTickTime(e,t,n,r){const a="function"===typeof(o=r)?o(x.CONFIG_GROUP,x.FARM_TICK_OFFSET_PRECISION):o.apply(x.CONFIG_GROUP,x.FARM_TICK_OFFSET_PRECISION);var o;const c=(e=>"function"===typeof e?e(x.CONFIG_GROUP,x.FARM_TICK_OFFSET):e.apply(x.CONFIG_GROUP,x.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 R=n+i;return R-R%(60*e)+t*e*60-i}}J.__class="timetracking.FarmingTracker";var z,Q,q,X=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"}(z||(z={}));class Z{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 z)isNaN(t)||e.push(parseInt(t,10));return e}().length?null:function(){let e=[];for(let t in z)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)}}z.__class="timetracking.BirdHouse",z._$wrappers={0:new Z(0,"NORMAL","Bird House",U.BIRD_HOUSE),1:new Z(1,"OAK","Oak Bird House",U.OAK_BIRD_HOUSE),2:new Z(2,"WILLOW","Willow Bird House",U.WILLOW_BIRD_HOUSE),3:new Z(3,"TEAK","Teak Bird House",U.TEAK_BIRD_HOUSE),4:new Z(4,"MAPLE","Maple Bird House",U.MAPLE_BIRD_HOUSE),5:new Z(5,"MAHOGANY","Mahogany Bird House",U.MAHOGANY_BIRD_HOUSE),6:new Z(6,"YEW","Yew Bird House",U.YEW_BIRD_HOUSE),7:new Z(7,"MAGIC","Magic Bird House",U.MAGIC_BIRD_HOUSE),8:new Z(8,"REDWOOD","Redwood Bird House",U.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 ee{constructor(e,t){this._$ordinal=e,this._$name=t}static fromVarpValue(e){return e<0||e>3*function(){let e=[];for(let t in z)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._$wrappers={0:new ee(0,"SEEDED"),1:new ee(1,"BUILT"),2:new ee(2,"EMPTY"),3:new ee(3,"UNKNOWN")};class te{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}}te.__class="timetracking.BirdHouseData";class ne{}ne.BIRD_HOUSE_MEADOW_NORTH=1626,ne.BIRD_HOUSE_MEADOW_SOUTH=1627,ne.BIRD_HOUSE_VALLEY_NORTH=1628,ne.BIRD_HOUSE_VALLEY_SOUTH=1629,ne.__class="timetracking.VarPlayer",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"}(q||(q={}));class re{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.varp&&(this.varp=0),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)}}q.__class="timetracking.BirdHouseSpace",q._$wrappers={0:new re(0,"MEADOW_NORTH","Mushroom Meadow (North)",ne.BIRD_HOUSE_MEADOW_NORTH),1:new re(1,"MEADOW_SOUTH","Mushroom Meadow (South)",ne.BIRD_HOUSE_MEADOW_SOUTH),2:new re(2,"VALLEY_NORTH","Verdant Valley (Northeast)",ne.BIRD_HOUSE_VALLEY_NORTH),3:new re(3,"VALLEY_SOUTH","Verdant Valley (Southwest)",ne.BIRD_HOUSE_VALLEY_SOUTH)};class ae{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 ce(e){switch(e){case Q.EMPTY:case Q.UNKNOWN:return"#4D4D4D";case Q.BUILT:return"#E6961E";case Q.SEEDED:default:return"#26A831"}}function se(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 Ee(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 ie(){return{title:"",subtitle:"",icon:0,estimateText:"",tooltipText:"",progress:{minimumValue:0,maximumValue:1,value:0,visible:!0,background:oe("#26A831",-60),foreground:"#26A831"}}}function Re(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 J,r=(new k).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=ie();r.icon=U.WEEDS,r.title=e.getRegion().getName()+(null==e.getName()||""===e.getName()?"":" ("+e.getName()+")");const a=B._$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=B.Produce._$wrappers[o.getProduce()];switch(E.getItemID()<0?(r.icon=U.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 ae).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=q._$wrappers[c];let t=-1,n=0;null!=s&&(t=s.getVarp(),n=s.getTimestamp());const a=z._$wrappers[Z.fromVarpValue(t)],E=ee.fromVarpValue(t),i=ie();switch(i.title=e.getName(),i.progress.maximumValue=3e3,null==a?(i.icon=U.FEATHER,i.progress.visible=!1):(i.icon=a.getItemID(),i.tooltipText=a.getName(),i.progress.visible=!0),i.progress.foreground=ce(E),i.progress.background=oe(ce(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 "+Ee(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}ae.__class="timetracking.BirdHouseTracker";const Ae=Object(X.a)(u.f,u.o,(e,t)=>Re(t,e));n(448);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(l.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)))),ue=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(l.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))),le=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(l.c)(e.icon)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)));var de=Object(a.b)((e,t)=>({...t,timeTracking:Ae(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(le)),t.map(ue))}));const Pe=e=>"STANDARD"!==e?" for "+Object(l.h)(e):"";var Ie=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),Pe(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),Pe(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),Pe(t.type)))):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-body"},"No RuneScape profile selected"))})),Se=n(294),Te=n(295);const we=e=>e.name+" ("+e.region+")";var Ge=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(we);n=n||o[0];const c=t.flatMap(e=>e.data),s=t.find(e=>we(e)===n).data,E=JSON.stringify(s);return Object(r.g)(r.b,null,Object(r.g)("div",{class:"mb-2"},Object(r.g)(Se.a,{prefix:"",value:n,choices:o,onClick:a})),Object(r.g)(Te.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"))))})),Ne=n(129),ge=n.n(Ne);n(449);const De=e=>"https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id="+e,We=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:De(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(l.f)(e.price*e.quantity))," gp (",Object(r.g)("span",null,Object(l.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"},ge()(e.date)))));var t};const _e=[{tag:"home",label:"Home",icon:"fa-fw fas fa-home",component:S,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:G.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(We)))})),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:de,showAccounts:!0,data:e=>{let{rawTimeTracking:t}=e;return t}},{tag:"tags",label:"Tags",icon:"fa-fw fas fa-code",component:H,data:e=>{let{rawTags:t}=e;return t}},{tag:"tile-markers",label:"Tile markers",icon:"fa-fw fas fa-tree",component:Ge,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:Ie,showAccounts:!0}],pe=(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),he=(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(l.h)(a)):"");var a};t.default=Object(a.b)((e,t)=>({...t,loggedIn:Object(A.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:Ae(e),rawTiles:Object(u.r)(e)}),e=>Object(c.b)({logout:A.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)(O,{to:"/"});const A=_e.find(e=>e.tag===t),u=_e.filter(e=>!e.bottom),l=_e.filter(e=>e.bottom);if(!A)return Object(r.g)(m.a,null);const d=(e=>e.component)(A);return Object(r.g)(s.a,null,Object(r.g)(R.a,{title:`${A.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=>pe(A,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)})(A,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")),A.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=>he(e,E.selectedAccount,a)),l.map(e=>pe(A,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.c51bfff0.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()}))}},289: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("")}},294:function(e,t,n){},295: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))))}},296:function(e,t,n){"use strict";var r=n(0),a=n(132),o=n(465),c=n(474),s=n(466),E=n(467),i=n(468),R=n(49);n(297);const A=[3225,3219],O=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)}),l=(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=l(A[0],A[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([l(t.x,t.y),l(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 R.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)},I=e=>{let{tiles:t,selected:n,plane:a}=e;const i=Object(o.a)();if(i.tileLayer||(i.tileLayer=new O("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=[l(r,o),l(a,c)];i.viewport=s,i.fitBounds(s)}return t.map(e=>{const t=[l(e.x,e.y),l(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)(I,{tiles:t,selected:n,plane:o})))}},297:function(e,t,n){},448:function(e,t,n){},449:function(e,t,n){},450:function(e,t,n){},451:function(e,t,n){},469: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),R=n(46),A=n(20);class O extends r.a{componentWillMount(){window.location.replace(this.props.to)}render(){return null}}var u=n(28),l=(n(289),n(18)),d=n(127),P=n(4);const I=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 S=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/${I(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(l.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(448),n(288)),w=n(32),G=n(24);const N={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}},g=["","K","M"],D=e=>{let t=0;for(;e>9999;)e/=1e3,t++;const n=g[t];return[~~e+n,n]},W=e=>{return Object(r.g)("div",{class:"drop-wrapper"},(e=>{let[t,n]=D(e);return e>1&&Object(r.g)("span",{class:"rs-item-quantity rs-item-quantity-"+(n||"none")},[...t].map(e=>N[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(l.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,"(",_(e.price)," gp)"))));var t},_=e=>{let[t]=D(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"},_(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(W))));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:G.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)))})),m=n(47);n(449),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(l.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(l.i)(e)},Object(r.g)("img",{class:"card-img-top",alt:t,src:Object(l.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,B,f,C,H=Object(a.b)((e,t)=>({...t,tags:Object(u.q)(e)}),e=>Object(c.b)({fetchBootstrap:P.b,fetchConfig:u.c,fetchItems:G.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 U{}U.GRIMY_RANARR_WEED=207,U.LIMPWURT_ROOT=225,U.SNAPE_GRASS=231,U.WHITE_BERRIES=239,U.JANGERBERRIES=247,U.GUAM_LEAF=249,U.MARRENTILL=251,U.TARROMIN=253,U.HARRALANDER=255,U.RANARR_WEED=257,U.IRIT_LEAF=259,U.AVANTOE=261,U.KWUARM=263,U.CADANTINE=265,U.DWARF_WEED=267,U.TORSTOL=269,U.CADAVA_BERRIES=753,U.BATTLESTAFF=1391,U.MAGIC_LOGS=1513,U.YEW_LOGS=1515,U.MAPLE_LOGS=1517,U.WILLOW_LOGS=1519,U.OAK_LOGS=1521,U.WOAD_LEAF=1793,U.POTATO=1942,U.REDBERRIES=1951,U.COOKING_APPLE=1955,U.ONION=1957,U.BANANA=1963,U.CABBAGE=1965,U.TOMATO=1982,U.GRAPES=1987,U.ORANGE=2108,U.PINEAPPLE=2114,U.DWELLBERRIES=2126,U.CAVE_NIGHTSHADE=2398,U.RED_FLOWERS=2462,U.LANTADYME=2481,U.WATCH=2575,U.TOADFLAX=2998,U.SNAPDRAGON=3e3,U.POTATO_CACTUS=3138,U.GOUTWEED=3261,U.STRAWBERRY=5504,U.JUTE_FIBRE=5931,U.CURRY_LEAF=5970,U.PAPAYA_FRUIT=5972,U.COCONUT=5974,U.CALQUAT_FRUIT=5980,U.WATERMELON=5982,U.SWEETCORN=5986,U.HAMMERSTONE_HOPS=5994,U.ASGARNIAN_HOPS=5996,U.YANILLIAN_HOPS=5998,U.KRANDORIAN_HOPS=6e3,U.WILDBLOOD_HOPS=6002,U.MUSHROOM=6004,U.BARLEY=6006,U.MARIGOLDS=6010,U.NASTURTIUMS=6012,U.ROSEMARY=6014,U.CACTUS_SPINE=6016,U.POISON_IVY_BERRIES=6018,U.WEEDS=6055,U.SCARECROW=6059,U.SPIRIT_TREE=6063,U.MAHOGANY_LOGS=6332,U.TEAK_LOGS=6333,U.REDWOOD_LOGS=19669,U.GIANT_SEAWEED=21504,U.OLD_NOTES=22051,U.DRAGONFRUIT=22929,U.WHITE_LILY=22932,U.CRYSTAL_SHARDS=23866,U.BIRD_HOUSE=21512,U.OAK_BIRD_HOUSE=21515,U.WILLOW_BIRD_HOUSE=21518,U.TEAK_BIRD_HOUSE=21521,U.MAPLE_BIRD_HOUSE=22192,U.MAHOGANY_BIRD_HOUSE=22195,U.YEW_BIRD_HOUSE=22198,U.MAGIC_BIRD_HOUSE=22201,U.REDWOOD_BIRD_HOUSE=22204,U.FEATHER=314,U.COMPOST_BIN=3271,U.COMPOST=6032,U.SUPERCOMPOST=6034,U.ULTRACOMPOST=21483,U.ROTTEN_TOMATO=2518,U.__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 v{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==v.FARMING_TABS&&(v.FARMING_TABS=[b.HERB,b.TREE,b.FRUIT_TREE,b.SPECIAL,b.FLOWER,b.ALLOTMENT,b.BUSH,b.GRAPE,b.HOPS]),v.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._$wrappers={0:new v(0,"OVERVIEW","Overview",U.OLD_NOTES),1:new v(1,"CLOCK","Timers & Stopwatches",U.WATCH),2:new v(2,"BIRD_HOUSE","Bird Houses",U.OAK_BIRD_HOUSE),3:new v(3,"ALLOTMENT","Allotment Patches",U.CABBAGE),4:new v(4,"FLOWER","Flower Patches",U.RED_FLOWERS),5:new v(5,"HERB","Herb Patches",U.GRIMY_RANARR_WEED),6:new v(6,"TREE","Tree Patches",U.YEW_LOGS),7:new v(7,"FRUIT_TREE","Fruit Tree Patches",U.PINEAPPLE),8:new v(8,"HOPS","Hops Patches",U.BARLEY),9:new v(9,"BUSH","Bush Patches",U.POISON_IVY_BERRIES),10:new v(10,"GRAPE","Grape Patches",U.GRAPES),11:new v(11,"SPECIAL","Special Patches",U.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 F{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?B.Produce._$wrappers[this.produce].getHarvestStages():B.Produce._$wrappers[this.produce].getStages()}getTickRate(){switch(this.cropState){case M.HARVESTABLE:return B.Produce._$wrappers[this.produce].getRegrowTickrate();case M.GROWING:return B.Produce._$wrappers[this.produce].getTickrate();default:return 0}}getStage(){return this.stage}getProduce(){return this.produce}getCropState(){return this.cropState}}F.__class="timetracking.PatchState";class j{}j.NULL_22938=22938,j.NULL_22939=22939,j.NULL_22940=22940,j.NULL_23044=23044,j.__class="timetracking.NullItemID",(f=B||(B={}))[f.BELLADONNA=0]="BELLADONNA",f[f.MUSHROOM=1]="MUSHROOM",f[f.HESPORI=2]="HESPORI",f[f.ALLOTMENT=3]="ALLOTMENT",f[f.HERB=4]="HERB",f[f.FLOWER=5]="FLOWER",f[f.BUSH=6]="BUSH",f[f.FRUIT_TREE=7]="FRUIT_TREE",f[f.HOPS=8]="HOPS",f[f.TREE=9]="TREE",f[f.HARDWOOD_TREE=10]="HARDWOOD_TREE",f[f.REDWOOD=11]="REDWOOD",f[f.SPIRIT_TREE=12]="SPIRIT_TREE",f[f.ANIMA=13]="ANIMA",f[f.CACTUS=14]="CACTUS",f[f.SEAWEED=15]="SEAWEED",f[f.CALQUAT=16]="CALQUAT",f[f.CELASTRUS=17]="CELASTRUS",f[f.GRAPES=18]="GRAPES",f[f.CRYSTAL_TREE=19]="CRYSTAL_TREE",f[f.COMPOST=20]="COMPOST",f[f.BIG_COMPOST=21]="BIG_COMPOST";class V{constructor(e,t,n,r,a){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)}}B.__class="timetracking.PatchImplementation",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_BIG_COMPOST_BIN=80]="EMPTY_BIG_COMPOST_BIN",e[e.BIG_COMPOST=81]="BIG_COMPOST",e[e.BIG_SUPERCOMPOST=82]="BIG_SUPERCOMPOST",e[e.BIG_ULTRACOMPOST=83]="BIG_ULTRACOMPOST",e[e.BIG_ROTTEN_TOMATO=84]="BIG_ROTTEN_TOMATO"}(t=e.Produce||(e.Produce={}));class n{constructor(e,t,n,r,a,o,c,s,E){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"number"!==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){if("string"!==typeof n&&null!==n||"number"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||void 0!==s||void 0!==E)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=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.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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=s,this.harvestStages=E}}getName(){return this.__name}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._$wrappers={0:new n(0,"WEEDS","Weeds",null,U.WEEDS,5,4),1:new n(1,"SCARECROW","Scarecrow",null,U.SCARECROW,5,4),2:new n(2,"POTATO","Potato",e.ALLOTMENT,U.POTATO,10,5,0,3),3:new n(3,"ONION","Onion",e.ALLOTMENT,U.ONION,10,5,0,3),4:new n(4,"CABBAGE","Cabbage",e.ALLOTMENT,U.CABBAGE,10,5,0,3),5:new n(5,"TOMATO","Tomato",e.ALLOTMENT,U.TOMATO,10,5,0,3),6:new n(6,"SWEETCORN","Sweetcorn",e.ALLOTMENT,U.SWEETCORN,10,7,0,3),7:new n(7,"STRAWBERRY","Strawberry",e.ALLOTMENT,U.STRAWBERRY,10,7,0,3),8:new n(8,"WATERMELON","Watermelon",e.ALLOTMENT,U.WATERMELON,10,9,0,3),9:new n(9,"SNAPE_GRASS","Snape grass",e.ALLOTMENT,U.SNAPE_GRASS,10,8,0,3),10:new n(10,"MARIGOLD","Marigold",e.FLOWER,U.MARIGOLDS,5,5),11:new n(11,"ROSEMARY","Rosemary",e.FLOWER,U.ROSEMARY,5,5),12:new n(12,"NASTURTIUM","Nasturtium",e.FLOWER,U.NASTURTIUMS,5,5),13:new n(13,"WOAD","Woad",e.FLOWER,U.WOAD_LEAF,5,5),14:new n(14,"LIMPWURT","Limpwurt",e.FLOWER,U.LIMPWURT_ROOT,5,5),15:new n(15,"WHITE_LILY","White lily",e.FLOWER,U.WHITE_LILY,5,5),16:new n(16,"REDBERRIES","Redberry",e.BUSH,U.REDBERRIES,20,6,20,5),17:new n(17,"CADAVABERRIES","Cadavaberry",e.BUSH,U.CADAVA_BERRIES,20,7,20,5),18:new n(18,"DWELLBERRIES","Dwellberry",e.BUSH,U.DWELLBERRIES,20,8,20,5),19:new n(19,"JANGERBERRIES","Jangerberry",e.BUSH,U.JANGERBERRIES,20,9,20,5),20:new n(20,"WHITEBERRIES","Whiteberry",e.BUSH,U.WHITE_BERRIES,20,9,20,5),21:new n(21,"POISON_IVY","Poison ivy",e.BUSH,U.POISON_IVY_BERRIES,20,9,20,5),22:new n(22,"BARLEY","Barley",e.HOPS,U.BARLEY,10,5,0,3),23:new n(23,"HAMMERSTONE","Hammerstone",e.HOPS,U.HAMMERSTONE_HOPS,10,5,0,3),24:new n(24,"ASGARNIAN","Asgarnian",e.HOPS,U.ASGARNIAN_HOPS,10,6,0,3),25:new n(25,"JUTE","Jute",e.HOPS,U.JUTE_FIBRE,10,6,0,3),26:new n(26,"YANILLIAN","Yanillian",e.HOPS,U.YANILLIAN_HOPS,10,7,0,3),27:new n(27,"KRANDORIAN","Krandorian",e.HOPS,U.KRANDORIAN_HOPS,10,8,0,3),28:new n(28,"WILDBLOOD","Wildblood",e.HOPS,U.WILDBLOOD_HOPS,10,9,0,3),29:new n(29,"GUAM","Guam",e.HERB,U.GUAM_LEAF,20,5,0,3),30:new n(30,"MARRENTILL","Marrentill",e.HERB,U.MARRENTILL,20,5,0,3),31:new n(31,"TARROMIN","Tarromin",e.HERB,U.TARROMIN,20,5,0,3),32:new n(32,"HARRALANDER","Harralander",e.HERB,U.HARRALANDER,20,5,0,3),33:new n(33,"RANARR","Ranarr",e.HERB,U.RANARR_WEED,20,5,0,3),34:new n(34,"TOADFLAX","Toadflax",e.HERB,U.TOADFLAX,20,5,0,3),35:new n(35,"IRIT","Irit",e.HERB,U.IRIT_LEAF,20,5,0,3),36:new n(36,"AVANTOE","Avantoe",e.HERB,U.AVANTOE,20,5,0,3),37:new n(37,"KWUARM","Kwuarm",e.HERB,U.KWUARM,20,5,0,3),38:new n(38,"SNAPDRAGON","Snapdragon",e.HERB,U.SNAPDRAGON,20,5,0,3),39:new n(39,"CADANTINE","Cadantine",e.HERB,U.CADANTINE,20,5,0,3),40:new n(40,"LANTADYME","Lantadyme",e.HERB,U.LANTADYME,20,5,0,3),41:new n(41,"DWARF_WEED","Dwarf weed",e.HERB,U.DWARF_WEED,20,5,0,3),42:new n(42,"TORSTOL","Torstol",e.HERB,U.TORSTOL,20,5,0,3),43:new n(43,"GOUTWEED","Goutweed",e.HERB,U.GOUTWEED,20,5,0,2),44:new n(44,"ANYHERB","Any herb",e.HERB,U.GUAM_LEAF,20,5,0,3),45:new n(45,"OAK","Oak",e.TREE,U.OAK_LOGS,40,5),46:new n(46,"WILLOW","Willow",e.TREE,U.WILLOW_LOGS,40,7),47:new n(47,"MAPLE","Maple",e.TREE,U.MAPLE_LOGS,40,9),48:new n(48,"YEW","Yew",e.TREE,U.YEW_LOGS,40,11),49:new n(49,"MAGIC","Magic",e.TREE,U.MAGIC_LOGS,40,13),50:new n(50,"APPLE","Apple",e.FRUIT_TREE,U.COOKING_APPLE,160,7,45,7),51:new n(51,"BANANA","Banana",e.FRUIT_TREE,U.BANANA,160,7,45,7),52:new n(52,"ORANGE","Orange",e.FRUIT_TREE,U.ORANGE,160,7,45,7),53:new n(53,"CURRY","Curry",e.FRUIT_TREE,U.CURRY_LEAF,160,7,45,7),54:new n(54,"PINEAPPLE","Pineapple",e.FRUIT_TREE,U.PINEAPPLE,160,7,45,7),55:new n(55,"PAPAYA","Papaya",e.FRUIT_TREE,U.PAPAYA_FRUIT,160,7,45,7),56:new n(56,"PALM","Palm",e.FRUIT_TREE,U.COCONUT,160,7,45,7),57:new n(57,"DRAGONFRUIT","Dragonfruit",e.FRUIT_TREE,U.DRAGONFRUIT,160,7,45,7),58:new n(58,"CACTUS","Cactus",e.CACTUS,U.CACTUS_SPINE,80,8,20,4),59:new n(59,"POTATO_CACTUS","Potato cactus",e.CACTUS,U.POTATO_CACTUS,10,8,5,7),60:new n(60,"TEAK","Teak",e.HARDWOOD_TREE,U.TEAK_LOGS,640,8),61:new n(61,"MAHOGANY","Mahogany",e.HARDWOOD_TREE,U.MAHOGANY_LOGS,640,9),62:new n(62,"ATTAS","Attas",e.ANIMA,j.NULL_22940,640,9),63:new n(63,"IASOR","Iasor",e.ANIMA,j.NULL_22939,640,9),64:new n(64,"KRONOS","Kronos",e.ANIMA,j.NULL_22938,640,9),65:new n(65,"SEAWEED","Seaweed",e.SEAWEED,U.GIANT_SEAWEED,10,5,0,4),66:new n(66,"GRAPE","Grape",e.GRAPES,U.GRAPES,5,8,0,5),67:new n(67,"MUSHROOM","Mushroom",e.MUSHROOM,U.MUSHROOM,40,7,0,7),68:new n(68,"BELLADONNA","Belladonna",e.BELLADONNA,U.CAVE_NIGHTSHADE,80,5),69:new n(69,"CALQUAT","Calquat",e.CALQUAT,U.CALQUAT_FRUIT,160,9,0,7),70:new n(70,"SPIRIT_TREE","Spirit tree",e.SPIRIT_TREE,U.SPIRIT_TREE,320,13),71:new n(71,"CELASTRUS","Celastrus",e.CELASTRUS,U.BATTLESTAFF,160,6,0,4),72:new n(72,"REDWOOD","Redwood",e.REDWOOD,U.REDWOOD_LOGS,640,11),73:new n(73,"HESPORI","Hespori",e.HESPORI,j.NULL_23044,640,4,0,2),74:new n(74,"CRYSTAL_TREE","Crystal tree",e.CRYSTAL_TREE,U.CRYSTAL_SHARDS,80,7),75:new n(75,"EMPTY_COMPOST_BIN","Compost Bin",e.COMPOST,U.COMPOST_BIN,0,1,0,0),76:new n(76,"COMPOST","Compost",e.COMPOST,U.COMPOST,40,3,0,15),77:new n(77,"SUPERCOMPOST","Supercompost",e.COMPOST,U.SUPERCOMPOST,40,3,0,15),78:new n(78,"ULTRACOMPOST","Ultracompost",e.COMPOST,U.ULTRACOMPOST,0,3,0,15),79:new n(79,"ROTTEN_TOMATO","Rotten Tomato",e.COMPOST,U.ROTTEN_TOMATO,40,3,0,15),80:new n(80,"EMPTY_BIG_COMPOST_BIN","Big Compost Bin",e.COMPOST,U.COMPOST_BIN,0,1,0,0),81:new n(81,"BIG_COMPOST","Compost",e.BIG_COMPOST,U.COMPOST,40,3,0,30),82:new n(82,"BIG_SUPERCOMPOST","Supercompost",e.BIG_COMPOST,U.SUPERCOMPOST,40,3,0,30),83:new n(83,"BIG_ULTRACOMPOST","Ultracompost",e.BIG_COMPOST,U.ULTRACOMPOST,0,3,0,30),84:new n(84,"BIG_ROTTEN_TOMATO","Rotten Tomato",e.BIG_COMPOST,U.ROTTEN_TOMATO,40,3,0,30)}}(B||(B={})),function(e){e.Produce_$WRAPPER=class{constructor(e,t,n,r,a,o,c,s,E){if(this._$ordinal=e,this._$name=t,"string"!==typeof n&&null!==n||"number"!==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){if("string"!==typeof n&&null!==n||"number"!==typeof r&&null!==r||"number"!==typeof a&&null!==a||"number"!==typeof o&&null!==o||"number"!==typeof c&&null!==c||void 0!==s||void 0!==E)throw new Error("invalid overload");{let e=0,t=1;void 0===this.__name&&(this.__name=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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=e,this.harvestStages=t}void 0===this.__name&&(this.__name=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.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.patchImplementation=r,this.itemID=a,this.tickrate=o,this.stages=c,this.regrowTickrate=s,this.harvestStages=E}}getName(){return this.__name}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.PatchImplementation$0_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.BELLADONNA,M.GROWING,t-4):8===t?new F(e.Produce.BELLADONNA,M.HARVESTABLE,0):t>=9&&t<=11?new F(e.Produce.BELLADONNA,M.DISEASED,t-8):t>=12&&t<=14?new F(e.Produce.BELLADONNA,M.DEAD,t-11):t>=15&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$1_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=9?new F(e.Produce.MUSHROOM,M.GROWING,t-4):t>=10&&t<=15?new F(e.Produce.MUSHROOM,M.HARVESTABLE,t-10):t>=16&&t<=20?new F(e.Produce.MUSHROOM,M.DISEASED,t-15):t>=21&&t<=25?new F(e.Produce.MUSHROOM,M.DEAD,t-20):t>=26&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$2_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=6?new F(e.Produce.HESPORI,M.GROWING,t-4):t>=7&&t<=8?new F(e.Produce.HESPORI,M.HARVESTABLE,t-7):9===t?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$3_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=5?new F(e.Produce.WEEDS,M.GROWING,3):t>=6&&t<=9?new F(e.Produce.POTATO,M.GROWING,t-6):t>=10&&t<=12?new F(e.Produce.POTATO,M.HARVESTABLE,t-10):t>=13&&t<=16?new F(e.Produce.ONION,M.GROWING,t-13):t>=17&&t<=19?new F(e.Produce.ONION,M.HARVESTABLE,t-17):t>=20&&t<=23?new F(e.Produce.CABBAGE,M.GROWING,t-20):t>=24&&t<=26?new F(e.Produce.CABBAGE,M.HARVESTABLE,t-24):t>=27&&t<=30?new F(e.Produce.TOMATO,M.GROWING,t-27):t>=31&&t<=33?new F(e.Produce.TOMATO,M.HARVESTABLE,t-31):t>=34&&t<=39?new F(e.Produce.SWEETCORN,M.GROWING,t-34):t>=40&&t<=42?new F(e.Produce.SWEETCORN,M.HARVESTABLE,t-40):t>=43&&t<=48?new F(e.Produce.STRAWBERRY,M.GROWING,t-43):t>=49&&t<=51?new F(e.Produce.STRAWBERRY,M.HARVESTABLE,t-49):t>=52&&t<=59?new F(e.Produce.WATERMELON,M.GROWING,t-52):t>=60&&t<=62?new F(e.Produce.WATERMELON,M.HARVESTABLE,t-60):t>=63&&t<=69?new F(e.Produce.SNAPE_GRASS,M.GROWING,t-63):t>=70&&t<=73?new F(e.Produce.POTATO,M.GROWING,t-70):t>=74&&t<=76?new F(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new F(e.Produce.ONION,M.GROWING,t-77):t>=81&&t<=83?new F(e.Produce.WEEDS,M.GROWING,3):t>=84&&t<=87?new F(e.Produce.CABBAGE,M.GROWING,t-84):t>=88&&t<=90?new F(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=94?new F(e.Produce.TOMATO,M.GROWING,t-91):t>=95&&t<=97?new F(e.Produce.WEEDS,M.GROWING,3):t>=98&&t<=103?new F(e.Produce.SWEETCORN,M.GROWING,t-98):t>=104&&t<=106?new F(e.Produce.WEEDS,M.GROWING,3):t>=107&&t<=112?new F(e.Produce.STRAWBERRY,M.GROWING,t-107):t>=113&&t<=115?new F(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new F(e.Produce.WATERMELON,M.GROWING,t-116):t>=124&&t<=127?new F(e.Produce.WEEDS,M.GROWING,3):t>=128&&t<=134?new F(e.Produce.SNAPE_GRASS,M.GROWING,t-128):t>=135&&t<=137?new F(e.Produce.POTATO,M.DISEASED,t-134):t>=138&&t<=140?new F(e.Produce.SNAPE_GRASS,M.HARVESTABLE,t-138):141===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new F(e.Produce.ONION,M.DISEASED,t-141):t>=145&&t<=148?new F(e.Produce.WEEDS,M.GROWING,3):t>=149&&t<=151?new F(e.Produce.CABBAGE,M.DISEASED,t-148):t>=152&&t<=155?new F(e.Produce.WEEDS,M.GROWING,3):t>=156&&t<=158?new F(e.Produce.TOMATO,M.DISEASED,t-155):t>=159&&t<=162?new F(e.Produce.WEEDS,M.GROWING,3):t>=163&&t<=167?new F(e.Produce.SWEETCORN,M.DISEASED,t-162):t>=168&&t<=171?new F(e.Produce.WEEDS,M.GROWING,3):t>=172&&t<=176?new F(e.Produce.STRAWBERRY,M.DISEASED,t-171):t>=177&&t<=180?new F(e.Produce.WEEDS,M.GROWING,3):t>=181&&t<=187?new F(e.Produce.WATERMELON,M.DISEASED,t-180):t>=188&&t<=192?new F(e.Produce.WEEDS,M.GROWING,3):t>=193&&t<=195?new F(e.Produce.SNAPE_GRASS,M.DEAD,t-192):t>=196&&t<=198?new F(e.Produce.SNAPE_GRASS,M.DISEASED,t-195):t>=199&&t<=201?new F(e.Produce.POTATO,M.DEAD,t-198):t>=202&&t<=204?new F(e.Produce.SNAPE_GRASS,M.DISEASED,3+t-201):205===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=208?new F(e.Produce.ONION,M.DEAD,t-205):t>=209&&t<=211?new F(e.Produce.SNAPE_GRASS,M.DEAD,3+t-208):212===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=213&&t<=215?new F(e.Produce.CABBAGE,M.DEAD,t-212):t>=216&&t<=219?new F(e.Produce.WEEDS,M.GROWING,3):t>=220&&t<=222?new F(e.Produce.TOMATO,M.DEAD,t-219):t>=223&&t<=226?new F(e.Produce.WEEDS,M.GROWING,3):t>=227&&t<=231?new F(e.Produce.SWEETCORN,M.DEAD,t-226):t>=232&&t<=235?new F(e.Produce.WEEDS,M.GROWING,3):t>=236&&t<=240?new F(e.Produce.STRAWBERRY,M.DEAD,t-235):t>=241&&t<=244?new F(e.Produce.WEEDS,M.GROWING,3):t>=245&&t<=251?new F(e.Produce.WATERMELON,M.DEAD,t-244):t>=252&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$4_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.GUAM,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.GUAM,M.HARVESTABLE,10-t):t>=11&&t<=14?new F(e.Produce.MARRENTILL,M.GROWING,t-11):t>=15&&t<=17?new F(e.Produce.MARRENTILL,M.HARVESTABLE,17-t):t>=18&&t<=21?new F(e.Produce.TARROMIN,M.GROWING,t-18):t>=22&&t<=24?new F(e.Produce.TARROMIN,M.HARVESTABLE,24-t):t>=25&&t<=28?new F(e.Produce.HARRALANDER,M.GROWING,t-25):t>=29&&t<=31?new F(e.Produce.HARRALANDER,M.HARVESTABLE,31-t):t>=32&&t<=35?new F(e.Produce.RANARR,M.GROWING,t-32):t>=36&&t<=38?new F(e.Produce.RANARR,M.HARVESTABLE,38-t):t>=39&&t<=42?new F(e.Produce.TOADFLAX,M.GROWING,t-39):t>=43&&t<=45?new F(e.Produce.TOADFLAX,M.HARVESTABLE,45-t):t>=46&&t<=49?new F(e.Produce.IRIT,M.GROWING,t-46):t>=50&&t<=52?new F(e.Produce.IRIT,M.HARVESTABLE,52-t):t>=53&&t<=56?new F(e.Produce.AVANTOE,M.GROWING,t-53):t>=57&&t<=59?new F(e.Produce.AVANTOE,M.HARVESTABLE,59-t):t>=60&&t<=67?new F(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new F(e.Produce.KWUARM,M.GROWING,t-68):t>=72&&t<=74?new F(e.Produce.KWUARM,M.HARVESTABLE,74-t):t>=75&&t<=78?new F(e.Produce.SNAPDRAGON,M.GROWING,t-75):t>=79&&t<=81?new F(e.Produce.SNAPDRAGON,M.HARVESTABLE,81-t):t>=82&&t<=85?new F(e.Produce.CADANTINE,M.GROWING,t-82):t>=86&&t<=88?new F(e.Produce.CADANTINE,M.HARVESTABLE,88-t):t>=89&&t<=92?new F(e.Produce.LANTADYME,M.GROWING,t-89):t>=93&&t<=95?new F(e.Produce.LANTADYME,M.HARVESTABLE,95-t):t>=96&&t<=99?new F(e.Produce.DWARF_WEED,M.GROWING,t-96):t>=100&&t<=102?new F(e.Produce.DWARF_WEED,M.HARVESTABLE,102-t):t>=103&&t<=106?new F(e.Produce.TORSTOL,M.GROWING,t-103):t>=107&&t<=109?new F(e.Produce.TORSTOL,M.HARVESTABLE,109-t):t>=128&&t<=130?new F(e.Produce.GUAM,M.DISEASED,t-127):t>=131&&t<=133?new F(e.Produce.MARRENTILL,M.DISEASED,t-130):t>=134&&t<=136?new F(e.Produce.TARROMIN,M.DISEASED,t-133):t>=137&&t<=139?new F(e.Produce.HARRALANDER,M.DISEASED,t-136):t>=140&&t<=142?new F(e.Produce.RANARR,M.DISEASED,t-139):t>=143&&t<=145?new F(e.Produce.TOADFLAX,M.DISEASED,t-142):t>=146&&t<=148?new F(e.Produce.IRIT,M.DISEASED,t-145):t>=149&&t<=151?new F(e.Produce.AVANTOE,M.DISEASED,t-148):t>=152&&t<=154?new F(e.Produce.KWUARM,M.DISEASED,t-151):t>=155&&t<=157?new F(e.Produce.SNAPDRAGON,M.DISEASED,t-154):t>=158&&t<=160?new F(e.Produce.CADANTINE,M.DISEASED,t-157):t>=161&&t<=163?new F(e.Produce.LANTADYME,M.DISEASED,t-160):t>=164&&t<=166?new F(e.Produce.DWARF_WEED,M.DISEASED,t-163):t>=167&&t<=169?new F(e.Produce.TORSTOL,M.DISEASED,t-166):t>=170&&t<=172?new F(e.Produce.ANYHERB,M.DEAD,t-169):t>=173&&t<=191?new F(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=195?new F(e.Produce.GOUTWEED,M.GROWING,t-192):t>=196&&t<=197?new F(e.Produce.GOUTWEED,M.HARVESTABLE,197-t):t>=198&&t<=200?new F(e.Produce.GOUTWEED,M.DISEASED,t-197):t>=201&&t<=203?new F(e.Produce.GOUTWEED,M.DEAD,t-200):t>=204&&t<=219||t>=221&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$5_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new F(e.Produce.MARIGOLD,M.GROWING,t-8):12===t?new F(e.Produce.MARIGOLD,M.HARVESTABLE,0):t>=13&&t<=16?new F(e.Produce.ROSEMARY,M.GROWING,t-13):17===t?new F(e.Produce.ROSEMARY,M.HARVESTABLE,0):t>=18&&t<=21?new F(e.Produce.NASTURTIUM,M.GROWING,t-18):22===t?new F(e.Produce.NASTURTIUM,M.HARVESTABLE,0):t>=23&&t<=26?new F(e.Produce.WOAD,M.GROWING,t-23):27===t?new F(e.Produce.WOAD,M.HARVESTABLE,0):t>=28&&t<=31?new F(e.Produce.LIMPWURT,M.GROWING,t-28):32===t?new F(e.Produce.LIMPWURT,M.HARVESTABLE,0):t>=33&&t<=35?new F(e.Produce.SCARECROW,M.GROWING,35-t):36===t?new F(e.Produce.SCARECROW,M.GROWING,0):t>=37&&t<=40?new F(e.Produce.WHITE_LILY,M.GROWING,t-37):41===t?new F(e.Produce.WHITE_LILY,M.HARVESTABLE,0):t>=42&&t<=71?new F(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=75?new F(e.Produce.MARIGOLD,M.GROWING,t-72):76===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=77&&t<=80?new F(e.Produce.ROSEMARY,M.GROWING,t-77):81===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=82&&t<=85?new F(e.Produce.NASTURTIUM,M.GROWING,t-82):86===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=87&&t<=90?new F(e.Produce.WOAD,M.GROWING,t-87):91===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=95?new F(e.Produce.LIMPWURT,M.GROWING,t-92):t>=96&&t<=100?new F(e.Produce.WEEDS,M.GROWING,3):t>=101&&t<=104?new F(e.Produce.WHITE_LILY,M.GROWING,t-101):t>=105&&t<=136?new F(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new F(e.Produce.MARIGOLD,M.DISEASED,t-136):t>=140&&t<=141?new F(e.Produce.WEEDS,M.GROWING,3):t>=142&&t<=144?new F(e.Produce.ROSEMARY,M.DISEASED,t-141):t>=145&&t<=146?new F(e.Produce.WEEDS,M.GROWING,3):t>=147&&t<=149?new F(e.Produce.NASTURTIUM,M.DISEASED,t-146):t>=150&&t<=151?new F(e.Produce.WEEDS,M.GROWING,3):t>=152&&t<=154?new F(e.Produce.WOAD,M.DISEASED,t-151):t>=155&&t<=156?new F(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=159?new F(e.Produce.LIMPWURT,M.DISEASED,t-156):t>=160&&t<=165?new F(e.Produce.WEEDS,M.GROWING,3):t>=166&&t<=168?new F(e.Produce.WHITE_LILY,M.DISEASED,t-165):t>=169&&t<=200?new F(e.Produce.WEEDS,M.GROWING,3):t>=201&&t<=204?new F(e.Produce.MARIGOLD,M.DEAD,t-200):205===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=206&&t<=209?new F(e.Produce.ROSEMARY,M.DEAD,t-205):210===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=211&&t<=214?new F(e.Produce.NASTURTIUM,M.DEAD,t-210):215===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=216&&t<=219?new F(e.Produce.WOAD,M.DEAD,t-215):220===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=224?new F(e.Produce.LIMPWURT,M.DEAD,t-220):t>=225&&t<=229?new F(e.Produce.WEEDS,M.GROWING,3):t>=230&&t<=233?new F(e.Produce.WHITE_LILY,M.DEAD,t-229):t>=234&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$6_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):4===t?new F(e.Produce.WEEDS,M.GROWING,3):t>=5&&t<=9?new F(e.Produce.REDBERRIES,M.GROWING,t-5):t>=10&&t<=14?new F(e.Produce.REDBERRIES,M.HARVESTABLE,t-10):t>=15&&t<=20?new F(e.Produce.CADAVABERRIES,M.GROWING,t-15):t>=21&&t<=25?new F(e.Produce.CADAVABERRIES,M.HARVESTABLE,t-21):t>=26&&t<=32?new F(e.Produce.DWELLBERRIES,M.GROWING,t-26):t>=33&&t<=37?new F(e.Produce.DWELLBERRIES,M.HARVESTABLE,t-33):t>=38&&t<=45?new F(e.Produce.JANGERBERRIES,M.GROWING,t-38):t>=46&&t<=50?new F(e.Produce.JANGERBERRIES,M.HARVESTABLE,t-46):t>=51&&t<=58?new F(e.Produce.WHITEBERRIES,M.GROWING,t-51):t>=59&&t<=63?new F(e.Produce.WHITEBERRIES,M.HARVESTABLE,t-59):t>=64&&t<=69?new F(e.Produce.WEEDS,M.GROWING,3):t>=70&&t<=74?new F(e.Produce.REDBERRIES,M.DISEASED,t-69):t>=75&&t<=79?new F(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=85?new F(e.Produce.CADAVABERRIES,M.DISEASED,t-79):t>=86&&t<=90?new F(e.Produce.WEEDS,M.GROWING,3):t>=91&&t<=97?new F(e.Produce.DWELLBERRIES,M.DISEASED,t-90):t>=98&&t<=102?new F(e.Produce.WEEDS,M.GROWING,3):t>=103&&t<=110?new F(e.Produce.JANGERBERRIES,M.DISEASED,t-102):t>=111&&t<=115?new F(e.Produce.WEEDS,M.GROWING,3):t>=116&&t<=123?new F(e.Produce.WHITEBERRIES,M.DISEASED,t-115):t>=124&&t<=133?new F(e.Produce.WEEDS,M.GROWING,3):t>=134&&t<=138?new F(e.Produce.REDBERRIES,M.DEAD,t-133):t>=139&&t<=143?new F(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=149?new F(e.Produce.CADAVABERRIES,M.DEAD,t-143):t>=150&&t<=154?new F(e.Produce.WEEDS,M.GROWING,3):t>=155&&t<=161?new F(e.Produce.DWELLBERRIES,M.DEAD,t-154):t>=162&&t<=166?new F(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=174?new F(e.Produce.JANGERBERRIES,M.DEAD,t-166):t>=175&&t<=179?new F(e.Produce.WEEDS,M.GROWING,3):t>=180&&t<=187?new F(e.Produce.WHITEBERRIES,M.DEAD,t-179):t>=188&&t<=196?new F(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=204?new F(e.Produce.POISON_IVY,M.GROWING,t-197):t>=205&&t<=209?new F(e.Produce.POISON_IVY,M.HARVESTABLE,t-205):t>=210&&t<=216?new F(e.Produce.POISON_IVY,M.DISEASED,t-209):t>=217&&t<=224?new F(e.Produce.POISON_IVY,M.DEAD,t-216):225===t?new F(e.Produce.POISON_IVY,M.DISEASED,8):t>=226&&t<=249?new F(e.Produce.WEEDS,M.GROWING,3):250===t?new F(e.Produce.REDBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.REDBERRIES].getStages()-1):251===t?new F(e.Produce.CADAVABERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.CADAVABERRIES].getStages()-1):252===t?new F(e.Produce.DWELLBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.DWELLBERRIES].getStages()-1):253===t?new F(e.Produce.JANGERBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.JANGERBERRIES].getStages()-1):254===t?new F(e.Produce.WHITEBERRIES,M.GROWING,e.Produce._$wrappers[e.Produce.WHITEBERRIES].getStages()-1):255===t?new F(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,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=13?new F(e.Produce.APPLE,M.GROWING,t-8):t>=14&&t<=20?new F(e.Produce.APPLE,M.HARVESTABLE,t-14):t>=21&&t<=26?new F(e.Produce.APPLE,M.DISEASED,t-20):t>=27&&t<=32?new F(e.Produce.APPLE,M.DEAD,t-26):33===t?new F(e.Produce.APPLE,M.HARVESTABLE,0):34===t?new F(e.Produce.APPLE,M.GROWING,e.Produce._$wrappers[e.Produce.APPLE].getStages()-1):t>=35&&t<=40?new F(e.Produce.BANANA,M.GROWING,t-35):t>=41&&t<=47?new F(e.Produce.BANANA,M.HARVESTABLE,t-41):t>=48&&t<=53?new F(e.Produce.BANANA,M.DISEASED,t-47):t>=54&&t<=59?new F(e.Produce.BANANA,M.DEAD,t-53):60===t?new F(e.Produce.BANANA,M.HARVESTABLE,0):61===t?new F(e.Produce.BANANA,M.GROWING,e.Produce._$wrappers[e.Produce.BANANA].getStages()-1):t>=62&&t<=71?new F(e.Produce.WEEDS,M.GROWING,3):t>=72&&t<=77?new F(e.Produce.ORANGE,M.GROWING,t-72):t>=78&&t<=84?new F(e.Produce.ORANGE,M.HARVESTABLE,t-78):t>=85&&t<=89?new F(e.Produce.ORANGE,M.DISEASED,t-84):90===t?new F(e.Produce.ORANGE,M.DISEASED,6):t>=91&&t<=96?new F(e.Produce.ORANGE,M.DEAD,t-90):97===t?new F(e.Produce.ORANGE,M.HARVESTABLE,0):98===t?new F(e.Produce.ORANGE,M.GROWING,e.Produce._$wrappers[e.Produce.ORANGE].getStages()-1):t>=99&&t<=104?new F(e.Produce.CURRY,M.GROWING,t-99):t>=105&&t<=111?new F(e.Produce.CURRY,M.HARVESTABLE,t-105):t>=112&&t<=117?new F(e.Produce.CURRY,M.DISEASED,t-111):t>=118&&t<=123?new F(e.Produce.CURRY,M.DEAD,t-117):124===t?new F(e.Produce.CURRY,M.HARVESTABLE,0):125===t?new F(e.Produce.CURRY,M.GROWING,e.Produce._$wrappers[e.Produce.CURRY].getStages()-1):t>=126&&t<=135?new F(e.Produce.WEEDS,M.GROWING,3):t>=136&&t<=141?new F(e.Produce.PINEAPPLE,M.GROWING,t-136):t>=142&&t<=148?new F(e.Produce.PINEAPPLE,M.HARVESTABLE,t-142):t>=149&&t<=154?new F(e.Produce.PINEAPPLE,M.DISEASED,t-148):t>=155&&t<=160?new F(e.Produce.PINEAPPLE,M.DEAD,t-154):161===t?new F(e.Produce.PINEAPPLE,M.HARVESTABLE,0):162===t?new F(e.Produce.PINEAPPLE,M.GROWING,e.Produce._$wrappers[e.Produce.PINEAPPLE].getStages()-1):t>=163&&t<=168?new F(e.Produce.PAPAYA,M.GROWING,t-163):t>=169&&t<=175?new F(e.Produce.PAPAYA,M.HARVESTABLE,t-169):t>=176&&t<=181?new F(e.Produce.PAPAYA,M.DISEASED,t-175):t>=182&&t<=187?new F(e.Produce.PAPAYA,M.DEAD,t-181):188===t?new F(e.Produce.PAPAYA,M.HARVESTABLE,0):189===t?new F(e.Produce.PAPAYA,M.GROWING,e.Produce._$wrappers[e.Produce.PAPAYA].getStages()-1):t>=190&&t<=199?new F(e.Produce.WEEDS,M.GROWING,3):t>=200&&t<=205?new F(e.Produce.PALM,M.GROWING,t-200):t>=206&&t<=212?new F(e.Produce.PALM,M.HARVESTABLE,t-206):t>=213&&t<=218?new F(e.Produce.PALM,M.DISEASED,t-212):t>=219&&t<=224?new F(e.Produce.PALM,M.DEAD,t-218):225===t?new F(e.Produce.PALM,M.HARVESTABLE,0):226===t?new F(e.Produce.PALM,M.GROWING,e.Produce._$wrappers[e.Produce.PALM].getStages()-1):t>=227&&t<=232?new F(e.Produce.DRAGONFRUIT,M.GROWING,t-227):t>=233&&t<=239?new F(e.Produce.DRAGONFRUIT,M.HARVESTABLE,t-233):t>=240&&t<=245?new F(e.Produce.DRAGONFRUIT,M.DISEASED,t-239):t>=246&&t<=251?new F(e.Produce.DRAGONFRUIT,M.DEAD,t-245):252===t?new F(e.Produce.DRAGONFRUIT,M.HARVESTABLE,0):253===t?new F(e.Produce.DRAGONFRUIT,M.GROWING,e.Produce._$wrappers[e.Produce.DRAGONFRUIT].getStages()-1):t>=254&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$8_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.HAMMERSTONE,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.HAMMERSTONE,M.HARVESTABLE,t-8):t>=11&&t<=15?new F(e.Produce.ASGARNIAN,M.GROWING,t-11):t>=16&&t<=18?new F(e.Produce.ASGARNIAN,M.HARVESTABLE,t-16):t>=19&&t<=24?new F(e.Produce.YANILLIAN,M.GROWING,t-19):t>=25&&t<=27?new F(e.Produce.YANILLIAN,M.HARVESTABLE,t-25):t>=28&&t<=34?new F(e.Produce.KRANDORIAN,M.GROWING,t-28):t>=35&&t<=37?new F(e.Produce.KRANDORIAN,M.HARVESTABLE,t-35):t>=38&&t<=45?new F(e.Produce.WILDBLOOD,M.GROWING,t-38):t>=46&&t<=48?new F(e.Produce.WILDBLOOD,M.HARVESTABLE,t-46):t>=49&&t<=52?new F(e.Produce.BARLEY,M.GROWING,t-49):t>=53&&t<=55?new F(e.Produce.BARLEY,M.HARVESTABLE,t-53):t>=56&&t<=60?new F(e.Produce.JUTE,M.GROWING,t-56):t>=61&&t<=63?new F(e.Produce.JUTE,M.HARVESTABLE,t-61):t>=64&&t<=67?new F(e.Produce.WEEDS,M.GROWING,3):t>=68&&t<=71?new F(e.Produce.HAMMERSTONE,M.GROWING,t-68):t>=72&&t<=74?new F(e.Produce.WEEDS,M.GROWING,3):t>=75&&t<=79?new F(e.Produce.ASGARNIAN,M.GROWING,t-75):t>=80&&t<=82?new F(e.Produce.WEEDS,M.GROWING,3):t>=83&&t<=88?new F(e.Produce.YANILLIAN,M.GROWING,t-83):t>=89&&t<=91?new F(e.Produce.WEEDS,M.GROWING,3):t>=92&&t<=98?new F(e.Produce.KRANDORIAN,M.GROWING,t-92):t>=99&&t<=101?new F(e.Produce.WEEDS,M.GROWING,3):t>=102&&t<=109?new F(e.Produce.WILDBLOOD,M.GROWING,t-102):t>=110&&t<=112?new F(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=116?new F(e.Produce.BARLEY,M.GROWING,t-113):t>=117&&t<=119?new F(e.Produce.WEEDS,M.GROWING,3):t>=120&&t<=124?new F(e.Produce.JUTE,M.GROWING,t-120):t>=125&&t<=132?new F(e.Produce.WEEDS,M.GROWING,3):t>=133&&t<=135?new F(e.Produce.HAMMERSTONE,M.DISEASED,t-132):t>=136&&t<=139?new F(e.Produce.WEEDS,M.GROWING,3):t>=140&&t<=143?new F(e.Produce.ASGARNIAN,M.DISEASED,t-139):t>=144&&t<=147?new F(e.Produce.WEEDS,M.GROWING,3):t>=148&&t<=152?new F(e.Produce.YANILLIAN,M.DISEASED,t-147):t>=153&&t<=156?new F(e.Produce.WEEDS,M.GROWING,3):t>=157&&t<=162?new F(e.Produce.KRANDORIAN,M.DISEASED,t-156):t>=163&&t<=166?new F(e.Produce.WEEDS,M.GROWING,3):t>=167&&t<=173?new F(e.Produce.WILDBLOOD,M.DISEASED,t-166):t>=174&&t<=177?new F(e.Produce.WEEDS,M.GROWING,3):t>=178&&t<=180?new F(e.Produce.BARLEY,M.DISEASED,t-177):181===t||t>=183&&t<=184?new F(e.Produce.WEEDS,M.GROWING,3):t>=185&&t<=188?new F(e.Produce.JUTE,M.DISEASED,t-184):t>=189&&t<=196?new F(e.Produce.WEEDS,M.GROWING,3):t>=197&&t<=199?new F(e.Produce.HAMMERSTONE,M.DEAD,t-196):t>=200&&t<=203?new F(e.Produce.WEEDS,M.GROWING,3):t>=204&&t<=207?new F(e.Produce.ASGARNIAN,M.DEAD,t-203):t>=208&&t<=211?new F(e.Produce.WEEDS,M.GROWING,3):t>=212&&t<=216?new F(e.Produce.YANILLIAN,M.DEAD,t-211):t>=217&&t<=220?new F(e.Produce.WEEDS,M.GROWING,3):t>=221&&t<=226?new F(e.Produce.KRANDORIAN,M.DEAD,t-220):t>=227&&t<=230?new F(e.Produce.WEEDS,M.GROWING,3):t>=231&&t<=237?new F(e.Produce.WILDBLOOD,M.DEAD,t-230):t>=238&&t<=241?new F(e.Produce.WEEDS,M.GROWING,3):t>=242&&t<=244?new F(e.Produce.BARLEY,M.DEAD,t-241):t>=245&&t<=248?new F(e.Produce.WEEDS,M.GROWING,3):t>=249&&t<=252?new F(e.Produce.JUTE,M.DEAD,t-248):t>=253&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$9_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=11?new F(e.Produce.OAK,M.GROWING,t-8):12===t?new F(e.Produce.OAK,M.GROWING,e.Produce._$wrappers[e.Produce.OAK].getStages()-1):13===t||14===t?new F(e.Produce.OAK,M.HARVESTABLE,0):t>=15&&t<=20?new F(e.Produce.WILLOW,M.GROWING,t-15):21===t?new F(e.Produce.WILLOW,M.GROWING,e.Produce._$wrappers[e.Produce.WILLOW].getStages()-1):22===t||23===t?new F(e.Produce.WILLOW,M.HARVESTABLE,0):t>=24&&t<=31?new F(e.Produce.MAPLE,M.GROWING,t-24):32===t?new F(e.Produce.MAPLE,M.GROWING,e.Produce._$wrappers[e.Produce.MAPLE].getStages()-1):33===t||34===t?new F(e.Produce.MAPLE,M.HARVESTABLE,0):t>=35&&t<=44?new F(e.Produce.YEW,M.GROWING,t-35):45===t?new F(e.Produce.YEW,M.GROWING,e.Produce._$wrappers[e.Produce.YEW].getStages()-1):46===t||47===t?new F(e.Produce.YEW,M.HARVESTABLE,0):t>=48&&t<=59?new F(e.Produce.MAGIC,M.GROWING,t-48):60===t?new F(e.Produce.MAGIC,M.GROWING,e.Produce._$wrappers[e.Produce.MAGIC].getStages()-1):61===t||62===t?new F(e.Produce.MAGIC,M.HARVESTABLE,0):t>=63&&t<=72?new F(e.Produce.WEEDS,M.GROWING,3):t>=73&&t<=75?new F(e.Produce.OAK,M.DISEASED,t-72):77===t?new F(e.Produce.OAK,M.DISEASED,4):t>=78&&t<=79?new F(e.Produce.WEEDS,M.GROWING,3):t>=80&&t<=84?new F(e.Produce.WILLOW,M.DISEASED,t-79):86===t?new F(e.Produce.WILLOW,M.DISEASED,6):t>=87&&t<=88?new F(e.Produce.WEEDS,M.GROWING,3):t>=89&&t<=95?new F(e.Produce.MAPLE,M.DISEASED,t-88):97===t?new F(e.Produce.MAPLE,M.DISEASED,8):t>=98&&t<=99?new F(e.Produce.WEEDS,M.GROWING,3):t>=100&&t<=108?new F(e.Produce.YEW,M.DISEASED,t-99):110===t?new F(e.Produce.YEW,M.DISEASED,10):t>=111&&t<=112?new F(e.Produce.WEEDS,M.GROWING,3):t>=113&&t<=123?new F(e.Produce.MAGIC,M.DISEASED,t-112):125===t?new F(e.Produce.MAGIC,M.DISEASED,12):t>=126&&t<=136?new F(e.Produce.WEEDS,M.GROWING,3):t>=137&&t<=139?new F(e.Produce.OAK,M.DEAD,t-136):141===t?new F(e.Produce.OAK,M.DEAD,4):t>=142&&t<=143?new F(e.Produce.WEEDS,M.GROWING,3):t>=144&&t<=148?new F(e.Produce.WILLOW,M.DEAD,t-143):150===t?new F(e.Produce.WILLOW,M.DEAD,6):t>=151&&t<=152?new F(e.Produce.WEEDS,M.GROWING,3):t>=153&&t<=159?new F(e.Produce.MAPLE,M.DEAD,t-152):161===t?new F(e.Produce.MAPLE,M.DEAD,8):t>=162&&t<=163?new F(e.Produce.WEEDS,M.GROWING,3):t>=164&&t<=172?new F(e.Produce.YEW,M.DEAD,t-163):174===t?new F(e.Produce.YEW,M.DEAD,10):t>=175&&t<=176?new F(e.Produce.WEEDS,M.GROWING,3):t>=177&&t<=187?new F(e.Produce.MAGIC,M.DEAD,t-176):189===t?new F(e.Produce.MAGIC,M.DEAD,12):t>=190&&t<=191?new F(e.Produce.WEEDS,M.GROWING,3):t>=192&&t<=197?new F(e.Produce.WILLOW,M.HARVESTABLE,0):t>=198&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$10_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new F(e.Produce.TEAK,M.GROWING,t-8):15===t?new F(e.Produce.TEAK,M.GROWING,e.Produce._$wrappers[e.Produce.TEAK].getStages()-1):16===t||17===t?new F(e.Produce.TEAK,M.HARVESTABLE,0):t>=18&&t<=23?new F(e.Produce.TEAK,M.DISEASED,t-17):t>=24&&t<=29?new F(e.Produce.TEAK,M.DEAD,t-23):t>=30&&t<=37?new F(e.Produce.MAHOGANY,M.GROWING,t-30):38===t?new F(e.Produce.MAHOGANY,M.GROWING,e.Produce._$wrappers[e.Produce.MAHOGANY].getStages()-1):39===t||40===t?new F(e.Produce.MAHOGANY,M.HARVESTABLE,0):t>=41&&t<=47?new F(e.Produce.MAHOGANY,M.DISEASED,t-40):t>=48&&t<=54?new F(e.Produce.MAHOGANY,M.DEAD,t-47):t>=55&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$11_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=17?new F(e.Produce.REDWOOD,M.GROWING,t-8):18===t?new F(e.Produce.REDWOOD,M.HARVESTABLE,0):t>=19&&t<=27?new F(e.Produce.REDWOOD,M.DISEASED,t-18):t>=28&&t<=36?new F(e.Produce.REDWOOD,M.DEAD,t-27):37===t?new F(e.Produce.REDWOOD,M.GROWING,e.Produce._$wrappers[e.Produce.REDWOOD].getStages()-1):t>=41&&t<=55?new F(e.Produce.REDWOOD,M.HARVESTABLE,0):null}};e.PatchImplementation$12_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=19?new F(e.Produce.SPIRIT_TREE,M.GROWING,t-8):20===t?new F(e.Produce.SPIRIT_TREE,M.GROWING,12):t>=21&&t<=31?new F(e.Produce.SPIRIT_TREE,M.DISEASED,t-20):t>=32&&t<=43?new F(e.Produce.SPIRIT_TREE,M.DEAD,t-31):44===t?new F(e.Produce.SPIRIT_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.SPIRIT_TREE].getStages()-1):t>=45&&t<=63?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$13_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=16?new F(e.Produce.ATTAS,M.GROWING,t-8):t>=17&&t<=25?new F(e.Produce.IASOR,M.GROWING,t-17):t>=26&&t<=34?new F(e.Produce.KRONOS,M.GROWING,t-26):t>=35&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$14_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=14?new F(e.Produce.CACTUS,M.GROWING,t-8):t>=15&&t<=18?new F(e.Produce.CACTUS,M.HARVESTABLE,t-15):t>=19&&t<=24?new F(e.Produce.CACTUS,M.DISEASED,t-18):t>=25&&t<=30?new F(e.Produce.CACTUS,M.DEAD,t-24):31===t?new F(e.Produce.CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.CACTUS].getStages()-1):t>=32&&t<=38?new F(e.Produce.POTATO_CACTUS,M.GROWING,t-32):t>=39&&t<=45?new F(e.Produce.POTATO_CACTUS,M.HARVESTABLE,t-39):t>=46&&t<=51?new F(e.Produce.POTATO_CACTUS,M.DISEASED,t-45):t>=52&&t<=57?new F(e.Produce.POTATO_CACTUS,M.DEAD,t-51):58===t?new F(e.Produce.POTATO_CACTUS,M.GROWING,e.Produce._$wrappers[e.Produce.POTATO_CACTUS].getStages()-1):t>=59&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$15_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.SEAWEED,M.GROWING,t-4):t>=8&&t<=10?new F(e.Produce.SEAWEED,M.HARVESTABLE,t-8):t>=11&&t<=13?new F(e.Produce.SEAWEED,M.DISEASED,t-10):t>=14&&t<=16?new F(e.Produce.SEAWEED,M.DEAD,t-13):t>=17&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$16_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=11?new F(e.Produce.CALQUAT,M.GROWING,t-4):t>=12&&t<=18?new F(e.Produce.CALQUAT,M.HARVESTABLE,t-12):t>=19&&t<=25?new F(e.Produce.CALQUAT,M.DISEASED,t-18):t>=26&&t<=33?new F(e.Produce.CALQUAT,M.DEAD,t-25):34===t?new F(e.Produce.CALQUAT,M.GROWING,e.Produce._$wrappers[e.Produce.CALQUAT].getStages()-1):t>=35&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$17_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=4&&t<=7?new F(e.Produce.WEEDS,M.GROWING,3):t>=8&&t<=12?new F(e.Produce.CELASTRUS,M.GROWING,t-8):13===t?new F(e.Produce.CELASTRUS,M.GROWING,e.Produce._$wrappers[e.Produce.CELASTRUS].getStages()-1):t>=14&&t<=16?new F(e.Produce.CELASTRUS,M.HARVESTABLE,t-14):17===t?new F(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=18&&t<=22?new F(e.Produce.CELASTRUS,M.DISEASED,t-17):t>=23&&t<=27?new F(e.Produce.CELASTRUS,M.DEAD,t-22):28===t?new F(e.Produce.CELASTRUS,M.HARVESTABLE,0):t>=29&&t<=255?new F(e.Produce.WEEDS,M.GROWING,3):null}};e.PatchImplementation$18_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=1?new F(e.Produce.WEEDS,M.GROWING,3):t>=2&&t<=9?new F(e.Produce.GRAPE,M.GROWING,t-2):10===t?new F(e.Produce.GRAPE,M.GROWING,7):t>=11&&t<=15?new F(e.Produce.GRAPE,M.HARVESTABLE,t-11):null}};e.PatchImplementation$19_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return t>=0&&t<=3?new F(e.Produce.WEEDS,M.GROWING,3-t):t>=8&&t<=13?new F(e.Produce.CRYSTAL_TREE,M.GROWING,t-8):14===t?new F(e.Produce.CRYSTAL_TREE,M.GROWING,e.Produce._$wrappers[e.Produce.CRYSTAL_TREE].getStages()-1):15===t?new F(e.Produce.CRYSTAL_TREE,M.HARVESTABLE,0):null}};e.PatchImplementation$20_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return 0===t?new F(e.Produce.EMPTY_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new F(e.Produce.COMPOST,M.FILLING,t-1):t>=16&&t<=30?new F(e.Produce.COMPOST,M.HARVESTABLE,t-16):31===t||32===t?new F(e.Produce.COMPOST,M.GROWING,t-31):t>=33&&t<=47?new F(e.Produce.SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new F(e.Produce.SUPERCOMPOST,M.HARVESTABLE,t-48):94===t?new F(e.Produce.COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.COMPOST].getStages()-1):95===t||96===t?new F(e.Produce.SUPERCOMPOST,M.GROWING,t-95):126===t?new F(e.Produce.SUPERCOMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.SUPERCOMPOST].getStages()-1):t>=129&&t<=143?new F(e.Produce.ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new F(e.Produce.ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new F(e.Produce.ROTTEN_TOMATO,M.GROWING,t-159):t>=176&&t<=190?new F(e.Produce.ULTRACOMPOST,M.HARVESTABLE,t-176):null}};e.PatchImplementation$21_$WRAPPER=class extends V{constructor(e,t,n,r,a){super(e,t,n,r,a)}forVarbitValue(t){return 0===t?new F(e.Produce.EMPTY_BIG_COMPOST_BIN,M.EMPTY,0):t>=1&&t<=15?new F(e.Produce.BIG_COMPOST,M.FILLING,t-1):t>=16&&t<=30?new F(e.Produce.BIG_COMPOST,M.HARVESTABLE,t-16):t>=33&&t<=47?new F(e.Produce.BIG_SUPERCOMPOST,M.FILLING,t-33):t>=48&&t<=62?new F(e.Produce.BIG_SUPERCOMPOST,M.HARVESTABLE,t-48):t>=63&&t<=77?new F(e.Produce.BIG_COMPOST,M.FILLING,15+t-63):t>=78&&t<=92?new F(e.Produce.BIG_COMPOST,M.HARVESTABLE,15+t-78):93===t?new F(e.Produce.BIG_COMPOST,M.GROWING,e.Produce._$wrappers[e.Produce.BIG_COMPOST].getStages()-1):t>=97&&t<=99?new F(e.Produce.BIG_SUPERCOMPOST,M.GROWING,t-97):t>=100&&t<=114?new F(e.Produce.BIG_SUPERCOMPOST,M.HARVESTABLE,15+t-100):t>=127&&t<=128?new F(e.Produce.BIG_COMPOST,M.GROWING,t-127):t>=129&&t<=143?new F(e.Produce.BIG_ROTTEN_TOMATO,M.FILLING,t-129):t>=144&&t<=158?new F(e.Produce.BIG_ROTTEN_TOMATO,M.HARVESTABLE,t-144):t>=159&&t<=160?new F(e.Produce.BIG_ROTTEN_TOMATO,M.GROWING,t-159):t>=161&&t<=175?new F(e.Produce.BIG_SUPERCOMPOST,M.FILLING,15+t-161):t>=176&&t<=205?new F(e.Produce.BIG_ULTRACOMPOST,M.HARVESTABLE,t-176):t>=207&&t<=221?new F(e.Produce.BIG_ROTTEN_TOMATO,M.HARVESTABLE,15+t-207):222===t?new F(e.Produce.BIG_ROTTEN_TOMATO,M.GROWING,e.Produce._$wrappers[e.Produce.BIG_ROTTEN_TOMATO].getStages()-1):t>=223&&t<=237?new F(e.Produce.BIG_ROTTEN_TOMATO,M.FILLING,15+t-223):null}}}(B||(B={})),B._$wrappers={0:new B.PatchImplementation$0_$WRAPPER(0,"BELLADONNA",b.SPECIAL,"",!1),1:new B.PatchImplementation$1_$WRAPPER(1,"MUSHROOM",b.SPECIAL,"",!1),2:new B.PatchImplementation$2_$WRAPPER(2,"HESPORI",b.SPECIAL,"",!0),3:new B.PatchImplementation$3_$WRAPPER(3,"ALLOTMENT",b.ALLOTMENT,"",!1),4:new B.PatchImplementation$4_$WRAPPER(4,"HERB",b.HERB,"",!1),5:new B.PatchImplementation$5_$WRAPPER(5,"FLOWER",b.FLOWER,"",!1),6:new B.PatchImplementation$6_$WRAPPER(6,"BUSH",b.BUSH,"",!0),7:new B.PatchImplementation$7_$WRAPPER(7,"FRUIT_TREE",b.FRUIT_TREE,"",!0),8:new B.PatchImplementation$8_$WRAPPER(8,"HOPS",b.HOPS,"",!1),9:new B.PatchImplementation$9_$WRAPPER(9,"TREE",b.TREE,"",!0),10:new B.PatchImplementation$10_$WRAPPER(10,"HARDWOOD_TREE",b.TREE,"Hardwood Trees",!0),11:new B.PatchImplementation$11_$WRAPPER(11,"REDWOOD",b.TREE,"Redwood Trees",!0),12:new B.PatchImplementation$12_$WRAPPER(12,"SPIRIT_TREE",b.TREE,"Spirit Trees",!0),13:new B.PatchImplementation$13_$WRAPPER(13,"ANIMA",b.SPECIAL,"",!1),14:new B.PatchImplementation$14_$WRAPPER(14,"CACTUS",b.SPECIAL,"Cactus",!0),15:new B.PatchImplementation$15_$WRAPPER(15,"SEAWEED",b.SPECIAL,"Seaweed",!1),16:new B.PatchImplementation$16_$WRAPPER(16,"CALQUAT",b.FRUIT_TREE,"Calquat",!0),17:new B.PatchImplementation$17_$WRAPPER(17,"CELASTRUS",b.FRUIT_TREE,"Celastrus",!0),18:new B.PatchImplementation$18_$WRAPPER(18,"GRAPES",b.GRAPE,"",!0),19:new B.PatchImplementation$19_$WRAPPER(19,"CRYSTAL_TREE",b.FRUIT_TREE,"Crystal Tree",!0),20:new B.PatchImplementation$20_$WRAPPER(20,"COMPOST",b.SPECIAL,"Compost Bin",!0),21:new B.PatchImplementation$21_$WRAPPER(21,"BIG_COMPOST",b.SPECIAL,"Big Compost Bin",!0)};class y{}y.FARMING_4771=4771,y.FARMING_4772=4772,y.FARMING_4773=4773,y.FARMING_4774=4774,y.FARMING_4775=4775,y.FARMING_7904=7904,y.FARMING_7905=7905,y.FARMING_7906=7906,y.FARMING_7907=7907,y.FARMING_7908=7908,y.FARMING_7909=7909,y.FARMING_7910=7910,y.FARMING_7911=7911,y.FARMING_7912=7912,y.GRAPES_4953=4953,y.GRAPES_4954=4954,y.GRAPES_4955=4955,y.GRAPES_4956=4956,y.GRAPES_4957=4957,y.GRAPES_4958=4958,y.GRAPES_4959=4959,y.GRAPES_4960=4960,y.GRAPES_4961=4961,y.GRAPES_4962=4962,y.GRAPES_4963=4963,y.GRAPES_4964=4964,y.AUTOWEED=5557,y.__class="timetracking.Varbits";class ${constructor(e,t,n){void 0===this.region&&(this.region=null),void 0===this.name&&(this.name=null),void 0===this.varbit&&(this.varbit=0),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}}$.__class="timetracking.FarmingPatch";class Y{constructor(e,t,n){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 r=arguments.length,a=new Array(r>3?r-3:0),o=3;o{let t=[];for(;e-- >0;)t.push(0);return t})(a.length);for(let c=0;c"function"===typeof e?e(x.CONFIG_GROUP,x.BOTANIST):e.apply(x.CONFIG_GROUP,x.BOTANIST))(t),s=e.getRegion().getRegionID()+"."+e.getVarbit(),E=(e=>"function"===typeof e?e(x.CONFIG_GROUP,s):e.apply(x.CONFIG_GROUP,s))(t);if(null==E)return null;let i=0,R=0;{const e=E.split(":");if(2===e.length)try{R=parseInt(e[0]),i=parseInt(e[1])}catch(I){}}if(i<=0)return null;const A=B._$wrappers[e.getImplementation()].forVarbitValue(R);if(null==A)return null;let O=A.getStage(),u=A.getStages(),l=A.getTickRate();a&&A.getProduce()===B.Produce.WEEDS&&(O=0,u=1,l=0),c&&(l=(e=>e<0?Math.ceil(e):Math.floor(e))(l/5));let d=0;if(l>0){const e=J.getTickTime(l,0,n,"function"==typeof(P=t)?P:(e,t)=>(P.apply?P.apply:P).call(P,e,t)),r=J.getTickTime(l,0,i,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),a=(e-r|0)/(60*l)|0;d=J.getTickTime(l,u-1-O,r,(e=>"function"==typeof e?e:(t,n)=>(e.apply?e.apply:e).call(e,t,n))(t)),O+=a,O>=u&&(O=u-1)}var P;return new K(A.getProduce(),A.getCropState(),d,O,u)}static getTickTime(e,t,n,r){const a="function"===typeof(o=r)?o(x.CONFIG_GROUP,x.FARM_TICK_OFFSET_PRECISION):o.apply(x.CONFIG_GROUP,x.FARM_TICK_OFFSET_PRECISION);var o;const c=(e=>"function"===typeof e?e(x.CONFIG_GROUP,x.FARM_TICK_OFFSET):e.apply(x.CONFIG_GROUP,x.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 R=n+i;return R-R%(60*e)+t*e*60-i}}J.__class="timetracking.FarmingTracker";var z,Q,q,X=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"}(z||(z={}));class Z{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 z)isNaN(t)||e.push(parseInt(t,10));return e}().length?null:function(){let e=[];for(let t in z)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)}}z.__class="timetracking.BirdHouse",z._$wrappers={0:new Z(0,"NORMAL","Bird House",U.BIRD_HOUSE),1:new Z(1,"OAK","Oak Bird House",U.OAK_BIRD_HOUSE),2:new Z(2,"WILLOW","Willow Bird House",U.WILLOW_BIRD_HOUSE),3:new Z(3,"TEAK","Teak Bird House",U.TEAK_BIRD_HOUSE),4:new Z(4,"MAPLE","Maple Bird House",U.MAPLE_BIRD_HOUSE),5:new Z(5,"MAHOGANY","Mahogany Bird House",U.MAHOGANY_BIRD_HOUSE),6:new Z(6,"YEW","Yew Bird House",U.YEW_BIRD_HOUSE),7:new Z(7,"MAGIC","Magic Bird House",U.MAGIC_BIRD_HOUSE),8:new Z(8,"REDWOOD","Redwood Bird House",U.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 ee{constructor(e,t){this._$ordinal=e,this._$name=t}static fromVarpValue(e){return e<0||e>3*function(){let e=[];for(let t in z)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._$wrappers={0:new ee(0,"SEEDED"),1:new ee(1,"BUILT"),2:new ee(2,"EMPTY"),3:new ee(3,"UNKNOWN")};class te{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}}te.__class="timetracking.BirdHouseData";class ne{}ne.BIRD_HOUSE_MEADOW_NORTH=1626,ne.BIRD_HOUSE_MEADOW_SOUTH=1627,ne.BIRD_HOUSE_VALLEY_NORTH=1628,ne.BIRD_HOUSE_VALLEY_SOUTH=1629,ne.__class="timetracking.VarPlayer",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"}(q||(q={}));class re{constructor(e,t,n,r){this._$ordinal=e,this._$name=t,void 0===this.__name&&(this.__name=null),void 0===this.varp&&(this.varp=0),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)}}q.__class="timetracking.BirdHouseSpace",q._$wrappers={0:new re(0,"MEADOW_NORTH","Mushroom Meadow (North)",ne.BIRD_HOUSE_MEADOW_NORTH),1:new re(1,"MEADOW_SOUTH","Mushroom Meadow (South)",ne.BIRD_HOUSE_MEADOW_SOUTH),2:new re(2,"VALLEY_NORTH","Verdant Valley (Northeast)",ne.BIRD_HOUSE_VALLEY_NORTH),3:new re(3,"VALLEY_SOUTH","Verdant Valley (Southwest)",ne.BIRD_HOUSE_VALLEY_SOUTH)};class ae{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 ce(e){switch(e){case Q.EMPTY:case Q.UNKNOWN:return"#4D4D4D";case Q.BUILT:return"#E6961E";case Q.SEEDED:default:return"#26A831"}}function se(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 Ee(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 ie(){return{title:"",subtitle:"",icon:0,estimateText:"",tooltipText:"",progress:{minimumValue:0,maximumValue:1,value:0,visible:!0,background:oe("#26A831",-60),foreground:"#26A831"}}}function Re(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 J,r=(new k).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=ie();r.icon=U.WEEDS,r.title=e.getRegion().getName()+(null==e.getName()||""===e.getName()?"":" ("+e.getName()+")");const a=B._$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=B.Produce._$wrappers[o.getProduce()];switch(E.getItemID()<0?(r.icon=U.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 ae).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=q._$wrappers[c];let t=-1,n=0;null!=s&&(t=s.getVarp(),n=s.getTimestamp());const a=z._$wrappers[Z.fromVarpValue(t)],E=ee.fromVarpValue(t),i=ie();switch(i.title=e.getName(),i.progress.maximumValue=3e3,null==a?(i.icon=U.FEATHER,i.progress.visible=!1):(i.icon=a.getItemID(),i.tooltipText=a.getName(),i.progress.visible=!0),i.progress.foreground=ce(E),i.progress.background=oe(ce(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 "+Ee(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}ae.__class="timetracking.BirdHouseTracker";const Ae=Object(X.a)(u.f,u.o,(e,t)=>Re(t,e));n(450);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(l.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)))),ue=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(l.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))),le=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(l.c)(e.icon)})),Object(r.g)("div",{class:"tooltip-tag-text"},Object(r.g)("b",null,e.name)));var de=Object(a.b)((e,t)=>({...t,timeTracking:Ae(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(le)),t.map(ue))}));const Pe=e=>"STANDARD"!==e?" for "+Object(l.h)(e):"";var Ie=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),Pe(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),Pe(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),Pe(t.type)))):Object(r.g)("div",{class:"card"},Object(r.g)("div",{class:"card-body"},"No RuneScape profile selected"))})),Se=n(295),Te=n(296);const we=e=>e.name+" ("+e.region+")";var Ge=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(we);n=n||o[0];const c=t.flatMap(e=>e.data),s=t.find(e=>we(e)===n).data,E=JSON.stringify(s);return Object(r.g)(r.b,null,Object(r.g)("div",{class:"mb-2"},Object(r.g)(Se.a,{prefix:"",value:n,choices:o,onClick:a})),Object(r.g)(Te.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"))))})),Ne=n(129),ge=n.n(Ne);n(451);const De=e=>"https://services.runescape.com/m=itemdb_oldschool/obj_big.gif?id="+e,We=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:De(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(l.f)(e.price*e.quantity))," gp (",Object(r.g)("span",null,Object(l.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"},ge()(e.date)))));var t};const _e=[{tag:"home",label:"Home",icon:"fa-fw fas fa-home",component:S,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:G.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(We)))})),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:de,showAccounts:!0,data:e=>{let{rawTimeTracking:t}=e;return t}},{tag:"tags",label:"Tags",icon:"fa-fw fas fa-code",component:H,data:e=>{let{rawTags:t}=e;return t}},{tag:"tile-markers",label:"Tile markers",icon:"fa-fw fas fa-tree",component:Ge,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:Ie,showAccounts:!0}],pe=(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),he=(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(l.h)(a)):"");var a};t.default=Object(a.b)((e,t)=>({...t,loggedIn:Object(A.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:Ae(e),rawTiles:Object(u.r)(e)}),e=>Object(c.b)({logout:A.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)(O,{to:"/"});const A=_e.find(e=>e.tag===t),u=_e.filter(e=>!e.bottom),l=_e.filter(e=>e.bottom);if(!A)return Object(r.g)(m.a,null);const d=(e=>e.component)(A);return Object(r.g)(s.a,null,Object(r.g)(R.a,{title:`${A.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=>pe(A,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)})(A,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")),A.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=>he(e,E.selectedAccount,a)),l.map(e=>pe(A,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.e46392e3.chunk.js.map \ No newline at end of file diff --git a/static/js/8.c51bfff0.chunk.js.map b/static/js/8.e46392e3.chunk.js.map similarity index 99% rename from static/js/8.c51bfff0.chunk.js.map rename to static/js/8.e46392e3.chunk.js.map index 99c2d6b0f1..90b51160a1 100644 --- a/static/js/8.c51bfff0.chunk.js.map +++ b/static/js/8.e46392e3.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/Autoweed.js","modules/timetracking/ItemID.js","modules/timetracking/PatchState.js","modules/timetracking/NullItemID.js","modules/timetracking/Varbits.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/BirdHouseSpace.js","modules/timetracking/BirdHouseData.js","modules/timetracking/VarPlayer.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","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","healthCheckRequired","getTab","Produce_$WRAPPER","patchImplementation","tickrate","stages","regrowTickrate","harvestStages","Error","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","BIG_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_BIG_COMPOST_BIN","BIG_SUPERCOMPOST","BIG_ROTTEN_TOMATO","BIG_ULTRACOMPOST","Varbits","FARMING_4771","FARMING_4772","FARMING_4773","FARMING_4774","FARMING_4775","FARMING_7904","FARMING_7905","FARMING_7906","FARMING_7907","FARMING_7908","FARMING_7909","FARMING_7910","FARMING_7911","FARMING_7912","GRAPES_4953","GRAPES_4954","GRAPES_4955","GRAPES_4956","GRAPES_4957","GRAPES_4958","GRAPES_4959","GRAPES_4960","GRAPES_4961","GRAPES_4962","GRAPES_4963","GRAPES_4964","AUTOWEED","FarmingPatch","varbit","implementation","getVarbit","getImplementation","getRegion","setRegion","FarmingRegion","regionID","definite","patches","varbits","_len","arguments","Array","_key","s","a","push","p","getRegionID","getPatches","getVarbits","FarmingWorld","Map","tabs","farmingGuildRegion","add","r","set","er","has","get","getFarmingGuildRegion","getRegions","getTabs","TimeTrackingConfig","CONFIG_GROUP","FARM_TICK_OFFSET","FARM_TICK_OFFSET_PRECISION","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","BirdHouseSpace","BirdHouse_$WRAPPER","varp","result","BirdHouseState_$WRAPPER","UNKNOWN","SEEDED","BUILT","BirdHouseData","space","timestamp","getSpace","getVarp","getTimestamp","VarPlayer","BIRD_HOUSE_MEADOW_NORTH","BIRD_HOUSE_MEADOW_SOUTH","BIRD_HOUSE_VALLEY_NORTH","BIRD_HOUSE_VALLEY_SOUTH","BirdHouseSpace_$WRAPPER","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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B0G,UACpBtG,EAAO8B,QACP,GACA,EACA,EACA,GAEFrF,EAAG,IAAIkM,EACL,EACA,SACA,SACA/I,EAAoB0G,UACpBtG,EAAO+B,OACP,GACA,EACA,EACA,GAEFrF,EAAG,IAAIiM,EACL,EACA,YACA,YACA/I,EAAoB0G,UACpBtG,EAAOmD,UACP,GACA,EACA,EACA,GAEFxG,EAAG,IAAIgM,EACL,EACA,aACA,aACA/I,EAAoB0G,UACpBtG,EAAO4C,WACP,GACA,EACA,EACA,GAEFhG,EAAG,IAAI+L,EACL,EACA,aACA,aACA/I,EAAoB0G,UACpBtG,EAAOkD,WACP,GACA,EACA,EACA,GAEFrG,EAAG,IAAI8L,EACL,EACA,cACA,cACA/I,EAAoB0G,UACpBtG,EAAOG,YACP,GACA,EACA,EACA,GAEF6G,GAAI,IAAI2B,EACN,GACA,WACA,WACA/I,EAAoByG,OACpBrG,EAAO2D,UACP,EACA,GAEFsD,GAAI,IAAI0B,EACN,GACA,WACA,WACA/I,EAAoByG,OACpBrG,EAAO6D,SACP,EACA,GAEFsF,GAAI,IAAIR,EACN,GACA,aACA,aACA/I,EAAoByG,OACpBrG,EAAO4D,YACP,EACA,GAEFwF,GAAI,IAAIT,EACN,GACA,OACA,OACA/I,EAAoByG,OACpBrG,EAAOwB,UACP,EACA,GAEF6H,GAAI,IAAIV,EACN,GACA,WACA,WACA/I,EAAoByG,OACpBrG,EAAOE,cACP,EACA,GAEFoJ,GAAI,IAAIX,EACN,GACA,aACA,aACA/I,EAAoByG,OACpBrG,EAAOyE,WACP,EACA,GAEF8E,GAAI,IAAIZ,EACN,GACA,aACA,WACA/I,EAAoB2G,KACpBvG,EAAO0B,WACP,GACA,EACA,GACA,GAEF8H,GAAI,IAAIb,EACN,GACA,gBACA,cACA/I,EAAoB2G,KACpBvG,EAAOiB,eACP,GACA,EACA,GACA,GAEFwI,GAAI,IAAId,EACN,GACA,eACA,aACA/I,EAAoB2G,KACpBvG,EAAOmC,aACP,GACA,EACA,GACA,GAEFuH,GAAI,IAAIf,EACN,GACA,gBACA,cACA/I,EAAoB2G,KACpBvG,EAAOK,cACP,GACA,EACA,GACA,GAEFsJ,GAAI,IAAIhB,EACN,GACA,eACA,aACA/I,EAAoB2G,KACpBvG,EAAOI,cACP,GACA,EACA,GACA,GAEFwJ,GAAI,IAAIjB,EACN,GACA,aACA,aACA/I,EAAoB2G,KACpBvG,EAAO+D,mBACP,GACA,EACA,GACA,GAEF8F,GAAI,IAAIlB,EACN,GACA,SACA,SACA/I,EAAoB6G,KACpBzG,EAAO0D,OACP,GACA,EACA,EACA,GAEFoG,GAAI,IAAInB,EACN,GACA,cACA,cACA/I,EAAoB6G,KACpBzG,EAAOoD,iBACP,GACA,EACA,EACA,GAEF2G,GAAI,IAAIpB,EACN,GACA,YACA,YACA/I,EAAoB6G,KACpBzG,EAAOqD,eACP,GACA,EACA,EACA,GAEF2G,GAAI,IAAIrB,EACN,GACA,OACA,OACA/I,EAAoB6G,KACpBzG,EAAO6C,WACP,GACA,EACA,EACA,GAEFoH,GAAI,IAAItB,EACN,GACA,YACA,YACA/I,EAAoB6G,KACpBzG,EAAOsD,eACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAIvB,EACN,GACA,aACA,aACA/I,EAAoB6G,KACpBzG,EAAOuD,gBACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAIxB,EACN,GACA,YACA,YACA/I,EAAoB6G,KACpBzG,EAAOwD,eACP,GACA,EACA,EACA,GAEF4G,GAAI,IAAIzB,EACN,GACA,OACA,OACA/I,EAAoBqG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEF+J,GAAI,IAAI1B,EACN,GACA,aACA,aACA/I,EAAoBqG,KACpBjG,EAAOO,WACP,GACA,EACA,EACA,GAEF+J,GAAI,IAAI3B,EACN,GACA,WACA,WACA/I,EAAoBqG,KACpBjG,EAAOQ,SACP,GACA,EACA,EACA,GAEF+J,GAAI,IAAI5B,EACN,GACA,cACA,cACA/I,EAAoBqG,KACpBjG,EAAOS,YACP,GACA,EACA,EACA,GAEF+J,GAAI,IAAI7B,EACN,GACA,SACA,SACA/I,EAAoBqG,KACpBjG,EAAOU,YACP,GACA,EACA,EACA,GAEF+J,GAAI,IAAI9B,EACN,GACA,WACA,WACA/I,EAAoBqG,KACpBjG,EAAOwC,SACP,GACA,EACA,EACA,GAEFkI,GAAI,IAAI/B,EACN,GACA,OACA,OACA/I,EAAoBqG,KACpBjG,EAAOW,UACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAIhC,EACN,GACA,UACA,UACA/I,EAAoBqG,KACpBjG,EAAOY,QACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAIjC,EACN,GACA,SACA,SACA/I,EAAoBqG,KACpBjG,EAAOa,OACP,GACA,EACA,EACA,GAEFgK,GAAI,IAAIlC,EACN,GACA,aACA,aACA/I,EAAoBqG,KACpBjG,EAAOyC,WACP,GACA,EACA,EACA,GAEFqI,GAAI,IAAInC,EACN,GACA,YACA,YACA/I,EAAoBqG,KACpBjG,EAAOc,UACP,GACA,EACA,EACA,GAEFiK,GAAI,IAAIpC,EACN,GACA,YACA,YACA/I,EAAoBqG,KACpBjG,EAAOsC,UACP,GACA,EACA,EACA,GAEF0I,GAAI,IAAIrC,EACN,GACA,aACA,aACA/I,EAAoBqG,KACpBjG,EAAOe,WACP,GACA,EACA,EACA,GAEFkK,GAAI,IAAItC,EACN,GACA,UACA,UACA/I,EAAoBqG,KACpBjG,EAAOgB,QACP,GACA,EACA,EACA,GAEFkK,GAAI,IAAIvC,EACN,GACA,WACA,WACA/I,EAAoBqG,KACpBjG,EAAO2C,SACP,GACA,EACA,EACA,GAEFwI,GAAI,IAAIxC,EACN,GACA,UACA,WACA/I,EAAoBqG,KACpBjG,EAAOM,UACP,GACA,EACA,EACA,GAEF8K,GAAI,IAAIzC,EACN,GACA,MACA,MACA/I,EAAoBsG,KACpBlG,EAAOuB,SACP,GACA,GAEF8J,GAAI,IAAI1C,EACN,GACA,SACA,SACA/I,EAAoBsG,KACpBlG,EAAOsB,YACP,GACA,GAEFgK,GAAI,IAAI3C,EACN,GACA,QACA,QACA/I,EAAoBsG,KACpBlG,EAAOqB,WACP,GACA,GAEFkK,GAAI,IAAI5C,EACN,GACA,MACA,MACA/I,EAAoBsG,KACpBlG,EAAOoB,SACP,GACA,IAEFoK,GAAI,IAAI7C,EACN,GACA,QACA,QACA/I,EAAoBsG,KACpBlG,EAAOmB,WACP,GACA,IAEFsK,GAAI,IAAI9C,EACN,GACA,QACA,QACA/I,EAAoBuG,WACpBnG,EAAO2B,cACP,IACA,EACA,GACA,GAEF+J,GAAI,IAAI/C,EACN,GACA,SACA,SACA/I,EAAoBuG,WACpBnG,EAAO6B,OACP,IACA,EACA,GACA,GAEF8J,GAAI,IAAIhD,EACN,GACA,SACA,SACA/I,EAAoBuG,WACpBnG,EAAOiC,OACP,IACA,EACA,GACA,GAEF2J,GAAI,IAAIjD,EACN,GACA,QACA,QACA/I,EAAoBuG,WACpBnG,EAAO8C,WACP,IACA,EACA,GACA,GAEF+I,GAAI,IAAIlD,EACN,GACA,YACA,YACA/I,EAAoBuG,WACpBnG,EAAOkC,UACP,IACA,EACA,GACA,GAEF4J,GAAI,IAAInD,EACN,GACA,SACA,SACA/I,EAAoBuG,WACpBnG,EAAO+C,aACP,IACA,EACA,GACA,GAEFgJ,GAAI,IAAIpD,EACN,GACA,OACA,OACA/I,EAAoBuG,WACpBnG,EAAOgD,QACP,IACA,EACA,GACA,GAEFgJ,GAAI,IAAIrD,EACN,GACA,cACA,cACA/I,EAAoBuG,WACpBnG,EAAOwE,YACP,IACA,EACA,GACA,GAEFyH,GAAI,IAAItD,EACN,GACA,SACA,SACA/I,EAAoBsM,OACpBlM,EAAO8D,aACP,GACA,EACA,GACA,GAEFqI,GAAI,IAAIxD,EACN,GACA,gBACA,gBACA/I,EAAoBsM,OACpBlM,EAAO0C,cACP,GACA,EACA,EACA,GAEF0J,GAAI,IAAIzD,EACN,GACA,OACA,OACA/I,EAAoByM,cACpBrM,EAAOoE,UACP,IACA,GAEFkI,GAAI,IAAI3D,EACN,GACA,WACA,WACA/I,EAAoByM,cACpBrM,EAAOmE,cACP,IACA,GAEFoI,GAAI,IAAI5D,EACN,GACA,QACA,QACA/I,EAAoB4M,MACpBtE,EAAWG,WACX,IACA,GAEFoE,GAAI,IAAI9D,EACN,GACA,QACA,QACA/I,EAAoB4M,MACpBtE,EAAWE,WACX,IACA,GAEFsE,GAAI,IAAI/D,EACN,GACA,SACA,SACA/I,EAAoB4M,MACpBtE,EAAWC,WACX,IACA,GAEFwE,GAAI,IAAIhE,EACN,GACA,UACA,UACA/I,EAAoBgN,QACpB5M,EAAOsE,cACP,GACA,EACA,EACA,GAEFuI,GAAI,IAAIlE,EACN,GACA,QACA,QACA/I,EAAoBoC,OACpBhC,EAAOgC,OACP,EACA,EACA,EACA,GAEF8K,GAAI,IAAInE,EACN,GACA,WACA,WACA/I,EAAoB6D,SACpBzD,EAAOyD,SACP,GACA,EACA,EACA,GAEFsJ,GAAI,IAAIpE,EACN,GACA,aACA,aACA/I,EAAoBoN,WACpBhN,EAAOoC,gBACP,GACA,GAEF6K,GAAI,IAAItE,EACN,GACA,UACA,UACA/I,EAAoBsN,QACpBlN,EAAOiD,cACP,IACA,EACA,EACA,GAEFkK,GAAI,IAAIxE,EACN,GACA,cACA,cACA/I,EAAoBsE,YACpBlE,EAAOkE,YACP,IACA,IAEFkJ,GAAI,IAAIzE,EACN,GACA,YACA,YACA/I,EAAoByN,UACpBrN,EAAOkB,YACP,IACA,EACA,EACA,GAEFoM,GAAI,IAAI3E,EACN,GACA,UACA,UACA/I,EAAoB2N,QACpBvN,EAAOqE,aACP,IACA,IAEFmJ,GAAI,IAAI7E,EACN,GACA,UACA,UACA/I,EAAoB6N,QACpBvF,EAAWI,WACX,IACA,EACA,EACA,GAEFoF,GAAI,IAAI/E,EACN,GACA,eACA,eACA/I,EAAoB+N,aACpB3N,EAAO0E,eACP,GACA,GAEFkJ,GAAI,IAAIjF,EACN,GACA,oBACA,cACA/I,EAAoB0F,QACpBtF,EAAOqF,YACP,EACA,EACA,EACA,GAEFwI,GAAI,IAAIlF,EACN,GACA,UACA,UACA/I,EAAoB0F,QACpBtF,EAAOsF,QACP,GACA,EACA,EACA,IAEFwI,GAAI,IAAInF,EACN,GACA,eACA,eACA/I,EAAoB0F,QACpBtF,EAAOuF,aACP,GACA,EACA,EACA,IAEFwI,GAAI,IAAIpF,EACN,GACA,eACA,eACA/I,EAAoB0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","file":"static/js/8.c51bfff0.chunk.js","sourcesContent":["import { h } from 'preact'\n\nconst Footer = () => (\n
\n
\n \n
\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 \n
\n \n
\n \n \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 {choices.map(choice => (\n \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