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
@cnaude Yes, I can run this from the console.
manpromote 22:20:10 [INFO] [PurpleIRC] [DEBUG] Invalid CE: manpromote 22:20:10 [INFO] Review your arguments count! (/manpromote <player> <group>)
But not from irc.
I am using group manager for permissions.
@spacebuilder2020
According to this log the command was passed to the console. The console responded with the permissions error. Please make sure you are able to run the command from your console.
@cnaude These are the debug logs.
:27 [INFO] [PurpleIRC] [DEBUG] processMessage: .manpromote 21:59:27 [INFO] [PurpleIRC] [DEBUG] IRC command detected: manpromote 21:59:27 [INFO] [PurpleIRC] [DEBUG] .manpromote 21:59:27 [INFO] [PurpleIRC] [DEBUG] privateListen: true 21:59:27 [INFO] [PurpleIRC] [DEBUG] channelListen: true 21:59:27 [INFO] [PurpleIRC] [DEBUG] manpromote %ARGS%:o:false 21:59:27 [INFO] [PurpleIRC] [DEBUG] Target: #voltstech 21:59:27 [INFO] [PurpleIRC] [DEBUG] GM: "manpromote" 21:59:27 [INFO] [PurpleIRC] [DEBUG] Adding command to queue: manpromote 21:59:27 [INFO] [PurpleIRC] [DEBUG] sendMessage[single]: §cYou are not allowed to use that command. 21:59:27 [INFO] [PurpleIRC] [DEBUG] [0]: queueAndSend message detected 21:59:27 [INFO] [PurpleIRC] [DEBUG] [blockingIRCMessage] About to send IRC message to #voltstech 21:59:27 [INFO] [PurpleIRC] [DEBUG] [blockingIRCMessage] Message sent to #voltstech 21:59:40 [INFO] [PurpleIRC] [DEBUG] Checking connection status of IRC bots. 21:59:40 [INFO] [PurpleIRC] [DEBUG] [Voltstech] CONNECTED
@spacebuilder2020
Are you an operator in the IRC channel? Canyou enable debug mode with "/irc debug t" and try again? The logs should print out a few debug lines that will help.
I am now getting an 'You are not allowed to use that command.' error from my bot when trying custom command manpromote: modes: o private: 'false' ctcp: 'false' game_command: manpromote %ARGS% private_listen: 'true' channel_listen: 'true' perm: ''
What am I doing wrong?
@JRPenza620
Unfortunately there is not a way to do that at the moment.
@spacebuilder2020
Use the "/irc addop" command to add ops.
I am unable to figure out how to set up ops so I can issue op commands from my irc account.
@cnaude
Last question:
Is there a way to get everything else that the console shows onto the chat? (For example, when someone creates a shop using the chestshop plugin, it says in the console that they made a show and it gives the info)
@cnaude
Something must be wrong with my config file. Because I still cant manage to get it to work. Can I send you my config file on your IRC Chanel?
@JRPenza620
You have to use the command prefix. You would use .msg instead of /msg.
@cnaude
When I try to use /msg(for example) it thinks Im using it to communicate with someone in the IRC client.
@JRPenza620
You can use game_command like this in a custom command in the commands section. The @ commands are built-in commans for PurpleIRC. If you ommit the @ then it assumes it is a command from the console.
@sparts
A. See the commands section of the sample bot yml file. In the example below a user on IRC can run the gamemode command and pass it parameters. You can add virtually any command that would work from the console.
@sparts
I was wondering the same thing, like to send a player a PM ingame from the client
How do I use in game commands from the IRC client? I see the section that has them listed, but I don't know how to actually use them. For example, I want to be able to use /list in IRC, what do I type in or change to run the command?
@JRPenza620
Yes. Just make sure your nick or channel is listed in the recipients section.
@cnaude
So ctcp would give me every command run by a player?
@JRPenza620
The mode is the method the bot will use to notify you of the command. You can use msg for normal msg command or ctcp for a ctcp notification. It will notify you of every command that players run.
@cnaude
wow I'm stupid, didn't see it.
is the "Mode" the command for the irc to listen to? (like msg, tpa)