slitaz-dev-tools annotate tazcraft/tazcraft @ rev 290

tazcarft: small fixes and improvments
author Christophe Lincoln <pankso@slitaz.org>
date Sun Mar 19 03:22:26 2017 +0100 (2017-03-19)
parents 51a2b0582a55
children 29b50f284008
rev   line source
pankso@287 1 #!/bin/sh
pankso@287 2 #
pankso@287 3 # tazcraft - Your Minecraft server tiny configuration tool
pankso@287 4 #
pankso@287 5 # Authors: Kayam Lincoln-Vazquez, Christophe Lincoln
pankso@287 6 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License
pankso@287 7 #
pankso@287 8 . /lib/libtaz.sh
pankso@287 9
pankso@287 10 version="1.11.2"
pankso@287 11 home="/home/minecraft"
pankso@287 12 server="$home/server"
pankso@287 13 config="$server/server.properties"
pankso@287 14
pankso@287 15 server_jar="minecraft_server.${version}.jar"
pankso@287 16 client_jar="Minecraft.jar"
pankso@287 17 client_path="$HOME/.local/share/minecraft/$client_jar"
pankso@287 18 spigot_jar="spigot-${version}.jar"
pankso@287 19
pankso@287 20 java_version="8u121"
pankso@287 21 java_id="218821"
pankso@287 22 java_md5="e9e7ea248e2c4826b92b3f075a80e441"
pankso@287 23 java_tarball="jre-$java_version-linux-i586.tar.gz"
pankso@287 24
pankso@287 25 # Prefer Sun Java JRE but let user use icedtea6-jre
pankso@287 26 java="$home/jre/bin/java"
pankso@287 27 if [ ! -x "$java" ]; then
pankso@287 28 java="/usr/bin/java"
pankso@287 29 fi
pankso@287 30
pankso@287 31 #
pankso@287 32 # Functions
pankso@287 33 #
pankso@287 34 help() {
pankso@287 35 cat << EOT
pankso@287 36
pankso@287 37 $(colorize 032 Usage:) $(basename $0) command
pankso@287 38
pankso@287 39 $(colorize 032 Commands:)
pankso@287 40 -d downlaod Download the Minecraft server
pankso@287 41 -s start Start your Minecraft server
pankso@287 42 -p play Launch the Minecraft client
pankso@287 43 -j java Install Sun Java Runtime Environment
pankso@287 44 -i info Display server and java informations
pankso@287 45
pankso@287 46 $(colorize 032 Options:)
pankso@287 47 --gui Run the server with a graphical user interface
pankso@287 48
pankso@287 49 EOT
pankso@287 50 }
pankso@287 51
pankso@287 52 # Check if Java is installed
pankso@287 53 check_java() {
pankso@287 54 if [ ! -x "$java" ]; then
pankso@287 55 colorize 031 "Can't fin Java Runtime Environment (JRE)"; return 1
pankso@287 56 fi
pankso@287 57 }
pankso@287 58
pankso@290 59 # Change default motd
pankso@290 60 check_motd() {
pankso@290 61 motd=$(grep ^motd= ${config} | sed s'/motd=//')
pankso@290 62 if [ "$motd" == "A Minecraft Server" ]; then
pankso@290 63 sed -i s'/motd=.*/motd=\u00A72A Tazcraft Server/' ${config}
pankso@290 64 fi
pankso@290 65 }
pankso@290 66
pankso@287 67 # Get a value in
pankso@287 68 get_value() {
pankso@287 69 val=$(grep ^${1}= ${config} | cut -d "=" -f 2)
pankso@287 70 echo -n "$1"; indent 15 ": $val"
pankso@287 71 }
pankso@287 72
pankso@287 73 #
pankso@287 74 # Commands
pankso@287 75 #
pankso@287 76 case "$1" in
pankso@287 77
pankso@287 78 -d|downlaod)
pankso@287 79 if [ ! -f "$server/$jar" ]; then
pankso@287 80 echo "Downloading Minecraft..."
pankso@287 81 mkdir -p ${server}
pankso@287 82 wget --no-check-certificate \
pankso@287 83 https://s3.amazonaws.com/Minecraft.Download/versions/${version}/minecraft_server.${version}.jar \
pankso@287 84 -O ${server}/minecraft_server.${version}.jar
pankso@287 85 else
pankso@287 86 colorize 032 "Minecraft is already downladed :-)"
pankso@287 87 fi ;;
pankso@287 88
pankso@287 89 -s|start)
pankso@287 90 check_java || exit 1
pankso@290 91 check_motd
pankso@287 92 colorize 032 "Starting Minecraft server..."
pankso@287 93 [ ! "$gui" ] && opts="nogui"
pankso@287 94 cd ${server}
pankso@287 95 ${java} -Xmx1024M -Xms1024M -jar ${server_jar} ${opts} ;;
pankso@287 96
pankso@287 97 -p|play)
pankso@287 98 if [ ! -f "$client_path" ]; then
pankso@287 99 dest_dir="$(dirname $client_path)"
pankso@287 100 mkdir -p ${dest_dir}
pankso@287 101 xterm -e "wget \
pankso@287 102 http://s3.amazonaws.com/Minecraft.Download/launcher/${client_jar} \
pankso@287 103 -O $client_path"
pankso@287 104 fi
pankso@287 105 ${java} -jar ${client_path} & ;;
pankso@287 106
pankso@287 107 -j|java)
pankso@287 108 if [ ! -x "$home/jre/bin/java" ]; then
pankso@287 109 echo "Installing Java Runtime Environment ($java_version)..."
pankso@287 110
pankso@287 111 # Already downloaded
pankso@287 112 if [ ! -f "$home/$java_tarball" ]; then
pankso@287 113 wget \
pankso@287 114 http://javadl.oracle.com/webapps/download/AutoDL?BundleId=${java_id}_${java_md5} \
pankso@287 115 -O ${home}/${java_tarball}
pankso@287 116 fi
pankso@287 117
pankso@287 118 echo "Extracting: ${java_tarball}..."
pankso@287 119 tar xzf ${home}/${java_tarball} -C ${home} || exit 1
pankso@287 120 rm -rf jre 2>/dev/null && mv ${home}/jre*_*/ ${home}/jre
pankso@287 121
pankso@287 122 else
pankso@287 123 colorize 032 "Java Runtime Environment is installed"
pankso@287 124 ${java} -version
pankso@287 125 fi ;;
pankso@287 126
pankso@287 127 -i|info)
pankso@287 128 newline
pankso@287 129 colorize 032 "Minecraft Server"
pankso@287 130 echo "Version : $version"
pankso@287 131 echo "Home : $home"
pankso@290 132 newline
pankso@287 133
pankso@287 134 colorize 032 "Server properties"
pankso@290 135 for var in gamemode server-port level-name difficulty max-players; do
pankso@287 136 get_value ${var}
pankso@287 137 done
pankso@290 138 newline
pankso@287 139
pankso@287 140 if check_java; then
pankso@287 141 colorize 032 "Java Runtime Environment"
pankso@290 142 echo "Path: $java"
pankso@290 143 ${java} -version #2>&1 | grep "version"
pankso@287 144 fi
pankso@287 145 newline ;;
pankso@287 146
pankso@287 147 *) help ;;
pankso@287 148 esac
pankso@287 149 exit 0