diff --git a/.msman/version.sh b/.msman/version.sh index acedf39..4d6c91d 100644 --- a/.msman/version.sh +++ b/.msman/version.sh @@ -1,3 +1,3 @@ #!/bin/bash -EXTRA_SCRIPTS_VERSION="v1.0.0" +EXTRA_SCRIPTS_VERSION="v1.1.0" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f3f97b0 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +all: + cp -r .msman diff --git a/msman/detect_server.sh b/msman/detect_server.sh deleted file mode 100644 index 7b6cac5..0000000 --- a/msman/detect_server.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -set -e -# Detect the server type -function get_existing_server { - if ls paper-*.jar 1> /dev/null 2>&1; then - existing_server_type="paper" - get_existing_paper - # TODO: Add support for other server types - # elif ls fabric-*.jar 1> /dev/null 2>&1; then - # existing_server_type="fabric" - # elif ls spigot-*.jar 1> /dev/null 2>&1; then - # existing_server_type="spigot" - # elif ls craftbukkit-*.jar 1> /dev/null 2>&1; then - # existing_server_type="craftbukkit" - # elif ls vanilla-*.jar 1> /dev/null 2>&1; then - # existing_server_type="vanilla" - else - if ! ls *.jar 1> /dev/null 2>&1; then - echo "No server file found." - echo - echo - existing_server_type=false - server_file=false - else - >&2 echo "$(ls *.jar) file was found." - >&2 echo "Unknown server type." - exit 10 - # TODO: Ask the user if they want to continue - fi - fi -} - -# Get existing version and build of paper -function get_existing_paper { - # Get the current server file name - server_file=$(basename ./paper-*.jar) - - # Extract the version and build number using cut command - current_version=$(echo "$server_file" | cut -d'-' -f2) - current_build=$(echo "$server_file" | cut -d'-' -f3) - # Remove the rest of the file names - current_version="${current_version%-*}" - current_build="${current_build%.jar}" - - echo "Current server file: $server_file" - echo " - Version $current_version" - echo " - Build $current_build" - echo - echo -} - diff --git a/msman/java.sh b/msman/java.sh deleted file mode 100644 index 444c73b..0000000 --- a/msman/java.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/bash -set -e -# Setup Java -function setup_java { - # Get the required Java version for the Minecraft version - get_required_java - - # Check if java was downloaded by the script - check_script_java - - # Check if java is installed - if [[ $java_version == false ]]; then - check_java_exec - if [[ $java_version != false ]]; then - echo "System Java $java_version will be used." - fi - fi - - if [[ $java_version == false ]]; then - >&2 echo "Java $required_java is not installed." - >&2 echo "Java $required_java is required to run Minecraft $version." - # Ask the user if they want to download Adoptium JRE - ask_jre - fi - echo - echo -} - -# Ask the user if they want to download Adoptium JRE -function ask_jre { - echo "This script can download the correct Adoptium JRE into '$(echo $HOME)/.adoptium_java' for you." - echo "You have 15 seconds to confirm or the script will exit." - read -t 12 -p "Do you want to download Adoptium JRE? (y/N)" download_java - - if [[ $download_java == "y" ]] || [[ $download_java == "Y" ]]; then - get_os_arch - download_jre - check_script_java - if [[ $java_version == false ]]; then - >&2 echo "Java $required_java was not downloaded correctly." - >&2 echo "Please install Java $required_java manually." - exit 4 - fi - else - >&2 echo "Please install Java $required_java and run this script again." - exit 12 - fi -} - -# Check if java was downloaded by the script -function check_script_java { - if [[ -d "$(echo $HOME)/.adoptium_java" ]]; then - if [[ $required_java == "8" ]]; then - if [[ -d "$(echo $HOME)/.adoptium_java/jre8" ]]; then - java_version=8 - if [[ -f "$(echo $HOME).adoptium_java/jre8/bin/java" ]]; then - PATH="$(echo $HOME)/.adoptium_java/jre8/bin:$PATH" - fi - fi - elif [[ $required_java == "11" ]]; then - if [[ -d "$(echo $HOME)/.adoptium_java/jre11" ]]; then - java_version=11 - PATH="$(echo $HOME)/.adoptium_java/jre11/bin:$PATH" - fi - elif [[ $required_java == "16" ]]; then - if [[ -d "$(echo $HOME)/.adoptium_java/jre16" ]]; then - java_version=16 - PATH="$(echo $HOME)/.adoptium_java/jre16/bin:$PATH" - fi - elif [[ $required_java == "17" ]]; then - if [[ -d "$(echo $HOME)/.adoptium_java/jre17" ]]; then - java_version=17 - PATH="$(echo $HOME)/.adoptium_java/jre17/bin:$PATH" - fi - fi - check_java_exec - if [[ $java_version == $required_java ]]; then - echo "Java $java_version detected in '$(echo $HOME)/.adoptium_java/jre$(echo $java_version)/bin/java.' will be used." - else - java_version=false - fi - else - java_version=false - fi -} - -# Get the system Java version -function check_java_exec { -# Check if java is installed - if ! command -v java &> /dev/null - then - java_version=false - fi - - # If java is installed, get the version (the java_version won't be 0) - if [[ $java_version != false ]]; then - # Get the current Java version and extract the build number - java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F '.' '{print $1}') - fi -} - -# Get the required Java version for the Minecraft version -# For version 1.8 to 1.11 use java 8 -# For version 1.12 to 1.16.4 use java 11 -# For version 1.16.5 use java 16 -# For version 1.17.1 to 1.18.1+ use java 17 -function get_required_java { - # Extract the middle number of the Minecraft version - minecraft_middle=$(echo "$version" | awk -F '.' '{print $2}') - - - # Get the java version for the defined server version - if (( 8 <= minecraft_middle && minecraft_middle <= 11 )); then - if ! [[ $java_version -eq 8 ]]; then - required_java=8 - fi - elif (( 12 <= minecraft_middle && minecraft_middle <= 16 )); then - if ! [[ $java_version -eq 11 ]]; then - required_java=11 - fi - elif (( minecraft_middle == 17 )); then - if ! [[ $java_version -eq 16 ]]; then - required_java=16 - fi - elif (( 18 <= minecraft_middle )); then - if ! [[ $java_version -eq 17 ]]; then - required_java=17 - fi - else - >&2 echo "Unsupported Minecraft version $select_version." - fi -} - -# Check host architecture -function get_os_arch { - if [[ $(uname -m) == "x86_64" ]]; then - arch="x64" - elif [[ $(uname -m) == "aarch64" ]]; then - arch="aarch64" - else - >&2 echo "Unsupported architecture $(uname -m)." - >&2 echo "Please install Java $required_java manually." - exit 3 - fi -} - -# Download openjdk jre -function download_jre { - # Check if .java folder exists - if ! [[ -d "$(echo $HOME)/.adoptium_java" ]]; then - echo "Creating $(echo $HOME)/.adoptium_java folder" - mkdir "$(echo $HOME)/.adoptium_java" - fi - # Download the correct version of Java - if [[ $required_java == "8" ]]; then - echo "Downloading Adoptium JRE 8" - curl -L -o java.tar.gz "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jre_$(echo $arch)_linux_hotspot_8u362b09.tar.gz" - echo "Extracting Java 8" - tar -xzf java.tar.gz - echo "Moving Java 8 to $(echo $HOME)/.adoptium_java/jre8" - mv jdk8u362-b09-jre "$(echo $HOME)/.adoptium_java/jre8" - echo "Removing temporary files" - rm java.tar.gz - elif [[ $required_java == "11" ]]; then - echo "Downloading Adoptium JRE 11" - curl -L -o java.tar.gz "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.18%2B10/OpenJDK11U-jre_$(echo $arch)_linux_hotspot_11.0.18_10.tar.gz" - echo "Extracting Java 11" - tar -xzf java.tar.gz - echo "Moving Java 11 to $(echo $HOME)/.adoptium_java/jre11" - mv jdk-11.0.18+10-jre "$(echo $HOME)/.adoptium_java/jre11" - echo "Removing temporary files" - rm java.tar.gz - elif [[ $required_java == "16" ]]; then - echo "Downloading Java 16" - curl -L -o java.tar.gz "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.18%2B10/OpenJDK11U-jre_$(echo $arch)_linux_hotspot_16.0.2_7.tar.gz" - echo "Extracting Java 16" - tar -xzf java.tar.gz - echo "Moving Java 16 to $(echo $HOME)/.adoptium_java/jre16" - mv jdk-16.0.2+7-jre "$(echo $HOME)/.adoptium_java/jre16" - echo "Removing temporary files" - rm java.tar.gz - elif [[ $required_java == "17" ]]; then - echo "Downloading Java 17" - curl -L -o java.tar.gz "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jre_$(echo $arch)_linux_hotspot_17.0.6_10.tar.gz" - echo "Extracting Java 17" - tar -xzf java.tar.gz - echo "Moving Java 17 to $(echo $HOME)/.adoptium_java/jre17" - mv jdk-17.0.6+10-jre "$(echo $HOME)/.adoptium_java/jre17" - echo "Removing temporary files" - rm java.tar.gz - fi -} diff --git a/msman/paper.sh b/msman/paper.sh deleted file mode 100644 index 3ff6e47..0000000 --- a/msman/paper.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/bash -set -e -# API URL -api_url="https://api.papermc.io/v2/projects/paper/versions/$version/builds" - -# Check if the version and build are valid -function check_version_valid { - if curl -s "$api_url" | grep -q '{"error":"Version not found."}'; then - >&2 echo "Error: Invalid version selected: $version" - exit 2 - else - # Check if selected build exists - if [ ! -z "$build" ]; then - # WARNING: Check if the shortened versin works - # if curl -Is "https://api.papermc.io/v2/projects/paper/versions/$version/builds/$build/downloads/paper-$version-$build.jar" | grep "HTTP/2 404" >/dev/null; then - if curl -Is "$api_url/$build/downloads/paper-$version-$build.jar" | grep "HTTP/2 404" >/dev/null; then - >&2 echo "Error: Invalid build selected: $build" - exit 2 - fi - fi - fi -} - -# Download server set by $version and $download_build -function download_server { - # Download the server - echo "Downloading PaperMC server..." - echo " - Version $version" - echo " - Build $download_build" - curl "https://api.papermc.io/v2/projects/paper/versions/$version/builds/$download_build/downloads/paper-$version-$download_build.jar" -o "./paper-$version-$download_build.jar" - echo "Download complete." -} - -# Check if up to date -function check_updates { - if [[ $server_file == false ]]; then - download_build=$latest_build - update_version=true - update_build=true - fi - - # Check if $build is empty - if [[ -z $build ]]; then - # Check if the current version is the same as the one selected - if [[ $current_version == $version ]]; then - # Check if the current build is the same as the one selected - if [[ $current_build == $latest_build ]]; then - echo "Server is up to date." - else - echo "Server is not up to date." - download_build=$latest_build - update_build=true - fi - else - # Check if $server_file is false - if [[ $server_file != false ]]; then - ask_version_differs - echo "Server is not up to date." - download_build=$latest_build - update_version=true - fi - fi - else - # Check if the current version is the same as the one selected - if [[ $current_version == $version ]]; then - # Check if the current build is the same as the one selected - if [[ $current_build == $build ]]; then - echo "Server is up to date." - else - echo "Server is not up to date." - download_build=$build - update_build=true - fi - else - # Check if $server_file is false - if [[ $server_file != false ]]; then - ask_version_differs - echo "Server is not up to date." - download_build=$build - update_version=true - fi - fi - fi -} - -# Get the latest build number -function get_latest_build { - # Get the latest build number - latest_build=$(curl -s $api_url | jq '.builds[-1].build') -} - -# Check for updates -function check_and_update { - if [[ $server_file == false ]]; then - download_build=$latest_build - update_version=true - update_build=true - else - echo Checking for updates... - fi - - # Get the latest build number - get_latest_build - - # Check if the current version is up to date - check_updates - - # Check if $build_update is true or $version_update is true - if [[ $update_build == true ]] || [[ $update_version == true ]]; then - if [[ $server_file != false ]]; then - old_server_file=$server_file - server_file="paper-$version-$download_build.jar" - download_server - # Delete the old server file - delete_old_server - else - server_file="paper-$version-$download_build.jar" - download_server - fi - fi - echo - echo -} - diff --git a/msman/version.sh b/msman/version.sh deleted file mode 100644 index 4d6c91d..0000000 --- a/msman/version.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -EXTRA_SCRIPTS_VERSION="v1.1.0"