Inactive [CHAT] iChat 2.4.4 - Custom Chat Formatting [1337]

Discussion in 'Inactive/Unsupported Plugins' started by Drakia, Feb 24, 2011.

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


    iChat 2.x - Custom Chat Formatting
    Version: 2.4.4
    CraftBukkit: 1337

    Plugin Support:
    Permissions 2.x
    Permissions 3.x

    If you are requesting help, post your entire server log (From the time it opens, until somebody talks), your entire Permission config file (As well as what it's named), and iChat config files. This information is REQUIRED for me to help you. <-- Post configs there when asking for help

    Custom chat formatting.
    Based on the idea of iChat v1.5 by Nijikokun.
    Includes code and concepts from mChat by MiracleM4n <>

    Before downloading: iChat 2.4.x has quite a few changes over the 2.3.x branches. All permissions plugins are handled in one plugin, and they all operate in relatively the same way now. This means you WILL need to redo your configs.
    Download (Direct JAR):

    Supports Permissions (Both 2.0 and 2.1), and SuperPerms handlers (PermissionsBukkit, bPermissions, and PermissionsEx).
    Allows you to specify a prefix/suffix/variable for users and groups on a per-world or global basis.
    A user-specific prefix/suffix/variable will take priority over a group prefix/suffix/variable, a world-based prefix/suffix/variable will take priority over a global prefix/suffix/variable.
    Unlimited amount of custom variables for use in chat format.
    Colors are supported in all parts of the formatting and chat text.
    Usable health bar and health amount in the formatting.
    Support for formatting of /me

    Message formatting is defined in the file plugins/iChat/config.yml
    The message formats can contain characters, color codes, and variables.
    To use colors use the standard Minecraft color codes found here:

    Available variables:
    +prefix - The prefix for this user, or this users group if they don't have one defined.
    +suffix - The suffix for this user, or this users group if they don't have one defined.
    +name - The users name
    +displayname - The users display name (Set by plugins such as Towny)
    +iname - The iChat formatted player name (Defined by iname-format)
    +group - The users group
    +healthbar - A visual health bar for this user
    +health - The users current health value (Between 0 and 20)
    +message - The message the player typed
    +world - What world the player is currently in
    +time - Timestamp, configurable in config.yml. Uses the format for SimpleDateFormat -

    Example (Default):
    iname-format: '[+prefix+group+suffix&f] +displayname'
    message-format: '+iname: +message'
    me-format: '* +name +message'
    date-format: 'HH:mm:ss'
    handle-me: true
    Example date-format (Default):
    date-format: 'HH:mm:ss'

    As of iChat 2.4.0 there have been a few changes in the way variables and groups are handled.

    As of iChat 2.4.3 native groups are supported in Permissions 2.x/3.x, PermissionsBukkit, bPermissions, and PermissionsEx.

    Variables are now defined in variables.yml in the iChat directory. This includes prefixes, suffixes, and custom variables.
    You can define an unlimited number of custom variables for groups and users, if these variables contain the static variables such as +prefix,
    +suffix, +health, etc then those variables will be replaced with their respective values.
    If a variable does not exist then it will be replaced with a blank string.

    As of iChat 2.4.4 you can now specify world-specific variables. To specify a per-world group or user variable (Prefix, suffix, or variable) you just specify it under the world as shown in the 'world' example in the default variables.yml below. Anything specified in the parent 'users' or 'groups' nodes will be considered global for all worlds.

    Default variables.yml:
    # iChat Variable Config
    # This is now the only method for defining variables
            prefix: '&e'
            prefix: '&c'
            suffix: ''
            prefix: ''
            suffix: ''
          prefix: '&a'
    Default config.yml:
    handle-me: true
    date-format: HH:mm:ss
    message-format: '+iname: +message'
    me-format: '* +name +message'
    iname-format: '[+prefix+group+suffix&f] +displayname'
    To make a group colored:
            prefix: '&4'
            suffix: ''
    message-format: '[+prefix+group&f] +name: +message'
    To make a single username colored:
            prefix: ''
            suffix: '&1'
    message-format: '[+prefix+group&f] +suffix+name&f: +message'
    As you can see, suffixes and prefixes can be used anywhere, in any combination. In this example we use prefix as a method for coloring group names, while suffix is used to color individual users. On our server we have prefixes such as "&f[&2Mod&f] " so that we can have custom tags per group instead of just the groups name. There is no end to the combination of things you can do, please TRY things before you come asking for someone else to do it for you. There are too many combinations of things for me to answer every question about how to color specific things.
    I will not be offering answers to questions such as "How do I color names?" or really anything else to do with specifics of formatting. It's pretty straightforward what you can do, and if you can't take the time to experiment then I'm not going to take the time to answer your questions.

    iname-format - The format used for +iname (Default: '[+prefix+group+suffix&f] +displayname')
    message-format - The format used for basic chat (Default: '+iname: +message')
    date-format - The format used for +date (Default: 'HH:mm:ss')
    me-format - The format used for /me commands (Default: '* +name +message')
    handle-me - Whether to handle /me commands (Default: true)

    ichat.color - Allow this group/user to use color in their chat messages.
    ichat.reload - Allow this group/user to use "/ichat reload"

    /ichat reload - Reload the iChat config file

    Q) Why is my custom message format not working? I just get the default output. Or output with no variables filled in.
    A) If you're using Permissions 2.1, make sure your Permissions config file is named "{worldname}.yml" where {worldname} is the name of your world. If you're using Permissions 2.0, make sure your Permissions config is named config.yml

    Q) How do I set the brackets color to the same as the group?
    A) Normally you have the brackets in the message-format variable, but you can just as easily move them into prefix/suffix and that way they can be per-group colored!

    Q) Why is my entire string colored? I just put a color code beside +name!
    A) A color code will persists until another color code is encountered, or the end of the line is reached. To change the line back to white use &f after the variable/string you want colored.

    Q) Why are my OPs names red?
    A) Essentials has this functionality built in. Change "ops-name-color" to 'none' in your Essentials config file.

    Q) Why does {PluginX} not work with iChat?
    A) There's a good chance it does, but you need to use +displayname instead of +name.

    Q) Why does Towny not work with iChat?
    A) iChat no longer uses %1$s for the player name, it uses player.getName() and player.getDisplayName(), until such a time that Towny is updated to use the proper method of setting a players name (Set their displayName) it will not work with iChat.

    [Version 2.4.4]
    - Updated to new FileConfiguration class
    - Fixed bypass exploit for colors in messages
    - Multi-world support for variables.yml
    - Resolved an issue with /me not reloading player variables
    [Version 2.4.3]
    - Permissions overhaul. No longer require group.{name} node unless not using a permissions handler
    [Version 2.4.2]
    - Fixed issue with inheritance in Permissions
    - Implemented start of online time variable. Need output format.
    [Version 2.4.1]
    - Remove plugin-specific group referencing. All groups are now managed via group.* nodes,
    the exception being pure Permissions 2.x/3.x
    - Fixed /ichat reload not reloading variables.yml
    - Updated /me to use BroadcastMessage
    [Version 2.4.0-final]
    - Took out variable caching, there's no hook for PermissionChange.
    - Updated README to include info on group.* nodes
    [Version 2.4.0-beta]
    - Merged all branches into one
    - Supports Perms 2.x/3.x, SuperPerms, GroupManager
    - Added a more advanded API based on the mChat API
    - Massive thanks to MiracleM4n for code and concepts
    - All variables are now retrieved from variables.yml instead of Permissions
    - Removed censor code
    [Version 2.3.2-p3]
    - Set Permissions as a dependency in plugin.yml
    - Added Permissions 3 support to the -p3 jar
    [Version 2.3.1]
    - Added iChat.ichat.parseChat(Player, String, Format) API
    - Added hook for /me chat formatting using the "me-format" config option
    [Version 2.3.0]
    - Added external iChat.ichat.parseChat(Player, String) API
    [Version 2.2.3]
    - Added +displayname/+d for player.getDisplayName()
    [Version 2.2.2]
    - Updated to latest RB
    [Version 2.2.1]
    - Updated how Permissions is loaded
    [Version 2.2.0]
    - Added the ability to have an unlimited amount of variables in message-format
    - Changed versioning scheme
    [Version 2.11]
    - Now uses per-world permissions information
    [Version 2.10]
    - Allow admins to enable color on a permissions basis
    [Version 2.09]
    - Another small update to Permissions (Returned false when I should have returned true)
    [Version 2.08]
    - Pushes PacketCollisions PermVersion change. Fixes issues with 2.5.2
    [Version 2.07]
    - Added +time tag
    [Version 2.06]
    - Added +world tag
    [Version 2.05]
    - Ignore whether the plugin is GM, just treat everything as Permissions! Means you need FakePermissions.
    [Version 2.04]
    - Added the ability to use variables in the suffix and prefix (More customizeable messages)
    [Version 2.03]
    - Verify that all available variables aren't null before calling parse
    - Fixed crash caused by color code at end of message (Basic fix, added a space)
    [Version 2.02]
    - Fix for possible NPE
    [Version 2.01]
    - There's a bug in Permissions 2.1 in getPermissionString, switched to getUserPermissionString
    [Version 2.00]
    - Initial re-write of Niji's plugin.
    - Added Permissions 2.0/2.1, and GroupManager support.[/b]
    FFS2309, Lolmewn, wassilij and 12 others like this.
  2. Offline


    i saw that with nokum .. feel bad for you somone is copying you

    so it has to be named world?
    it was named config

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


    @maxyboy PLEASE stop double posting. There is an edit button right under your post.
    I told you a bunch of posts back it needs to be named the same as your world. So if your world is "world" then it needs to be "world.cfg"
  4. Offline


    @maxyboy stop double-posting, use the edit button instead. Otherwise it can be considered spamming and that's something you can get an infraction for.
  5. Offline


    I'm having the issue, for Build 617, that groups will not appear in in-game chat, yet the name is colored according to that specific group.

    I'm having the error of "Invalid config file found and converted to proper name/format," in my console when it starts up, but my permissions file is named the same as the world, world name = 'HPSMP' and my permissions file name is 'HPSMP.yml'. I'm not positive if my configuration files are set-up properly, but here are my current ones:

    Just a note, this exact configuration worked fine before the Beta 1.4 Update and all of the updates of CraftBukkit.

            system: default
        default: false
        info: {prefix: '&d', suffix: '', build: false}
        inheritance: []
        permissions: [lwc.blockinventory, essentials.rules, essentials.motd, ichat.color ]
        default: true
        info: {prefix: '&6', suffix: '', build: true}
        inheritance: []
        permissions: [essentials.spawn, essentials.helpop, essentials.afk, essentials.rules,
          essentials.motd, essentials.kit, lwc.protect, DeathChest.use, ichat.color, essentials.suicide, essentials.spawn,
          bandages.use, essentials.signs.heal.use, essentials.motd, TradeCraft.canBuy, TradeCraft.canSell, deathtpplus.deathtp,
          deathtpplus.streak, deathtpplus.deaths, deathtpplus.kills]
        default: false
        info: {prefix: '&5', suffix: '', build: true}
        inheritance: []
        permissions: [myhome.home.basic.home, myhome.home.basic.set, myhome.home.basic.delete,essentials.spawn,
        essentials.list, essentials.mail, essentials.helpop, essentials.getpos, essentials.whois, essentials.afk,, essentials.kit.starter, essentials.rules, ichat.color, essentials.sethome, essentials.home,
        stargate.use, lwc.protect, DeathChest.use, essentials.sethome, bandages.use, essentials.warp,
        essentials.signs.heal.use, essentials.motd, TradeCraft.canBuy, TradeCraft.canSell, deathtpplus.deathtp, deathtpplus.streak,
        deathtpplus.deaths, deathtpplus.kills]
        default: false
        info: {prefix: '&a', suffix: '', build: true}
        inheritance: [Chamberlain]
        permissions: [essentials.spawn, essentials.list, essentials.mail, essentials.helpop,
          essentials.getpos, essentials.whois, essentials.afk,, essentials.rules,
        default: false
        info: {prefix: '&9', suffix: '', build: true}
        inheritance: [Magistrate]
        permissions: [essentials.heal, essentials.motd, essentials.kick, essentials.ban,
          essentials.unban, essentials.tree, essentials.bigtree, essentials.time,
          essentials.kit, essentials.tphere,, essentials.jump,
          essentials.back,, essentials.clearinventory, essentials.warp,
          essentials.kit.*, essentials.broadcast, essentials.msg,,,
          essentials.rules,, godmode.god.self, godmode.reconfig, stargate.use,
          lwc.mod, /god, herosneak.sneak, /heal,, essentials.sethome, essentials.home]
        default: false
        info: {prefix: '&c', suffix: '', build: true}
        inheritance: [Chancellor]
        permissions: ['*', essentials.*, godmode.*,, lwc.admin,
          essentials.modgrpoverride, essentials.antioch, essentials.nick,
          jail.usercmd.jailstatus, herosneak.sneak,, DeathChest.*, DeathChest.freeChest,
          DeathChest.freeSign, essentials.setspawn, TradeCraft.canMakeInfShops, TradeCraft.canMakePlayerShops, TradeCraft.canDestroyShops, ichat.color ]
        group: Viscount
        permissions: []
        group: Peasant
        permissions: []
        group: Peasant
        permissions: []
        permissions: []
        group: Chamberlain
        permissions: []
        group: Peasant
        permissions: []
        group: Chamberlain
        permissions: []
        group: Chamberlain
        permissions: []
        group: Chamberlain
        permissions: []
        group: Peasant
        permissions: []
        group: Chamberlain
        permissions: []
        group: Magistrate
        permissions: []
        group: Magistrate
        permissions: []
        group: Chancellor
        group: Chamberlain
        permissions: []
        group: Chamberlain
        permissions: []
        permissions: []
        group: Chamberlain
        permissions: []
        group: Chamberlain
    censor-list: [ fuck, shit, rape, ass, asshole, cunt, bitch, slut, whore, dick, queef, cum, cumguzzler, dickmuncher, nigger, fucker, bullshit, buttpirate, butt-pirate, bastard, whore, hore, damn, pussy, cock, motherfucker, fucking, cocksucker, sucker, fucking, humping, vag, vajj, vaj, pussyfucking, cuntlicker, cummer, clitoris, cockfucker, clit, pussylicker, pussylicking, vaginalicking, cumming, cumbubble, cumstain, lesbianfuckparty, dicks, dick, pussies, assmonkey, assmunch, shits, motherfuckers, clits, vaginas, niggers, assholes, motherfuckers, faggots, faggot, fagg, fag, foggot, douche, douchebag, douchebaggle, douchenozzle, douchenossle, titties, douchetube, slutty, tits, fuckers, choad, choadet, choadsmoker, goddamnit, shitter, shitting, shat, shet, dick'n balls, whorebag, whorehouse, testies, testy, testys, assbag, testicle, asshat, shitn' mouth, whore'sloosepussy, load, fapping, fap, fapp, penis, cock'n balls, cockn balls, cockandballs, steamypileofcock, anal, oral, sex, doggy style, reverse cowgirl, dirty sanchez, orgasmic fluid in my face, teabag, nuts, onenightstand, one night stand, vbag, vagbag, vagicles, cockblock, clusterfuck, ass, niggerasshole, fck, shitbrick, shitabrick, porn, gay porn, brazzers, spankwire, pornhub, xtube, xhamster, xnxx, gagreport, freeporn, hentai, fuckbook,, squirt, squirting, dike, cumbagel, queef, queer, buttfuck, testicular sack, dingleberries, jackass, orgasmicfluid, shitty ]
    censor-char: '*'
    censor-colored: true
    message-format: '[+time][+prefix+group+suffix&f] +name: +message'
    censor-color: '&7'
    censor-string-color: '&f'
    use-world-name: false
  6. Offline


    @Prime You're running Permissions 2.5.5, correct? I just tested with that message-format and it works fine for me.
  7. Offline


    Sorry for not replying quick, and yes, I'm using Permissions 2.5.5.
  8. Offline


    wtf is the config in the newest ichat
  9. Offline


    Nowhere, now go away.

    Sucks when someone is rude to you, doesn't it?
  10. Offline


    Is there something I should try? Possibly re-installing permissions and testing a clean install?
  11. Offline


    @Prime Sorry, thinking it over and working on a bunch of random stuff, haha. Umm... Give this a try:
    Rename "plugins" to "plugins.bak" and maek a new "plugins" folder.
    Install Permissions, rename the config, and just set yourself up as in the Admins group
    Install iChat but don't change the config at all, just use the default

    See if that works.
  12. Offline


    Alright, it shows the group, but at the beginning, it still produces the error of "Invalid config file found and converted to proper name/format." Should work on everything from here?
  13. Offline


    @Prime The invalid error is just Permissions being dumb, TheYeti seems to have messed up a check somewhere, but it's fine. I wonder why it wasn't working before... Just go step by step from here, if you run into the problem again tell me what the last thing you did was and I'll try to figure it out :)
  14. Offline


    Thanks, I'll let you know. (And I'll just edit this post. I know how you feel about double-posting. :p)
  15. Offline


    One person double-posting 20+ minutes later is one thing, having the same person post 2 or 3 times in a row in 10 minutes is just annoying ;)
  16. Offline


    Hmm, I think I may have found the problem... For me, it is Essentials. It colored my name which basically just denied ANY input for iChat.

    Edit: I feel like the dumbest person on this thread, I had EssentialsChat installed along-side all this time...
  17. Offline


    @Prime You're not the first person :)
  18. Offline


    Yup, got it working perfectly now. Thanks for your help. :D
  19. Offline


    thank you for this plugin. i love it :D
  20. Offline



    Thanks Drak, /facepalm.
  21. Offline


    @Deages You spelled "Donator" wrong in the last one.
    Deages likes this.
  22. Offline


    Just confirming for those browsing and wondering this is working perfectly fine with CB [617]. Just updated my entire server and 10+ plugins. No issues no errors. Thank you Drakia :)
    SeeD419 likes this.
  23. Offline


    Can anyone help me since i have set up everything right but the colors and prefix won't show up in game, if you need any of my files to determine the problem let me know.
  24. Offline


    If requesting help, post any error messages in your terminal, as well as what plugins you're running (All of them), your entire Permission config file (As well as what it's named), and iChat config file. e <-- Post configs there
  25. Offline


    How does +group work?
  26. Offline


  27. Offline


    I can't download.

    Error (Chrome) (open)

    This webpage has a redirect loop

    The webpage at has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
    Here are some suggestions:

    Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

    EDIT 1: I tried opening it in FireFox, and it worked. I can't seem to delete the cookies for Chrome though D:
  28. Offline


    Hey champ, i wonder if you could give me a helping hand -> Cant seem to get it work like the older versions where i had the group name prefix in it so i knew the ranks of my players..

    Please help me with this issue -> Ym3r89 (skype) - [email protected] (Msn)
  29. Offline


    Why did you stop testing it with GroupManager? 'Cause I really need iChat and now it doesn't work anymore 'cause I use GroupManager :(
  30. Offline


    I get this error if i say anything with a "%" in the message.

    [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.util.UnknownFormatConversionException: Conversion = '%'
            at org.bukkit.event.player.PlayerChatEvent.setFormat(
            at com.nijikokun.bukkit.iChat.Listener.onPlayerChat(
            at org.bukkit.plugin.RegisteredListener.callEvent(
            at org.bukkit.plugin.SimplePluginManager.callEvent(
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(
  31. Offline


Thread Status:
Not open for further replies.

Share This Page