slitaz-dev-tools diff tazcraft/tazcraft @ rev 295

Fix to slitaz-release and improve tazcraft (work in progress, to be continued in it's own repo)
author Christophe Lincoln <pankso@slitaz.org>
date Sun Mar 19 17:36:55 2017 +0100 (2017-03-19)
parents 29b50f284008
children
line diff
     1.1 --- a/tazcraft/tazcraft	Sun Mar 19 08:50:48 2017 +0000
     1.2 +++ b/tazcraft/tazcraft	Sun Mar 19 17:36:55 2017 +0100
     1.3 @@ -1,10 +1,12 @@
     1.4  #!/bin/sh
     1.5  #
     1.6 -# tazcraft - Your Minecraft server tiny configuration tool
     1.7 +# tazcraft - Minecraft server config & admin tool for SliTaz
     1.8  #
     1.9  # Authors: Kayam Lincoln-Vazquez, Christophe Lincoln
    1.10  # Copyright (C) 2017 SliTaz GNU/Linux - BSD License
    1.11  #
    1.12 +# TODO: add spigot support, rcon handler, properties settings
    1.13 +#
    1.14  . /lib/libtaz.sh
    1.15  
    1.16  version="1.11.2"
    1.17 @@ -15,6 +17,7 @@
    1.18  server_jar="minecraft_server.${version}.jar"
    1.19  client_jar="Minecraft.jar"
    1.20  client_path="$HOME/.local/share/minecraft/$client_jar"
    1.21 +
    1.22  spigot_jar="spigot-${version}.jar"
    1.23  
    1.24  java_version="8u121"
    1.25 @@ -22,7 +25,7 @@
    1.26  java_md5="e9e7ea248e2c4826b92b3f075a80e441"
    1.27  java_tarball="jre-$java_version-linux-i586.tar.gz"
    1.28  
    1.29 -# Prefer Sun Java JRE but let user use icedtea6-jre
    1.30 +# Prefer Sun Java JRE but support system wide icedtea6-jre if installed
    1.31  java="$home/jre/bin/java"
    1.32  if [ ! -x "$java" ]; then
    1.33  	java="/usr/bin/java"
    1.34 @@ -42,6 +45,8 @@
    1.35    -p  play          Launch the Minecraft client
    1.36    -j  java          Install Sun Java Runtime Environment
    1.37    -i  info          Display server and java information
    1.38 +      motd          Raw display of the Message Of The Day
    1.39 +      ops           Show server operators name
    1.40  
    1.41  $(colorize 032 Options:)
    1.42    --gui             Run the server with a graphical user interface
    1.43 @@ -49,6 +54,11 @@
    1.44  EOT
    1.45  }
    1.46  
    1.47 +# Commands
    1.48 +title() {
    1.49 +	echo ""; colorize 032 "$@"; separator "-"
    1.50 +}
    1.51 +
    1.52  # Check if Java is installed
    1.53  check_java() {
    1.54  	if [ ! -x "$java" ]; then
    1.55 @@ -57,10 +67,12 @@
    1.56  }
    1.57  
    1.58  # Change default motd
    1.59 -check_motd() {
    1.60 -	motd=$(grep ^motd= ${config} | sed s'/motd=//')
    1.61 -	if [ "$motd" == "A Minecraft Server" ]; then
    1.62 -		sed -i s'/motd=.*/motd=\u00A72A Tazcraft Server/' ${config}
    1.63 +defaut_motd() {
    1.64 +	if [ -f "$config" ]; then
    1.65 +		motd=$(grep ^motd= ${config} | sed s'/motd=//')
    1.66 +		if [ "$motd" == "A Minecraft Server" ]; then
    1.67 +			sed -i s'#motd=.*#motd=\\u00A72A Tazcraft Server#' ${config}
    1.68 +		fi
    1.69  	fi
    1.70  }
    1.71  
    1.72 @@ -88,7 +100,7 @@
    1.73  	
    1.74  	-s|start)
    1.75  		check_java || exit 1
    1.76 -		check_motd
    1.77 +		defaut_motd
    1.78  		colorize 032 "Starting Minecraft server..."
    1.79  		[ ! "$gui" ] && opts="nogui"
    1.80  		cd ${server}
    1.81 @@ -124,6 +136,53 @@
    1.82  			${java} -version
    1.83  		fi ;;
    1.84  	
    1.85 +	motd)
    1.86 +		defaut_motd 
    1.87 +		motd=$(grep ^motd= ${config} | sed s'/motd=//')
    1.88 +		title "Message Of The Day (motd)"
    1.89 +		echo  "$motd" 
    1.90 +		newline ;;
    1.91 +	
    1.92 +	-o|ops)
    1.93 +		title "Server operators"
    1.94 +		ops_json="$server/ops.json"
    1.95 +		#echo "Config file: $server/ops.json"
    1.96 +		fgrep name ${ops_json} | cut -d '"' -f 4
    1.97 +		newline ;;
    1.98 +	
    1.99 +	-w|white-list)
   1.100 +		# Usage: tazcraft -w [username|--true|--false]
   1.101 +		white_list="${server}/white-list.txt"
   1.102 +		title "Minecraft server white list"
   1.103 +		
   1.104 +		case "$2" in
   1.105 +		
   1.106 +			--true) 
   1.107 +				echo "Activaction white list support..."
   1.108 +				sed -i s'/white-list=*./white-list=true/' ${config}
   1.109 +				touch ${white_list} ;;
   1.110 +				
   1.111 +			--false) ;;
   1.112 +			*) ;;
   1.113 +		esac
   1.114 +		# Add/remove users
   1.115 +		
   1.116 +		
   1.117 +		# --true
   1.118 +		if [ "$true" ]; then
   1.119 +			
   1.120 +		fi
   1.121 +		
   1.122 +		# Display white list users or give settings info
   1.123 +		if [ -f "$white_list" ]; then
   1.124 +			cat  ${white_list}
   1.125 +		else
   1.126 +			get_value "white-list"
   1.127 +			colorize 031 "White list file is not activated $val"
   1.128 +		fi
   1.129 +		
   1.130 +		newline ;;
   1.131 +	
   1.132  	-i|info)
   1.133  		newline
   1.134  		colorize 032 "Minecraft Server"
   1.135 @@ -132,7 +191,9 @@
   1.136  		newline
   1.137  		
   1.138  		colorize 032 "Server properties"
   1.139 -		for var in gamemode server-port level-name difficulty max-players; do
   1.140 +		for var in gamemode server-port level-name difficulty max-players \
   1.141 +			allow-flight
   1.142 +		do
   1.143  			get_value ${var}
   1.144  		done
   1.145  		newline