Inactive [CHAT] IRCTransport 0.13.0 - Minecraft Chat/IRC Integration[1.2.3-R0.2]

Discussion in 'Inactive/Unsupported Plugins' started by hef, Feb 4, 2011.

  1. Offline

    hef

    This Bukkit plugin replaces minecraft chat system with a connection to an IRC Server. All IRC Connections happen Bukkit server side, so either run your own IRC server, or make sure that you are allowed to use mutiple connections on the IRC server of your choice.
    Available settings:

    Put these in IRCTransport/plugin.yml file with appropriate values.

    Code:
    verbose: false
    suppress:
      initial_userlist: false
      initial_topic: false
    server:
      address: localhost
      port: 6667
      ssl:
        enabled: false
        trust: false
      nicksize: 16
      webirc_password: p@$$w0rd
    default:
      prefix: '[MC]'
      suffix:
      channels:
        - channel: '#minecraft'
    messages:
      chat-irc: '&9[&b${CHANNEL}&9] &3${NICK}: &f${MESSAGE}'
      quit: '&3${NICK} &fleft'
      private: '&2${NICK}&f to you: &f${MESSAGE}'
      part: '&3${NICK} &fleft'
      rename: '&3${OLDNICK} &fis now &3${NEWNICK}'
      kick: '&3${NICK} &ckicked by &3${OP}: &${REASON}'
      join: '&3${NICK} &fjoined &b${CHANNEL}'
      list: 'On &9[&b${CHANNEL}&9]: &3${LIST}'
      topic: '&9[&b${CHANNEL}&9] &3Topic: &f${TOPIC}'
      action: '* &3${NICK} &a${ACTION}'
    translations:
      hit the ground too hard: hit the ground
    
    The server address setting is mandatory. All other settings are optional.

    Normal Settings:

    Your config.yml will look a lot like this:
    Code:
    server:
      address: irc.example.com
    default:
      channels:
        - channel: '#minecraft'
    
    Available commands:

    Code:
    /join #channel [key]
    /leave #channel
    /channel #channel -- changes your active channel
    /msg user -- send a private message to a user
    /nick new_name  -- change your display name.
    /names -- shows users in your channel
    /me action to perform -- performs an irc action
    /topic -- get or set the channel topic
    /whois -- gets information about the nick
    
    Download
    Source
    Features:

    • Minecraft chat is replaced with an IRC session.
    • Private messaging works in game.
    • IRC channels are joinable in game.
    Changelog:
    Version 0.13.0
    • Leaving a channel sets another channel active.
    • Disabling IRC <-> Minecraft color code mapping (for now).
    • Added message customization support.
    • Added basic translation support.
    • Added trust all SSL option.
    • Fixed bog on player join.
    • Added WebIRC support.
    • Added Metrics
    Version 0.12.0
    • Works with Bukkit 1.1 (and 1.2)
    • Fixed bug in DeathMessage
    Version 0.11.2
    • Fixed /msg showing usage everytime.
    Version 0.11.1
    • Fixed nullUSERNAMEnull bug.
    Version 0.11
    • Fixed a potential reload bug
    • Changed from using server.properties to using IRCTransport/config.yml
    • Added /whois support.
    • Added nick persistance.
    Version 0.10
    • Added nickanme prefix and suffix options.
    • Fixed Automatic reconnect after plugin is disabled or server is stopped.
    • Added Error message for nick name already in use.
    • Fixed a null exception when the console tries to use irc commands.
    • Channel parts (leaving a channel) are now announced.
    • Channel kicks is now announced.
    • Added some handling for "Connection reset" errors.
    Version 0.9
    • Fixed PlayerJoinEvent/PlayerQuitEvent changes
    • Added channel key support.
    • Added auto join key support.
    • Made system messages yellow.
    Version 0.8
    • Actually fixed bug that 0.7 was supposed to fix.
    • Added irc.password and irc.port configuration options.
    Version 0.7
    • Fixed bug where IRC agent would reconnect after player disconnected.
    Version 0.6
    • Attempts to reconnect to IRC server on connection failure/disconnect.
    • Minecraft color to IRC color support in chat.
    • Color conversion code refactored.
    Version 0.5
    • Fixed a nickname change bug.
    • IRC color to minecraft color support in chat.
    • Removed TSLPC.
    • Channel topic support
    Version 0.4
    • Added /me support
    • Added /names support.
    • Added channel is invite only error message.
    • Changed output messages to use logging.
    • Fixed bug in nickname changing.
    Version 0.3
    • Renamed PlayerBot to IrcAgent.
    • Fixed join message detection.
    • Changed package name to hef.IRCTransport as per request.
    • Changed build system to Maven.
    Version 0.2
    • Player's name displays correctly when their name is changed.
    • Nick change notification added.
    • Nick already in use handling changed.
    • Active channel is switched on channel join.
    • Channel join messages.
    • Channel autojoin now a setting.
    Version 0.1
    • Basic irc features are functional in Minecraft.
     
    Bagels, someoneB, kvartz and 4 others like this.
  2. Looks decent enough, Good Job. Hope to see some more from you
     
  3. Offline

    thegleek

    How is this different or better then the already existing CraftIRC plugin?
     
  4. Offline

    hef

    I am glad you asked. CraftIRC uses a single IRC agent (IRC bot) for all IRC to minecraft communication. This plugin creates a IRC agent per minecraft player. This means that each player gets their own unique IRC nickname. I feel that this plugin creates a more seemless chat experience.
     
  5. Offline

    thegleek

    ah very nice! whats the ETA of release?
     
  6. Offline

    hef

    What do you mean by release? There is a Download link already.
     
  7. Offline

    thegleek

    ah i guess i'm not aware of how or when a plugin submission turns into a plugin release
     
  8. Offline

    hef

    Niether am I.
    I has assumed that I had to post to the plugin submission forum, and that once approved by staff, It would be moved to the plugin release forum.
     
  9. Offline

    feverdream

    I have such fond memories of reading and re-reading rfc 1459 when I was younger; Oh the memories and nostalgia!

    I cant help but notice however that channel and nick authentication are not handled, at least at first glance. Is support for nickserv and chanserv in the pipe to be added? or am I missing something?
     
  10. Offline

    hef

    I have no intention of adding native nickserv/chanserv support. The reason is that players are fully capable of identifying to nickserv/chanserv themselves. (each player get's their own nick).

    I supposed I could be convinced to add /identify or something, but it seems like a fairly minor improvement compared to "/msg nickserv identify password".
     
  11. Offline

    den

    I can't get this to work.

    I use the same information I use to make CraftIRC work and it just spits out unable to connect to irc server and a giant error in the console.
     
  12. Offline

    hef

    Post the error and I can take a look.
     
  13. Offline

    feverdream

    The problem is that sometimes a persons minecraft username is not thier IRC username, or worse, somebody on irc owns a username that is th same as their minecraft username.

    Adding /identify would be a minor, but needed improvement.
     
  14. Offline

    hef

    If a nickname is taken when the plugin attempts to connects to irc, the plugin will attempt an alternate name (by appending a number to the desired nick). A user is then free to kick/ghost the offending nick via private messages to nickserv, and reclaim their nick with the /nick command.
    I don't think I understand. How would /identify help with the nick collision problem? What are you proposing that /identify do?
     
  15. Offline

    Dutchy

    I am not sure why, but this isn't working for me.
    In server.properties:

    irc.server="irc.xs4all.nl"
    irc.autojoin="#tuincraft"

    The bukkit/minecraft server gives no errors whatsoever, and the /plugins command says IRCTransport is loaded. When I chat, ingame it prepends my message with the channel, but nothing happens in the IRC channel! (watching with my usual client).

    Any idea what I'm doing wrong/how I can debug this?
     
  16. Offline

    hef

    I think I discovered a bug where the active channel is not set automatically if your minecraft username is longer than the allowed irc username (not nick, actual username). I intend to have a fix for this shortly.

    To see if I am accurate, watch the server log for PRIVMSG commands to null instead of a real channel name.
    as a workaround, use "/channel #tuincraft" to set the channel correctly.
     
  17. Offline

    Dutchy

    Hmm, it appears the plugin did give an error, it just appeared in the system.out rather than in the log. Since I use http://www.minecraftwiki.net/wiki/Server_startup_script I don't see my system out, can you change this plugin to let bukkit handle the output? Not sure how that works but i do see messages/errors from other plugins.

    For now I'll run it manually... The error I get is:
    IOException: Failed to connect to irc server: "irc.xs4all.nl"
    java.net.UnknownHostException: "irc.xs4all.nl"

    I'll try some other hosts and ip addresses to see if that works.
    --- merged: Feb 12, 2011 2:38 AM ---
    Alright, the problem was that I put quotes around the configuration options. I should've done:

    irc.server=irc.xs4all.nl
    irc.autojoin=#tuincraft

    Another thing I noticed is that if an external user joins the channel as /join #UpPerCAse it'll show as that in the ingame chat. Can you apply channel.toLowerCase() ?
     
  18. Offline

    hef

    I would be happy to make this change, but I haven't figured it out yet either.


    Noted, I am adjusting the forum post and readme

    I also just push version 0.3.
     
  19. Offline

    Dutchy

    Alright, looked it up for you :)

    Apparently, you can request a log by name, and bukkit/minecraft/plugins use "Minecraft" as the name:
    Code:
    protected static final Logger log      = Logger.getLogger("Minecraft");
    This is the usual java.util.logging.Logger

    With this you can just log like
    Code:
    log.info(name + " " + version + " disabled");

    -edit- btw, version 0.3 works too, thanks for the update
     
  20. Offline

    hef

    I think this is a server specific behavior. On unrealircd, it appears to auto lowercase server side. As far as I can tell, a server may be allowed to treat #aaa, #aAa, and #AAA as seperate channels.
     
    murdrums likes this.
  21. Offline

    d3x

    I love this idea!

    I assume all the users that join IRC will be connecting with the server's IP? Might want to note for noobs that most IRC servers will ban a IP when 5ish clients connect from it.

    Will work GREAT for people running their own IRC servers though (me) :D
     
    thegleek likes this.
  22. Offline

    Cmars

    ... What...
     
  23. Offline

    dirkson

    Any chance we could get some support for chat colors? Either through an exist module (simplecolors) or some in-module magic?
     
  24. Offline

    Kane

    @hef was thinking of giving this a try tomorrow on. I was wondering how the performance on this does it run on its own thread any chance?

    I think this be wonderful for any server but it really depends on how stable it could be.

    Also how well does it auto connect and such do to chat flood and such.
     
  25. Offline

    KingPin

    Hi nice plugin, loving the individual player angle so far, is there any way to pass the player IP itself to server? as posted previously most irc servers dont take too kindly to many connections from same IP. my network gave me a small increase in sessions but I dont want to get kline'd from there.
     
  26. Offline

    hef

    Can you link to the addon you are talking about. I found simplecolours, but that only changes player name, which I don't think I can support due to the way that colors work in irc.

    I want to keep integration with other plugins working, but this will be challanging considering this is a chat replacement.

    I am starting to work on a irc to minecraft color mapping, so that chat messages can get colored. If another plugin allows for colorizing tags, it should be possible for this plugin to grab the colors, and remap them to irc colors when a message goes out, and then back again when it comes in again. This will require some Event priority finagling.

    --- merged: Feb 15, 2011 3:33 AM ---
    Network communication should happen asynchronously, but I have made no special efforts to thread anything. I don't think anything in this plugin does any heavly lifting, but if I can identify bottlenecks, I can add threading support. I would be happy to hear about performance issues, especially if they can be tied to certain events( user signing on, too many messages, etc)
    Auto-reconnect is a good idea. Currently a player would have to sign out of Minecraft and sign back in to force a reconnect to irc.
    --- merged: Feb 15, 2011 3:51 AM ---
    No, not without a client side mod.
    I would suggest people run their own irc server, or become good friends with the netops. I assume this is feasible for people that are already running a bukkit server with plugins.

    Alternatively, I suppose a plugin could act as an irc server in an irc network, and save significant amounts of bandwidth (traffic could be condenced since most of it is repeated), but that sounds like an immense amount of more time dedication to the codebase, and is significantly more complicated to configure. You would probably be better off running a properly configured irc server locally, and get it added to the IRC network you wish to join. IRC servers usually have a ridiculous amount of security concerns that need to be addressed, and I would rather rely on people who have already addressed them.
     
  27. Offline

    KingPin

    @hef thank you for the response, and yes it does make sense that it would require a client side mod. I used to run my own IRCD a while back for my set of servers for various games so i can say its a definite pain in the ass to run one for a dozen or so people.... guess I will go back to craftirc if it ever gets to be an issue.

    Edit* : what about allowing us to pool multiple servers, rizon (irc network im using) has allowed me 20 sessions, but their individual servers have lower limits, so if I could add individual server addresses and the plugin could round robin the connections to them it would theoretically be better than using one address. just an idea :)
     
  28. Offline

    Dutchy

    This has been running fine for a few days on our server. I had to switch to our own irc server because IRCNet only allows 2 connections, but that's ok.

    I am missing some features like error reporting/logging, command feedback ("you joined channel X", or "could not join channel Y because it is invite only"), a /names command, stuff like that, but nothing I can't live without.
    The author of SimpleColours, blaatz0r, plays on our server, so maybe you 2 could chat about integration. I imagine you could send a message without colors to the irc server but one with to the client? Dunno how bukkit handles that though.
     
  29. Offline

    KingPin

    is there anyway to async the irc connection process? currently every time anyone logs in I get a coupla seconds of lag because the irc takes a bit to connect. its not the machine as it doesnt happen without the irc plugin :( it always happens when i notice the irc connection process in console. thank you.
     
  30. Offline

    hef

    The connection process, and all irc communication is handled in a separate thread. That said, I also get lag on initial connection, but I haven't figured out how to profile (or debug in a debugger) a bukkit plugin.
     

Share This Page