BukkitIRCd Reloaded
Want to make it easier for people that aren't currently playing to be able to chat with players? How about using IRC as a backbone for that chat system? Introducing BukkitIRCd Reloaded!
BukkitIRCd is a Bukkit plugin that lets you do one of two things. 1) Run a built-in IRC server that is linked to ingame chat, or 2) link ingame chat to an existing InspIRCd server.
Unlike other IRC plugins, ingame users show as separate users on IRC to make conversations easier and the IRC chatroom cleaner.
This plugin is a continuation of the work by Jdbye here, with permission.
Runs as either a standalone IRC server, or a IRC link to any InspIRCd server. |
Standalone IRC server with ingame chat, easily integrated with website using an IRC widget or applet. |
Nickname suffix for ingame players to differentiate between IRC and normal players. |
Nick changing on IRC shows up ingame. |
Public chat from IRC to game, and game to IRC. |
Private messaging from game to IRC, IRC to game, and IRC to IRC. |
Kicking, banning and listing IRC users and setting topic from IRC and ingame. |
Reply quickly to messages using /ircreply |
Ingame users show as separate users on IRC. |
Execute server commands from IRC. (oper only) |
IRC notices from IRC to game, and IRC to IRC. |
IRC joins/quits show up ingame, and vice versa. |
Customizable MOTD read from motd.txt |
Customizable messages read from messages.yml |
User modes (op, protect, voice, etc.) based on permissions nodes. |
Customizable color code conversion between IRC<->Game. |
IRC formatting codes are supported ingame using ^B for bold, ^I for italic, ^U for underline, ^O for normal and ^K for color, and are stripped from ingame chat. |
Dynmap support - IRC messages show up on Dynmap, and vice versa. |
/irckick nick (reason) | Kicks someone from IRC. Aliases: /ikick |
/ircban (type) nick/ip/fullhost (reason) | Bans an online user from IRC by their host, IP, nick or ident, or offline user by IP or full hostmask. (type) = host/ip/ident/nick. Aliases: /iban |
/ircunban ip/fullhost | Unbans a user from IRC. Aliases: /iunban |
/irclist | Lists all users currently on IRC. Aliases: /ilist |
/ircwhois nick | Looks up any user currently on IRC. Aliases: /iwhois |
/ircmsg nick message | Private messages any user currently on IRC. Aliases: /imsg, /im |
/ircreply message | Reply to the last message you received from IRC. Aliases: /ireply, /ir |
/irctopic newtopic | Changes the IRC topic. Aliases: /itopic |
/irclink | Attempts to link to the remote IRC server if in linking mode. Aliases: /ilink |
/ircreload | Reloads the configuration file. Aliases: /ireload |
/rawsend command | For debugging purposes only. Sends a raw server command in linking mode. Disabled by default in the config file. |
!players | IRC command to list online players. |
bukkitircd.kick | Permission for /irckick |
bukkitircd.ban | Permission for /ircban |
bukkitircd.unban | Permission for /ircunban |
bukkitircd.list | Permission for /irclist |
bukkitircd.whois | Permission for /ircwhois |
bukkitircd.msg | Permission for /ircmsg |
bukkitircd.reply | Permission for /ircreply |
bukkitircd.topic | Permission for /irctopic |
bukkitircd.link | Permission for /irclink |
bukkitircd.reload | Permission for /ircreload |
bukkitircd.* | Gives the player permission to all of the above. |
bukkitircd.oper | Gives the player IRC Operator status |
bukkitircd.mode.op bukkitircd.mode.halfop bukkitircd.mode.voice | Gives the player the corresponding IRC user mode |
bukkitircd.mode.* | Gives the player every available IRC user mode |
Source is included in the JAR file and is licensed under GPLv3 GNU General Public License.
Note: Development builds of this project can be acquired at the provided continuous integration server.
These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Full Stats at MCStats.org
Yay, dev build #89 fixed my issue. :) You guys rock.
Seems that with 1.5.2, in-game users get listed as "Unknown[MC]". Other than that, everything else appears to work.
I have problems with setting oper password, everytime i reload the server, the config resets
@zlepper
You will have to get the newest build of the original BukkitIRCd, as our builds use AsyncPlayerChat which, as ron975 said, Tekkit Classic doesn't support.
@Glitoo
As it turns out, the command is just /oper UserName password
My apologies for the confusion.
Hola guys.
Ive installed this but the /oper login command just keeps saying incorrect password. Now ive tried this now with several different passwords and different case sensitivity. But it still refuses to let me in. Any Idea why this isnt working?
Im using the standalone version. and here is the 3 oper lines:
Thanks
Glitoo
@zlepper
The older version should work. Tekkit Classic doesn't support AsyncPlayerChatEvent.
Any chance this could be made compatible with tekkit classic? that's minecraft 1.2.5
Any plans for BungeeCord support?
@WizardCM
If there is no real reason behind it, I suspect that it was done to be able to reuse a large amount of code to keep the body of code small. I haven't looked at the source in detail, but I would also suspect, if my first assumption is right, that in standalone mode, a server is created and the plugin connects to itself as an IRCOP.
@LaserCucumber
As I am not the original developer I cannot explain the reasoning behind the whole op situation. Currently, this plugin could definitely have a number of security holes. Firstly, the standalone server doesn't limit how many people cannot connect, so it could easily be taken down with too many connections. The benefits of using a link include;
I don't know why ingame op automatically has IRC op, but that's just how it is. If you have raw send disabled in config, which is off by default, nothing on BukkitIRCd's end can control the IRC server. Even then, sending raw messages is only enabled for the console, and not the players themselves. It could just be a way to show who the ops are from the IRC server's end.
In a moment I'll modify the code to generate a properly documented configuration file, and maybe write up a page here that helps explain it.
I hope to eventually clean up a bunch of this code that does things poorly, but if you haven't already looked at the source code linked above, it is a very large undertaking, and I'm learning Java while I do this.
@WizardCM
Thanks, this worked.
I really had trouble setting it up. It turns out that I had to add a bind for a server port with my IRC server's public address. The default server binds are all 127.0.0.1.
Other than that... the config file really needs to be better commented. I basically filled things up and got it to work by trial and error.
The plugin works great, but there is something that bothers me. Is a server link really necessary? It seems to pose a useless security risk to me. All my IRCOPs have 32+ character long passwords to oper up and they are instructed to oper up only when required. So I consider that leaving the whole IRC server open to a Minecraft account with admin privileges is a huge security risk. I really see no reason why anyone would handle anything that requires an IRCOP status through Minecraft. Having the minecraft bot be automatically oped on the channel using either services or a bot would be much safer.
@ReaperOftheMine
Apologies for the insanely long wait before I responded. Didn't have time to work on the plugin, but have since learned how one can op themselves on the standalone server.
In the standalone: section of the config, you will find oper-username and oper-password. Set a word for each, something nobody else will know.
Then, once connected to the IRC server, run /oper username password in IRC, and that should give you the oper-modes specified in the config.
@LaserCucumber
Honestly the biggest problem with this plugin is the lack of informative messages, especially when it comes to the whole file-storage deal.
At what point do you edit it, and at what point does it reset? So far I know that it doesn't save a config file on launch, but does save what's in memory into the configuration file when the server is shut down. It's best to edit the file provided in the zip and put it into the config folder before launching the plugin for the first time.
@WizardCM
I updated to 1.4.7 instead but I still have the same problem. There is probably something wrong with my config. I still don't understand why it would be reset though. The logs won't say anything.
@LaserCucumber
I would say try using the original BukkitIRCd, and see if that has any issues. If it does, I'll look into this issue in more detail over the next couple of days.
Any chance that I can get this to work with 1.4.2?
Right now, it loads fine, but the config file is being reset every time. I checked it in a YAML parser and it comes out fine.
@simplify3
I know right? IRC is life.
@LaserCucumber
It is for replying to Private Messages sent from IRC. By default all public ingame messages are sent to IRC.
I can't try this plugin yet because my IRC server is down, but :
Reply quickly to messages using /ircreply
Does this mean that normal messages don't automatically make it to the IRC channel?
@ReaperOftheMine
As we did not write the original plugin, we have not yet figured out how this is done. It may be via ingame permissions, so try that. If not, we'll look into it for you.