Chat Guard
This plugin protects your server from flood, spam, caps and swearwords in chat, commands and signs. You can configure list of swearwords, punishments and the number of warnings after which the player will be punished.
Features
- Flood prevention
- Caps prevention
- Swearword prevention
- Advetisment prevention
- Informing admins/moders about violations
- Chat cleaning
- Global mute
- Any punishment that you can do with commands
- Player get warnings
- Removing disallowed characters
- Checking for updates (Can be disabled in the config)
- Removes spam from items
Video tutorial
Waiting for tutorial with new version. Contact me if you did :)
Commands
[] - required, () - optional
/chatguard - copyright and version
/chatguard ban [WORD] - Add new banned [WORD]
/chatguard unban [WORD] - Remove banned [WORD]
/chatguard whitelist [WORD] - Do not mark [WORD] as advertisment or swearing
/chatguard cc (ALL|Player) - Clear your (or everyone's/Player's)
/chatguard info (Player) - Show your warnings or (Player)'s
/chatguard globalmute - Toggle globalmute
/chatguard warn [Player] [Type] - Warn [Player]
/chatguard mute [Player] ([Time] (Reason)) - mute player(time format - 1s, 1m, 1h, 1d, default - seconds)
/chatguard unmute [Player] - unmute player
/chatguard clear (Type) (Player) - Clear some warnings
/chatguard help - Show help page
/chatguard reload - Reload plugin configurations
Permissions
Permission | Description |
---|---|
chatguard.* | Full Access! |
chatguard.banword | add new swearwords |
chatguard.unbanword | and remove swearwords |
chatguard.warn | access to /cg warn command |
chatguard.mute | ability to mute players |
chatguard.unmute | and unmute players |
chatguard.whitelist | access to /cg whitelist command |
chatguard.clearwarnings | access to /cg clear command |
chatguard.info | access to /cg list command |
chatguard.info.others | watch information about other players |
chatguard.inform.[flood,spam,swear,caps] | for receiving alerts about violations |
chatguard.clearchat | access to /cg cc commad |
chatguard.clearchat.all | ability to clear chats of all players |
chatguard.clearchat.others | access to cleaning another's chat |
chatguard.globalmute | access to /cg globalmute command |
chatguard.reload | access to /cg reload command |
chatguard.ignore.* | ignore all protections |
chatguard.ignore.[flood,spam,swear,caps,characters] | ignore [flood,spam,swear,caps] protection |
chatguard.ignore.globalmute | ignore global mute |
chatguard.ignore.cooldown | ignore cooldown |
chatguard.ignore.cc | ignore /cg cc ALL |
Metrics and Updater
This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's version and core
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
- The server's location
- Enabled filters
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true. Also plugin checks for updates, that you can change by editing plugins/ChatGuard/config.yml
@IcePaw1230
I can record in Russian, if you want.
Um why is tutorial vid in spanish? lol
@lunarixx
Add to whitelist
Could you fix a minor bug?
Whenever someone says Welcome, it counts as Advertising, as the domain brackets have .Com in them which the word "Welcome" contains. Is it possible to fix that, cause i don't want to remove the .com from the line.
I love this plugin; it keeps the players from starting flame wars in the chat.
I have a lot of servers running your plugin, so any change needs to be configured on all of it, then with sql it don't.
@zekigames08
I can't understand what you want with sql
@Den_Abr
is that I have 90 servers..
please add sql :(
@zekigames08
Why?
Please add SQL !!!!!
:)
@Fabyold
Remove patterns section in config
Error: 15.03 11:06:12 [Multicraft] Skipped 64 lines due to rate limit (30/s) 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:131) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:232) [craftbukkit-1.7.2.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.netty.ChannelInjector.decode(ChannelInjector.java:303) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.netty.NettyProtocolInjector.onPacketReceiving(NettyProtocolInjector.java:260) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.netty.NettyProtocolInjector.packetReceived(NettyProtocolInjector.java:300) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:566) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:599) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:67) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:114) [ProtocolLib.jar:?] 15.03 11:06:12 [Server] INFO at ru.Den_Abr.ChatGuard.Handlers.PacketHandler$1.onPacketReceiving(PacketHandler.java:40) [ChatGuard.jar:?] 15.03 11:06:12 [Server] INFO at ru.Den_Abr.ChatGuard.Handlers.ChatHandler.onChat(ChatHandler.java:54) [ChatGuard.jar:?] 15.03 11:06:12 [Server] INFO at ru.Den_Abr.ChatGuard.Workers.Checkers.checkAdvert(Checkers.java:104) [ChatGuard.jar:?] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.compile(Pattern.java:1022) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.<init>(Pattern.java:1337) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.compile(Pattern.java:1665) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.expr(Pattern.java:1964) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.sequence(Pattern.java:2018) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.group0(Pattern.java:2854) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.expr(Pattern.java:1964) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.sequence(Pattern.java:2090) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO at java.util.regex.Pattern.error(Pattern.java:1924) [?:1.7.0_45] 15.03 11:06:12 [Server] INFO ^ 15.03 11:06:12 [Server] INFO ([0-9a-z_?-?]{2,}\.)+(ru|com|org|ua|su|tv|net|biz|info|name|mobi|kz|by|lv|eu|tk|??m)(:\d*)? 15.03 11:06:12 [Server] INFO java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 80 15.03 11:06:12 [Server] ERROR Unhandled exception occured in onPacketReceiving(PacketEvent) for ChatGuard
@BlackFing85
Pluging works only with installed protocollib.
Nothing worked for me when I tried the plugin.
@tanjx
Ok, It will not check for prohibitions of other plugins. New version waits for approval.
this plugin will break other plugins by executing commands asynchronously - PlayerCommandPreprocessEvent is not an async event and plugins that rely on this may break
please open this:
http://dev.bukkit.org/bukkit-plugins/skript/tickets/330-error-when-teleporting/
ok perfect thanks for your help.
And as i always say you do a great job with this plugin
@MonnierAnt
Whitelist uses also regexp and you can add only main part of word(eg. construct, contain, etc.)
But there is a lot of word in french that have the three letters i think in fact that the swear list check full word and not part of word.
Maybe if you could implement a boolean in config to change between the two mode by complete word or by part.
@MonnierAnt
For this occasions created Whitelist