Use rconcmd listplayers for online players with epic

This commit is contained in:
Ben Peddell 2020-07-29 23:35:36 +10:00
parent b230c4f2f8
commit 89e80dec96

View File

@ -1012,6 +1012,13 @@ function isTheServerOnline(){
# Check if anybody is connected to the server # Check if anybody is connected to the server
# #
function numPlayersConnected(){ function numPlayersConnected(){
if [[ -n "$arkflag_crossplay" || -n "$arkflag_epiconly" ]]; then
players="$(rconcmd listplayers 2>/dev/null)"
if [[ "$players" == '"'?*'"' ]]; then
echo "$players" | wc -l
fi
fi
if [ -n "$arkUsePlayerList" ]; then if [ -n "$arkUsePlayerList" ]; then
perl -MSocket -e ' perl -MSocket -e '
my $port = int($ARGV[0]); my $port = int($ARGV[0]);
@ -3253,7 +3260,9 @@ printStatus(){
echo -e "$NORMAL" "Server running: " "$RED" "No" "$NORMAL" echo -e "$NORMAL" "Server running: " "$RED" "No" "$NORMAL"
fi fi
if isTheServerUp ;then if [ -n "$arkflag_epiconly" ]; then
echo -e "$NORMAL" "Cannot check server status with -epiconly"
elif isTheServerUp ;then
echo -e "$NORMAL" "Server listening: " "$RED" "No" "$NORMAL" echo -e "$NORMAL" "Server listening: " "$RED" "No" "$NORMAL"
else else
echo -e "$NORMAL" "Server listening: " "$GREEN" "Yes" "$NORMAL" echo -e "$NORMAL" "Server listening: " "$GREEN" "Yes" "$NORMAL"
@ -3269,7 +3278,7 @@ printStatus(){
my $players = ord(substr($rest, 2, 1)); my $players = ord(substr($rest, 2, 1));
my $maxplayers = ord(substr($rest, 3, 1)); my $maxplayers = ord(substr($rest, 3, 1));
print "Server Name: $servername\n"; print "Server Name: $servername\n";
print "Players: $players / $maxplayers\n"; print "Steam Players: $players / $maxplayers\n";
send($socket, "\xff\xff\xff\xff\x55\xff\xff\xff\xff", 0, $sockaddr); send($socket, "\xff\xff\xff\xff\x55\xff\xff\xff\xff", 0, $sockaddr);
$data = ""; $data = "";
recv($socket, $data, 1400, 0) or (print "Challenge request failed" and exit(1)); recv($socket, $data, 1400, 0) or (print "Challenge request failed" and exit(1));
@ -3291,7 +3300,7 @@ printStatus(){
$active = $active + 1; $active = $active + 1;
} }
} }
print "Active Players: $active\n"; print "Active Steam Players: $active\n";
' "$(getQueryPort)" "$(getMultiHomeIP)" ' "$(getQueryPort)" "$(getMultiHomeIP)"
if isTheServerOnline; then if isTheServerOnline; then
@ -3303,6 +3312,13 @@ printStatus(){
fi fi
fi fi
if [[ -n "$arkflag_crossplay" || -n "$arkflag_epiconly" ]]; then
players="$(rconcmd listplayers 2>/dev/null)"
if [[ "$players" == '"'?*'"' ]]; then
echo "Active Players: $(echo "$players" | wc -l)"
fi
fi
instver="$(getCurrentVersion)" instver="$(getCurrentVersion)"
echo -e "$NORMAL" "Server build ID: " "$GREEN" $instver "$NORMAL" echo -e "$NORMAL" "Server build ID: " "$GREEN" $instver "$NORMAL"
instbeta="$(getCurrentBranch)" instbeta="$(getCurrentBranch)"