mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-29 23:17:59 +02:00
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
|
// Recipes end
|
||||||
|
|
||||||
// Tags
|
// Tags
|
||||||
this.playerConnection.sendPacket(TagsPacket.getRequiredTagsPacket());
|
this.playerConnection.sendFramedPacket(TagsPacket.DEFAULT_TAGS);
|
||||||
|
|
||||||
// Some client updates
|
// Some client updates
|
||||||
this.playerConnection.sendPacket(getPropertiesPacket()); // Send default properties
|
this.playerConnection.sendPacket(getPropertiesPacket()); // Send default properties
|
||||||
@ -1660,7 +1660,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSneaking(boolean sneaking) {
|
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);
|
this.entityMeta.setSneaking(sneaking);
|
||||||
} else {
|
} else {
|
||||||
super.setSneaking(sneaking);
|
super.setSneaking(sneaking);
|
||||||
@ -1696,12 +1696,12 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
|||||||
*/
|
*/
|
||||||
public void refreshFlying(boolean flying) {
|
public void refreshFlying(boolean flying) {
|
||||||
//When the player starts or stops flying, their pose needs to change
|
//When the player starts or stops flying, their pose needs to change
|
||||||
if(this.flying != flying) {
|
if (this.flying != flying) {
|
||||||
Pose pose = getPose();
|
Pose pose = getPose();
|
||||||
|
|
||||||
if(this.isSneaking() && pose == Pose.STANDING) {
|
if (this.isSneaking() && pose == Pose.STANDING) {
|
||||||
setPose(Pose.SNEAKING);
|
setPose(Pose.SNEAKING);
|
||||||
} else if(pose == Pose.SNEAKING) {
|
} else if (pose == Pose.SNEAKING) {
|
||||||
setPose(Pose.STANDING);
|
setPose(Pose.STANDING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,13 @@ package net.minestom.server.network.packet.server.play;
|
|||||||
|
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.gamedata.tags.Tag;
|
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.ServerPacket;
|
||||||
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
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.BinaryReader;
|
||||||
import net.minestom.server.utils.binary.BinaryWriter;
|
import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -13,7 +16,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class TagsPacket implements ServerPacket {
|
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;
|
public Map<Tag.BasicType, List<Tag>> tagsMap;
|
||||||
|
|
||||||
@ -69,14 +73,4 @@ public class TagsPacket implements ServerPacket {
|
|||||||
public int getId() {
|
public int getId() {
|
||||||
return ServerPacketIdentifier.TAGS;
|
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
Block a user