Edit: Chat UI is no longer work in progress!
It has been released, you can find the Ore post here: https://ore.spongepowered.org/simon816/Chat-UI
and the corresponding forum post:
Edit: a lot of new thing have been created since the initial post.
Here is a more up-to-date description. More can be found on the readme.
A User Interface Toolkit for drawing GUIs in the Vanilla Minecraft chat box.
Written using the Sponge API, compatible with versions 4.x and current 5.0.0 snapshots.
This plugin allows players to perform tasks using a graphically based interface as opposed to the traditonal command based interface.
This screen uses the
TableUI to list all players on the server. If you have the admin permisson, you can kick and ban players directly from this list.
From the player list, click 'Message' to start a private message with that player.
The otherplayer will see this before clicking on the tab:
Where '(1)' is the number of unread messages.
Only accessible if you have the admin permission.
The configuration editor is another use of
It allows navigating through a key:value based config file (uses configurate's
There are two types of values: simple and complex.
A simple value is either a number, boolean or a string. A complex value is a list or a map.
To open a complex value, click on it and it will navigate to that node. Keep track of the current path by observing the 'breadcrumb' at the top. Click on any part of a breadcrumb to go back to that node.
To edit a simple value, clicking on the value will highlight that row. You can type in chat the new value of the node, or click again on the value to prompt the value in chat.
New nodes can be created by clicking the [New] button.
Here, you enter the name of the key in chat. Then click on the type of value, and optionally enter the value afterwards.
Shapes an images can be drawn on the canvas. The context is a x*y plane of 'pixels' that can be set to different colors.
There are two types of drawing contexts: 'block' and 'braille'. Block uses a unicode block character to form a grid, while braille uses the unicode braille characters to form a grid of smaller pixels.
Sine wave example using block context:
(Note: The black empty characters are support characters, I've yet to find an invisible 9x9 character.
Animations are also possible by using SpongeAPI's scheduler to push updates to the client if the tab is active.
Currently only one permission is defined, the admin permission.
Old Old Post
This is a concept I have come up with: Interacting with the game and chatting to players by using the chat interface.
At the moment it is just very basic but I can see this can expand to become as versatile as the chest inventory style of interface.
Source code now available: https://github.com/simon816/TabbedChat
I tried to get it to work with the pagination service but with the API as it is now I would have to implement the entire pagination system as opposed to just provide a wrapper around it. Services can now be wrapped
Here's a rough demo: