Upgpkg: 1.9.2-2

Do not save server files immediately before going down in case there is
no player on the server. The files are saved on shutdown eitherway and
the save-all command heavily delays the list command which is triggered
later.
This commit is contained in:
Gordian Edenhofer 2016-04-03 13:43:10 +02:00
parent 349829f1e1
commit 87f0b53c40
3 changed files with 4 additions and 6 deletions

View File

@ -28,6 +28,6 @@ pkgbase = minecraft-server
md5sums = fef6fadd0739ae03ff71ba61025be207 md5sums = fef6fadd0739ae03ff71ba61025be207
md5sums = afb84ad0316af0aca421b36eaa2bbd90 md5sums = afb84ad0316af0aca421b36eaa2bbd90
md5sums = 00045683c06924d765ac14887218ffcc md5sums = 00045683c06924d765ac14887218ffcc
md5sums = f130c76d285297071c3e0d2988631dfe md5sums = bdd49792d54f147cd2f6048f1559d676
pkgname = minecraft-server pkgname = minecraft-server

View File

@ -28,7 +28,7 @@ md5sums=('560d467028f17a70997151ed0053deb6'
'fef6fadd0739ae03ff71ba61025be207' 'fef6fadd0739ae03ff71ba61025be207'
'afb84ad0316af0aca421b36eaa2bbd90' 'afb84ad0316af0aca421b36eaa2bbd90'
'00045683c06924d765ac14887218ffcc' '00045683c06924d765ac14887218ffcc'
'f130c76d285297071c3e0d2988631dfe') 'bdd49792d54f147cd2f6048f1559d676')
_game="minecraft" _game="minecraft"
_server_root="/srv/minecraft" _server_root="/srv/minecraft"

View File

@ -180,10 +180,7 @@ server_stop() {
# Gracefully exit the game server # Gracefully exit the game server
${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
# Game server is up and running # Game server is up and running, gracefully stop the server when there are still active players
game_command save-all
# Gracefully stop the server when there are still active players
${SUDO_CMD} screen -S "${SESSION_NAME}" -X stuff "`printf \"list\r\"`" ${SUDO_CMD} screen -S "${SESSION_NAME}" -X stuff "`printf \"list\r\"`"
# The list command prints a line containing the usernames after the last occurrence of ": " # The list command prints a line containing the usernames after the last occurrence of ": "
# and since playernames may not contain this string the clean player-list can be easily retrieved. # and since playernames may not contain this string the clean player-list can be easily retrieved.
@ -195,6 +192,7 @@ server_stop() {
# Player(s) were seen on the server through list (or an error occurred) # Player(s) were seen on the server through list (or an error occurred)
# Warning the users through the server console # Warning the users through the server console
game_command say "Server is going down in 10 seconds! HURRY UP WITH WHATEVER YOU ARE DOING!" game_command say "Server is going down in 10 seconds! HURRY UP WITH WHATEVER YOU ARE DOING!"
game_command save-all
echo -en "Server is going down in..." echo -en "Server is going down in..."
for i in {1..10}; do for i in {1..10}; do
game_command say "down in... $(expr 10 - $i)" game_command say "down in... $(expr 10 - $i)"