minecraft.sh 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #!/bin/bash
  2. recover_backup=YES
  3. backup_file="/Backup/minecraft.tar.xz"
  4. function print_centered {
  5. [[ $# == 0 ]] && return 1
  6. declare -i TERM_COLS="$(tput cols)"
  7. declare -i str_len="${#1}"
  8. [[ $str_len -ge $TERM_COLS ]] && {
  9. echo "$1";
  10. return 0;
  11. }
  12. declare -i filler_len="$(( (TERM_COLS - str_len) / 2 ))"
  13. [[ $# -ge 2 ]] && ch="${2:0:1}" || ch=" "
  14. filler=""
  15. for (( i = 0; i < filler_len; i++ )); do
  16. filler="${filler}${ch}"
  17. done
  18. printf "%s%s%s" "$filler" "$1" "$filler"
  19. [[ $(( (TERM_COLS - str_len) % 2 )) -ne 0 ]] && printf "%s" "${ch}"
  20. printf "\n"
  21. return 0
  22. }
  23. print_centered "$(tput setaf 10)"
  24. print_centered " ⠀⠀⡰⠉⠉⣷⡄⣀⣎⠉⢹⡎⠉⢉⡞⠉⠉⣧⡎⠉⠉⡞⠉⠉⠉⠉⠉⣿⠉⠉⠉⠉⠉⢹⡏⠋⠉⠉⠉⠙⡏⠉⣉⠉⣉⠉⢿⠉⠉⠉⢉⠉⢱⡏⠉⠉⠉⢉⠉⡄"
  25. print_centered "⠀⢀⠃⠀⠀⠘⠛⠁⠀⠀⣼⠀⠀⣸⠃⠀⠀⠘⠃⠀⢰⡇⠀⠀⠛⠛⠛⣿⠀⠀⢸⣿⣿⣿⡇⠀⠈⠃⠀⣠⣿⠀⠉⣶⣍⠀⢸⡆⠀⠘⠛⠛⠛⣿⣿⡆⠀⠈⡟⠁"
  26. print_centered "⠀⡜⣀⢀⣶⣀⣰⠆⠀⢀⡏⠀⠀⣿⠀⠀⣸⣄⠤⠄⢸⠃⠀⢰⣶⣶⣶⣿⠀⠀⢸⣉⣉⣉⡇⡀⠀⣶⠀⠀⢹⠀⠀⢀⡀⢀⠀⣇⠀⠀⢶⣶⣶⢾⣿⣿⡀⠀⢱⠀"
  27. print_centered "⢰⠀⠀⢸⣿⣦⠈⠀⠀⢼⠁⠀⢰⡇⠀⠀⣿⣿⠀⠀⢼⠀⡄⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⢸⡇⠂⠀⣿⠀⠀⢸⡆⠀⢘⡧⠀⠀⣿⠀⠀⢸⠛⠃⠘⣿⣿⡇⠀⠀⡆"
  28. print_centered "⠀⠑⢤⣀⣙⡿⠉⠱⣄⣠⣷⣄⣀⣹⣄⣀⣘⡏⢆⣀⣘⣧⣀⣀⣀⣀⣀⣿⣀⣀⣀⣀⣀⣸⣇⣀⣰⣏⣀⣠⣿⣀⣀⣾⣁⣀⣴⣋⣀⡠⠃⠀⠀⠀⢿⣋⣀⡤⠋⠀"
  29. print_centered "$(tput setaf 7)"
  30. print_centered "Minecraft Ubuntu Server Builder/install v2.0"
  31. print_centered "$(tput setaf 7)"
  32. sleep 2
  33. echo -e "$(tput setaf 10)Installation java:$(tput setaf 7)"
  34. if ! [ -x "$(command -v java)" ]
  35. then
  36. sudo apt-get update
  37. sudo apt-get install curl wget git -y
  38. if ! [ -f openjdk-18_linux-x64_bin.tar.gz ]
  39. then
  40. curl -O https://download.java.net/java/GA/jdk18/43f95e8614114aeaa8e8a5fcf20a682d/36/GPL/openjdk-18_linux-x64_bin.tar.gz
  41. fi
  42. cat <<'EOF'>> openjdk-18_linux-x64_bin.tar.gz.md5
  43. f3fc42bd35c3f5e9aff967c9862a153a openjdk-18_linux-x64_bin.tar.gz
  44. EOF
  45. if md5sum -c openjdk-18_linux-x64_bin.tar.gz.md5
  46. then
  47. tar xf openjdk-18_linux-x64_bin.tar.gz
  48. rm openjdk-18_linux-x64_bin.tar.gz
  49. rm openjdk-18_linux-x64_bin.tar.gz.md5
  50. else
  51. echo "erreur"
  52. fi
  53. if [ -d /opt/jdk-18 ]
  54. then
  55. sudo rm -r /opt/jdk-18/
  56. fi
  57. sudo mv jdk-18 /opt/
  58. sudo rm openjdk-18_linux-x64_bin.tar.gz
  59. if [ -f /etc/profile.d/jdk18.sh ]
  60. then
  61. sudo rm /etc/profile.d/jdk18.sh
  62. fi
  63. sudo tee /etc/profile.d/jdk18.sh <<EOF
  64. export JAVA_HOME=/opt/jdk-18
  65. export PATH=\$PATH:\$JAVA_HOME/bin
  66. EOF
  67. source /etc/profile.d/jdk18.sh
  68. fi
  69. version=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
  70. if [ $version -ge 18 ]
  71. then
  72. echo -e "$(tput setaf 7)Java version $version =>> OK$(tput setaf 7)"
  73. else
  74. echo "error !"
  75. exit 1
  76. fi
  77. echo -e "\n$(tput setaf 10)Download/install mcrcon:$(tput setaf 7)"
  78. cd /home/wareck/
  79. git clone https://github.com/Tiiffi/mcrcon.git
  80. cd /home/wareck/mcrcon
  81. make
  82. sudo make install
  83. cd ..
  84. rm -r -f /home/wareck/mcrcon
  85. echo -e "$(tput setaf 10)Download Minecraft server structure:$(tput setaf 7)"
  86. cd /home/wareck/
  87. wget -c http://folivier.homelinux.org/cube/pack/minecraft.tar.xz
  88. tar xfJ minecraft.tar.xz
  89. rm minecraft.tar.xz
  90. cd minecraft
  91. rsync --append --progress --recursive * /home/wareck/minecraft/
  92. echo -e "\n$(tput setaf 10)Download BuildTools:$(tput setaf 7)"
  93. if ! [ -d build ]; then mkdir build ;fi
  94. cd build
  95. wget -c https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
  96. echo -e "\n$(tput setaf 10)Building Spigot:$(tput setaf 7)"
  97. java -jar BuildTools.jar
  98. cp spigot* /home/wareck/minecraft/
  99. echo -e "\n$(tput setaf 10)minecraft.service file build/install:$(tput setaf 7)"
  100. if [ -f minecraft.service ];then rm minecraft.service;fi
  101. version=`ls -a /home/wareck/minecraft/spigot*.jar | sed "s/\/home\/wareck\/minecraft\///g"`
  102. short_v=`echo $version | sed "s/spigot-//g" | sed "s/.jar//g"`
  103. echo "Version builed : $version"
  104. cat <<'EOF'>> minecraft.service
  105. #!/bin/sh -e
  106. ### BEGIN INIT INFO
  107. # Provides: minecraft
  108. # Required-Start: networking
  109. # Default-Start: 3 4 5
  110. # Default-Stop: 0 6
  111. ### END INIT INFO
  112. cd /home/wareck/minecraft/
  113. su wareck -c "screen -dmS minecraft /opt/jdk-18/bin/java -jar -Xmx1024M -Xms1024M XXXX nogui"
  114. exit 0
  115. EOF
  116. sed -i "s/XXXX/$version/g" minecraft.service
  117. sed -i "s/XXXX/$version/g" /home/wareck/minecraft/start.sh
  118. sed -i "s/XXXX/$short_v/g" /home/wareck/minecraft/server.properties
  119. more minecraft.service
  120. chmod +x minecraft.service
  121. sudo cp minecraft.service /etc/init.d/
  122. sudo sudo update-rc.d minecraft.service defaults
  123. if [ $recover_backup = "YES" ]
  124. then
  125. echo -e "\n$(tput setaf 10)Restore Backup:$(tput setaf 7)"
  126. mkdir /home/wareck/tempo
  127. cd /home/wareck/tempo
  128. pixz -x < $backup_file | tar xf - --checkpoint=.200
  129. cd /home/wareck/tempo/minecraft
  130. cp -r /home/wareck/tempo/minecraft/world /home/wareck/minecraft/
  131. cp -r /home/wareck/tempo/minecraft/world_nether /home/wareck/minecraft/
  132. cp -r /home/wareck/tempo/minecraft/world_the_end /home/wareck/minecraft/
  133. cd /home/wareck
  134. rm -r -f /home/wareck/tempo
  135. fi
  136. echo -e "\nInstall Done.\n"