removed Old classes

This commit is contained in:
FlorianMichael 2023-04-19 04:40:40 +02:00
parent 78f8476fbc
commit 67a6424434
5 changed files with 36 additions and 29 deletions

View File

@ -15,28 +15,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package de.florianmichael.viafabricplus.definition.v1_12_2; package de.florianmichael.viafabricplus.injection.access;
import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentLinkedDeque;
public class SyncInputExecutor { public interface IMinecraftClient {
private final static ConcurrentLinkedDeque<Runnable> keyboardInteractions = new ConcurrentLinkedDeque<>();
private final static ConcurrentLinkedDeque<Runnable> mouseInteractions = new ConcurrentLinkedDeque<>();
public static void callback() { ConcurrentLinkedDeque<Runnable> viafabricplus_getMouseInteractions();
while (!mouseInteractions.isEmpty()) { ConcurrentLinkedDeque<Runnable> viafabricplus_getKeyboardInteractions();
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);
}
} }

View File

@ -22,10 +22,9 @@ import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.type.Type; 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_12to1_11_1.Protocol1_12To1_11_1;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ServerboundPackets1_9_3; 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.protocolhack.ProtocolHack;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings; import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayNetworkHandler;
@ -37,14 +36,17 @@ import net.minecraft.util.Hand;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; 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.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.Slice; import org.spongepowered.asm.mixin.injection.Slice;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.concurrent.ConcurrentLinkedDeque;
@Mixin(MinecraftClient.class) @Mixin(MinecraftClient.class)
public abstract class MixinMinecraftClient { public abstract class MixinMinecraftClient implements IMinecraftClient {
@Shadow @Shadow
@Nullable @Nullable
@ -94,13 +96,24 @@ public abstract class MixinMinecraftClient {
} }
} }
@Unique
private final ConcurrentLinkedDeque<Runnable> viafabricplus_mouseInteractions = new ConcurrentLinkedDeque<>();
@Unique
private final ConcurrentLinkedDeque<Runnable> viafabricplus_keyboardInteractions = new ConcurrentLinkedDeque<>();
@SuppressWarnings("ConstantConditions") @SuppressWarnings("ConstantConditions")
@Inject(method = "tick", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", @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)) ordinal = 4, shift = At.Shift.BEFORE))
public void injectTick(CallbackInfo ci) { public void injectTick(CallbackInfo ci) {
if (!DebugSettings.INSTANCE.executeInputsInSync.getValue()) return; 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")) @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<Runnable> viafabricplus_getMouseInteractions() {
return this.viafabricplus_mouseInteractions;
}
@Override
public ConcurrentLinkedDeque<Runnable> viafabricplus_getKeyboardInteractions() {
return this.viafabricplus_keyboardInteractions;
}
} }

View File

@ -18,7 +18,7 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.input; package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.input;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; 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.settings.groups.DebugSettings;
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
import net.minecraft.client.Keyboard; 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")) @Redirect(method = "*", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;execute(Ljava/lang/Runnable;)V"))
public void redirectSync(MinecraftClient instance, Runnable runnable) { public void redirectSync(MinecraftClient instance, Runnable runnable) {
if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) { if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) {
SyncInputExecutor.trackKeyboardInteraction(runnable); ((IMinecraftClient) MinecraftClient.getInstance()).viafabricplus_getKeyboardInteractions().add(runnable);
return; return;
} }

View File

@ -17,7 +17,7 @@
*/ */
package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.input; 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 de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.Mouse; 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")) @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) { public void redirectSync(MinecraftClient instance, Runnable runnable) {
if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) { if (DebugSettings.INSTANCE.executeInputsInSync.getValue()) {
SyncInputExecutor.trackMouseInteraction(runnable); ((IMinecraftClient) MinecraftClient.getInstance()).viafabricplus_getMouseInteractions().add(runnable);
return; return;
} }

View File

@ -314,7 +314,7 @@ public class MixinProtocol1_19_3To1_19_1 extends AbstractProtocol<ClientboundPac
); );
wrapper.write(Type.BYTE_ARRAY_PRIMITIVE, signature); wrapper.write(Type.BYTE_ARRAY_PRIMITIVE, signature);
wrapper.write(Type.BOOLEAN, false); // Signed Preview - not implemented yet, but i could do it wrapper.write(Type.BOOLEAN, false); // Signed Preview - not implemented yet, but I could do it
} }
} }
}); });