####################################### #### CraftIRC 3 configuration file #### ####################################### # Welcome, new user! Please read carefully: # CraftIRC is a very powerful and flexible tool for all your communication needs. Being fully customizable, it TAKES SOME TIME TO SET UP. # Please set aside half an hour to READ THIS FILE CAREFULLY and configure everything according to your needs. # If you don't follow these instructions, CraftIRC will NOT WORK PROPERLY! Pay special attention to sections marked as [CHANGES REQUIRED] # The CraftIRC developers can be found on #craftirc in irc.esper.net . Read the topic on arrival. If you have a specific issue you need # help with and we are around, we will help. BUT WE WILL NOT SET UP CRAFTIRC FOR YOU. If you don't want to/can't do this yourself, try # asking a friend or maybe if you're really lucky a user in #craftirc is feeling generous ;) # Recommendations: http://instantyaml.appspot.com/ (the output doesn't matter, just see if there are errors) ; save as UTF-8 ; use a text # editor with YAML syntax highlighting to make the file more readable. # ******************* MISCELLANEOUS SETTINGS ******************* settings: #These tags identify built-in endpoints (for the paths: section). Other endpoints may be provided by plugins. #Tag names must be unique, otherwise the endpoint won't work. An empty tag disables the endpoint, too. minecraft-tag: 'minecraft' #A basic game-side endpoint. You probably don't want to change this. cancelled-tag: '' #Cancelled chat is sent here. Give this tag a name to handle messages cancelled by a chat plugin. console-tag: 'console' #The minecraft server console. Handles /say and .cmd. #Automatically establish paths between unsecured communication endpoints. Turn off if you always want to configure every path manually. auto-paths: true # If set, this character will be inserted after each character ("abc" -> "a_b_c_") to prevent IRC highlights # The default value, "\u200B", is the unicode zero width space. "\x0f" (irc formatting reset code) might work too. # Double quotes are important in yaml when using character escapes like these! # anti-highlight: "\u200B" #Paths between endpoints within the same group are not established. These groups will be created automatically (set to '' to disable): #*For the three endpoints above minecraft-group-name: 'minecraft' #*For all your IRC endpoints irc-group-name: 'irc' #Here you can define custom tag groups. tag-groups: # group-name: # - tagname # - ... #Set this to true to have CraftIRC cancel all minecraft chat if no other plugin is doing it. cancel-chat: false # If true, any messages appearing to anyone in minecraft chat will be logged by the tag of the endpoint they came from log: true #Output a LOT of crap to the console in case you're having problems or are a plugin developer. debug: false #IRC commands start with this, for example '.players' (it's not part of the command name though) command-prefix: '.' #Use different words for IRC commands. This won't add additional irc commands, only aliases for the existing ones. irc-commands: say: ['say','mc'] players: ['players'] cmd: ['cmd','c'] #Set these to true to send the replies of these commands privately private-commands: players: false cmd: false #Console commands that can be called by an admin using .cmd/.c #This is restricted to: # - Any irc channel when admin is enabled in default-attributes # - For manual paths: irc to console paths with admin attribute # - IRC users matching admin-prefixes in the bot section below (usually channel OPs or owners) #Use '*' to enable all commands. Use with care only if you understand the restrictions above. console-commands: ['reload', 'save-all'] #Delay before allowing these event types to be relayed (prevent startup flood) hold-after-enable: {chat: 0, joins: 0, quits: 0, kicks: 0, bans: 0} #How long in seconds before attempting a reconnect/rejoin when a connection/join fails. retry-delay: 10 #Bind to a specific IP address in your server. If you're not sure what this means, don't set it. #bind-address: 127.0.0.1 #Default formatting templates used in all messages. Plugins may require you to add more. formatting: #### VARIABLES AND COLORS (from colormap): %name% (as in %message% or %yellow%). Different events provide different variables. #### IRC FORMATTING: %b% %u% %r% %o% %k% %kNUM% (NUM is 0 to 15); Do the same as CTRL+key in mIRC (%o% uses'foreground') #==========Classic formatting========== from-game: chat: '(%sender%) %message%' private: '(%sender%) %message%' action: '* %sender% %message%' join: '[%sender% connected]' quit: '[%sender% disconnected]' kick: '[%sender% was KICKED (%message%)]' admin: '%sender% to online admins ->- %message%' generic: '%message%' command-reply: '%message%' say: '[Server] %message%' death: '%message%' players-list: 'Online (%playerCount%/%maxPlayers%): %message%' players-nobody: 'Nobody is minecrafting right now.' achievement: '%sender% earned achievement %green%[%message%]' from-irc: chat: '[%srcChannel%] <%sender%> %message%' private: '%sender% whispers> %message%' action: '[%srcChannel%] * %sender% %message%' join: '[%srcChannel%] * Joins: %sender%' part: '[%srcChannel%] * Parts: %sender%' quit: '[%srcChannel%] * Quits: %sender% (%message%)' kick: '[%srcChannel%] * %sender% was kicked by %moderator% (%message%)' nick: '[%srcChannel%] * %sender% is now known as %message%' notice: '[%srcChannel%] [NOTICE %sender%] %message%' generic: '%message%' mode: '[%srcChannel%] * %moderator% sets mode %message%' from-plain: action: '* %sender% %message%' say: '[Server] %message%' generic: '%message%' #====================================== #==========Colorful formatting========= #from-game: # chat: '<%prefix%%sender%%suffix%%o%> %message%' # private: '%prefix%%sender%%suffix%%o% whispers> %message%' # action: '%purple%* %prefix%%sender%%suffix%%purple% %message%' # join: '%darkgrey%[%sender% connected]' # quit: '%darkgrey%[%sender% disconnected]' # kick: '%red%[%sender% was KICKED (%message%)]' # admin: '%prefix%%sender%%suffix% to online admins> %message%' # generic: '%darkgrey%%message%' # say: '%magenta%[Server] %message%' # death: '%red%%message%' # players-list: 'Online (%playerCount%/%maxPlayers%): %message%' # players-nobody: 'Nobody is minecrafting right now.' #from-irc: # chat: '%grey%[%srcChannel%]%foreground% <%ircPrefix%%sender%> %message%' # private: '%grey%[IRC]%foreground% %sender% whispers> %message%' # action: '%grey%[%srcChannel%]%purple% * %ircPrefix%%sender% %message%' # join: '%grey%[%srcChannel%]%darkgreen% * Joins: %sender%' # part: '%grey%[%srcChannel%]%darkgreen% * Parts: %sender%' # quit: '%grey%[%srcChannel%]%blue% * Quits: %sender%' # kick: '%grey%[%srcChannel%]%darkgreen% * %sender% was kicked by %ircModPrefix%%moderator%' # nick: '%grey%[%srcChannel%]%darkgreen% * %sender% is now known as %message%' # notice: '%grey%[%srcChannel%]%foreground% [%purple%NOTICE%foreground% %ircPrefix%%sender%] %message%' # generic: '%grey%%message%' # mode: '%grey%[%srcChannel%]%darkgreen% * %moderator% sets mode %message%' #from-plain: # action: '%purple%* %sender%%purple% %message%' # say: '%magenta%[Server] %message%' # generic: '%darkgrey%%message%' #====================================== # ******************* IRC BOTS/SERVERS AND CHANNELS ******************* [CHANGES REQUIRED] # Every bot connects to one IRC server and can contain any amount of channels. # Every channel is a communication endpoint. bots: - nickname: 'CraftIRCbot' server: 'localhost' # Change this to the IRC server you wish to connect to port: 6667 userident: 'bot' #Username/ident, anything you want serverpass: '' #This isn't the nickserv password ssl: false encoding: 'UTF-8' #Prevent flood by setting a delay (in ms) between messages to IRC and a maximum queue size. message-delay: 1000 queue-size: 5 #Who's considered an admin within a channel? admin-prefixes: ['@', '%'] #Ignore a user by nickname in this server. For greater flexibility use path filters (see further below). ignored-users: [] #If the bot's nickname is registered, put the authentication info here. auth: method: 'nickserv' #Available methods: 'none', 'nickserv', 'gamesurge', 'quakenet' username: '' password: '' delay: 1000 # Milliseconds to wait after authenticating before joining channels. #Send raw IRC commands to the server every time I connect. on-connect: # - 'PRIVMSG MyBoss :I live again!' ## Channels for this bot to join. ## channels: - name: '#changeme' password: '' #Identifies this channel's endpoint (for the paths: section). #If you set this to '' (empty) or an already existing tag, the channel won't work! tag: 'changeme' #Send raw IRC commands to the server every time I join this channel. on-join: # - 'PRIVMSG #changeme :Howdy do!' # Ignore the +c mode and try sending colors anyway if there are colors in a message force-colors: false #- name: '#anotherchannel' # ... #Define here alternative display names for users of your IRC channels (useful if you want anonymous admins). #To override these in a formatting string use %realSender%. irc-nickname-map: # Animosity: Ytisomina #Set this to true if you only want the above nicknames to be able to communicate from IRC. Everyone else will be filtered. use-map-as-whitelist: false #- nickname: 'AnotherBot' # ... # ******************* COMMUNICATION PATHS ******************* # (For most uses, only needed if settings.auto-paths is false. Skip this section otherwise.) # Declare here a path for every pair of endpoints between which you want messages to flow. # For each path you can filter the messages sent by event type or contents. # Paths are one-way, so you must declare A to B and B to A if you want a two-way channel. paths: #- source: 'minecraft' # target: 'changeme' #- source: 'changeme' # These are endpoint tags # target: 'minecraft' # # # #Every path can contain a list of filters that block any matched messages. # #To replace instead of blocking, see the replacement filters section below. # filters: # #Each filter contains regular expressions for formatting variables. This one ignores commands (.TEXT) # - message: '^\.[^ ]+' # #Slightly more advanced example, ignores specific messages from a specific user. # - sender: '^Lain.*$' # message: "\x0312Automsg\x0304" # # #Every path can override the formatting strings defined in settings.formatting . # formatting: # # chat: '[%srcChannel%] <%sender%> %message%' # # join: '[%srcChannel%] * Joins: %sender%' # # #Every path can override the attributes block from default-attributes (see below). # attributes: # # admin: false # # ... # # #A path can inherit missing attributes from another existing path rather than from default-attributes. # #base: {source: 'minecraft', target: 'changeme'} # # #The disable flag allows you to disable a path temporarily without removing it from the configuration file. # disable: false #- source: 'somewhere' # target: 'elsewhere' # ... # ******************* DEFAULT PATH ATTRIBUTES ******************* [CHANGES REQUIRED] # If an attribute isn't defined in a path, these are used. # If an attribute isn't defined here either, it defaults to 'false'. default-attributes: #Disables all communication paths. No message will be sent anywhere. #If you don't set this to false, CraftIRC may not work! disable: true #Every event type (they're the same as the names in settings.formatting) can be enabled or disabled here. #In addition, commands (such as those handled by other plugins) may require you to define extra attributes. attributes: chat: true action: true join: true part: true nick: true quit: true kick: true private: true command: true say: true generic: true death: true achievement: true mode: false notice: false #Admin commands and /admins! can only be sent through a path where admin is set to true admin: false #True: Colors will be converted. False: Colors will be stripped. colors: true # List of event types that should be sent as NOTICE on irc notices: admin: true private: true # ******************* COLOR CONVERSION MAP ******************* # Here you can assign 3-tuples with names, IRC colors and Minecraft colors. # You must never repeat a name, an irc color or a minecraft color in more than one 3-tuple. # Use %colorname% in a formatting string to have the correct color show up in the message. colormap: - {irc: 0, game: "\u00A70", name: 'background'} - {irc: 2, game: "\u00A71", name: 'navy'} - {irc: 3, game: "\u00A72", name: 'darkgreen'} - {irc: 10, game: "\u00A73", name: 'teal'} - {irc: 5, game: "\u00A74", name: 'maroon'} - {irc: 6, game: "\u00A75", name: 'purple'} - {irc: 7, game: "\u00A76", name: 'orange'} - {irc: 15, game: "\u00A77", name: 'grey'} - {irc: 14, game: "\u00A78", name: 'darkgrey'} - {irc: 12, game: "\u00A79", name: 'blue'} - {irc: 9, game: "\u00A7a", name: 'green'} - {irc: 11, game: "\u00A7b", name: 'cyan'} - {irc: 4, game: "\u00A7c", name: 'red'} - {irc: 13, game: "\u00A7d", name: 'magenta'} - {irc: 8, game: "\u00A7e", name: 'yellow'} - {irc: 1, game: "\u00A7f", name: 'foreground'} - {irc: -1, game: "\u00A7r", name: 'reset'} # ******************* REPLACEMENT FILTERS ******************* # This section allows you to set up find and replace rules on # every section of every message sent by CraftIRC. # If you want to delete messages instead you should use the path filters, above. # Each filter contains regular expressions for formatting variables. # For example, you can change the prefix of IRC Channel Operators to something # different by executing a replacement on the %ircPrefix% variable. # filters: # ircPrefix: ['@' : 'Op '] # Or you could censor IP addresses to and from chat. # filters: # message: ['(\d+\.){3}\d+' : '#.#.#.#'] # When writing searches, the following characters have special meanings: # ^ $ . + ? * { } [ ] ( ) # If you want to use these characters normally, escape them with a backslash \. # When writing the replacement, make sure you escape any $ or \ characters # with an additional \ unless you want to use backreferences. # Example: Changing emoticon ^_^ to $_$ # filters: # message: ['\^_\^' : '\$_\$'] # To delete a search, use an empty replacement, or none at all. # This example shows two ways of deleting. The searches are xxx and yyy. # filters: # message: [xxx, yyy : ''] # Remember that any list can be written in two ways. # filters: # prefix: ['mod' : 'Mod', 'adm' : 'Admin'] # is equivalent to # filters: # prefix: # - 'mod' : 'Mod' # - 'adm' : 'Admin' filters: command: [] source: [] target: [] prefix: [] suffix: [] sender: [] realSender: [] message: [] moderator: [] world: [] # IRC only variables: ircPrefix: [] realModerator: [] ircModPrefix: [] modUsername: [] modHostname: [] srcChannel: []