MinecraftBot
MinecraftBot is 1.5 Compatible
The latest version of MinecraftBot should work with 1.5 with no changes. If however you find a bug, please file a ticket.
MinecraftBot is a plugin that joins an IRC channel as a bot. The bot displays messages coming from Minecraft and sends messages to Minecraft that come from IRC.
The goal of this plugin is to be simple to set up and use. It doesn't have any extra features other than passing messages back and forth. If you are looking for something that does more than just relay messages, you may want to look at MonsterIRC or CraftIRC.
- Bukkit forums: http://forums.bukkit.org/threads/65448/
- Source code: https://github.com/TerrorBite/MinecraftBot
Features
The following events can be relayed by this plugin:
- MC/IRC chat and actions (/me)
- MC/IRC joins and leaves (including IRC part and quit, with quit reasons)
- MC/IRC kick, including kick reasons
- MC deaths
- MC server broadcast messages
- IRC nick changes
- IRC mode changes
- IRC topic changes
Individual events can be disabled in the configuration by simply deleting the appropriate formatting line.
Installation
Simply drop the JAR file into the plugins folder. The plugin will generate a blank configuration file with instructions and then disable itself.
Click here to view the default configuration file.
Permissions
- 'minecraftbot.op' - Equivalent to being a channel op. Allows use of the /irc command.
- 'minecraftbot.manage' - Allows use of the /minecraftbot command to manage the bot. Also allows use of /irc.
- 'minecraftbot.*' - Same as 'minecraftbot.manage'.
Permissions are not required to use this plugin. A Minecraft server op has access to all of these commands.
Metrics
This plugin contains PluginMetrics, which collects and anonymously sends data about how this plugin is being used. It creates a folder named PluginMetrics with a file inside named config.yml. That file gives you the option to opt-out of metrics tracking. This will also opt you out of metrics tracking for other plugins that use PluginMetrics.
More detailed data can be seen at: http://mcstats.org/plugin/MinecraftBot
Commands
In IRC:
- !players - Lists the people connected to the server.
- !time - Shows the time of each regular world (if your server has multiple worlds)
In Minecraft:
- /names and /n - Lists the people that are in the same channel as the bot.
Admin commands:
- /irc - Causes the bot to do something. Some of these commands require the bot to be a channel op.
- /irc say (message) - Causes the bot to say something on IRC
- /irc do (action) - Causes the bot to do something (using /me) on IRC
- /irc op/deop (nick) - Gives or takes the given nick's op status on the channel
- /irc voice/devoice (nick) - Gives or takes the given nick's voice status on the channel
- /irc kick (nick) [reason] - Kicks a nick from IRC. A kick reason may also be entered.
- /irc ban (nick) - Bans a nick on the IRC channel. Does not kick the nick.
- /irc unban (hostmask) - Removes the hostmask from the channel's ban list.
- /irc ignore (nick) - Ignores a nick on IRC
- /irc unignore (nick) - Stops ignoring a nick on IRC
- /minecraftbot - Manages the bot itself
- /minecraftbot connect - Connects to the IRC server
- /minecraftbot disconnect [message] - Disconnects from the IRC server. A quit message may be used.
- /minecraftbot join - Joins the channel defined in the configuration file.
- /minecraftbot part - Parts the channel defined in the configuration file.
- /minecraftbot reload - Reloads all settings except connection settings from the configuration file
Screenshots/Examples
Please send me any screenshots that demonstrate this plugin in a PM.
@KingPin6
That is very strange. It looks like one of multiple things. Either the connection thread is running two times and it's interfering and confusing itself or there's a lot of lag between your server and the IRC server. Either way, I'll look into what could be causing this.
@OMG_Spedwards
One I know of is a Java applet called PJIRC. It's nice and very customizable. The only problem is that if you accidentally click "Yes" on the security warning on Windows, it doesn't seem like you're able to use it again.
I don't know of any other ones.
Do you have a preferred IRC chat that I could upload to my website? Thanks, -Spedwards.
@MightyFlyRudy
Glad to hear that it's working well for you, thanks! As for the error, it looks like there's a problem with the build you're using. It works on build 2109 which is what my server is using at the moment and it seems to work well with 1.2.3-R0.2 as well. Maybe you should just try a different build.
@wallofchaos
Yes, that's right. Joining that IRC channel makes it as if you've joined Minecraft's chat. It goes the other way as well - you can join the Minecraft server instead of having to connect to IRC to be able to talk in that channel.
Probably a really dumb question. but. I want to understand this right.
I own a server. so this would allow me to use IRC. to loginto my servers chat? So i can monitor things when NOT in game?
If so. killer! Ive wanted something like this for a while. I'll have to play with this. im confused as heck right now but i'll get it.
Thanks for this plugin. It works well and I now have my Justin.tv chat linked to my MC chat. However, I've run into a problem. This plugin can't send death messages to IRC because of an error:
2012-03-23 09:17:07 [SEVERE] Could not pass event PlayerDeathEvent to MinecraftBot org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:320) at net.minecraft.server.EntityPlayer.die(EntityPlayer.java:173) at net.minecraft.server.EntityLiving.damageEntity(EntityLiving.java:677) at net.minecraft.server.EntityHuman.damageEntity(EntityHuman.java:595) at net.minecraft.server.EntityPlayer.damageEntity(EntityPlayer.java:215) at net.minecraft.server.EntityMonster.a(EntityMonster.java:80) at net.minecraft.server.EntityMonster.a(EntityMonster.java:86) at net.minecraft.server.EntityCreature.d_(EntityCreature.java:70) at net.minecraft.server.EntityLiving.e(EntityLiving.java:1110) at net.minecraft.server.EntityMonster.e(EntityMonster.java:21) at net.minecraft.server.EntityZombie.e(EntityZombie.java:55) at net.minecraft.server.EntityPigZombie.e(EntityPigZombie.java:58) at net.minecraft.server.EntityLiving.G_(EntityLiving.java:447) at net.minecraft.server.EntityMonster.G_(EntityMonster.java:25) at net.minecraft.server.EntityPigZombie.G_(EntityPigZombie.java:36) at net.minecraft.server.World.entityJoinedWorld(World.java:1265) at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:106) at net.minecraft.server.World.playerJoinedWorld(World.java:1247) at net.minecraft.server.World.tickEntities(World.java:1154) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:545) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at me.rafa652.minecraftbot.MCHandler.onEntityDeath(MCHandler.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ... 24 more
I'm running CB 2098 if that helps at all.
Im Having a Problem Where I Can Server/Console Messages In The IRC But Not Player Chat
Just put up an update today (v1.03) that should solve the issues with CommandBook and other plugins that handle the /me command. Turns out this plugin was the one interfering with them.
Wow, I was last here 8 days ago...
I just put up a new update (0.98) that deals with most of the issues brought up here. I wasn't able to find out what's going on with CommandBook, so I just left it alone for now.
As for formatting the output in Minecraft, I've been thinking about doing that as well, but that may not get done until later.
@Rafa652
Oh thank god, this is the most annoying thing in the world, love the plugin, but having it freeze the server for a few secs on start-up is really annoying.
Can't wait for the update!
Could we get a way to format the output in Minecraft?
Sorry, I've been a bit busy lately.
IRC in its own thread: I'll definitely work on that. I never noticed that myself until a few days ago and it's definitely very annoying.
Permission for /me: I'll check if it's possible for this plugin to check the default permission node that Bukkit uses for /me ('bukkit.command.me') and if that doesn't work, I'll set up a new permission node.
CommandBook: It does look like CommandBook does /me its own way. I'll see if there's a way to make it so that this plugin can see it.
/me doesn't seem to work for us. It works fine from IRC to MC but not the other way around. Using CommandBook, so it might be interfering.
@freaky85
I agree 100%
permission node for /me would be helpful.
It would be nice if the plugin connected to IRC in its own thread because it takes ages for the server to startup otherwise.
@Aretsukusu
I'm not sure what you mean. There isn't a /irc say command.
If you mean the server's own built in /say command, that message is passed to IRC if it's enabled in the config file, which it is by default. If you mean passing chat messages to IRC, it already does that for you unless it's been turned off in the config file.
Be nice to have an option to disable /irc say <message> and just have it send messages without using the command.
@allbad1
It is. I'm using the same build on my own 1.1 server.