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

    Drakia

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

    Plugin Support:
    PermissionsBukkit
    bPermissions
    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.
    http://pastebin.com/ <-- Post configs there when asking for help

    =============
    Description
    =============
    Custom chat formatting.
    Based on the idea of iChat v1.5 by Nijikokun.
    Includes code and concepts from mChat by MiracleM4n <https://github.com/MiracleM4n/mChat/>

    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): http://thedgtl.net/bukkit/iChat.jar
    Source: https://github.com/TheDgtl/iChat

    =============
    Features
    =============
    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

    =============
    Formatting
    =============
    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: http://www.minecraftwiki.net/wiki/Classic_Server_Protocol#Color_Codes

    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 - http://bit.ly/dscw40

    Example (Default):
    Code:
    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.

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

    ==========
    Variables
    ==========
    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:
    ---------------------
    Code:
    # iChat Variable Config
    # This is now the only method for defining variables
    users:
        Drakia:
            prefix: '&e'
    groups:
        Admin:
            prefix: '&c'
            suffix: ''
        Default:
            prefix: ''
            suffix: ''
    world:
      users:
        Drakia:
          prefix: '&a'
    Default config.yml:
    ---------------------
    Code:
    handle-me: true
    date-format: HH:mm:ss
    message-format: '+iname: +message'
    me-format: '* +name +message'
    iname-format: '[+prefix+group+suffix&f] +displayname'
    =============
    Examples
    =============
    To make a group colored:
    variables.yml:
    Code:
    groups:
        Default:
            prefix: '&4'
            suffix: ''
    config.yml:
    Code:
    message-format: '[+prefix+group&f] +name: +message'
    To make a single username colored:
    variables.yml:
    Code:
    users:
        Drakia:
            prefix: ''
            suffix: '&1'
    Config:
    Code:
    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.

    =============
    Configuration
    =============
    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)

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

    =============
    Commands
    =============
    /ichat reload - Reload the iChat config file

    =============
    F.A.Q.
    =============
    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.

    =============
    Changes
    =============
    [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

    SmolderingEgo

    OK my issue, I have a free build world and an RPG. In RPG people have diff rank names that i have show up in chat. but they don't change depending on the world, the main world rank stays. Hero chat allows for the switch but it is too bulky for my small server. Is this a setting that can be changed in iChat?
     
  3. is there a way to make people's names colored by the group they are in? i have permissions 2.1
     
  4. Offline

    mistresswitch

    I'm hoping one of you clever modders out there will be able to help.

    I want the chat censor to be optional, client side only for the server. I'm looking at HeroChat & ChatCensor (WIP) and have sent a request in to each of their threads, atm, hubby has iChat plugged in & working.

    Basically I want to be able to turn my 9yrs client to "censor" and my client to read everything that comes up, being admin, I like to see what exactly my naughty boys & girls are saying! :D

    You may already have this included but what i've read so far doesn't seem to allow for this.
     
  5. Offline

    FreekyGun

    Does iChat work with Jail, Permissions, LWC and myhome. It says everything is working but only when i included ichat does anything bad happen, everything works except lmc whilest i have ichat on
     
  6. Offline

    Drakia

    To everybody saying something doesn't work, or asking why things don't work, go re-read the first post. It clearly states in BIG BOLD RED LETTERS that if you are requesting help, post your config file, and your permissions file to Pastebin. If you can't be bothered to read my post, I can't be bothered to help you.
    @ITech The config file is created only if config.yml doesn't exist in the iChat folder.

    @Travis Triglianos Is there a way to make users actually read stuff?

    @mistresswitch There's no plan for this, as it would require changing the way the server actually sends out messages. As it is all users are sent the same message, to implement something like that would require making multiple messages, and custom-sending them to the different clients.

    @FreekyGun Your message is about as helpful as this reply in figuring out what's wrong. "only when i included ichat does anything bad happen" tells me absolutely NOTHING about your problem. Go re-read the first post again, focus mainly on the bright red part, that's why it's bright and red.
    [MERGETIME="1300070045"][/MERGETIME]
    @SmolderingEgo I'll look into your problem, few questions though, what permissions system are you using, and do you have per-world configs setup for it?
     
  7. Offline

    SmolderingEgo

    Im using Permissions and yes, running per world
     
  8. Offline

    Drakia

    Updated to version 2.11:
    [Version 2.11]
    - Now uses per-world permissions information

    The plugin now requires Permissions 2.5.4 (Atleast that's what I tested with. I don't want to attempt supporting anything less as I don't know when the functions I use were added).
     
  9. Offline

    SmolderingEgo

    You rock dude, thanks
     
  10. Offline

    andrewkm

    Not sure if this is in the plugin or not.
    Can someone please help me.

    I got the plugin working, and everything seems perfect :)
    Understand how to mess around with the config file, colors, variables and so on.

    Only got one question.
    Is it possible to dispay every +group in a different color.

    What im saying is lets say i have three groups. Builders, Moderators, Admins.
    I would like something like this:

    Builders:
    message-format: '&e+time &f[&1+group&f] +name: +message'
    Moderators:
    message-format: '&e+time &f[&2+group&f] +name: +message'
    Admins:
    message-format: '&e+time &f[&4+group&f] +name: &4+message'

    Basically each group to have their group name displayed in a different color... with the admins also having a different color message then others. Is this possible?
    [MERGETIME="1300179445"][/MERGETIME]
    Lol just answered my own question with a bit of messing around.

    Incase anyone comes up on the same question heres solution:
    Put the color you want in prefix of permissions config file and put +prefix instead of color code wherever you want it to appear:

    message-format: '&e+time &f[+prefix+group&f] +name: +message'

    So in this case in my permissions config admin prefix area i have '&4' and now the word admin before player name appears in red and i can make other groups other colors :)

    Can someone clarify im doing this right (it does work :)), or is there another way?
     
  11. Offline

    Drakia

    That's how it's done, it's been answered about three times in this topic already.
     
  12. Offline

    footwo

    OK I'm being retarded and I just cannot see how to implement this on a user level. Here's my permissions file:

    http://pastebin.com/MKDgC3nD

    And iChat config:

    http://pastebin.com/FX1iEDRZ

    The prefixes in the groups like admins and moderator were done before iChat was installed and they work fine.

    But if I want to give the user Josh_b, for example, his own prefix how do I do that? I want him to remain in the Trusted group, which doesn't have a prefix, but have his own unique prefix.
     
  13. Offline

    Drakia

    Code:
    users:
        josh_b:
            group: Trusted
            permissions:
            info:
                prefix: '[Loser]'
    
    A user-level prefix will always overwrite a group-level prefix as well. So even if 'Trusted' has a prefix, his would show instead.
     
  14. Offline

    ZirixZero

  15. Offline

    Drakia

    Do you have permissions installed and setup properly?
     
  16. Offline

    Steve Member

    Fixed NPE issues and made it build under standard maven plugin structure, pull request set ;-)
     
  17. Offline

    ZirixZero

    Yes
     
  18. Offline

    chernobyl360

    well its no big issue, but how do i make each group have thier own color prefix and color name? currently admins/mods/players have all the same color gold prefix with red name...

    i would like this
    admin
    prefix-gold
    name-red
    Mod
    prefix-Yellow
    name-Blue
    Regular Players
    prefix- Gray
    name-Neon Green
     
  19. Offline

    Olat

    GroupManager Permissions Group: http://pastebin.com/pw5Fe8hu
    iChat config: http://pastebin.com/BFYE6kMt
    Prefix for each group has been set.
    Admin is '&cAdmin'
    Moderator is '&9Mod'
    Donor is '&6Donor'

    I gave each group the ichat.color permissions aswell


    Only the admin iChat color and message format works.
     
  20. Offline

    Drakia

    I don't use GroupManager so can't offer any support other than your spacing in your permissions file looks royally screwed.
     
  21. Offline

    silentdojo

    CB 531 GM 1.0 A5 iChat 1.11 works fine fore me.
     
  22. Offline

    MacG32

    Confirmed working with build #556. [​IMG]
     
  23. Offline

    SynMonger

    That's too bad. I've been using iChat with GroupManager for awhile now. Since McMyAdmin uses GroupManager for permissions integration I'll have to find a new plugin to provide chat colors.
     
  24. Offline

    Drakia

    @SynMonger There are too many perm plugins for me to code for them all, therefor I code for what my server runs and I can test with.
     
  25. Offline

    MrTK

    The direct jar download link is broken :(
     
  26. Offline

    Thenaz

    This isnt really a question I have an issue with that I would need to post my file.Is there a way to change the colors of names?
    I have the prefix colored and that's it.
     
  27. Offline

    n30nex

    I have an issue with ichat always putting the group in when its not told to do so.

    CB 556
    ichat 2.11
    Permissions 2.5.4

    My groups:

    http://pastebin.com/NzAtP6vk

    My iChat config:

    Code:
    censor-list: []
    censor-color: '&f'
    message-format: '[+prefix] +name: +message'
    censor-char: '*'
    censor-string-color: '&f'
    censor-colored: false
    What happens in game:

    [​IMG]

    Why is the group name appearing when its not in the config?

    I'm running latest essentials, checked it all over for possibly being the problem, but it does not effect chat at all.

    No other chat modification plugin is being used.
     
  28. Offline

    Drakia

    You have to have another plugin that is modifying chat, there's no way that it's iChat causing that.
    Also, your posted config.yml and your screenshot don't really match up, you have a space between [+prefix] and +name in the config, but there's no space in the screenshot?
     
  29. Offline

    n30nex

    That's very weird then, because I just looked into my world.yml and I see that space, but in game right now, it does not appear.

    I think it MAY be essentials in some way adding +group onto it, I can't think of anything else that would do it:
    [​IMG]

    Edit: It was essentials chat. Sorry for any concern :0, little bugger slipped in when I updated the suite.
     
  30. Offline

    lennie svensson

    what do i write in permisson to make the Admin red? whene speeking in chat :)
     
  31. Offline

    n30nex

    Thats a part of Essentials, look in the main config.yml if you use it. Theres an option to color OP's name.
     
Thread Status:
Not open for further replies.

Share This Page