Bds-Maneger-CLI-Debian/bin/bds-maneger
2021-01-01 22:47:53 -03:00

286 lines
9.9 KiB
Bash

#!/bin/bash
ROOTS="0"
if command -v bds >/dev/null 2>&1;then
echo "..."
else
echo "o comando bsd não foi indentificado, verifique se o bds-common está instalado, continuando ..."
fi
if [ "$EUID" -ne $ROOTS ]; then
echo "Você não está executando o script com root ou sudo, por favor execute de novo o com: $0 $1"
exit 23
fi
if [[ -e /home/$SUDO_USER/bds_maneger.json ]];then
test
else
echo "Por favor coloque um aquivo com o nome install.json na pasta /etc/bds-maneger ou se não, copia e renomeia o arquivo exemplo_install.jsonc"
exit 127
fi
if ! cat /home/$SUDO_USER/bds_maneger.json | grep -q '//';then
echo "You install.json have coment lines"
exit 127
fi
# --------------- Codigo ------------------------------
TMP=/tmp/Minecraft-temp
mkdir $TMP &> /dev/null
DOMAINTEST=$(cat "/home/$SUDO_USER/bds_maneger.json" | jq ".pages.domain" | sed 's|"||g')
IPDOMAIN="$([ $DOMAINTEST = 'null' ] && wget -qO- http://ipecho.net/plain || echo $DOMAINTEST)"
IP_V4="$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)"
IP_V6="$(ifconfig | grep "inet6" | awk -F' ' '{print $2}' | awk '{print $1}' | head -1) "
PUBLIC_IP="$(wget -qO- http://ipecho.net/plain)"
# -------------------------------------------------------------------------------------
# As opções como comandos - init
startserver(){
if ! screen -list | grep -q "bedrock"; then
echo "We are stopping your server!"
rm -rf /tmp/mcpe.txt
screen -L -Logfile /tmp/mcpe.txt -dmS bedrock bds
else
echo "This does not work with Minecraft Bedrock Server in the background"
fi
}
stopserver(){
echo "We are stopping your server!"
screen -S bedrock -p 0 -X stuff 'stop\n'
if whiptail --title "do you want me to backup your Worlds?" --yesno "Yes e No." 10 50
then
bds-backup
else
echo "ok, there will be no backup of your Worlds!"
fi
}
addservice(){
echo "Creating the settings to start on the system"
cp /opt/bds-maneger/start-on-system.sh /etc/init.d/bds
chmod a+x /etc/init.d/bds;
update-rc.d bds defaults
update-rc.d bds enable
echo "The do Minecraft Bedrock Server is starting with system, help commands:"
echo 'service bds start'
echo 'service bds stop'
echo 'service bds restart'
echo 'service bds backup'
echo "How to disable service to Minecraft Bedrock Server, select option 4 in the menu"
sleep 5s
}
removerservice(){
echo "Disabled Minecraft Bedrock Server in systemctl"
update-rc.d bds defaults-disabled
update-rc.d bds disable
echo "Removing Minecraft on folder init.d"
rm -rf /etc/init.d/bds
}
installnginx(){
#Instalação do nginx
echo "Installing the nginx server"
apt update &> /dev/null
apt install nginx -y &> /dev/null
# Pegando as config
echo "Now settings web pages to add Minecraft server list (simples html)"
PORTAD="$(cat '/etc/BDS-Common/server.properties'|grep 'server-port='|sed 's|server-port=||g'|head -1)"
PORTADv6="$(cat '/etc/BDS-Common/server.properties'|grep 'server-portv6='|sed 's|server-portv6=||g'|head -1)"
MAPANAME="$(cat '/etc/BDS-Common/server.properties'|grep 'level-name='|sed 's|level-name=||g'|head -1)"
# Montando as Configurações
cat /opt/bds-maneger/html-files/index.html |sed "s|MAINSERVERNAME|$MAPANAME|g"|sed "s|ENDEREÇODOSERVIDOROUIP|$IPDOMAIN|g"|sed "s|PORTASERVERv6|$PORTADv6|g"|sed "s|PORTASERVER|$PORTAD|g" > /var/www/Minecraft/index.html
}
smbftp(){
echo "Installing the samba and vsftpd"
# vsftp
apt install -y vsftpd samba &> /dev/null
echo "freeing root access on the ftp server"
#config
sed -i "s|root||g" "/etc/ftpusers"
echo "Ending the settings"
rm /etc/samba/smb.conf
cp -rf /opt/bds-maneger/smb.conf /etc/samba/
cp -rf /opt/bds-maneger/vsftp.conf /etc/vsftpd.conf
echo "Restarting service the do samba (Windows Share)"
service smbd restart
echo "Restarting service the do vsftpd (FTP Server)"
service vsftpd restart
echo "we're done the settings do samba and vsftpd"
echo "To add user in ftp server just add one user in system"
sleep 2s
echo "To add user in smb (Windows Share) just user smbpass -a <USER>"
}
oldtonew(){
echo "Vamos começar!!!"
read -rp "A onde está a instalação da versão antiga? " -e -i "/home/minecraft" oldtonewpath
if [ -d $oldtonewpath ]
then
echo "Fazendo Backup!!!"
zip -rqq /etc/BDS-Common/OLDEST_bysh23-$(TZ=UTC+3 date +"%d-%m-%Y_%H-%M-%S").zip -r $oldtonewpath
echo "Copiando os mapas"
cp -rf $oldtonewpath/worlds/./ /etc/BDS-Common/worlds
echo "Copiando as Configurações, whitelist e permissions."
cp -rf $oldtonewpath/whitelist.json /etc/BDS-Common/
cp -rf $oldtonewpath/permissions.json /etc/BDS-Common/
cp -rf $oldtonewpath/server.properties /etc/BDS-Common/
LINESSs="$(($(tput lines) - 5))"
COLLSs="$(($(tput cols) - 10))"
CONFIRMOLDTONEW="$(whiptail --cancel-button "Sair" --title "" \
--menu "" --fb $LINESSs $COLLSs 2 \
"1" "Não Apagar" \
"2" "Apagar" 3>&1 1>&2 2>&3)"
case $CONFIRMOLDTONEW in
2) rm -rf $oldtonewpath ;;
1) echo não vamos remover;;
esac
echo "Terminamos"
else
echo "O diretorio não existe"
exit 23
fi
}
crontab-config(){
crontab -l > /tmp/cront
if ! cat /tmp/cront | grep -q '/etc/init.d/bds backup';then
echo "Your have one crontab config"
else
# MIN="0"
echo "Select Number) for to minute"
select MIN in '*' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
do break;done
#
# HOUR="23"
echo "Select Number) for to Hour"
select HOUR in '*' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
do break;done
#
# DAYMONTH="*"
echo "Select Number) for to month day number"
select DAYMONTH in '*' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
do break;done
#
# MONTH="*"
echo "Select Number) for to Month number"
select MONTH in '*' 1 2 3 4 5 6 7 8 9 10 11 12
do break;done
#
# DAYWEEK="*"
echo "Select Number) for to week day"
select DAYWEEK in '*' 1 2 3 4 5 6
do break;done
echo "$MIN $HOUR $DAYMONTH $MONTH $DAYWEEK /etc/init.d/bds backup" >> /tmp/cront
crontab /tmp/cront
fi
}
speedtest_internet(){
speedtest-cli > /tmp/speedtest.txt
DOWN="$(cat /tmp/speedtest.txt | grep 'Download:'|sed 's|Download:||g'|sed 's|Mbit/s||g'|sed 's| ||g'|sed -e 's|\.| |g'|awk '{print $1}')"
UPLO="$(cat /tmp/speedtest.txt | grep 'Upload:'|sed 's|Upload:||g'|sed 's|Mbit/s||g'|sed 's| ||g'|sed -e 's|\.| |g'|awk '{print $1}')"
if ! (($DOWN>10));then
echo "Temos uma internet rasoavel para Download"
else
echo "Não temos uma internet recomendada para Download"
fi
#
if ! (($UPLO>10));then
echo "Temos uma internet rasoavel para Upload"
else
echo "Não temos uma internet recomendada para Upload"
fi
}
# As opções como comandos - end
figlet Minecraft Bedrock
echo "By Sh23"
for asss in {0..10}
do
if [ $asss = 10 ]
then
break
else
echo -ne "\respere um pouco "
sleep 0.1s
echo -ne "\respere um pouco . "
sleep 0.1s
echo -ne "\respere um pouco .. "
sleep 0.1s
echo -ne "\respere um pouco ..."
sleep 0.1s
fi
done
while [ true ]
do
if [ $nogui = 'true' ]
then
echo "Seu endereço IPv4: $IP_V4"
echo "Seu endereço IPv6: $IP_V6"
echo "Seu IP Publico: $PUBLIC_IP"
echo "Pasta dos Arquivos: /etc/BDS-Common"
echo "Porta do Servido: $PORTAD"
echo "Dominio ou IP que será Utilizado: $IPDOMAIN"
read -rp "
1: Iniciar o Servidor manualmente
2: Para o Servidor manualmente
3: Adicionar um serviço para iniciar junto com o sistema
4: Remover o serviço que iniciar o BDS junto com sistema
5: Instalar o nginx para ter uma pagina para adionar o servidor via navegador
6: Instalar o servidor samba e ftp para acesso remoto
7: Atualizando antigas versões para a nova (Isso caso voçê tenha usado os pacotes bds e bds-install)
Qual é Sua Opção: " -e -i "" LE
else
LINESS="$(($(tput lines) - 5))"
COLLS="$(($(tput cols) - 10))"
LE="$(whiptail --cancel-button "Sair" --title "Minecraft Bedrock Server Maneger" \
--backtitle "Pasta dos Arquivos: /etc/BDS-Common, Dominio/IP que será Utilizado: $IPDOMAIN" \
--menu "Seu Endereço Publico: $PUBLIC_IP , Seu endereço Iv4: $IP_V4 , Seu endereço IPv6: $IP_V6" --fb $LINESS $COLLS 10 \
"1" "Iniciar o Servidor manualmente" \
"2" "Para o Servidor manualmente" \
"3" "Adicionar um serviço para iniciar junto com o sistema" \
"4" "Remover o serviço que iniciar o BDS junto com sistema" \
"5" "Instalar o nginx para ter uma pagina para adionar o servidor via navegador" \
"6" "Instalar o servidor samba e ftp para acesso remoto" \
"7" "Atualizando antigas versões para a nova, Isso caso voçê tenha usado os pacotes bds e bds-install" 3>&1 1>&2 2>&3)"
fi
#
case $LE in
1) startserver;;
2) stopserver;;
3) addservice;;
4) removerservice;;
5) installnginx;;
6) smbftp;;
7) oldtonew;;
*) echo "saindo ...";break
esac
echo "OK";sleep 1s
done
echo "--------------------------"
# --------------- Codigo ------------------------------
echo " "
echo "qualquer erro no script me comunique no https://github.com/Sirherobrine23/Minecraft-Bedrock-auto-install/issues"
echo " "
exit 0