Chat UI - A User Interface library and plugin for creating GUIs in the chat box

This is a discussion topic for the Ore project, Chat UI. View the full project on Ore for downloads and more information.


Chat UI

A User Interface library and plugin for creating GUIs in Minecraft’s chat box.

Aim

To enhance player user experience on multiplayer by utilizing the chat box. In addition, this plugin provides a graphical approach to tasks commonly performed with commands.

Features

  • Tabbed interface with status bar
  • Player list with admin tools
  • Private messages between players
  • Pagination viewer
  • Configuration editor for the server config
  • Permissions manager
  • Chat groups
  • Per-player settings with ability to disable the interface
  • Expandable - other plugins can hook into the interface and add new features

For a full description and demonstration of Chat UI’s features, please check out the wiki.

Demo

Demo gif

Chat UI Library

Since version 2.0.0 Chat UI has split into two components. It now requires Chat UI Library in order to function. The library provides the infrastructure for building interfaces in chat, and Chat UI provides an end-user experience with its tabbed interface.

Links

Configuration File

For UI configuration (width/height/etc) refer to Chat UI Library’s configuration.

The configuration file is located in config/chatui/chatui.conf

A completely fresh copy of the config looks like the following:

features {
    "chatui:chatgroup" {
        config {}
        enabled=true
    }
    "chatui:privmsg" {
        config {}
        enabled=true
    }
}
player-settings {
}

The features section defines configuration for features registered to Chat UI. This includes any other plugins that add features to Chat UI.

Each feature has it’s own subsection with the key being the plugin ID and feature ID.
Features can be enabled or disabled with the enabled key.

player-settings store the Chat UI specific player settings, indexed by the player’s UUID.

Not to be confused with the player-settings option from Chat UI Library.

The only setting at the moment is enabled. If set to true then the interface is enabled for that user, otherwise if false it is no shown.

Settings in this config section are typically controlled by the player’s interaction with Chat UI, the server admin need not configure manually.

Commands

Chat UI Library has several commands for configuring the UI.

When the interface is enabled, /chatui disable will disable it. When disabled, /chatui enable will enable it again.

Permissions

The following permissions are defined by Chat UI:

Permission Description
chatui.admin.config Allow this subject the ability to view the server config. Note: granting this permission also grants the subject all sub-permissions. They will need to be explicitly denied if not desired
chatui.admin.config.add Ability to add new values to the server config
chatui.admin.config.delete Ability to delete values from the server config
chatui.admin.config.edit Ability to edit values in the server config
chatui.admin.group.create Ability to create chat groups
chatui.admin.group.delete Ability to delete chat groups
chatui.admin.permissions Ability to use the permissions manager. Note that Chat UI has PEX integration, so if you have PEX, the player will also need permission to use PEX’s commands
chatui.admin.player.ban Ability to ban players from the player list tab
chatui.admin.player.kick Ability to kick players from the player list tab
10 Likes

Tables don’t work on the forums, so the permissions look janky.

The post was designed for the markdown format supported on Ore, see: simon816 / Chat UI
There is also the configuration page on the wiki: configuration · simon816/ChatUI Wiki · GitHub

Is there a way for me, as a plugin developer, to add easy config editing support through ChatUI? Without reinventing the wheel?

Yes. Construct an instance of ConfigEditTab with the ConfigurationNode and a title for the tab.

Then add the tab to the player’s Window
Developer documentation will be available on the wiki, I’ll be writing it soon.
For now, you can see how the built-in features do it

Is this still in development?

I haven’t worked on this for a long time but I do plan on updating it sometime soon.

A new version has been released for Chat UI, it is available for download here.


This is a maintenance release updating to API 7

The plugin has been split into two separate plugins. You will need Chat UI Library in order to use Chat UI. The library contains reusable components that other plugins can make use of.
Existing config files will need to be updated - this is not done automatically, you will need to move the relevant player-settings section to config/chatuilib/preferences.conf. See Chat UI Library documentation for more on the config.
bStats has been removed.

1 Like

Update on documentation. Chat UI Library API/UI Components have been documented for developers here: Chat UI Library · simon816/ChatUI Wiki · GitHub

2 Likes

Is this intended to work with other chat plugins? E.g. UltimateChat

It should work over the top of any other chat plugins - the Global tab should basically be the same content as without Chat UI. If it breaks with another plugin I’ll try to fix any incompatibilities.
One feature I have planned is to integrate with other plugins more - e.g. if a plugin adds chat channels/groups I’d like to integrate those as tabs.