Home > ChatCensor

ChatCensor

ChatCensor is a project mainly written in Java, it's free.

Bukkit Plugin: Chat censor system with auto-kick/fine/jail

ChatCensor - Chat censor system with auto-kick/fine/jail

Version: v0.21 (USE SQLITE? Rename your database from csensor.db to ccensor.db manually before using v0.21!)

Tested with craftbukkit builds: b617/b670/b740

This plugin lets you control used languaged on your server, by censor words you want.

You can also let users be kicked, fined and/or jailed, if you are running the appropiate plugins.

Features:

Filters words by pattern
Auto-Kick on use of forbidden word(s)
Let players pay a fine on use of forbidden word(s)
Let players spend time in jail on use of forbidden word(s)
Keeps track of players by storing stats in database
Lets you also use the different actions manually.
Toggle different actions on/off with commands
Set jailtime/fine amount with commands
Auto increase jailtime for recidivists
import/export wordlists

[spoiler=Prerequisites]

A mysql*.jar or sqlite*.jar in your bukkit or bukkit/lib folder
iConomy (tested with 5) - optionally
Jail (tested with v0.6.1) - optionally
Tested craftbukkit b617/b670/b740
GroupManager v1.0(alpha-5) - should work on permission, but this is untested
It checks on groupmanager first, then on permissions plugin. If not found, the plugin is disabled

[/spoiler]

[spoiler=Installation]

1) Drop the Jar in your plugin directory, and start your server.

2) Stop your server and open the generated config.yml (in plugin/ChatCensor)

3) Setup your defaults, save the config.yml and start your server

4) Start adding forbidden words with /cc add word, this can be done on the server console, or in the mc client

5) set the right toggles with /cc toggle pay|jail|kick|mute

6) off you go!

[/spoiler]

[spoiler=Config.yml]

[code]

Configuration for ChatSensor

- ddj 2011

#

fine-amount: nr of iconomy units to pay as fine

jail-time: time in minutes player is sent to jail

auto-increase-jail-time: (jail-time + (auto-increase-jail-time*total times in jail) = variable jailtime

If you want to use the default fixed jailtime, set this number to 0.0

kick-when-broke: if a player is fined, but don't have enough coin, kick him/her instead.

use-regex: In development, doesnt do much atm

settings: fine-amount: 50 jail-time: 2 auto-increase-jail-time: 0.0 kick-when-broke: true use-regex: true jail-api-type: consolecommand

Toggles (Values at startup)

use-autofine = let the player pay a fine

use-autokick = kick the player

use-autojail = automatically put the player in the nearest jail

use-automute = Mute player chat while in jail

toggles: use-autofine: true use-autokick: false use-autojail: false use-jailmute: false

database type sqlite or mysql

database: type: sqlite mysql: name: minecraft username: root password: root hostname: localhost port: 3306

Labels

labelsandcolors: chat-prefix: '[CC]' chat-prefix-color: '&d' chat-message-color: '&f' chat-highlighted-color: '&a' replace-color: '&e' replace-word: bananas marked-words-color: '&c'

Broadcast messages

broadcasttext: player-fined-message: '@playername@ received a fine of @fine-amount@ coin!' player-kicked-message: '@playername@ is kicked for not following our rules on cursing!' player-jailed-message: ' @playername@ is jailed @jailtime@ min for not following our rules on cursing!'

Messages to player(s)

messagetext: player-fined: 'You have been fined @fine-amount@ because you were not following our rules!' player-kicked: 'Kicked automatically because you were not following our rules!' player-kicked-fined: 'Kicked automatically and fined @fine-amount@ for not following our rules!' player-muted: 'You shout, but nobody is hearing you' internal-possible-toggles: 'Possible toggles: jail - pay - kick' internal-jail-status: 'Autojail status: @autojail-status@' internal-kick-status: 'Autokick status: @autokick-status@' internal-payfine-status: 'Autopay fine status: @autopayfine-status@' internal-jailmute-status: 'Prevent chatting in jail: @jailmute-status@' [/code] [/spoiler] [spoiler=Permissions] [code] ChatCensor.reload /cc reload|import|export ChatCensor.status /cc - /cc check|top ChatCensor.list /cc list|status ChatCensor.modify /cc add|remove|setfine|setjailtime|toggle|reset|clearall ChatCensor.action.* /cc jail|kick|fine ChatCensor.action.kick ChatCensor.action.jail ChatCensor.action.fine [/code] [/spoiler] [spoiler=Commands] [code] /cc or /cc status -> shows status page (with all settings on fines/jail/time etc) /cc list -> Lists all forbidden words, '/cc list abc' only show words with abc in it /cc import -> Imports words from censor.txt which you can place in the plugins/chatcensor folder This should be a simple textfiles with one word per row. /cc export -> Exports all words to a censor.txt in the plugins/chatcensor folder /cc clearall -> Clears wordlist, use with care! /cc reload -> reloads configuration settings from config.yml /cc -> own stats /cc check -> show others stats /cc top -> top10 userlist /cc setfine (NOT stored, change in config.yml for persistence) /cc setjailtime (NOT stored, change in config.yml for persistence) /cc add /cc remove /cc reset -> Reset stats on player /cc toggle pay|jail|kick|mute -> toggles options on/off (NOT stored, change in config.yml for persistence) /cc kick player -> Let chatcensor kick this player manually /cc jail player -> Let chatcensor jail this player manually /cc fine player -> Let chatcensor fine this player manually [/code] [/spoiler]

Download latest version: http://www.crafters.nl/cc/ChatCensor_v0.21.zip ([url=http://www.crafters.nl/cc/ChatCensor.jar]Jar only[/url])

Source Code is included in Jar and available through my github Changelog: Version 0.21 Fixed path bug for sqlite/linux systems Changed sqlite database name from csensor.db to ccensor.db (Use SQLITE? rename your db manually to ccensor.db before using v0.21!)

Version 0.20 Fixed autojail bug Fixed iConomy 5 support

Version 0.19 Made plugin compatible with jail 0.6.1

Version 0.18 Fixed bug with upper/lower case words not being replaced

Version 0.17 Fixed bug which caused whole sentence being replaced by 1 word [spoiler=All Versions] Version 0.16 Fixed error after disabling plugin Added some code for full regex search (not functional yet)

Version 0.15 Little changes to iconomy setup (use subtract instead of setbalance) If player is fined, but don't have enough balance -> kick Forbidden words now have to be at least 3 chars long Fixed bug where it could happen that console was spammed with bananas;) This had to do with emtpy, or very small 'words' (spaces etc). Any 'word' shorter than 3 characters now will be ignored. Added one argument to /cc list -> /cc list abc now returns all words containing abc Added /cc clearall -> used for clear all words from databae; use with care!

Version 0.14 Added multiple replacement-words. Instead of only bananas, you can set your word-value to bananas,apples,peers It will then take one randomly each time a word is replaced.

Version 0.13 Added more flexible database libraries. Having a mysql*.jar or sqlite jar in your bukkit folder or lib, it will work in both cases, with most mysql versions. Fixed bug where newly (/cc add) added words would not be active right away. Added better error-handling while accessing iconomy/jail plugins.

Version 0.12 Broadcast messages also show on console now (player fined/jailed etc). Fixed bug in jail/iconomy check. If they were not used, this resulted in errors. This plugin now can be used without them without any problems.

Version 0.11 Fixed bug with jail toggle Ignore chat events if the are cancelled (by other plugins). Added option to let the jailtime auto-increase by a certain factor If the jail-time: 4, the auto-increase-jail-time: 0.5 and a player uses a forbidden word for the 10th time, his jailtime will be: (0.5*10) + 4 = 9 mins Added /cc reset command to reset playerstats

Version 0.10 Initial Release

[/spoiler]