Fix spectator camera not working on a fresh disguise

This commit is contained in:
libraryaddict 2024-02-17 21:53:07 +13:00
parent 9da0770f84
commit b6f0f3618e
2 changed files with 8 additions and 8 deletions

View File

@ -30,16 +30,14 @@ import java.util.Map;
@RequiredArgsConstructor
@Setter
public class LibsPackets {
@Getter
private final ArrayList<PacketContainer> packets = new ArrayList<>();
private final HashMap<Integer, ArrayList<PacketContainer>> delayedPacketsMap = new HashMap<>();
@Getter
private final Disguise disguise;
private boolean unhandled;
private boolean skinHandling;
public Disguise getDisguise() {
return disguise;
}
public void addPacket(PacketContainer packet) {
packets.add(packet);
}
@ -60,10 +58,6 @@ public class LibsPackets {
delayedPacketsMap.get(ticksDelayed).add(packet);
}
public ArrayList<PacketContainer> getPackets() {
return packets;
}
public void sendDelayed(final Player observer) {
for (Map.Entry<Integer, ArrayList<PacketContainer>> entry : getDelayedPacketsMap().entrySet()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(LibsDisguises.getInstance(), () -> {

View File

@ -445,6 +445,12 @@ public class PacketHandlerSpawn implements IPacketHandler {
packets.addDelayedPacket(packet);
}
}
if (disguisedEntity != observer && observer.getSpectatorTarget() == disguisedEntity) {
PacketContainer camera = new PacketContainer(PacketType.Play.Server.CAMERA);
camera.getIntegers().write(0, disguisedEntity.getEntityId());
packets.addPacket(camera);
}
}
private static PacketContainer constructLivingPacket(Player observer, LibsPackets packets, Entity disguisedEntity, Location loc, byte pitch, byte yaw) {