Skip to content

NewNanCity/HuskChat-Remake

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HuskChat Remake

๐ŸŽ‰ 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

Acknowledgments

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

HuskChat
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.

New Features and Improvements

๐Ÿš€ 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

Features

โญ 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

Supported Chat Types

HuskChat Remake supports multiple chat types, each with corresponding events and APIs:

๐Ÿ“ข Channel Chat

  • Global Channels - Cross-server chat
  • Local Channels - Same-server player chat
  • Staff Channels - Admin-only channels
  • Custom Channels - Fully configurable channel system

๐Ÿ’ฌ Private Messages

  • Direct Messages - One-on-one private chat
  • Group Messages - Multi-player group chat functionality
  • Reply Feature - Quick reply to last received message

๐Ÿ“ฃ Broadcast Messages

  • Server Broadcasts - Server-wide announcements
  • Admin Notifications - Admin-only broadcasts

๐Ÿ”— Special Messages

  • Join/Quit Messages - Player server entry/exit notifications
  • Discord Integration - Sync with Discord channels
  • Social Spy - Admin monitoring of private chats

Developer API

HuskChat Remake provides a complete API for other plugins to use:

๐ŸŽฏ Event System

// 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!");
});

๐Ÿ› ๏ธ Channel Management API

// Switch player channel
api.switchPlayerChannel(player, "staff", SwitchReason.API_CALL);

// Get players in channel
List<OnlineUser> players = api.getPlayersInChannel("global");

๐Ÿ“จ Message Sending API

// Send private message
api.sendPrivateMessage(sender, List.of("PlayerName"), "Hello!");

// Send channel message
api.sendChannelMessage("global", "System Announcement", null);

๐ŸŽฎ Player Status Integration

// 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());
}

Building

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

License

HuskChat is licensed under the Apache 2.0 license.

Translations

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.

Documentation Links

๐Ÿ“š Developer Documentation

๐Ÿ”— Original Links

๐Ÿ†˜ Getting Help

  • Issues โ€” Report bugs or request features
  • Discussions โ€” Discussions and Q&A

ยฉ William278, 2024. Licensed under the Apache-2.0 License.

About

A simple & customizable no-frills Minecraft chat system, remaked by NewNanCity team.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%