#!/bin/bash

ipb=(
193.26.217.206
178.170.189.18
185.248.100.156
91.132.103.4
193.26.217.121
178.170.189.208
195.62.53.113
195.88.208.147
193.19.119.239
195.62.52.230
193.19.119.174
176.99.12.209
81.90.181.16
185.248.103.9
185.248.101.151
188.120.253.164
193.19.118.46
185.203.242.82
195.62.53.216
185.158.115.127
193.26.217.192
185.248.103.147
90.154.71.187
147.75.40.2
192.168.0.15
46.243.253.6
185.158.114.102
185.248.100.230
193.19.118.225
185.248.100.213
185.248.100.236
195.88.209.14
46.243.253.175
37.230.228.119
195.62.52.181
195.88.208.188
195.62.52.191
193.26.217.206
185.248.100.35
185.248.103.121
185.158.115.225
178.170.189.38
46.243.253.180
195.62.52.70
178.170.189.3
193.26.217.217
185.248.101.32
195.62.53.132
46.243.253.227
195.88.209.226
185.231.247.138
195.88.208.60
178.170.189.137
178.170.189.167
185.248.103.51
195.88.209.122
93.170.123.192
46.8.21.200
193.26.217.247
185.248.100.252
46.243.253.26
46.243.253.48
195.62.52.248
195.62.52.96
195.62.53.92
185.248.102.153
46.243.253.159
159.69.181.178
37.230.210.42
185.158.112.224
185.248.100.80
37.230.210.229
178.170.189.44
178.170.189.51
)

ip4=$(wget -O - -q 147.75.89.25)
key=0;
hlds="http://www.dedicated-server.ru/hlds_linux_6153_beta.zip"
rehlds="https://files.lgcp.ru/vds_cs1/reHLDSmode.zip"
cfg="https://files.lgcp.ru/vds_cs1/server.cfg"
b5="https://files.lgcp.ru/vds_cs1/HLDSmode.zip"

for item in ${ipb[*]}
do
    if  [ "$ip4" = "$item" ]  ; then key=1;
	fi
done

Infon() 
{
	printf "\033[1;32m$@\033[0m"
}
Infon2() 
{
	printf "\033[1;36m$@\033[0m"
}
Infon3() 
{
	printf "\033[1;33m$@\033[0m"
}
Info()
{
	Infon "$@\n"
}
Info2()
{
	Infon2 "$@\n"
}
Info3()
{
	Infon3 "$@\n"
}
Error()
{
	printf "\033[1;31m$@\033[0m\n"
}
Error_n()
{
	Error "- - - $@"
}
Error_s()
{
	Error "==================================================="
}
log_s()
{
	Info3 "============================================================"
}

log_t()
{
	log_s
	Info "- - - $@"
	log_s
}

dop_server()
{	
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Дополнительные функции!"
	log_s
	Info2 "- 1  -  Посмотреть нагрузку на VDS"
	Info2 "- 2  -  Сменить пароль пользователя"
	Info2 "- 3  -  Перейти в режим отладки"
    Info2 "- 4  -  Меню исправления ошибок"
	Info2 "- 0  -  Выход"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) htop;;
		2) passwd;;
		3) cd /home/$login2
		./csserver debug;;
        4) fix_server;;
		0) operation_server;;
	esac
	dop_server
}

fix_server()
{	
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Меню исправления ошибок!"
	log_s
	Info2 "- 1  -  Вставить ссылку на быструю загрузку"
	Info2 "- 2  -  Активировать автоподъем сервера"
    Info2 "- 0  -  Выход"
    log_s
	Info2 "- - Используйте 1 пункт, только если у вас в server.cfg"
    Info2 "- - не стоит ссылка на быструю загрузку."
	Info2 "- - Используйте 2 пункт, только если ваш сервер"
	Info2 "- - не включается после падения в течении 4 минут"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) sed -i "3i\sv_downloadurl \"http:\/\/$ip4\/$login2\/\"" /home/$login2/serverfiles/cstrike/server.cfg;;
		2) (crontab -l; echo "*/3 * * * * /home/$login2/csserver monitor > /dev/null 2>&1") | crontab -;;
		0) dop_server;;
	esac
	fix_server
}

reinstal_server()
{	
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Выберите вариант переустановки!"
	Info "- - Все данные будут удалены."
	log_s
	Info2 "- 1  -  Установить ReHLDS + все необходимые модули"
	Info2 "- 2  -  Установить 6153 + все необходимые модули"
	Info2 "- 3  -  Установить чистый билд 6153"
	Info2 "- 0  -  Выход"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) reinstal_server_start3;;
		2) reinstal_server_start2;;
		3) reinstal_server_start1;;
		0) operation_server;;
	esac
	reinstal_server
}

back_server_start()
{
	rm -R backup
	mkdir backup
	cp -f -R /home/$login2/serverfiles/*  /home/$login2/backup
	echo 'Операция выполнена!';
}

comback_server_start()
{
	rm -R serverfiles
	mkdir serverfiles
	cp -f -R /home/$login2/backup/*  /home/$login2/serverfiles
	echo 'Операция выполнена!';
}

zip_server_start()
{
	rm /home/$login2/backup.zip
	zip backup.zip -r /home/$login2/backup
	echo 'Операция выполнена!';
}

back_server()
{
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Мастер резервного копирования!"
	Info "- - Сохранение в папку backup в корневом каталоге"
	Info "- - Каждое последующее резервное копирование"
	Info "- - будет заменять существующее"
	Info "- - В случае восстановления, резервная копия заменит"
	Info "- - текущий сервер"
	log_s
	Info2 "- 1  -  Создать резервную копию"
	Info2 "- 2  -  Восстановить резервную копию"
	Info2 "- 3  -  Заархивировать резервную копию"
	Info2 "- 0  -  Выход"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) back_server_start;;
		2) comback_server_start;;
		3) zip_server_start;;
		0) operation_server;;
	esac
	back_server
}

reinstal_server_start1()
{
	cd /home/$login2/
	wget $hlds
	unzip hlds_linux_6153_beta.zip
	rm hlds_linux_6153_beta.zip
	rm -R serverfiles
	mkdir serverfiles
	cp -R /home/$login2/hlds/*  /home/$login2/serverfiles
	cd /home/$login2/
	rm -R hlds
	cd /home/$login2/serverfiles/cstrike/
	rm -f server.cfg
	wget $cfg
	touch banned.cfg
	touch listip.cfg
	sed -i "3i\sv_downloadurl \"http:\/\/$ip4\/$login2\/\"" /home/$login2/serverfiles/cstrike/server.cfg
	chown -R $login2 /home/$login2/serverfiles/
	chmod -R 777 /home/$login2/serverfiles/
	fast_dl_up
	echo 'Операция выполнена!';
}

reinstal_server_start2()
{
	cd /home/$login2/
	wget $hlds
	unzip hlds_linux_6153_beta.zip
	rm hlds_linux_6153_beta.zip
	rm -R serverfiles
	mkdir serverfiles
	cp -R /home/$login2/hlds/*  /home/$login2/serverfiles
	cd /home/$login2/
	rm -R hlds
	cd /home/$login2/serverfiles/
	wget $b5
	unzip -o HLDSmode.zip
	rm HLDSmode.zip
	cd /home/$login2/serverfiles/cstrike/
	rm -f server.cfg
	wget $cfg
	touch banned.cfg
	touch listip.cfg
	sed -i "3i\sv_downloadurl \"http:\/\/$ip4\/$login2\/\"" /home/$login2/serverfiles/cstrike/server.cfg
	chown -R $login2 /home/$login2/serverfiles/
	chmod -R 777 /home/$login2/serverfiles/
	fast_dl_up
	echo 'Операция выполнена!';
}

reinstal_server_start3()
{
	cd /home/$login2/
	wget $hlds
	unzip hlds_linux_6153_beta.zip
	rm hlds_linux_6153_beta.zip
	rm -R serverfiles
	mkdir serverfiles
	cp -R /home/$login2/hlds/*  /home/$login2/serverfiles
	cd /home/$login2/
	rm -R hlds
	cd /home/$login2/serverfiles/
	wget $rehlds
	unzip -o reHLDSmode.zip
	rm reHLDSmode.zip
	cd /home/$login2/serverfiles/cstrike/
	rm -f server.cfg
	wget $cfg
	touch banned.cfg
	touch listip.cfg
	sed -i "3i\sv_downloadurl \"http:\/\/$ip4\/$login2\/\"" /home/$login2/serverfiles/cstrike/server.cfg
	chown -R $login2 /home/$login2/serverfiles/
	chmod -R 777 /home/$login2/serverfiles/
	fast_dl_up
	echo 'Операция выполнена!';
}

avto_cborka_menu()
{
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Мастер установки сборки!"
	Info "- - Мастер поможет вам быстро установить вашу сборку на vds"
	Info "- - Внимание! Старая сборка будет удалена. "
	Info "- - Для установки сборки, поместите свой архив со сборкой"
	Info "- - в папку install"
	Info "- - Важно! Название архива не должно содержать русских"
	Info "- - букв и пробелов!"
	Info "- - Важно! Архив со сборкой должен начинаться с папки cstrike!"
	log_s
	Info2 "- 1  -  Установить"
	Info2 "- 0  -  Выход"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) avto_cborka;;
		0) operation_server;;
	esac
	avto_cborka_menu
}

avto_cborka()
{
	filename2=$(find /home/$login2/install -size +10000k)
	file1=$(echo "${filename2##*/}")
	ext=${file1##*.} 
	cd /home/$login2/install
	if  [ "$ext" = "rar" ] ; then 
	unrar x $file1
	elif [ "$ext" = "zip" ] ; then 
	unzip $file1
	else 
	echo 'Загрузите архив в rar или zip'; 
	return
	fi
	mkdir vds_ins
	rm $file1
	cd cstrike/addons/amxmodx/
	rm -R dlls logs modules
	cd configs
	rm -R amxx.cfg clcmds.ini cmds.ini configs.ini core.ini cvars.ini hamdata.ini modules.ini stats.ini
	cp -r /home/$login2/install/cstrike/addons/amxmodx /home/$login2/install/vds_ins/
	cd
	rm -R /home/$login2/install/cstrike/addons
	reinstal_server_start3
	cp -r -n /home/$login2/install/cstrike /home/$login2/serverfiles/
	cp -r -f /home/$login2/install/cstrike/mapcycle.txt /home/$login2/serverfiles/cstrike/
	cp -r -f /home/$login2/install/vds_ins/amxmodx /home/$login2/serverfiles/cstrike/addons/
	chown -R $login2 /home/$login2/serverfiles/
	chmod -R 777 /home/$login2/serverfiles/
	rm -R -f /home/$login2/install/*
	fast_dl_up
	echo 'Сборка установлена!';
}

avto_admin_menu()
{
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_s
	Info "- - Мастер выдачи привилегий!"
	Info "- - Работает через users.ini"
	log_s
	Info2 "- 1  -  Выдать по Нику"
	Info2 "- 2  -  Выдать по IP"
	Info2 "- 3  -  Выдать по STEAM ID"
	Info2 "- 0  -  Выход"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) admin_nik;;
		2) admin_ip;;
		3) admin_st;;
		0) operation_server;;
	esac
	avto_admin_menu
}

admin_nik()
{
	clear
	echo 'Добавление привилегии по нику';
	echo 'Флаги: abcdefghijklmnopqrstu';
	echo 'Введите необходимые данные и нажмите Enter!';
	read -p "Введите Ник: " nik5
	read -p "Введите Пароль: " pass5
	read -p "Введите Флаги (слитно): " flags5
	echo "\"$nik5\" \"$pass5\" \"$flags5\" \"a\"" >> /home/$login2/serverfiles/cstrike/addons/amxmodx/configs/users.ini
	echo 'Админка успешно добавлена! Для активации смените карту или сделайте рестарт.';
}

admin_ip()
{
	clear
	echo 'Добавление привилегии по IP';
	echo 'Флаги: abcdefghijklmnopqrstu';
	echo 'Введите необходимые данные и нажмите Enter!';
	read -p "Введите IP: " nik5
	read -p "Введите Флаги (слитно): " flags5
	echo "\"$nik5\" \"$flags5\" \"de\"" >> /home/$login2/serverfiles/cstrike/addons/amxmodx/configs/users.ini
	echo 'Админка успешно добавлена! Для активации смените карту или сделайте рестарт.';
}

admin_st()
{
	clear
	echo 'Добавление привилегии по STEAM ID';
	echo 'Флаги: abcdefghijklmnopqrstu';
	echo 'Введите необходимые данные и нажмите Enter!';
	read -p "Введите STEAM ID: " nik5
	read -p "Введите Флаги (слитно): " flags5
	echo "\"$nik5\" \"$flags5\" \"ce\"" >> /home/$login2/serverfiles/cstrike/addons/amxmodx/configs/users.ini
	echo 'Админка успешно добавлена! Для активации смените карту или сделайте рестарт.';
}

operation_server()
{
	login2=$(whoami)
	clear
	Info
	log_s
	Info "- - [LGCP - CS 1.6] Linux Game Control Panel - CS 1.6" 
	log_t "Меню управления сервером"
	Info2 "- 1  -  Запустить сервер"
	Info2 "- 2  -  Выключить сервер"
	Info2 "- 3  -  Перезагрузить сервер"
	Info2 "- 4  -  Открыть консоль сервера"
	Info2 "- 5  -  Мастер резервировного копирования"
	Info2 "- 6  -  Переустановить сервер"
	Info2 "- 7  -  Автоустановка сборки"
	Info2 "- 8  -  Выдать привилегию"
	Info2 "- 9  -  Дополнительные функции"
	Info2 "- 0  -  Выход"
	log_s
	Info "- - Группа по помощи CS 1.6 - vk.com/amx_help"
	Info "- - Тех. поддержка - vk.com/zombi_atak"
	Info "- - Версия скрипта: 3.3"
	log_s
	Info
	read -p "Введите пункт меню:" case
	case $case in
		1) cd /home/$login2
		./csserver start;;
		2) cd /home/$login2
		./csserver stop;;
		3) cd /home/$login2
		./csserver restart;;
		4) cd /home/$login2
		./csserver console;;
		5) back_server;;
		6) reinstal_server;;
		7) avto_cborka_menu;;
		8) avto_admin_menu;;
		9) dop_server;;
		0) exit;;
	esac
	operation_server	
}

operation_server_st()
{
	if  [ $key == 1 ]  ; 
	then 
	echo 'Успешная авторизация!' ;
	operation_server
	else 
	echo 'Нет доступа для данного IP! Приобрести можно тут vk.com/zombi_atak';
	exit 1
	fi
}

operation_server_st
