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
@ThisUsernameIsMine
Fixed in latest build.
Hello cnaude :-)
I've noticed something awkward when using your plugin (i've narrowed it down to your plugin as the issue only occurs after installing your plugin).
When joining the Mincraft server and trying to send some text messages in Minecraft, they don't come through.
This lasts for ~ 5-ish seconds, after which i can send (and see) my text.
The same counts for commands: no commands are executed within this timespan.
But there's a catch: When joining the server by its LOCAL IP address, there's no such problem!
So this only seems to occur when connecting to the server's external (public) IP address.
I've tested both build #166 and #171 under SpigotMC 1.7.10-R0.1-SNAPSHOT #1649 + patched with Spigot Update 20141001a, running under Windows 7 Ultimate x64 @ Java 8 Update 25 (x64)
@Done84
Did you mean No Cheat Plus? At the moment PurpleIRC has no hooks into NCP. I have to look at the NCP code to see if there are any events I can hook into.
Im looking for an IRC bot that can send all No Chat Plus notifications to an irc channel, so that my staff can check it without being overwhelmed with spam since NCP displays a lot of messages all the time. Is this possible with this plugin?
@mobilephone2003
Please try latest dev build: http://h.cnaude.org:8081/job/PurpleIRC/137/ You can use %POWERLEVEL% in your message templates.
@cnaude
Hey buddy,
Still using PurpleIRC, working great! Is there any chance that we can have mcMMO Power Level of a player included in the chat sent to IRC? We have this in-game now on a player's prefix and it's good to track the progress of players.
@JRPenza620
For each command just set "ctcp: true"
@cnaude
What if I wanted all of them? Like the ctcp for every command someone puts in.
@JRPenza620
You can send the commands to the bot via private message. Example command:
@cnaude
But will everyone be able to see the commands if they are in the room? or only me.
@JRPenza620
You can setup all of the commands to only work when you have ops in the channel.
@cnaude
One more question:
I want to use my IRC publicly, however I still want to display the command stuff to me only. Is there a way to do this?
@JRPenza620
Use %DISPLAYNAME% in your message templates.
How do I show the color of the players name on the chat? It shows up when I do .list
@Hobby_boy
PurpleIRC uses the nickserv methods from the pircbotx API. You're welcome to look at the pircbotx source to see how it's done. https://code.google.com/p/pircbotx/
Alternatively you can use raw commands to authenticate.
Which authentication method does the bot use to authenticate with NickServ?
quick question: when a player toggles mcmmo party chat their chat then shows up as global AND party chat. If they just do /p message here then it only shows up as Party chat (which I have hidden on my irc channel).
My question is, how would I hide the party chat that is showing up as global chat in my irc channel?
On my bot I have only -towny-chat enabled. I am using PermissionsEx, Towny, PurpleIRC and spigot.
@LaserCucumber
It creates a single IRC bot.
So does this plugin create a single bot that relays messages between the IRC server and the Minecraft server, or does it create an individual client for each user connected to the Minecraft server so they can act like normal IRC users?
I'm having a sudden issue with the plugin and not sure what it is. When I used to do .lag it would give me an entire readout of the server ticks and such. But, now it only says Ticks per second and shows it 20.0 [100.0%] and nothing else. Any clue as to why this is? Not sure if it's the plugin or something else. I didn't add anything or change anything so not sure why this suddenly happened...