Sfoglia il codice sorgente

Merge pull request #1011 from marvinl97/mcserver

Minecraft Server Improvements
Marvin Lehmann 9 anni fa
parent
commit
5e8d1f0446

+ 40 - 0
Minecraft/cfg/lgsm-default.ini

@@ -0,0 +1,40 @@
+#Minecraft server properties (LGSM 210516)
+#Sat Aug 20 17:30:15 CEST 2016
+allow-flight=false
+allow-nether=true
+announce-player-achievements=true
+difficulty=1
+enable-command-block=false
+enable-query=false
+enable-rcon=false
+force-gamemode=false
+gamemode=0
+generate-structures=true
+generator-settings=
+hardcore=false
+level-name=world
+level-seed=
+level-type=DEFAULT
+max-build-height=256
+max-players=20
+max-tick-time=60000
+max-world-size=29999984
+motd=A Minecraft Server
+network-compression-threshold=256
+online-mode=true
+op-permission-level=4
+player-idle-timeout=0
+pvp=true
+rcon.password=
+rcon.port=25575
+resource-pack-sha1=
+resource-pack=
+server-ip=
+server-port=25565
+snooper-enabled=true
+spawn-animals=true
+spawn-monsters=true
+spawn-npcs=true
+use-native-transport=true
+view-distance=10
+white-list=false

+ 7 - 3
Minecraft/mcserver.sh → Minecraft/mcserver

@@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then
         set -x
 fi
 
-version="210516"
+version="200816"
 
 #### Variables ####
 
@@ -34,6 +34,10 @@ maxplayers="16"
 ip="0.0.0.0"
 updateonstart="off"
 
+fn_parms(){
+parms="nogui"
+}
+
 #### Advanced Variables ####
 
 # Github Branch Select
@@ -57,11 +61,11 @@ functionsdir="${lgsmdir}/functions"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"
-executable="java -Xmx512M -jar minecraft_server.jar nogui"
+executable="java -Xmx512M -jar minecraft_server.jar"
 servercfg="server.properties"
 servercfgdir="${filesdir}"
 servercfgfullpath="${servercfgdir}/${servercfg}"
-servercfgdefault="${servercfgdir}/lgsm-default.cfg"
+servercfgdefault="${servercfgdir}/lgsm-default.ini"
 backupdir="${rootdir}/backups"
 
 # Logging

+ 14 - 5
lgsm/functions/info_config.sh

@@ -10,7 +10,7 @@ local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 ## Examples of filtering to get info from config files
 # sed 's/foo//g' - remove foo
 # tr -cd '[:digit:]' leave only digits
-# tr -d '=\"; ' remove selected charectors =\";
+# tr -d '=\"; ' remove selected characters =\";
 # grep -v "foo" filter out lines that contain foo
 
 unavailable="${red}UNAVAILABLE${default}"
@@ -71,22 +71,31 @@ fn_info_config_dontstarve(){
 fn_info_config_minecraft(){
 	if [ ! -f "${servercfgfullpath}" ]; then
 		rconpassword="${unavailable}"
+		rconport="${zero}"
 		slots="${zero}"
 		port="${zero}"
+		gamemode="${zero}"
+		gameworld="${unavailable}"
 	else
 		# check if the ip exists in the config file. Failing this will fall back to the default.
 		ipconfigcheck=$(grep "server-ip=" "${servercfgfullpath}" | sed 's/server-ip=//g')
 		if [ -n "${ipconfigcheck}" ]; then
 			ip="${ipconfigcheck}"
 		fi
-		rconpassword=$(grep "rcon.password=" "${servercfgfullpath}" | sed 's/rcon.password=//g' | tr -d '\')
+		rconpassword=$(grep "rcon.password=" "${servercfgfullpath}" | sed 's/rcon.password=//g' | tr -d '=\"; ')
+		rconport=$(grep "rcon.port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
 		slots=$(grep "max-players=" "${servercfgfullpath}" | tr -cd '[:digit:]')
 		port=$(grep "server-port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
+		gamemode=$(grep "gamemode=" "${servercfgfullpath}" | tr -cd '[:digit:]')
+		gameworld=$(grep "level-name=" "${servercfgfullpath}" | sed 's/level-name=//g' | tr -d '=\"; ')
 
 		# Not Set
 		rconpassword=${rconpassword:-"NOT SET"}
+		rconport=${rconport:-"NOT SET"}
 		slots=${slots:-"NOT SET"}
 		port=${port:-"NOT SET"}
+		gamemode=${gamemode:-"NOT SET"}
+		gameworld=${gameworld:-"NOT SET"}
 	fi
 }
 
@@ -99,9 +108,9 @@ fn_info_config_projectzomboid(){
 		port="${zero}"
 		gameworld="${unavailable}"
 	else
-		servername=$(grep "PublicName=" "${servercfgfullpath}" | sed 's/PublicName=//g' | tr -d '\')
-		serverpassword=$(grep "^Password=$" "${servercfgfullpath}" | sed 's/Password=//g' | tr -d '\')
-		rconpassword=$(grep "RCONPassword=" "${servercfgfullpath}" | sed 's/RCONPassword=//g' | tr -d '\')
+		servername=$(grep "PublicName=" "${servercfgfullpath}" | sed 's/PublicName=//g' | tr -d '=\";\n')
+		serverpassword=$(grep "^Password=$" "${servercfgfullpath}" | sed 's/Password=//g' | tr -d '=\"; ')
+		rconpassword=$(grep "RCONPassword=" "${servercfgfullpath}" | sed 's/RCONPassword=//g' | tr -d '=\"; ')
 		slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
 		port=$(grep "DefaultPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
 		gameworld=$(grep "Map=" "${servercfgfullpath}" | sed 's/Map=//g' | tr -d '\n')

+ 5 - 0
lgsm/functions/install_config.sh

@@ -301,6 +301,11 @@ elif [ "${gamename}" == "Left 4 Dead 2" ]; then
 	wget -N /dev/null ${githuburl}/Left4Dead2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
 	sleep 1
 	fn_sourceconfig
+elif [ "${gamename}" == "Minecraft" ]; then
+	echo -e "downloading lgsm-default.ini...\c"
+	wget -N /dev/null ${githuburl}/Minecraft/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
+	sleep 1
+	fn_defaultconfig
 elif [ "${gamename}" == "No More Room in Hell" ]; then
 	echo -e "downloading lgsm-default.cfg...\c"
 	wget -N /dev/null ${githuburl}/NoMoreRoomInHell/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq

+ 3 - 1
lgsm/functions/install_minecraft_eula.sh

@@ -11,6 +11,8 @@ sleep 1
 echo "You are required to accept the EULA:"
 echo "https://account.mojang.com/documents/minecraft_eula"
 
+echo "eula=false" > "${filesdir}/eula.txt"
+
 if [ -z "${autoinstall}" ]; then
 echo "By continuing you are indicating your agreement to the EULA."
 echo ""
@@ -28,4 +30,4 @@ echo ""
 	sleep 5
 fi
 
-sed -i "s/\"eula=false\"/\"eula=true\"/g" serverfiles/eula.txt
+sed -i "s/eula=false/eula=true/g" "${filesdir}/eula.txt"