bChatMod

bChatMod

A lightweight, configurable chat moderation plugin: blocks profanity (Italian + English), notifies staff with the full message, and supports anti-bypass modes (normal/strict/ultra). Suitable for lifesteal and SMP

92 downloads 1 followers

banner

A lightweight, configurable chat moderation plugin for Paper/Spigot: blocks profanity (Italian + English), notifies staff with the full message, and supports anti-bypass modes (normal / strict / ultra).

✨ Features

πŸ”§Core Features

  • Unicode-aware blacklist matching for words and phrases (reduces false positives).
  • Staff notifications include the full original message and the detected match ({message} + {match}).
  • Configurable anti-bypass modes:
    • normal β€” pattern-based detection only (least aggressive).
    • strict β€” pattern + leet & repeat normalization + insertion-only fuzzy detection.
    • ultra β€” strict + vowel-stripped checks (most aggressive).
  • Configurable messages and staff formatting.
  • No automatic muting by default (plugin focuses on detection and notification).
  • Lightweight, compatible with Paper/Spigot 1.19+ (tested up to 1.21.x).

πŸ›‘οΈ Anti-Bypass Techniques

  • Leet normalization (f4ck β†’ fack).
  • Reduce repeated letters (fuuuck β†’ fuuck).
  • Sliding-window insertion-only fuzzy detection (detects extra-letter bypasses while avoiding substitutions like duck).
  • Vowel-stripped checks (optional ultra mode).

❓ Why bChatMod?

  • Accurate: word/phrase boundaries and Unicode-aware patterns avoid many false positives.
  • Configurable: pick the level of aggressiveness for your community.
  • Transparent: staff receive the full message for context before action.

πŸ“¦ Installation

  1. Build or download the JAR and place it in your server plugins/ folder.
  2. Start the server to generate the default config.yml.
  3. Edit plugins/bChatMod/config.yml to customize blacklist, messages and anti-bypass mode.
  4. Reload the plugin with:

/bchatmod reload

βš™οΈ config.yml

# Anti-bypass mode: "normal" | "strict" | "ultra"
anti-bypass-mode: "normal"

# Debug (toggle true while tuning)
debug:
  block-log: false

# Messages
player-block-message: "&7You cannot send that message. It contains blocked words."
staff-message-format: "&b[bChatMod] &7{player} tried cursing: &r{message} &7(matched: &b{match}&7)"

# Permission required to receive staff notifications
staff-notify-permission: "bchatmod.notify"

# Blacklist (example entries)
blacklist:
  - "fuck"
  - "shit"
  - "example-offensive-term"

dragon πŸ“ Notes Short tokens (length ≀ 3) are handled conservatively to avoid false positives (e.g., "ass" inside "basso"). Use caution when adding short tokens. Use debug.block-log: true during tuning to see which pattern/candidate matched in console.

Commands Command Description /bchatmod reload Reload configuration and rebuild blacklist patterns

πŸ”‘ Permissions bchatmod.notify β€” receive staff notifications (default: op)
bchatmod.reload β€” reload config (default: op)
bchatmod.bypass β€” bypass chat filter (default: op)

🧩 Placeholders {player} β€” player name
{message} β€” full original message the player attempted to send
{match} β€” the substring or variant that triggered the block

&b[bChatMod] &7{player} tried cursing: &r{message} &7(matched: &b{match}&7)

bstats

Version Minecraft Loader Download

bChatMod 2.0.100-BETA

2.0.100-BETA

1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
bukkit, folia, paper, purpur, spigot
Download