4.2 KiB
Commands
Player-only (no console support yet). Every command is gated by a Hytale permission node via requirePermission(...) in the constructor.
Permissions
| Command | Required permission |
|---|---|
/rank create |
networkranks.rank.create |
/rank delete |
networkranks.rank.delete |
/rank addperm |
networkranks.rank.edit |
/rank removeperm |
networkranks.rank.edit |
/rank setparent |
networkranks.rank.edit |
/rank setprefix |
networkranks.rank.edit |
/rank list |
networkranks.rank.list |
/rank info |
networkranks.rank.info |
/grant |
networkranks.grant |
/tempgrant |
networkranks.grant |
/revoke |
networkranks.revoke |
/primary |
networkranks.primary |
/ranks |
networkranks.lookup |
Grant networkranks.* to your admin group for full control.
/rank
Subcommand tree for managing rank definitions (not memberships).
/rank create <id> <prefix> <priority>
Creates a new rank. id should be short and lowercase (e.g. vip, mvp). prefix is a single token ([VIP], [Mod]). priority is an integer - higher means "more important" for sorting purposes.
The new rank has no parent and no permissions until you add them with /rank setparent and /rank addperm.
/rank delete <id>
Deletes a rank. Built-in groups (hytale:Adventurer, hytale:Admin, etc.) cannot be deleted - the command will report "not found or is built-in".
Active grants of the deleted rank become orphaned. They stay in the DB but the rank lookup returns nothing, so they have no effect on permissions.
/rank addperm <id> <permission>
Adds a permission node to the rank's direct permissions. Wildcards (*, someplugin.*) work the same way they do in Hytale.
/rank removeperm <id> <permission>
Removes one permission. Doesn't touch inherited permissions.
/rank setparent <id> <parent|none>
Sets a rank's parent. Permissions are inherited up the parent chain: Admin parent ServerEditor parent WorldEditor ... means an Admin has every permission those parents have. Pass none to clear the parent.
/rank setprefix <id> <prefix>
Updates the rank's chat prefix. Takes effect immediately (cache invalidation broadcasts to all servers).
/rank list
Lists all ranks with their priority, prefix, parent, and built-in flag.
/rank info <id>
Shows a rank's metadata + the full list of direct permissions (not the inherited ones).
Grants
/grant <player> <rank>
Permanently grants rank to player. Player can be an online name or a UUID string (UUIDs are required for offline players, since we don't track every name we've ever seen).
The grant adds to the player's set of ranks; it doesn't replace existing ranks. Use /primary to change which one is used for display.
/tempgrant <player> <rank> <duration>
Same as /grant but the grant expires after duration. Duration syntax: 30s, 5m, 2h, 7d, 1w, 1mo, 1y. Expired grants don't count toward effective permissions.
/revoke <player> <rank>
Marks all active grants of (player, rank) as revoked. Doesn't delete the row - revoked grants stay for history.
/primary <player> <rank>
Marks rank as the player's primary (display) rank. Player must already have an active grant of it. Used by the chat prefix listener.
/ranks <player>
Shows the player's active rank IDs, primary rank, and the 10 most recent grants (active, expired, and revoked).
Hytale's built-in /perm and /op commands
Still work as before. Hytale routes them through PermissionsModule.get(), which routes through our provider. /op Bob becomes a setUserGroup(uuid, "hytale:Admin") call, which we implement as a fresh grant of the hytale:Admin rank.
So you have two ways to manage permissions:
- Hytale's commands (
/op,/perm group add, etc.) - work with the built-inhytale:*groups - Our commands (
/rank create vip ...,/grant Bob vip) - work with both built-ins AND custom ranks you create
Either set of commands updates the same MySQL tables. Use whichever feels right.