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. Offline

    Dutchy

    I see (in your github) that you've been working on some of the stuff I mentioned, that's great, looking forward to version 0.4 :)
     
  3. Offline

    Nathan C

    Spitting a lot of errors on the latest CraftBukkit
     
  4. Offline

    hef

    Please post them.
     
  5. Offline

    Nathan C

    Here they are.

    Code:
    2011-02-22 07:09:58 [SEVERE] Connection refused
    java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at java.net.Socket.<init>(Socket.java:375)
        at java.net.Socket.<init>(Socket.java:189)
        at org.jibble.pircbot.PircBot.connect(PircBot.java:140)
        at org.jibble.pircbot.PircBot.connect(PircBot.java:91)
        at hef.IRCTransport.IrcAgent.connect(IrcAgent.java:56)
        at hef.IRCTransport.IrcAgent.<init>(IrcAgent.java:36)
        at hef.IRCTransport.IRCTransportPlayerListener.<init>(IRCTransportPlayerListener.java:22)
        at hef.IRCTransport.IRCTransport.<init>(IRCTransport.java:28)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:77)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:117)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:82)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:53)
        at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:193)
        at org.bukkit.command.SimpleCommandMap$ReloadCommand.execute(SimpleCommandMap.java:184)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:77)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:171)
        at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:610)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:589)
        at net.minecraft.server.Packet3Chat.a(SourceFile:24)
        at net.minecraft.server.NetworkManager.a(SourceFile:232)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:317)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Here is a partial part of my server log, if that matter. Maybe a config error?

    Code:
    pvp=true
    server-port=25565
    spawn-protection=16
    irc.server=irc.Mibbit.Net&channel=%23server%2C%23general
    irc.autojoin=true
    irc.verbose=true
    
     
  6. Offline

    hef

    irc.mibbit.net is not an irc server. It is a site that acts as an irc client.
    you need to set irc.server to an actual irc server.

    Edit: My advise is wrong, see Dutchy's post.
     
  7. Offline

    Dutchy

    Actually, irc.mibbit.net has a port open on 6667, so it is an irc server.

    Nathan, your config should look like this:
    Code:
    irc.server=irc.mibbit.net
    irc.autojoin=#server
    the autojoin setting currently supports only 1 channel.
     
  8. Offline

    vatik

    As screen space in Minecraft is sometimes limited, would it be possible to add an option to hide the channel name from the chat text? Perhaps only hide the channel name if it's the default one. Thanks! --vatik
     
  9. Offline

    hef

    I agree that screen space is very limited. I want to get better color support working before I address this.
    I don't think I will hide the channel completely, but replace it with shorthand notation. I'll need to experiment some to see what "feels" right.
     
  10. Offline

    Tibs

    This is working for me with CB440, awesome sauce. I was using CraftIRC but I like the way this works much better. I definitely like being able to see who is in game from the irc server.

    Let the irc server deal with /nickserv etc, keep this plugin lean and mean, just a transport man!


    ircd-hybrid conf: number_per_ip = 4; < change to whatever the max users are on the server, 10-20 etc.


    If you limit connections to the irc server to only come from the minecraft server this shouldn't be an issue. It could be a problem with more open irc servers that can be accessed by anyone if the server can't deal with a lot of traffic.

    If people really get serious about this setting up a minecraft irc network would be possible.
    We would need a critical mass of stable irc servers first. Then as people setup IRCTransport they could use this netowork to connect if they didn't have thier own irc server, or add their own to the network. This is a huge slimy can of worms tho.

    It would be crazy spammy but in theory you could link every minecraft game across every server into the same room and everyone could talk to everyone at the same time.
     
  11. Offline

    kivan117

    If you could add an option to identify your nick (normally "/nickserv id <pass>" in irc) using something like "/id <pass>" in game it would be very appreciated. I'd like to leave my nick protected in irc and also use it from minecraft ^_^
     
  12. Offline

    yeahMan

    excellent plugin. My only problem is in-game chat text duping which I suspect is conflicts with HeroChat in which case i'll have to disable this plugin until HeroChat supports it.
     
  13. Offline

    d3x

    your real life name Captain Obvious?
     
  14. Offline

    adamgoodie

    Very nice! Nice alternative with to CraftIRC.

    I also think it would be a good idea to remove the channel name, it does kinda get in the way. Maybe the channel name could be displayed when "/channel" is entered?
     
  15. Offline

    Dutchy

  16. Offline

    yeahMan

    K i disabled herochat and it was the reason i was getting duping messages. Only problem now is if mibbit can support 20+ names on one I.P. and I would guess not but so far it's handling 5+ quite well. Anyone know the answer to this?
     
  17. Offline

    hef

    I appreciate the server configuration tip, and the feedback.


    Neat.


    Absolutely, I am happy to share.
     
  18. Offline

    Fritz2d

    Great Addon, I wish it would work better with our Server.
    We try to connect, to a registerd gamesurge-channel with chanserv. Works fine with a few useres.
    But if more Users (15+) join the Minecraft-server the Server is going to freeze without warning and shut down, without error-messages. Without Irc-Transport the Server works with 30+ Players stable. Any idea, where could be the problem?

    Do the Players conntect direct to the IRC-Channel, or does create the plugin a User and forwards all messages zu this "fakeircuser"?... I think i could be, that Gamesurge blocks too much Useres in a channel with the same Ip. But don't know why Minecraft-Server crashes...
     
  19. Offline

    hef

    My biggest test has only been with about 6 users. My first guess was that the jvm ran of memory, but that usually comes with error messages. A hard lock could be possible. Try running with irc.verbose=true in your server.properties file. This will produce a lot of logging chatter with that many users, but it might help narrow down what happens right before a crash. Post the results if you do this.

    The Minecraft server (with this plugin) creates a user on behalf of the player, so all the users will appear to come from the ip of the Minecraft server. I can't change this without client side modding.

    Personally, I run my own irc server to get around this limitation. You might be able to contact your IRC provider and try and negotiate a higher ip cap. If it helps, users are not able to change their irc username, only their nick.
     
  20. Offline

    Liquidmantis

    Careful with this. When I came across this plugin I switched over since CraftIRC is broken right now. I got temporarily banned (g-lined) from Quakenet because I wasn't aware of their 5 client connection limit.

    I see the post just above mine mentions that.

    Thanks for the plugin work regardless though!
     
  21. Offline

    Tibs

    Unless your using a host that just resells minecraft servers, you can run an irc server on the same server as your minecraft server without an issue.

    Take a look at www.ircd-hybrid.org

    I run it on my server, it's using 13m of memory.. it's like it's not even there.

    It's bad form to connect to an irc server with something like a minecraft server without permission from the server owner.

    Run your own, its easy and your users will love it.

    Thanks for an awesome plugin hef!
     
  22. Offline

    Fritz2d

    I don't tested it yet with irc.verbose=true - i think it could be, the the server was g-lined, too and the server trys to reconnect with every new chat by a user. Maybe this caused the crash. I will not test it with gamesurge-servers.
    Maybe i gonna set up a own irc-server, but it is a hard business to get a own irc-server really safe. But i think a solution, that make the plugin work like a irc-client would be the best. But that would be a really hard job ;)
    Thanks for the addon, i will take it on focus.

    Sry for my badass english :)
     
  23. Offline

    Dutchy

    I have added another commit to the pull request i sent a few days ago which fixes lines that have a color code at the end. Currently IRCTransport fails to display these lines because it tries to access a character at an index bigger than the line length.
     
  24. Offline

    zac352

    It would appear that the IRC stops working after a while...
    Either something is causing latency of like, 300 years, it doesn't automatically reconnect after losing connection, or doesn't do something like ping IPs to keep the connection alive combined with not reconnecting after losing connection.

    Whatever it is, it's breaking chat in my server after about 20 minutes from start up.
     
  25. Offline

    Dutchy

    It's probably not reconnecting. However, if you always get this after 20 minutes, there's something wrong with your connection. This plugin has been running for days without problems here.
     
  26. Offline

    zac352

    My router has been acting up over the past few days...

    Chat from me appears, but commands don't work; And I haven't been able to test whether or not anyone else can see my chat.
    --- merged: Mar 6, 2011 11:56 PM ---
    I haven't been disconnected yet, but I have noticed that private messages don't seem to work...
    I changed my nick and nickserv sent me a message (saw it in the verbose output), and it didn't show up in the chat.
    When I sent a return message to nickserv, it gave me the help text and sent the message but didn't say it (again I was looking at verbose output).
    --- merged: Mar 7, 2011 12:07 AM ---
    Look at this beautiful little line, which doesn't seem to be accomanied by a "Connecting..." message:
    Code:
    19:02:52 [INFO] *** Disconnected.
    
    The thing is though, I got that from being AFK for about 5 minutes.
    I think that should be looked into...

    After that message, you're basically completely cut off.
    You can still use general commands, but anything to do with chatting/IRC is gone.
    You can still see chat from others on the server and the console, but you can't talk to anyone and the console can only see your chat if you have verbose on.
    It makes absolutely no attempt to keep the connection alive or to connect after losing connection.
     
  27. Offline

    hef

    I wonder if this is the root cause. If you don't think that it is, can you send some info about the IRC server.

    Thank you!
    Messages from the logs are incredibly valuable.

    This is true, the plugin currently doesn't attempt to reconnect after a lost connect, nor does it warn the user.
    I am working on a fix for this now. It needs some testing. I need to get another IRC server instance up that I can use for disconnect testing.
     
  28. Offline

    HoppyDragon

    I just setup my own IRC server specifically to test this plugin. I'm glad to see as of right now it functions as it should, but I would really like to get some color options for the text in here. It would make the text much more readable for myself and the players on my server.
     
  29. Offline

    hef

    What kind of color options are you looking for?
     
  30. Offline

    HoppyDragon

    Just a way to differentiate the channel from the actual chat text, as well as the person speaking.
    So for example, the channel name is blue, the name of the person speaking is red, and the text is white or whatever color you choose.
     
  31. Offline

    nanashiRei

    Hi there, nice plugin, one question thought, would it be able to also translate IRC colors to ingame colors, i patched 0.4 to do this if you want i can give you the function. Another thing i would like would be to have prefixes, so that anyone joining irc from Minecraft gets a tag in front of the name. This is because my IRC nickname is the same as my ingame nick, and with most others this is the same. We all end up getting renamen to nickname1 or stuff like that.

    Code:
    public String fromIrc(String message)
        {
            //char[] messageArray = message.toCharArray();
            for(int color = 0; color <= 9; color++)
            {
                message = message.replaceAll("\u0003"+Integer.toString(color)+"(\\D)","\u00030"+Integer.toString(color)+"$1");
            }
            Set<String> keys = ircToMineColor.keySet();
            for(String key : keys)
            {
                ChatColor cc = ircToMineColor.get(key);
                String minecolor = cc.toString();
                message = message.replaceAll(key,minecolor);
            }
            return message;
        }
    
        public String toIrc(String message)
        {
            Set<String> keys = ircToMineColor.keySet();
            for(String key : keys)
            {
                ChatColor cc = ircToMineColor.get(key);
                String minecolor = cc.toString();
                message = message.replaceAll(minecolor,key);
            }
            return message;
        }
    This works fine for me, don't know if i coded it terrible, i actually don't know java at all :p
     

Share This Page