\n \u003Ca href=\"https://github.com/WiIIiam278/HuskChat/actions/workflows/ci.yml\">\n \u003Cimg src=\"https://img.shields.io/github/actions/workflow/status/WiIIiam278/HuskChat/ci.yml?branch=master&logo=github\"/>\n \u003C/a> \n \u003Ca href=\"https://repo.william278.net/#/releases/net/william278/huskchat/\">\n \u003Cimg src=\"https://repo.william278.net/api/badge/latest/releases/net/william278/huskchat?color=00fb9a&name=Maven&prefix=v\" />\n \u003C/a> \n \u003Ca href=\"https://discord.gg/tVYhJfyDWG\">\n \u003Cimg src=\"https://img.shields.io/discord/818135932103557162.svg?label=&logo=discord&logoColor=fff&color=7389D8&labelColor=6A7EC2\" />\n \u003C/a> \n \u003Cbr/>\n \u003Cb>\n \u003Ca href=\"https://www.spigotmc.org/resources/huskchat.94496/\">Spigot\u003C/a>\n \u003C/b> —\n \u003Cb>\n \u003Ca href=\"https://william278.net/docs/huskchat/setup\">Setup\u003C/a>\n \u003C/b> — \n \u003Cb>\n \u003Ca href=\"https://william278.net/docs/huskchat/\">Docs\u003C/a>\n \u003C/b> — \n \u003Cb>\n \u003Ca href=\"https://github.com/WiIIiam278/HuskChat/issues\">Issues\u003C/a>\n \u003C/b>\n\u003C/p>\n\u003Cbr/>\n\n**HuskChat** is a no-frills, simple and customisable chat system for Minecraft networks. It supports both running on BungeeCord and Velocity frontend servers for cross-server chat, or on a single-server Spigot setup.\n\nIt'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.\n\n## Features\n**⭐ Works great out of the box** — Install on your Spigot server or Velocity/BungeeCord-based proxy and use right away\n\n**⭐ Placeholder support** — Hooks with LuckPerms to display user roles, PAPI support via [PAPIProxyBridge](https://william278.net/docs/huskchat/formatting)\n\n**⭐ Private messaging** — Private messages—including group DMs&mdash and replying, admin spy features\n\n**⭐ Fine-tune channels** — Set send/receive permissions for channels, send messages to a discord webhook, filter [& more](https://william278.net/docs/huskchat/channels)!\n\n**⭐ Quick and easy to use** — Super simple set of [commands](https://william278.net/docs/huskchat/commands). Define channel shortcut commands, too!\n\n**⭐ Advanced profanity checking** — Machine learning powered profanity filter\n\n**⭐ Filters & replacers** — Customisable spam limiting filter, anti-advertising & special emoji\n\n**⭐ Modern formatting** — Utilise modern formatting, with RGB and Gradient support via [MineDown](https://github.com/Phoenix616/MineDown)\n\n## Building\nTo build HuskChat, you'll need python (>=`v3.6`) with associated packages installed; `jep` and `alt-profanity-check`. \nYou can install these with `pip install jep` and `pip install alt-profanity-check`. These are needed to run the profanity filter tests.\n\nThen, simply run the following in the root of the repository:\n```\n./gradlew clean build\n```\n\n## License\nHuskChat is licensed under the Apache 2.0 license.\n\n- [License](https://github.com/WiIIiam278/HuskChat/blob/master/LICENSE)\n\n## Translations\nTranslations 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.\n\n- [Locales Directory](https://github.com/WiIIiam278/HuskChat/tree/master/common/src/main/resources/locales)\n- [English Locales](https://github.com/WiIIiam278/HuskChat/tree/master/common/src/main/resources/locales/en-gb.yml)\n\n## Links\n- [Docs](https://william278.net/docs/huskchat/) — Read the plugin documentation!\n- [Spigot](https://www.spigotmc.org/resources/huskchat.94496/) — View the Spigot resource page (Also: [Polymart](https://polymart.org/resource/huskchat.1217), [Modrinth](https://modrinth.com/plugin/huskchat))\n- [Issues](https://github.com/WiIIiam278/HuskChat/issues) — File a bug report or feature request\n- [Discord](https://discord.gg/tVYhJfyDWG) — Get help, ask questions\n- [bStats](https://bstats.org/plugin/bungeecord/HuskChat/11882) — View plugin metrics (Also: [Velocity](https://bstats.org/plugin/velocity/HuskChat%20-%20Velocity/14187))\n\n---\n© [William278](https://william278.net/), 2024. Licensed under the Apache-2.0 License.\n",[22,25,28],{"id":23,"url":24},"spigot","https://spigotmc.org/resources/huskchat.94496",{"id":26,"url":27},"polymart","https://polymart.org/resource/huskchat.1217",{"id":29,"url":30},"modrinth","https://modrinth.com/plugin/huskchat",[32],"William278",[23,34,35,36],"paper","waterfall","velocity",0,"",[40,58,83,106],{"order":37,"name":41,"children":42},"Setup",[43,47],{"order":37,"url":44,"title":41,"icon":45,"children":46},"setup","fa6-solid:book",[],{"order":48,"url":49,"title":50,"icon":51,"children":52},1,"config-files","Config","fa6-solid:file-code",[53],{"order":37,"url":54,"title":55,"icon":56,"children":57},"translations","Locales","material-symbols:translate",[],{"order":48,"name":59,"children":60},"Features",[61,66,71,77],{"order":37,"url":62,"title":63,"icon":64,"children":65},"commands","Commands","octicon:command-palette-16",[],{"order":48,"url":67,"title":68,"icon":69,"children":70},"join-and-quit-messages","Join & Quit Messages","mdi:greeting-outline",[],{"order":72,"url":73,"title":74,"icon":75,"children":76},2,"group-messages","Group Private Messages","ic:outline-email",[],{"order":78,"url":79,"title":80,"icon":81,"children":82},3,"social-and-local-spy","Social & Local Spy","tabler:spy",[],{"order":72,"name":84,"children":85},"Chat",[86,91,96,101],{"order":37,"url":87,"title":88,"icon":89,"children":90},"channels","Chat Channels","grommet-icons:channel",[],{"order":48,"url":92,"title":93,"icon":94,"children":95},"formatting","Formatting","mdi:paint-outline",[],{"order":72,"url":97,"title":98,"icon":99,"children":100},"filters-and-replacers","Filters & Replacers","lucide:filter",[],{"order":78,"url":102,"title":103,"icon":104,"children":105},"discord-hook","Discord Hook","material-symbols:webhook",[],{"order":78,"name":107,"children":108},"Developers",[109],{"order":37,"url":18,"title":110,"icon":111,"children":112},"Source Code","fa6-solid:code",[],20,{"SVG":115,"PNG":116,"PNG_TRANSPARENT":117,"SVG_TRANSPARENT":118},"huskchat.svg","huskchat.png","huskchat-transparent.png","huskchat-transparent.svg",[],[],{"downloadCount":122,"averageRating":123,"numberOfRatings":124,"interactions":125,"onlinePlayers":37,"onlineServers":37},27898,3.892307692307692,13,79,{"data":127,"body":128},{},{"type":129,"children":130},"root",[131,139,146,161,172,178,241,247,254,300,306,314,358,364],{"type":132,"tag":133,"props":134,"children":135},"element","p",{},[136],{"type":137,"value":138},"text","This will walk you through installing HuskChat on your Velocity or BungeeCord/Waterfall-based proxy server.",{"type":132,"tag":140,"props":141,"children":143},"h2",{"id":142},"requirements",[144],{"type":137,"value":145},"Requirements",{"type":132,"tag":147,"props":148,"children":149},"ul",{},[150,156],{"type":132,"tag":151,"props":152,"children":153},"li",{},[154],{"type":137,"value":155},"Java 17+",{"type":132,"tag":151,"props":157,"children":158},{},[159],{"type":137,"value":160},"A Spigot (1.17.1+) Minecraft server (for single-server setups) OR a Velocity (recommended) or BungeeCord/Waterfall-based proxy server",{"type":132,"tag":162,"props":163,"children":166},"notice",{"title":164,"type":165},"Warning:","warning",[167],{"type":132,"tag":133,"props":168,"children":169},{},[170],{"type":137,"value":171},"The Spigot plugin \"NoChatReports\" will not work with HuskChat. Use FreedomChat instead if you wish to eliminate chat report warnings.",{"type":132,"tag":140,"props":173,"children":175},{"id":174},"single-server-setup-instructions",[176],{"type":137,"value":177},"Single-server Setup Instructions",{"type":132,"tag":179,"props":180,"children":181},"ol",{},[182,187,203,217,230],{"type":132,"tag":151,"props":183,"children":184},{},[185],{"type":137,"value":186},"Turn off your Spigot server",{"type":132,"tag":151,"props":188,"children":189},{},[190,192,201],{"type":137,"value":191},"Download the ",{"type":132,"tag":193,"props":194,"children":198},"a",{"href":195,"rel":196},"https://github.com/WiIIiam278/HuskChat/releases/latest",[197],"nofollow",[199],{"type":137,"value":200},"latest version of HuskChat",{"type":137,"value":202},".",{"type":132,"tag":151,"props":204,"children":205},{},[206,208,215],{"type":137,"value":207},"Add the jar file to your Spigot server's ",{"type":132,"tag":209,"props":210,"children":212},"code",{"className":211},[],[213],{"type":137,"value":214},"~/plugins",{"type":137,"value":216}," folder",{"type":132,"tag":151,"props":218,"children":219},{},[220,222,228],{"type":137,"value":221},"Start your Spigot server. Let HuskChat generate its ",{"type":132,"tag":193,"props":223,"children":225},{"href":224},"/docs/huskchat/config-files",[226],{"type":137,"value":227},"config files",{"type":137,"value":229},", then stop the server again.",{"type":132,"tag":151,"props":231,"children":232},{},[233,235,239],{"type":137,"value":234},"Modify your HuskChat ",{"type":132,"tag":193,"props":236,"children":237},{"href":224},[238],{"type":137,"value":227},{"type":137,"value":240}," as needed, then start your Spigot server again.",{"type":132,"tag":140,"props":242,"children":244},{"id":243},"multi-server-setup-instructions",[245],{"type":137,"value":246},"Multi-server Setup Instructions",{"type":132,"tag":248,"props":249,"children":251},"h3",{"id":250},"velocity-installation",[252],{"type":137,"value":253},"Velocity Installation",{"type":132,"tag":179,"props":255,"children":256},{},[257,262,272,284,295],{"type":132,"tag":151,"props":258,"children":259},{},[260],{"type":137,"value":261},"Turn off your Velocity proxy",{"type":132,"tag":151,"props":263,"children":264},{},[265,266,271],{"type":137,"value":191},{"type":132,"tag":193,"props":267,"children":269},{"href":195,"rel":268},[197],[270],{"type":137,"value":200},{"type":137,"value":202},{"type":132,"tag":151,"props":273,"children":274},{},[275,277,282],{"type":137,"value":276},"Add the jar file to your Velocity proxy server's ",{"type":132,"tag":209,"props":278,"children":280},{"className":279},[],[281],{"type":137,"value":214},{"type":137,"value":283}," folder.",{"type":132,"tag":151,"props":285,"children":286},{},[287,289,293],{"type":137,"value":288},"Start your Velocity proxy. Let HuskChat generate its ",{"type":132,"tag":193,"props":290,"children":291},{"href":224},[292],{"type":137,"value":227},{"type":137,"value":294},", then stop the proxy again.",{"type":132,"tag":151,"props":296,"children":297},{},[298],{"type":137,"value":299},"Modify your HuskChat config files as needed, then start your Velocity proxy again.",{"type":132,"tag":248,"props":301,"children":303},{"id":302},"bungeecordwaterfall-installation",[304],{"type":137,"value":305},"BungeeCord/Waterfall Installation",{"type":132,"tag":162,"props":307,"children":308},{"title":164,"type":165},[309],{"type":132,"tag":133,"props":310,"children":311},{},[312],{"type":137,"value":313},"Waterfall is deprecated. Velocity is recommended as the next-generation proxy server software. You may experience issues when using HuskChat with Modern (post-1.19) Minecraft clients on your network.",{"type":132,"tag":179,"props":315,"children":316},{},[317,322,332,343,348],{"type":132,"tag":151,"props":318,"children":319},{},[320],{"type":137,"value":321},"Turn off your BungeeCord/Waterfall proxy",{"type":132,"tag":151,"props":323,"children":324},{},[325,326,331],{"type":137,"value":191},{"type":132,"tag":193,"props":327,"children":329},{"href":195,"rel":328},[197],[330],{"type":137,"value":200},{"type":137,"value":202},{"type":132,"tag":151,"props":333,"children":334},{},[335,337,342],{"type":137,"value":336},"Add the jar file to your BungeeCord/Waterfall proxy server's ",{"type":132,"tag":209,"props":338,"children":340},{"className":339},[],[341],{"type":137,"value":214},{"type":137,"value":216},{"type":132,"tag":151,"props":344,"children":345},{},[346],{"type":137,"value":347},"Start your BungeeCord/Waterfall proxy. Let HuskChat generate its config files, then stop the proxy again.",{"type":132,"tag":151,"props":349,"children":350},{},[351,352,356],{"type":137,"value":234},{"type":132,"tag":193,"props":353,"children":354},{"href":224},[355],{"type":137,"value":227},{"type":137,"value":357}," as needed, then start your BungeeCord/Waterfall proxy again.",{"type":132,"tag":140,"props":359,"children":361},{"id":360},"next-steps",[362],{"type":137,"value":363},"Next Steps",{"type":132,"tag":147,"props":365,"children":366},{},[367,376,384],{"type":132,"tag":151,"props":368,"children":369},{},[370],{"type":132,"tag":193,"props":371,"children":373},{"href":372},"/docs/huskchat/channels",[374],{"type":137,"value":375},"Channels",{"type":132,"tag":151,"props":377,"children":378},{},[379],{"type":132,"tag":193,"props":380,"children":382},{"href":381},"/docs/huskchat/formatting",[383],{"type":137,"value":93},{"type":132,"tag":151,"props":385,"children":386},{},[387],{"type":132,"tag":193,"props":388,"children":390},{"href":389},"/docs/huskchat/commands",[391],{"type":137,"value":63},["Reactive",393],{"$snuxt-i18n-meta":394,"$sauth":-1,"$sxsrf":-1},{},["Set"],["ShallowReactive",397],{"$fD1VhuLPQfSq5Kjb6MOPBDmeZZVXLASbuQ_sxsenhdug":-1,"user":398,"mdc-bobufv-key":-1},["NuxtError",399],{"message":400,"statusCode":401,"statusMessage":402,"data":403},"[GET] \"https://api.william278.net/v1/users/@me\": 401 Unauthorized",401,"Unauthorized",{"error":404},"You must be logged in to perform this action.","/docs/huskchat/setup"]