Skip to content

Commit

Permalink
Update README. Add images for documentation. Bump version to 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
simon816 committed Apr 3, 2017
1 parent 72af8d3 commit a136db3
Show file tree
Hide file tree
Showing 24 changed files with 53 additions and 84 deletions.
131 changes: 50 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,55 @@
# Chat UI
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.
A User Interface library and plugin for creating GUIs in Minecraft's chat box.

[__Early access downloads on the Releases page__](https://github.com/simon816/ChatUI/releases)
# 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
This plugin allows players to perform tasks using a graphically based interface as opposed to the traditonal command based interface.
* 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
* [bStats](https://bstats.org/) (plugin metrics)

For a full description and demonstration of Chat UI's features, please check out the [wiki](https://github.com/simon816/ChatUI/wiki/features).

# Demo
![Demo gif](https://i.imgur.com/BFmcx7q.gif)

# UI Library
Chat UI provides a high-level User Interface library for creating GUIs, it is inspired by JavaFX and Swing.
More information can be found on the [wiki](https://github.com/simon816/ChatUI/wiki/component-model).

# Links
* [__Downloads__](https://ore.spongepowered.org/simon816/Chat-UI/versions/recommended/download)
* [Ore Project Page](https://ore.spongepowered.org/simon816/Chat-UI)
* [Source Code](https://github.com/simon816/ChatUI)
* [Issue Tracker](https://github.com/simon816/ChatUI/issues)
* [Wiki](https://github.com/simon816/ChatUI/wiki)
* Archive (pre 1.0.0 release)
* [Old Forum Post](https://forums.spongepowered.org/t/chat-ui-a-ui-toolkit-for-the-vanilla-chat-box/10109)
* [Early versions](https://github.com/simon816/ChatUI/releases)


# Developing

## 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](https://github.com/simon816/ChatUI/wiki/integration) on integrating with Chat UI.

## Developing Chat UI itself
### Setup
Chat UI is built with [Gradle](https://gradle.org/).
To set up a workspace for development, run `gradle eclipse` for [Eclipse](https://www.eclipse.org/) or `gradle idea` for [Intellij IDEA](https://www.jetbrains.com/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](https://docs.spongepowered.org/stable/en/plugin/index.html).

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

### General Layout
A frame is defined in the chat window, where tabs can be navigated and a status bar resides on the bottom.

![Screenshot](http://puu.sh/r7v5K/3cb846506d.png)

### Player List
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.

![Screenshot](http://puu.sh/r7wtT/6c716a6341.png)


### Private Messages
From the player list, click 'Message' to start a private message with that player.

![Screenshot](http://puu.sh/r7wF5/ea5ee34efa.png)

The otherplayer will see this before clicking on the tab:
![Screenshot](http://puu.sh/r7wM9/e0e7ab506a.png)
Where '(1)' is the number of unread messages.

### Configuation Editor
Only accessible if you have the admin permission.
The configuration editor is another use of `TableUI`.
It allows navigating through a key:value based config file (uses configurate's `ConfigurationNode`).
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.
Example screen:
![Screenshot](http://puu.sh/r7wX9/5c7d8fa2f1.png)

New nodes can be created by clicking the [New] button.

![Screenshot](http://puu.sh/r7x3W/15c9b470cd.png)

Here, you enter the name of the key in chat. Then click on the type of value, and optionally enter the value afterwards.

### Settings
Each player has configurable settings. Players should adjust the settings if they have adjusted their client chat settings.
The interface uses the same config editor design from above.
![Screenshot](http://puu.sh/r7vFQ/99cf6a79ee.png)


| Setting Name | Description | Default |
|---------------|---------------------------------------------------------------------------------------|---------|
| displayHeight | This is the height of the window, measured in lines | 20 |
| displayWidth | This is the width of the window, measured in pixels | 320 |
| enabled | Whether or not ChatUI is enabled for this player (currently does not have any effect) | true |

## Extra features
Theses are features that don't have an application just yet, but may be used in the future or by another plugin.

### Text Editor
A simple text editor

![Screenshot](http://puu.sh/r7xej/3b1bc42ba2.png)

### Canvas
The canvas tab defines a drawing context (similar to JavaScript's 2D canvas context).
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:
![Screenshot](http://puu.sh/r7xvd/9625e07747.png)
(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.

## Plugin support

It is possible for other plugins to design their own interfaces on the UI.
Plugins can use existing components and are free to design custom components.

# Permissions
Currently only one permission is defined, the admin permission.

Admin Permission: `chatui.admin`
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ apply plugin: 'com.github.johnrengelman.shadow'
sourceCompatibility = "1.8"
targetCompatibility = "1.8"

version = "0.4.0"
version = "1.0.0"

group = "com.simon816.chatui"

Expand Down
Binary file added doc/canvas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/canvas_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/chat_group.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/chat_groups.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/client_settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/config_editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/config_editor_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/edit_config_value.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/main_window.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/new_config_value.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/new_tab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/pagination.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/permission_collections.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/permission_subjects.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/permissions_editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/player_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/private_message.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/text_editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/title.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/unread_pm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/main/resources/mcmod.info
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[{
"modid": "chatui",
"name": "Chat UI",
"description": "A UI Toolkit for the chat box to draw GUIs on.",
"description": "A User Interface library and plugin for creating GUIs in the chat box",
"version": "$version",
"url": "https://github.com/simon816/ChatUI",
"url": "https://ore.spongepowered.org/simon816/Chat-UI",
"authors": ["Simon816"],
"requiredMods": [
"spongeapi@$apiVersionRange"
Expand Down

0 comments on commit a136db3

Please sign in to comment.