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
+ }
}