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
@Mu5tank05
Dev build server link has apparently been claimed by someone else :/
Hey everyone, quick update time We are still alive and kicking. Not much work has been done lately but we do have development build sitting around for 1.8. The best place to keep up with this plugin is now https://github.com/WMCAlliance/BukkitIRCd Thanks :D
@PhiberOptikx Sorry for the delay I agree about an ignore feature I will add it the top of the Planned features list.
On the previous build I asked for this but never got a response. So I'm going to ask it again here.
I have multiple server running BukkitIRCd as a inspircd leaf node. I have created 1 channel for them all to connect to, 10+ servers in 1 channel. Can you implement an ignore feature. Either via a command or just a text file like messages.yml. Any username in that ignore list will be, ignored.
Here's why: With 10+ "bots" if a server broadcast goes out on say
<Server1> Staff meeting tonight.
The other 9 will then pick that up, and post it out in chat as if it was a normal person. Which of course will loop it 9 times to each server. Which will be extremely spammy.
@Charl101
As far as I know, yes. I continue to use this plugin on my server, since before I posted it here to BukkitDev, although I run development builds for testing. If you choose to use a development build, make sure to use the relevant configuration files, found in the development branch on Github, although it is not recommended.
Is this still working?
@hintss
nice breakdown fron those documents but BukkitIRCD is closer to inspire IRCD.
@WizardCM
This should be all you need: http://www.unrealircd.com/files/docs/technical/serverprotocol.html
@WizardCM
ive tried at best the Server is on one of those Minecraft Host servers, i hvent gotten a reply yet about them Time syncing the server... am waiting to see what happens
@Xeliaa
Sounds like one of the servers' system clocks is inaccurate. See if there's anything you can do about that, otherwise I'll see what I can do to help out.
i would love to use this on our server, but i keep getting Clock Sync Errors when it tries to connect to the main server. This may be due to SpanningTree module in inspircd
@Mu5tank05
well we would use towny for regions, i would mean multiple channels like not only in minecraft, but more in irc so that i coul e.g. have a channel on my IRCd-server called #xchat for worldx, one for worldy called #ychat and one that broadcasts and gets messages of all channels maybe, called #all, and the ability to like password-protect them if necessary or something. also maybe the ability of users to switch channels in minecraft by command without changing the world if that is somehow possible by combining some plugins, let me know and no problem about my comment, this plugin is pretty good since it´s the only so far to provide both a server and a currently split list of players on a server by emulating bots :D
@Jackall4BDN
Thanks for your kind words, are you using a plugin like herochat for Multi channels?
Will there eventually be multi-channel-support or is there allready and i missed it? This is most likely the best plugin for IRC so far, the only problem is that we need multiple channels for our server, and i dont know if it provides that feature.
@FancyNerd
There are a lot of improvements we'd like to make beforehand. Besides, at the current time we have no idea how we'd be able to add such compatibility.
Will support for linking UnrealIRCd ever be made? Great plugin!
I changed it to redundant-modes: true and it worked perfectly, thanks! :D
@bagheadinc
As I suspected, it is caused by redundant modes. I have the same issue on my server. For now, the temporary quick fix is to set redundant-modes: true. Basically what's happening is the plugin is attempting to strip the last character of an empty string, which doesn't work, and so it fails. I hope to fix this in a near future development build.
Actually it looks like I spoke too soon, I'm still getting "Unknown" for the users. It's happening on both the April 24 release (1.1) and the #89 dev build.
It is working fine and properly identifying anyone who is an op, but all other users are being listed as Unknown. Here is the error the console is throwing...
http://pastebin.com/puAhnUg9
@bagheadinc
Out of curiosity, is this with a previous dev build or a release build? Wouldn't want this happening to everyone. :P