promotional bannermobile promotional banner

Syntactical

A plugin created by Syntax for use on the KingdomCraft server.

File Details

Syntactical 2.0.7

  • R
  • Sep 10, 2025
  • 24.66 KB
  • 30
  • 1.21.4

File Name

syntactical-2.0.7.jar

Supported Versions

  • 1.21.4

Changelog — Syntactical (latest update)

New Features

  • LuckPerms Integration
    • Added /promote and /demote commands.
    • Supports:
      • Step-by-step rank changes (/promote Player → next rank).
      • Direct rank changes (/promote Player governor).
    • Enforces hierarchy: players can only modify ranks below their own.
    • All messages configurable via config.yml.
    • Tab-completion for player names and configured ranks.
  • Configurable Rank Order
    • Rank progression now defined in config.yml under ranks.order.
    • Easily modify or extend rank ladders without recompiling.
  • OP Safeguard
    • Intercepts /op from authorized players and assigns the governor rank via LuckPerms instead.
    • Console-issued /op is never intercepted.
    • Sends configurable warnings advising the use of /promote.
    • Stores a pending override so the executor can still force /op with /override.
    • Added /override command (with tab-complete for pending player).
    • Now supports offline targets: resolves UUID via LuckPerms and assigns governor even if the player is offline.

Improvements

  • Centralized messages: All command/event messages now come from config.yml.
  • Paper Brigadier commands: Registered commands via Paper’s lifecycle for better tab-complete and performance.
  • Permission-aware safeguard: The /op safeguard only triggers if the executor actually has permission to use /op (no extra messages for unauthorized users).
  • LuckPerms rank updates: Only inheritance (group) nodes are changed; other permission nodes are preserved.
  • Rank order handling: Normalizes to lowercase and provides a sensible default fallback aligned with config.
  • Vault UX consistency:
    • Unified vault title prefix across manager/listener.
    • /pv uses an integer argument with proper bounds based on config and permissions (syntactical.vault.unlimited).
  • Code cleanup:
    • Removed duplicate listener registration.
    • Consistent colorization and minor UX tweaks.

Fixes

  • Resolved LuckPerms API incompatibility: replaced NodeMap.mutate()/removeIf with a safe collect-and-remove approach.
  • Unban logging: fixed to use logUnBan instead of logBan.
  • Player name handling: stopped lowercasing player names during /op interception to preserve exact matches.

Existing Features Maintained

  • Ban logging system (banlogs.yml).
  • /seticon command.
  • /swaphand command.

Notes for admins

  • Ensure LuckPerms API 5.x is available (compileOnly net.luckperms:api:5.4 recommended).
  • Paper 1.21.4 and Java 21 are targeted.
  • Update config.yml to customize the new messages:
    • messages.op-safeguard.* (usage, warn, override-tip, given-governor, given-governor-offline, unknown-offline, etc.)
  • If you previously relied on multi-group setups, review the new “single-group” behavior for promotions/demotions (only inheritance nodes are replaced).