Compatibility
Minecraft: Java Edition
1.21.8
Platforms
Tags
Creators
Details
Licensed MIT
Published 10 months ago
Minechat
Minechat brings modern, realâtime chat to your Minecraft server with a Minecraftâthemed web interface, REST API, and WebSocket gateway. Players can chat from the browser or inâgame, send offline DMs, manage friends and groups, and see ranks and online statusâeverything stays in sync.
Note
- You can get the web interface from the minechat repository inside the /web folder
- https://github.com/HarshitKumar9030/minechat/web
Features
- Realâtime chat
- WebSocket live updates between web and inâgame
- Group chat with announcements and basic moderation
- Offlineâfriendly DMs (webâweb and webâMC; messages persist)
- Friends and groups
- Friend list, requests, and removal
- Create/join/leave groups, invite flow with membership checks
- Group roles (owner/admin/member) and member counts
- Ranks and presence
- Renders Minecraft "§" color/style codes on web
- Online/offline indicators and member lists
- Web API + WebSocket
- REST for authentication, lists, history
- WebSocket for live events and sending messages
- CORS enabled for development
- Productionâready
- Error handling, session tokens, rate limiting basics
- Nginx reverse proxy examples and HTTPS guidance
- Works great alongside Vault/LuckPerms/PowerRanks (optional for rank data)
Quick Start
- Install
- Drop the plugin jar into your serverâs plugins folder.
- Start the server once to generate configs.
- Configure
- In
config.yml:
web:
enable-api: true
port: 8080 # HTTP REST API
websocket-port: 8081 # WebSocket (real-time)
- Enable web access
- In-game, each player runs:
/friend webaccess enable <password>
- Connect from the web
- REST API: http://localhost:8080/api/
- WebSocket: ws://localhost:8081/ws
Web API (highlights)
- POST
/api/authâ authenticate with username + web password - GET
/api/friends?playerUUID={uuid} - GET
/api/groups?playerUUID={uuid} - GET
/api/messages?groupId={uuid}&limit=50 - GET
/api/users, GET/api/ranks - Group invites: GET
/api/group-invites, POST accept/reject
Example login request:
POST /api/auth
{ "username": "Player", "password": "web_password" }
WebSocket (highlights)
- Connect:
ws://localhost:8081/ws - Authenticate:
{ "type": "auth", "data": { "username": "Player", "password": "web_password" } }
- Send:
- Friend:
type: "friend_message" - Group:
type: "group_message"
- Friend:
- Receive:
friend_message,group_message,message_sent,error, etc.
Commands (selection)
- Web access
/friend webaccess enable <password>/friend webaccess disable
- Groups (examples)
/group create <name> [description]/group join <name>/group leave <name>/group invite <name> <player>/group accept <name>|/group deny <name>/group chat <name> <message>
Note: Admin/owner actions and settings are enforced serverâside.
Compatibility
- Server: Paper/Spigot/Purpur (Paper recommended)
- Java: 17+
- MC versions: 1.20.xâ1.21.x (adjust as needed for your environment)
- Optional: Vault/LuckPerms/PowerRanks for richer rank display
Security Notes
- Players control web access via an inâgame password.
- Session tokens and basic rate limiting included.
- Supports reverse proxy + HTTPS (see Nginx examples).
- Input is sanitized on the web UI; still validate on integrations.
Links
- Source: https://github.com/HarshitKumar9030/minechat
- Issues: https://github.com/HarshitKumar9030/minechat/issues
- License: MIT


