Skip to content

Commit a0e798c

Browse files
committed
Add README and header image
1 parent d62e86c commit a0e798c

File tree

2 files changed

+241
-0
lines changed

2 files changed

+241
-0
lines changed

README.md

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
# Werchat
2+
3+
[![Latest Release](https://img.shields.io/github/v/release/HyperSystemsDev/Werchat?label=version)](https://github.com/HyperSystemsDev/Werchat/releases)
4+
[![License](https://img.shields.io/badge/license-GPLv3-green)](LICENSE)
5+
[![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289DA?logo=discord&logoColor=white)](https://discord.gg/SNPjyfkYPc)
6+
[![GitHub Stars](https://img.shields.io/github/stars/HyperSystemsDev/Werchat?style=social)](https://github.com/HyperSystemsDev/Werchat)
7+
8+
**Channel-based chat system for Hytale servers.** Multiple channels, quick-chat routing, private messaging, nicknames, and moderation — all in one plugin.
9+
10+
**[Discord](https://discord.gg/SNPjyfkYPc)**
11+
12+
![Werchat](WerChat.png)
13+
14+
## Features
15+
16+
**Channel System** — Multiple channels with custom colors, nicknames, distance-based and world-restricted delivery.
17+
18+
**Quick Chat** — Prefix symbols to route messages to any channel without switching. `!` for Global, `~` for Trade.
19+
20+
**Private Messaging**`/msg` and `/r` with reply tracking, ignore lists, and offline detection.
21+
22+
**Player Nicknames** — Custom display names up to 20 characters with hex colors and two-color gradients.
23+
24+
**Mention System**`@player` highlighting with configurable color and bold formatting.
25+
26+
**Moderation Tools** — Per-channel ban, mute, moderators, word filter (censor/block modes), and chat cooldown.
27+
28+
**Permission Integration** — HyperPerms and LuckPerms prefix/suffix support with hex color codes.
29+
30+
**Message Colors** — Independent message text colors and gradients, separate from nickname colors.
31+
32+
**Persistent Storage** — JSON-based data with auto-save every 5 minutes and immediate save on changes.
33+
34+
## Quick Start
35+
36+
1. Drop `Werchat-1.1.8.jar` in your `mods/` folder
37+
2. Start your server — four default channels are created automatically
38+
3. Use `/ch list` to see channels, `/ch join <channel>` to join one
39+
4. Type `!hello` to quick-chat in Global or `~hello` for Trade
40+
41+
```
42+
/ch list # List all channels
43+
/ch global # Switch to Global channel
44+
/ch join trade # Join the Trade channel
45+
/msg Steve Hey! # Send a private message
46+
/ch playernick CoolName # Set your nickname
47+
```
48+
49+
## Default Channels
50+
51+
| Channel | Nick | Color | Range | Auto-Join | Quick-Chat Symbol |
52+
|---------|------|-------|-------|-----------|-------------------|
53+
| Global | Global | White (`#ffffff`) | Unlimited | Yes | `!` |
54+
| Local | Local | Gray (`#808080`) | 100 blocks | Yes ||
55+
| Trade | Trade | Gold (`#ffd700`) | Unlimited | Yes | `~` |
56+
| Support | Support | Green (`#00ff00`) | Unlimited | Yes ||
57+
58+
## Commands
59+
60+
### Player Commands
61+
62+
| Command | Aliases | Description |
63+
|---------|---------|-------------|
64+
| `/ch list` | `/ch l` | List all channels |
65+
| `/ch join <channel> [password]` | `/ch j` | Join a channel |
66+
| `/ch leave <channel>` || Leave a channel |
67+
| `/ch <channel>` || Switch active channel |
68+
| `/ch who <channel>` | `/ch w` | View channel members |
69+
| `/ch info <channel>` || View channel details |
70+
| `/ch create <name> [nick]` || Create a new channel |
71+
| `/ch playernick <name> [#color] [#gradient]` | `/ch pnick`, `/ch nickname` | Set your nickname |
72+
| `/ch msgcolor <#color> [#gradient]` | `/ch chatcolor` | Set your message color |
73+
| `/ch help` | `/ch ?` | Show command help |
74+
75+
### Messaging Commands
76+
77+
| Command | Aliases | Description |
78+
|---------|---------|-------------|
79+
| `/msg <player> <message>` | `/whisper`, `/w`, `/tell`, `/pm` | Send a private message |
80+
| `/r <message>` | `/reply` | Reply to last PM |
81+
| `/ignore <player>` || Toggle ignore on a player |
82+
| `/ignorelist` || List ignored players |
83+
84+
### Admin / Moderator Commands
85+
86+
| Command | Aliases | Description |
87+
|---------|---------|-------------|
88+
| `/ch color <channel> <#hex> [#hex]` || Set channel tag color (and optional message color) |
89+
| `/ch nick <channel> <nick>` || Set channel shortcut name |
90+
| `/ch rename <channel> <newname>` || Rename a channel |
91+
| `/ch password <channel> [password]` | `/ch pass` | Set or clear channel password |
92+
| `/ch distance <channel> <blocks>` | `/ch range` | Set range (0 = unlimited) |
93+
| `/ch world <channel> add\|remove <world>` || Restrict channel to worlds |
94+
| `/ch mod <channel> <player>` | `/ch moderator` | Add a channel moderator |
95+
| `/ch unmod <channel> <player>` || Remove a channel moderator |
96+
| `/ch ban <channel> <player>` || Ban a player from a channel |
97+
| `/ch unban <channel> <player>` || Unban a player |
98+
| `/ch mute <channel> <player>` || Mute a player in a channel |
99+
| `/ch unmute <channel> <player>` || Unmute a player |
100+
| `/ch remove <channel>` | `/ch delete`, `/ch del` | Delete a channel |
101+
102+
Channel moderators can use admin commands on their own channels without needing global permission nodes.
103+
104+
<details>
105+
<summary><strong>All Permissions</strong></summary>
106+
107+
| Permission | Description |
108+
|------------|-------------|
109+
| `werchat.*` | All Werchat permissions (wildcard) |
110+
| `werchat.list` | List channels |
111+
| `werchat.join` | Join channels |
112+
| `werchat.leave` | Leave channels |
113+
| `werchat.create` | Create channels |
114+
| `werchat.who` | View channel members |
115+
| `werchat.info` | View channel info |
116+
| `werchat.switch` | Switch active channel |
117+
| `werchat.color` | Set channel colors |
118+
| `werchat.nick` | Set channel nick |
119+
| `werchat.password` | Set channel password |
120+
| `werchat.rename` | Rename channels |
121+
| `werchat.remove` | Delete channels |
122+
| `werchat.mod` | Manage channel moderators |
123+
| `werchat.distance` | Set channel range |
124+
| `werchat.ban` | Ban/unban from channels |
125+
| `werchat.mute` | Mute/unmute in channels |
126+
| `werchat.world` | Set world restrictions |
127+
| `werchat.msg` | Send private messages |
128+
| `werchat.ignore` | Ignore players |
129+
| `werchat.quickchat` | Use quick-chat symbols |
130+
| `werchat.playernick` | Set own nickname |
131+
| `werchat.playernick.others` | Set other players' nicknames |
132+
| `werchat.nickcolor` | Set nickname color/gradient |
133+
| `werchat.msgcolor` | Set own message color |
134+
| `werchat.msgcolor.others` | Set other players' message color |
135+
| `werchat.cooldown.bypass` | Bypass chat cooldown |
136+
137+
Players with `werchat.*` or `*` also bypass cooldowns and the word filter.
138+
139+
</details>
140+
141+
## Configuration
142+
143+
Config file: `mods/com.werchat_Werchat/config.json`
144+
145+
<details>
146+
<summary><strong>View full config</strong></summary>
147+
148+
```json
149+
{
150+
"defaultChannelName": "Global",
151+
"autoJoinDefault": true,
152+
"showJoinLeaveMessages": true,
153+
"allowPrivateMessages": true,
154+
"banMessage": "You have been banned from {channel}",
155+
"muteMessage": "You have been muted in {channel}",
156+
"wordFilter": {
157+
"enabled": false,
158+
"mode": "censor",
159+
"replacement": "***",
160+
"notifyPlayer": true,
161+
"warningMessage": "Your message contained inappropriate language.",
162+
"words": ["..."]
163+
},
164+
"cooldown": {
165+
"enabled": false,
166+
"seconds": 3,
167+
"message": "Please wait {seconds}s before sending another message.",
168+
"bypassPermission": "werchat.cooldown.bypass"
169+
},
170+
"mentions": {
171+
"enabled": true,
172+
"color": "#FFFF55"
173+
},
174+
"ignoreChatCancellations": false
175+
}
176+
```
177+
178+
| Key | Default | Description |
179+
|-----|---------|-------------|
180+
| `defaultChannelName` | `"Global"` | Default channel players are placed in |
181+
| `autoJoinDefault` | `true` | Auto-join default channel on connect |
182+
| `showJoinLeaveMessages` | `true` | Broadcast join/leave messages to channels |
183+
| `allowPrivateMessages` | `true` | Whether `/msg` is enabled |
184+
| `banMessage` | `"You have been banned from {channel}"` | Message shown to banned players |
185+
| `muteMessage` | `"You have been muted in {channel}"` | Message shown to muted players |
186+
| `wordFilter.enabled` | `false` | Enable the word filter |
187+
| `wordFilter.mode` | `"censor"` | `censor` replaces bad words, `block` rejects the message |
188+
| `wordFilter.replacement` | `"***"` | Replacement string in censor mode |
189+
| `wordFilter.notifyPlayer` | `true` | Warn the player when filtered |
190+
| `wordFilter.warningMessage` | `"Your message contained..."` | Warning message text |
191+
| `wordFilter.words` | (default list) | Words to filter (case-insensitive) |
192+
| `cooldown.enabled` | `false` | Enable chat cooldown |
193+
| `cooldown.seconds` | `3` | Seconds between messages |
194+
| `cooldown.message` | `"Please wait {seconds}s..."` | Cooldown message |
195+
| `cooldown.bypassPermission` | `"werchat.cooldown.bypass"` | Permission to bypass cooldown |
196+
| `mentions.enabled` | `true` | Enable @mention highlighting |
197+
| `mentions.color` | `"#FFFF55"` | Hex color for mention highlights |
198+
| `ignoreChatCancellations` | `false` | Process chat even if cancelled by other plugins |
199+
200+
</details>
201+
202+
<details>
203+
<summary><strong>Channel Format Placeholders</strong></summary>
204+
205+
Custom channel message formats support these placeholders:
206+
207+
| Placeholder | Description |
208+
|-------------|-------------|
209+
| `{name}` | Full channel name |
210+
| `{nick}` | Channel nick/abbreviation |
211+
| `{color}` | Channel color code |
212+
| `{sender}` | Player display name |
213+
| `{msg}` | Message content |
214+
| `{prefix}` | Player's permission prefix (HyperPerms/LuckPerms) |
215+
| `{suffix}` | Player's permission suffix (HyperPerms/LuckPerms) |
216+
217+
Default format: `{nick} {sender}: {msg}`
218+
219+
</details>
220+
221+
<details>
222+
<summary><strong>Building from Source</strong></summary>
223+
224+
**Requirements:** Java 25, Gradle 9.3+
225+
226+
```bash
227+
./gradlew shadowJar
228+
# Output: build/libs/Werchat-1.1.8.jar
229+
```
230+
231+
</details>
232+
233+
## Links
234+
235+
- [Discord](https://discord.gg/SNPjyfkYPc) — Support & community
236+
- [Issues](https://github.com/HyperSystemsDev/Werchat/issues) — Bug reports & features
237+
- [Releases](https://github.com/HyperSystemsDev/Werchat/releases) — Downloads
238+
239+
---
240+
241+
Part of the **HyperSystems** suite: [HyperPerms](https://github.com/HyperSystemsDev/HyperPerms) | [HyperHomes](https://github.com/HyperSystemsDev/HyperHomes) | [HyperFactions](https://github.com/HyperSystemsDev/HyperFactions) | [Werchat](https://github.com/HyperSystemsDev/Werchat)

WerChat.png

43.6 KB
Loading

0 commit comments

Comments
 (0)