Skip to content

Releases: universaladmin-mc/UniversalAdmin

UniversalAdmin 1.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:24
06fc3c5

The second half of the menu overhaul, and a look over everything else:
compatibility, migrations and how easy UniversalAdmin is to use.

Added

  • Server, worlds and performance as hubs, like the player profile: what
    you see in a light blue row, what you do in rows behind coloured labels -
    green harmless, orange with an effect on players, red dangerous.
  • Live values: the main menu, server, worlds, a world and performance
    update once a second while open.
  • Traffic lights on the performance page: TPS, MSPT and memory in green,
    yellow or red, measured against your alert thresholds.
  • A world's settings show their value: time (as a clock), weather,
    difficulty, spawn and world border show what they are now and change on a
    click.
  • The audit log reads in the server's language: "Ban - Admin banned
    Notch for 7d: Griefing" instead of core:moderation.ban and an English
    sentence. See ADR 0028.
  • Minecraft's names in your game's language: game modes, difficulties,
    effects and entities ("Überlebensmodus", "Eile") instead of SURVIVAL,
    SPEED.
  • New options reach your config.yml: an update writes options it brings
    into your existing file with their explanation; the console lists them.
  • A hint for staff on their first join: /admin opens the menu - and if
    your game runs in a language UniversalAdmin ships that the server does not
    use, one click switches it.

Fixed

  • Heal, feed, extinguish, clear effects and the flight, glow, gravity and
    collision switches wrote their raw input into the audit log
    (PlayerTargetInput[targetId=...]).
  • The used deprecated getBedSpawnLocation and effect getName are
    replaced.

For extension developers

  • API 1.8: GuiRows, GuiButton#display, GuiPage#live(),
    ActionDefinition.Builder#auditArgs, Migration#namespace() (your own
    numbering in ua_extension_migrations), MessageService#get(locale, ...).
    Everything has a default; extensions built against API 1.7 keep working.
  • ./gradlew build checks the jar against the Paper API of 1.21.7, 1.21.11
    and the version compiled against (binaryCompatibility).

What's Changed

Full Changelog: v1.8.0...v1.9.0

UniversalAdmin 1.8.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 17:13
f8947da

The menus got a new look: a frame in every module's colour, glass panes
that always mean the same, and hubs instead of long lists of buttons. See
ADR 0027.

Added

  • Main menu as a dashboard: players online, open reports, TPS,
    maintenance and the network at a glance, the modules in three groups,
    and a "My status" row to switch vanish, staff mode, godmode, staff chat
    and your nick on and off.
  • Status line: staff see what they have switched on in the action bar,
    e.g. Vanish · Godmode · Nick Notch, while something is on. In staff
    mode the target display keeps the action bar. Off with
    gui.status-line: false.
  • A player's profile is the place for everything about them: who,
    where, playtime and condition on the left, then rows to moderate (warn,
    temp mute, kick, temp ban, freeze/unfreeze right there), view (inventory,
    ender chest, effects, history, reports, notes, alts), help (teleport,
    bring, heal, feed, flight, all actions) and more. The previous and next
    online player are one click away, the UUID can be copied.
  • Player lists as tabs: the Players button opens the online players;
    Online, Offline and Recently seen switch in the header.
  • A freeze is visible: the frozen player sees a title until they are
    free (moderation.freeze.show-title), and staff who may freeze see a
    marker above their head with who froze them and for how long
    (moderation.freeze.staff-marker).
  • Settings with readable names and descriptions in English and German;
    the config path is still shown below.

Changed

  • Every page has the same frame: the header in the module's colour with
    back, main menu, the page's icon, refresh and close; tools and paging at
    the bottom; empty slots are black. Glass colours mean the same on every
    page - green on/confirm, red off/danger, orange warning, white "nothing
    here".
  • Switching pages no longer closes and reopens the inventory - no flicker,
    the mouse stays where it is.
  • Confirmations have a frame in the colour of what is at stake: red for a
    ban, orange for a kick or mute.

For extension developers

  • API 1.7: GuiGlass, MenuGroup, GuiWindow, GuiStyle,
    StatusToggle/StatusToggleRegistry/ActionStatusToggle,
    PlayerMenuGroup, PlayerMenuEntry#group(), GuiClickContext#page(),
    ModuleDescriptor#menuGroup/#color. Everything has a default -
    extensions built against API 1.6 keep working unchanged.

What's Changed

Full Changelog: v1.7.2...v1.8.0

UniversalAdmin 1.7.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 13:09
a677cdc

Fixed

  • Godmode showed as "on" after every join on Paper 26, and the first
    click only switched it off. 1.7.1 read the player's invulnerability, which
    Paper also reports for the few seconds of protection after joining or a
    hit. Godmode is now kept as a mark in the player's data. A player with
    the godmode permission who still has godmode from an older version is
    recognised a few seconds after joining, once that protection is over.

What's Changed

Full Changelog: v1.7.1...v1.7.2

UniversalAdmin 1.7.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 12:35
b8c0da5

Fixed

  • Corrected texts now reach every server. lang/<locale>.yml holds only
    your own texts; every other text comes from the plugin and follows its
    updates. Up to 1.7.0 the whole built-in file was copied there once and hid
    every later correction - such a copy is cleaned once (your changes stay,
    the original is kept as lang/<locale>.yml.before-1.7.1). Every built-in
    text is in lang/reference/ to copy from. See
    ADR 0026.
  • Godmode after a restart: a player who still had godmode on when the
    server restarted stayed invulnerable while the menu said "off", and needed
    two clicks to turn it off. Godmode now follows the player's real
    invulnerability.
  • Empty lists show a white "Nothing here." instead of a grey pane that
    looked like filling.

What's Changed

Full Changelog: v1.7.0...v1.7.1

UniversalAdmin 1.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 03:09
c6c6b5d

Staff can play incognito now.

Added

  • Nick system, a new built-in module: /nick Notch shows you as Notch,
    with Notch's skin, in the chat, the tab list, above your head, in join,
    quit and death messages and to other plugins. Name and skin can be chosen
    separately (/nick Bob Notch), or both at random (/nick random);
    /unnick ends it, also from the new Nick menu. Names of players who
    have played here, of online players and of other nicks are refused. Staff
    with universaladmin.nick.see see the real name in the player list, on
    the profile and in /nick list; punishments, notes, reports and the
    audit log keep the real identity, and actions a nicked staff member takes
    run under their real name. A nick survives rejoining
    (nick.restore-on-rejoin) and follows its player through a network. See
    docs/user/modules/nick.md and
    ADR 0025.
  • UniversalAdmin TAB, an official extension for TAB: nicked players are
    shown in an ordinary TAB group, vanished staff and players in staff mode
    get a marker. Its own repository:
    universaladmin-mc/universaladmin-tab.
  • Extension API 1.6: the Nicks service (dev.universaladmin.status),
    PlayerNames.real(...) and PlayerNames.revealedTo(...).
  • Vanish sets the vanished player metadata vanish plugins share, so TAB,
    map plugins and others recognise UniversalAdmin's vanish.

Fixed

  • On Java 21 the update check and the anonymous statistics did not start
    ("No implementation of the random number generator algorithm").
  • A player who left while vanished came back invisible when
    moderation.vanish.restore-on-reconnect was off.

What's Changed

  • docs: Modrinth wiki links point to the documentation website by @nicki41 in #14
  • UniversalAdmin 1.7.0 by @nicki41 in #15

Full Changelog: v1.6.0...v1.7.0

UniversalAdmin 1.6.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 00:00
770ff53

Updates install themselves, the project has a home of its own - and a new
look.

Added

  • Automatic updates: a new release (of UniversalAdmin or of an
    installed official extension) is downloaded, checked against its SHA-256
    checksum and installed on the next restart. Only within the same major
    version - a major update waits for /admin update. Switch it off with
    update.auto-download: false. Staff with universaladmin.update.notify
    get a notice on join; the console logs it on every check. See
    docs/user/configuration.md and
    ADR 0024.
  • /admin update installs every available update at once - the plugin and
    the extensions, a major update too.
  • The proxy plugins (Velocity, BungeeCord) check for updates as well and
    log a notice (update-check.enabled in their config.yml). They never
    download anything.
  • Documentation website:
    universaladmin-mc.github.io/UniversalAdmin,
    built from docs/ whenever it changes on main.
  • New logos for UniversalAdmin, its extensions and the proxy plugins.
  • API 1.5: ExtensionManager#updatesFrom(Plugin, String, String) - an
    extension names the GitHub repository it is released from, and
    UniversalAdmin keeps it up to date too.

Changed

  • The project moved to the GitHub organization
    universaladmin-mc. Old links to
    nicki41/UniversalAdmin redirect. JitPack coordinates are now
    com.github.universaladmin-mc.UniversalAdmin.
  • The official extensions have repositories of their own
    (Discord,
    Placeholders,
    Voice Chat),
    with their own releases. Their jars are no longer attached to the
    UniversalAdmin release; Modrinth is unchanged.

Fixed

  • /admin update picked the first jar of a release - the API javadoc - and
    refused it over the checksum. It now takes the plugin jar by name.
  • /admin update reports every plugin on its own line: one whose release
    cannot be fetched (for example an extension without a published release)
    no longer stops the others. A missing release and a used-up GitHub request
    limit are named as such.
  • "The details are in the server log" now holds for every internal error an
    action reports - its reason is logged.

What's Changed

  • docs: roadmap for automatic updates and extension repositories by @nicki41 in #11
  • UniversalAdmin 1.6.0 by @nicki41 in #13

Full Changelog: v1.5.0...v1.6.0

UniversalAdmin 1.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 15:31
6fc2217

Mute in the chat, in the voice chat or both, forms instead of one prompt
after another, the whole network in the player menu - and a new license.

Added

  • Chat, voice and full mutes: /chatmute and /voicemute (each with an
    optional duration) next to /mute, which stays a full mute. With a voice
    chat connected the punish form asks where to mute, and templates take
    chatmute [duration] and voicemute [duration] steps. The player's
    notice, the staff notification, the history and /checkban name the
    kind; /unmute lifts every kind. In a network a mute takes effect on
    every server at once. See
    docs/user/modules/moderation.md
    and ADR 0022.
  • UniversalAdmin Voice Chat, an official extension for Simple Voice
    Chat: voice and full mutes silence the microphone, vanished staff cannot
    be heard (voicechat.silence-vanished), a hidden, isolated staff voice
    group
    (/admin voicegroup), the voice status on the profile with a
    click to take a player out of a group. New permissions
    universaladmin.voicechat.staffgroup and .manage. See
    docs/extensions/voicechat.md.
  • The whole network in the player menu: in network mode Online
    Players
    lists every player of the network with the server they are on,
    with a Server filter and sorting by name or by server. A profile says
    where the player is and offers Teleport to player, Bring to me and
    Send to server... - also for players on this server.
  • API 1.4: MuteKind, PlayerStatus#chatMute/#voiceMute, the
    VoiceChat service and GuiForm.

Changed

  • Forms instead of one prompt after another
    (ADR 0023): punishing
    (reason, duration and mute kind in one form), adding to the whitelist
    (reason, notes, expiry), title broadcasts (title and subtitle), chat
    broadcasts (multi-line), enabling maintenance (reason, the message for
    players, whether to kick), the world border (one field per value, a
    transition slider, "use my position"), health, food, XP and speeds as
    sliders, and teleporting to coordinates (X, Y, Z and a world list).
  • Text prompts accept up to 255 characters - the dialog's own limit of 32
    cut longer reasons short.
  • The punishment list and detail pages show the localized type.
  • License: GPL-3.0-or-later from this version on, for the plugin, the
    proxy plugins and the official extensions. The extension API
    (universaladmin-api) and the example extension stay under Apache-2.0, so
    extensions can still use any license. Versions up to 1.4.0 remain
    available under Apache-2.0. Every jar now carries its license text under
    META-INF/ - see docs/release/licensing.md.

Upgrading

  • Replace the jars and restart; a database column is added automatically.
    Every existing mute is a full mute. For voice mutes, add
    universaladmin-voicechat-<version>.jar next to Simple Voice Chat on every
    server where players talk.

What's Changed

  • docs: fix two line breaks in the Modrinth page text by @nicki41 in #7
  • docs: statistics badges at the top and on Modrinth, roadmap for 1.5.0 by @nicki41 in #8
  • chore: license under GPL-3.0-or-later, the extension API stays Apache-2.0 by @nicki41 in #9
  • UniversalAdmin 1.5.0 by @nicki41 in #10

Full Changelog: v1.4.0...v1.5.0

UniversalAdmin 1.4.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 15:41
046d725

Find second accounts of banned players - without storing addresses - and
the proxy checks for BungeeCord networks too.

Added

  • Alt detection (opt-in, moderation.alts.enabled): every login stores
    a keyed hash of the address - never the address itself; IPv6 counts by its
    /64 network - and accounts that share one show up as possible alts:
    /admin alts <player>, the Possible Alts button on a profile, and a
    staff hint when a player joins who shares an address with a banned
    account (on every server of a network). Optionally refuse such players
    (moderation.alts.refuse-banned-alts, off by default;
    universaladmin.bypass.alt-check exempts players). Addresses are forgotten
    after moderation.alts.retention (90 days); /admin alts <player> forget
    deletes a player's on request; viewing and forgetting are audited. New
    permissions universaladmin.moderation.alts, .alts.forget and
    universaladmin.bypass.alt-check. See
    docs/user/modules/moderation.md
    and ADR 0020.
  • UniversalAdmin BungeeCord: the proxy plugin for BungeeCord networks -
    bans, network maintenance, the network whitelist and the server-list text,
    the same config.yml as the Velocity plugin, /uabungee. On GitHub and as
    the -bungee version on Modrinth
    (ADR 0021).

Changed

  • The proxy checks live in one place (proxy/common) for both proxy
    plugins; UniversalAdmin Velocity behaves as before.

Upgrading

  • Replace the jars and restart; a new table is created automatically. Alt
    detection stays off until you switch it on. On a BungeeCord proxy, add
    universaladmin-bungee-<version>.jar and fill in its config.yml like the
    Velocity plugin's.

What's Changed

Full Changelog: v1.3.0...v1.4.0

UniversalAdmin 1.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 03:43
be8c1e2

Consistent punishments that escalate on their own, and a network that can
be whitelisted and keeps vanished staff hidden.

Added

  • Punishment templates with escalation: /punish Steve spam warns Steve
    the first time, mutes him for an hour the second time, and so on - steps
    per template in punishment-templates.yml (five examples in the server's
    language), counting earlier uses of the same template within 90 days (per
    template; 0 = forever). Also as Punish with Template in the moderation
    menu and /punish in the Discord bot. /punish <player> still opens the
    moderation menu (now with the templates first); from the console it lists
    what each template would do. Each step still needs its own permission. New
    permission universaladmin.moderation.punish. See
    docs/user/modules/moderation.md
    and ADR 0018.
  • Network whitelist (/admin whitelist network on|off|status|add|remove|list):
    one list for every server of the network, on top of each server's own,
    also enforced at the proxy by UniversalAdmin Velocity
    (whitelist-check). New permissions universaladmin.whitelist.network
    and universaladmin.bypass.network-whitelist. See
    docs/user/modules/whitelist.md.
  • Vanish across the network: vanished players are left out of the
    network list, /admin find, player counts, tab completion and the
    network placeholders for everyone without universaladmin.bypass.vanish,
    and stay vanished when switching servers even with
    vanish.restore-on-reconnect: false
    (ADR 0019).
  • Extension API 1.3: NetworkService#vanished(UUID).

Fixed

  • Whitelist metadata in network mode was one table for every server, so
    one server's expiry sweep could remove a player from another server's
    whitelist. Each server now keeps its own; temporary entries keep their
    expiry after the upgrade.
  • %universaladmin_network_online% and %universaladmin_network_online_<server>%
    no longer count vanished players.

Upgrading

  • Replace the jars - the plugin on every server, UniversalAdmin Velocity on
    the proxy, and the extensions (UniversalAdmin Placeholders 1.3 needs
    UniversalAdmin 1.3) - and restart. New tables and columns are created
    automatically, punishment-templates.yml is written on the first start.
    In a network, give the servers a minute to restart together: a server
    that is still on 1.2 keeps working, but does not know the network
    whitelist.

What's Changed

Full Changelog: v1.2.1...v1.3.0

UniversalAdmin 1.2.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 02:17
cb1e9ae

Maintenance done right in a network: one server or all of them.

Added

  • Network maintenance: /admin maintenance network on [kick] [reason]
    closes every server of the network at once (and the proxy with
    UniversalAdmin Velocity), with its own reason, message and allow-list;
    off, status, list, allow and deny likewise. The GUI page has a
    second row for it. New permission
    universaladmin.server.maintenance.network. See
    docs/user/network.md and
    ADR 0017.
  • UniversalAdmin Velocity refuses logins during network maintenance
    (bypass permission on the proxy or the network allow-list still get in)
    and shows "Maintenance" in the server list (maintenance-check in its
    config.yml). /uavelocity shows both checks.
  • A server in network mode without LuckPerms says at startup that OP and
    permissions count per server, and how to share them
    (network.md).

Fixed

  • Maintenance in network mode was shared by accident: every server used
    the same stored state, so putting one server into maintenance closed the
    others after their next restart. Each server now keeps its own.
  • /admin maintenance status and the dashboard tile also show the
    network's maintenance.
  • Import summary and allow-list audit entries no longer say "1 punishments"
    or "1 players".
  • UniversalAdmin Velocity names its author in the proxy log, and no longer
    uses the deprecated event order API.
  • Javadoc of the extension API: no more links to classes that only exist in
    the plugin.

Upgrading

  • Replace the jars (plugin on every server, and UniversalAdmin Velocity on
    the proxy if you use it) and restart. A new table (ua_maintenance) is
    created and the old maintenance state copied into it - every server keeps
    the maintenance it had. In a network, give every server a
    network.server-name if you have not yet.

What's Changed

Full Changelog: v1.2.0...v1.2.1