diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index d30c80fc0..c22894dc0 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -394,9 +394,9 @@ public class Entity implements Viewable, Tickable, EventHandler, DataContainer, return false; } - DestroyEntitiesPacket destroyEntitiesPacket = new DestroyEntitiesPacket(); - destroyEntitiesPacket.entityIds = new int[]{getEntityId()}; - player.getPlayerConnection().sendPacket(destroyEntitiesPacket); + DestroyEntityPacket destroyEntityPacket = new DestroyEntityPacket(); + destroyEntityPacket.entityId = getEntityId(); + player.getPlayerConnection().sendPacket(destroyEntityPacket); player.viewableEntities.remove(this); return true; } diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 49bd4ec3f..0aa7fbc83 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -1229,8 +1229,8 @@ public class Player extends LivingEntity implements CommandSender, Localizable, if (instance == null) return; - DestroyEntitiesPacket destroyEntitiesPacket = new DestroyEntitiesPacket(); - destroyEntitiesPacket.entityIds = new int[]{getEntityId()}; + DestroyEntityPacket destroyEntityPacket = new DestroyEntityPacket(); + destroyEntityPacket.entityId = getEntityId(); final PlayerInfoPacket removePlayerPacket = getRemovePlayerToList(); final PlayerInfoPacket addPlayerPacket = getAddPlayerToList(); @@ -1241,14 +1241,14 @@ public class Player extends LivingEntity implements CommandSender, Localizable, respawnPacket.isFlat = levelFlat; playerConnection.sendPacket(removePlayerPacket); - playerConnection.sendPacket(destroyEntitiesPacket); + playerConnection.sendPacket(destroyEntityPacket); playerConnection.sendPacket(respawnPacket); playerConnection.sendPacket(addPlayerPacket); { // Remove player sendPacketToViewers(removePlayerPacket); - sendPacketToViewers(destroyEntitiesPacket); + sendPacketToViewers(destroyEntityPacket); // Show player again getViewers().forEach(player -> showPlayer(player.getPlayerConnection())); diff --git a/src/main/java/net/minestom/server/network/packet/server/ServerPacketIdentifier.java b/src/main/java/net/minestom/server/network/packet/server/ServerPacketIdentifier.java index fe8851a7b..ca46bfd05 100644 --- a/src/main/java/net/minestom/server/network/packet/server/ServerPacketIdentifier.java +++ b/src/main/java/net/minestom/server/network/packet/server/ServerPacketIdentifier.java @@ -24,7 +24,7 @@ public class ServerPacketIdentifier { public static final int BOSS_BAR = 0x0D; public static final int SERVER_DIFFICULTY = 0x0E; public static final int CHAT_MESSAGE = 0x0F; - // TODO clear titles + public static final int CLEAR_TITLES = 0x10; public static final int TAB_COMPLETE = 0x11; public static final int DECLARE_COMMANDS = 0x12; //public static final int WINDOW_CONFIRMATION = 0x11; @@ -41,7 +41,7 @@ public class ServerPacketIdentifier { public static final int UNLOAD_CHUNK = 0x1D; public static final int CHANGE_GAME_STATE = 0x1E; public static final int OPEN_HORSE_WINDOW = 0x1F; - // TODO initialize world border + public static final int INITIALIZE_WORLD_BORDER = 0x20; public static final int KEEP_ALIVE = 0x21; public static final int CHUNK_DATA = 0x22; public static final int EFFECT = 0x23; @@ -60,22 +60,26 @@ public class ServerPacketIdentifier { public static final int OPEN_SIGN_EDITOR = 0x2F; public static final int CRAFT_RECIPE_RESPONSE = 0x30; public static final int PLAYER_ABILITIES = 0x31; - //public static final int COMBAT_EVENT = 0x31; - // TODO END/ENTER/DEATH combat event + public static final int END_COMBAT_EVENT = 0x32; + public static final int ENTER_COMBAT_EVENT = 0x33; + public static final int DEATH_COMBAT_EVENT = 0x34; public static final int PLAYER_INFO = 0x35; public static final int FACE_PLAYER = 0x36; public static final int PLAYER_POSITION_AND_LOOK = 0x37; public static final int UNLOCK_RECIPES = 0x38; - // TODO destroy entity - //public static final int DESTROY_ENTITIES = 0x36; + public static final int DESTROY_ENTITY = 0x39; public static final int REMOVE_ENTITY_EFFECT = 0x3A; public static final int RESOURCE_PACK_SEND = 0x3B; public static final int RESPAWN = 0x3C; public static final int ENTITY_HEAD_LOOK = 0x3D; public static final int MULTI_BLOCK_CHANGE = 0x3E; public static final int SELECT_ADVANCEMENT_TAB = 0x3F; - // TODO action bar, wordborder packets - //public static final int WORLD_BORDER = 0x3D; + public static final int ACTION_BAR = 0x40; + public static final int WORLD_BORDER_CENTER = 0x41; + public static final int WORLD_BORDER_LERP_SIZE = 0x42; + public static final int WORLD_BORDER_SIZE = 0x43; + public static final int WORLD_BORDER_WARNING_DELAY = 0x44; + public static final int WORLD_BORDER_WARNING_REACH = 0x45; public static final int CAMERA = 0x46; public static final int HELD_ITEM_CHANGE = 0x47; public static final int UPDATE_VIEW_POSITION = 0x48; @@ -92,9 +96,10 @@ public class ServerPacketIdentifier { public static final int SET_PASSENGERS = 0x53; public static final int TEAMS = 0x54; public static final int UPDATE_SCORE = 0x55; - // TODO set title subtitle + public static final int SET_TITLE_SUBTITLE = 0x56; public static final int TIME_UPDATE = 0x57; - // TODO set title text/time + public static final int SET_TITLE_TEXT = 0x58; + public static final int SET_TITLE_TIME = 0x59; //public static final int TITLE = 0x4F; public static final int ENTITY_SOUND_EFFECT = 0x5A; public static final int SOUND_EFFECT = 0x5B; diff --git a/src/main/java/net/minestom/server/network/packet/server/play/ActionBarPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/ActionBarPacket.java new file mode 100644 index 000000000..af2fde6b9 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/ActionBarPacket.java @@ -0,0 +1,28 @@ +package net.minestom.server.network.packet.server.play; + +import net.kyori.adventure.text.Component; +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class ActionBarPacket implements ServerPacket { + + public Component actionBarText = Component.empty(); + + @Override + public void read(@NotNull BinaryReader reader) { + this.actionBarText = reader.readComponent(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeComponent(actionBarText); + } + + @Override + public int getId() { + return ServerPacketIdentifier.ACTION_BAR; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/DestroyEntitiesPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/ClearTitlesPacket.java similarity index 65% rename from src/main/java/net/minestom/server/network/packet/server/play/DestroyEntitiesPacket.java rename to src/main/java/net/minestom/server/network/packet/server/play/ClearTitlesPacket.java index 9ab6444fc..58b3e66d0 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/DestroyEntitiesPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/ClearTitlesPacket.java @@ -6,24 +6,22 @@ import net.minestom.server.utils.binary.BinaryReader; import net.minestom.server.utils.binary.BinaryWriter; import org.jetbrains.annotations.NotNull; -public class DestroyEntitiesPacket implements ServerPacket { +public class ClearTitlesPacket implements ServerPacket { - public int[] entityIds = new int[0]; - - public DestroyEntitiesPacket() {} - - @Override - public void write(@NotNull BinaryWriter writer) { - writer.writeVarIntArray(entityIds); - } + public boolean reset; @Override public void read(@NotNull BinaryReader reader) { - entityIds = reader.readVarIntArray(); + this.reset = reader.readBoolean(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeBoolean(reset); } @Override public int getId() { - return ServerPacketIdentifier.DESTROY_ENTITIES; + return ServerPacketIdentifier.CLEAR_TITLES; } } diff --git a/src/main/java/net/minestom/server/network/packet/server/play/DeathCombatEventPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/DeathCombatEventPacket.java new file mode 100644 index 000000000..5afccd0d5 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/DeathCombatEventPacket.java @@ -0,0 +1,34 @@ +package net.minestom.server.network.packet.server.play; + +import net.kyori.adventure.text.Component; +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class DeathCombatEventPacket implements ServerPacket { + + public int playerId; + public int entityId; + public Component message = Component.empty(); + + @Override + public void read(@NotNull BinaryReader reader) { + this.playerId = reader.readVarInt(); + this.entityId = reader.readInt(); + this.message = reader.readComponent(Integer.MAX_VALUE); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeVarInt(playerId); + writer.writeInt(entityId); + writer.writeComponent(message); + } + + @Override + public int getId() { + return ServerPacketIdentifier.DEATH_COMBAT_EVENT; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/EntityMovementPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/DestroyEntityPacket.java similarity index 75% rename from src/main/java/net/minestom/server/network/packet/server/play/EntityMovementPacket.java rename to src/main/java/net/minestom/server/network/packet/server/play/DestroyEntityPacket.java index e9954af4b..63a04e493 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/EntityMovementPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/DestroyEntityPacket.java @@ -6,11 +6,12 @@ import net.minestom.server.utils.binary.BinaryReader; import net.minestom.server.utils.binary.BinaryWriter; import org.jetbrains.annotations.NotNull; -public class EntityMovementPacket implements ServerPacket { +public class DestroyEntityPacket implements ServerPacket { public int entityId; - public EntityMovementPacket() {} + public DestroyEntityPacket() { + } @Override public void write(@NotNull BinaryWriter writer) { @@ -19,11 +20,11 @@ public class EntityMovementPacket implements ServerPacket { @Override public void read(@NotNull BinaryReader reader) { - entityId = reader.readVarInt(); + this.entityId = reader.readVarInt(); } @Override public int getId() { - return ServerPacketIdentifier.ENTITY_MOVEMENT; + return ServerPacketIdentifier.DESTROY_ENTITY; } } diff --git a/src/main/java/net/minestom/server/network/packet/server/play/EndCombatEventPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/EndCombatEventPacket.java new file mode 100644 index 000000000..58ab29eec --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/EndCombatEventPacket.java @@ -0,0 +1,30 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class EndCombatEventPacket implements ServerPacket { + + public int duration; + public int entityId; + + @Override + public void read(@NotNull BinaryReader reader) { + this.duration = reader.readVarInt(); + this.entityId = reader.readInt(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeVarInt(duration); + writer.writeInt(entityId); + } + + @Override + public int getId() { + return ServerPacketIdentifier.END_COMBAT_EVENT; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/EnterCombatEventPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/EnterCombatEventPacket.java new file mode 100644 index 000000000..028660250 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/EnterCombatEventPacket.java @@ -0,0 +1,23 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class EnterCombatEventPacket implements ServerPacket { + + @Override + public void read(@NotNull BinaryReader reader) { + } + + @Override + public void write(@NotNull BinaryWriter writer) { + } + + @Override + public int getId() { + return ServerPacketIdentifier.ENTER_COMBAT_EVENT; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/InitializeWorldBorderPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/InitializeWorldBorderPacket.java new file mode 100644 index 000000000..8e1f518ad --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/InitializeWorldBorderPacket.java @@ -0,0 +1,47 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class InitializeWorldBorderPacket implements ServerPacket { + + public double x, z; + public double oldDiameter; + public double newDiameter; + public long speed; + public int portalTeleportBoundary; + public int warningTime; + public int warningBlocks; + + @Override + public void write(BinaryWriter writer) { + writer.writeDouble(x); + writer.writeDouble(z); + writer.writeDouble(oldDiameter); + writer.writeDouble(newDiameter); + writer.writeVarLong(speed); + writer.writeVarInt(portalTeleportBoundary); + writer.writeVarInt(warningTime); + writer.writeVarInt(warningBlocks); + } + + @Override + public void read(@NotNull BinaryReader reader) { + this.x = reader.readDouble(); + this.z = reader.readDouble(); + this.oldDiameter = reader.readDouble(); + this.newDiameter = reader.readDouble(); + this.speed = reader.readVarLong(); + this.portalTeleportBoundary = reader.readVarInt(); + this.warningTime = reader.readVarInt(); + this.warningBlocks = reader.readVarInt(); + } + + @Override + public int getId() { + return ServerPacketIdentifier.INITIALIZE_WORLD_BORDER; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/MapDataPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/MapDataPacket.java index b039e943b..3aa3d4390 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/MapDataPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/MapDataPacket.java @@ -17,8 +17,8 @@ public class MapDataPacket implements ComponentHoldingServerPacket { public int mapId; public byte scale; - public boolean trackingPosition; public boolean locked; + public boolean trackingPosition; public Icon[] icons = new Icon[0]; @@ -28,14 +28,15 @@ public class MapDataPacket implements ComponentHoldingServerPacket { public byte z; public byte[] data = new byte[0]; - public MapDataPacket() {} + public MapDataPacket() { + } @Override public void write(@NotNull BinaryWriter writer) { writer.writeVarInt(mapId); writer.writeByte(scale); - writer.writeBoolean(trackingPosition); writer.writeBoolean(locked); + writer.writeBoolean(trackingPosition); if (icons != null && icons.length > 0) { writer.writeVarInt(icons.length); @@ -67,8 +68,8 @@ public class MapDataPacket implements ComponentHoldingServerPacket { public void read(@NotNull BinaryReader reader) { mapId = reader.readVarInt(); scale = reader.readByte(); - trackingPosition = reader.readBoolean(); locked = reader.readBoolean(); + trackingPosition = reader.readBoolean(); int iconCount = reader.readVarInt(); icons = new Icon[iconCount]; @@ -78,7 +79,7 @@ public class MapDataPacket implements ComponentHoldingServerPacket { } columns = reader.readByte(); - if(columns <= 0) { + if (columns <= 0) { return; } @@ -159,7 +160,7 @@ public class MapDataPacket implements ComponentHoldingServerPacket { direction = reader.readByte(); boolean hasDisplayName = reader.readBoolean(); - if(hasDisplayName) { + if (hasDisplayName) { displayName = reader.readComponent(Integer.MAX_VALUE); } else { displayName = null; diff --git a/src/main/java/net/minestom/server/network/packet/server/play/PlayerPositionAndLookPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/PlayerPositionAndLookPacket.java index 52cd0b22f..4b354eec2 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/PlayerPositionAndLookPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/PlayerPositionAndLookPacket.java @@ -12,6 +12,7 @@ public class PlayerPositionAndLookPacket implements ServerPacket { public Position position; public byte flags; public int teleportId; + public boolean dismountVehicle; public PlayerPositionAndLookPacket() { position = new Position(); @@ -28,6 +29,7 @@ public class PlayerPositionAndLookPacket implements ServerPacket { writer.writeByte(flags); writer.writeVarInt(teleportId); + writer.writeBoolean(dismountVehicle); } @Override @@ -36,6 +38,7 @@ public class PlayerPositionAndLookPacket implements ServerPacket { flags = reader.readByte(); teleportId = reader.readVarInt(); + dismountVehicle = reader.readBoolean(); } @Override diff --git a/src/main/java/net/minestom/server/network/packet/server/play/ResourcePackSendPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/ResourcePackSendPacket.java index 070efaa59..fbe371565 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/ResourcePackSendPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/ResourcePackSendPacket.java @@ -1,5 +1,6 @@ package net.minestom.server.network.packet.server.play; +import net.kyori.adventure.text.Component; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.ServerPacketIdentifier; import net.minestom.server.utils.binary.BinaryReader; @@ -10,19 +11,26 @@ public class ResourcePackSendPacket implements ServerPacket { public String url = ""; public String hash = "0000000000000000000000000000000000000000"; // Size 40 + public boolean forced; + public Component forcedMessage = Component.empty(); - public ResourcePackSendPacket() {} + public ResourcePackSendPacket() { + } @Override public void write(@NotNull BinaryWriter writer) { writer.writeSizedString(url); writer.writeSizedString(hash); + writer.writeBoolean(forced); + writer.writeComponent(forcedMessage); } @Override public void read(@NotNull BinaryReader reader) { - url = reader.readSizedString(Integer.MAX_VALUE); - hash = reader.readSizedString(Integer.MAX_VALUE); + this.url = reader.readSizedString(Integer.MAX_VALUE); + this.hash = reader.readSizedString(Integer.MAX_VALUE); + this.forced = reader.readBoolean(); + this.forcedMessage = reader.readComponent(); } @Override diff --git a/src/main/java/net/minestom/server/network/packet/server/play/SculkVibrationSignal.java b/src/main/java/net/minestom/server/network/packet/server/play/SculkVibrationSignal.java index 1dd89f90d..7c593fadc 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/SculkVibrationSignal.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/SculkVibrationSignal.java @@ -1,17 +1,31 @@ package net.minestom.server.network.packet.server.play; import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.BlockPosition; +import net.minestom.server.utils.binary.BinaryReader; import net.minestom.server.utils.binary.BinaryWriter; import org.jetbrains.annotations.NotNull; public class SculkVibrationSignal implements ServerPacket { + + public BlockPosition position; + public String destinationIdentifier; + // TODO 'varies' destination + public int arrivalTicks; + @Override - public int getId() { - return 0; + public void read(@NotNull BinaryReader reader) { + } @Override public void write(@NotNull BinaryWriter writer) { } + + @Override + public int getId() { + return ServerPacketIdentifier.SCULK_VIBRATION_SIGNAL; + } } diff --git a/src/main/java/net/minestom/server/network/packet/server/play/SetTitleSubTitlePacket.java b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleSubTitlePacket.java new file mode 100644 index 000000000..a78f36c42 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleSubTitlePacket.java @@ -0,0 +1,28 @@ +package net.minestom.server.network.packet.server.play; + +import net.kyori.adventure.text.Component; +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class SetTitleSubTitlePacket implements ServerPacket { + + public Component subtitle = Component.empty(); + + @Override + public void read(@NotNull BinaryReader reader) { + this.subtitle = reader.readComponent(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeComponent(subtitle); + } + + @Override + public int getId() { + return ServerPacketIdentifier.SET_TITLE_SUBTITLE; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTextPacker.java b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTextPacker.java new file mode 100644 index 000000000..cb3c9b2ad --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTextPacker.java @@ -0,0 +1,28 @@ +package net.minestom.server.network.packet.server.play; + +import net.kyori.adventure.text.Component; +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class SetTitleTextPacker implements ServerPacket { + + public Component title = Component.empty(); + + @Override + public void read(@NotNull BinaryReader reader) { + this.title = reader.readComponent(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeComponent(title); + } + + @Override + public int getId() { + return ServerPacketIdentifier.SET_TITLE_TEXT; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTimePacket.java b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTimePacket.java new file mode 100644 index 000000000..d8f7c0d85 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/SetTitleTimePacket.java @@ -0,0 +1,34 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class SetTitleTimePacket implements ServerPacket { + + public int fadeIn; + public int stay; + public int fadeOut; + + @Override + public void read(@NotNull BinaryReader reader) { + this.fadeIn = reader.readInt(); + this.stay = reader.readInt(); + this.fadeOut = reader.readInt(); + + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeInt(fadeIn); + writer.writeInt(stay); + writer.writeInt(fadeOut); + } + + @Override + public int getId() { + return ServerPacketIdentifier.SET_TITLE_TIME; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderCenterPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderCenterPacket.java new file mode 100644 index 000000000..53b42315d --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderCenterPacket.java @@ -0,0 +1,30 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class WorldBorderCenterPacket implements ServerPacket { + + public double x; + public double z; + + @Override + public void read(@NotNull BinaryReader reader) { + this.x = reader.readDouble(); + this.z = reader.readDouble(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeDouble(x); + writer.writeDouble(z); + } + + @Override + public int getId() { + return ServerPacketIdentifier.WORLD_BORDER_CENTER; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderLerpSizePacket.java b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderLerpSizePacket.java new file mode 100644 index 000000000..7c93464b4 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderLerpSizePacket.java @@ -0,0 +1,33 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class WorldBorderLerpSizePacket implements ServerPacket { + + public double oldDiameter; + public double newDiameter; + public long speed; + + @Override + public void read(@NotNull BinaryReader reader) { + this.oldDiameter = reader.readDouble(); + this.newDiameter = reader.readDouble(); + this.speed = reader.readVarLong(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeDouble(oldDiameter); + writer.writeDouble(newDiameter); + writer.writeVarLong(speed); + } + + @Override + public int getId() { + return ServerPacketIdentifier.WORLD_BORDER_LERP_SIZE; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderSizePacket.java b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderSizePacket.java new file mode 100644 index 000000000..bfd12b2b0 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderSizePacket.java @@ -0,0 +1,27 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class WorldBorderSizePacket implements ServerPacket { + + public double diameter; + + @Override + public void read(@NotNull BinaryReader reader) { + this.diameter = reader.readDouble(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeDouble(diameter); + } + + @Override + public int getId() { + return ServerPacketIdentifier.WORLD_BORDER_SIZE; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningDelayPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningDelayPacket.java new file mode 100644 index 000000000..9173dd66d --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningDelayPacket.java @@ -0,0 +1,27 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class WorldBorderWarningDelayPacket implements ServerPacket { + + public int warningTime; + + @Override + public void read(@NotNull BinaryReader reader) { + this.warningTime = reader.readVarInt(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeVarInt(warningTime); + } + + @Override + public int getId() { + return ServerPacketIdentifier.WORLD_BORDER_WARNING_DELAY; + } +} diff --git a/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningReachPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningReachPacket.java new file mode 100644 index 000000000..2a0737510 --- /dev/null +++ b/src/main/java/net/minestom/server/network/packet/server/play/WorldBorderWarningReachPacket.java @@ -0,0 +1,27 @@ +package net.minestom.server.network.packet.server.play; + +import net.minestom.server.network.packet.server.ServerPacket; +import net.minestom.server.network.packet.server.ServerPacketIdentifier; +import net.minestom.server.utils.binary.BinaryReader; +import net.minestom.server.utils.binary.BinaryWriter; +import org.jetbrains.annotations.NotNull; + +public class WorldBorderWarningReachPacket implements ServerPacket { + + public int warningBlocks; + + @Override + public void read(@NotNull BinaryReader reader) { + this.warningBlocks = reader.readVarInt(); + } + + @Override + public void write(@NotNull BinaryWriter writer) { + writer.writeVarInt(warningBlocks); + } + + @Override + public int getId() { + return ServerPacketIdentifier.WORLD_BORDER_WARNING_REACH; + } +} diff --git a/src/main/java/net/minestom/server/utils/binary/BinaryReader.java b/src/main/java/net/minestom/server/utils/binary/BinaryReader.java index 596e12e86..d9239e5cb 100644 --- a/src/main/java/net/minestom/server/utils/binary/BinaryReader.java +++ b/src/main/java/net/minestom/server/utils/binary/BinaryReader.java @@ -200,6 +200,10 @@ public class BinaryReader extends InputStream { return GsonComponentSerializer.gson().deserialize(jsonObject); } + public Component readComponent() { + return readComponent(Integer.MAX_VALUE); + } + /** * Creates a new object from the given supplier and calls its {@link Readable#read(BinaryReader)} method with this reader. *