From dd59ddbd4f916148376eb33765b5c4ae92e4dff1 Mon Sep 17 00:00:00 2001 From: Joseph Burton Date: Wed, 19 Apr 2023 11:04:17 +0100 Subject: [PATCH] Add PlayerLookTargetProvider (#3299) --- .../Protocol1_13To1_12_2.java | 2 ++ .../providers/PlayerLookTargetProvider.java | 30 +++++++++++++++++++ .../storage/TabCompleteTracker.java | 6 +++- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/providers/PlayerLookTargetProvider.java diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java index 1b4f8f4e8..49e637bfb 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java @@ -55,6 +55,7 @@ import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets.Inventor import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets.WorldPackets; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.BlockEntityProvider; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.PaintingProvider; +import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.PlayerLookTargetProvider; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage.BlockConnectionStorage; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage.BlockStorage; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage.TabCompleteTracker; @@ -876,6 +877,7 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol. + */ +package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers; + +import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.minecraft.Position; +import com.viaversion.viaversion.api.platform.providers.Provider; +import org.checkerframework.checker.nullness.qual.Nullable; + +public class PlayerLookTargetProvider implements Provider { + @Nullable + public Position getPlayerLookTarget(final UserConnection info) { + return null; + } +} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/TabCompleteTracker.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/TabCompleteTracker.java index 8d12ee0db..c9024ace3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/TabCompleteTracker.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/TabCompleteTracker.java @@ -17,12 +17,15 @@ */ package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.storage; +import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.minecraft.Position; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.protocols.protocol1_12_1to1_12.ServerboundPackets1_12_1; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2; +import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.providers.PlayerLookTargetProvider; public class TabCompleteTracker implements StorableObject { private int transactionId; @@ -35,7 +38,8 @@ public class TabCompleteTracker implements StorableObject { PacketWrapper wrapper = PacketWrapper.create(ServerboundPackets1_12_1.TAB_COMPLETE, null, connection); wrapper.write(Type.STRING, lastTabComplete); wrapper.write(Type.BOOLEAN, false); - wrapper.write(Type.OPTIONAL_POSITION, null); + final Position playerLookTarget = Via.getManager().getProviders().get(PlayerLookTargetProvider.class).getPlayerLookTarget(connection); + wrapper.write(Type.OPTIONAL_POSITION, playerLookTarget); try { wrapper.scheduleSendToServer(Protocol1_13To1_12_2.class); } catch (Exception e) {