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

    G4meM0ment

    I'm quit not so good in english-speeking, but as I understood Drakia don't want to support PEX. But if he does please tell me how. Sorry for my bad english :( But I'm still learning :D
     
  3. Offline

    ZachBora

    The last update is supposed to make it work with PEX.
     
  4. Offline

    G4meM0ment

    Thats great :D, but another question, is youre iChat Plugin released, I mean that one which shows information when pressing TAB.
     
  5. Offline

    ZachBora

    Search for iChatPlayerList on BukkitDev
     
  6. Offline

    Drakia

    2011-10-21 13:38:40 [INFO] [bChat] version 2.0 is enabled!

    Multiple chat formatters.
     
  7. Offline

    kremington

    How do I use iChat to make different prefixes for each world (Not the world name), and how do I get it to show up when I use /list?
     
  8. Offline

    jungalist81

    Hey Drakia, again thanks for the wonderful plugin.

    I have JUST installed the latest bukkit (1337) and now iChat is not properly showing the custom names i made located on the variables.yml. The suffix is placing an astriek on it. I tried different vers of iChat so i think its a Bukkit issue?
     
  9. Offline

    Drakia

    Configs
    Server log
     
  10. Offline

    jungalist81

    oh sorry Drakia, i was commenting on a general issue and trying to confirm with you or others player in this thread, not necessarily seeking help.

    So far, its NOT iChat; I even removed iChat and the asterek would still appear. I will continue my investigations
     
  11. Offline

    K_Wall_24

    I was wondering if there is a way to display the name defined in the variables.yml for a given group, instead of the group. In my PermissionsBukkit file, i have admin, moderator, etc. as the names, but I don't want that displayed in the chat, but instead use the group name. Or maybe I'm just missing something. Is there a variable for this? It worked properly in 2.4.1, but 2.4.3 messed it up.
     
  12. Offline

    Drakia

    In 2.4.3 I switched to using the group defined in the Permissions system. You can just set a variable (You can still use Name if you want) and then use +{Name} instead of +group
     
  13. Offline

    smexhy

    Pleas Help me with this plugin :'(
     
  14. Offline

    Phedg1

    Any chance of world orientated prefixes and suffixes emerging? or word wrapping? or conversation history? This plugin's the best chatter out there,[​IMG][​IMG][​IMG][​IMG][​IMG] FOR YOU
     
  15. Offline

    Drakia

    World-based variables will be coming in the next release most likely (Completely overlooked in when I switched to variables.yml as I only run one world).
    Word wrapping isn't something I will be implementing. And chat history has nothing to do with a server-side mod, or chat formatting, at all.

    READ THE FIRST POST ALL THE WAY THROUGH
    Don't just skim it, READ IT
     
  16. Offline

    goodoletom

    I looked everywhere but could not find my answer out. The builder rank is getting a group name of "default"
    How Do I change it to Builder? tried it and didnt work.
     
  17. Offline

    Drakia

    Server log
    Config Files.
     
  18. Offline

    K_Wall_24

    Sweet. Now, how can I make it so my /me message uses a coloured name? Or even just a single colour through the whole thing, i really don't care. I figured I could use +prefix, or a &_ colour code, but nothing has worked. Any ideas?
     
  19. Offline

    Drakia

    The same way you setup the message format, here is my servers setup:
    config.yml:
    Code:
    message-format: '+time +prefix+name&f> +suffix+message'
    me-format: '* +prefix+name&f +message>'
    variables.yml:
    Code:
      H-Tech:
        name: 'H-Tech'
        prefix: '&f[&2H-Tech&f] <&c'
    
    Works as expected.
     
  20. I have a problem with iChat on my Private server, I just updated to #1337 Craftbukkit. But Craftbukkit didn't load into version 2.3.4 so i'd update it to 2.4.4 and now ive become into another problem, my prefix is just blank! I did have set it to [ Builder] Green [Admin] Red [H-Admin] Dark Red, [Owner] Yellow, I DID have used the color codes. But all the prefixes have become white, Im using Permissions 2.7.4 [Phoenix], HELP ME please! sorry for my bad english i'm dutch btw
     
  21. Offline

    Drakia

    Read first post
    Server log
    Configuration files
     
    Daniel Heppner likes this.
  22. Offline

    rudedoggx

    I've read the first post.
    No errors in the server log.
    Config files stayed the same.

    Anyway, after updating to the latest iChat, a lot of my users lost their group titles. I think it's because they're in multiple groups. We're using bPermissions. My admins, mods and patrons show up as [Default] because they're in both the Default group and their respective groups. Is there a way to make one group take priority over another?
     
  23. Offline

    Drakia

    Group order matters in the config.
    Now I will not help you any further until you post your Server log, and config files. There is a reason I ask for both, not because of "errors" as you see them, and it doesn't matter if you changed your config, the plugin changes ever so slightly with every version at the moment because I'm still trying to adapt to this stupid new SuperPerms system.

    [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

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 17, 2016
    Daniel Heppner likes this.
  24. Offline

    Teddeh

    Does this work with GroupManager?
     
  25. Offline

    Phedg1

    In version .4 you can now add preffixs and suffixs to worlds, but I was wondering if you could add a generalised world variable tree? So instead of:
    Code:
    world:
      groups:
        default:
          suffix: ' '
    
    You could have:
    Code:
    world:
      suffix: ' '
    
     
  26. Offline

    Drakia

    That is not a planned feature, no.
     
    Daniel Heppner likes this.
  27. Offline

    Phedg1

    Because currently, if, for instance, in my multiverse, I want to colour the names of each world, I need to have
    Code:
    Castle:
      groups:
        Spectator:
          suffix: '&7'
        Default:
          suffix: '&7'
        Member:
          suffix: '&7'
        Moderator:
          suffix: '&7'
        Admin:
          suffix: '&7'
    Island:
      groups:
        Spectator:
          suffix: '&f'
        Default:
          suffix: '&f'
        Member:
          suffix: '&f'
        Moderator:
          suffix: '&f'
        Admin:
          suffix: '&f'
    Skyland:
      groups:
        Spectator:
          suffix: '&3'
        Default:
          suffix: '&3'
        Member:
          suffix: '&3'
        Moderator:
          suffix: '&3'
        Admin:
          suffix: '&3'
    Nether:
      groups:
        Spectator:
          suffix: '&c'
        Default:
          suffix: '&c'
        Member:
          suffix: '&c'
        Moderator:
          suffix: '&c'
        Admin:
          suffix: '&c'
    Hardcore:
      groups:
        Spectator:
          suffix: '&a'
        Default:
          suffix: '&a'
        Member:
          suffix: '&a'
        Moderator:
          suffix: '&a'
        Admin:
          suffix: '&a'
    Arena:
      groups:
        Spectator:
          suffix: '&e'
        Default:
          suffix: '&e'
        Member:
          suffix: '&e'
        Moderator:
          suffix: '&e'
        Admin:
          suffix: '&e'
    which leads me to think that it COULD be much easier
     
  28. Offline

    ZachBora

    You could use 1 group.
     
  29. Offline

    Phedg1

    example please?
     
  30. Offline

    smexhy


    I am from Slovakia ! :(
     
  31. Offline

    Jeyge

    Google can help you with that. Take a look at the post with it translated for you then you will know what information he is asking for.
     
Thread Status:
Not open for further replies.

Share This Page