diff --git a/viaforge-mc1122/src/main/java/de/florianmichael/viaforge/mixin/impl/fixes/MixinEntityPlayerSP.java b/viaforge-mc1122/src/main/java/de/florianmichael/viaforge/mixin/impl/fixes/MixinEntityPlayerSP.java deleted file mode 100644 index 7a8774a..0000000 --- a/viaforge-mc1122/src/main/java/de/florianmichael/viaforge/mixin/impl/fixes/MixinEntityPlayerSP.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.impl.fixes; - -import com.mojang.authlib.GameProfile; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.entity.EntityPlayerSP; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(EntityPlayerSP.class) -public class MixinEntityPlayerSP extends AbstractClientPlayer { - - @Shadow private boolean prevOnGround; - - public MixinEntityPlayerSP(World worldIn, GameProfile playerProfile) { - super(worldIn, playerProfile); - } - - @Redirect(method = "onUpdateWalkingPlayer", at = @At(value = "FIELD", target = "Lnet/minecraft/client/entity/EntityPlayerSP;prevOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(EntityPlayerSP instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return prevOnGround; - } - -} diff --git a/viaforge-mc1122/src/main/resources/mixins.viaforge-mc1122.json b/viaforge-mc1122/src/main/resources/mixins.viaforge-mc1122.json index ff30943..d218944 100644 --- a/viaforge-mc1122/src/main/resources/mixins.viaforge-mc1122.json +++ b/viaforge-mc1122/src/main/resources/mixins.viaforge-mc1122.json @@ -15,8 +15,7 @@ "connect.MixinNetworkManager", "connect.MixinNetworkManager_5", "MixinServerData", - "connect.MixinServerPinger", - "fixes.MixinEntityPlayerSP" + "connect.MixinServerPinger" ], "verbose": true } diff --git a/viaforge-mc1165/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinClientPlayerEntity.java b/viaforge-mc1165/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinClientPlayerEntity.java deleted file mode 100644 index c1410b4..0000000 --- a/viaforge-mc1165/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinClientPlayerEntity.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.entity.player.AbstractClientPlayerEntity; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.world.ClientWorld; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(ClientPlayerEntity.class) -public class MixinClientPlayerEntity extends AbstractClientPlayerEntity { - - @Shadow private boolean lastOnGround; - - public MixinClientPlayerEntity(ClientWorld world, GameProfile profile) { - super(world, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/entity/player/ClientPlayerEntity;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(ClientPlayerEntity instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return lastOnGround; - } - -} diff --git a/viaforge-mc1165/src/main/resources/mixins.viaforge-mc1165.json b/viaforge-mc1165/src/main/resources/mixins.viaforge-mc1165.json index 070fbee..3cdcaa8 100644 --- a/viaforge-mc1165/src/main/resources/mixins.viaforge-mc1165.json +++ b/viaforge-mc1165/src/main/resources/mixins.viaforge-mc1165.json @@ -14,8 +14,7 @@ "connect.MixinNetworkManager_1", "MixinServerData", "MixinServerListScreen", - "connect.MixinServerPinger", - "fixes.MixinClientPlayerEntity" + "connect.MixinServerPinger" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1171/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1171/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index c7917f2..0000000 --- a/viaforge-mc1171/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1171/src/main/resources/mixins.viaforge-mc1171.json b/viaforge-mc1171/src/main/resources/mixins.viaforge-mc1171.json index a49cf02..32f5fee 100644 --- a/viaforge-mc1171/src/main/resources/mixins.viaforge-mc1171.json +++ b/viaforge-mc1171/src/main/resources/mixins.viaforge-mc1171.json @@ -13,8 +13,7 @@ "MixinJoinMultiplayerScreen", "MixinServerData", "connect.MixinServerStatusPinger", - "MixinTitleScreen", - "fixes.MixinLocalPlayer", + "MixinTitleScreen" "connect.MixinConnection_1", "connect.MixinConnectScreen_1" ], diff --git a/viaforge-mc1182/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1182/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index c7917f2..0000000 --- a/viaforge-mc1182/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1182/src/main/resources/mixins.viaforge-mc1182.json b/viaforge-mc1182/src/main/resources/mixins.viaforge-mc1182.json index 32592d8..6611205 100644 --- a/viaforge-mc1182/src/main/resources/mixins.viaforge-mc1182.json +++ b/viaforge-mc1182/src/main/resources/mixins.viaforge-mc1182.json @@ -14,8 +14,7 @@ "MixinJoinMultiplayerScreen", "MixinServerData", "connect.MixinServerStatusPinger", - "MixinTitleScreen", - "fixes.MixinLocalPlayer" + "MixinTitleScreen" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1192/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1192/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index 1414926..0000000 --- a/viaforge-mc1192/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import net.minecraft.world.entity.player.ProfilePublicKey; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel p_234112_, GameProfile p_234113_, @Nullable ProfilePublicKey p_234114_) { - super(p_234112_, p_234113_, p_234114_); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1192/src/main/resources/mixins.viaforge-mc1192.json b/viaforge-mc1192/src/main/resources/mixins.viaforge-mc1192.json index 19aba83..b79cf08 100644 --- a/viaforge-mc1192/src/main/resources/mixins.viaforge-mc1192.json +++ b/viaforge-mc1192/src/main/resources/mixins.viaforge-mc1192.json @@ -14,8 +14,7 @@ "MixinJoinMultiplayerScreen", "MixinServerData", "connect.MixinServerStatusPinger", - "MixinTitleScreen", - "fixes.MixinLocalPlayer" + "MixinTitleScreen" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1194/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1194/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index c7917f2..0000000 --- a/viaforge-mc1194/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround; - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1194/src/main/resources/mixins.viaforge-mc1194.json b/viaforge-mc1194/src/main/resources/mixins.viaforge-mc1194.json index 1a327c5..79f0ae4 100644 --- a/viaforge-mc1194/src/main/resources/mixins.viaforge-mc1194.json +++ b/viaforge-mc1194/src/main/resources/mixins.viaforge-mc1194.json @@ -14,8 +14,7 @@ "MixinJoinMultiplayerScreen", "MixinServerData", "connect.MixinServerStatusPinger", - "MixinTitleScreen", - "fixes.MixinLocalPlayer" + "MixinTitleScreen" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1204/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1204/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index d5e2e35..0000000 --- a/viaforge-mc1204/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround(); - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1204/src/main/resources/mixins.viaforge-mc1204.json b/viaforge-mc1204/src/main/resources/mixins.viaforge-mc1204.json index 68365b9..403eb09 100644 --- a/viaforge-mc1204/src/main/resources/mixins.viaforge-mc1204.json +++ b/viaforge-mc1204/src/main/resources/mixins.viaforge-mc1204.json @@ -14,8 +14,7 @@ "connect.MixinConnection", "connect.MixinConnection_1", "connect.MixinConnectScreen_1", - "connect.MixinServerStatusPinger", - "fixes.MixinLocalPlayer" + "connect.MixinServerStatusPinger" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1206/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1206/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index 33bf8b8..0000000 --- a/viaforge-mc1206/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow - private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround(); - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1206/src/main/resources/mixins.viaforge-mc1206.json b/viaforge-mc1206/src/main/resources/mixins.viaforge-mc1206.json index c69d77d..1066e31 100644 --- a/viaforge-mc1206/src/main/resources/mixins.viaforge-mc1206.json +++ b/viaforge-mc1206/src/main/resources/mixins.viaforge-mc1206.json @@ -14,8 +14,7 @@ "connect.MixinConnection", "connect.MixinConnection_1", "connect.MixinConnectScreen_1", - "connect.MixinServerStatusPinger", - "fixes.MixinLocalPlayer" + "connect.MixinServerStatusPinger" ], "injectors": { "defaultRequire": 1 diff --git a/viaforge-mc1214/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java b/viaforge-mc1214/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java deleted file mode 100644 index d5e2e35..0000000 --- a/viaforge-mc1214/src/main/java/de/florianmichael/viaforge/mixin/fixes/MixinLocalPlayer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge - * Copyright (C) 2021-2025 FlorianMichael/EnZaXD and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viaforge.mixin.fixes; - -import com.mojang.authlib.GameProfile; -import de.florianmichael.viaforge.common.ViaForgeCommon; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.player.LocalPlayer; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LocalPlayer.class) -public class MixinLocalPlayer extends AbstractClientPlayer { - - @Shadow private boolean lastOnGround; - - public MixinLocalPlayer(ClientLevel level, GameProfile profile) { - super(level, profile); - } - - @Redirect(method = "sendPosition", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;lastOnGround:Z", ordinal = 0)) - public boolean emulateIdlePacket(LocalPlayer instance) { - if (ViaForgeCommon.getManager().getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_8)) { - // <= 1.8 spams the idle packet instead of only sending it when the ground state changes - // So we invert the original logic: - // if (prevOnGround != onGround) sendPacket - // To be like: - // if (!onGround != onGround) sendPacket - // Which is the same as: - // if (true) sendPacket - return !onGround(); - } - return lastOnGround; - } - -} \ No newline at end of file diff --git a/viaforge-mc1214/src/main/resources/mixins.viaforge-mc1214.json b/viaforge-mc1214/src/main/resources/mixins.viaforge-mc1214.json index c69d77d..1066e31 100644 --- a/viaforge-mc1214/src/main/resources/mixins.viaforge-mc1214.json +++ b/viaforge-mc1214/src/main/resources/mixins.viaforge-mc1214.json @@ -14,8 +14,7 @@ "connect.MixinConnection", "connect.MixinConnection_1", "connect.MixinConnectScreen_1", - "connect.MixinServerStatusPinger", - "fixes.MixinLocalPlayer" + "connect.MixinServerStatusPinger" ], "injectors": { "defaultRequire": 1