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. Happy to see that this simple, but very useful plugin has found someone who picked it up.
    As always Drakia: Awesome work.
     
  3. Offline

    MGNick

    I am using the latest Permissions, and just installed iChat. It installed fine no errors coming from Terminal. The only problem is that when editing Permissions for the colored names it won't apply the changes. Even when reloading all plugins, or just permissions. Here is my Permission file http://pastebin.com/cWcNu1m9

    Please help,
    Nick
     
  4. Offline

    icuttu

    I tried deleting one space before derpina but it's still not working.
     
  5. Offline

    joshcvb

    @Drakia
    I don't think you talked with niji on this plugin, further you prolly should have consulted @TheYeti before releasing a plugin that somebody else had already released and started working on. You at least under the license need to change the name or gain the orginal authors permission.
     
  6. Offline

    Cowpow16

    I'm getting this error everytime somebody says something, and ichat isnt working in general. if was working earlier today, but stopped when i changed the server.properties to a different world. could that be the problem?

    Code:
    19:53:55 [SEVERE] Could not pass event PLAYER_CHAT to iChat
    java.lang.NullPointerException
            at com.nijiko.permissions.Control.getGroup(Control.java:534)
            at com.nijiko.permissions.Control.getGroup(Control.java:1074)
            at net.TheDgtl.iChat.iChat.getPrefix(iChat.java:203)
            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)
     
  7. Offline

    Jandalf

    hm, the permission file was ne arranged do u use essentials group manager or groupmanager? i dont know were the mistake is, but maybe ichat doesnt support this format
    --- merged: Mar 1, 2011 9:07 AM ---
    ok then i dont know whats the problem, maybe post ur corrected file again.
     
  8. Offline

    PeterPAwN

    This Plugin works fine for me, no issues, thx!
     
  9. this no longer seems to work with GroupManager? I also posted in the GM thread
    I think GM broke it with it's 0.99d update, but it might be Ichat switching to fakepermissions too?

    the error is couldn't send PLAYERCHAT to iChat (no colorcodes or formatting working) my other permissions seems broken too, which is why i suspect GM to be the culprit, posting here anyway
     
    stavos likes this.
  10. Offline

    Drakia

    @joshcvb I tried getting ahold of Niji and got no response, he had disappeared and iChat was abandoned and no longer worked, that is why I took over the name. Also why would I get ahold of TheYeti about this? I started/posted this 3 days before he started working on his, this was started before he'd started working on ANY of Niji's plugins. Considering this is 100% my code, and Niji abandoned his plugin, I see no reason for me not to use the iChat 2.0 name. And if you want to complain about copyright: http://www.apple.com/macosx/what-is-macosx/ichat.html
    --- merged: Mar 1, 2011 6:45 PM ---
    And to pretty much every other post I've skimmed over, I'm still sick with the flu (Just spent ~36 hours in bed and still feel like ass) but I'm pretty sure everybody needs to just figure out how to use their respective Permissions plugin and this plugin will start working fine for you.
     
  11. Offline

    Jdog653

    [Update]

    I found out that i was secretely opped on the server. I de-opped myself after being able to use commands, and now i can't use any.
    --- merged: Mar 1, 2011 8:52 PM ---
    i use essentials (all but chat). I also totally revamped my permissions file. It's here: http://pastebin.com/sRBYBjhH
    What am i doing wrong?
     
  12. Offline

    Jekotia

    You see no reason not to? While you may have beat TheYeti to it, he is continuing the ORIGINAL iChat plugin. You claim that this plugin is 100% your code. Continuing to use the name iChat for your plugin serves no purpose but to create confusion. I don't mean to be a dick but when you consider that simple fact, continuing to use the iChat name, bluntly put, means you're one of those assholes on the internet that intentionally creates confusion and makes everything difficult for the rest of us. By all means, continue making a chat plugin, but change the name.
     
  13. Offline

    tension69

    [​IMG]
     
  14. Offline

    Drakia

    @Jekotia So wait, because I re-created iChat 2.0 from scratch for the newer bukkit, and then TheYeti came along AFTER and released iChat 1.6, I'm an asshole? Wow, you're an idiot, congratulations.
     
  15. Offline

    Jekotia

    No, I'm saying that you are intentionally creating confusion if you continue to use the iChat name. yes, you were working on "iChat" before him, but yours is essentially a clone. He is continuing the original, using the source code released for the original. If either plugin uses the name it should be his, because essentially, iChat never died, it just changed hands. Continuing to use the iChat name is the intentional creation of confusion.
     
  16. I had an idea, change name to NeoChat or something, signifying it's rebirthednes (rewrite/clone)... instead of using ichat 2.0 which seems to make flamewar. just a suggestion
     
  17. Offline

    ZeroPoke

    Key word essentially. Meaning it still did die but someone used "CPR." Where as before that could happen Drakia build a new better "body" and released it. So really by that person restarting iChat up after Drakia had recode and released iChat they are the ones "Continuing to use the iChat name is the intentional creation of confusion."
     
  18. Offline

    Plasma

    Okay, it works fine, i understand it kinda. I just get a bit confused with the config, all i want to to have "[Admin]" infont of op names, in red, i know the colour codes. If anyone could just give me a bit of help, thanks :)
     
  19. Offline

    ZeroPoke

    prefix: &c[Admin]

    in the right group permission perfix thingy
     
  20. Offline

    Drakia

    I'm not changing the name, I'm the person who originally continued work on iChat, and if you guys want to bitch about it do it in another topic, I would prefer if you don't come back to mine.

    And to all of the people who are experiencing prefixes not showing up, group names not working, or other general permission plugin bugs, I have to send you back over to your permission plugin topic to request help. There's now too many different permission plugins for me to even bother attempting to debug the issues you could be running into. Basically if you don't have a basic grasp of how to use your permissions plugin, then this plugin isn't going to work for you.
     
  21. Offline

    Plasma

    YAY, i still don't get it :D! Do i put the "prefix: &c[Admin]" in the permissions file, or the config file (ichat mod) one? Please, kinda confuzzled here :p
     
  22. All playernames appear as "null" in chat to me, iChat is the only chat related plugin i'm running, and i'm not getting any errors for it either.
    It is however quite annoying that i can't see who it is that is typing
     
  23. Offline

    Jandalf

    ok, drakia please leave it iChat, you shouldnt be blamed for anything, u did a great work and i dont know any reason why u should change the name, but maybe u should get together with theyeti, so that u could work together, this makes it easier for you and also us, who dont need another splitting-.-
    in the permissions file
     
  24. Offline

    CaptainDDL

  25. Offline

    stavos

    It appears iChat 2.06 is broken by GroupManager V1.0 Pre-alpha. Not sure which developer I should bring this attention too.
     
  26. Offline

    Drakia

    The developer of GM is breaking SOMETHING with every single update >.> I'll look at it today
    About names being null, that was apparently a bug in Bukkit, they fixed it in build 482 but I don't know when the bug was initially pushed into the CraftBukkit repo.
    @Plasma You put any custom stuff like that as the "prefix" variable in the permissions config file.
    @CaptainDDL You can set player-specific prefixes that will overwrite the group-specific prefix, that should let you accomplish what you want.
     
  27. Offline

    CaptainDDL

    Yeah, I've seen that, but if you could do it in-game that'd be perfect.

    If you don't have time to mess with it, I'll try and do it this weekend...I've been needing a project anyways.
     
  28. Offline

    Drakia

    If you use GroupManager (0.99d is the newest version I've personally tested this with) you can use the commands it gives to add/remove prefixes ingame.
    You pretty much just need to give the player a variabled named "prefix" or "suffix" to set a per-user prefix/suffix. That's not something I'm going to implement in this plugin as it's something handled by the permission end of things.
     
  29. Offline

    Plasma

    Yeah i know that >_>, i mean where in the permissions file, i need help coding it in, i kinda don't get it. Like the whole default - true thing and all that, could someone just walk me through a simple [Admin] prefix, step by step. Just a small thing, on a reply, thanks <3
     
  30. Offline

    Jandalf

    ok, no problem, only one thing do you want a [Group] for every group or for just the admin group?
     
  31. Offline

    Plasma

    Just for admin, i can learn off the admin one, if i need to re use it in the future. Thanks :) so just [Admin] (in red btw) i know its &f or &c :)
     
Thread Status:
Not open for further replies.

Share This Page