Massive modernization update that rebuilds SIR from the Legacy 1.7.0 branch into the new 2.0.0 modular architecture. Recommended: Back up your full server and plugin data before upgrading.
| Added - Added the new Modern SIR 2.0.0 branch as a full Gradle multi-project rewrite with dedicated `core`, `plugin`, `module/*`, and `command/*` components. - Added 13 standalone modules: `advancements`, `announcements`, `channels`, `cooldowns`, `discord`, `emojis`, `join-quit`, `login`, `mentions`, `moderation`, `motd`, `tags`, and `vanish`. - Added 8 standalone command providers: `clear-chat`, `color`, `ignore`, `message`, `mute`, `nick`, `print`, and `settings`. - Added dedicated command families for `/announce`, `/chat-view`, `/clear-chat`, `/chat-color`, `/ignore`, `/message`, `/reply`, `/mute`, `/tempmute`, `/unmute`, `/check-mute`, `/nick`, `/print`, and `/chat-settings`. - Added `/sir commands` and `/sir migrate <SIR/Essentials>` to the main admin workflow. - Added GUI-based module and command-provider management on supported server versions. - Added persistent `modules/states.yml` and `commands/states.yml` handling, including per-command override states. - Added normalized `users/` storage for ignore data, mute data, chat-view data, chat-color data, and nick data. - Added automatic backup creation under `back-ups/` during migration routines. - Added built-in migration support for Legacy SIR data. - Added built-in migration support for Essentials / EssentialsX data, including joins/quits, MOTD, chat formatting, nicknames, language mappings, and command-state imports. - Added a dedicated `nick` provider so players and staff can manage nicknames directly from SIR. - Added a dedicated `chat-settings` provider for player-side communication preferences and toggleable chat behavior. - Added Channels v2 with clearer `access`, `audience`, `style`, and `logging` sections, plus support for converting legacy or hybrid channel layouts. - Added a far more granular moderation setup with dedicated `caps.yml`, `format.yml`, `links.yml`, and `swearing.yml`. - Added branch-aware documentation for modules, command providers, configuration layout, integrations, and migration.
| Changed - Reworked SIR from the old single-project Maven build into a maintained Gradle multi-project architecture. - Reworked the runtime layout from the old `plugins/SIR/resources/...` tree into dedicated `users/`, `modules/`, `commands/`, and `back-ups/` folders. - Split the old `resources/modules/chat/` umbrella into independent `channels`, `cooldowns`, `emojis`, `mentions`, `moderation`, and `tags` modules. - Split the old `resources/modules/hook/` umbrella into dedicated `discord`, `login`, and `vanish` modules. - Reworked command handling from one umbrella `resources/commands/commands.yml` model into per-provider `commands.yml` and `lang.yml` files, with optional `data.yml`, `menu.yml`, and `settings.yml` where needed. - Reworked `/sir` administration around `modules`, `commands`, `reload`, `about`, `help`, `support`, and `migrate`. - Updated the announcement system so command metadata and language now live directly with the announcements module. - Updated moderation from one large `moderation.yml` file into separated rule lanes that are easier to audit, maintain, and disable independently. - Updated user-data persistence so command providers handle interaction flow while user state is stored in normalized files. - Updated command and permission naming across the modern branch to follow a cleaner provider-based structure. - Updated legacy command mappings, including `sir.clearchat` -> `sir.clear-chat`, `sir.chatcolor` -> `sir.color`, `sir.mute.perm` -> `sir.mute`, `sir.mute.temp` -> `sir.temp-mute`, and `sir.checkmute` -> `sir.check-mute`. - Updated the legacy `/announcer` flow into the modern `/announce` family while preserving familiar aliases. - Updated the internal project namespace from `me.croabeast.sir` to `com.bitaspire.sir` as part of the BitAspire modernization pass.
| Fixed - Fixed one of Legacy's biggest upgrade pain points by adding automatic migration for old SIR user data, shared files, module configs, module states, and command states. - Fixed migration friction for Essentials / EssentialsX-based setups by importing supported nick, join/quit, MOTD, chat, mute, ignore, and command-related data into SIR's new structure. - Fixed state-management ambiguity by separating module state, command state, and user data into dedicated modern files instead of mixing everything under the old `resources/` tree. - Fixed several long-standing maintenance pain points caused by broad mixed folders by giving chat systems, hooks, moderation rules, and command families their own isolated units.
| Notes / Recommendations - Recommended: back up your full server and plugin data before upgrading from any Legacy SIR setup. - Do not copy old `resources/` folders directly into 2.0.0; use the new layout or run `/sir migrate SIR`. - Review all permission nodes before going live, especially if your staff groups still use legacy names. - `sir.admin.update` from Legacy does not carry over to the modern `plugin.yml` permission tree. - After migration, verify `users/`, `modules/`, `commands/`, and `back-ups/` before opening the server to players. - If you are migrating from Essentials / EssentialsX, use `/sir migrate Essentials`. - Modern SIR 2.0.0 is the recommended branch for new installs; Legacy should only remain on servers that still depend on the old runtime tree and permission model.