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 already submitted a color fix to hef on github and he has since then released 0.5. See github for the most recent source code.
     
  3. Offline

    nanashiRei

    Oh well, i just patched 0.5 for now again, also added permissions (EssGrpMan) prefix support~
     
  4. Offline

    zac352

    *waits for .6 update impatiently*
    I've had to remove the mod from my plugin directory, people stopped going to my server because of the disconnections. =_=
     
  5. Offline

    hef

    Version 0.6 is up.
    Reconnection support added. Each agent will attempt to reconnect every 20 seconds after a connection failure.
     
  6. Offline

    zac352

  7. Offline

    OvermindDL1

    How do you set a port?
    I have tried all these combinations to no avail, either get UnknownHostExceptions, or just a crash:
    Code:
    irc.server=localhost:7667
    irc.server=localhost 7667
    irc.server=irc.external-name.com:7667
    irc.server=irc.external-name.com 7667
    
    Thanks for any assistance.
     
  8. Offline

    hef

    IRCTransport does not currently support non standard irc ports or port specification. That looks like a good feature though.
     
  9. Offline

    OvermindDL1

    I would be much appreciative. :)
    Instead of needing to parse out the irc.server with nasty string splitting code, perhaps just adding a simple irc.port would be the most simple?

    Thank you much.

    EDIT:
    Also, I would not use this, but I notice that pircbot's Connect method can take a Connect(serverName, serverPort, serverPassword), so perhaps an irc.serverpassword or just an irc.password to round it out as well or so?
     
  10. Offline

    hef

    Version 0.6, 0.7 are bugged. They both don't handle disconnections properly. I was distracted from working on 0.8 becuase of the [inactive] flag on this forum post. I think this plug in was flagged inactive because I missed a change in the plugin release guidelines where latest tested version is now mandatory. I "reported" the plugin announcement to try and get moved back to the plugin release forum. For anyone using this plugin, I assure you I have not abandoned the project.

    irc.port and irc.password are now supported.

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

    OvermindDL1

    Absolutely awesome, I look forward to testing it.
    I set up a port redirect to pass 7667 to 6667 on the current box so I worked around it for now, but will be glad to get rid of that.
    And I did notice the disconnection issue, especially once I logged back in and found 30 duplicates of one person, 18 of another, and so forth... ;-)
     
  12. Offline

    Oifan

    Great job hef,
    but your plugin seems to have conflict with iChat -- I configured some format & coloring in iChat, and now I have different format:
    [#irc_channel] user: message
    I was just wondering, can your plugin have iChat support or something like that ?
    That would be awful.

    And hef,
    could you please add irc.channel.key (or something like that) when joining to irc.autojoin (it is a kind of password for entering the IRC channel, not IRC server password) -- you don't have to code anything, just call (in class hef.IRCTransport.Connect, method run) this method if irc.channel.key is not empty:
    Code:
    void org.jibble.pircbot.PircBot.joinChannel(String channel, String key)
    instead of what you are calling now:
    Code:
    void org.jibble.pircbot.PircBot.joinChannel(String channel)
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 8, 2016
  13. Offline

    NynjaWitay

    I love this plugin, but am having no luck with 0.8 and CB602.

    Code:
    13:27:55 [SEVERE] class hef.IRCTransport.IRCTransportPlayerListener overrides final method onPlayerJoin.(Lorg/bukkit/event/player/PlayerEvent;)V loading IRCTransport v0.8 (Is it up to date?)
    java.lang.VerifyError: class hef.IRCTransport.IRCTransportPlayerListener overrides final method onPlayerJoin.(Lorg/bukkit/event/player/PlayerEvent;)V
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
            at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:142)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:32)
            at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
            at hef.IRCTransport.IRCTransport.onEnable(IRCTransport.java:56)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:511)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:216)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:93)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:71)
            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)
    
    
    This is probably a pretty simple fix, but I haven't touched java in a really long time.
     
  14. Offline

    Tibs

    *nudge ;) b617jnks (MC: 1.4)

    [SEVERE] Nag author: 'hef' of 'IRCTransport' about the following: onPlayerJoin has been replaced with a new signature, (PlayerJoinEvent)

    Awesome mod all around, works fine so far as I can tell with the latest builds, no issues other than the nag.
     
  15. Offline

    hef

    Thank you! I have a fix for this ready for the next release.
    Thank you.

    I am having trouble reproducing this exact error, but I suspect that the error was replaced with the nag that NynjaWitay posted.

    I see no reason not to support channel keys. I'll work on adding that.

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

    duckinator

    I was thinking maybe you could add a way to (optionally) add things before/after the nicks to allow easier integration with "normal-use" irc servers, ie:
    Code:
    irc.prefix=[
    irc.suffix=]
    would make it so my user on mc -- "duckinator" -- would connect as "[duckinator]" to irc.

    (I'd personally just use irc.suffix=[mc] but what I said demonstartes both ;)

    * EDIT: 8th time's a charm? My fingers aren't cooperating.
     
  17. Offline

    virtualism

    Does it work with 1.4? I'm running craftbukkit 612 and getting this error on the server start:

    Code:
    00:37:32 [SEVERE] For input string: "6697 " loading IRCTransport v0.9 (Is it up to date?)
    java.lang.NumberFormatException: For input string: "6697 "
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:481)
        at java.lang.Integer.parseInt(Integer.java:514)
        at hef.IRCTransport.IRCTransport.onEnable(IRCTransport.java:80)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:514)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:216)
        at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:94)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:72)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:215)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:202)
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:142)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:257)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    
    This is what i get when i try a command:
    Code:
    >join #virtualism
    00:25:40 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'join' in plugin IRCTransport v0.9
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:225)
        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:391)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:377)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.command.ColouredConsoleSender cannot be cast to org.bukkit.entity.Player
        at hef.IRCTransport.IRCTransport.onCommand(IRCTransport.java:133)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 6 more
    >
    
    These settings are in my server.properties:
    Code:
    irc.server= irc.bytesized-hosting.com
    irc.port=6697
    irc.password=
    irc.autojoin= #virtualism
    irc.autojoinkey=
    irc.verbose=false 
    (I've tried it with and without spaces after the'=', consistently, but to no avail.)
    Downloaded it 10 minutes ago. Running Debian 6, if that matters. Tried chowning/chmodding and changing port.

    EDIT: Same deal with cb 617.
     
  18. Offline

    NynjaWitay

    Thanks for the 0.9 update. It seems to be working okay with CB617. Running a "reload" cause me to join the channel twice. All of my chat messages showed twice.

    I have a feature request. My minecraft name and IRC nickname are the same. That means that when I connect, I become nynjawitay2. This isn't that big of a deal, but I was wondering if you could add an option like "irc.nickprefix" so that everyone in minecraft will be distinguished. It is possible to use the "/nick" command, but that doesn't stick. If that could be made to stick, that would be awesome, too.
     
  19. Offline

    bad4brain

    Please Help ^^
    I always get the following Error:
    Code:
    2011-04-05 00:54:49 [SEVERE] Connection reset
    java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(Unknown Source)
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
        at sun.nio.cs.StreamDecoder.read(Unknown Source)
        at java.io.InputStreamReader.read(Unknown Source)
        at java.io.BufferedReader.fill(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at org.jibble.pircbot.PircBot.connect(PircBot.java:174)
        at hef.IRCTransport.Connect.run(Connect.java:38)
        at hef.IRCTransport.IrcAgent.<init>(IrcAgent.java:37)
        at hef.IRCTransport.IRCTransportPlayerListener.onPlayerJoin(IRCTransportPlayerListener.java:32)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:169)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:98)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:87)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:27)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:87)
        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)
    
     
  20. using this now, it looks awesome, but would be cool if it could have a better integration with iChat 2
     
  21. Offline

    mr_flea

    As hef mentioned earlier in this thread, this plugin is not suitable for most IRC networks. Please do not use this plugin on Esper if you plan to have a server with more than 4 player slots.
     
  22. Offline

    Zaros

    A what...?
     
  23. Offline

    hef

    It looks like you have a space after 6697, try removing it.

    The join command is meant to be run by the player, not the server. I should handle this error more gracefully.

    This usually happens when the plugin can't connect to the specified irc server. You may want to post your settings from irc.properties.

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

    Gryphon

    It would be great if we could specify prefix/suffix for the initial nick. ie: Username|MC or MC|Username

    Thanks for the mod.
     
  25. Offline

    virtualism

    For shame, Virtualism. Thanks. That fixed it. (Well, and setting the port to 6667, but both were relevant.)

    I second that pre/suffix idea. theres a plugin for that! HeroChat.
     
  26. Offline

    Flo C.

    You could change the name of the bot to Minecraftbot or something else .. here:
    [​IMG]
    (located in Pircbot.java)

    Could you add an Auth function too?

    Like that :D.

    BTW: Great Plugin!
     
  27. 2011-04-30 19:29:58 [INFO] playernamesecretlolololz [xx.xx.xx.xx:50924] logged in with entity id 1957
    2011-04-30 19:29:58 [SEVERE] Connection reset
    java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at org.jibble.pircbot.PircBot.connect(PircBot.java:174)
    at org.jibble.pircbot.PircBot.reconnect(PircBot.java:248)
    at hef.IRCTransport.Connect.run(Connect.java:40)
    at hef.IRCTransport.IrcAgent.onDisconnect(IrcAgent.java:81)
    at org.jibble.pircbot.InputThread.run(InputThread.java:141)

    getting this now and then, restarting server doesn't seem to help

    craftbukkit 733
    irctransport 0.9
     
  28. Offline

    hef

    This looks like the connection to the IRC Server from your bukkit server is getting reset or temporarily dropped. It looks like the irc client would stay disconnected after this error, I'll make an adjustment so that the agent tries to reconnect afterwords.
     
  29. Offline

    NynjaWitay

    So I have a supybot sitting in the same channel as IRCTransport is set to. I recently gave the bot permissions and when my friend played "@roulette" he got kicked. IRC shows a kick message, but minecraft does not. This is a bit confusing for people since no one in game realizes that whoever got kicked isn't in chat anymore. Is there a setting to turn those kind's of messages on?

    Edit: The join message does display when the player types "/join #channel"
     
  30. Offline

    hef

    This all sounds pretty reasonable. I'll add it.
     
  31. Offline

    Shadowblade989

    @hef: First off, thank you for the excellent work. This is how an IRC plugin should be done. Seamless integration.

    I am however getting the following exception, seemingly at random, when a user connects to the game:
    Code:
    23:01:58 [SEVERE] Connection reset
    java.net.SocketException: Connection reset
            at java.net.SocketInputStream.read(SocketInputStream.java:185)
            at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:282)
            at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:324)
            at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
            at java.io.InputStreamReader.read(InputStreamReader.java:184)
            at java.io.BufferedReader.fill(BufferedReader.java:153)
            at java.io.BufferedReader.readLine(BufferedReader.java:316)
            at java.io.BufferedReader.readLine(BufferedReader.java:379)
            at org.jibble.pircbot.PircBot.connect(PircBot.java:174)
            at org.jibble.pircbot.PircBot.reconnect(PircBot.java:248)
            at hef.IRCTransport.Connect.run(Connect.java:40)
            at hef.IRCTransport.IrcAgent.onDisconnect(IrcAgent.java:81)
            at org.jibble.pircbot.InputThread.run(InputThread.java:141)
    
    The user is left unable to chat at all (obviously). I haven't seen any real pattern to this occurring.

    Thanks again for the excellent work.

    EDIT: I dont know what your development environment is like, but it would be extra nice if you could provide build instructions for those of us who don't ever develop in Java. I wouldn't mind trying to fix this, but I have no idea how to build it into a usable .jar!
     

Share This Page