[ADMN/CHAT] ChatCensor v0.10 - released

Discussion in 'WIP and Development Status' started by ddj, Feb 15, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    Moved to a release thread:

    Hi All,

    I am running a smp server for my 10 years old son and his friends.
    Altough the server is targeted to them, I made it public just for the fun of it.

    Because of his (and his friends) age, I started to develop a plugin that tries to keep the chat nice and safe. I already use iChat, and will see if I can incorporate this plugin, since it already has mild censor functionality. But.. I really like to - kind of - start from scratch:)

    This will be my first plugin, so it will probably take some time before it gets finished, but in general I'm surprised to see how fast and easy I am already able to get my own plugin working!
    Considering I am coding for 20 years now, but never in java:)

    To get an idea on what it will can can do here a progress list:

    * Chat hooks 100%
    * Permission integration 100%
    * iConomy integration (paying a fine for cursing) 100%
    * replace words by self-choosen default 100%
    * Maintain word list with commands 100%
    * Broadcasting messages on jail/unjail, reasons etc 100%
    * Storing forbidden word list in mysql/sqllite 100%
    * Optionally mute jailed players 100%
    * Configurable plugin messages 100%
    * Jail plugin integration (using server consolecommand until jail plugin api is complete) 95%
    * Storing plugin actions in database so we can adjust penalties based on behaviour 75%
    * Cleaning up code (bigtime) 75%
    * Commands for letting the cc plugin manually jail/fine/kick players 100%

    Concerning mysql & sqlite: I used the same paths for these libraries as the jail plugin, so if you have that, you will be fine. If not, make sure you have mysql.jar and sqlite.jar in your bukkit/lib folder.

    In courtesy of:
    matejdro (Jail plugin)
    Nijikokun(iConomy and Permissions plugin)

    Note that english is not my native language

    Current development version:
    - Working for and compiled against bukkit #541 + tested with 3 latest recommended bukkit builds
    - GroupManager v1.0(pre-alpha-3) / should work with permissions
    - iConomy v4.4
    - Jail v0.5.4

    Commands & permissions:
    perm: ChatCensor.list
    /cc or /cc status -> shows status page (with all settings on fines/jail/time etc)
    /cc list -> Lists all forbidden words
    /cc -> own stats
    /cc check <username>  -> show others stats
    /cc top -> top10 userlist
    perm: ChatCensor.modify
    /cc setfine <amount>
    /cc setjailtime <minutes>
    /cc save -> Saves wordlist (after add/remove word)
    /cc add <word>
    /cc remove <word>
    /cc toggle pay|jail|kick -> toggles options on/off
    perm: ChatCensor.reload
    /cc reload -> Reloads wordlist from file
    /cc import -> Imports censor.txt in database
    Perm: ChatCensor.action.kick
    /cc kick player -> Let chatsensor kick this player manually
    Perm: ChatCensor.action.jail
    /cc jail player -> Let chatsensor jail this player manually
    Perm: ChatCensor.action.fine
    /cc fine player -> Let chatsensor fine this player manually
    Note that Perm: ChatCensor.action.* should also work
  2. Offline


    Nice to know you are developing this. Ichat is nice, but always been kind of basic, as niji has nicer things to do :D

    Could I ask you something?
    currently iChat has a word filter, so if you type the word it is replaced by ****. While this works, I think it would be cool if you could change the result of individual words.
    Like, if someone types F*king, it would censor to Damn... So if you could config the output it would be really nice.

    Also, the iConomy fee is a great idea!
  3. Offline


    Once I figured out the config.yml I will see if I can add this optionally.
  4. Offline


    After learning basic bukkit classes etc today I discovered I had to re-arrange some things because of the changed command structure within bukkit. Costed me a lot of time, because I still dont know where to find the right resources for that (besides the usual javadocs).

    Well figured it out, so all commands are now console/player aware, so they can be used from the console as well as from the player perspective.

    Another thing that costed me a lot of time was client crashes due to chat colors. Took me few hours, but that is also taken care of now I believe.

    I also fooled around with database support, but decided to wait for some native bukkit support. If that takes to long, I probably will go for some persistence or RDMBS like plugin.

    Right now I am working on custom messages by using the config.yml (Player has been sent to jail because of.. etc) to make it possible to change the messages to suit your own needs.

    Would be nice to have some server admins to test this plugin, if you want to, drop me a message.
    I myself am running the last build of bukkit, and that's also where I complile my plugin against.
  5. Offline

    The PC Tech Guy

    Hi, I'd like to check out this plugin, so I don't have to threaten those who use invection. Also, as said by anon, the iConomy fee is a very ingenius idea.
    (I don't know if you intended it to be chat Sensor, instead of chat censor...)
  6. Offline


    Just back from a short holiday, to be surprised with the changed bukkit command system.
    Again spent some time with the changed command structure and the changed iConomy plugin.

    Now compatible with the latest bukkit build, and iconomy/permissions (altough I use groupmanager myself)

    Thanks for mentioning the typo:)

    I will see if I can place a zip with a early (but working) version of my plugin, github is just not for me, for a java/eclipse greenhorn, it is just to complicated, as I have no idea what to do where:)

    * pre-release in OP
  7. Offline


    Actually nearing release:)

    Now only the boring work has to be done:
    * cleaning up code
    * replacing hardcoded text strings with configurable text.
    * Changing fixed jailtimes into some kind of variable value (based on how many times user x misbehaves within a certain timeframe)
  8. Offline


    Wow, just posting to let you know, I was working on how to get started in Bukkit plugin programming to make a similar plugin, could you possibly also add an option that instead word for word replacing , e.g. fuck for damn EVERY TIME, it can pick from a randomized list?
  9. Offline


    I am loving this idea, especially with the iconomy add-on, oooeee our swear jar would be full!

    I was wondering about a client side toggle, /chat censor -on or /chat censor -off this means that it's up to the individual to decide about whether or not they want to have the censor on. Is there a way of doing this?

    I have a 9yr old playing on a server primarily of unrestrained teens I'm Admin on & I don't want to stiffle the others chatting, but I want to be able to make sure my Son turns his chat to "censor".

    Is this a possibility?

    [add] I have received a reply from the developer of HeroChat, I've posted his response here, I don't know what this means (I'm admin, not tech support), perhaps this may be of use for what I want, so we can have both mods.


    Many thanks, have a nice day.
  10. Offline


    Will update total progress later today or tomorrow.

    Herochat/other plugins:
    My plugin uses lowest priority and works as this:
    1) it receives all chat events and searches for forbidden words in it
    2a) if it doesnt find any forbidden words, it just relays the message to all other plugins
    2b) if it does find a forbidden word it does this:
    It sends one or more of these message as broadcast to all players:
    a) player x is jailed for n minutes for cursing
    b) player x is fined nn coin for cursing
    c) player x is kicked for cursing
    The message text is changed by replacing the forbidden word(s) by the pre-configured word.
    3) The message itself is never canceled, only changed, all other plugins with higher priority then the lowest will receive it just as it was a normal chat message.

    Client based toggle:
    Good idea, but I don't think the targeted audience (9/10 year olds) will actually set the censor to on:)
    Besides that, I also thought about just replacing the forbidden words without any consequences such as jail/fine/kick. But for me that misses the point of this censor, I just don't want any cursing on my server, and if you just replace some words, they will find other ways to curse (sh1t/f*ck etc). The actual pentalties are keeping my server curse-free and as side-effect the atmosphere is much more relaxed and easy going than other servers..

    Will see what I can do
  11. Offline


    Works great with HeroChat! Excellent plugin if you're looking for a more comprehensive censor.

    One question: are the words on the censor list treated as literal strings or do they support regex? If the former, then you might want to consider allowing regex so that users can define more complicated censors.
  12. Offline


    Just literal strings, mainly because I really hate regex.
    Will see if I can add this, because besides hating it, I know how powerfull regex is:)

    Expect a new build today where jail actually works, and data is moved to mysql/sqlite

    New version uploaded, lots of changes in it.
    I have the feeling it is really getting very close to release, so no more changes until that has been done.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 9, 2016
  13. Offline


    Does fine have to be iconomy? Where is the jail set up?
  14. Offline


    This plugin is released, details can be found in this thread.

    Only iconomy is supported, but if other economy plugins are needed, let me know.
    The jail does not have to be setup within plugin; it just uses this plugin (if toggle = true) by sending a jail <playername> <minutes> command automatically.
  15. Offline


    Also, I dont get how to download this? the link wont download, and when I save link as, doesnt work. Also, will you add support for taking items away, instead of just iconomy in the future?
  16. Offline


    Again, the plugin can be found (and downloaded) by clicking on this thread
    Concerning your questions on taking items away; I have no plans in that direction, but if you have a good idea how this can be approached, don't hesitate to tell me.
  17. Offline

    Alex K

    I've found one flaw in this one. If you censor the word damn, and type daamn, it doesn't block it.
  18. Offline


    censoring damn? thats so 1950's
Thread Status:
Not open for further replies.

Share This Page