#!/bin/bash
# LGSM fn_install_config function
# Author: Daniel Gibbs
# Website: http://gameservermanagers.com
# Version: 281015

fn_arkconfig(){
echo "creating ${servercfg} config file."
cp -v "lgsm-default.ini" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_arma3config(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo "creating ${networkcfg} config file."
cp -v "${networkcfgdefault}" "${networkcfgfullpath}"
sleep 1
echo ""
}

fn_dstconfig(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_goldsourceconfig(){
echo "creating ${servercfg} config file."
cp -v "lgsm-default.cfg" "${servercfgfullpath}"
sleep 1

# server.cfg redirects to ${servercfg} for added security
echo "creating server.cfg."
touch "${defaultcfg}"
sleep 1
echo "creating redirect."
echo "server.cfg > ${servercfg}."
echo "exec ${servercfg}" > "${defaultcfg}"
sleep 1

# creating other files required
echo "creating listip.cfg."
sleep 1
touch "${systemdir}/listip.cfg"
echo "creating banned.cfg."
touch "${systemdir}/banned.cfg"
sleep 1

# allow user to input server name and password
if [ -z "${autoinstall}" ]; then
	echo ""
	echo "Configuring ${gamename} Server"
	echo "================================="
	sleep 1
	read -p "Enter server name: " servername
	read -p "Enter rcon password: " rconpass
else
	servername="${servicename}"
	rconpass="rconpassword"
fi
sed -i "s/\"hostname\"/\"${servername}\"/g" "${servercfgfullpath}"
sed -i "s/\"rconpassword\"/\"${rconpass}\"/g" "${servercfgfullpath}"
echo ""
}

fn_jc2config(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_serious3config(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
echo "To edit ${gamename} server config use SS3 Server GUI 3 tool"
echo "http://mrag.nl/sgui3/"
sleep 1
echo ""
}

fn_sourceconfig(){
echo "creating ${servercfg} config file."
cp -v "lgsm-default.cfg" "${servercfgfullpath}"
sleep 1

# server.cfg redirects to ${servercfg} for added security
echo "creating server.cfg."
touch "${servercfgdefault}"
sleep 1
echo "creating redirect."
echo "server.cfg > ${servercfg}."
echo "exec ${servercfg}" > "${servercfgdefault}"
sleep 1

# allow user to input server name and password
if [ -z "${autoinstall}" ]; then
	echo ""
	echo "Configuring ${gamename} Server"
	echo "================================="
	sleep 1
	read -p "Enter server name: " servername
	read -p "Enter rcon password: " rconpass
else
	servername="${servicename}"
	rconpass="rconpassword"
fi
sed -i "s/\"hostname\"/\"${servername}\"/g" "${servercfgfullpath}"
sed -i "s/\"rconpassword\"/\"${rconpass}\"/g" "${servercfgfullpath}"
echo ""
}

fn_teeworldsconfig(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_terrariaconfig(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_ts3config(){
echo "creating blank ${servercfg} config file."
sleep 1
echo  "${servercfg} can remain blank by default."
sleep 1
echo  "${servercfg} is located in ${servercfgfullpath}."
sleep 1
touch "${servercfgfullpath}"
}

fn_ut99config(){
echo "${defaultcfg} > ${servercfgfullpath}"
tr -d '\r' < "${servercfgdefault}" > "${servercfgfullpath}"
sleep 1
echo ""
echo "Configuring ${gamename} Server"
echo "================================="
sleep 1
echo "enabling WebAdmin."
sed -i 's/bEnabled=False/bEnabled=True/g' "${servercfgfullpath}"
sleep 1
echo "setting WebAdmin port to 8076."
sed -i '467i\ListenPort=8076' "${servercfgfullpath}"
sleep 1
echo ""
}

fn_unity3dconfig(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
}

fn_unreal2config(){
echo "creating ${servercfg} config file."
cp -v "${servercfgdefault}" "${servercfgfullpath}"
sleep 1
echo ""
echo "Configuring ${gamename} Server"
echo "================================="
sleep 1
echo "setting WebAdmin username and password."
sed -i 's/AdminName=/AdminName=admin/g' "${servercfgfullpath}"
sed -i 's/AdminPassword=/AdminPassword=admin/g' "${servercfgfullpath}"
sleep 1
echo "enabling WebAdmin."
sed -i 's/bEnabled=False/bEnabled=True/g' "${servercfgfullpath}"
if [ "${gamename}" == "Unreal Tournament 2004" ]; then
	sleep 1
	echo "setting WebAdmin port to 8075."
	sed -i 's/ListenPort=80/ListenPort=8075/g' "${servercfgfullpath}"
fi
sleep 1
echo ""
}

echo ""
echo "Creating Configs"
echo "================================="
sleep 1
if [ ! -d "${servercfgdir}" ]; then
	echo -e "creating ${servercfgdir} dir...\c"
	mkdir -pv "${servercfgdir}"
	if [[ $? == 0 ]]; then
		echo -e  "OK"
	else
		echo -e  "FAIL"
	fi
fi

cd "${servercfgdir}"

# statements
if [ "${gamename}" == "7 Days To Die" ]; then
	fn_unity3dconfig
elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/ARKSurvivalEvolved/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	echo -e "downloading lgsm-default.ini...\c"
	fn_arkconfig
elif [ "${gamename}" == "ARMA 3" ]; then
	echo -e "downloading lgsm-default.server.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Arma3/cfg/lgsm-default.server.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	echo -e "downloading lgsm-default.network.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_arma3config
elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/BlackMesa/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Blade Symphony" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/BladeSymphony/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike 1.6" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrike/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike: Condition Zero" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeConditionZero/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike: Global Offensive" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Counter Strike: Source" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Day of Defeat" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DayOfDefeat/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Day of Defeat: Source" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DayOfDefeatSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Dont Starve Together" ]; then
	echo -e "downloading lgsm-default.ini...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DontStarveTogether/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_dstconfig
elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DoubleActionBoogaloo/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Fistful of Frags" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/FistfulOfFrags/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Garry's Mod" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/GarrysMod/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Half Life 2: Deathmatch" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/HalfLife2Deathmatch/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Half Life: Deathmatch Classic" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/HalfLifeDeathmatchClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Insurgency" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Insurgency/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Just Cause 2" ]; then
	fn_jc2config
elif [ "${gamename}" == "Killing Floor" ]; then
	fn_unreal2config
elif [ "${gamename}" == "Left 4 Dead" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Left4Dead/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Left 4 Dead 2" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Left4Dead2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "No More Room in Hell" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/NoMoreRoomInHell/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Natural Selection 2" ]; then
	echo -e "no configs required."
	sleep 1
	echo ""
elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
	fn_unreal2config
elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
	echo -e "downloading lgsm-default.ini...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/SeriousSam3BFE/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_serious3config
elif [ "${gamename}" == "Teamspeak 3" ]; then
	fn_ts3config
elif [ "${gamename}" == "Team Fortress 2" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/TeamFortress2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_sourceconfig
elif [ "${gamename}" == "Team Fortress Classic" ]; then
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/TeamFortressClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_goldsourceconfig
elif [ "${gamename}" == "Teeworlds" ]; then
	echo -e "downloading ctf.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Teeworlds/cfg/ctf.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	echo -e "downloading dm.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Teeworlds/cfg/dm.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	echo -e "downloading duel.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Teeworlds/cfg/duel.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	echo -e "downloading tdm.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Teeworlds/cfg/tdm.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	echo -e "downloading lgsm-default.cfg...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Teeworlds/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_teeworldsconfig
elif [ "${gamename}" == "Terraria" ]; then
	echo -e "downloading lgsm-default.txt...\c"
	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Terraria/cfg/lgsm-default.txt 2>&1 | grep -F HTTP | cut -c45- | uniq
	sleep 1
	fn_terrariaconfig
elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
	fn_unreal2config
elif [ "${gamename}" == "Unreal Tournament 99" ]; then
	fn_ut99config
fi
