From debc4bb8643aee5f42003bc13b8128c098ab900f Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Fri, 10 Mar 2023 00:23:05 +0100 Subject: [PATCH] updated Via*, removed outdated fixes added classic protocol extensions to debug hud --- gradle.properties | 2 +- .../injection/mixin/bridge/MixinDebugHud.java | 9 ++- .../MixinProtocolb1_8_0_1tob1_7_0_3.java | 50 -------------- .../viaversion/MixinProtocolVersion.java | 2 +- .../MixinConnectionData.java | 69 ------------------- .../MixinConnectionData_NeighbourUpdater.java | 42 ----------- .../settings/groups/DebugSettings.java | 1 - src/main/resources/viafabricplus.mixins.json | 17 ++--- 8 files changed, 15 insertions(+), 177 deletions(-) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinProtocolb1_8_0_1tob1_7_0_3.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData_NeighbourUpdater.java diff --git a/gradle.properties b/gradle.properties index c1f6a7b3..889cd722 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ archives_base_name=viafabricplus vialoadingbase_version=9d1d77d16e # viaversion (and required) libs -viaversion_version=4.6.0-1.19.4-pre3-SNAPSHOT +viaversion_version=4.6.0-1.19.4-rc1-SNAPSHOT viabackwards_version=4.6.0-1.19.4-pre3-SNAPSHOT snake_yml_version=2.0 diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/bridge/MixinDebugHud.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/bridge/MixinDebugHud.java index 58391476..98d6669f 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/bridge/MixinDebugHud.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/bridge/MixinDebugHud.java @@ -25,8 +25,8 @@ import de.florianmichael.viafabricplus.util.ScreenUtil; import de.florianmichael.vialoadingbase.ViaLoadingBase; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.DebugHud; -import net.minecraft.util.Formatting; import net.raphimc.vialegacy.api.LegacyProtocolVersion; +import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.storage.ExtensionProtocolMetadataStorage; import net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.storage.SeedStorage; import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.storage.EntityTracker; import org.spongepowered.asm.mixin.Mixin; @@ -36,7 +36,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; @Mixin(DebugHud.class) public class MixinDebugHud { @@ -72,6 +71,12 @@ public class MixinDebugHud { if (seedStorage != null) { information.add("World Seed (" + LegacyProtocolVersion.r1_1.getName() + "): " + seedStorage.seed); } + if (ViaLoadingBase.getClassWrapper().getTargetVersion().isEqualTo(LegacyProtocolVersion.c0_30cpe)) { + final ExtensionProtocolMetadataStorage extensionProtocolMetadataStorage = userConnection.get(ExtensionProtocolMetadataStorage.class); + if (extensionProtocolMetadataStorage != null) { + information.add("Classic extensions (" + LegacyProtocolVersion.c0_30cpe.getName() + "): " + extensionProtocolMetadataStorage.getExtensionCount()); + } + } } } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinProtocolb1_8_0_1tob1_7_0_3.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinProtocolb1_8_0_1tob1_7_0_3.java deleted file mode 100644 index 94c1ea60..00000000 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinProtocolb1_8_0_1tob1_7_0_3.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/MrLookAtMe (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.viafabricplus.injection.mixin.fixes.vialegacy; - -import com.viaversion.viaversion.api.protocol.AbstractProtocol; -import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.DownloadingTerrainScreen; -import net.raphimc.vialegacy.protocols.beta.protocol1_0_0_1tob1_8_0_1.ClientboundPacketsb1_8; -import net.raphimc.vialegacy.protocols.beta.protocol1_0_0_1tob1_8_0_1.ServerboundPacketsb1_8; -import net.raphimc.vialegacy.protocols.beta.protocolb1_8_0_1tob1_7_0_3.ClientboundPacketsb1_7; -import net.raphimc.vialegacy.protocols.beta.protocolb1_8_0_1tob1_7_0_3.Protocolb1_8_0_1tob1_7_0_3; -import net.raphimc.vialegacy.protocols.beta.protocolb1_8_0_1tob1_7_0_3.ServerboundPacketsb1_7; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(value = Protocolb1_8_0_1tob1_7_0_3.class, remap = false) -public class MixinProtocolb1_8_0_1tob1_7_0_3 extends AbstractProtocol { - - @Inject(method = "registerPackets", at = @At("RETURN")) - public void betterKeepAliveHandling(CallbackInfo ci) { - this.registerServerbound(ServerboundPacketsb1_8.KEEP_ALIVE, ServerboundPacketsb1_7.KEEP_ALIVE, new PacketHandlers() { - @Override - protected void register() { - handler(wrapper -> { - if (!(MinecraftClient.getInstance().currentScreen instanceof DownloadingTerrainScreen)) { - wrapper.cancel(); - } - }); - } - }, true); - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinProtocolVersion.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinProtocolVersion.java index e8b75466..e8ab0042 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinProtocolVersion.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinProtocolVersion.java @@ -46,7 +46,7 @@ public abstract class MixinProtocolVersion { protocolhack_remaps.put("1.16.4/5", new Pair<>("1.16.4-1.16.5", null)); protocolhack_remaps.put("1.18/1.18.1", new Pair<>("1.18-1.18.1", null)); protocolhack_remaps.put("1.19.1/2", new Pair<>("1.19.1-1.19.2", null)); - protocolhack_remaps.put("1.19.4", new Pair<>("1.19.4-pre3", null)); + protocolhack_remaps.put("1.19.4", new Pair<>("1.19.4-rc1", null)); } @Redirect(method = "", at = @At(value = "INVOKE", target = "Lcom/viaversion/viaversion/api/protocol/version/ProtocolVersion;register(ILjava/lang/String;)Lcom/viaversion/viaversion/api/protocol/version/ProtocolVersion;")) diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData.java deleted file mode 100644 index a0b0457c..00000000 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/MrLookAtMe (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.viafabricplus.injection.mixin.fixes.viaversion.protocol1_13to1_12_2; - -import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.api.minecraft.BlockFace; -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.libs.fastutil.ints.Int2ObjectMap; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ClientboundPackets1_13; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionData; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionHandler; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.providers.BlockConnectionProvider; -import de.florianmichael.viafabricplus.settings.groups.DebugSettings; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(value = ConnectionData.class, remap = false) -public class MixinConnectionData { - - @Shadow private static Int2ObjectMap connectionHandlerMap; - - @Shadow public static BlockConnectionProvider blockConnectionProvider; - - /** - * @author FlorianMichael - * @reason prevent block spam - */ - @Overwrite - public static void update(UserConnection user, Position position) { - for (BlockFace face : BlockFace.values()) { - Position pos = position.getRelative(face); - int blockState = blockConnectionProvider.getBlockData(user, pos.x(), pos.y(), pos.z()); - ConnectionHandler handler = connectionHandlerMap.get(blockState); - if (handler == null) continue; - - final int newBlockState = handler.connect(user, pos, blockState); - if (DebugSettings.getClassWrapper().cancelEqualBlockChangeUpdates.getValue()) { - if (blockState == newBlockState) continue; - } - PacketWrapper blockUpdatePacket = PacketWrapper.create(ClientboundPackets1_13.BLOCK_CHANGE, null, user); - blockUpdatePacket.write(Type.POSITION, pos); - blockUpdatePacket.write(Type.VAR_INT, newBlockState); - try { - blockUpdatePacket.send(Protocol1_13To1_12_2.class); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData_NeighbourUpdater.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData_NeighbourUpdater.java deleted file mode 100644 index c19d0153..00000000 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/protocol1_13to1_12_2/MixinConnectionData_NeighbourUpdater.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/MrLookAtMe (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.viafabricplus.injection.mixin.fixes.viaversion.protocol1_13to1_12_2; - -import com.viaversion.viaversion.api.minecraft.BlockChangeRecord1_8; -import com.viaversion.viaversion.api.minecraft.Position; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionData; -import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionHandler; -import de.florianmichael.viafabricplus.settings.groups.DebugSettings; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import java.util.List; - -// Copyright RaphiMC/RK_01 - LICENSE file -@Mixin(value = ConnectionData.NeighbourUpdater.class, remap = false) -public class MixinConnectionData_NeighbourUpdater { - - @Inject(method = "updateBlock", at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z"), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) - public void preventBlockSpam(int x, int y, int z, List records, CallbackInfo ci, int blockState, ConnectionHandler handler, Position position, int newBlockState) { - if (!DebugSettings.getClassWrapper().cancelEqualBlockChangeUpdates.getValue()) return; - if (blockState == newBlockState) ci.cancel(); - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/groups/DebugSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/groups/DebugSettings.java index a2e9a15a..e50b6448 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/groups/DebugSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/groups/DebugSettings.java @@ -35,7 +35,6 @@ public class DebugSettings extends SettingGroup { // 1.13 -> 1.12.2 public final ProtocolSyncBooleanSetting executeInputsInSync = new ProtocolSyncBooleanSetting(this, "Execute inputs in sync", ProtocolRange.andOlder(ProtocolVersion.v1_12_2)); public final ProtocolSyncBooleanSetting sneakInstant = new ProtocolSyncBooleanSetting(this, "Sneak instant", new ProtocolRange(ProtocolVersion.v1_12_2, ProtocolVersion.v1_8)); - public final ProtocolSyncBooleanSetting cancelEqualBlockChangeUpdates = new ProtocolSyncBooleanSetting(this, "Cancel equal block change updates", ProtocolRange.andOlder(ProtocolVersion.v1_12_2)); // 1.12 -> 1.11.1-1.11.2 public final ProtocolSyncBooleanSetting sendOpenInventoryPacket = new ProtocolSyncBooleanSetting(this, "Send open inventory packet", ProtocolRange.andOlder(ProtocolVersion.v1_11_1)); diff --git a/src/main/resources/viafabricplus.mixins.json b/src/main/resources/viafabricplus.mixins.json index d909a220..c6916190 100644 --- a/src/main/resources/viafabricplus.mixins.json +++ b/src/main/resources/viafabricplus.mixins.json @@ -3,7 +3,7 @@ "minVersion": "0.8", "package": "de.florianmichael.viafabricplus.injection.mixin", "compatibilityLevel": "JAVA_17", - "mixins": [ + "client": [ "base.MixinClientConnection", "base.MixinClientConnection_1", "base.MixinClientLoginNetworkHandler", @@ -101,7 +101,6 @@ "fixes.vialegacy.MixinClientboundPacketsc0_30cpe", "fixes.vialegacy.MixinExtensionProtocolMetadataStorage", "fixes.vialegacy.MixinProtocol1_8to1_7_6_10", - "fixes.vialegacy.MixinProtocolb1_8_0_1tob1_7_0_3", "fixes.vialegacy.MixinProtocolc0_30toc0_30cpe", "fixes.vialoadingbase.MixinVLBViaConfig", "fixes.viaversion.MixinCommonBoss", @@ -109,8 +108,6 @@ "fixes.viaversion.protocol1_11to1_10.MixinProtocol1_11To1_10", "fixes.viaversion.protocol1_12to1_11_1.MixinChatItemRewriter", "fixes.viaversion.protocol1_13to1_12_2.MixinAbstractFenceConnectionHandler", - "fixes.viaversion.protocol1_13to1_12_2.MixinConnectionData", - "fixes.viaversion.protocol1_13to1_12_2.MixinConnectionData_NeighbourUpdater", "fixes.viaversion.protocol1_13to1_12_2.MixinGlassConnectionHandler", "fixes.viaversion.protocol1_13to1_12_2.MixinWorldPackets1_13", "fixes.viaversion.protocol1_14to1_13_2.MixinInventoryPackets_2", @@ -130,12 +127,7 @@ "fixes.viaversion.protocol1_9to1_8.MixinEntityTracker1_9", "fixes.viaversion.protocol1_9to1_8.MixinMetadataRewriter1_9To1_8", "fixes.viaversion.protocol1_9to1_8.MixinMovementTracker", - "fixes.viaversion.protocol1_9to1_8.MixinViaIdleThread" - ], - "injectors": { - "defaultRequire": 1 - }, - "client": [ + "fixes.viaversion.protocol1_9to1_8.MixinViaIdleThread", "bridge.MixinConnectScreen", "bridge.MixinDownloadingTerrainScreen", "bridge.MixinOptionsScreen", @@ -147,5 +139,8 @@ "fixes.screen.MixinCreativeInventoryScreen", "fixes.screen.MixinJigsawBlockScreen", "fixes.screen.hud.MixinChatHud" - ] + ], + "injectors": { + "defaultRequire": 1 + } }