Back to Home
mcinstaller.sh
mcinstaller.sh
Minecraft Installer Support All Version
Minecraft Installer Support All Version
#!/bin/bash
clear
echo "======================================"
echo " MINECRAFT UNIVERSAL INSTALLER"
echo "======================================"
echo ""
if [ "$EUID" -ne 0 ]; then
echo "Run as root!"
exit
fi
SERVER_DIR="/opt/minecraft"
echo "[1] Installing dependencies..."
apt update -y
apt install -y curl wget jq screen unzip ufw openjdk-21-jdk
mkdir -p $SERVER_DIR
cd $SERVER_DIR
echo ""
echo "Select Engine"
echo ""
echo "1) Paper"
echo "2) Purpur"
echo "3) Fabric"
echo "4) Vanilla"
echo "5) Bedrock Dedicated Server"
echo ""
read -p "Choose engine: " engine
echo ""
read -p "Enter version (or type 'latest'): " version
########################################
# PAPER
########################################
if [ "$engine" == "1" ]; then
API="https://api.papermc.io/v2/projects/paper"
if [ "$version" == "latest" ]; then
version=$(curl -s $API | jq -r '.versions[-1]')
fi
build=$(curl -s $API/versions/$version/builds | jq '.builds[-1].build')
wget -O server.jar \
https://api.papermc.io/v2/projects/paper/versions/$version/builds/$build/downloads/paper-$version-$build.jar
fi
########################################
# PURPUR
########################################
if [ "$engine" == "2" ]; then
if [ "$version" == "latest" ]; then
version=$(curl -s https://api.purpurmc.org/v2/purpur | jq -r '.versions[-1]')
fi
wget -O server.jar \
https://api.purpurmc.org/v2/purpur/$version/latest/download
fi
########################################
# FABRIC
########################################
if [ "$engine" == "3" ]; then
if [ "$version" == "latest" ]; then
version=$(curl -s https://meta.fabricmc.net/v2/versions/game | jq -r '.[0].version')
fi
wget https://meta.fabricmc.net/v2/versions/installer -O fabric.json
installer=$(cat fabric.json | jq -r '.[0].url')
wget $installer -O fabric-installer.jar
java -jar fabric-installer.jar server -mcversion $version -downloadMinecraft
mv fabric-server-launch.jar server.jar
fi
########################################
# VANILLA
########################################
if [ "$engine" == "4" ]; then
manifest=https://launchermeta.mojang.com/mc/game/version_manifest.json
if [ "$version" == "latest" ]; then
version=$(curl -s $manifest | jq -r '.latest.release')
fi
url=$(curl -s $manifest | jq -r ".versions[] | select(.id==\"$version\") | .url")
server=$(curl -s $url | jq -r '.downloads.server.url')
wget -O server.jar $server
fi
########################################
# BEDROCK
########################################
if [ "$engine" == "5" ]; then
if [ "$version" == "latest" ]; then
version=$(curl -s https://api.github.com/repos/Mojang/bedrock-samples/releases/latest | jq -r '.tag_name')
fi
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-$version.zip
unzip bedrock-server-$version.zip
fi
########################################
# EULA
########################################
echo "eula=true" > eula.txt
########################################
# GEYSER
########################################
if [ "$engine" != "5" ]; then
read -p "Install Geyser Bedrock support? (y/n): " geyser
if [[ "$geyser" == "y" ]]; then
mkdir -p plugins
cd plugins
wget -O Geyser-Spigot.jar \
https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
wget -O floodgate.jar \
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
cd ..
fi
fi
########################################
# FIREWALL
########################################
ufw allow 25565/tcp
ufw allow 19132/udp
ufw --force enable
########################################
# START SERVER
########################################
if [ "$engine" == "5" ]; then
screen -dmS mc ./bedrock_server
else
screen -dmS mc java -Xms1G -Xmx2G -jar server.jar nogui
fi
echo ""
echo "======================================"
echo "INSTALL COMPLETE"
echo "======================================"
echo ""
echo "Server folder : $SERVER_DIR"
echo ""
echo "Java connect : PORT 25565"
echo "Bedrock : PORT 19132"
echo ""
echo "Console:"
echo "screen -r mc"
echo ""