Chat UI - A UI toolkit for the vanilla chat box

So at some point soonTM I will be releasing the first version of this plugin.

If anyone can think of a better name for it I welcome suggestions as I am bad at naming things.

1 Like

ChatUI (pronounced chat-you-eye)

simple, accurate, to the point. Just a thought.

So excited for this :slight_smile:

1 Like

My face when i discovered what simon actually did in here:

4 Likes

Iā€™m having trouble interpreting the GIF. Is that man happy or upset?

Heā€™s mind-blown.

3 Likes

Renamed to Chat UI
I have updated the original post with more up-to-date details.

Also, version 0.1.0 is released!
Early access downloads on the Releases page

This is a early-access build and is not completely polished.
Iā€™d like to get some feedback on things that are broken, could be improved or new ideas. Iā€™d also like to know how well it works with other plugins.

Note: The current SpongeForge and SpongeVanilla doesnā€™t support capturing messages sent from the server to the player, so it wonā€™t look as good as some of the demos (as I used a custom built SpongeForge)
It will be fixed when this PR is merged: https://github.com/SpongePowered/SpongeCommon/pull/823

Iā€™ve been working on expanding the UI toolkit. Iā€™ve taken ideas from both JavaFX and Swing in order to make things more general purpose and to join many small components together to make an interface.

Here is an example of that:

To show each individual component, here is an annotated diagram:
component-ui

Window and Tab work as they always have done before, but now, most elements implement UIComponent, and UIPanes display their children according to their rules.
Similar to JavaFX, a HBoxUI will layout itā€™s children horizontally and VBoxUI lays them out vertically.
The canvas and table are now general purpose components that can be added anywhere that components are allowed, in the above example the canvas is added to the HBoxUI, and another one added to the cell of a table.

With these new features, designing GUIs will now be much easier.

12 Likes

New early access release, version 0.3.0. Download here

Notable changes:

  • Complete UI API refactor, as seen in my previous reply
  • Improved force-unicode support
  • Interface can be disabled
  • Permissions manager GUI

Permissions Manager GUI

has basic support for all permission plugins. Enhanced support for PEX

Main screen shows buttons for each type of subject

List of subjects in category

Permissions

  • add/remove parents
  • change permission value (true/false)
  • add and remove permissions
  • set default value (PEX only)
  • set subject options
5 Likes

Are you able to create language chat tabs.
So having like a french chat etc based on tabs. If this is possible, I am most definitely interested.
I know you canā€™t enforce the chat, but creating these channels would be great for my server and would love to give it a shot.
Please support PEX chat formatting (prefix, etc).

So basically youā€™re after ā€œchat groupsā€ for multiple people. This is definitely possible and was one of the things I actually wanted to do. When I first thought about that idea I was thinking group chat plugins could provide hooks for this, but for a better out-of-the-box experience I will provide a basic system for it.

I wouldnā€™t say Iā€™m directly after chat groups, but the way it could be implemented with your very nice chat ui, you could easily start allowing servers the option of creating multi-language servers.
Most servers limit chat to english or whatever their base language is, which could be completely done away with if their were like, a chatbox below 4 tabs, with each tab being a different language.
A global option would need to be implemented, or some way to distinguish messages being sent to every chat while keeping messages in the chat they are apart of.

Obviously in the past there have been plugins that do this, and their will probably be a version created in sponge, but its always command base and very ugly/overcomplicated.
ChatUI has a chance to change multi-language servers.

1 Like

This is amazing!
Just curious though, would something like this even be possible in servers other than Sponge, or does the Sponge API have certain things that are essential for ChatUI?

Thereā€™s nothing specific to sponge, other than a nice Text API.
One thing thatā€™s massively convenient is the ability to bind callback functions to click actions
(a feature of vanilla allows executing a command when you click a piece of text)

Itā€™s all done (internally) using the vanilla JSON format (see: http://wiki.vg/Chat)

1 Like

Anything new here? :slight_smile:

Maybe soonā€¦ :stuck_out_tongue:

4 Likes

Iā€™ve re-written the text editor and implemented a basic ā€œchat groupā€ feature.

Anything I should add before moving to the release phase?

2 Likes

Update to sponge api 5.1.0.

Edit: What should a plugin do if Chat UI isnā€™t loaded/installed and the user doesnā€™t want the whole chat to be modified. Is there a thing to only print a table to the player? And maybe getting text input?

Itā€™s fully 5.x.x compatible, coincidentally also compatible with the current API 6 snapshots (though cannot say itā€™s API 6 compatible until we get a proper release of API 6)

Each user has the ability to disable Chat UI (through the Settings menu). Though there isnā€™t currently a system-wide option for that.
I think it would be a good idea to make Chat UI able to load as a library for other plugins without presenting the whole Window/Tab system to players. Iā€™ll look into making that possible.

1 Like