From 8b2f5a6016a43416020b8b494db4813ec41f7405 Mon Sep 17 00:00:00 2001 From: Zoriot Date: Sun, 11 Oct 2026 12:59:33 +0200 Subject: [PATCH 1/2] fix: Fix playerlist sync serialisation + error logging --- .../modules/network/api/NetworkAPI.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java b/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java index 3cccc40b..5204b0a2 100644 --- a/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java +++ b/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java @@ -19,10 +19,12 @@ import org.jetbrains.annotations.NotNull; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +import org.json.simple.JSONValue; import org.jspecify.annotations.NonNull; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.UUID; import java.util.concurrent.CompletableFuture; @@ -376,7 +378,6 @@ public static void deleteWarpGroup(WarpGroup warpGroup, API.ApiResponseCallback API.deleteAsync("https://nwapi.buildtheearth.net/api/teams/" + apiKey + "/warpgroups", requestBody, callback); } - @SuppressWarnings("unchecked") public static void syncPlayerList() { BuildTeam buildTeam = NetworkModule.getInstance().getBuildTeam(); if (buildTeam != null && buildTeam.isConnected()) @@ -384,11 +385,19 @@ public static void syncPlayerList() { String apiKey = BuildTeamTools.getInstance().getMainConfig().apiKey(); - JSONArray requestBodyArray = new JSONArray(); - for (Player player : Bukkit.getOnlinePlayers()) - requestBodyArray.add(new String[]{player.getUniqueId().toString(), player.getName()}); + List> players = new ArrayList<>(); + + for (Player player : Bukkit.getOnlinePlayers()) { + players.add(Arrays.asList( + player.getUniqueId().toString(), + player.getName() + )); + } - RequestBody requestBody = RequestBody.create(requestBodyArray.toString(), MediaType.parse("application/json")); + RequestBody requestBody = RequestBody.create( + JSONValue.toJSONString(players), + MediaType.parse("application/json") + ); API.postAsync("https://nwapi.buildtheearth.net/api/teams/" + apiKey + "/playerlist", requestBody, new API.ApiResponseCallback() { @Override @@ -398,7 +407,7 @@ public void onResponse(String response) { @Override public void onFailure(IOException e) { - ChatHelper.getErrorString("Failed to sync the player list with the network API: %s", e); + ChatHelper.logError("Failed to sync the player list with the network API: %s", e.getMessage()); } }); } From 701e87925ffb7c3519f391816b84ae3754ec9213 Mon Sep 17 00:00:00 2001 From: Zoriot Date: Sun, 11 Oct 2026 13:02:10 +0200 Subject: [PATCH 2/2] refactor: Remove unchecked call for setBuildTeamToolsInstalled --- .../modules/network/api/NetworkAPI.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java b/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java index 5204b0a2..0833e7d7 100644 --- a/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java +++ b/src/main/java/net/buildtheearth/buildteamtools/modules/network/api/NetworkAPI.java @@ -23,10 +23,7 @@ import org.jspecify.annotations.NonNull; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; @UtilityClass @@ -40,11 +37,15 @@ public class NetworkAPI { public static void setBuildTeamToolsInstalled(boolean installed) { String apiKey = BuildTeamTools.getInstance().getMainConfig().apiKey(); - JSONObject requestBodyJson = new JSONObject(); + Map requestBodyJson = new HashMap<>(); requestBodyJson.put("hasBuildTeamToolsInstalled", installed); - String requestBodyString = requestBodyJson.toString(); - RequestBody requestBody = RequestBody.create(requestBodyString, MediaType.parse("application/json")); + String requestBodyString = JSONValue.toJSONString(requestBodyJson); + + RequestBody requestBody = RequestBody.create( + requestBodyString, + MediaType.parse("application/json") + ); API.putAsync("https://nwapi.buildtheearth.net/api/teams/" + apiKey + "/hasBuildTeamToolsInstalled", requestBody, new API.ApiResponseCallback() { @Override