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

    Drakia

    @iFearz There's too many ways to do permissions, I now test with what I use only.
    @robin0van0der0v If you were using my plugin, and not niji's, you wouldn't have that problem.
    @NetMAx I don't support anything except the latest version of iChat 2.x
     
  3. Offline

    Sooks

    I'm using CB #617 Permissions 2.5.5 and iChat 2.2.2 and it doesn't work.. no error nothing. Just doesn't connect to permissions or something.
     
  4. Offline

    Drakia

    @Sooks useful, post your entire server log from startup to when you try talking.
     
  5. Offline

    Ziddia

    I have the same error message. I downloaded it for 617, not 556, and I still get that error.
     
  6. Offline

    Magister

    I don't have +group in my config, but it shows up anyway -_-
     
  7. Offline

    MaMaxGER

    I have do all thing how it show in the example, but it shows up anyway.
     
  8. Offline

    Drakia

    @Ziddia Are you running 2.2.2? That bug (Adding the world to permission calls) was fixed in 2.11.
    @Magister Give me a full list of your loaded plugins, most likely it's another plugin interfering.
    @MaMaxGER Wut?
     
  9. Offline

    MaMaxGER

    I have done everything exactly as it was in the example, but it does not work.
     
  10. Offline

    Drakia

    @MaMaxGER Do you have Permissions installed? Is there output in the terminal saying that iChat 2.2.2 was loaded, and that iChat found Permissions? What version of CB are you running? What version of Permissions?
     
  11. Offline

    MaMaxGER

    I use "[Permissions] version [2.5.5] (Phoenix)".
    iChat (v2.2.2) enabled and iChat Found Permissions (v2.5.5).
    I use Bukkit ver. 617
    If I write something comes an Error.
    Code:
    [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.lang.NullPointerException
        at com.nijiko.permissions.Control.getGroup(Control.java:568)
        at net.TheDgtl.iChat.iChat.getPrefix(iChat.java:238)
        at net.TheDgtl.iChat.playerListener.onPlayerChat(playerListener.java:43)
        at org.bukkit.plugin.java.JavaPluginLoader$6.execute(JavaPluginLoader.java:199)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:563)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:551)
        at net.minecraft.server.Packet3Chat.a(SourceFile:24)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    2011-04-05 20:19:54 [INFO] <_MaMax> tesdt
     
  12. Offline

    Drakia

    @MaMaxGER That is a problem with Permissions, you either don't have it setup right (Make sure the config file is named the same as your world name) or your player is in a non existent group.
     
  13. Offline

    Enzy

    Is it possible to color individual message colors?
     
  14. Offline

    Drakia

    Color individual messages you mean? Like per player? If so, yes, just set a variable (Let's use 'msgcol') in your Permissions file for that user/group, then set the message-format to include +{msgcol} before the +message.
     
  15. Offline

    Enzy

    Can you please show me what the message format would look like becuase I tried doing it and it won't work im new to this so im kinda retarted it might be my permissions though
     
  16. Offline

    Drakia

    Im not Actually at my computer. The first post has plenty of examples though.
     
  17. Offline

    angus22397

    with the latest version of ichat no commands work -_-
     
  18. Offline

    Drakia

    @angus22397 iChat does not have commands, nor does it hook into the commandpreprocess nor onCommand() events.

    @Enzy : message-format: '[+prefix+group+suffix&f] +name: +{msgcol}+message'
    Now here's a question before you try customizing things, does the basic format work at all?
     
  19. Offline

    angus22397

    i know, but with this plugin installed it screws up permissions, WHY DOES 602 UP HAVE TO EXIST!!! WORST UPDATE EVER!
    I use 617 btw
     
  20. Offline

    leetgamer

    Code:
    2011-04-05 21:30:12 [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.lang.LinkageError: loader constraint violation: loader (instance of org/bukkit/plugin/java/PluginClassLoader) previously initiated loading for a different type with name "com/nijiko/permissions/PermissionHandler"
        at net.TheDgtl.iChat.iChat.getPrefix(iChat.java:233)
        at net.TheDgtl.iChat.playerListener.onPlayerChat(playerListener.java:43)
        at org.bukkit.plugin.java.JavaPluginLoader$6.execute(JavaPluginLoader.java:199)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:563)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:551)
        at net.minecraft.server.Packet3Chat.a(SourceFile:24)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    2011-04-05 21:30:12 [INFO] <leetgamer> .
    Using version 2.2.2, with permissions 2.5.5. CB617

    Also possibly a problem with permissions as I can't use any commands. That's unlikely since I just copied the permissions file from my server that is still running on Minecraft 1.3 (and working).
     
  21. Offline

    Drakia

    @angus22397 If you want to bitch about Bukkit go do it somewhere else, or write your own API hooks for Minecraft. The bukkit team does this for you FOR FREE. You are not getting any more support from me, solve your problem yourself.

    @leetgamer Well that's a new one. You're not running a custom build of Permissions or CB are you?
     
  22. Offline

    leetgamer

    @Drakia
    No sir, I even just completely rewrote the entire permissions config, still nothing.

    This is my startup, and shows all the errors from when I log on and try typing: http://pastebin.com/WZ8x3y8Q
     
  23. Offline

    Drakia

  24. Offline

    Enzy

    It ended up working thanks for your help
     
  25. Offline

    leetgamer

  26. Offline

    Drakia

    @leetgamer I honestly don't know, I think it's something with your setup, but not your config.
     
  27. Offline

    leetgamer

    @Drakia By setup do you mean all the plugins I'm using?

    @Drakia After I disabled BigBrother and reloaded twice, it worked. I still get the error when people log on but only for the first few minutes after a reload or restart. Sorry to bother you, guess it wasn't your plugin. :/

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

    angus22397

    sorry :'(
     
  29. Offline

    Lynxdragon

    Seems to be a problem, iChat.jar is not making its own folder on server start up. Thus meaning no config files.

    i have the following addons running:
    Permissions
    Precious Stones
    Superpowers
    AfkBooter
    Lockette
    Warpz0r
    iConomy
    iConomychestshop
    NoExplode
    AutoMessage
    Spawnr
    ecoCreature
     
  30. Offline

    Drakia

  31. Offline

    solidsnake916

    Is there a way to use +name, +group, +healthbar, +health, +message, +world, +time in the chat, and not just the Parameters in Permissions. The Old iChat allowed +m which was like double message and buggy and no use, it also allowed +healthbar in the chat to generate the [||||||||||] in the color format of your health. If you do allow this, can you add these under a new Permission Node or the Color Node. Thanks!
     
Thread Status:
Not open for further replies.

Share This Page