Skip to content

Releases: ahmadmsaleem/skNetwork

skNetwork v1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 19:28

skNetwork 1.0.0 turns the network into something scripts can act on directly: players are a real type, three events tell you when anyone moves, and the proxy's own server list ping is yours to set.

What's new

  • networkplayer is a new type. so now you could write a name, a UUID, or a real player, and all network players hands back players rather than text.
  • Three new events, firing on every server at once: on network player join, on network player quit, and on network server switch, with event-networkplayer, the previous network server and the new network server. Somebody changing server is one switch, not a quit and a join.
  • send network title, play network sound and set network tab list header/footer reach a player wherever they are, in both the targeted and the across the network forms.
  • Player details from any server: ping of, ip of, display name of, locale of and playtime of. Only what changed is sent, so an idle player costs one packet a minute.
  • Script-controlled server list ping. network motd, network max players and network player count are settable, answered by the proxy without asking any server, and they survive a proxy restart.
  • /sknetproxy lists every backend: address, Skript version, how far through the log it is, and a permanent warning on any server whose use player UUIDs in variable names disagrees with the proxy.
  • /sknetproxy log, compact and backup for the storage file, and /sknetproxy reload to re-read config.yml without a restart. It applies groups, no-persist, debug, players, remote-commands and the script size limits, and tells you what needs a restart.
  • Fixed: a snapshot chunk could overrun the frame cap, which left a backend reconnecting into the same unreadable snapshot for ever.
  • Fixed: no-persist values outlived a proxy restart on the backends, so the proxy and the servers disagreed with nothing to put them right.
  • Fixed: the atomic change failed and was answered were both true in a trigger that never waited.

This release changes the wire protocol, 13 to 14. Update the proxy and every game server together. A half that is behind is refused with a message on both consoles saying which side to update, so nothing is lost by getting the order wrong.

all network players, network players on ... and network server of ... now work in players rather than text. They still print as names, so send "%all network players%" is unchanged, but set {?online::*} to all network players now stores players. Use names of network players (all network players) for the old behaviour. See Upgrading from 0.3.x.

Install

The jar is attached below. It goes in plugins/ on the proxy and on every game server: one jar, it works out which half to be. Restart the network, then check /sknetproxy on the proxy and /sknet on a backend both say READY.

Every server has to run the same build. A half that is behind is refused when it connects, with a message on both consoles saying which side to update.

Read more about the setup here

Requirements

Needs
Java 25, on the proxy and on every backend
Minecraft 1.21 to 26.2
Skript 2.16.0+
Proxy BungeeCord or Velocity

Setup, guides and the full syntax reference are in the wiki.

Full Changelog: v0.3.1...v1.0.0

skNetwork v0.3.1

Choose a tag to compare

@github-actions github-actions released this 06 Sep 20:29

What's new

  • New proxy option, no-persist. It takes variable names, * wildcards included, spelled the way /sknetproxy dump takes them:
no-persist:
  - "session::*"
  - "apikey"

Install

The jar is attached below. It goes in plugins/ on the proxy and on every game server: one jar, it works out which half to be. Restart the network, then check /sknetproxy on the proxy and /sknet on a backend both say READY.

Every server has to run the same build. A half that is behind is refused when it connects, with a message on both consoles saying which side to update.

Read more about the setup here

Requirements

Needs
Java 25, on the proxy and on every backend
Minecraft 1.21 to 26.2
Skript 2.16.0+
Proxy BungeeCord or Velocity

Setup, guides and the full syntax reference are in the wiki.

Full Changelog: v0.3.0...v0.3.1

skNetwork v0.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 17:03

What's new

  • /sknet is rewrote with MiniMessage. Hover any row for a line explaining what it
    means, click either command at the bottom to type it
  • New update check. skNetwork asks GitHub once at startup and reports a newer release on the console, and to anyone with sknetwork.updates.view when they join.

Install

The jar is attached below. It goes in plugins/ on the proxy and on every game server: one jar, it works out which half to be. Restart the network, then check /sknetproxy on the proxy and /sknet on a backend both say READY.

Every server has to run the same build. A half that is behind is refused when it connects, with a message on both consoles saying which side to update.

Read more about the setup here

Requirements

Needs
Java 25, on the proxy and on every backend
Minecraft 1.21 to 26.2
Skript 2.16.0+
Proxy BungeeCord or Velocity

Setup, guides and the full syntax reference are in the
wiki.

Full Changelog: v0.2.0...v0.3.0

skNetwork v0.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 12:49

Servers can now see and reach each other, not just share variables. Wire protocol 8.

  • network servers, network players, and network server of %player% who is online and where, read from this server's own copy.
  • motd of, version of, max player count of and whitelisted players of network server %string%. Each server reports its own.
  • network server %string% is online.
  • send network message and send network action bar to players anywhere, or broadcast ... across the network. Colours, hover and click survive the trip.
  • connect network player %string% to server %string%.
  • execute console command %string% on network server %string%. Off unless remote-commands is turned on in the proxy config.
  • on network variable change [of "pattern"], with the changed variable, the new value and the old value.

New proxy config keys: players (on) and remote-commands (off).

Protocol 8, so update the proxy and every backend together.

Setup and the full syntax reference are in the wiki.

Full Changelog: v0.1.0...v0.2.0

skNetwork v0.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 07:29

0.1.0

First release. Wire protocol 6.

  • Network variables: any {?variable} is shared across every server. Reads come
    from local memory, so only writes cross the wire.
  • Atomic changes worked out on the proxy: add, remove, set if not set,
    set if it is, and remove ... without going below. Two servers racing the
    same key cannot lose an update.
  • and wait hands back the new value, or why it was refused.
  • network server name, network is synced, on network sync,
    on network disconnect.
  • Script sharing from the proxy, with per-server groups.
  • Append-only change log that compacts itself, so a proxy restart resumes where
    it left off. Reconnects replay only what was missed.
  • One jar for BungeeCord, Velocity and every backend.
  • /sknet and /sknetproxy.

Requires Java 25 on the proxy and on every backend.

Setup and the full syntax reference are in the wiki.
Full Changelog: https://github.com/ahmadmsaleem/skNetwork/commits/v0.1.0