# Commands Painting registers a single root command on both Paper and Velocity. The Paper plugin uses CommandAPI; the Velocity plugin uses Velocity's `SimpleCommand`. The command surface is identical on both platforms. --- ## /painting | Subcommand | Permission | Description | |---|---|---| | `reload` | `lodestone.painting.commands.painting` | Reload pack and server registries from disk. | | `resend` | `lodestone.painting.commands.painting` | Resend resource pack offers to every online player. | | `generatehashes` | `lodestone.painting.commands.painting` | Download every configured pack URL, compute SHA-1, and write the hash back to config. | Aliases: `/resourcepack`. --- ## /painting reload Reloads the configuration without restarting the server. 1. Saves the default config if missing. 2. Re-reads pack definitions, server entries, message templates, and protocol overrides. 3. Logs a warning for any server entry referencing an undefined pack. 4. Fires `PaperPackRegistryReloadEvent` (Paper) — Velocity does not currently fire a registry reload event externally. 5. *(Velocity)* Reschedules the periodic hash refresh task. Existing pack offers on connected players are not re-sent. Use `/painting resend` to push the new state to live sessions. --- ## /painting resend Re-issues pack offers to every online player. - **Paper standalone** — sends the resolved pack list using the local server name. - **Velocity** — sends the resolved pack list per-player using each player's current server name. - Velocity's `sendResourcePacks` dedupes against `getAppliedResourcePacks()` — already-applied packs are skipped. --- ## /painting generatehashes Downloads every configured pack URL, computes SHA-1, and writes the result back to the config file. | Outcome | Message | |---|---| | No URLs configured | `No packs with a URL to hash.` | | All hashes already current | `All N hashes already up to date.` | | Mixed | `<changed> of <total> hashes changed.` (with optional `(N failed)` suffix) | After a successful run, the config is reloaded so the new hashes take effect immediately. On Velocity, a manual `generatehashes` always forces a refresh, bypassing the `hash-refresh-throttle` window. --- ## Permissions | Permission | Grants | |---|---| | `lodestone.painting.commands.painting` | All `/painting` subcommands. Defaults to `op` on Paper. | --- ## Related Pages - [[Painting/Server Owners/Configuration]] — config values reloaded by `/painting reload` - [[Painting/Developers/Overview]] — `PackRegistryReloadEvent` is fired after `/painting reload`