LiamBogur

Paper Server Manager [Auto-updating, auto-restarting] (BASH)

Aug 10th, 2020 (edited)
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.88 KB | None | 0 0
  1. #!/bin/bash
  2. # ---  CONFIG  ---
  3.  
  4. Version=1.16.4
  5. AutoUpdate=TRUE
  6. ListVersions=FALSE
  7. AutoRestart=TRUE
  8. MaxRam=4096M
  9. MinRam=4096M
  10. JavaExe="java"
  11. StartDir="/home/user/minecraft-server/"
  12. ExtraArgs="nogui"
  13.  
  14. # NOTE: If you do not have cURL installed, set AutoUpdate to true.
  15. #       You can check if you have it installed by opening terminal
  16. #       and typing curl and pressing enter.
  17.  
  18.  
  19.  
  20. # ---  DO NOT EDIT BELOW UNLESS YOU KNOW WHAT YOU ARE DOING!  ---
  21.  
  22. function FINDFILE {
  23.   FILE=`ls | grep -i "^paper.*jar$"`
  24. }
  25.  
  26. pushd $StartDir >/dev/null
  27.  
  28. PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
  29. echo -e '\033]2;'Paper Server Manager'\007'
  30. if [[ `echo "$ListVersions" | awk '{print tolower($0)}'` == "true" ]]; then
  31.   Versions=`curl -s https://papermc.io/api/v1/paper`
  32.   echo -e "[BASH] Supported Versions: ${Versions:31:-2}\n[BASH] Press any key to exit."
  33.   read -n 1 -s
  34.   exit 0
  35. fi
  36.  
  37. if [[ `echo "$AutoUpdate" | awk '{print tolower($0)}'` == "true" ]]; then
  38.   echo "[BASH] Checking for updates..."
  39.   BUILD=`curl -s https://papermc.io/api/v2/projects/paper/versions/$Version | cut -d ']' -f '1' | rev | cut -d ',' -f '1' | rev`
  40.   if [ -f "Paper-$Version-$BUILD.jar" ]; then
  41.     echo "[BASH] Paper up to date!"
  42.     FILE=Paper-$Version-$BUILD.jar
  43.   else
  44.     FINDFILE
  45.     if [[ $FILE != "" ]]; then rm $FILE; fi
  46.     echo "[BASH] Downloading update."
  47.     curl https://papermc.io/api/v2/projects/paper/versions/$Version/builds/$BUILD/downloads/paper-$Version-$BUILD.jar -o Paper-$Version-$BUILD.jar
  48.     FILE=Paper-$Version-$BUILD.jar
  49.   fi
  50. else
  51.   FINDFILE
  52. fi
  53.  
  54. while true; do
  55.   echo -e "[BASH] Starting server...\n"
  56.   "$JavaExe" -Xmx$MaxRam -Xms$MinRam -jar $FILE $ExtraArgs
  57.   if [[ `echo "$AutoRestart" | awk '{print tolower($0)}'` == "true" ]]; then
  58.     echo "[BASH] CTRL+C to exit (Auto-restarting in 5 seconds)."
  59.     sleep 5
  60.   else
  61.     break
  62.   fi
  63. done
  64.  
  65. popd >/dev/null
Advertisement
Add Comment
Please, Sign In to add comment