Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # Check syntax
- if [ $# -lt 1 ]
- then
- echo "Usage: ./changeversion <server version>. Server version must match file name of a server jar minus the '.jar'."
- echo "Example: ./changeversion b1.7.3"
- echo "To see what versions are available, check the contents of the 'versions' folder"
- exit 0
- fi
- # Check server jar exists
- echo "\n\n\nStarting changeversion..."
- echo "By using this software, you agree to sell your soul to the zucc. No takebacks.\n\n\n"
- version=$1
- filename="$version.jar"
- if [ ! -f "./versions/$filename" ]
- then
- echo "No server jar exists for version $1"
- echo "To see what versions are available, check the contents of the 'versions' folder"
- exit 0
- fi
- echo "Stopping Minecraft server..."
- # Stop minecraft server if it hasn't yet
- service minecraft stop
- sleep 3 # wait for it to stop
- # Create new server directory for specified version if doesn't exist
- new_server_dir="./versions/$version"
- template_location="./config-templates"
- if [ ! -d $new_server_dir ]
- then
- echo "No previous directory for $version detected. Creating new directory"
- mkdir $new_server_dir
- cp "./versions/$filename" "$new_server_dir/minecraft_server.jar" # server jar
- cp "$template_location/server.properties" $new_server_dir
- cp "$template_location/eula.txt" $new_server_dir
- cp "$template_location/minecraft_service.sh" $new_server_dir
- cp "$template_location/minecraft_server.sh" $new_server_dir
- fi
- # Move current server to storage
- minecraft_directory="/home/minecraft"
- version_file="$minecraft_directory/version"
- if [ ! -f $version_file ]
- then # If version unknown, move to unknown-version directory
- unknown_version_dir="`pwd`/unknown-version"
- echo "Could not detect server version (/home/minecraft/version) file missing."
- echo "Will move files in /home/minecraft to $unknown_version_dir"
- if [ -d $unknown_version_dir ]
- then
- rm -r $unknown_version_dir
- fi
- mkdir $unknown_version_dir
- mv $minecraft_directory/* $unknown_version_dir
- else # Else move files to relevant directory
- old_version=`cat $version_file`
- if [ $old_version = $version ]
- then
- echo "You're already on version $version! Exiting..."
- exit 0
- fi
- old_server_dir="./versions/$old_version"
- if [ -d $old_server_dir ]
- then
- rm -r $old_server_dir
- fi
- mkdir $old_server_dir
- mv $minecraft_directory/* $old_server_dir
- fi
- # Move new server to $minecraft_directory
- mv $new_server_dir/* $minecraft_directory
- # Set file ownership in case it hasn't been done yet
- chown -R minecraft $minecraft_directory
- chgrp -R minecraft $minecraft_directory
- # Just in case it got deleted, write out the version file so we can re-identify it later on
- echo "$version" > $minecraft_directory/version
- echo "Server switched to version $version. Start the server again with 'service minecraft start'"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement