Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated last month
All versions
1.1.0
Release
ChatCop 1.1.0last month 165
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
Platforms
Folia
Paper
Purpur
Spigot
Changes
Added:
- Private messages and other chat commands (/msg, /me, /mail and more) now go through the same filters as normal chat
- Muted players can no longer talk through private messages or other chat commands
- Sign, book and anvil rename filtering
- Chat slowmode, a global chat lock, and a first-join chat delay that stops bot raids
- Raid detection for the same message arriving from many accounts at once
- Mutes and unmutes now work on offline players
- Violation points, warnings and history are now kept across restarts
- Per-filter bypass permissions, so you can exempt someone from one filter instead of all of them
- Mute-exempt and mute-override permissions so staff cannot mute each other by accident
- New subcommands: check, clear, mutelist, slowmode, lock and unlock
- Tab completion on every command
- Built-in update checker that tells you when a new version is out
- Optional bStats metrics
- Discord alerts for manual mutes, unmutes and warnings
- The mute reason is now shown to the muted player
- Sexual content is now detected and reported separately from slurs
- Automatic log file rotation
Fixed:
- Words hidden with symbols no longer pass straight through the filter
- Letter-spaced words are now caught
- Words with trailing punctuation could slip past detection
- Staff alert sounds threw a console error on 1.21.3 and newer, and no sound played at all
- Players with the bypass permission could talk while muted
- Muted players could talk freely in any world where filtering was disabled
- Messages could be delivered uncensored while the player was told they had been censored
- Shadow-flagged messages could still be relayed to Discord by chat bridge plugins
- Ordinary chat was flagged as advertising, such as "that was fun.me and you" or "see you.tv"
- Custom blocked domains were still enforced after URL blocking was turned off
- A whitelisted word could be used to smuggle a blocked word past the filter beside it
- The word "crackers" was flagged as a slur
- A blank entry in a blocked phrase list silently blocked every message on the server
- A custom phrase like "nega" also matched "negative"; plain words now match as whole words only
- Reloading could throw an error if someone was chatting at that moment
- Certain censor characters threw an error and dropped the message
- All active mutes were silently wiped on reload when mute saving was turned off
- Ampersands in messages were mangled, turning "Fish & Chips" into broken text
- The flood window was capped at 10 seconds no matter what you configured
- Duplicate message detection compared messages inconsistently and under-detected repeats
- A single profane word could count as two or three against the per-message limit
- The configurable no-permission message was never actually shown to players
- The statistics permission was documented but never checked
- Testing a message polluted the tester's own spam tracking and could trip their own filter
- An @everyone inside a flagged message pinged the entire Discord server
- Mute settings were being read but were missing from the config file entirely
- A mute duration without a unit silently became a permanent mute
Improved:
- Now runs on Java 17, restoring support for 1.20.x servers that run Java 17
- PlaceholderAPI support expanded to 15 placeholders
- Discord alerts are queued and rate-limit aware instead of one request per message
- The violation log is buffered and rotated instead of being rewritten on every message
- Settings are cached instead of being re-read for every single message
- Advertising detection now sees through spelled-out addresses like "example (dot) com"
- History and message testing now work for offline players and from the console
- Unmute tab completion suggests players who are actually muted
- Staff alerts can be mirrored to console, and the quoted message length is configurable
- Config file rewritten with clearer comments and no leftover example values
- Existing config files keep working after updating, since every new option has a default
- Full documentation refresh
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:RAdVgESU:WN0TxIM0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RAdVgESU:WN0TxIM0"
}

