From ee47df828f4b4017ef581fa32310e6787219d674 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Wed, 14 Mar 2018 14:03:55 +0000
Subject: [PATCH] Updating base defense

---
 BaseDefense/bdefserver                        | 199 ------------------
 .../config-lgsm/bdserver/_default.cfg         | 118 +++++++++++
 lgsm/data/serverlist.csv                      |   1 +
 3 files changed, 119 insertions(+), 199 deletions(-)
 delete mode 100644 BaseDefense/bdefserver
 create mode 100644 lgsm/config-default/config-lgsm/bdserver/_default.cfg

diff --git a/BaseDefense/bdefserver b/BaseDefense/bdefserver
deleted file mode 100644
index 444bf0013..000000000
--- a/BaseDefense/bdefserver
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/bin/bash
-# Project: Game Server Managers - LinuxGSM
-# Author: Daniel Gibbs
-# License: MIT License, Copyright (c) 2017 Daniel Gibbs
-# Purpose: Base Defense | Server Management Script
-# Contributors: https://github.com/GameServerManagers/LinuxGSM/graphs/contributors
-# Documentation: https://github.com/GameServerManagers/LinuxGSM/wiki
-# Website: https://gameservermanagers.com
-
-# Debugging
-if [ -f ".dev-debug" ]; then
-	exec 5>dev-debug.log
-	BASH_XTRACEFD="5"
-	set -x
-fi
-
-version="170219"
-
-##########################
-######## Settings ########
-##########################
-
-#### Server Settings ####
-
-## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
-defaultmap="pve_tomb"
-maxplayers="16"
-port="27015"
-clientport="27005"
-ip="0.0.0.0"
-
-## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
-fn_parms(){
-parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
-
-#### LinuxGSM Settings ####
-
-## Notification Alerts
-# (on|off)
-# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
-emailalert="off"
-email="email@example.com"
-emailfrom=""
-
-# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
-pushbulletalert="off"
-pushbullettoken="accesstoken"
-channeltag=""
-
-## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
-updateonstart="off"
-
-## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
-maxbackups="4"
-maxbackupdays="30"
-stoponbackup="on"
-
-## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
-consolelogging="on"
-logdays="7"
-
-#### LinuxGSM Advanced Settings ####
-
-## SteamCMD Settings
-# Server appid
-appid="90"
-# Steam App Branch Select
-# Allows to opt into the various Steam app branches. Default branch is "".
-# Example: "-beta latest_experimental"
-branch=""
-
-## Github Branch Select
-# Allows for the use of different function files
-# from a different repo and/or branch.
-githubuser="GameServerManagers"
-githubrepo="LinuxGSM"
-githubbranch="master"
-
-## LinuxGSM Server Details
-# Do not edit
-gamename="Base Defense"
-engine="goldsource"
-
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="bdef_server"
-
-#### Directories ####
-# Edit with care
-
-## Work Directories
-rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
-selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
-lockselfname=".${servicename}.lock"
-lgsmdir="${rootdir}/lgsm"
-functionsdir="${lgsmdir}/functions"
-libdir="${lgsmdir}/lib"
-tmpdir="${lgsmdir}/tmp"
-filesdir="${rootdir}/serverfiles"
-
-## Server Specific Directories
-systemdir="${filesdir}/bdef"
-executabledir="${filesdir}"
-executable="./hlds_run"
-servercfg="${servicename}.cfg"
-servercfgdefault="server.cfg"
-servercfgdir="${systemdir}"
-servercfgfullpath="${servercfgdir}/${servercfg}"
-
-## Backup Directory
-backupdir="${rootdir}/backups"
-
-## Logging Directories
-gamelogdir="${systemdir}/logs"
-scriptlogdir="${rootdir}/log/script"
-consolelogdir="${rootdir}/log/console"
-scriptlog="${scriptlogdir}/${servicename}-script.log"
-consolelog="${consolelogdir}/${servicename}-console.log"
-emaillog="${scriptlogdir}/${servicename}-email.log"
-
-## Logs Naming
-scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
-consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
-
-########################
-######## Script ########
-###### Do not edit #####
-########################
-
-# Fetches core_dl for file downloads
-fn_fetch_core_dl(){
-github_file_url_dir="lgsm/functions"
-github_file_url_name="${functionfile}"
-filedir="${functionsdir}"
-filename="${github_file_url_name}"
-githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
-# If the file is missing, then download
-if [ ! -f "${filedir}/${filename}" ]; then
-	if [ ! -d "${filedir}" ]; then
-		mkdir -p "${filedir}"
-	fi
-	echo -e "    fetching ${filename}...\c"
-	# Check curl exists and use available path
-	curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)"
-	for curlcmd in ${curlpaths}
-	do
-		if [ -x "${curlcmd}" ]; then
-			break
-		fi
-	done
-	# If curl exists download file
-	if [ "$(basename ${curlcmd})" == "curl" ]; then
-		curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1)
-		if [ $? -ne 0 ]; then
-			echo -e "\e[0;31mFAIL\e[0m\n"
-			echo "${curlfetch}"
-			echo -e "${githuburl}\n"
-			exit 1
-		else
-			echo -e "\e[0;32mOK\e[0m"
-		fi
-	else
-		echo -e "\e[0;31mFAIL\e[0m\n"
-		echo "Curl is not installed!"
-		echo -e ""
-		exit 1
-	fi
-	chmod +x "${filedir}/${filename}"
-fi
-source "${filedir}/${filename}"
-}
-
-core_dl.sh(){
-# Functions are defined in core_functions.sh.
-functionfile="${FUNCNAME}"
-fn_fetch_core_dl
-}
-
-core_functions.sh(){
-# Functions are defined in core_functions.sh.
-functionfile="${FUNCNAME}"
-fn_fetch_core_dl
-}
-
-# Prevent from running this script as root.
-if [ "$(whoami)" = "root" ]; then
-	if [ ! -f "${functionsdir}/core_functions.sh" ]||[ ! -f "${functionsdir}/check_root.sh" ]||[ ! -f "${functionsdir}/core_messages.sh" ]||[ ! -f "${functionsdir}/core_exit.sh" ]; then
-		echo "[ FAIL ] Do NOT run this script as root!"
-		exit 1
-	else
-		core_functions.sh
-		check_root.sh
-	fi
-fi
-
-core_dl.sh
-core_functions.sh
-getopt=$1
-core_getopt.sh
\ No newline at end of file
diff --git a/lgsm/config-default/config-lgsm/bdserver/_default.cfg b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
new file mode 100644
index 000000000..22a2a3425
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
@@ -0,0 +1,118 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT 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
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+ip="0.0.0.0"
+port="27015"
+clientport="27005"
+defaultmap="pve_tomb"
+maxplayers="16
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="817300"
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Base Defense"
+engine="goldsource"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${filesdir}/bdef"
+executabledir="${serverfiles}"
+executable="./hlds_run"
+servercfg="${servicename}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
\ No newline at end of file
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 8b91fe6f2..a797e07bd 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -3,6 +3,7 @@ sdtd,sdtdserver,7 Days to Die
 ark,arkserver,ARK: Survival Evolved
 bo,boserver,Ballistic Overkill
 bf1942,bf1942server,Battlefield 1942
+bd,bdserver,Base Defense
 bmdm,bmdmserver,Black Mesa: Deathmatch
 bs,bsserver,Blade Symphony
 bb2,bb2server,BrainBread 2