This commit is contained in:
2026-03-08 02:58:57 +01:00
parent 6021cd790e
commit f139ff5bd3
7 changed files with 45 additions and 88 deletions
@@ -6,7 +6,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
import org.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.common.bindings.SaturnClientBindings;
import org.saturnclient.common.provider.Providers;
import dev.selimaj.session.Session;
@@ -27,30 +27,30 @@ public class ServiceClient {
}
public static boolean authenticate() {
SaturnClientBindings.platform().onClientStopping(() -> {
Providers.saturn.onClientStopping(() -> {
if (session != null) {
try {
session.close();
} catch (Exception e) {
SaturnClientBindings.platform().logError("Unable to close Saturn session", e);
Providers.saturn.logError("Unable to close Saturn session", e);
}
}
});
try {
String accessToken = SaturnClientBindings.platform().getAccessToken();
uuid = SaturnClientBindings.platform().getUuid();
String username = SaturnClientBindings.platform().getUsername();
String accessToken = Providers.saturn.getAccessToken();
uuid = Providers.saturn.getUuid();
String username = Providers.saturn.getUsername();
if (accessToken == null || uuid == null || username == null) {
SaturnClientBindings.platform().logError("No active Minecraft session found");
Providers.saturn.logError("No active Minecraft session found");
return false;
}
SaturnClientBindings.platform().logInfo("Authenticating with UUID: " + uuid);
Providers.saturn.logInfo("Authenticating with UUID: " + uuid);
if (!connectTimeout()) {
SaturnClientBindings.platform().logError("Unable to authenticate: Session Server Timeout");
Providers.saturn.logError("Unable to authenticate: Session Server Timeout");
return false;
}
@@ -71,7 +71,7 @@ public class ServiceClient {
return true;
} catch (Exception e) {
SaturnClientBindings.platform().logError("Authentication failed", e);
Providers.saturn.logError("Authentication failed", e);
return false;
}
}
@@ -91,7 +91,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to set cloak (service): ", e);
Providers.saturn.logError("Failed to set cloak (service): ", e);
}
}
@@ -110,7 +110,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to set hat (service): ", e);
Providers.saturn.logError("Failed to set hat (service): ", e);
}
}
@@ -124,7 +124,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to buy cloak (service): ", e);
Providers.saturn.logError("Failed to buy cloak (service): ", e);
}
}
@@ -138,7 +138,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to buy hat (service): ", e);
Providers.saturn.logError("Failed to buy hat (service): ", e);
}
}
@@ -152,7 +152,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to emote (service): ", e);
Providers.saturn.logError("Failed to emote (service): ", e);
}
}
@@ -169,9 +169,9 @@ public class ServiceClient {
}
if (data.emote() != null && !data.emote().isEmpty()) {
SaturnClientBindings.emotes().setEmote(from, data.emote());
Providers.saturn.playEmote(from, data.emote());
} else {
SaturnClientBindings.emotes().setEmote(from, null);
Providers.saturn.playEmote(from, null);
}
});
@@ -192,7 +192,7 @@ public class ServiceClient {
}
});
} catch (Exception e) {
SaturnClientBindings.platform().logError("Failed to get player", e);
Providers.saturn.logError("Failed to get player", e);
}
}
}
@@ -4,7 +4,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.saturnclient.common.bindings.SaturnClientBindings;
import org.saturnclient.client.ServiceClient;
public class SaturnPlayer {
private static Map<UUID, SaturnPlayer> PLAYERS = new HashMap<>();
@@ -23,11 +23,10 @@ public class SaturnPlayer {
}
public static SaturnPlayer get() {
UUID self = SaturnClientBindings.platform().getUuid();
if (self == null) {
if (ServiceClient.uuid == null) {
return null;
}
return PLAYERS.get(self);
return PLAYERS.get(ServiceClient.uuid);
}
public static SaturnPlayer get(UUID uuid) {
@@ -47,8 +46,8 @@ public class SaturnPlayer {
}
public static String[] getExternalUUIDAsString() {
UUID self = SaturnClientBindings.platform().getUuid();
return PLAYERS.keySet().stream().filter(id -> self == null || !id.equals(self)).map(UUID::toString)
return PLAYERS.keySet().stream().filter(id -> ServiceClient.uuid == null || !id.equals(ServiceClient.uuid))
.map(UUID::toString)
.toArray(String[]::new);
}
@@ -1,31 +0,0 @@
package org.saturnclient.common.bindings;
public final class SaturnClientBindings {
private static SaturnPlatformBindings platform;
private static SaturnEmoteBindings emotes;
private SaturnClientBindings() {
}
public static void setPlatform(SaturnPlatformBindings bindings) {
platform = bindings;
}
public static SaturnPlatformBindings platform() {
if (platform == null) {
throw new IllegalStateException("SaturnPlatformBindings not initialized");
}
return platform;
}
public static void setEmotes(SaturnEmoteBindings bindings) {
emotes = bindings;
}
public static SaturnEmoteBindings emotes() {
if (emotes == null) {
throw new IllegalStateException("SaturnEmoteBindings not initialized");
}
return emotes;
}
}
@@ -1,7 +0,0 @@
package org.saturnclient.common.bindings;
import java.util.UUID;
public interface SaturnEmoteBindings {
void setEmote(UUID fromPlayerUuid, String emoteIdOrNull);
}
@@ -1,19 +0,0 @@
package org.saturnclient.common.bindings;
import java.util.UUID;
public interface SaturnPlatformBindings {
String getAccessToken();
UUID getUuid();
String getUsername();
void onClientStopping(Runnable handler);
void logInfo(String message);
void logError(String message);
void logError(String message, Throwable throwable);
}
@@ -4,11 +4,28 @@ import org.saturnclient.common.ref.asset.IdentifierRef;
import org.saturnclient.common.ref.game.MinecraftClientRef;
import java.awt.image.BufferedImage;
import java.util.UUID;
public interface SaturnProvider {
public abstract MinecraftClientRef getClient();
public MinecraftClientRef getClient();
public abstract void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi);
public void playEmote(UUID fromPlayerUuid, String emoteIdOrNull);
public abstract void stop();
public String getAccessToken();
public UUID getUuid();
public String getUsername();
public void onClientStopping(Runnable handler);
public void logInfo(String message);
public void logError(String message);
public void logError(String message, Throwable throwable);
public void stop();
public void registerBufferedImageTexture(IdentifierRef i, BufferedImage bi);
}
@@ -2,7 +2,7 @@ package org.saturnclient.ui.screens;
import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.common.bindings.SaturnClientBindings;
import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.config.Config;
import org.saturnclient.ui.SaturnScreen;
@@ -82,9 +82,7 @@ public class EmoteWheel extends SaturnScreen {
emoteStagger.draw(
new TextureButton(Textures.getEmotePreview(emote), () -> {
if (emote != null)
SaturnClientBindings.emotes().setEmote(ServiceClient.uuid, emote);
Providers.saturn.playEmote(ServiceClient.uuid, emote);
provider.close();
})
.dimensions(70, 70)