Updates
How releases are published, how the proxy installs a newer one by itself at start and stop, what it refuses, and how to turn it off.
The proxy keeps its own jar up to date. This is separate from ExyliaLib's plugin updater on the backends: a proxy has no ExyliaLib.
When it checks
| Moment | How |
|---|---|
| Proxy start | On a background task, so startup does not wait. |
| Proxy stop | Inline, after the bridge has closed, so a release published while the proxy ran is installed before it exits. |
It does nothing when updates.enabled=false in config.properties, or when the plugin is not running
from a jar file.
What it does
Asks which release is the latest
A HEAD request to releases/latest/download/ExyliaProxyUtils.jar on GitHub. The redirect names
the newest version; nothing is downloaded yet.
Compares versions
Nothing happens unless the latest is newer than the running version, compared number by number. A jar already replaced by an earlier check is not downloaded again.
Refuses a new major
A release with a different major number may change the configuration or the protocol. It is only
logged: ExyliaProxyUtils 3.0.0 is a new major version; install it by hand when ready.
Downloads and checks
The jar is downloaded into a temporary file next to the running one and opened: it must be
ExyliaProxyUtils (by the id in velocity-plugin.json) at exactly that version.
Replaces the running jar
The download is moved over the jar the proxy loaded, keeping its file name. The proxy keeps running the classes it already opened; the new version loads on the next restart.
ExyliaProxyUtils 2.0.3 installed (running 2.0.2); it loads on the next restart.Any failure — GitHub unreachable, a bad download, a file that cannot be replaced — is logged once and
left alone: Could not check for ExyliaProxyUtils updates: <reason>.
The new release is written over the running file, under its old name. A jar installed as
ExyliaProxyUtils-2.0.2.jar keeps that name after it becomes 2.0.3. Install it as
ExyliaProxyUtils.jar and the name never lies.
The updater only ever looks at the latest release. When that is a new major, a proxy on the previous major gets the "install it by hand" line and no longer receives that major's own patch releases.
How releases are made
Every push to the repository's main branch whose version has no release yet builds the plugin with
its tests and publishes a GitHub release v<version> with two assets, ExyliaProxyUtils-<version>.jar
and ExyliaProxyUtils.jar. The fixed-name asset is what the updater follows.
Turning it off
updates.enabled=falseAnything other than false (any case) leaves it on. Restart the proxy for the change to apply. To
update by hand, replace the jar and restart; config.properties is never touched.
Something missing on this page? Tell us on Discord