Client stuff

This commit is contained in:
2026-03-07 16:55:29 +01:00
parent a577ee7796
commit 35df2b2b27
21 changed files with 612 additions and 19 deletions
@@ -2,8 +2,8 @@ package org.saturnclient.cosmetics.cloak;
import net.minecraft.util.Identifier;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
@@ -4,8 +4,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
public class Hats {
public static final String[] ALL_HATS = { "horns_black", "horns_white", "halo", "halo_black" };
@@ -5,16 +5,19 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.cosmetics.cloak.Cloaks;
import org.saturnclient.cosmetics.hat.Hats;
import org.saturnclient.common.minecraft.bindings.SaturnClientBindings;
import org.saturnclient.impl.FabricModuleProvider;
import org.saturnclient.impl.SaturnClientProvider;
import org.saturnclient.modules.ModManager;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.Config;
import org.saturnclient.config.manager.ConfigManager;
import org.saturnclient.saturnclient.bindings.SaturnEmoteBindingsImpl;
import org.saturnclient.saturnclient.bindings.SaturnPlatformBindingsImpl;
import org.saturnclient.saturnclient.event.KeyInputHandler;
import org.saturnclient.ui.ElementRenderer;
import org.saturnclient.ui.SaturnScreenFabric;
@@ -47,6 +50,9 @@ public class SaturnClient implements ModInitializer {
SaturnScreenFabric.preload(client);
});
SaturnClientBindings.setPlatform(new SaturnPlatformBindingsImpl());
SaturnClientBindings.setEmotes(new SaturnEmoteBindingsImpl());
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save());
ClientTickEvents.END_CLIENT_TICK.register(client -> {
@@ -0,0 +1,44 @@
package org.saturnclient.saturnclient.bindings;
import java.util.UUID;
import org.saturnclient.common.minecraft.bindings.SaturnEmoteBindings;
import org.saturnclient.saturnclient.SaturnClient;
import dev.kosmx.playerAnim.api.layered.AnimationStack;
import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationAccess;
import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationRegistry;
import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.util.Identifier;
public class SaturnEmoteBindingsImpl implements SaturnEmoteBindings {
@Override
public void setEmote(UUID fromPlayerUuid, String emoteIdOrNull) {
if (SaturnClient.client == null || SaturnClient.client.world == null) {
return;
}
for (AbstractClientPlayerEntity player : SaturnClient.client.world.getPlayers()) {
if (!player.getUuid().equals(fromPlayerUuid)) {
continue;
}
AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(player);
if (emoteIdOrNull != null && !emoteIdOrNull.isEmpty()) {
if (animationStack.isActive() && animationStack.getPriority() == 1000) {
animationStack.removeLayer(1000);
}
animationStack.addAnimLayer(1000,
PlayerAnimationRegistry
.getAnimation(Identifier.of("saturnclient", emoteIdOrNull))
.playAnimation());
} else {
animationStack.removeLayer(1000);
}
break;
}
}
}
@@ -0,0 +1,59 @@
package org.saturnclient.saturnclient.bindings;
import java.util.UUID;
import org.saturnclient.common.minecraft.bindings.SaturnPlatformBindings;
import org.saturnclient.saturnclient.SaturnClient;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.minecraft.client.MinecraftClient;
public class SaturnPlatformBindingsImpl implements SaturnPlatformBindings {
@Override
public String getAccessToken() {
var session = MinecraftClient.getInstance().getSession();
if (session == null) {
return null;
}
return session.getAccessToken();
}
@Override
public UUID getUuid() {
var session = MinecraftClient.getInstance().getSession();
if (session == null) {
return null;
}
return session.getUuidOrNull();
}
@Override
public String getUsername() {
var session = MinecraftClient.getInstance().getSession();
if (session == null) {
return null;
}
return session.getUsername();
}
@Override
public void onClientStopping(Runnable handler) {
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> handler.run());
}
@Override
public void logInfo(String message) {
SaturnClient.LOGGER.info(message);
}
@Override
public void logError(String message) {
SaturnClient.LOGGER.error(message);
}
@Override
public void logError(String message, Throwable throwable) {
SaturnClient.LOGGER.error(message, throwable);
}
}
@@ -3,7 +3,7 @@ package org.saturnclient.saturnclient.client.player;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.client.ServiceClient;
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.client.MinecraftClient;
@@ -5,10 +5,10 @@ import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.Config;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.ui.screens.EmoteWheel;
import org.saturnclient.ui.screens.ShiftMenu;
@@ -14,8 +14,8 @@ import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.math.Vec3d;
import org.saturnclient.saturnclient.client.player.Roles;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.player.Roles;
import org.saturnclient.client.player.SaturnPlayer;
import java.util.UUID;
@@ -7,8 +7,8 @@ import net.minecraft.util.Formatting;
import java.util.UUID;
import org.jetbrains.annotations.Nullable;
import org.saturnclient.saturnclient.client.player.Roles;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.player.Roles;
import org.saturnclient.client.player.SaturnPlayer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
@@ -2,7 +2,7 @@ package org.saturnclient.ui.screens;
import org.saturnclient.cosmetics.Emotes;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.config.Config;
import org.saturnclient.ui.SaturnScreen;
@@ -1,7 +1,8 @@
package org.saturnclient.ui.screens.cosmetics;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.cosmetics.cloak.Cloaks;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.ui.SaturnScreen;
@@ -1,7 +1,8 @@
package org.saturnclient.ui.screens.cosmetics;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.cosmetics.hat.Hats;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.ui.SaturnScreen;
@@ -1,8 +1,8 @@
package org.saturnclient.ui.screens.store;
import org.saturnclient.cosmetics.cloak.Cloaks;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.config.Theme;
@@ -1,8 +1,8 @@
package org.saturnclient.ui.screens.store;
import org.saturnclient.cosmetics.hat.Hats;
import org.saturnclient.saturnclient.client.ServiceClient;
import org.saturnclient.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.client.ServiceClient;
import org.saturnclient.client.player.SaturnPlayer;
import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.AnimationConfig;
import org.saturnclient.config.Theme;