Repository navigation
Update 1.5.0 – Commands Follow Identica
Identica-CommandBlocker 1.5.0 is built for Identica 3.0. The addon now asks Identica which players are still authenticating and which commands they must be able to run, instead of keeping its own copy of both. Renamed commands, commands of providers loaded later, and players who leave in the middle of a login are handled without a restart or a stale entry.
Highlights
- Built on Identica's addon API. The addon starts with
IdenticaAPI.whenReady, reads its settings through Identica's own Configura, and takes the pending-scenario service from Identica. It no longer gives up when Identica is not initialized yet. - The allow-list follows Identica. Commands Identica needs before login, such as
/login,/pass,/identica enrolland/2fa confirm, are read fromCommandServiceon every check. Renamed aliases and commands of providers loaded later are followed without a change here. - Blocking follows the login, not a timer. Identica's pending scenarios decide whether a connection is blocked, so a player who leaves mid-login no longer stays blocked until a cache entry expires.
- Fail closed. If filtering throws, the command is denied rather than allowed through.
- Tab completion stays in step. Velocity's command tree is filtered without reflection, partial command names are completed, and every completion that ends up empty is cancelled instead of being forwarded to the backend.
Upgrading
- Identica 3.0.x is required. Older Identica builds do not provide the addon API this version uses; stay on 1.4.0 with them.
- Settings: the file stays in the addon's data folder and is read in the format Identica is configured with. Nothing has to be moved or rewritten by hand.
allowed-commandsnow lists extra commands only. Commands Identica needs for authentication are always allowed on their own, and the list is empty on a new installation. Existing entries keep working and can be trimmed.- No database changes.
- BungeeCord: command names completed from the backend's command tree still cannot be filtered; this is a proxy limitation documented in the README.
Changelog
What's new
- Addon API: Moved to Identica 3.0's addon API and start through
IdenticaAPI.whenReady(#10) - Commands: Introduced pre-login commands read from Identica's
CommandService, including renamed aliases and provider commands (commit) - Configuration: Introduced settings read through
IdenticaAPI.getConfigura()and dropped the bundled Configura (#9)
Enhancements
- Commands:
allowed-commandsnow lists extra commands only and is empty on a new installation; the old defaults named commands that do not exist (commit) - Commands: Entries match whole words, case-insensitively, with examples in the README (commit)
- Commands: Reload settings on
IdenticaReloadedEvent, so/identica admin reloadalso reloads the addon (commit) - Reliability: Pending state comes from
PendingScenarioServiceand no longer from a replicated cache (commit) - Tab completion: Filter Velocity's command tree with
removeChildByNameinstead of reflection (commit) - Tab completion: Normalise suggestion case on BungeeCord (commit)
- Tab completion: Filter tab-complete responses routed through BungeeCord (commit)
- Testing: Added listener, collector, configuration, alias and filter-service tests (commit)
- Testing: Added live journeys that run the packaged addon on a real proxy with Anvil (#14)
- CI: Updated the release workflow, runners and Gradle wrapper to 9.8.1 (#13)
- Documentation: Revised the README with allowed-command and tab-completion details (commit)
Fixes
- Commands: Fail closed when filtering throws, instead of letting the command through (#5)
- Tab completion: Complete partial command names such as
/2facorrectly (commit) - Tab completion: Keep argument suggestions only for allowed commands and cancel completions that end up empty (commit)
- BungeeCord: Fixed the dead tab-complete response handler; requests of blocked players are cleared and cancelled (#7)
- Reliability: Removed the blocking replicated-cache read from the command path (commit)
- Reliability: Fixed the race on the loaded configuration (commit)
- Reliability: Fixed commands of providers loaded later not being recognised (commit)
What's Changed
- fix: fail closed on errors and fix tab completion by @purpurcof in #5
- fix: complete partial command names and fix dead Bungee response handler by @purpurcof in #7
- refactor: read settings through IdenticaAPI.getConfigura() and drop bundled Configura by @purpurcof in #9
- refactor: move to Identica's addon API and allow its login commands by @whereareiam in #10
- ci: update by @purpurcof in #13
- test: add live journeys on a real proxy with Anvil by @purpurcof in #14
New Contributors
- @whereareiam made their first contribution in #10
Full Changelog: 1.4.0...1.5.0
Support
If you need help with setup or configuration, or you find a bug, open an issue on GitHub.