Expand UI system
fynntimes opened this issue ยท 1 comments
User interface has a pretty good presence in Prison so far, with Output, ChatDisplays, and buttons providing consistency across the platform. The user interface library currently exists in the output
package.
However, it can be significantly improved. A good UI is essential to Prison, because to the user, the interface is the product. With this in mind, here are the goals for the new user interface.
- Conversations system. Conversations occur when the user is asked a question by the UI, and he can respond in the chat. This would be useful for things like creation wizards.
- Command suggestions. While this is a command API change, it's still relevant to the UI and so it's going in this issue. The command system lacks almost all autocomplete functionality, and seeing as MC 1.13 is going to put autocomplete on steroids, it's quintessential that Prison also allow autocomplete in its API.
- Messenger utility. Akin to the Output class, the Messenger utility will provide standardized output to users but not logging. It will emphasize the use of the Localization API, by providing but deprecating the methods that accept raw messages (rather than locale keys). It will extend the Output functionality by providing broadcasting support. All send... methods in the Output class will be deprecated.
- Enhanced ChatDisplay system. Standardized buttons, support for inline item data, Markdown support, and more will be added to the ChatDisplay system.