Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.90 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # Check syntax
  4. if [ $# -lt 1 ]
  5. then
  6.     echo "Usage: ./changeversion <server version>. Server version must match file name of a server jar minus the '.jar'."
  7.     echo "Example: ./changeversion b1.7.3"
  8.     echo "To see what versions are available, check the contents of the 'versions' folder"
  9.     exit 0
  10. fi
  11.  
  12. # Check server jar exists
  13. echo "\n\n\nStarting changeversion..."
  14. echo "By using this software, you agree to sell your soul to the zucc. No takebacks.\n\n\n"
  15. version=$1
  16. filename="$version.jar"
  17. if [ ! -f "./versions/$filename" ]
  18. then
  19.     echo "No server jar exists for version $1"
  20.     echo "To see what versions are available, check the contents of the 'versions' folder"
  21.     exit 0
  22. fi
  23.  
  24. echo "Stopping Minecraft server..."
  25. # Stop minecraft server if it hasn't yet
  26. service minecraft stop
  27. sleep 3 # wait for it to stop
  28.  
  29. # Create new server directory for specified version if doesn't exist
  30. new_server_dir="./versions/$version"
  31. template_location="./config-templates"
  32. if [ ! -d $new_server_dir ]
  33. then
  34.     echo "No previous directory for $version detected. Creating new directory"
  35.     mkdir $new_server_dir
  36.     cp "./versions/$filename" "$new_server_dir/minecraft_server.jar" # server jar
  37.     cp "$template_location/server.properties" $new_server_dir
  38.     cp "$template_location/eula.txt" $new_server_dir
  39.     cp "$template_location/minecraft_service.sh" $new_server_dir
  40.     cp "$template_location/minecraft_server.sh" $new_server_dir
  41. fi
  42.  
  43. # Move current server to storage
  44. minecraft_directory="/home/minecraft"
  45. version_file="$minecraft_directory/version"
  46. if [ ! -f $version_file ]
  47. then # If version unknown, move to unknown-version directory
  48.     unknown_version_dir="`pwd`/unknown-version"
  49.     echo "Could not detect server version (/home/minecraft/version) file missing."
  50.     echo "Will move files in /home/minecraft to $unknown_version_dir"
  51.  
  52.     if [ -d $unknown_version_dir ]
  53.     then
  54.         rm -r $unknown_version_dir
  55.     fi
  56.     mkdir $unknown_version_dir
  57.     mv $minecraft_directory/* $unknown_version_dir
  58.  
  59. else # Else move files to relevant directory
  60.     old_version=`cat $version_file`
  61.     if [ $old_version = $version ]
  62.     then
  63.         echo "You're already on version $version! Exiting..."
  64.         exit 0
  65.     fi
  66.  
  67.     old_server_dir="./versions/$old_version"
  68.     if [ -d $old_server_dir ]
  69.     then
  70.         rm -r $old_server_dir
  71.     fi
  72.     mkdir $old_server_dir
  73.     mv $minecraft_directory/* $old_server_dir
  74. fi
  75.  
  76. # Move new server to $minecraft_directory
  77. mv $new_server_dir/* $minecraft_directory
  78.  
  79. # Set file ownership in case it hasn't been done yet
  80. chown -R minecraft $minecraft_directory
  81. chgrp -R minecraft $minecraft_directory
  82.  
  83. # Just in case it got deleted, write out the version file so we can re-identify it later on
  84. echo "$version" > $minecraft_directory/version
  85.  
  86. echo "Server switched to version $version. Start the server again with 'service minecraft start'"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement