Skip to content

Commit 49943c9

Browse files
authored
Merge pull request Tofaa2#35 from huanmeng-qwq/master
fix: correct player spawn in 1.20.1-
2 parents 34db96d + 8bc8bfb commit 49943c9

2 files changed

Lines changed: 37 additions & 18 deletions

File tree

api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,7 @@ public boolean spawn(Location location, EntityContainer parent) {
7777
this.spawned = true;
7878

7979
sendPacketsToViewers(
80-
new WrapperPlayServerSpawnEntity(
81-
entityId,
82-
Optional.of(this.uuid),
83-
entityType,
84-
location.getPosition(),
85-
location.getPitch(),
86-
location.getYaw(),
87-
location.getYaw(),
88-
getObjectData(),
89-
createVeloPacket()
90-
),
80+
createSpawnPacket(),
9181
entityMeta.createPacket()
9282
);
9383

@@ -238,7 +228,7 @@ public void sendActionbarToViewers(Component message) {
238228
sendPacketToViewers(new WrapperPlayServerSystemChatMessage(true, message));
239229
}
240230

241-
protected WrapperPlayServerSpawnEntity createSpawnPacket() {
231+
protected PacketWrapper<?> createSpawnPacket() {
242232
return new WrapperPlayServerSpawnEntity(
243233
entityId,
244234
Optional.of(this.uuid),

api/src/main/java/me/tofaa/entitylib/wrapper/WrapperPlayer.java

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
package me.tofaa.entitylib.wrapper;
22

3+
import com.github.retrooper.packetevents.manager.server.ServerVersion;
34
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
4-
import com.github.retrooper.packetevents.protocol.player.*;
5-
import com.github.retrooper.packetevents.protocol.world.Location;
6-
import com.github.retrooper.packetevents.util.Vector3d;
5+
import com.github.retrooper.packetevents.protocol.player.GameMode;
6+
import com.github.retrooper.packetevents.protocol.player.TextureProperty;
7+
import com.github.retrooper.packetevents.protocol.player.UserProfile;
78
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
8-
import com.github.retrooper.packetevents.wrapper.play.server.*;
9+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerDestroyEntities;
10+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityHeadLook;
11+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityRotation;
12+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoRemove;
13+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoUpdate;
14+
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnPlayer;
915
import me.tofaa.entitylib.EntityLib;
1016
import me.tofaa.entitylib.meta.EntityMeta;
17+
import java.util.EnumSet;
18+
import java.util.List;
19+
import java.util.UUID;
1120
import net.kyori.adventure.text.Component;
12-
13-
import java.util.*;
21+
import org.jetbrains.annotations.NotNull;
1422

1523
public class WrapperPlayer extends WrapperLivingEntity {
1624

@@ -25,6 +33,27 @@ public WrapperPlayer(UserProfile profile, int entityId) {
2533
this.profile = profile;
2634
}
2735

36+
@Override
37+
protected PacketWrapper<?> createSpawnPacket() {
38+
if (EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThanOrEquals(ServerVersion.V_1_20_1)) {
39+
return new WrapperPlayServerSpawnPlayer(
40+
getEntityId(),
41+
profile.getUUID(),
42+
getLocation(),
43+
getEntityMeta().entityData()
44+
);
45+
}
46+
return super.createSpawnPacket();
47+
}
48+
49+
@Override
50+
public @NotNull List<PacketWrapper<?>> createSpawnPackets() {
51+
final List<PacketWrapper<?>> packets = super.createSpawnPackets();
52+
packets.add(new WrapperPlayServerEntityRotation(getEntityId(), getYaw(), getPitch(), isOnGround()));
53+
packets.add(new WrapperPlayServerEntityHeadLook(getEntityId(), getYaw()));
54+
return packets;
55+
}
56+
2857
public WrapperPlayServerPlayerInfoUpdate tabListPacket() {
2958
EnumSet<WrapperPlayServerPlayerInfoUpdate.Action> actions = EnumSet.of(
3059
WrapperPlayServerPlayerInfoUpdate.Action.ADD_PLAYER,

0 commit comments

Comments
 (0)