
PluginMIT
Minechat
Minecraft chat plugin with ranks, friends, groups, MongoDB logging, and a real-time web interface (REST + WebSocket).
55
Downloads
1
Followers
8 months ago
Updated
📦
1
Versions
📖About Minechat
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