diff --git a/demo/src/main/java/net/minestom/demo/commands/DisplayCommand.java b/demo/src/main/java/net/minestom/demo/commands/DisplayCommand.java index 2ceba83c8..07b3701de 100644 --- a/demo/src/main/java/net/minestom/demo/commands/DisplayCommand.java +++ b/demo/src/main/java/net/minestom/demo/commands/DisplayCommand.java @@ -6,6 +6,7 @@ import net.minestom.server.command.CommandSender; import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.CommandContext; import net.minestom.server.command.builder.arguments.ArgumentType; +import net.minestom.server.coordinate.Vec; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.Player; @@ -41,6 +42,7 @@ public class DisplayCommand extends Command { var entity = new Entity(EntityType.ITEM_DISPLAY); var meta = (ItemDisplayMeta) entity.getEntityMeta(); + meta.setTransformationInterpolationDuration(20); meta.setItemStack(ItemStack.of(Material.STICK)); entity.setInstance(player.getInstance(), player.getPosition()); @@ -55,8 +57,9 @@ public class DisplayCommand extends Command { var entity = new Entity(EntityType.BLOCK_DISPLAY); var meta = (BlockDisplayMeta) entity.getEntityMeta(); - meta.setBlockState(Block.STONE_STAIRS.stateId()); - entity.setInstance(player.getInstance(), player.getPosition()); + meta.setTransformationInterpolationDuration(20); + meta.setBlockState(Block.ORANGE_CANDLE_CAKE.stateId()); + entity.setInstance(player.getInstance(), player.getPosition()).join(); if (context.has("follow")) { startSmoothFollow(entity, player); @@ -69,6 +72,7 @@ public class DisplayCommand extends Command { var entity = new Entity(EntityType.TEXT_DISPLAY); var meta = (TextDisplayMeta) entity.getEntityMeta(); + meta.setTransformationInterpolationDuration(20); meta.setBillboardRenderConstraints(AbstractDisplayMeta.BillboardConstraints.CENTER); meta.setText(Component.text("Hello, world!")); entity.setInstance(player.getInstance(), player.getPosition()); @@ -79,11 +83,16 @@ public class DisplayCommand extends Command { } private void startSmoothFollow(@NotNull Entity entity, @NotNull Player player) { +// entity.setCustomName(Component.text("MY CUSTOM NAME")); +// entity.setCustomNameVisible(true); MinecraftServer.getSchedulerManager().buildTask(() -> { var meta = (AbstractDisplayMeta) entity.getEntityMeta(); meta.setNotifyAboutChanges(false); - meta.setInterpolationStartDelta(1); - meta.setInterpolationDuration(20); + meta.setTransformationInterpolationStartDelta(1); + meta.setTransformationInterpolationDuration(20); +// meta.setPosRotInterpolationDuration(20); +// entity.teleport(player.getPosition()); +// meta.setScale(new Vec(5, 5, 5)); meta.setTranslation(player.getPosition().sub(entity.getPosition())); meta.setNotifyAboutChanges(true); }).delay(20, TimeUnit.SERVER_TICK).repeat(20, TimeUnit.SERVER_TICK).schedule(); diff --git a/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java b/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java index a53594815..44f078cd4 100644 --- a/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/display/AbstractDisplayMeta.java @@ -16,27 +16,27 @@ public class AbstractDisplayMeta extends EntityMeta { super(entity, metadata); } - public long getPosRotInterpolationDuration() { + public long getTransformationInterpolationStartDelta() { return super.metadata.getIndex(OFFSET, 0); } - public void setPosRotInterpolationDuration(int value) { + public void setTransformationInterpolationStartDelta(int value) { super.metadata.setIndex(OFFSET, Metadata.VarInt(value)); } - public long getTransformationInterpolationStartDelta() { + public int getTransformationInterpolationDuration() { return super.metadata.getIndex(OFFSET + 1, 0); } - public void setTransformationInterpolationStartDelta(int value) { + public void setTransformationInterpolationDuration(int value) { super.metadata.setIndex(OFFSET + 1, Metadata.VarInt(value)); } - public int getTransformationInterpolationDuration() { + public long getPosRotInterpolationDuration() { return super.metadata.getIndex(OFFSET + 2, 0); } - public void setTransformationInterpolationDuration(int value) { + public void setPosRotInterpolationDuration(int value) { super.metadata.setIndex(OFFSET + 2, Metadata.VarInt(value)); } diff --git a/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java b/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java index b0fa9959c..7720e663b 100644 --- a/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java +++ b/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java @@ -8,14 +8,12 @@ import net.minestom.server.listener.common.KeepAliveListener; import net.minestom.server.listener.common.PluginMessageListener; import net.minestom.server.listener.common.ResourcePackListener; import net.minestom.server.listener.common.SettingsListener; -import net.minestom.server.listener.preplay.ConfigurationListener; import net.minestom.server.listener.preplay.HandshakeListener; import net.minestom.server.listener.preplay.LoginListener; import net.minestom.server.listener.preplay.StatusListener; import net.minestom.server.network.ConnectionState; import net.minestom.server.network.packet.client.ClientPacket; import net.minestom.server.network.packet.client.common.*; -import net.minestom.server.network.packet.client.configuration.ClientFinishConfigurationPacket; import net.minestom.server.network.packet.client.handshake.ClientHandshakePacket; import net.minestom.server.network.packet.client.login.ClientEncryptionResponsePacket; import net.minestom.server.network.packet.client.login.ClientLoginAcknowledgedPacket; @@ -55,7 +53,6 @@ public final class PacketListenerManager { setConfigurationListener(ClientSettingsPacket.class, SettingsListener::listener); setConfigurationListener(ClientPluginMessagePacket.class, PluginMessageListener::listener); - setConfigurationListener(ClientFinishConfigurationPacket.class, ConfigurationListener::finishListener); setConfigurationListener(ClientKeepAlivePacket.class, KeepAliveListener::listener); setConfigurationListener(ClientPongPacket.class, (packet, player) -> {/* empty */}); setConfigurationListener(ClientResourcePackStatusPacket.class, ResourcePackListener::listener); diff --git a/src/main/java/net/minestom/server/listener/preplay/ConfigurationListener.java b/src/main/java/net/minestom/server/listener/preplay/ConfigurationListener.java deleted file mode 100644 index 1e44afb6c..000000000 --- a/src/main/java/net/minestom/server/listener/preplay/ConfigurationListener.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.minestom.server.listener.preplay; - -import net.minestom.server.MinecraftServer; -import net.minestom.server.entity.Player; -import net.minestom.server.network.ConnectionManager; -import net.minestom.server.network.packet.client.configuration.ClientFinishConfigurationPacket; -import org.jetbrains.annotations.NotNull; - -public final class ConfigurationListener { - - private static final ConnectionManager CONNECTION_MANAGER = MinecraftServer.getConnectionManager(); - - public static void finishListener(@NotNull ClientFinishConfigurationPacket packet, @NotNull Player player) { -// player.getPlayerConnection().setClientState(ConnectionState.PLAY); - - System.out.println("Finished configuration for " + player.getUsername() ); - - //todo move to play state - - } -}