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
@ViscousSummer88
If you used the sample bot try: .list
If you want to use ! then change this in your bot and /irc reloadbotconfigs.
Is there a way to run a command in IRC, exmaple !players, which will list the currently online players?
@cnaude
Oh, I see.
@Nickbbeezy
The game-chat colors affect the colors sent to IRC. The screenshot you are showing is in-game.
@Nickbbeezy
Can you pastebin your config.yml?
Using dev build #52, game chat is sending in white only when I have colors defined in the config.
Example of my game chat config string: game-chat: '&b&l[Towny] &e%DISPLAYNAME% &e> &f%MESSAGE%'
Screenshot: http://prntscr.com/32nvgk
@ursak
Remove game-chat from your enabled-messages for that bot. Then only enable hero-CHANNELNAME-chat where CHANNELNAME is the name of the hero channel you want to see messages from.
Uhm... Damn, I'm feeling like the most disturbing user here atm but I have a question again. :P
One of the servers uses Herochat and the other is using Townychat. It all works great exccept some probs with coloring which is fine.
One problem have occured thought. I have the bot set to "relay-private-chat: false" but it still show the private chats on the server with Herochat.
So, uhm. How do I make it not show it?
Lol. Never used a plugin that made me feel this stupid before :P
@cnaude
Oh. Thanks! Oh man. Now everything just became so much much easier! :D
@ursak
Any time you make changes to config.yml use "/irc reloadconfig". If you make changes to the bot use "/irc reloadbotconfigs".
I have one small small thing to "complain" about thought. It's something I can live with so nothing serious, but if I want to change the config I need to restart the server. Reloading the plugin just resets the config back to the same configs it was when the server started.
Since there is people playing on the server I can't really restart the server to many times so when changing som small things in the config I missed I have to wait until the server is empty.
It's not really important, it's just something that stop me from messing around with it to try different settings. Or rather, I can't do it now but later :P
@cnaude Ah! Thanks. It was what to use before the command I was wondering about. Should have noticed it in the config but missed it. Thanks :D
@cnaude Nah. It works with dynmap as a bukkit plugin. It's when I use dynmap as a mod it doesn't. I can live without it since the reason I actually wanted this plugin was to get a better chat than with dynmap (being able to se what someone wrote >5 sec later is golden)
Thank you for this plugin. It work so awesomely good it's like falling in love for the first time :D
@ursak
If the dynmap web chat doesn't appear in the game you will want to work with the dynmap dev to resolve that.
@ursak
If you used the sample bot then try .list in the IRC channel where the bot is.
Uhm... Is there any commands you can run from irc to see who's online on the different servers?
@cnaude
I've managed to make it work with DalNet as well.
However.
Dynmap chat doesn't show ingame since I started using this and it doesn't show in irc either. Is there some special config I've missed?Ok. Connected 2 servers to the same IRC Channel and now we all can speak which each other. Works wonderful.
About Dynmap. Your plugin only supports bukkit version of dynmap. One of the servers is modded and using forge version of dynmap and the chat from that map doesn't show anywhere more than on the actual map. Not ingame and not in the irc channel.
@ursak
Espernet seems to work fairly well.
Ok. Got everything working except getting my hands on a irc server that doesn't ban the bot as soon as it logs in.
So, anyone know the best irc servers to use with this?
Seems to work a lot better. Now all I need to figure out is a good irc server that doesn't ban me as soon as this tries to login. ^^
@cnaude
Oki. Gonna try it. Tried older version for 1.6.4 but it broke my server. Hole server got a "running slow" warning and just froze. Needed to be killed since it didn't even respond to a close command...