๐ HuskChat Remake ๐ - This is a remake and improved version of the original HuskChat plugin, continued by a new maintenance team. We are committed to providing a better chat experience for Minecraft servers.
ไธญๆๆๆกฃ / Chinese Documentation
We would like to give special thanks to William278 for creating the original HuskChat plugin. This remake is based on his excellent work and has been modernized with improvements and feature extensions.
- Original HuskChat: GitHub
- Original Author: William278
Spigot
โ
Setup
โ
Docs
โ
Issues
HuskChat Remake is a clean, customizable chat system for Minecraft networks. It supports running on BungeeCord and Velocity frontend servers for cross-server chat, or on a single-server Spigot setup.
It's designed to be easy to configure with an elegant out-of-box setup, while also being highly configurable, suiting a variety of use cases by allowing you to define channels and manage who can send and receive messages within them.
๐ Extended Event System โ Complete event API for all chat types, supporting third-party plugin integration
๐ Enhanced API Interface โ Unified message sending, channel management, and user management API
๐ Player Status Integration โ Health, location, combat status, and other Minecraft-specific data integration
๐ Command Execution API โ Programmatic command execution with permission validation and event handling
๐ Modern Architecture โ Optimized for the latest Minecraft server platforms
๐ Better Extensibility โ Plugin-based design supporting custom extensions and integrations
โญ Works great out of the box โ Install on your Spigot server or Velocity/BungeeCord-based proxy and use right away
โญ Placeholder support โ Hooks with LuckPerms to display user roles, PAPI support via PAPIProxyBridge
โญ Private messaging โ Private messagesโincluding group DMs&mdash and replying, admin spy features
โญ Fine-tune channels โ Set send/receive permissions for channels, send messages to a discord webhook, filter & more!
โญ Quick and easy to use โ Super simple set of commands. Define channel shortcut commands, too!
โญ Advanced profanity checking โ Machine learning powered profanity filter
โญ Filters & replacers โ Customisable spam limiting filter, anti-advertising & special emoji
โญ Modern formatting โ Utilise modern formatting, with RGB and Gradient support via MineDown
HuskChat Remake supports multiple chat types, each with corresponding events and APIs:
- Global Channels - Cross-server chat
- Local Channels - Same-server player chat
- Staff Channels - Admin-only channels
- Custom Channels - Fully configurable channel system
- Direct Messages - One-on-one private chat
- Group Messages - Multi-player group chat functionality
- Reply Feature - Quick reply to last received message
- Server Broadcasts - Server-wide announcements
- Admin Notifications - Admin-only broadcasts
- Join/Quit Messages - Player server entry/exit notifications
- Discord Integration - Sync with Discord channels
- Social Spy - Admin monitoring of private chats
HuskChat Remake provides a complete API for other plugins to use:
// Listen to chat messages
api.registerChatMessageListener(event -> {
if (event.getMessage().contains("spam")) {
event.setCancelled(true);
}
});
// Listen to player health changes
api.registerPlayerHealthChangeListener(event -> {
if (event.isLowHealth()) {
event.getPlayer().sendMessage("Warning: Low health!");
}
});
// Listen to channel switches
api.registerChannelSwitchListener(event -> {
player.sendMessage("Welcome to " + event.getNewChannelId() + " channel!");
});// Switch player channel
api.switchPlayerChannel(player, "staff", SwitchReason.API_CALL);
// Get players in channel
List<OnlineUser> players = api.getPlayersInChannel("global");// Send private message
api.sendPrivateMessage(sender, List.of("PlayerName"), "Hello!");
// Send channel message
api.sendChannelMessage("global", "System Announcement", null);// Get player information
PlayerInfo info = api.getPlayerInfo(player);
boolean isLowHealth = info.isLowHealth();
boolean isInCombat = info.isInCombat();
// Execute commands programmatically
api.executeChatCommand(player, "/channel", "staff");
// Check chat conditions
ChatConditionResult result = api.checkChatConditions(player, "global");
if (!result.isAllowed()) {
player.sendMessage("Cannot chat: " + result.getReason());
}To build HuskChat, you'll need python (>=v3.6) with associated packages installed; jep and alt-profanity-check.
You can install these with pip install jep and pip install alt-profanity-check. These are needed to run the profanity filter tests.
Then, simply run the following in the root of the repository:
./gradlew clean build
HuskChat is licensed under the Apache 2.0 license.
Translations of the plugin locales are welcome to help make the plugin more accessible. Please submit a pull request with your translations as a .yml file.
- API Development Guide โ Learn how to use HuskChat API
- Event System Documentation โ Detailed event system explanation
- Developer Guide โ Contributing code and extending functionality
- Example Plugin โ Complete API usage examples
- Channel Configuration โ Channel configuration guide
- Command Reference โ Detailed command descriptions
- Original Documentation โ Original plugin documentation
- Original Spigot Page โ Original resource page
- Original GitHub โ Original source code
- Issues โ Report bugs or request features
- Discussions โ Discussions and Q&A
ยฉ William278, 2024. Licensed under the Apache-2.0 License.