Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(newserver): DayZ #3557

Merged
merged 16 commits into from
Dec 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
202 changes: 202 additions & 0 deletions lgsm/config-default/config-lgsm/dayzserver/_default.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
# Copy settings from here and use them in either:
# common.cfg - applies settings to every instance.
# [instance].cfg - applies settings to a specific instance.

#### Game Server Settings ####

## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
# steamuser="username"
# steampass='password'

## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="2302"

## DayZ Modules
# Add mods with relative paths:
# mods/@cf
# To load the "Community framework for DayZ SA" module found in the
# directory serverfiles/mods/@cf. Load several mods as:
# mods="mods/@cf\;mods/@dayz-expansion\;mods/@deerisle"
mods=""

## Server-side Mods
servermods=""

## Path to BattlEye
# Leave empty for default
bepath=""

## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-ip=${ip} -port=${port} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -limitFPS=60 -dologs -adminlog -freezeCheck"

#### LinuxGSM Settings ####

## LinuxGSM Stats
# Send useful stats to LinuxGSM developers.
# https://docs.linuxgsm.com/configuration/linuxgsm-stats
# (on|off)
stats="off"

## Notification Alerts
# (on|off)

# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip=""

# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"

# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
discordwebhook="webhook"

# Email Alerts | https://docs.linuxgsm.com/alerts/email
emailalert="off"
email="email@example.com"
emailfrom=""

# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
gotifyalert="off"
gotifytoken="token"
gotifywebhook="webhook"

# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"

# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
mailgunemail="email@myemail.com"

# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""

# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
pushoveruserkey="userkey"

# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
rocketchatalert="off"
rocketchatwebhook="webhook"
rocketchattoken=""

# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"

# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""

## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"

## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"

## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"

## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="5"

## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
ansi="on"

#### Advanced Settings ####

## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
sleeptime="0.5"

## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1042420"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"

## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
# 2: CTRL+c
# 3: quit
# 4: quit 120s
# 5: stop
# 6: q
# 7: exit
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"

## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"

## Console type
consoleverbose="yes"
consoleinteract="no"

## Game Server Details
# Do not edit
gamename="DayZ"
engine="enfusion"
glibc="2.27"

#### Directories ####
# Edit with care

## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./DayZServer"
servercfgdir="${systemdir}/cfg"
servercfg="${selfname}.server.cfg"
servercfgdefault="server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"

## Backup Directory
backupdir="${lgsmdir}/backup"

## Logging Directories
logdir="${rootdir}/log"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
consolelog="${consolelogdir}/${selfname}-console.log"
alertlog="${lgsmlogdir}/${selfname}-alert.log"
postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"

## Logs Naming
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
1 change: 1 addition & 0 deletions lgsm/data/almalinux-8.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/centos-7.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/centos-8.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/debian-10.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/debian-11.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/debian-9.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/rhel-7.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/rhel-8.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/rocky-8.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/serverlist.csv
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ cscz,csczserver,Counter-Strike: Condition Zero
csgo,csgoserver,Counter-Strike: Global Offensive
css,cssserver,Counter-Strike: Source
dab,dabserver,Double Action: Boogaloo
dayz,dayzserver,DayZ
dmc,dmcserver,Deathmatch Classic
dod,dodserver,Day of Defeat
dodr,dodrserver,Day of Dragons
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/ubuntu-16.04.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/ubuntu-18.04.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/ubuntu-20.04.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
1 change: 1 addition & 0 deletions lgsm/data/ubuntu-21.04.csv
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
Expand Down
30 changes: 30 additions & 0 deletions lgsm/functions/info_game.sh
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,34 @@ fn_info_game_dodr(){
queryport=${queryport:-"27015"}
}

fn_info_game_dayz(){
# Config
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
adminpassword="${unavailable}"
serverpassword="${unavailable}"
maxplayers="${zero}"
else
servername=$(sed -nr 's/^hostname\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
serverpassword=$(sed -nr 's/^password\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^maxPlayers\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")
queryport=$(sed -nr 's/^steamQueryPort\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")

# Not Set
servername=${servername:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers:-"0"}
queryport=${queryport:-"27016"}
fi

# Parameters
port=${port:-"2302"}
steammasterport=$((port+2))
battleeyeport=$((port+4))
}

fn_info_game_dst(){
# Config
if [ ! -f "${clustercfgfullpath}" ]; then
Expand Down Expand Up @@ -2223,6 +2251,8 @@ elif [ "${shortname}" == "codwaw" ]; then
fn_info_game_codwaw
elif [ "${shortname}" == "col" ]; then
fn_info_game_col
elif [ "${shortname}" == "dayz" ]; then
fn_info_game_dayz
elif [ "${shortname}" == "dodr" ]; then
fn_info_game_dodr
elif [ "${shortname}" == "dst" ]; then
Expand Down
14 changes: 13 additions & 1 deletion lgsm/functions/info_messages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -669,7 +669,7 @@ fn_info_message_ports_edit(){
fi
done
# engines/games that require editing the start parameters.
local ports_edit_array=( "av" "col" "fctr" "goldsrc" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sol" "spark" "source" "unreal4" "arma3" "unt" "vh" )
local ports_edit_array=( "av" "col" "fctr" "goldsrc" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh" )
for port_edit in "${ports_edit_array[@]}"; do
if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]||[ "${shortname}" == "${port_edit}" ]; then
startparameterslocation="${configdirserver}"
Expand Down Expand Up @@ -929,6 +929,16 @@ fn_info_message_csgo(){
} | column -s $'\t' -t
}

fn_info_message_dayz(){
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query Steam" queryport udp
fn_port "Steam Master" steammasterport udp
fn_port "BattleEye" battleeyeport udp
} | column -s $'\t' -t
}

fn_info_message_dodr(){
{
fn_port "header"
Expand Down Expand Up @@ -1631,6 +1641,8 @@ fn_info_message_select_engine(){
fn_info_message_codwaw
elif [ "${shortname}" == "col" ]; then
fn_info_message_col
elif [ "${shortname}" == "dayz" ]; then
fn_info_message_dayz
elif [ "${shortname}" == "dodr" ]; then
fn_info_message_dodr
elif [ "${shortname}" == "dst" ]; then
Expand Down
Loading