remove mcjar
This commit is contained in:
parent
ecae444e6b
commit
1d5a5dc1a2
2 changed files with 0 additions and 380 deletions
|
@ -2,10 +2,6 @@
|
|||
|
||||
usefull scripts that i use that i made that do things that i want
|
||||
|
||||
#### mcjar
|
||||
|
||||
gives you the url to a mc jar file with a given version and server type as input
|
||||
|
||||
#### aconv
|
||||
|
||||
converts a directory of any music file to all be one codec and container in the output
|
||||
|
|
376
mcjar
376
mcjar
|
@ -1,376 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
lower() {
|
||||
echo "$1" | tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
|
||||
upper() {
|
||||
echo "$1" | tr '[:lower:]' '[:upper:]'
|
||||
}
|
||||
|
||||
# global
|
||||
MC_TYPE="$(lower "${MC_TYPE:-vanilla}")"
|
||||
MC_VERSION="$(lower "${MC_VERSION:-latest}")"
|
||||
|
||||
# papermc
|
||||
PAPERMC_BUILD="$(lower "${PAPERMC_BUILD:-latest}")"
|
||||
|
||||
# fabric
|
||||
FABRIC_LOADER="$(lower "${FABRIC_LOADER:-latest}")"
|
||||
FABRIC_INSTALLER="$(lower "${FABRIC_INSTALLER:-latest}")"
|
||||
|
||||
# forge
|
||||
FORGE_VERSION="$(lower "${FORGE_VERSION:-recommended}")"
|
||||
|
||||
# other
|
||||
QUIET=1
|
||||
|
||||
# all output
|
||||
ALL=0
|
||||
|
||||
req() {
|
||||
res=$(curl --fail --silent "$1")
|
||||
code=$?
|
||||
|
||||
if [ $code -ne 0 ] || [ "$res" = "" ]; then
|
||||
echo "null";
|
||||
else
|
||||
echo "$res";
|
||||
fi
|
||||
}
|
||||
|
||||
error() {
|
||||
printf '\x1b[31m[ERROR]\t\x1b[0m%s\n' "$*" > /dev/stderr
|
||||
exit 1;
|
||||
}
|
||||
|
||||
log() {
|
||||
if [ "$QUIET" -eq 0 ]; then
|
||||
printf '\x1b[0m[LOG]\t%s\n' "$*" > /dev/stderr
|
||||
fi
|
||||
}
|
||||
|
||||
index_array() {
|
||||
array="$1"
|
||||
key="$2"
|
||||
type="$3"
|
||||
|
||||
if [ "$key" = "latest" ]; then
|
||||
index=$(echo "$array" | jq ". | index( last )");
|
||||
else
|
||||
index=$(echo "$array" | jq ". | index( \"$key\" )");
|
||||
fi
|
||||
|
||||
if [ "$index" = "null" ]; then
|
||||
error "Invalid $type: $key"
|
||||
else
|
||||
echo "$array" | jq -r ".[$index]";
|
||||
fi
|
||||
}
|
||||
|
||||
#https://api.papermc.io/v2/projects/velocity/versions/3.3.0-SNAPSHOT/
|
||||
|
||||
papermc() {
|
||||
api="https://api.papermc.io/v2/projects"
|
||||
|
||||
log "Using papermc api v2"
|
||||
|
||||
get_version() {
|
||||
log "Getting VERSION for '$MC_TYPE'"
|
||||
versions=$(req "$api/$MC_TYPE" | jq -r '.versions')
|
||||
if [ "$versions" = "null" ]; then
|
||||
error "Invalid TYPE: $MC_TYPE (no versions)"
|
||||
fi
|
||||
MC_VERSION=$(index_array "$versions" "$MC_VERSION" "VERSION")
|
||||
log "VERSION: $MC_VERSION"
|
||||
}
|
||||
|
||||
get_build() {
|
||||
log "Getting BUILD for '$MC_TYPE@$MC_VERSION'"
|
||||
builds=$(req "$api/$MC_TYPE/versions/$MC_VERSION" | jq -r ".builds")
|
||||
if [ "$builds" = "null" ]; then
|
||||
error "Invalid VERSION: $MC_TYPE@$MC_TYPE (no builds)"
|
||||
fi
|
||||
PAPERMC_BUILD=$(index_array "$builds" "$PAPERMC_BUILD" "BUILD")
|
||||
log "BUILD: $PAPERMC_BUILD"
|
||||
}
|
||||
|
||||
get_version
|
||||
get_build
|
||||
|
||||
name="$MC_TYPE-$MC_VERSION-$PAPERMC_BUILD.jar"
|
||||
url="$api/$MC_TYPE/versions/$MC_VERSION/builds/$PAPERMC_BUILD/downloads/$name"
|
||||
|
||||
if [ $ALL -eq 1 ]; then
|
||||
echo "JAR_NAME=$name"
|
||||
echo "JAR_URL=$url"
|
||||
echo "MC_TYPE=$MC_TYPE"
|
||||
echo "MC_VERSION=$MC_VERSION"
|
||||
echo "PAPERMC_BUILD=$PAPERMC_BUILD"
|
||||
else
|
||||
echo "$url"
|
||||
fi
|
||||
}
|
||||
|
||||
fabric() {
|
||||
api="https://meta.fabricmc.net/v2/versions"
|
||||
|
||||
log "Using fabric api v2"
|
||||
|
||||
get_fabric_impl() {
|
||||
type="$1"
|
||||
value="$2"
|
||||
res=""
|
||||
if [ "$value" = "latest" ]; then
|
||||
res=$(req "$api/$type" | jq -r 'map(select(.stable == true) | .version) | reverse')
|
||||
else
|
||||
res=$(req "$api/$type" | jq -r 'map(.version) | reverse')
|
||||
fi;
|
||||
echo $res;
|
||||
}
|
||||
|
||||
get_game() {
|
||||
log "Getting VERSION for '$MC_TYPE'"
|
||||
games=$(get_fabric_impl "game" "$MC_VERSION")
|
||||
MC_VERSION=$(index_array "$games" "$MC_VERSION" "VERSION")
|
||||
log "VERSION: $MC_VERSION"
|
||||
}
|
||||
|
||||
get_loader() {
|
||||
log "Getting LOADER for '$MC_TYPE'"
|
||||
loaders=$(get_fabric_impl "loader" "$FABRIC_LOADER")
|
||||
FABRIC_LOADER=$(index_array "$loaders" "$FABRIC_LOADER" "LOADER")
|
||||
log "LOADER: $FABRIC_LOADER"
|
||||
}
|
||||
|
||||
get_installer() {
|
||||
log "Getting INSTALLER for '$MC_TYPE'"
|
||||
installers=$(get_fabric_impl "installer" "$FABRIC_INSTALLER")
|
||||
FABRIC_INSTALLER=$(index_array "$installers" "$FABRIC_INSTALLER" "INSTALLER")
|
||||
log "INSTALLER: $FABRIC_INSTALLER"
|
||||
}
|
||||
|
||||
get_game
|
||||
get_loader
|
||||
get_installer
|
||||
|
||||
url="$api/loader/$MC_VERSION/$FABRIC_LOADER/$FABRIC_INSTALLER/server/jar"
|
||||
|
||||
if [ $ALL -eq 1 ]; then
|
||||
echo "JAR_NAME=fabric-$MC_VERSION-$FABRIC_LOADER-$FABRIC_INSTALLER.jar"
|
||||
echo "JAR_URL=$url"
|
||||
echo "MC_TYPE=$MC_TYPE"
|
||||
echo "MC_VERSION=$MC_VERSION"
|
||||
echo "FABRIC_LOADER=$FABRIC_LOADER"
|
||||
echo "FABRIC_INSTALLER=$FABRIC_INSTALLER"
|
||||
else
|
||||
echo "$url"
|
||||
fi
|
||||
}
|
||||
|
||||
vanilla() {
|
||||
versions=$(req 'https://launchermeta.mojang.com/mc/game/version_manifest.json' | jq '.versions | map({ "id": .id, "type": .type, "url": .url }) | reverse');
|
||||
|
||||
map_type_impl() {
|
||||
type="$1"
|
||||
echo "$versions" | jq -r "map(select(.type == \"$type\"))"
|
||||
}
|
||||
|
||||
url=""
|
||||
|
||||
get_version() {
|
||||
log "Getting VERSION for '$MC_TYPE'"
|
||||
version=""
|
||||
case "$MC_VERSION" in
|
||||
"latest")
|
||||
version=$(map_type_impl "release" | jq -r 'last')
|
||||
;;
|
||||
"snapshot")
|
||||
version=$(map_type_impl "snapshot" | jq -r 'last')
|
||||
;;
|
||||
*)
|
||||
version=$(echo "$versions" | jq ".[] | select(.id == \"$MC_VERSION\")")
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$version" = "null" ] || [ "$version" = "" ]; then
|
||||
error "Invalid VERSION: $MC_VERSION"
|
||||
fi
|
||||
|
||||
MC_VERSION=$(echo "$version" | jq -r '.id')
|
||||
log "VERSION: $MC_VERSION"
|
||||
|
||||
json=$(echo "$version" | jq -r '.url')
|
||||
url=$(req "$json" | jq -r '.downloads.server.url')
|
||||
|
||||
if [ "$url" = "null" ]; then
|
||||
error "Cannot get server jar for VERSION: $MC_VERSION"
|
||||
fi
|
||||
}
|
||||
|
||||
get_version
|
||||
|
||||
if [ $ALL -eq 1 ]; then
|
||||
echo "JAR_NAME=minecraft-$MC_VERSION.jar"
|
||||
echo "JAR_URL=$url"
|
||||
echo "MC_TYPE=$MC_TYPE"
|
||||
echo "MC_VERSION=$MC_VERSION"
|
||||
else
|
||||
echo "$url"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
forge() {
|
||||
versions=$(req "https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json" | jq -r '.promos');
|
||||
|
||||
log "Using forge promotions slim json"
|
||||
|
||||
url=""
|
||||
|
||||
get_forge_url() {
|
||||
url="https://maven.minecraftforge.net/net/minecraftforge/forge/$1/forge-$1-installer.jar"
|
||||
code=0
|
||||
wget -q --spider "$url" || code=$?
|
||||
if [ $code -eq 0 ]; then
|
||||
echo "$url";
|
||||
fi
|
||||
}
|
||||
|
||||
get_version() {
|
||||
log "Getting VERSION for '$MC_TYPE'"
|
||||
if [ "$MC_VERSION" = "latest" ]; then
|
||||
MC_VERSION=$(echo "$versions" | jq -r '. | keys | .[]' | awk -F '-' '{print $1}' | sort -t "." -n -k1,1 -k2,2 -k3,3 | tail -n1)
|
||||
fi
|
||||
log "VERSION: $MC_VERSION"
|
||||
}
|
||||
|
||||
try_forge_version() {
|
||||
ver=$(echo "$versions" | jq -r ".\"$MC_VERSION-$FORGE_VERSION\"")
|
||||
if [ "$ver" = "null" ] && [ "$FORGE_VERSION" != "latest" ]; then
|
||||
FORGE_VERSION=latest
|
||||
try_forge_version
|
||||
else
|
||||
echo "$ver"
|
||||
fi
|
||||
}
|
||||
|
||||
get_forge_version() {
|
||||
log "Getting FORGE VERSION for '$MC_TYPE'"
|
||||
if [ "$FORGE_VERSION" != "latest" ] && [ "$FORGE_VERSION" != "recommended" ]; then
|
||||
return;
|
||||
fi
|
||||
ver=$(try_forge_version)
|
||||
if [ "$ver" = "null" ]; then
|
||||
error "Invalid VERSION: $MC_VERSION-$FORGE_VERSION"
|
||||
fi
|
||||
FORGE_VERSION="$ver"
|
||||
log "FORGE VERSION: $FORGE_VERSION"
|
||||
}
|
||||
|
||||
search_for_url() {
|
||||
log "Searching for forge URL"
|
||||
log "Trying MC_VERSION-FORGE_VERSION"
|
||||
ver=$(get_forge_url "$MC_VERSION-$FORGE_VERSION")
|
||||
if [ "$ver" != "" ]; then url="$ver"; return 0; fi
|
||||
log "Trying MC_VERSION-FORGE_VERSION-MC_VERSION"
|
||||
ver=$(get_forge_url "$MC_VERSION-$FORGE_VERSION-$MC_VERSION")
|
||||
if [ "$ver" != "" ]; then url="$ver"; return 0; fi
|
||||
log "Trying MC_VERSION-FORGE_VERSION-mc172"
|
||||
ver=$(get_forge_url "$MC_VERSION-$FORGE_VERSION-mc172")
|
||||
if [ "$ver" != "" ]; then url="$ver"; return 0; fi
|
||||
error "Invalid VERSION: $MC_VERSION-$FORGE_VERSION"
|
||||
}
|
||||
|
||||
get_version
|
||||
get_forge_version
|
||||
search_for_url
|
||||
|
||||
if [ $ALL -eq 1 ]; then
|
||||
echo "JAR_NAME=forge-$MC_VERSION-$FORGE_VERSION-installer.jar"
|
||||
echo "JAR_URL=$url"
|
||||
echo "MC_TYPE=$MC_TYPE"
|
||||
echo "MC_VERSION=$MC_VERSION"
|
||||
echo "FORGE_VERSION=$FORGE_VERSION"
|
||||
else
|
||||
echo "$url"
|
||||
fi
|
||||
}
|
||||
|
||||
get_url() {
|
||||
log "TYPE: $MC_TYPE"
|
||||
|
||||
case "$MC_TYPE" in
|
||||
"vanilla")
|
||||
vanilla
|
||||
;;
|
||||
"paper" | "waterfall" | "velocity" | "folia")
|
||||
papermc
|
||||
;;
|
||||
"fabric")
|
||||
fabric
|
||||
;;
|
||||
"forge")
|
||||
forge
|
||||
;;
|
||||
*)
|
||||
error "Invalid TYPE: $MC_TYPE"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf "usage: mcjar [options]\n"
|
||||
}
|
||||
|
||||
help() {
|
||||
printf "usage: mcjar [options]\n\n"
|
||||
printf "options:\n"
|
||||
printf "\t-h\tshow this message\n"
|
||||
printf "\t-l\tshow logging (verbose)\n\n"
|
||||
printf "\t-a\toutput all variables\n\n"
|
||||
|
||||
printf "\t-t TYPE\t\tset the mc server type\n"
|
||||
printf "\t [vanilla,fabric,forge,paper,folia,velocity,waterfall]\n\n"
|
||||
printf "\t-v VERSION\tset the mc server version\n"
|
||||
printf "\t [latest,snapshot,<version>]\n\n"
|
||||
|
||||
printf "environment:\n"
|
||||
printf "\tMC_TYPE\t\tsets the mc server type (same as -t TYPE)\n"
|
||||
printf "\tMC_VERSION\tsets the mc server version (same as -v VERSION)\n\n"
|
||||
|
||||
printf "\tPAPERMC_BUILD\tsets the papermc build\n\n"
|
||||
|
||||
printf "\tFABRIC_LOADER\t\tsets the fabric loder version\n"
|
||||
printf "\tFABRIC_INSTALLER\tsets the fabric installer version\n\n"
|
||||
|
||||
printf "\tFORGE_VERSION\tsets the forge loader version\n\n"
|
||||
}
|
||||
|
||||
|
||||
while getopts "hlat:v:" arg > /dev/null; do
|
||||
case $arg in
|
||||
h)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
l)
|
||||
QUIET=0
|
||||
;;
|
||||
a)
|
||||
ALL=1
|
||||
;;
|
||||
t)
|
||||
MC_TYPE=${OPTARG}
|
||||
;;
|
||||
v)
|
||||
MC_VERSION=${OPTARG}
|
||||
;;
|
||||
?)
|
||||
error "unknown option"
|
||||
;;
|
||||
esac;
|
||||
done;
|
||||
|
||||
get_url
|
Loading…
Reference in a new issue