From b335c2c5115ee719207e3d157b6bc98f425c5a36 Mon Sep 17 00:00:00 2001 From: ericek111 Date: Wed, 23 Sep 2026 19:30:48 +0000 Subject: [PATCH] Tolerate an empty client_servergroups in Client.getServerGroups Some servers list a client with an empty client_servergroups; parsing it threw NumberFormatException and aborted iterating the whole client list. Co-Authored-By: Claude Opus 5.5 --- .../java/com/github/manevolent/ts3j/api/Client.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/github/manevolent/ts3j/api/Client.java b/src/main/java/com/github/manevolent/ts3j/api/Client.java index 4909e59..e9245de 100644 --- a/src/main/java/com/github/manevolent/ts3j/api/Client.java +++ b/src/main/java/com/github/manevolent/ts3j/api/Client.java @@ -28,6 +28,7 @@ package com.github.manevolent.ts3j.api; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.Arrays; import java.util.Date; import java.util.Map; @@ -130,12 +131,12 @@ public class Client extends Wrapper { public int[] getServerGroups() { final String str = get(ClientProperty.CLIENT_SERVERGROUPS); - final String[] arr = str.split(","); - final int[] groups = new int[arr.length]; - for (int i = 0; i < groups.length; i++) { - groups[i] = Integer.parseInt(arr[i]); - } - return groups; + if (str == null) return new int[0]; + return Arrays.stream(str.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .mapToInt(Integer::parseInt) + .toArray(); } public int getTalkPower() {