Changelog – Version 3.0.0
This version introduces major changes, improving the flexibility of the API while removing deprecated elements. This update is not backward compatible.
Major Changes
- Reworked message handling:
- Removed the Messages enum in favor of direct handling via the message handler.
- Removed unused messages.
- Improved CommandManager:
- CommandManager is now generic: CommandManager<T extends Plugin>.
- Allows better flexibility and compatibility with different plugin types.
- Command system overhaul:
- Removed SimpleCommand extends Command<JavaPlugin>.
- New modular and adaptable approach.
New Features
- Automatic usage message generation:
- Added a system that dynamically generates a usage message based on the sender's permissions if no usage message is defined.
Bugs
- Implement inGameOnly verification:
- Commands can now enforce that they must be executed by a player and not from the console.
General Improvements
Migration: This version is not backward compatible. If you were using SimpleCommand or the old message handling system, you will need to update your code accordingly.
- Various optimizations and code enhancements.
Next Steps: Update your implementation to use the new structure and benefit from a more flexible API.
Changelog for CommandsAPI Version 2.0.0
Note: This release introduces major changes that are not backward compatible with previous versions.
- Renamed TabConverter to TabCompleter for improved clarity and alignment with its function.
- Added dynamic runtime casting methods for commands. This enhancement allows type casting at runtime, in addition to the existing type declaration system used when defining commands.
- Major rework of the Executor class: The Executor now manages both tab completion and command execution (perform) with a more streamlined architecture, resulting in enhanced performance and flexibility.
Changelog for CommandAPI Version 1.5.1
Release Date: September 17, 2024
New Features
- Command Completion with /plugin-name:command Format:
- Added support for command completion when prefixed with the plugin name (e.g., /plugin-name:command). This improves compatibility in environments where multiple plugins might use similar commands.
- Command Execution with /plugin-name:command Format:
- Commands can now be executed using the full /plugin-name:command format, ensuring the correct command is used even when multiple plugins share identical command names.
- New setDebug() Method:
- Introduced the setDebug() method, allowing developers to control the display of debug information in the console. This provides better control over the verbosity of debug logs, making it easier to troubleshoot during development without cluttering production logs.
Improvements
- Enhanced Compatibility with Multi-Command Environments:
- This version improves the handling of commands shared between multiple plugins, allowing users to explicitly specify the plugin during both command completion and execution.
Upgrade Notes
This update focuses on functional improvements and developer flexibility, making CommandAPI more adaptable to complex environments and easier to customize for debugging and troubleshooting.
- No major changes are expected for existing projects, but users are encouraged to test the new prefixed command syntax for better command handling in multi-plugin environments.
- The setDebug() method is optional but can be useful for adjusting the level of debug information displayed in the console.
### Changelog for CommandAPI Version 1.5.0
Release Date: August 27, 2024
#### New Features
- Customizable Logging System:
- Added the ability to change the logging system used by CommandAPI. Users can now customize how and where log messages are recorded, enhancing flexibility and integration with different logging frameworks.
#### Improvements
- Package Rework:
- The internal package structure of CommandAPI has been reorganized to improve code readability and maintainability. This change may affect imports in existing implementations; ensure that your project is updated accordingly.
- Command Executor Extraction:
- The Command Executor logic has been extracted from theCommandManagerclass and placed into its own dedicated class. This separation of concerns improves the modularity of the codebase, making it easier to manage and extend.
#### Miscellaneous
- Documentation Updates:
- Updated the documentation to reflect the new package structure and provide guidance on how to utilize the customizable logging system and new command executor structure.
#### Upgrade Notes
- Breaking Changes:
- If your project depends on specific package structures or internal implementations of theCommandManagerclass, ensure that you update your imports and references to align with the new package layout.
- Review the updated documentation to understand the changes to the Command Executor and how to adapt your current implementation.
#### Bug Fixes
- General Stability Improvements:
- Minor bug fixes and performance enhancements have been applied throughout the codebase.
This version is a significant update that enhances customization, improves the architecture, and lays the groundwork for future features.
