This commit is contained in:
zimzaza4
2024-12-15 00:49:19 +08:00
parent ff4f47b3da
commit d463176203
2 changed files with 21 additions and 9 deletions

View File

@@ -26,6 +26,7 @@ import re.imc.geysermodelengine.util.BooleanPacker;
import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@@ -60,6 +61,9 @@ public class EntityTask {
return;
}
PacketEntity packetEntity = model.getEntity();
// packetEntity.setHeadYaw((float) Math.toDegrees(model.getModeledEntity().getYHeadRot()));
// packetEntity.setHeadPitch((float) Math.toDegrees(model.getModeledEntity().getXHeadRot()));
model.teleportToModel();
Set<Player> viewers = model.getViewers();
@@ -206,6 +210,7 @@ public class EntityTask {
}
boneUpdates.put(name, bone.isVisible());
});
// }
@@ -272,10 +277,8 @@ public class EntityTask {
}
//Collections.sort(list);
//System.out.println(list);
//System.out.println(boneUpdates);
//System.out.println(intUpdates);
List<String> list = new ArrayList<>(boneUpdates.keySet());
Collections.sort(list);
for (Player player : players) {
EntityUtils.sendIntProperties(player, entity, intUpdates);
@@ -301,9 +304,10 @@ public class EntityTask {
public void sendHitBox(Player viewer) {
float w = 0;
if (model.getActiveModel().isShadowVisible()) {
if (model.getActiveModel().getModelRenderer() instanceof DisplayRenderer displayRenderer) {
w = displayRenderer.getHitbox().getShadowRadius().get();
// w = displayRenderer.getHitbox().getShadowRadius().get();
}
}
EntityUtils.sendCustomHitBox(viewer, model.getEntity().getEntityId(), 0.02f, w);

View File

@@ -8,12 +8,10 @@ import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
import com.github.retrooper.packetevents.protocol.teleport.RelativeFlag;
import com.github.retrooper.packetevents.util.Vector3d;
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerDestroyEntities;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityPositionSync;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityTeleport;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
import com.github.retrooper.packetevents.wrapper.play.server.*;
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
@@ -25,6 +23,7 @@ import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
@Getter
@Setter
public class PacketEntity {
// public static final MinecraftVersion V1_20_5 = new MinecraftVersion("1.20.5");
@@ -41,6 +40,9 @@ public class PacketEntity {
private EntityType type;
private Set<Player> viewers;
private Location location;
private float headYaw;
private float headPitch;
private boolean removed = false;
public @NotNull Location getLocation() {
return location;
@@ -51,6 +53,7 @@ public class PacketEntity {
this.location = location.clone();
if (sent) {
sendLocationPacket(viewers);
// sendHeadRotation(viewers); // TODO
}
return true;
}
@@ -89,6 +92,11 @@ public class PacketEntity {
}
public void sendHeadRotation(Collection<Player> players) {
WrapperPlayServerEntityRotation packet = new WrapperPlayServerEntityRotation(id, headYaw, headPitch, false);
players.forEach(player -> PacketEvents.getAPI().getPlayerManager().sendPacket(player, packet));
}
public void sendEntityDestroyPacket(Collection<Player> players) {
WrapperPlayServerDestroyEntities packet = new WrapperPlayServerDestroyEntities(id);
players.forEach(player -> PacketEvents.getAPI().getPlayerManager().sendPacket(player, packet));