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 |