Configuration

From PurpleIRC
Jump to: navigation, search

Configuration of PurpleIRC is a fairly straightforward process. There is one main configuration file and one or more bot files. All of the configuration files are store in YAML format. Every option is documented in each file.

Main Config (config.yml)

The main configuration file, config.yml, contains the global settings for PurpleIRC.

# Global configuration for PurpleIRC
# NOTE: If you make changes to this file while the server is running use "/irc reloadconfig" to load the changes into memory.
# Automatically save configurations on shutdown or reload
save-on-shutdown: false
# Check for updates
update-checker: true
# Update checker mode: stable or dev
update-checker-mode: stable
# How often we check to see if a bot is connected to the IRC server. This is in server ticks (There 20 ticks in one sec).
conn-check-interval: 1000
# Suppress connection failure messages after this many reconnect attempts
reconnect-fail-message-count: 10
# Startup an ident server
enable-ident-server: false
# How often we check the channel user list
channel-check-interval: 100
# Alias /irc smsg to /msg
override-msg-cmd: false
# Number of ticks after join event fires to process and send to IRC
join-delay: 20
# Number of ticks after quit event fires to process and send to IRC
quit-delay: 20
# Alias for /irc smsg
smsg-alias: '/m'
# Alias for /irc smsg <prev player>
smsg-reply-alias: '/r'
# Insert zero width space into tokenized player names.
chat-ping-fix: false
# Chat messages support standard Bukkit color codes using '&#'. See http://minecraft.gamepedia.com/Formatting_codes
# The following macro tokens are also supported.
#  %WORLD%
#  %NAME%
#  %HOST% - Host of player or IRC user
#  %SERVER% - Server of IRC user
#  %AWAY% - IRC user away message
#  %KICKERHOST% - Host of IRC kicker
#  %KICKERSERVER% - Server of IRC kicker
#  %KICKERAWAY% - IRC kicker away message
#  %NICKPREFIX% - IRC user's status (see nick-prefixes below)
#  %CHANNELPREFIX% - Custom prefix per channel (see prefix option in SampleBot.yml)
#  %DISPLAYNAME% - Player's custom name
#  %PLAYERIP% - IP address of a player
#  %CHANNEL%
#  %MESSAGE% - Message as is (may include colors from other plugins)
#  %RAWMESSAGE% - Raw message with colors stripped out.
#  %KICKER% - IRC kicker name
#  %OLDTOPIC%
#  %TOPIC%
#  %REASON%
#  %GROUP% - Requires Vault if you want to use this.
#  %PLAYERPREFIX% - Requires Vault if you want to use this.
#  %PLAYERSUFFIX% - Requires Vault if you want to use this.
#  %GROUPSUFFIX% - Requires Vault if you want to use this.
#  %GROUPPREFIX% - Requires Vault if you want to use this.
#  %WORLDCOLOR% - Requires Multiverse.
#  %PARTY% - mcMMO party channel name
#  %FACTIONMODE% - Faction chat mode (all, ally, enemy)
#  %FACTIONTAG%  - Faction tag name
#  %HEROCHANNEL% - HeroChat channel name
#  %HERONICK% - HeroChat channel nick
#  %HEROCOLOR% - HeroChat channel color
#  %TITANCHANNEL% - TitanChat channel name
#  %TITANCOLOR% - TitanChat channel color
#  %UCHATCHANNEL% - UltimateChat channel name
#  %UCHATCOLOR% - UltimateChat channel color
#  %WORLDALIAS% - World alias name
#  ReportRTS ticket: %MESSAGE%, %MODNAME% %DISPLAYMODNAME% %RTSNAME% %RTSWORLD% %TICKETNUMBER% %MODCOMMENT%
#  %TOWNYCHANNEL% - Towny channel name
#  %TOWNYCHANNELTAG% - Towny channel tag name
#  %TOWNYMSGCOLOR% - Towny message color
#  %JOBS% - Player jobs
#  %JOBSSHORT% - Player jobs shortened
# Prism custom tokens:
#   prism-rollback:
#    %COMMAND%
#    %KEYWORD%
#    %SORTDIRECTION%
#    %PARAMWORLD%
#    %ID%
#    %ORIGINALBLOCK%
#    %NEWBLOCK%
#    %X%
#    %Y%
#    %Z%
#    %BLOCKWORLD%
#   prism-drain and prism-extinguish:
#    %RADIUS%
#    %ORIGINALBLOCK%
#    %NEWBLOCK%
#    %X%
#    %Y%
#    %Z%
#    %BLOCKWORLD%
#   prism-custom:
#    %ACTION%
#    %MESSAGE%
#    %PLUGIN%
message-format:    
  # Message templates for game to IRC messages
  console-chat: '[&dServer&r] %MESSAGE%'
  # Cross server chatting via linked bots
  cross-chat: '[&4%SERVER%&r] %MESSAGE%'
  # Command sent notification. Blank this to disable this message.
  command-sent: 'Command sent: %COMMAND%'
  game-achievement: '[&2%WORLD%&r] %NAME% has just earned the achievement [%MESSAGE%]'
  game-advancement: '[&2%WORLD%&r] %NAME% has just earned the advancement [%MESSAGE%]'
  game-mode: '[&2%WORLD%&r] %NAME% has changed game mode: [%MESSAGE%]'
  game-action: '[&2%WORLD%&r]***%NAME% %MESSAGE%'
  game-pchat: '[&2%WORLD%] <%NAME%> %MESSAGE%'
  # death-messages - http://dev.bukkit.org/bukkit-plugins/death-messages
  death-messages: '[&2%WORLD%&r]%MESSAGE%'
  # Notification to player when sending a private message to an IRC user
  game-pchat-response: ' &6-> &7%TARGET%: %MESSAGE%'
  game-chat: '[&2%WORLD%&r] <%NAME%> %MESSAGE%'
  game-death: '[&2%WORLD%&r] %MESSAGE%'
  game-kick: '[&2%WORLD%&r] %MESSAGE%: %REASON%'
  game-join: '[&2%WORLD%&r] %NAME% joined the game.'
  game-first-join: '[&2%WORLD%&r] %NAME% joined the game for the very first time.'
  game-quit: '[&2%WORLD%&r] %NAME% left the game.'
  fake-join: '[&2%WORLD%&r] %NAME% joined the game.'
  fake-quit: '[&2%WORLD%&r] %NAME% left the game.'
  game-command: '[&2%WORLD%&r] Command detected by %NAME%: %COMMAND% %PARAMS%'
  # Message template for "/irc send" to IRC message
  game-send: '[&2%WORLD%&r]<%NAME%> %MESSAGE%'
  # Essentials messages
  ess-player-afk: '[&2%WORLD%&r] %NAME% is now AFK'
  ess-player-not-afk: '[&2%WORLD%&r] %NAME% is no longer AFK'
  ess-helpop: '&4[HelpOp] %DISPLAYNAME%&r: %MESSAGE%'
  irc-ess-helpop: '&4[HelpOp] %DISPLAYNAME%&r: %MESSAGE%'
  # Message templates for IRC to game messages
  irc-action: '[&4IRC&r] ***%NAME% %MESSAGE%'
  irc-chat: '[&4IRC&r]<%NAME%> %MESSAGE%'
  # Response message when using @chat or @ochat
  irc-chat-response: ' &6-> &7Minecraft: %MESSAGE%'
  irc-pchat: '&dPrivate message: [&4IRC&r]<%NAME%> %MESSAGE%'
  # Notification to user when sending a private message to a player
  irc-pchat-response: ' &6-> &7%TARGET%: %MESSAGE%'
  # Notification to user when sending a message to a specific hero channel
  irc-hchat-response: ' &6-> &7%TARGET%: %MESSAGE%'
  irc-join: '[&4IRC&r] %NAME% has joined %CHANNEL%.'
  irc-kick: '[&4IRC&r] %NAME% was kicked from %CHANNEL% by %KICKER%. (Reason- %REASON%)'
  irc-part: '[&4IRC&r] %NAME% has left %CHANNEL%.'
  irc-quit: '[&4IRC&r] %NAME% has left %CHANNEL%. (Reason: %REASON%)'
  irc-topic: '[&4IRC&r] Topic changed by %NAME%: %TOPIC%.'
  irc-nickchange: '[&4IRC&r] %OLDNICK% is now known as %NEWNICK%.'
  irc-mode: '[&4IRC&r] %NAME% %MODE% on %CHANNEL%'
  irc-console-chat: '&f[&5IRC&f]&r<%NAME%> %MESSAGE%'
  irc-notice: '[&4IRC&r] [notice(%CHANNEL%)] %NOTICE% '
  # AdminPrivateChat response message in IRC. Set to '' to disable.
  irc-a-response: ' &6-> &7[AdminChat]: %MESSAGE%'
  # AdminPrivateChat message from game to IRC
  game-a-chat: '[%WORLD%] <%NAME%> -> [AdminChat]: %MESSAGE%'
  # AdminPrivateChat message from IRC to game
  irc-a-chat: '[AdminChat] [&4IRC&r] %MESSAGE%'
  # Messages from Discord
  discord-chat: '[Discord]<%NAME%> %MESSAGE%'
  # Messages from IRC to Discord
  irc-discord-chat: '[IRC]<%NAME%> %MESSAGE%'
  # Actions from IRC to Discord
  irc-discord-action: '[IRC] ***%NAME% %MESSAGE%'
  # Message template for Clevernotch bot to IRC messages
  clever-send: '[&4BOT]<%NAME%> %MESSAGE%'
  # Message templates for mcMMO to IRC messages
  mcmmo-admin-chat: '[admin:%WORLD%]<%NAME%> %MESSAGE%'
  mcmmo-party-chat: '[party:%PARTY%]<%NAME%> %MESSAGE%'
  mcmmo-chat: '[mcMMO]<%NAME%> %MESSAGE%'
  # Message templates for IRC to mcMMO
  irc-mcmmo-admin-chat: '[&4IRC&r]<%NAME%> %MESSAGE%'
  irc-mcmmo-party-chat: '[&4IRC&r]<%NAME%> %MESSAGE%'
  # Message templates for FactionChat to IRC messages
  faction-public-chat: '[%FACTIONMODE%&r][%FACTIONTAG%]<%NAME%> %MESSAGE%'
  faction-ally-chat: '[%FACTIONMODE%&r][%FACTIONTAG%]<%NAME%> %MESSAGE%'
  faction-enemy-chat: '[%FACTIONMODE%&r][%FACTIONTAG%]<%NAME%> %MESSAGE%'
  # Message template for Herochat to IRC messages
  hero-chat: '[%CHANNEL%]<%NAME%> %MESSAGE%'
  hero-action: '[&2%CHANNEL%&r]***%NAME% %MESSAGE%'
  # Message templates for IRC to Herochat messages
  irc-hero-action: '[&3IRC&r] ***%NAME% %MESSAGE%'
  irc-hero-chat: '[&3IRC&r]<%NAME%> %MESSAGE%'
  irc-hero-join: '[&3IRC&r] %NAME% has joined %CHANNEL%.'
  irc-hero-kick: '[&3IRC&r] %NAME% was kicked from %CHANNEL% by %KICKER%. (Reason- %REASON%)'
  irc-hero-part: '[&3IRC&r] %NAME% has left %CHANNEL%.'
  irc-hero-quit: '[&3IRC&r] %NAME% has left %CHANNEL%.'
  irc-hero-topic: '[&3IRC&r] Topic changed by %NAME%: %TOPIC%.'
  # Message templates for IRC to VentureChat messages
  irc-venture-action: '[&3IRC&r] ***%NAME% %MESSAGE%'
  irc-venture-chat: '[&3IRC&r]<%NAME%> %MESSAGE%'
  irc-venture-join: '[&3IRC&r] %NAME% has joined %CHANNEL%.'
  irc-venture-kick: '[&3IRC&r] %NAME% was kicked from %CHANNEL% by %KICKER%. (Reason- %REASON%)'
  irc-venture-part: '[&3IRC&r] %NAME% has left %CHANNEL%.'
  irc-venture-quit: '[&3IRC&r] %NAME% has left %CHANNEL%.'
  irc-venture-topic: '[&3IRC&r] Topic changed by %NAME%: %TOPIC%.'
  # Message template for TitanChat to IRC messages
  titan-chat: '[%CHANNEL%]<%NAME%> %MESSAGE%'
  # Message templates for IRC to TitanChat messages
  irc-titan-chat: '[&3IRC&r]<%NAME%> %MESSAGE%'
  # Message template for TitanChat to IRC messages
  ultimatechat-chat: '[%CHANNEL%]<%NAME%> %MESSAGE%'
  # Message templates for IRC to TitanChat messages
  irc-ultimatechat-chat: '[&3IRC&r]<%NAME%> %MESSAGE%'  
  # Help reply message
  valid-irc-commands: 'Valid commands: %COMMANDS%'
  # Invalid IRC command message
  invalid-irc-command: "I'm sorry '%NICK%' I can't do that. Type '%CMDPREFIX%help' for a list of commands I might respond to."
  no-perm-for-irc-command: "I'm sorry '%NICK%' you are not authorized to do that. Type '%CMDPREFIX%help' for a list of commands I might respond to."
  # ReportRTS tempates
  rts-notify: '[RTS:New] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-complete: '[RTS:Complete] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-claim: '[RTS:Claim] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-unclaim: '[RTS:Unclaim] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-held: '[RTS:Held] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-assign: '[RTS:Assign] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  rts-reopen: '[RTS:Reopen] #%TICKETNUMBER% <%NAME%> %MESSAGE%'
  # SimpleTicketManager
  stm-create: '[STM] Ticket #%TICKETNUMBER% created by %NAME%: %REASON% %MESSAGE%'
  stm-claim: '[STM] Ticket #%TICKETNUMBER% claim by %MODNAME%: %REASON% %MESSAGE%'
  stm-close: '[STM] Ticket #%TICKETNUMBER% closed by %MODNAME%: %REASON% %MESSAGE%'
  stm-comment: '[STM] Ticket #%TICKETNUMBER% new comment by %MODNAME%: %REASON% %MESSAGE%'
  # Dynmap Web Chat to IRC
  dynmap-web-chat: '[Dynmap] <%NAME%> %MESSAGE%'
  # IRC to Dynmap Chat
  irc-dynmap-web-chat: '[IRC] %MESSAGE%'
  # IRC acion to Dynmap Chat (/me)
  irc-action-dynmap-web-chat: '[IRC] ***%NAME% %MESSAGE%'
  # IRC to dynmap nick template
  irc-dynmap-nick: '[IRC] %NICK%'
  # IRC to dynmap action nick template
  irc-dynmap-action-nick: '[IRC] ***%NICK%'
  # OreBroadcast message
  ore-broadcast: '[OreBroadcast] &l%NAME%&c has found &6&l%COUNT%&c block%PLURAL% of [&l&k%ORECOLOR%%ORE%&c]'
  # Jobs seperator
  jobs-separator: ', '
  # Message format per hero channel. From IRC to game.
  irc-hero-channels:
      Global: '[G][IRC]%PLAYERPREFIX%%NAME% %MESSAGE%'
  # Message format per hero channel. From IRC actions to game.
  irc-hero-action-channels:
      Global: '[G][IRC]***%PLAYERPREFIX%%NAME% %MESSAGE%'
  # Message format per hero channel. From game to IRC. Overrides hero-chat template.
  hero-channels:
      Global: '[%CHANNEL%]<%NAME%> %MESSAGE%'
  # Emote message format per HeroChat channel. From game to IRC. Overrides hero-action template.
  hero-action-channels:
      Global: '[&2%CHANNEL%&r]***%NAME% %MESSAGE%'
  # Message format per VentureChat channel. From IRC to game. Overrides venture-chat template.
  irc-venture-channels:
      Global: '&f[&2Global&f] [&4IRC&f] <%NAME%>&2: %MESSAGE%'
      Staff: '&f[&aStaff&f] [&4IRC&f] <%NAME%>&a: %MESSAGE%'
      Admin: '&f[&cAdmin&f] [&4IRC&f] <%NAME%>&c: %MESSAGE%'
      Donator: '&f[&dDonator&f] [&4IRC&f] <%NAME%>&d: %MESSAGE%'
      Help: '&f[&bHelp&f] [&4IRC&f] <%NAME%>&b: %MESSAGE%'
      Trade: '&f[&3Trade&f] [&4IRC&f] <%NAME%>&3: %MESSAGE%'
      Local: '&f[&eLocal&f] [&4IRC&f] <%NAME%>&e: %MESSAGE%'
      Network: '&f[&6Network&f] [&4IRC&f] <%NAME%>&6: %MESSAGE%'
  # Emote message format per VentureChat channel. From IRC to game. Overrides venture-action template.
  irc-venture-action-channels:
      Global: '&f[&2Global&f] [&4IRC&f]***%NAME%&2: %MESSAGE%'
      Staff: '&f[&aStaff&f] [&4IRC&f]***%NAME%&a: %MESSAGE%'
      Admin: '&f[&cAdmin&f] [&4IRC&f]***%NAME%&c: %MESSAGE%'
      Donator: '&f[&dDonator&f] [&4IRC&f]***%NAME%&d: %MESSAGE%'
      Help: '&f[&bHelp&f] [&4IRC&f]***%NAME%&b: %MESSAGE%'
      Trade: '&f[&3Trade&f] [&4IRC&f]***%NAME%&3: %MESSAGE%'
      Local: '&f[&eLocal&f] [&4IRC&f]***%NAME%&e: %MESSAGE%'
      Network: '&f[&6Network&f] [&4IRC&f]***%NAME%&6: %MESSAGE%'      
  # Message format per VentureChat channel. From game to IRC. Overrides venture-chat template.
  venture-channels:
      Global: '&f[&2Global&f] <%NAME%>&2: %MESSAGE%'
      Staff: '&f[&aStaff&f] <%NAME%>&a: %MESSAGE%'
      Admin: '&f[&cAdmin&f] <%NAME%>&c: %MESSAGE%'
      Donator: '&f[&dDonator&f] <%NAME%>&d: %MESSAGE%'
      Help: '&f[&bHelp&f] <%NAME%>&b: %MESSAGE%'
      Trade: '&f[&3Trade&f] <%NAME%>&3: %MESSAGE%'
      Local: '&f[&eLocal&f] <%NAME%>&e: %MESSAGE%'
      Network: '&f[&6Network&f] <%NAME%>&6: %MESSAGE%'
  # Emote message format per VentureChat channel. From game to IRC. Overrides venture-action template.
  venture-action-channels:
      Global: '&f[&2Global&f]***%NAME%&2: %MESSAGE%'
      Staff: '&f[&aStaff&f]***%NAME%&a: %MESSAGE%'
      Admin: '&f[&cAdmin&f]***%NAME%&c: %MESSAGE%'
      Donator: '&f[&dDonator&f]***%NAME%&d: %MESSAGE%'
      Help: '&f[&bHelp&f]***%NAME%&b: %MESSAGE%'
      Trade: '&f[&3Trade&f]***%NAME%&3: %MESSAGE%'
      Local: '&f[&eLocal&f]***%NAME%&e: %MESSAGE%'
      Network: '&f[&6Network&f]***%NAME%&6: %MESSAGE%'
  # Message templates for Towny to IRC messages
  towny-channel-chat: '%TOWNYCHANNELTAG%[%TOWNYCHANNEL%]<%NAME%> %MESSAGE%'
  # Message templates for IRC to Towny messages
  irc-towny-chat: '[&3IRC&r]<%NAME%> %MESSAGE%'
  # Message format per towny channel. From IRC to game.
  irc-towny-channels:
      irc: '[IRC]%PLAYERPREFIX%%NAME% %MESSAGE%'
  broadcast-message: '[Broadcast] <%NAME%> %MESSAGE%'
  broadcast-console-message: '[Broadcast] <Console> %MESSAGE%'
  # Prism templates. See above for token names.
  prism-rollback: '[PrismRollback] [Player: %NAME%] [Radius: %RADIUS%] [Command: %COMMAND%] [Keyword: %KEYWORD%] [X,Y,Z: %X%,%Y%,%Z%] [World: %PARAMWORLD%]'
  prism-drain: '[PrismDrain] [Player: %NAME%] [Radius: %RADIUS%] [OrigBlock: %ORIGINALBLOCK%] [NewBlock: %NEWBLOCK%] [X,Y,Z: %X%,%Y%,%Z%] [World: %BLOCKWORLD%]'
  prism-extinguish: '[PrismExtinguish] [Player: %NAME%] [Radius%: %RADIUS] [OrigBlock: %ORIGINALBLOCK%] [NewBlock: %NEWBLOCK%] [X,Y,Z: %X%,%Y%,%Z%] [World: %BLOCKWORLD%]'
  prism-custom: '[PrismCustom] [Player: %NAME%] [Action: %ACTION%] [Message: %MESSAGE%] [Plugin: %PLUGIN%]'
  # RedditStream
  reddit-messages: '[R] %MESSAGE%'
  # NTheEndAgain
  ntheendagain-hard: '[NTheEndAgain] %MESSAGE%'
  ntheendagain-soft: '[NTheEndAgain]  %MESSAGE%'
  ntheendagain-crystal: '[NTheEndAgain] %MESSAGE%'
  # Defaults below take effect when user joins IRC and matching player is offline
  default-player-suffix: ''
  default-player-prefix: ''
  default-group-suffix: ''
  default-group-prefix: ''
  default-player-world: 'world'
  default-player-group: ''
  # Flood control
  game-flood-warning: '&3Message not sent to IRC due to spamming. &rCooldown: %COOLDOWN%s'
  irc-flood-warning: '&3Message not sent to game due to spamming. &rCooldown: %COOLDOWN%s'
  # Log tailer format
  log-tailer: '[LOG: %FILE%] %LINE%'
# Format for the @list command in IRC
list-format: '[&9Minecraft&r] &2Online &r(%COUNT%/%MAX%): %PLAYERS%'
list-separator: ', '
list-player: '%GROUPPREFIX%%NAME%'
# Sort playerlist by %NAME% and not by list-player format
list-sort-by-name: true
# Prevent game colors from appearing in IRC
strip-game-colors: false
# Prevent IRC colors from appearing in game
strip-irc-colors: false
# Strip IRC background colors (recommend leaving this as true)
strip-irc-bg-colors: true
# Strip game color codes from IRC to game chat. (Removes §)
strip-game-colors-from-irc: true
# Add IRC names to in-game tab list
custom-tab-list: false
# Nothing to see here
custom-tab-prefix: '[I] '
# IRC user gamemode in the tab list: ADVENTURE, CREATIVE, NOT_SET, SPECTATOR, SURVIVAL
custom-tab-gamemode: SPECTATOR
# IRC nick must be an exact match to a player name for token expanding
nick-exact-match: true
# IRC nick prefixes (can include & color codes)
nick-prefixes:
    ircop: '&4~'
    owner: '&5@'
    ircsuperop: '&6&&'
    op: '&c@'
    halfop: '&3%'
    voice: '&2+'
# See http://thelq.github.io/pircbotx/latest/apidocs/org/pircbotx/Colors.html#field.summary for IRC color names
# See https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ChatColor.html#enum_constant_summary for game color names
# Game to IRC color map: Game Color Code => IRC Color Code
irc-color-map:
    AQUA: CYAN
    BLACK: BLACK
    BLUE: BLUE
    BOLD: BOLD
    DARK_AQUA: TEAL
    DARK_BLUE: DARK_BLUE
    DARK_GRAY: DARK_GRAY
    DARK_GREEN: DARK_GREEN
    DARK_PURPLE: PURPLE
    DARK_RED: RED
    GOLD: OLIVE
    GRAY: LIGHT_GRAY
    GREEN: GREEN
    LIGHT_PURPLE: MAGENTA
    RED: RED
    UNDERLINE: UNDERLINE
    YELLOW: YELLOW
    WHITE: WHITE
    RESET: NORMAL
    ITALIC: ITALIC
# IRC to game color map: IRC Color Code => Game Color Code
game-color-map:
    BLACK: BLACK
    BLUE: BLUE
    BOLD: BOLD
    BROWN: GRAY
    CYAN: AQUA
    DARK_BLUE: DARK_BLUE
    DARK_GRAY: DARK_GRAY
    DARK_GREEN: DARK_GREEN
    GREEN: GREEN
    LIGHT_GRAY: GRAY
    MAGENTA: LIGHT_PURPLE
    NORMAL: RESET
    OLIVE: GOLD
    PURPLE: DARK_PURPLE
    RED: RED
    TEAL: DARK_AQUA
    UNDERLINE: UNDERLINE
    WHITE: WHITE
    YELLOW: YELLOW
    ITALIC: ITALIC
Debug: false
# Ignore chat cancellation.
ignore-chat-cancel: false
# Broadcast IRC chat to console
broadcast-chat-to-console: true

Bot Config (botname.yml)

This is a sample bot file. Read each option and change as needed.

# Sample PurpleIRC bot configuration.
# Most of these options should be self explanatory.
# Place your bot file in the PurpleIRC/bots/ folder.
# NOTE: If you make changes to this file while the server is running use "/irc reloadbotconfigs" to load the changes into memory.
#
# nick - Your bot's unique nickname
nick: AwesomeBot
# If your bot's nick is in use try these alternates. Leave blank for none.
alt-nicks:
  - '%NICK%_'
  - '%NICK%__'
# login - Your bot's login name
login: AwesomeName
# realname
realname: ''
# server - IRC server to join
server: irc.example.com
# port - IRC server port
port: 6667
# Enable TLS support via STARTTLS. Must connect to non-SSL port to use this.
tls: false
# Attempt ssl connection to IRC server
ssl: false
# Disable DHE. See: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7044060
disable-diffie-hellman: false
# Trust all SSL certs
trust-all-certs: false
# Enabled ciphers - To get a list of available ciphers run "/irc test sslcpihers"
ciphers: []
# Bind address
bind: ''
# Auto split length for long messages
max-line-length: 440
# Character encoding. Leave blank for Java default.
charset: ''
# show irc server motd on connect
show-motd: false
# autoconnect - Connect automatically on startup
autoconnect: 'false'
# password - Server password if needed
password: ''
# identify password (sent to NickServ)
ident-password: ''
# Attempt sasl connection
sasl: false
# SASL password
sasl-password: ''
# SASL username
sasl-username: ''
# command-prefix - The bot will listen for commands that start with this.
command-prefix: '.'
# quit-message - Message the bot will send when it quits the server
quit-message: '&r[&5PurpleIRC&r] &rGood bye!'
# Message delay in milliseconds (be careful when changing this)
message-delay: 1000
# CTCP finger reply
finger-reply: ''
# send a raw message on connect
raw-message-on-connect: false
# the raw message
raw-message: auth name pass
# Additional raw messages to send
raw-message-list: []
# relay-private-chat - Allow private chat to the bot to relay to the game
relay-private-chat: false
# Log private chat messages
log-private-chat: true
# notify channels or users when a player uses commands
command-notify:
  enabled: false
  # valid modes: msg, ctcp
  mode: msg
  # recipients can be channels or users
  recipients:
    - '#minecraft-test'
    - example
  ignore:
    - /login
    - /register
    - /auth
# File tailer
file-tailer:
    enabled: false
    file: 'server.log'
    extra_files: []
    recipient: '#minecraft-test'
    ctcp: false
    # If a line matches then it is excluded from being sent to IRC.
    # Place slashes around a pattern to use regular expressions. 
    excludes:
        - '/\s+\[PurpleIRC\]\s+/'
# Messaging flood control (game and IRC)
flood-control:
    # Enable or disable flood control
    enabled: false
    # The maximum number of messages per interval
    max-messages: 2
    # Time interval in milliseconds
    time-interval: 1000
    # Cooldown in milliseconds. If user is spamming then this cooldown takes effect.
    cooldown: 60000
# Automatically part invalid channels
part-invalid-channels: false
# Message when leaving invalid channel
part-invalid-channels-message: 'I should not be here! Bye!'
# Insert zero width space into nicks of IRC output to prevent client pings
zero-width-space: false
# Channel auto join delay in server ticks (20 ticks = 1 second)
channel-auto-join-delay: 20
# If your irc-chat message has a %CUSTOMPREFIX% then these custom prefixes can replace them.
# Can match either nick or hostmask
custom-prefixes:
    - 'AwesomeNick [AwesomePrefix]'
    - '*!*sarah@example.com [Owner]'
# Default if no match is found
custom-prefix-default: '[IRC]'
# Similar to custom-prefixe above. Search and replace first occurrence of : and replace with &r:
replace-first-occurrences:
    - 'AwesomeNick : &r:'
    - '*!*sarah@example.com : &r:'
# Action commands
action-commands:
    - /me
    - /eme
# Bot linking
bot-linking-enabled: false
# Map of remote linked bots and codes. Use /irc link and /irc linkaccept
bot-links:
#    - remotebot: 249505593790847552435733176657146971496
# rejoin if kicked from a channel
join-on-kick: true
# channels - List the channels your bot will join here
channels:
  # Channel name must be surrounded by sing quotes to be YAML compliant.
  # Use %2E instead of dots in the channel names.
  # Example: minecraft%2Etest == minecraft.test
  '#minecraft-test':
    permissions: 
      chat: 'irc.message.chat'
      kick: 'irc.message.kick'
      action: 'irc.message.action'
      mode: 'irc.message.mode'
      notice: 'irc.message.notice'
      join: 'irc.message.join'
      part: 'irc.message.part'
      quit: 'irc.message.quit'
      topic: 'irc.message.topic'
    # message prefix (replaces %CHANNELPREFIX%
    prefix: ''
    # worlds we listen to for this channel
    worlds:
    - '*'
    # autojoin - Join the channel automatically on connect
    autojoin: true
    # modes - Channel modes to set
    modes: ''
    # password - Channel password
    password: ''
    # topic - Channel topic
    topic: New topic
    # topic-protect - Prevent others from changing the topic
    topic-protect: false
    # Enable chanserve mode for topic set command (/msg chanserv topic #channel <topic>
    topic-chanserv: false
    # If the Shortify plugin is installed then shoten URLs sent from IRC
    shortify: true
    # Enable or disable message filtering
    enable-filtering: false
    # Filters. These wll be removed from IRC to game messages.
    filter-list:
       - AwesomeBot
    # List of Factions tags to filter out of chat
    faction-tag-filters:
       - FactionNameToFilter
    # enabled-messages - These are the message types that are either sent to the game or IRC
    # config.yml. Remove or comment the messages you don't want.
    enabled-messages:
    # These messages are sent from game to IRC (see permissions)
    - console-chat
    - game-action
    - game-chat
    - game-death
    - game-kick
    - game-first-join
    - game-join
    - game-quit
    - game-achievement
    - game-mode
    - fake-join
    - fake-quit    
    # Essentials helpop messages (/helpop /amsg /ac)
    - ess-helpop
    # Prism
    #- prism-rollback
    #- prism-drain
    #- prism-extinguish
    #- prism-custom
    # The game-afk message type is not functional yet.
    #- game-afk
    # These messages are sent from IRC to game (see permissions)
    - irc-action
    - irc-chat
    - irc-pchat
    - irc-join
    - irc-kick
    - irc-part
    - irc-topic
    - irc-quit
    - irc-nickchange
    - irc-mode
    - irc-notice
    #- invalid-irc-commmand
    #- irc-console-chat
    # Dynmap Web Chat to IRC
    - dynmap-web-chat
    # IRC to Dynmap Web Chat
    - irc-dynmap-web-chat
    # IRC acion to Dynmap Chat (/me)
    - irc-action-dynmap-web-chat
    # mcMMO messages sent to IRC
    - mcmmo-admin-chat
    - mcmmo-party-chat
    - mcmmo-chat
    # mcMMO messages sent from IRC. Replace [PARTY] with destination mcMMO party
    - irc-mcmmo-admin-chat
    - irc-mcmmo-party-[PARTY]-chat
    # FactionChat messages sent to IRC
    - faction-public-chat
    - faction-ally-chat
    - faction-enemy-chat
    # Hero chat message types that are sent from game to IRC
    # Game messages from Global HC channel
    - hero-Global-chat
    - hero-Global-action
    # Game messages from any HC channel
    - hero-chat
    - hero-action
    # Specific HC channel
    #- hero-[CHANNEL]-chat
    #- hero-[CHANNEL]-action
    # Various IRC messages that are sent to Herochat channel. Receiving HC
    # channel name is configured per hero-channel: 'CHANNEL NAME'
    #- irc-hero-action
    #- irc-hero-chat
    #- irc-hero-kick
    #- irc-hero-join
    #- irc-hero-part
    #- irc-hero-topic
    # Venture chat. Uncomment these to enable venture chat 
    # Replace [CHANNEL] with the channel name from Venture Chat
    #venture-[CHANNEL]-chat
    #venture-[CHANNEL]-action
    # All vc channels
    #venture-chat
    #venture-action
    #irc-venture-action
    #irc-venture-chat
    #irc-venture-kick
    #irc-venture-join
    #irc-venture-part
    #irc-venture-quit
    #irc-venture-topic
    # CleverNotch bot messages will be sent to the IRC channel
    - clever-chat
    # OreBroadcast messages
    #- ore-broadcast
    - titan-chat
    - ultimatechat-chat
    - towny-chat
    # Specific TownyChat channel or tag
    #- towny-[CHANNEL]-chat
    #- towny-[CHANNELTAG]-chat
    # Specific TitanChat channel
    #- titan-[CHANNEL]-chat
    # Specific UltimateChat channel
    #- ultimatechat-[CHANNEL]-chat
    # ReportRTS ticket notifications to irc
    - rts-notify
    # SimpleTicketManager notifications to irc
    - stm-create
    - stm-claim
    - stm-close
    - stm-comment
    # Messages from Discord
    - discord-chat
    #- discord-[CHANNEL]-chat
    # Messages from IRC to discord
    - irc-discord-chat
    # Catch /broadcast messages
    #- broadcast-console-message
    #- broadcast-message
    # RedditStream
    #- reddit-messages
    # AdminPrivateChat messages game to IRC
    #- game-a-chat
    # AdminPrivateChat messages IRC to game
    #- irc-a-chat
    # Hero channel destination for IRC messages
    hero-channel: admin
    # Venture channel destination for IRC messages
    venture-channel: global
    # Towny channel destination for IRC messages
    towny-channel: irc
    # Discord channel destination for IRC messages
    discord-channel: general
    # Log all messages from IRC to HeroChat
    log-irc-to-hero-chat: false
    # ops - IRC hostname mask styled ops list
    ops:
    - '*!*sarah@example.com'
    # muted - IRC users that should not be heard in game
    muted:
    - KuShy
    # Set ignore-irc-chat to true if you are using @chat and don't want regular IRC chat in your game
    ignore-irc-chat: false
    # ignore list for custom tab list
    custom-tab-ignore-list:
      - AwesomeBot
    # Don't add IRC users to tab list when a matching player is online.
    custom-tab-ignore-duplicates: false
    # Hide join message when player is invisible (VanishNoPacket)
    hide-join-when-vanished: true
    # Hide quit message when player is invisible (VanishNoPacket)
    hide-quit-when-vanished: true
    # How to respond to an invalid command
    invalid-command:
        private: false
        ctcp: false
    # Raw message to send if raw-message-on-join is true
    raw-message: ''
    raw-message-on-join: false
    # join-notice
    join-notice:
        # Enable or disable this feature.
        enabled: false
        # Cool down in seconds per user.
        cooldown: 60
        # If true then message will be sent in private
        private: true
        # If true then message will be sent via ctcp. if false then normal msg
        ctcp: true
        # send a notice message (overrides ctcp)
        notice: false
        # The actual message sent to the user when joining the channel.
        # If the message starts with a / then a command will be run and the output sent as the message.
        message: '/list'
    # commands - A list of commands that the bot will act on
    # There are several builtin game_command options.
    #  @list - list the players in the game
    #  @help - print out of all of the commands
    #  @uptime - print the uptime of the game server
    #  @chat - send message to game
    #  @hchat - send message to specific hero channel
    #  @ochat - send message to game (overrides irc-chat)
    #  @motd - display minecraft server motd
    #  @msg - send private message to player
    #  @r - quickly reply to private message
    #  @query - query remote minecraft server
    #  @rtsmb - Send ReportRTS broadcast message to mods
    #  @a - Send message to AdminPrivateChat
    #  @version - display version
    #  @bukkit - display API version
    #  @versionfull - display full version info (same as /version)
    # The modes can be *, o , v , h, q, s, or i. Mix and match as needed.
    # If game_command can optionally accept arguments via %ARGS% and %NAME%
    # If a command is private then the result is sent to the player privately.
    commands:
      chat:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@chat'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      ochat:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@ochat'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      h:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@hchat'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      msg:
        modes: '*'
        private: true
        ctcp: false
        notice: false
        game_command: '@msg'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      r:
        modes: '*'
        private: 'true'
        ctcp: 'false'
        notice: false
        game_command: '@r'
        private_listen: 'true'
        channel_listen: 'true'
        perm: ''
        sender: CONSOLE
        game_command_usage: ''
        extra_commands: []
        user_masks: []
        output: '%RESULT%'
        cool_down: 0;
      list:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@list'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      help:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@help'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      uptime:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@uptime'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      version:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: '@versionfull'
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      lag:
        modes: '*'
        private: false
        ctcp: false
        notice: false
        game_command: lag
        extras_commands: []
        private_listen: true
        channel_listen: true
        user_masks: []
        perm: ''
        output: '%RESULT%'
        cool_down: 0;
      lv:
        modes: 'o'
        private: 'false'
        ctcp: 'false'
        notice: false
        game_command: '@list'
        extra_commands:
            - '@version'
        private_listen: 'true'
        channel_listen: 'true'
        user_masks: []
        perm: ''
        cool_down: 0;
## Uncomment this if you want to hook into AdminPrivateChat
#      a:
#        modes: '*'
#        private: false
#        ctcp: false
#        game_command: '@a'
#        private_listen: true
#        channel_listen: true
#        user_masks: []
## Uncomment this to allow gamemode changes via IRC
#      gamemode:
#        modes: 'o'
#        private: false
#        ctcp: false
#        game_command: 'gamemode %ARGS%'
#        private_listen: true
#        channel_listen: true
#        user_masks: []
#        output: '%RESULT%'
## Sample of %ARGX% and %ARGX+% with game_command_usage
#      mute:
#        modes: o
#        private: 'false'
#        ctcp: 'false'
#        game_command: mute %ARG1% %ARG2% %ARG3+%
#        extra_commands:
#        - 'irc say SpigBot #PurpleIRC Muted %ARG1% for %ARG2%. [Reason %ARG3+%]'
#        game_command_usage: 'Usage: .mute <player> <time> <reason>'
#        private_listen: 'true'
#        channel_listen: 'true'
#        perm: ''
#        sender: CONSOLE
#        user_masks: []
#        output: '%RESULT%'
## Uncomment this if you want to hook into ReportRTS mod broadcast command
#      mb:
#        modes: 'o'
#        private: 'false'
#        ctcp: 'false'
#        game_command: '@rtsmb'
#        extras_commands: []
#        private_listen: 'true'
#        channel_listen: 'true'
#        user_masks: []
#        perm: ''