Helle everyone o/
It has been a long and exciting journey, and I'm really happy to see the growth Lamp has been experiencing lately. As a natural consequence, we have learned what works well in Lamp, as well as what areas could use a bit of improvement.
Many features have been repeatedly requested by lots of users but were unfulfilled simply because the current design of Lamp could not bear it. Some parts in Lamp are a bit too simple to accommodate more sophisticated use cases, while others are far too complicated that they became too rigid.
To help the project move forward, I would like to introduce a few fundamental changes to the core areas of Lamp. Such changes should preserve the current set of features in Lamp, and also give space for newer additions.
In summary: Expect breaking changes in the upcoming period.
As a side note, I may be unable to streamline new features to the current version. I would like to give my full attention to refactoring Lamp and fixing its fundamental flaws that have been bugging me and others for a long while.
This refactor, while exciting, may take a good while.
This refactor should allow us to introduce the following:
Arguments between subcommands: /foo <argument> bar
Events that allow intercepting the creation process of commands and command parameters
Easier identification of command aliases, giving significance to the order of strings provided in @Command and @Subcommand.
Allow arguments that consume more than 1 string, for example, a Location that takes x y z
Introduction of more utility classes that provide small, modular, and reusable blocks of functionality
Make it easier to specify functionality for generic types of arguments
Better messaging and localizing system
Overall design improvements to the system, including:
Arbitrariness of priorities in value resolvers, suggestions, etc.
Make CommandHandler misuse-resistant, and make sure you can't invoke methods in the wrong order.
Fix @Cooldown's funny quirks
So, while we are at it, I would like to hear your thoughts on what features you think Lamp is missing.
This will be a long process, and because this is a side project, I'll work on it when the chance allows.
This issue should track these changes, which will take place in the v4 branch. Contributions are welcome, but please pass them by me beforehand to make sure we're on the same page.
Helle everyone o/ It has been a long and exciting journey, and I'm really happy to see the growth Lamp has been experiencing lately. As a natural consequence, we have learned what works well in Lamp, as well as what areas could use a bit of improvement.
Many features have been repeatedly requested by lots of users but were unfulfilled simply because the current design of Lamp could not bear it. Some parts in Lamp are a bit too simple to accommodate more sophisticated use cases, while others are far too complicated that they became too rigid.
To help the project move forward, I would like to introduce a few fundamental changes to the core areas of Lamp. Such changes should preserve the current set of features in Lamp, and also give space for newer additions.
In summary: Expect breaking changes in the upcoming period.
As a side note, I may be unable to streamline new features to the current version. I would like to give my full attention to refactoring Lamp and fixing its fundamental flaws that have been bugging me and others for a long while.
This refactor, while exciting, may take a good while.
This refactor should allow us to introduce the following:
/foo <argument> bar
@Command
and@Subcommand
.Location
that takesx y z
@Cooldown
's funny quirksSo, while we are at it, I would like to hear your thoughts on what features you think Lamp is missing.
This will be a long process, and because this is a side project, I'll work on it when the chance allows.
This issue should track these changes, which will take place in the
v4
branch. Contributions are welcome, but please pass them by me beforehand to make sure we're on the same page.