diff --git a/src/main/java/org/saturnclient/saturnclient/auth/Auth.java b/src/main/java/org/saturnclient/saturnclient/auth/Auth.java index 4a77d78..5c82980 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/Auth.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/Auth.java @@ -104,11 +104,34 @@ public class Auth { String hat = parser.getStringOrNull("hat"); if (cloak != null) { Cloaks.availableCloaks.add(cloak); + } if (hat != null) { Hats.availableHats.add(hat); } + case "update_cloak": + String targetUuid = parser.getStringOrNull("uuid"); + String targetCloak = parser.getStringOrNull("cloak"); + if (targetUuid != null && targetCloak != null) { + SaturnPlayer player = players.get(targetUuid); + if (player != null) { + player.cloak = targetCloak; + } + } + break; + + case "update_hat": + targetUuid = parser.getStringOrNull("uuid"); + String targetHat = parser.getStringOrNull("hat"); + if (targetUuid != null && targetHat != null) { + SaturnPlayer player = players.get(targetUuid); + if (player != null) { + player.hat = targetHat; + } + } + break; + default: if (parser.error != null) { SaturnClient.LOGGER.error("Error from the server: " + parser.error); @@ -182,7 +205,7 @@ public class Auth { public static void setCloak(String cloakName) { try { - Network.write("set_cloak@cloak=" + cloakName + "@notify=" + "d362a04228bd49e1a807ae74dbe8aba9"); + Network.write("set_cloak@cloak=" + cloakName + "@notify=" + stringifyPlayers()); } catch (Exception e) { SaturnClient.LOGGER.error("Request failed", e); } @@ -190,12 +213,16 @@ public class Auth { public static void setHat(String hatName) { try { - Network.write("set_hat@hat=" + hatName + "@notify=" + "d362a04228bd49e1a807ae74dbe8aba9"); + Network.write("set_hat@hat=" + hatName + "@notify=" + stringifyPlayers()); } catch (Exception e) { SaturnClient.LOGGER.error("Request failed", e); } } + public static String stringifyPlayers() { + return String.join("$", players.keySet()); + } + public static void player(String name, String uuid) { try { playerNames.put(name, uuid.replaceAll("-", "")); diff --git a/src/main/java/org/saturnclient/saturnclient/auth/Network.java b/src/main/java/org/saturnclient/saturnclient/auth/Network.java index 4a61515..5c43931 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/Network.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/Network.java @@ -37,7 +37,7 @@ public class Network { // Generate AES key new SecureRandom().nextBytes(key); - socket = new Socket("77.247.92.168", 8080); + socket = new Socket("localhost", 8080); // out = new DataOutputStream(socket.getOutputStream()); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java index 91b9670..071e621 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java @@ -112,20 +112,25 @@ public class Cloaks { List animatedFrames = new ArrayList<>(); for (int i = 0; i < frameCount; i++) { String frameId = fileName.replace(".gif", "") + "_frame_" + i; - Identifier frameIdentifier = Identifier.of(SaturnClient.MOD_ID, "cloaks_" + frameId); - IdentifierUtils.registerBufferedImageTexture(frameIdentifier, frames.get(i)); + Identifier frameIdentifier = Identifier.of(SaturnClient.MOD_ID, + "cloaks_" + frameId); + IdentifierUtils.registerBufferedImageTexture(frameIdentifier, + frames.get(i)); animatedFrames.add(new AnimatedCloakData(frameIdentifier, delays.get(i))); } animatedCloaks.put(uuid, animatedFrames); lastFrameTime.put(uuid, System.currentTimeMillis()); - SaturnClient.LOGGER.info("Loaded " + frames.size() + " frames for animated cloak: " + fileName); + SaturnClient.LOGGER.info( + "Loaded " + frames.size() + " frames for animated cloak: " + fileName); } catch (Exception e) { - SaturnClient.LOGGER.error("Failed to register animated cloak textures: " + fileName, e); + SaturnClient.LOGGER + .error("Failed to register animated cloak textures: " + fileName, e); } }); } } catch (IOException e) { - SaturnClient.LOGGER.error("Failed to load animated cloak from resources: " + player.cloak + ".gif", e); + SaturnClient.LOGGER + .error("Failed to load animated cloak from resources: " + player.cloak + ".gif", e); } }).start(); } else {