PurpleIRC
About PurpleIRC
PurpleIRC is an IRC to Minecraft bridge plugin. This plugin supports running multiple bots on multiple channels. This plugin utilizes the PircBotX Java IRC framework (included in the plugin jar).
Wiki
- For additional information see the PurpleIRC Wiki.
Features
- Relay chat from game to IRC and vice versa.
- Relay game events to IRC.
- Relay IRC events to game.
- Translate colors from game to IRC and vice versa.
- Fully configurable message templates.
- Enable or disable any chat feature to and from the game.
- Most of the configuration options are per bot and per channel.
- Each bot can join multiple channels.
- Automatically op IRC users based on user masks.
- Control and protect the IRC topic.
- Manage IRC channel modes.
- Automatically reconnect to the IRC server on disconnect.
- Respond to commands in IRC chat.
- Send any command to the game via the console.
- Supports prefixes and suffixes. (see sample config for details)
- Displays IRC users in the tab list. (requires ProtocolLib)
- Monitor player command usage.
- Great for cross server chatting.
- Update checker will make external HTTP connections to check for new versions.
- SSL/TLS support.
CraftBukkit Versions
- If you are running CraftBukkit version 1.7.2 or older then stick to PurpleIRC version v2.1.14-174 and older.
- If you need a version that supports Spigot visit the Spigot Resource Page.
How to install
- Drop the PurpleIRC.jar file into your plugins directory.
- Restart the server. (Please don't use /reload)
- Copy plugins/PurpleIRC/sample bot to plugins/PurpleIRC/bots/NewBotName.yml
- Edit the bot yml file as needed. Each option is documented.
- Use /irc load bot.yml command to load and start the new bot.
- Configure permissions.
Configuration
- Configuration - Use /irc reloadconfig to load your changes while the bot is running.
- Sample Bot - Use /irc reloadbotconfigs to load your changes while the bot is running.
Frequently Asked Questions
Links
Chat Hooks
- Supports mcMMO admin and party chats.
- Supports FactionChat chat modes. (public, ally and enemy)
- Supports HeroChat Global, all channels or specific channels.
- Supports TitanChat chat manager.
- Supports TownyChat chat manager. See FAQ.
- Supports Dynmap web chat.
- Supports AdminPrivateChat
Other Hooks
- Supports CleverNotch bot messages.
- Supports ReportRTS ticket notifications.
- Supports VanishNoPacket. Prevents IRC from announcing vanished players.
- Supports Shortify URL shortener. 1.8 and newer only
- Supports RedditStream notifications.
- Supports SuperVanish
Dependencies
- PircBotX: The PircBotX classes are included in the plugin jar file.
- Vault. If you need to use the %GROUP% token then install Vault.
- ProtocolLib. If you need to use the custom tab list then install ProtocolLib.
Permissions (see plugin.yml)
node | default | description |
---|---|---|
irc.<COMMAND> | op | Every command requires a permission node. |
irc.message.chat | true | Receive IRC chat messages |
irc.message.gamechat | true | Send game chat to IRC |
irc.message.action | true | Receive IRC chat actions (/me) |
irc.message.quit | false | Receive IRC quit messages |
irc.message.join | false | Receive IRC join messages |
irc.message.disconnect | op | Receive IRC disconnect messages |
irc.message.connect | op | Receive IRC connect messages |
irc.message.kick | false | Receive IRC kick messages |
irc.message.nickchange | false | Receive IRC nick change messages |
irc.message.topic | false | Receive IRC topic messages |
irc.message.part | false | Receive IRC part messages |
irc.tablist | op | Display IRC users in tab list |
Commands
command | args | description |
---|---|---|
/irc load [bot.yml] | Load bot file | |
/irc unload [bot.yml] (disable) | Unload bot and optionally disable it | |
/irc reload | Reload entire plugin (Don't use this to load changes to your configs and bots. Use reloadconfig and reloadbotconfigs instead) | |
/irc reloadconfig | Reload config.yml | |
/irc save | ([bot]) | Save bot configuration(s) to disk |
/irc reloadbot | [bot] | Reload the bot config and reconnect |
/irc reloadbots | Reload all bot configs and reconnect | |
/irc reloadbotconfig | [bot] | Reload bot config without reconnecting |
/irc reloadbotconfigs | Reload all bot configs without reconnecting | |
/irc connect | ([bot]) | Connect to configured IRC serve |
/irc disconnect | ([bot]) | Disconnect from configured IRC server |
/irc listbots | List loaded bots | |
/irc list | ([bot]) ([channel]) | List users in a channel |
/irc kick | [bot] [channel] [user(s)] | Kick user(s) from a channel |
/irc op | [bot] [channel] [user(s)] | Op user(s) in a channel |
/irc listops | [bot] [channel] | List auto ops for a channel |
/irc motd | [bot] | Display IRC motd. |
/irc deop | [bot] [channel] [user(s)] | DeOp user(s) in a channel |
/irc addop | [bot] [channel] [user mask] | Add user mask to op list |
/irc removeop | [bot] [channel] [user mask] | Remove user mask from op list |
/irc server | [bot] [server] ([true|false]) | Set IRC server for bot. Optionally set autoconnect |
/irc mute | ([bot]) ([channel]) [user(s)] | Mute user(s) in a channel |
/irc unmute | [bot] [channel] [user(s)] | Unmute user(s) in a channel |
/irc nick | [bot] [nick] | Change the bot's IRC nickname |
/irc login | [bot] [login] | Change the bot's IRC login |
/irc join | [bot] [channel] | Join a channel |
/irc leave | [bot] [channel] ([reason)] | Leave a channel |
/irc whois | ([bot]) [nick] | Get IRC user's whois info |
/irc say | [bot] [channel] [message] | Make the bot say something |
/irc send | ([bot]) ([channel]) [message] | Send a message to a channel |
/irc debug | ([t|f]) | Enable debug mode |
/irc messagedelay | [bot] ([milliseconds]) | Get or set IRC message delay. (Default: 1000) |
/irc msg | ([bot]) [user] [message] | Send a private message to IRC user |
/irc ctcp | ([bot]) [user|channel] [message] | Send ctcp command to user or channel. |
/irc notice | ([bot]) [user|channel] [message] | Send notice command to user or channel. |
/irc sendraw | ([bot]) [command] | Send raw command to IRC server. |
/irc updatecheck | ([stable|dev]) | Check for new versions of PurpleIRC. |
IRC User Modes
mode | description |
---|---|
i | IrcOp |
o | Operator |
v | Voice |
h | Half Op |
q | Channel Owner |
s | Super Op |
Change Log
Known Issues
- AuthMe: If you are running the AuthMe plugin you will need to set enableAntiBot to false.
Additional Help
- Tickets: Please reports bugs using the ticket tracker.
- IRC: I'm usually hanging out in #PurpleIRC on irc.esper.net. If I'm awake you can chat with me there.
- PM: Feel free to send me private messages here.
Other
Bitcoin: 1P44sYgXLejo35vANvNfPTY56ANSC5w4dg
@P01s0n1vy1
Change
to this
I tested it with esper and it works. I'm the channel right now.
@cnaude
First of all, thank you for your great and quick support. I really appreciate that :D Anyways, I did what you advised but when my bot turns on it can't log in now. Again, I am using esper.net and i really don't know if I'm doing this correctly So here is what is says:http://pastebin.com/h622bgVN
@P01s0n1vy1 Change the channel section to look like this:
http://pastebin.com/psBZn4u5
Theres my yaml file, somehow my server keeps on giving a severe error: 2013-05-06 22:53:06 [SEVERE] [PurpleIRC] while scanning a simple key in "<string>", line 22, column 1: channels:'turtlecraft' ^ could not found expected ':' in "<string>", line 23, column 3:
@wbreadz
Just as I suspected your terminal is displaying red as more of a pastel color. I think what I'll do is make the color translation table configurable. Then you will have full control of the colors.
Also the %MESSAGE% text is probably overwriting the color tag in front of it. I can probably setup an option to strip colors from the %MESSAGE% so that you can override it. On my server I just do "%NAME% has joined" instead of relying on the %MESSAGE%.
@cnaude
Clipped the 0 by mistake, it comes out as a dark grey.
Weechat, semi-default 'pastel' xfce4 terminal colour profile.
I've tried to change it to red and blue aswell but without success.
Thanks for the response about lagmeter. I'll wait for the update.
@wbreadz
I'm interested how to know how this message translates to your client.
This is how it looks like on mine with irssi.
@wbreadz
The LagMeter plugin is actually broken. I ended up forking it and fixing it for my own server. If you're interested in a copy of the fixed version let me know. Edit: I just had a quick look at the lagmeter page and it looks like the next version should behave properly.
About the colors: I wonder if it's something on your client side. I tried the same values in my config.yml and it shows up as red. What client are you using?
@cnaude
Using 0.11 I have tried:
and
however I'm still getting:
I have also tried setting
but as before, it removes the colour entirely.
Additionally: I've installed the Lagmeter plugin and added the commands below:
They do execute, as they show up in the console, however the output is not sent the the channel.
Both issues are probably oversights on my end so apolgies for that and thanks for the help :)
@P01s0n1vy1
Paste your yml file to pastebin. Also paste it at http://yamllint.com/.
I have a problem with this, I'm pretty sure its my lack of knowledge XD So I installed the PurpleIRC jar into my Plugins folder, I reload my server client and edit the Samplebot file and put it in the bots folder. I reload the server again, but somehow the bot isnt logged in my channel.
Here are some useful info: IRC server: webchat.esper.net (i may be doing this wrong?) My config file: nick: TurtleBot login: (confidential) server: webchat.esper.net port: 5555 autoconnect: 'true' password: '' command-prefix: . quit-message: '&f[&5PurpleIRC&f] Server Restart, Brb!' channels:'turtlecraft' 'turtlecraft':
terminal: 18:15:19 [SEVERE] [PurpleIRC] while scanning a simple key in "<string>", line 22, column 1: channels:'turtlecraft' ^ could not found expected ':' in "<string>", line 23, column 3:
18:15:19 [INFO] [PurpleIRC] Autoconnect is disabled. Not connecting to null as PircBotX
I believe it has something to do with the config? That was all I inserted into the file....
@Benroyjam
In your bot file just add an extra channel like this..
How do I make the bot join multiple channels? I've tried several times
@wbreadz
Please try version 0.0.11 when it's approved and let me know if the colors work any better. I tested the join and quit colors and they seemed to work exactly as intended.
Edit. Use version 0.0.11.
@Icefuzion
I figured out the FactionChat stuff. That will be in version 0.0.9.
@wbreadz
Version 0.0.8 will have the %GROUP% token. If you want to test it let me know.
@cnaude
I don't; When I do it strips all colour from the output in IRC.
And yes, their permission group.
@wbreadz
Do you have "strip-game-colors: false" in the config.yml? When you say group are you referring to player's primary permission group?
Having some issues with this: Firstly, I'm having trouble replacing the quit color in IRC:
That should turn the message grey however it's still appearing as yellow. Am I missing something?
Secondly, not so much a problem as it is a suggestion:
Could you add a way of showing the group name in IRC? %GROUP% or something. Additionally, could you add some way of automatically using the ingame group colouring to make it a more seamless transition between the two.
Apart from that, great plugin - thank you :)
@Icefuzion
I added mcMMO support to 0.0.7. I'm working on figuring out the Factions API.