From 67a6424434e301f88b8c06fce8dc54d38327c768 Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Wed, 19 Apr 2023 04:40:40 +0200 Subject: [PATCH] removed Old classes --- .../access/IMinecraftClient.java} | 24 +++----------- .../fixes/minecraft/MixinMinecraftClient.java | 31 ++++++++++++++++--- .../fixes/minecraft/input/MixinKeyboard.java | 4 +-- .../fixes/minecraft/input/MixinMouse.java | 4 +-- .../MixinProtocol1_19_3To1_19_1.java | 2 +- 5 files changed, 36 insertions(+), 29 deletions(-) rename src/main/java/de/florianmichael/viafabricplus/{definition/v1_12_2/SyncInputExecutor.java => injection/access/IMinecraftClient.java} (51%) diff --git a/src/main/java/de/florianmichael/viafabricplus/definition/v1_12_2/SyncInputExecutor.java b/src/main/java/de/florianmichael/viafabricplus/injection/access/IMinecraftClient.java similarity index 51% rename from src/main/java/de/florianmichael/viafabricplus/definition/v1_12_2/SyncInputExecutor.java rename to src/main/java/de/florianmichael/viafabricplus/injection/access/IMinecraftClient.java index eb9e5bab..471b28ff 100644 --- a/src/main/java/de/florianmichael/viafabricplus/definition/v1_12_2/SyncInputExecutor.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/access/IMinecraftClient.java @@ -15,28 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.definition.v1_12_2; +package de.florianmichael.viafabricplus.injection.access; import java.util.concurrent.ConcurrentLinkedDeque; -public class SyncInputExecutor { - private final static ConcurrentLinkedDeque keyboardInteractions = new ConcurrentLinkedDeque<>(); - private final static ConcurrentLinkedDeque mouseInteractions = new ConcurrentLinkedDeque<>(); +public interface IMinecraftClient { - public static void callback() { - while (!mouseInteractions.isEmpty()) { - mouseInteractions.poll().run(); - } - while (!keyboardInteractions.isEmpty()) { - keyboardInteractions.poll().run(); - } - } - - public static void trackKeyboardInteraction(Runnable interaction) { - keyboardInteractions.add(interaction); - } - - public static void trackMouseInteraction(Runnable interaction) { - mouseInteractions.add(interaction); - } + ConcurrentLinkedDeque viafabricplus_getMouseInteractions(); + ConcurrentLinkedDeque viafabricplus_getKeyboardInteractions(); } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java index e02a35e6..5470130f 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java @@ -22,10 +22,9 @@ import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.Protocol1_12To1_11_1; import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ServerboundPackets1_9_3; -import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor; +import de.florianmichael.viafabricplus.injection.access.IMinecraftClient; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.groups.DebugSettings; -import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; @@ -37,14 +36,17 @@ import net.minecraft.util.Hand; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.Slice; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.concurrent.ConcurrentLinkedDeque; + @Mixin(MinecraftClient.class) -public abstract class MixinMinecraftClient { +public abstract class MixinMinecraftClient implements IMinecraftClient { @Shadow @Nullable @@ -94,13 +96,24 @@ public abstract class MixinMinecraftClient { } } + @Unique + private final ConcurrentLinkedDeque viafabricplus_mouseInteractions = new ConcurrentLinkedDeque<>(); + + @Unique + private final ConcurrentLinkedDeque viafabricplus_keyboardInteractions = new ConcurrentLinkedDeque<>(); + @SuppressWarnings("ConstantConditions") @Inject(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", ordinal = 4, shift = At.Shift.BEFORE)) public void injectTick(CallbackInfo ci) { if (!DebugSettings.INSTANCE.executeInputsInSync.getValue()) return; - SyncInputExecutor.callback(); + while (!viafabricplus_mouseInteractions.isEmpty()) { + viafabricplus_mouseInteractions.poll().run(); + } + while (!viafabricplus_keyboardInteractions.isEmpty()) { + viafabricplus_keyboardInteractions.poll().run(); + } } @Inject(method = "handleInputEvents", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;hasRidingInventory()Z")) @@ -116,4 +129,14 @@ public abstract class MixinMinecraftClient { } } } + + @Override + public ConcurrentLinkedDeque viafabricplus_getMouseInteractions() { + return this.viafabricplus_mouseInteractions; + } + + @Override + public ConcurrentLinkedDeque viafabricplus_getKeyboardInteractions() { + return this.viafabricplus_keyboardInteractions; + } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinKeyboard.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinKeyboard.java index d8da33d1..8595ec32 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinKeyboard.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinKeyboard.java @@ -18,7 +18,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.input; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor; +import de.florianmichael.viafabricplus.injection.access.IMinecraftClient; import de.florianmichael.viafabricplus.settings.groups.DebugSettings; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.client.Keyboard; @@ -34,7 +34,7 @@ public class MixinKeyboard { @Redirect(method = "*", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;execute(Ljava/lang/Runnable;)V")) public void redirectSync(MinecraftClient instance, Runnable runnable) { if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) { - SyncInputExecutor.trackKeyboardInteraction(runnable); + ((IMinecraftClient) MinecraftClient.getInstance()).viafabricplus_getKeyboardInteractions().add(runnable); return; } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinMouse.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinMouse.java index fba3dbdc..7dc31574 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinMouse.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/input/MixinMouse.java @@ -17,7 +17,7 @@ */ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.input; -import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor; +import de.florianmichael.viafabricplus.injection.access.IMinecraftClient; import de.florianmichael.viafabricplus.settings.groups.DebugSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; @@ -31,7 +31,7 @@ public class MixinMouse { @Redirect(method = { "method_29615", "method_22685", "method_22684" }, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;execute(Ljava/lang/Runnable;)V")) public void redirectSync(MinecraftClient instance, Runnable runnable) { if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) { - SyncInputExecutor.trackMouseInteraction(runnable); + ((IMinecraftClient) MinecraftClient.getInstance()).viafabricplus_getMouseInteractions().add(runnable); return; } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_19_3to1_19_1/MixinProtocol1_19_3To1_19_1.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_19_3to1_19_1/MixinProtocol1_19_3To1_19_1.java index 78b35ffc..8c03d19c 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_19_3to1_19_1/MixinProtocol1_19_3To1_19_1.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_19_3to1_19_1/MixinProtocol1_19_3To1_19_1.java @@ -314,7 +314,7 @@ public class MixinProtocol1_19_3To1_19_1 extends AbstractProtocol