Commands
AstralSkill registers three debug and admin commands under the base command /skill. All subcommands are gated by the single permission node skills.command — there are no per-subcommand permissions.
/skill cast
Cast a loaded skill from the player's current eye location in the direction they are looking. Player-only command.
Argument | Type | Description |
|---|---|---|
| Skill ID | The skill to cast. Must be a loaded skill id; unknown ids error with |
Invocation:
When invoked, the skill is resolved from the skill blueprints, and then cast asynchronously from the player's eye location (Player#getEyeLocation()) along their current look direction. The skill is executed via the normal skill service runtime, respecting all timing, effects, targeting, and chaining rules as if triggered by any other system.
/skill metrics
Print performance metrics for the skill update-loop shards. Non-player commands allowed (any CommandSender).
Displays a summary of the multi-threaded shard architecture's performance counters, reported per shard:
Total ticks — how many times the shard's update loop has executed
Over-budget ticks — count of ticks exceeding the hard 1ms per-tick budget
Peak duration — the longest single tick latency observed on that shard
Started / finished — total skill instances activated and deactivated on each shard
Each metric is accumulated across the entire uptime of the server (since plugin enable). These counters give you a complete picture of whether the skill runtime is meeting its performance targets.
See Async execution: sharded update engine and Configuration for tuning details.
/skill reload
Reload all skill YAML files from the skills/ folder. Non-player commands allowed.
Triggers loadConfiguration(), which scans the entire skills/ folder recursively and deserializes all .yml files into WrappedSkill instances. Each skill is initialized into its concrete type (projectile, laser, impact, etc.) and registered by id. The command replies with the total count of successfully loaded skills.
Note: The reload operation does not restart the shard threads — the number of update shards remains fixed (configured in config.yml at plugin enable). Only the skill instances and their parameters are reloaded; the thread pool itself persists unchanged. To change the shard count, restart the server.
Skill Blueprints Completion
The @skillBlueprints completion handler provides tab-completion for the <skill> argument in /skill cast. It returns the set of all loaded skill ids from the skill service (all skills registered in the skills/ folder).
If a player enters an id that is not in the completion set, the command still executes the context resolver, which throws:
This error is the authoritative check — only skills that are currently loaded can be cast.
Permission summary
Node | Grants | Notes |
|---|---|---|
| All | This is a class-level permission; there are no per-subcommand permission nodes. |