ChatUI icon indicating copy to clipboard operation
ChatUI copied to clipboard

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

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

Chat UI depends on the Chat UI Library (also in this repository). The library provides a high-level User Interface component model for creating GUIs, it is inspired by JavaFX and Swing.
More information can be found on the wiki.

Links

Developing

Using The UI Library

The UI Library can be used with or without the Chat UI tabbed interface. See the developer documentation.

Utilizing Chat UI in another plugin

Chat UI provides an API for other plugin developers to use in their plugins.
Please check out the wiki tutorial on integrating with Chat UI.

Developing Chat UI itself

Setup

Chat UI is built with Gradle.
To set up a workspace for development, run gradle eclipse for Eclipse or gradle idea for Intellij IDEA. Then import as an existing project. Alternatively, import the project as a Gradle project from within your IDE.

If you've never worked with Sponge API before it may be worthwhile checking out the developer documentation.

Building

Simply run the gradle build task (gradle build from the command line). The plugin jar file will be written to ./build/libs/

The ChatUILib subproject also gets built at the same time. Its output is in ./ChatUILib/build/libs/.