tazcraft annotate tazcraft @ rev 9

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Feb 27 17:55:03 2019 +0100 (2019-02-27)
parents e2ad8436c2dd
children
rev   line source
pankso@3 1 #!/bin/sh
pankso@3 2 #
pankso@3 3 # tazcraft - Minecraft server config & admin tool for SliTaz
pankso@3 4 #
pankso@3 5 # Authors: Kayam Lincoln-Vazquez, Christophe Lincoln
pankso@3 6 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License
pankso@3 7 #
pankso@5 8 # TODO: add spigot support, rcon handler ?, properties settings
pankso@3 9 #
pankso@3 10 . /lib/libtaz.sh
pankso@3 11
pankso@3 12 version="1.11.2"
pankso@3 13 home="/home/minecraft"
pankso@3 14 server="$home/server"
pankso@3 15 config="$server/server.properties"
pankso@5 16 ops="$server/ops.json"
pankso@5 17 whitelist="${server}/whitelist.json"
pankso@3 18
pankso@3 19 server_jar="minecraft_server.${version}.jar"
pankso@3 20 client_jar="Minecraft.jar"
pankso@3 21 client_path="$HOME/.local/share/minecraft/$client_jar"
pankso@3 22
pankso@3 23 spigot_jar="spigot-${version}.jar"
pankso@3 24
pankso@5 25 # Java settings
pankso@3 26 java_version="8u121"
pankso@3 27 java_id="218821"
pankso@3 28 java_md5="e9e7ea248e2c4826b92b3f075a80e441"
pankso@3 29 java_tarball="jre-$java_version-linux-i586.tar.gz"
pankso@3 30
pankso@3 31 # Prefer Sun Java JRE but support system wide icedtea6-jre if installed
pankso@3 32 java="$home/jre/bin/java"
pankso@3 33 if [ ! -x "$java" ]; then
pankso@3 34 java="/usr/bin/java"
pankso@3 35 fi
pankso@3 36
pankso@3 37 #
pankso@3 38 # Functions
pankso@3 39 #
pankso@3 40 help() {
pankso@3 41 cat << EOT
pankso@3 42
pankso@5 43 $(colorize 032 Usage:) $(basename $0) [command|key] [value]
pankso@3 44
pankso@3 45 $(colorize 032 Commands:)
pankso@5 46
pankso@3 47 -d downlaod Download the Minecraft server
pankso@3 48 -s start Start your Minecraft server
pankso@3 49 -p play Launch the Minecraft client
pankso@3 50 -j java Install Sun Java Runtime Environment
pankso@5 51 -k key Get or set a key value in server.properties
pankso@3 52 -i info Display server and java information
pankso@5 53 -m motd Raw display of the Message Of The Day
pankso@5 54 -o ops Show server operators name
pankso@5 55 -w with-list Show allowed user from white list
pankso@3 56
pankso@3 57 $(colorize 032 Options:)
pankso@5 58
pankso@3 59 --gui Run the server with a graphical user interface
pankso@5 60 --mem Set the max memory usage for Minecraft server
pankso@3 61
pankso@3 62 EOT
pankso@3 63 }
pankso@3 64
pankso@3 65 # Commands
pankso@3 66 title() {
pankso@3 67 echo ""; colorize 032 "$@"; separator "-"
pankso@3 68 }
pankso@3 69
pankso@3 70 # Check if Java is installed
pankso@3 71 check_java() {
pankso@3 72 if [ ! -x "$java" ]; then
pankso@3 73 colorize 031 "Can't find Java Runtime Environment (JRE)"; return 1
pankso@3 74 fi
pankso@3 75 }
pankso@3 76
pankso@3 77 # Change default motd
pankso@3 78 defaut_motd() {
pankso@3 79 if [ -f "$config" ]; then
pankso@3 80 motd=$(grep ^motd= ${config} | sed s'/motd=//')
pascal@9 81 if [ "$motd" = "A Minecraft Server" ]; then
pankso@3 82 sed -i s'#motd=.*#motd=\\u00A72A Tazcraft Server#' ${config}
pankso@3 83 fi
pankso@3 84 fi
pankso@3 85 }
pankso@3 86
pankso@5 87 # Get a key value from server config file
pankso@5 88 get_key() {
pankso@3 89 val=$(grep ^${1}= ${config} | cut -d "=" -f 2)
pankso@5 90 echo -n "$1"; indent 15 "= $(colorize 033 $val)"
pankso@3 91 }
pankso@3 92
pankso@3 93 #
pankso@3 94 # Commands
pankso@3 95 #
pankso@3 96 case "$1" in
pankso@3 97
pankso@3 98 -d|downlaod)
pankso@3 99 if [ ! -f "$server/$jar" ]; then
pankso@3 100 echo "Downloading Minecraft..."
pankso@5 101
pankso@3 102 mkdir -p ${server}
pankso@3 103 wget --no-check-certificate \
pankso@3 104 https://s3.amazonaws.com/Minecraft.Download/versions/${version}/minecraft_server.${version}.jar \
pankso@3 105 -O ${server}/minecraft_server.${version}.jar
pankso@5 106
pankso@3 107 else
pankso@3 108 colorize 032 "Minecraft is already downloaded :-)"
pankso@3 109 fi ;;
pankso@3 110
pankso@3 111 -s|start)
pankso@3 112 check_java || exit 1
pankso@5 113 [ "$mem" ] || mem="1024"
pankso@5 114
pankso@3 115 colorize 032 "Starting Minecraft server..."
pankso@3 116 [ ! "$gui" ] && opts="nogui"
pankso@3 117 cd ${server}
pankso@5 118 ${java} -Xmx${mem}M -Xms${mem}M -jar ${server_jar} ${opts}
pankso@5 119
pankso@5 120 newline ;;
pankso@3 121
pankso@3 122 -p|play)
pankso@3 123 if [ ! -f "$client_path" ]; then
pankso@3 124 dest_dir="$(dirname $client_path)"
pankso@3 125 mkdir -p ${dest_dir}
pankso@3 126 xterm -e "wget \
pankso@3 127 http://s3.amazonaws.com/Minecraft.Download/launcher/${client_jar} \
pankso@3 128 -O $client_path"
pankso@3 129 fi
pankso@3 130 ${java} -jar ${client_path} & ;;
pankso@3 131
pankso@3 132 -j|java)
pankso@3 133 if [ ! -x "$home/jre/bin/java" ]; then
pankso@3 134 echo "Installing Java Runtime Environment ($java_version)..."
pankso@3 135
pankso@3 136 # Already downloaded
pankso@3 137 if [ ! -f "$home/$java_tarball" ]; then
pankso@3 138 wget \
pankso@3 139 http://javadl.oracle.com/webapps/download/AutoDL?BundleId=${java_id}_${java_md5} \
pankso@3 140 -O ${home}/${java_tarball}
pankso@3 141 fi
pankso@3 142
pankso@3 143 echo "Extracting: ${java_tarball}..."
pankso@3 144 tar xzf ${home}/${java_tarball} -C ${home} || exit 1
pankso@3 145 rm -rf jre 2>/dev/null && mv ${home}/jre*_*/ ${home}/jre
pankso@3 146
pankso@3 147 else
pankso@3 148 colorize 032 "Java Runtime Environment is installed"
pankso@3 149 ${java} -version
pankso@3 150 fi ;;
pankso@5 151
pankso@5 152 -k|key)
pankso@5 153 key="$2"
pankso@5 154 val="$3"
pankso@5 155 if [ "$val" ]; then
pankso@5 156 echo "Setting $key to: $val"
pankso@5 157 sed -i s"/${key}=.*/${key}=${val}/" ${config}
pankso@5 158 fi
pankso@5 159 get_key ${key} ;;
pankso@3 160
pankso@5 161 -m|motd)
pankso@3 162 defaut_motd
pankso@3 163 motd=$(grep ^motd= ${config} | sed s'/motd=//')
pankso@3 164 title "Message Of The Day (motd)"
pankso@3 165 echo "$motd"
pankso@3 166 newline ;;
pankso@3 167
pankso@3 168 -o|ops)
pankso@3 169 title "Server operators"
pankso@5 170 fgrep name ${ops} | cut -d '"' -f 4
pankso@5 171 newline
pankso@5 172 colorize 033 "Config file: $ops"
pankso@3 173 newline ;;
pankso@3 174
pankso@3 175 -w|white-list)
pankso@3 176 title "Minecraft server white list"
pankso@3 177
pankso@3 178 # Display white list users or give settings info
pankso@3 179 if [ -f "$white_list" ]; then
pankso@5 180 users=$(wc -l < $white_list)
pankso@3 181 cat ${white_list}
pankso@5 182 echo -e "\nAllowed users: $users"
pankso@3 183 else
pankso@5 184 get_key "white-list"
pankso@3 185 colorize 031 "White list file is not activated $val"
pankso@3 186 fi
pankso@3 187
pankso@3 188 newline ;;
pankso@3 189
pankso@3 190 -i|info)
pankso@3 191 newline
pankso@3 192 colorize 032 "Minecraft Server"
pankso@3 193 echo "Version : $version"
pankso@3 194 echo "Home : $home"
pankso@3 195 newline
pankso@3 196
pankso@3 197 colorize 032 "Server properties"
pankso@3 198 for var in gamemode server-port level-name difficulty max-players \
kayamkid@8 199 allow-flight white-list level-type
pankso@3 200 do
pankso@5 201 get_key ${var}
pankso@3 202 done
pankso@3 203 newline
pankso@3 204
pankso@3 205 if check_java; then
pankso@3 206 colorize 032 "Java Runtime Environment"
pankso@3 207 echo "Path: $java"
pankso@3 208 ${java} -version #2>&1 | grep "version"
pankso@3 209 fi
pankso@3 210 newline ;;
pankso@3 211
pankso@3 212 *) help ;;
pankso@3 213 esac
pankso@3 214 exit 0