SnLib v1.34.3
Changes
- The shared releases feed is read whole. A GitHub releases page holds at most 100 releases of the whole repo, and the shared-repo update check only ever read page 1. Once a shared repo passes 100 releases, every plugin whose newest release has been pushed out of that window finds no tag of its own and warns
no release tag matching prefix '<id>-'. OnSn-Releases(203 releases) that hid 16 plugins, and the set drifted with every release anyone published - which is why the failures looked random. The feed is now walked page by page to the end of the repo (cap: the newest 1000 releases), so a plugin is found wherever its release sits. - One request per page for the whole server. Paging multiplies requests, and GitHub allows 60 unauthenticated requests per hour per IP. A page is now fetched once and shared by every consumer of that repo (parsed pages cached 5 minutes; concurrent readers wait on the single in-flight request instead of firing their own). A check cycle costs one request per page however many plugins are installed: a server running 30 consumers went from 30 requests and ~18 MB per cycle to 3 requests and ~75 KB. Failures are never cached, and the feed owns one static HTTP client instead of one per consumer.
- A prefix that is absent from the whole repo still warns exactly as before; a walk that stopped at the page ceiling instead says how far it got, so the two are never confused.
No public API surface was added (the new reader is internal), so SnApi.LEVEL stays 21: consumers pick this up by replacing the jar, with no recompile.
Installation
Download the JAR below and place it in your plugins folder.