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
Can you allow some commands to go to /dev/null essentially?
I have two bots in the channel, one for survival server and one for creative channel. I am using your newly-added @chat command with like so:
.survival This message goes to survival .creative This message will go to creative
The bots don't recognize each others commands (otherwise we'd have one-way conversations confusing people) so they spit out an error each time. The temporary fix is to actually add the command to other bot and just set the in-game command to ' ' This results in a private message from the console that says No Command Found
It would be nice to have an IgnoreCommands config area in the bot yml, or an option like private: null
Regards, RB
@cnaude
Awesome! thanks!
is it possible to have a error returned when someone "voiced" does not have access to a "op" command?
Is it possible to customize said message as well as the "I'm sorry <user> I can't do that. Type ".help" for a list of commands I might respond to." message?
EDIT: also is it possible to have a %playersuffix% added to the config.yml options?
@austindkelly
Fixed in 1.5.0.
with the current setup it would seem that if you hace a command that has optional arguments you can not use it with out an argument.
ie.
ReportsRTS uses /check to display a list of open tickets, but you can also do /check <ticket#> to get details on a ticket.
If I want to use arguments i have to specific in the bots yml %ARGS% after the game-command "check %ARGS%" so when i do ".check" it returns help and not the list of open tickets.
anyway around that?
@cnaude
this is my current bot yaml.
http://pastebin.com/pX2p5sQm
some of the commands are not all in there but you get the idea.
@austindkelly
What does your bot yml look like?
@mobilephone2003
The custom commands should work. If not let me know which plugin the commands are from and Ill see what;s going on.
currently getting this error. I think because I would like to give permissions for +v users on irc?
http://pastebin.com/DhLWy61S
Thanks for this, works great once set up with all perms.
I also would love to see Essentials Nicks & Prefixes show up in IRC
Custom commands don't seem to respond either (i.e. god, seen), do we have to ask you to add them or can we do it?
Other than that, very nice, thanks!
@austindkelly
There is no official support channel on IRC for this. Feel free to PM on here.
Is it possible to have PurpleIRC use EssentialsChat prefixes and suffixes? Is there support for PREFIX and SUFFIX in the config.yml ?
ANSWERED: I found the answer here -=- https://github.com/cnaude/PurpleIRC/blob/master/src/main/resources/config.yml
Also do you have an IRC channel for support?
@cnaude
Hi cnaude. Here is the pastebin with all the information.
http://pastebin.com/JgU6BAv3
@EchoDeltaBravo
What is your plugin list? What version of CraftBukkit are you running? Please enable debug mode in PurpleIRC/config.yml and send me the logs.
I've followed all the setup instructions, and I cannot get the IRC to Game chat working. Game chat shows up perfectly fine in IRC, but I cannot send commands or send chat to the minecraft server. Any help would be appreciated.
I've used the sample bot, and the only thing I changed was the server address and the password. I have the permissions set up correctly using the required permissions.
How can I add custom commands? Imagine I want to add Broadcast Command from IRC to Game, or kick, ban or restart server is it possible?
@richboos
Indeed, will add and test tomorrow during maintenance schedule. Hope so, would be a great mod to have
@cnaude
That was fast. Will this addition work with Herochat?
@richboos
Added a new @chat command to 1.4.4.
@Psyord
I fixed this in 1.4.4. To use dots in the name use %2E. i.e. '#minecraft%2Etest' == '#minecraft.test'
Can there be a command such as .chat, which is required for IRC -> Game chat?
People are much more chatty in IRC, and chat about things unrelated to Minecraft. It would be handy to allow for IRC -> Game chat, but only when done manually/on purpose.