Add Minecraft/Modded/StartServer.sh
This commit is contained in:
		
							parent
							
								
									1dbe1425e4
								
							
						
					
					
						commit
						bb769d29d2
					
				
					 1 changed files with 62 additions and 0 deletions
				
			
		
							
								
								
									
										62
									
								
								Minecraft/Modded/StartServer.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								Minecraft/Modded/StartServer.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#Claytonia.net
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Game and server details
 | 
				
			||||||
 | 
					game="moddedmc"
 | 
				
			||||||
 | 
					server="BetterMC"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Discord webhook details
 | 
				
			||||||
 | 
					DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/108116989/r6m9CEumGdsrU7D6MxIS-D"
 | 
				
			||||||
 | 
					DISCORD_USERNAME="ModdedMC"
 | 
				
			||||||
 | 
					DISCORD_AVATAR_URL="https://i.imgur.com/oBycxyt.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Monitoring details
 | 
				
			||||||
 | 
					# What to look for in the log file that tells the script the server is done saving and ready to restart.
 | 
				
			||||||
 | 
					MONITOR_STRING="Stopped IO worker"
 | 
				
			||||||
 | 
					# Where is the log file?
 | 
				
			||||||
 | 
					LOG_FILE="/home/$game/$server/logs/latest.log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Functions
 | 
				
			||||||
 | 
					start_server() {
 | 
				
			||||||
 | 
					  # Sleep to give time for all start.sh discord msgs to be sent
 | 
				
			||||||
 | 
					  sleep 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Kill any previous screen sessions
 | 
				
			||||||
 | 
					  screen -X -S "$game" quit > /dev/null 2>&1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Start the screen and run the server
 | 
				
			||||||
 | 
					  cd "/home/$game/$server/"
 | 
				
			||||||
 | 
					  screen -dmS "$game" ./start.sh && echo "Restarted at: $(date)" >>script.log
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ensure the working directory exists
 | 
				
			||||||
 | 
					cd "/home/$game/$server/" || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Notify Discord about server restart
 | 
				
			||||||
 | 
					discord_message="Saving world and restarting the server."
 | 
				
			||||||
 | 
					curl -H "Content-Type: application/json" -X POST -d '{"username": "'"$DISCORD_USERNAME"'", "content": "'"$discord_message"'", "avatar_url": "'"$DISCORD_AVATAR_URL"'"}' "$DISCORD_WEBHOOK_URL"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run the screen command to stop the server
 | 
				
			||||||
 | 
					output=$(screen -p 0 -S "$game" -X eval "stuff stop\015" 2>&1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if the output contains the "No screen session found" message
 | 
				
			||||||
 | 
					if [[ $output == *"No screen session found."* ]]; then
 | 
				
			||||||
 | 
					  echo "Starting Server"
 | 
				
			||||||
 | 
					  start_server
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  echo "Saving World, Please wait."
 | 
				
			||||||
 | 
					  echo "This takes some time!"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Tail the log file and monitor for the specified string
 | 
				
			||||||
 | 
					  #waits for the server to fully save before starting the server instead of force quitting the screen
 | 
				
			||||||
 | 
					  tail -n 0 -F "$LOG_FILE" | while read -r line; do
 | 
				
			||||||
 | 
					    if [[ $line == *"$MONITOR_STRING"* ]]; then
 | 
				
			||||||
 | 
					      echo "Starting Server"
 | 
				
			||||||
 | 
					      start_server
 | 
				
			||||||
 | 
					      exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue