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 |