diff --git a/src/main/java/org/saturnclient/saturnclient/auth/Auth.java b/src/main/java/org/saturnclient/saturnclient/auth/Auth.java index a918274..29650e2 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/Auth.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/Auth.java @@ -194,4 +194,16 @@ public class Auth { } } } + + public static void sendEmote(String emote) { + String uuid = SaturnClient.client.player.getUuidAsString().replace("-", ""); + for (Map.Entry player : playerNames.entrySet()) { + if (players.containsKey(player.getValue()) && !player.getValue().equals(uuid)) { + SaturnClient.client.player.networkHandler + .sendChatCommand("msg " + player.getKey() + " " + + "$SATURN_EMOTE&@"+uuid+"&@"+emote+"&@ if you are seeing this as a player, please report this to https://github.com/saturnclientmc/saturnclient/issues"); + ; + } + } + } } diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/SaturnReload.java b/src/main/java/org/saturnclient/saturnclient/mixin/SaturnReload.java index 8242371..48bb542 100644 --- a/src/main/java/org/saturnclient/saturnclient/mixin/SaturnReload.java +++ b/src/main/java/org/saturnclient/saturnclient/mixin/SaturnReload.java @@ -1,18 +1,23 @@ package org.saturnclient.saturnclient.mixin; import java.util.Map; - import org.jetbrains.annotations.Nullable; +import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.auth.Auth; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import dev.kosmx.playerAnim.api.layered.AnimationStack; +import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationAccess; +import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationRegistry; import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.gui.hud.MessageIndicator; +import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.network.message.MessageSignatureData; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; @Mixin(ChatHud.class) public class SaturnReload { @@ -28,6 +33,15 @@ public class SaturnReload { } ci.cancel(); } + } else if (msg.contains("$SATURN_EMOTE")) { + String[] args = msg.split("&@"); + for (AbstractClientPlayerEntity player : SaturnClient.client.world.getPlayers()) { + if (player.getUuidAsString().replace("-", "").equals(args[1])) { + AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(player); + animationStack.addAnimLayer(1000, PlayerAnimationRegistry.getAnimation(Identifier.of("saturnclient", args[2])).playAnimation()); + } + } + ci.cancel(); } } } diff --git a/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java b/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java index e21b752..3657511 100644 --- a/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java +++ b/src/main/java/org/saturnclient/ui2/screens/EmoteWheel.java @@ -2,6 +2,7 @@ package org.saturnclient.ui2.screens; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.SaturnClientConfig; +import org.saturnclient.saturnclient.auth.Auth; import org.saturnclient.saturnclient.cosmetics.Emotes; import org.saturnclient.ui2.SaturnScreen; import org.saturnclient.ui2.Utils; @@ -62,6 +63,7 @@ public class EmoteWheel extends SaturnScreen { } AnimationStack animationStack = PlayerAnimationAccess.getPlayerAnimLayer(SaturnClient.client.player); animationStack.addAnimLayer(1000, PlayerAnimationRegistry.getAnimation(Identifier.of("saturnclient", emote)).playAnimation()); + Auth.sendEmote(emote); close(); }).dimensions(70, 70).centerOffset(width, height, -80 + (col * 80), -35 + (row * 80)).animation(new Fade(700)));