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


    You don't spam my thread, that's for sure. Two posts in 2 hours? I don't sit here and read the forums 24/7. Have fun waiting.

    @Taxick Every single one of your users has a prefix/suffix of '' defined, this wouldn't be an issue with Perms 2.x, but it may be an issue with 3.x. Try removing those lines and see if the issue persists.
  3. Offline


  4. Offline


    Whenever I try to edit the config it resets when I load it again... what is the problem?
  5. Offline


    i have a internal error the console says
    Server Null
    anyone have any idea what to do?
  6. Offline


    The reason i made 2 posts was because i thought my first post didnt go through, I didnt mean to "Spam your thread" i was just asking for help.
  7. Offline


    Thanks for the TIP it works now :)
  8. Offline


    The only time the config is written to via the plugin is if plugins/iChat/config.yml doesn't exist
    If you go read what is required for me to help you I might.
  9. Offline


    Oh god, wrong thread :D
  10. Offline


    "Herochat, iChat, and Simple Suffix are all aware of the Superperms update" (PermissionsBukkit)


    So it is correct to assume you won't be supporting PermissionsBukkit?

  11. Offline


    No, I will support it when I have a chance to update/test for it, at the moment however I do not have the time.
  12. Offline


    Will this ever support Spout? as BukkitContrib is inactive?
  13. Offline


    Why would... What... This doesn't even have anything to do with BukkitContrib...
  14. Offline


    It forced me to download it.
  15. Offline


    Haha, no it didn't.
  16. Offline


    Hey there, I'm having similar issues that Taxick had before where I can't get colours. I've probably done something stupid but I would greatly appreciate help, Thanks :) Here are my logs and stuff..:

    Plugins I'm currently running:


    Attached Files:

  17. Offline


    Have you tried without EssentialsChat?
    Daddaforce likes this.
  18. Offline


    Does this have PermissionsBukkit support with Prefixes?
  19. Offline


  20. Offline


    Haha, thanks, as soon as I deleted the EssentialsChat.jar it worked fine :) Thanks heaps :) Good work on iChat, keep it up :)
  21. Offline


    Would you be able to make it support it? :D
  22. Offline


    Read his first post and you find the answer.

    Anyway nice Plugin :)
  23. Offline


    How am I supposed to use this if Permissions 2 and 3 are inactive?
  24. Offline


    they may be inactive but that doesn't mean they don't work ;)
  25. Offline


    For those wanting SuperPerms support, I've made an initial version that supports it, and I need some people to test it out for usability and request features/changes. I'm not adding this to the first post in hopes that people understand this is a dev release.

    There is no longer groups/variables in SuperPerms, this means the data must be managed entirely within iChat itself. This is the setup I've come up with to deal with that:
    Inside the iChat folder is a new file called "variables.yml", this is where you define all group-based variables. This is an example of the layout for variables.yml:
      prefix: '&c'
      suffix: ''
      name: 'Admin'
      randomvar: 'RandomVariable!'
      prefix: ''
      suffix: ''
      name: 'Guest'
    This defines the prefix, suffix, group name, and randomvar variables for the group admin. The +prefix/+suffix/+group variables will now rely on prefix/suffix/name definitions respectively.

    To specify what group a player 'belongs' to, give the player the group.groupname permission, so for this example, your bPermissions config would look like this:
          group.admin: true
    This is the unified method plugin devs have come up with for group identification.

    The message-format in the iChat config file is still the same, so you would be able to use something such as:
    message-format: '[+prefix+group+suffix&f] +{randomvar} +name: +message'
    And the displayed output would be as follows:

    There is a new option in the iChat config called "default-group", this option specifies what group variables to grab for a player with no group variables defined in the variables.yml file.
    Walker Crouse likes this.
  26. Offline


    Have been teetering between this and mchat for awhile. my decision was made once i honestly thought about the first post in each page. Your words are rather abrasive. I have to say though this may be your opinion I don't feel that such harsh and nearly demeaning words are needed to convey your point.

    I will be using mChat, nothing personal, you understand i'm sure.
  27. Offline


    that may be true, but if you read the thread you'd be shocked to see how many people still skip over that and go straight to the download button. sometimes they even click the wrong one in their haste. a little reading on their part would save both parties a lot of headaches.
    There are obviously those that do read it, and those are the people that either have no problems, or their problems get fixed right away. (if they're using this plugin that is :p lol)
  28. censor-list: []
    censor-color: '&f'
    date-format: HH:mm:ss
    message-format: '[+prefix+group&f] +name: +message'
    me-format: '* +name +message'
    censor-char: '*'
    censor-string-color: '&f'
    censor-colored: false

    This is my CFG

    default: false
    prefix: '&c'
    suffix: ''
    build: true
    - '*'
    This is my permission
    Is there a WAY ( Message config or whatever ) to do this : <randomqc> ( colored in red ( &c ) ) :message ?
    ex: <randomqc>:message
    Sorry for my lack of knowledge with that plugin :S
  29. Offline


    do you have the link to build 1000
  30. Offline


    I'm using Build 1060. I've had the iChat plugin for a while and it has worked fine. I recently downloaded a plugin that "bridges" permissions 2.x and 3.x so that all plugins can use SOME form of permissions. Now when I load my server, iChat tells me that it finds permissions v.2.7.7 and won't work because I'm using the 3.x version of IChat. I've never had this problem before. Does iChat default to 2.x even if both versions of permissions are present? and I would assume downloading the 2.x version of IChat should solve my problem.

    EDIT: I assumed downloading 2.x would fix this and it did, but I'm still curious about iChat defaulting to Permissions 2.x
  31. Offline


    iChat will use the plugin named "Permissions". What bridge are you using that supposedly mimics both 2.x and 3.x?
Thread Status:
Not open for further replies.

Share This Page