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. Please remove your old constructor:
    http://forums.bukkit.org/threads/oops-i-broke-your-plugins.599/#post-70677

    Now your Plugin works anymore, in the new Build:
    2011-02-25 23:37:43 [SEVERE] Could not load plugins\ChatStamp.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:129)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:94)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:59)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoSuchMethodException: org.letsprogram.stamp.ChatStamp.<init>()
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:75)
    ... 8 more

    Thank you.
     
  3. Offline

    XCIV

    Updated craftbukkit to latest yesterday. Using Groupmanager with premissions 2.1 (config file is named world.yml?? I'm guessthing thats my worlds name since its the folder name).

    Seems that no matter what I do +prefix and +suffix do not work. They are constantly set to '' in the data.yml file even though they are clearly not in the world.yml that it copies. Modifying data.yml doesn't work as it is reset when the server starts.

    Drakia can you take like 4 hours to fix this simple pluggin? Not even essentialsChat works.
     
  4. Offline

    Drakia

    @XCIV your problem seems to be with GroupManager and not iChat. I recommend posting in that topic. Also read up on the commands ituses instead of editing the file manually
     
  5. Offline

    skawke

    Doesn't work with Multiverse....doesn't show the [WorldName] beside it anymore...
     
  6. Offline

    AnjoCaido

    You shouldn't use both GM and Permissions 2.1.
     
  7. Offline

    Jdog653

    Is it just me, or is everyone's prefix's and suffixes not working? I redid the line in config.yml, and when chatting i get brackets, but no custom tags. Am i doing something wrong?
     
  8. Offline

    Jambokid

    My prefixes and suffixes are not working properly , maybe same problem as Jdog653. When I type it just displays :
    [] Jambokid: Hey - with no colours.

    -------------------------
    Sorry I didn't read the FAQ. Jdog if you're using Permissions 2.1 rename your config.yml to worldname.yml - worldname as your own world's name :)
     
  9. Offline

    Vettexl

  10. Offline

    Lomz

    This is exactly what I've been looking for, and it's working great. Thanks. :D
     
  11. Offline

    zettairyouiki

  12. Offline

    ParkerReno

    I would give you a notch, but that doesn't work on the bukkit forums. So just imagine a smiling notch :)
     
  13. Offline

    Andre_9796

    Thanks man gotta test it now.

    EDIT: Works
     
  14. Offline

    NickBrahz

    Ok so i just swapped from iChat 1.04 to this one as this one does not give me errors, but im not sure how to set this file up, i used to have it that when i spoke it would go:

    [Admin]NickBrahz: Blah Blah Blah (White instead of black)
    But now it goes

    [Admin]Admins] NickBrahz: Blah Blah Blah (White instead of black)

    So what do i write in the config file to make the other version do the same colours as this one, my old config file used to be:
    Code:
    message-format: '+prefix+name: &f+message'
    My permissions file is set as:
    Code:
    prefix: '&4[&4Admin&4]&9'
     
  15. Offline

    zettairyouiki

    prefix: '&4Admin'
    message-format: '[+prefix&f] &8+name&f: +message'

    Will result in
    [Admin] Name: Message

    Black being white in game.
     
  16. Offline

    NickBrahz

    Is there anyway to make it so for me it would be:

    [Admin]NickBrahz: Message.

    But for another person it would be:

    [Admin]Name: Message.

    So i could have all admins had [Admin] But have the names different for every admin.
     
  17. Offline

    Jandalf

    prefix: '&4Admin' (group prefix)
    suffix: '&5' (users suffix)
    message-format: '[+prefix&f] +suffix+name&f: +message'
     
  18. Offline

    NickBrahz

    Ok worked like a charm, Thanks heaps Jan + Zetta! I love you both!
     
  19. Offline

    KiloWhiskey

    @Drakia A bit broken... Error, iChat config and GroupManager config all in the pasta. http://pastebin.com/NmjsQ6Wv

    I'm running CB build 452 and just moved from iChat 1.5 (latest) to this today because it failed to load after today's namespace update. While I didn't get the namespace error with your version, it did fail in use. All configs worked flawlessly in under iChat 1.5, GM .99c, and CB build 440 this morning.
     
  20. Offline

    AmazingHayman

  21. Offline

    Andre_9796

    can you say me how to config that the name has '&e' ???
     
  22. Offline

    tension69

    Thanks for this update Drakia...iChat was only plugin that broke for me last night. I assumed I just needed to overwrite the old.jar with this one and keep my old config.yml file. Hey presto no log errors on server start:)....now if only I could log into the damn game to test it :mad:

    A like +1 for you sir.
     
  23. Offline

    tekac

    Throws off groupmanager related errors.
     
  24. Offline

    Kevin Forte

    I am having this issue still:

    Code:
    14:02:22 [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.lang.NoSuchMethodError: org.anjocaido.groupmanager.GroupManager.getHandler(
    )Lorg/anjocaido/groupmanager/AnjoPermissionsHandler;
            at net.TheDgtl.iChat.iChat.getPrefix(iChat.java:210)
            at net.TheDgtl.iChat.playerListener.onPlayerChat(playerListener.java:21)
    
            at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:155)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:225)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:618)
    
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:606)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    All of my plugins and my CB build are up to date, but I am using GroupManager. What do I do? D:

    Wait, scratch that: new problem. iChat seems to be working correctly (I switched from GroupManager to the rebuild of Permissions by Pheonix) but for some reason it isn't using the prefixes/suffixes i defined in the config.yml in the Permissions folder. Any ideas?

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

    Jandalf

    you must rename ure yml to ur default world because permission supports multi worlds
     
  26. Offline

    Drakia

    Still out of town. Latest GM changed things that broke how my plugin interacts with it. Use Permissions or an old GM until I'm home
     
  27. Offline

    Kevin Forte

    So if I have yet to change the world name, I rename the file 'config' to 'World1' ?
     
  28. Offline

    Vaupell

    Thank you wery much for last update! Excaktly whats needed for this weekend ;)
     
  29. Offline

    unrivaledneo

    Using the RB 440 with Iconomy 3 and groupmanager 99 and getting this error

    Code:
    2011-02-26 16:51:29 [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.lang.NoSuchMethodError: org.anjocaido.groupmanager.GroupManager.getHandler()Lorg/anjocaido/groupmanager/AnjoPermissionsHandler;
        at net.TheDgtl.iChat.iChat.getPrefix(iChat.java:210)
        at net.TheDgtl.iChat.playerListener.onPlayerChat(playerListener.java:21)
        at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:160)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:225)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:607)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:595)
        at net.minecraft.server.Packet3Chat.a(SourceFile:24)
        at net.minecraft.server.NetworkManager.a(SourceFile:230)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:70)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:338)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:253)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
    works just fine with permissions, but i like groupmanager better for the ability to change groups since essentials is messed up.
     
  30. Offline

    Jasin

    Thank you, really just wanted healthy but that plugin doesn't work. This works great.
     
  31. Offline

    Drakia

    Freakin caught the flu, going to push an update before these pain killers wear off and I fall asleep. Give me an hour.
    --- merged: Feb 27, 2011 4:43 AM ---
    Update for Stargate, iChat, and Tombstone pushed! Fixes any problems with GM hopefully, I have the flu and am at a hotel, so it's impossible to properly test it.
     
Thread Status:
Not open for further replies.

Share This Page