### ###
### ### This file defines the default property set for mark2. To configure mark2,
### ### edit config/mark2.properties with any subset of the properties listed here.
### ###
### ### Please DO NOT edit this file! If you wish to upgrade mark2 in the future, 
### ### your changes may conflict with git's. DO NOT remove this file.
### ###

###
### This file defines the configuration that all your servers share. You can do fine-
### tuning on a server-by-server basic by dropping a file called 'mark2.properties'
### in the same directory as your 'minecraft_server.jar'. There's an example in the
### 'samples' directory.
###

###
### mark2 options
###

# Semicolon-separated list of jar file patterns to try
# If you're running a Feed The Beast server you probably want something like FTB-*.jar
mark2.jar-path=craftbukkit*.jar;minecraft_server*.jar;spigot*.jar

# How long to wait for the server to shut down after issuing `stop` before we kill it.
mark2.shutdown-timeout=60

# How to rotate the mark2 log. Should be either 'off', 'size', or 'daily'
mark2.log.rotate-mode=size
# If mode is 'size', this specifies the max log filesize before rotation
mark2.log.rotate-size=1000000
# The number of logs to keep before clearing old ones. Blank to never clear.
mark2.log.rotate-limit=10

# This determines the octal mask of mark2's log, pid, and socket files
# By default any user with an account on the system can control and attach to servers
# If you're on shared hosting you probably want to change these to 600.
mark2.umask.log=666
mark2.umask.pid=666
mark2.umask.sock=666

# Regular expressions to match for player join, quit and chat events
# These use python regex syntax: http://docs.python.org/library/re.html
# Backslashes *must* be doubled or they will be stripped.
mark2.regex.join=(?P<username>[A-Za-z0-9_]{1,16})\\[/(?P<ip>[0-9\\.]+):\\d+\\] logged in with entity id .+
mark2.regex.quit=(?P<username>[A-Za-z0-9_]{1,16}) lost connection: (?P<reason>.+)
mark2.regex.chat=<(?P<username>[A-Za-z0-9_]{1,16})> (?P<message>.+)

###
### mark2 services
###

# Ping: periodically connect to the server and send a 'Server List Ping'
# This determines whether the server is connectable, and also gives a player count.
# This will normally appear as end of stream/lost connection messages from the localhost connection if it isn't 
# successfully culled from the log file.
# You should not disable this service without good reason.
mark2.service.ping.enabled=true
mark2.service.ping.interval=5

# Process: Basic detection settings to initialize the mark2 plugin system.
# The "Done" message tells the back end mark2 system to start the plugin system. 
# The "Stop" command is the command ran to stop the server by both the shutdown plugin and the backend server_stop event.
mark2.service.process.done-pattern=Done \\(([0-9\\.]+)s\\)\\!.*
mark2.service.process.stop-cmd=stop\n

# Command Options:
# Java Path that is used to start the server.
# You should not edit this line without good reason.
mark2.service.process.java-path=java
# Command Line Arguments that are given to the server jar.
# nogui is not required since it's included in the command automatically.
# *Important*: some arguments might not be compatible with mark2
# http://wiki.bukkit.org/CraftBukkit_Command_Line_Arguments
# Example: mark2.service.process.server-args=--max-players 36 --world map_name
mark2.service.process.server-args=

###
### JVM options
###

# How often to poll the process for cpu and memory usage (seconds).
java.ps.interval=5

# Memory allocation pool initial size
java.cli.X.ms=3G

# Memory allocation pool max size
java.cli.X.mx=3G

# Strip terminal colours
java.cli.D.jline.terminal=jline.UnsupportedTerminal

# Possible speed-ups - use only if you know what you're doing
# Reference: http://goo.gl/XuYv7
# Guide:     http://goo.gl/D8P9b

#java.cli.X.incgc=
#java.cli.XX.AggressiveOpts=true
#java.cli.XX.CompileThreshold=1500
#java.cli.XX.MaxGCPauseMillis=50
#java.cli.XX.MaxPermSize=256M
#java.cli.XX.MaxTenuringThreshold=15
#java.cli.XX.OptimizeStringConcat=true
#java.cli.XX.ParallelGCThreads=4
#java.cli.XX.PermSize=64M
#java.cli.XX.TargetSurvivorRatio=90
#java.cli.XX.ThreadPriorityPolicy=42
#java.cli.XX.TieredCompilation=true
#java.cli.XX.UnlockExperimentalVMOptions=true
#java.cli.XX.UseAdaptiveGCBoundary=true
#java.cli.XX.UseCompressedOops=true
#java.cli.XX.UseConcMarkSweepGC=true
#java.cli.XX.UseFastAccessorMethods=true
#java.cli.XX.UseG1GC=true
#java.cli.XX.UseGCOverheadLimit=true
#java.cli.XX.UseLargePages=true
#java.cli.XX.UseSSE=3
#java.cli.XX.UseStringCache=true
#java.cli.XX.UseThreadPriorities=true

# Extra java arguments
java.cli-extra=

###
### Plugins
###


###
# ALERT
# Prints messages on an interval
# Each line of your alerts.txt file should be a message to say
plugin.alert.enabled=false
plugin.alert.path=alerts.txt
plugin.alert.interval=200
plugin.alert.command=say {message}

# Minimum number of players online that are required for alerts to show up 
plugin.alert.min-pcount=0


###
# BACKUP
# Compresses the world folders to a .tar.gz
# Provides ~backup command
plugin.backup.enabled=true
plugin.backup.path=backups/{timestamp}.tar.gz

# mode
#   include: back up only the paths in 'spec'
#   exclude: back up everything in the server directory except the paths in 'spec
plugin.backup.mode=include

# Semicolon separated paths to include or exclude, depending on mode
plugin.backup.spec=world*

# Flags to pass to `tar`
plugin.backup.tar-flags=-hpczf

# How long to wait after issuing `save-off` for minecraft to finish writing chunks (seconds)
plugin.backup.flush-wait=5


###
# IRC
# relay in-game chat to IRC and visa-versa
plugin.irc.enabled=false

# Connection
plugin.irc.host=
plugin.irc.port=
plugin.irc.ssl=false
plugin.irc.server-password=
plugin.irc.channel=
plugin.irc.key=

# SSL options
#   certificate, if specified, should be the path to a PEM format file to use as our SSL client certificate.
#   if server-fingerprint is not blank and the server's certificate fingerprint does not match it, the relay will
#   refuse to connect.
#   either can be safely left blank, but if you know your server's fingerprint, you *should* put it here to
#   increase security.
plugin.irc.certificate=
plugin.irc.server-fingerprint=
#plugin.irc.certificate=~/relay_bot.pem
#plugin.irc.server-fingerprint=03:B8:D3:4D:5A:0C:B1:D8:5A:39:29:8B:BA:39:62:13:76:A4:79:93

# User
plugin.irc.nickname=RelayBot
plugin.irc.realname=mark2 IRC relay
plugin.irc.ident=RelayBot

# Services login
plugin.irc.username=
plugin.irc.password=

# If true, this replaces the first character of in-game usernames with an underscore to prevent highlighting
plugin.irc.cancel-highlight=false
plugin.irc.cancel-highlight-str=_

# Game -> IRC settings

# Whether to right-align usernames into a column. If you do, everything left of the first comma is right-aligned and
# the comma is stripped
plugin.irc.game-columns=true

# Server status (stopping/starting)
plugin.irc.game-status-enabled=true
plugin.irc.game-status-format=!, | server {what}.

# Server messages (/say)
plugin.irc.game-server-message-enabled=true
plugin.irc.game-server-message-format=#server, | {message}

plugin.irc.game-chat-enabled=true
plugin.irc.game-chat-format={username}, | {message}
# If this is a regex, chat messages that match it won't be relayed.
# To not relay messages with "P " in front of them, you'd use: ^P  (yes, there's a space after the P.)
plugin.irc.game-chat-private=

plugin.irc.game-join-enabled=true
plugin.irc.game-join-format=*, | --> {username}

plugin.irc.game-quit-enabled=true
plugin.irc.game-quit-format=*, | <-- {username}

plugin.irc.game-death-enabled=true
plugin.irc.game-death-format=*, | {text}

# /me (bukkit only)
plugin.irc.game-me-enabled=true
plugin.irc.game-me-format=*, | {username} {message}

# IRC -> Game settings

plugin.irc.irc-chat-enabled=true
plugin.irc.irc-chat-command=say [IRC] <{nickname}> {message}
plugin.irc.irc-action-command=say [IRC] * {nickname} {message}

# If set, this is the minimum channel status required to have your messages relayed.
# this can be a name, like 'op' or 'voice', or a channel mode like 'o' or 'v', or a status prefix
# like '@' or '+'
plugin.irc.irc-chat-status=

# Server commands from IRC
# if you enable this, sending "!say hi" will run "say hi" from the server console.
# status is the channel status required to have access, see irc-chat-status
# (although it must be set in order to enable the feature, unlike chat)
# irc-command-allow is a comma-separated list of permitted commands, or *
# if irc-command-mark2=true, (prefix)~ will execute a mark2 command (it'll
# still need to be allowed in -allow)
plugin.irc.irc-command-prefix=!
plugin.irc.irc-command-status=
plugin.irc.irc-command-allow=
plugin.irc.irc-command-mark2=false

# "!players" from IRC
plugin.irc.irc-players-enabled=true
plugin.irc.irc-players-format=Players currently in game: {players}


###
# LOG
# Exports server.log to a directory
plugin.log.enabled=true
plugin.log.gzip=true
plugin.log.path=logs/server-{timestamp}-{status}.log.gz

# Whether to log to the default server.log format
plugin.log.vanilla=false


###
# MCBOUNCER
# Simple mcbouncer plugin for vanilla servers
plugin.mcbouncer.enabled=false
plugin.mcbouncer.api-key=
plugin.mcbouncer.reason=Banned by an operator

# Proxy mode: don't report IPs or check IP bans
plugin.mcbouncer.proxy-mode=false


###
# MONITOR
# Restarts the server if it crashes and sends out an alert (see the PUSH plugin)
# Timeouts are given in minutes.
# If the '-warn' settings are greater than 0, alerts will be sent when the check
# has been failing for that many minutes. You may set '-timeout' to 0 to send alerts
# but never restart the server.
plugin.monitor.enabled=true

# Checks the server console is still accepting commands
# *IF* you have a custom unknown-command message in your spigot.yml file, edit it below.
plugin.monitor.crash-enabled=true
plugin.monitor.crash-timeout=10
plugin.monitor.crash-warn=0
plugin.monitor.crash-unknown-cmd-message=Unknown command.*
plugin.monitor.crash-check-command=

# Periodically make sure the server is still accepting connections
plugin.monitor.ping-enabled=true
plugin.monitor.ping-timeout=10
plugin.monitor.ping-warn=0

# *IF* you run a big server where having 0 players for an extended period means there's something wrong, enable this.
plugin.monitor.pcount-enabled=false
plugin.monitor.pcount-timeout=10
plugin.monitor.pcount-warn=0

# Restarts the server if it runs out of memory
plugin.monitor.oom-enabled=true


###
# MUMBLE
# Provides a user count/details to a user when they say something like !mumble
plugin.mumble.enabled=false
plugin.mumble.host=
plugin.mumble.port=64738
plugin.mumble.timeout=10
plugin.mumble.trigger=!mumble
plugin.mumble.command-up=\
    msg {username} host: {host}\n\
    msg {username} port: {port}\n\
    msg {username} status: up! users: {users_current}/{users_max}

plugin.mumble.command-down=\
    msg {username} host: {host}\n\
    msg {username} port: {port}\n\
    msg {username} status: down.


###
# PUSH
# Send you notifications if something happens to the server.
# endpoint syntax is:   url-like key1=value1 key2=value2
# see the examples below for useful values.
# in particular, causes=some1,thing2 will filter notifications to an endpoint
# to only those caused by certain events. if a filter ends in /, it matches
# any event causes starting with that value.
plugin.push.enabled=false

# if you want to send email from an address that uses authentication (like
# Gmail), fill in the SMTP settings below
plugin.push.email-address=mark2@fantastic.minecraft.server
plugin.push.email-smtp-server=
plugin.push.email-smtp-user=
plugin.push.email-smtp-password=
plugin.push.email-smtp-security=

plugin.push.pushover-token=

# available endpoints you can use for this setting:
#  NotifyMyAndroid:  https://www.notifymyandroid.com/
#    nma:<nma-key>
#  Prowl:            http://www.prowlapp.com/
#    prowl:<prowl-key>
#  Pushover:         https://pushover.net/
#    pushover:<pushover-key>
#    -OR-
#    pushover:<pushover-key> device=<device-name>
#  SMTP (normal email):
#    smtp:<email-address>
#
# replace <something> with the information you find on the
# service's respective website. to make Pushover work, you will need to
# give mark2 a valid Pushover app token and put it in
# plugin.push.pushover-token. Pushover supports sending a notification
# to only one device - you can do this using the second syntax described
# above. all endpoints support an additional causes= setting, which
# filters what kinds of notification you will receive. for example:
#   pushover:ZDg0ZWM5YTJiMmJmMWZiNjFjMGQwND device=iPhone causes=server/error/
plugin.push.endpoints=

#plugin.push.pushover-token=Y0ZDcwZGNlOTg1YTZiNjhjNDE5NGQ2
#plugin.push.endpoints=\
#	nma:719703d2f06ae47c23ae0c38d7d0ec5c312f4b936b3f2009\n\
#	prowl:03d2f06ae47c23ae0c38d7d0ec5c312f4b936b3f\n\
#	pushover:ZDg0ZWM5YTJiMmJmMWZiNjFjMGQwND device=MyDevice\n\
#	smtp:fantastic.minecraft.admin@gmail.com causes=server/error/\n\
#	smtp:another.email@home.isp.aq causes=*


###
# REDIS
# Send certain events to a redis pubsub
plugin.redis.enabled=false
plugin.redis.host=localhost
plugin.redis.port=6379
plugin.redis.channel=mark2-{server}
plugin.redis.relay-events=StatPlayers,PlayerJoin,PlayerQuit,PlayerChat,PlayerDeath


###
# RSS
# Announce new RSS entries in-game
# Automatically shortens to redd.it links where possible
plugin.rss.enabled=false
plugin.rss.url=
plugin.rss.check-interval=60
plugin.rss.command=say {link} - {title}


###
# SAVE
# Provides ~save command
plugin.save.enabled=true
plugin.save.warn-message=WARNING: saving map in {delay}.
plugin.save.message=MAP IS SAVING.


###
# SCRIPT
# Run a program or command on a given event or interval.
# See samples/scripts.txt
plugin.script.enabled=true
plugin.script.path=scripts.txt
plugin.script.shell=/bin/bash


###
# SU
# Integrate with bukkit-sudo - https://github.com/edk141/bukkit-sudo
plugin.su.enabled=false
plugin.su.command=sudo -su {user} -- {command}
plugin.su.mode=include
plugin.su.proc=ban;unban


###
# SHUTDOWN
# Cleanly stop/restart the server
# Provides ~stop, ~kill, ~restart, ~restart-kill commands
plugin.shutdown.enabled=true
plugin.shutdown.stop-warn-message=WARNING: server going down for planned maintenance in {delay}.
plugin.shutdown.stop-message=Server going down for maintenance.
plugin.shutdown.stop-cancel-message=WARNING: planned maintenance cancelled.
plugin.shutdown.stop-cancel-reason=WARNING: planned maintenance cancelled ({reason}).
plugin.shutdown.restart-warn-message=WARNING: planned restart in {delay}.
plugin.shutdown.restart-message=Server restarting.
plugin.shutdown.restart-cancel-message=WARNING: planned restart cancelled.
plugin.shutdown.restart-cancel-reason=WARNING: planned restart cancelled ({reason}).

# If you have a /kickall command, add it here (delete {player}) and change the mode to "once"
plugin.shutdown.kick-command=kick {player} {message}
plugin.shutdown.kick-mode=all


###
# TRIGGER
# Each line of triggers.txt should be of the format 'trigger,response'
# See samples/triggers.txt
plugin.trigger.enabled=true
plugin.trigger.path=triggers.txt
plugin.trigger.command=msg {user} {message}