fix: cape not being shown to other players

This commit is contained in:
ineanto 2025-09-07 14:26:10 +02:00
parent ff460eb0bc
commit 6132077464
Signed by: ineanto
GPG key ID: E511F9CAA2F9CE84

View file

@ -2,6 +2,7 @@ package xyz.ineanto.nicko.packet;
import com.destroystokyo.paper.profile.PlayerProfile; import com.destroystokyo.paper.profile.PlayerProfile;
import com.github.retrooper.packetevents.PacketEvents; import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.protocol.chat.RemoteChatSession;
import com.github.retrooper.packetevents.protocol.entity.data.EntityData; import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes; import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
@ -12,6 +13,7 @@ import com.github.retrooper.packetevents.util.Vector3d;
import com.github.retrooper.packetevents.wrapper.PacketWrapper; import com.github.retrooper.packetevents.wrapper.PacketWrapper;
import com.github.retrooper.packetevents.wrapper.play.server.*; import com.github.retrooper.packetevents.wrapper.play.server.*;
import io.github.retrooper.packetevents.util.SpigotConversionUtil; import io.github.retrooper.packetevents.util.SpigotConversionUtil;
import io.github.retrooper.packetevents.util.SpigotReflectionUtil;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@ -100,7 +102,7 @@ public record PacketEventsPacketSender(Player player, NickoProfile profile) impl
final EntityData<@NotNull Byte> entityData = new EntityData<>(17, EntityDataTypes.BYTE, (byte) 0x7f); final EntityData<@NotNull Byte> entityData = new EntityData<>(17, EntityDataTypes.BYTE, (byte) 0x7f);
final WrapperPlayServerEntityMetadata metadata = new WrapperPlayServerEntityMetadata(player.getEntityId(), List.of(entityData)); final WrapperPlayServerEntityMetadata metadata = new WrapperPlayServerEntityMetadata(player.getEntityId(), List.of(entityData));
sendPacket(metadata, player); Bukkit.getOnlinePlayers().forEach(receiver -> sendPacket(metadata, receiver));
} }
@Override @Override
@ -142,7 +144,7 @@ public record PacketEventsPacketSender(Player player, NickoProfile profile) impl
player.getPing(), player.getPing(),
SpigotConversionUtil.fromBukkitGameMode(player.getGameMode()), SpigotConversionUtil.fromBukkitGameMode(player.getGameMode()),
Component.text(displayName), Component.text(displayName),
null, // Welcome back fucked chat encryption (RemoteChatSession) SpigotReflectionUtil.getRemoteChatSession(player), // Welcome back fucked chat encryption
player.getPlayerListOrder(), player.getPlayerListOrder(),
true true
) )