mirror of https://github.com/Minestom/Minestom.git
Serialize/Compress tag packet only once
Signed-off-by: TheMode <themode@outlook.fr>
This commit is contained in:
parent
8f3e8c5a13
commit
2c4ea3c3c4
|
@ -274,7 +274,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
|||
// Recipes end
|
||||
|
||||
// Tags
|
||||
this.playerConnection.sendPacket(TagsPacket.getRequiredTagsPacket());
|
||||
this.playerConnection.sendFramedPacket(TagsPacket.DEFAULT_TAGS);
|
||||
|
||||
// Some client updates
|
||||
this.playerConnection.sendPacket(getPropertiesPacket()); // Send default properties
|
||||
|
@ -1660,7 +1660,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
|||
|
||||
@Override
|
||||
public void setSneaking(boolean sneaking) {
|
||||
if(isFlying()) { //If we are flying, don't set the players pose to sneaking as this can clip them through blocks
|
||||
if (isFlying()) { //If we are flying, don't set the players pose to sneaking as this can clip them through blocks
|
||||
this.entityMeta.setSneaking(sneaking);
|
||||
} else {
|
||||
super.setSneaking(sneaking);
|
||||
|
@ -1696,12 +1696,12 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
|||
*/
|
||||
public void refreshFlying(boolean flying) {
|
||||
//When the player starts or stops flying, their pose needs to change
|
||||
if(this.flying != flying) {
|
||||
if (this.flying != flying) {
|
||||
Pose pose = getPose();
|
||||
|
||||
if(this.isSneaking() && pose == Pose.STANDING) {
|
||||
if (this.isSneaking() && pose == Pose.STANDING) {
|
||||
setPose(Pose.SNEAKING);
|
||||
} else if(pose == Pose.SNEAKING) {
|
||||
} else if (pose == Pose.SNEAKING) {
|
||||
setPose(Pose.STANDING);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,13 @@ package net.minestom.server.network.packet.server.play;
|
|||
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.gamedata.tags.Tag;
|
||||
import net.minestom.server.network.packet.FramedPacket;
|
||||
import net.minestom.server.network.packet.server.ServerPacket;
|
||||
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
||||
import net.minestom.server.utils.PacketUtils;
|
||||
import net.minestom.server.utils.binary.BinaryReader;
|
||||
import net.minestom.server.utils.binary.BinaryWriter;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -13,7 +16,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
public class TagsPacket implements ServerPacket {
|
||||
private static final TagsPacket REQUIRED_TAGS_PACKET = new TagsPacket(MinecraftServer.getTagManager().getTagMap());
|
||||
@ApiStatus.Internal
|
||||
public static final FramedPacket DEFAULT_TAGS = PacketUtils.allocateTrimmedPacket(new TagsPacket(MinecraftServer.getTagManager().getTagMap()));
|
||||
|
||||
public Map<Tag.BasicType, List<Tag>> tagsMap;
|
||||
|
||||
|
@ -69,14 +73,4 @@ public class TagsPacket implements ServerPacket {
|
|||
public int getId() {
|
||||
return ServerPacketIdentifier.TAGS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link TagsPacket} sent to every {@link net.minestom.server.entity.Player}
|
||||
* on login.
|
||||
*
|
||||
* @return the default tags packet
|
||||
*/
|
||||
public static @NotNull TagsPacket getRequiredTagsPacket() {
|
||||
return REQUIRED_TAGS_PACKET;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue