From 64e2eb676fcbb98f95c04bd3c6fbf759d5a9b6f2 Mon Sep 17 00:00:00 2001 From: Krumel Date: Thu, 6 May 2021 18:00:11 +0200 Subject: [PATCH] improved connection detection --- ServerStart.sh.template | 2 +- readme.md | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) mode change 100755 => 100644 ServerStart.sh.template mode change 100755 => 100644 readme.md diff --git a/ServerStart.sh.template b/ServerStart.sh.template old mode 100755 new mode 100644 index 50de1b9..7375502 --- a/ServerStart.sh.template +++ b/ServerStart.sh.template @@ -17,7 +17,7 @@ while true; do echo "0" > /home/minecraft/scripts/lp_shutdown mcconn=0 until [ $mcconn -ne 0 ]; do - mcconn=$(nc -l 25500 | cat -v | grep -cF '^@cM-^\^B') + mcconn=$(nc -l 25500 | cat -v | grep -czP '(\^X\^@M-r\^E\^Q)([\w\.]+)(\^@FML2\^@cM-\^\\\^B\n\^@\^H)([\w\.]+)') if [ $mcconn -eq 0 ]; then echo "Something connected, but it doesn't look like a minecraft connection" else diff --git a/readme.md b/readme.md old mode 100755 new mode 100644 index f960165..5a14b97 --- a/readme.md +++ b/readme.md @@ -30,7 +30,8 @@ Auf eine legitime Verbindung zu warten kann dann z.B. so aussehen: ```bash mcconn=0 until [ $mcconn -ne 0 ]; do - mcconn=$(nc -l 25500 | cat -v | grep -cF '^@cM-^\^B') + #jetzt sogar mit funktionierendem Regex, danke Joe + mcconn=$(nc -l 25500 | cat -v | grep -czP '(\^X\^@M-r\^E\^Q)([\w\.]+)(\^@FML2\^@cM-\^\\\^B\n\^@\^H)([\w\.]+)') if [ $mcconn -eq 0 ]; then echo "Something connected, but it doesn't look like a minecraft connection" else @@ -39,11 +40,6 @@ until [ $mcconn -ne 0 ]; do done ``` -Ein vollständigeres Regex, dass auf eine korrekte Verbindung prüft sieht so aus, doch leider scheint das nicht in grep zu funktionieren: -```regex -^\^X\^@M-r\^E\^Q[a-zA-Z0-9\.]+\^@[a-zA-Z0-9]+\^@cM-\^\\\^B\n\^@\^H[a-zA-Z0-9]+ -``` - ### Server Start Skript Beim Starten des Servers wird eine große Menge an Parametern übergeben: