From b8152d13ca55a734ecc12418bd12bc917868d6d1 Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:15:28 +0100 Subject: [PATCH] Cleaned source code tree --- ....java => ActionResultException1_12_2.java} | 4 +- ...istener.java => ArmorHudEmulation1_8.java} | 2 +- .../viafabricplus/fixes/BlockFixes.java | 74 ------------------- .../fixes/ChestHandler1_13_2.java | 50 ------------- .../ClientPlayerInteractionManager1_18_2.java | 41 +++------- .../viafabricplus/fixes/ClientsideFixes.java | 37 ++++++++-- .../ClassicItemSelectionScreen.java | 70 +++--------------- .../ClassicWorldHeightInjections.java | 2 +- .../CustomClassicProtocolExtensions.java | 6 +- .../{impl => }/ListExtensionsCommand.java | 3 +- .../command/{impl => }/SetTimeCommand.java | 3 +- .../{diff => data}/ItemRegistryDiff.java | 2 +- .../fixes/{diff => data}/Material1_19_4.java | 2 +- .../{diff => data}/RenderableGlyphDiff.java | 2 +- .../recipe/AddBannerPatternRecipe.java | 2 +- .../recipe/BannerPattern_1_13_2.java | 2 +- .../fixes/{ => data}/recipe/RecipeInfo.java | 2 +- .../{ => data}/recipe/Recipes1_11_2.java | 2 +- .../fixes/{boat => entity}/BoatModel1_8.java | 2 +- .../{boat => entity}/BoatRenderer1_8.java | 2 +- .../EntityDimensionReplacements.java} | 4 +- .../EntityRidingOffsetsPre1_20_2.java} | 4 +- .../replacement}/BuiltinEmptyGlyph1_12_2.java | 2 +- .../replacement}/KeyPairResponse1_19_0.java | 2 +- .../PendingUpdateManager1_18_2.java | 2 +- .../authlib/MixinYggdrasilUserApiService.java | 2 +- .../fixes/minecraft/MixinClientWorld.java | 2 +- .../fixes/minecraft/MixinFlowableFluid.java | 2 +- .../fixes/minecraft/MixinFontStorage.java | 4 +- .../fixes/minecraft/MixinMinecraftClient.java | 2 +- .../mixin/fixes/minecraft/MixinMouse.java | 4 +- .../minecraft/block/MixinSoulSandBlock.java | 8 ++ .../minecraft/entity/MixinBoatEntity.java | 6 +- .../fixes/minecraft/entity/MixinEntity.java | 6 +- .../minecraft/entity/MixinEntityModels.java | 2 +- .../entity/MixinEntityRenderDispatcher.java | 2 +- .../minecraft/entity/MixinLivingEntity.java | 6 +- .../fixes/minecraft/item/MixinAxeItem.java | 2 +- .../item/MixinItemGroup_EntriesImpl.java | 2 +- .../item/MixinItemPlacementContext.java | 2 +- .../minecraft/item/MixinPickaxeItem.java | 2 +- .../MixinClientPlayNetworkHandler.java | 4 +- .../MixinClientPlayerInteractionManager.java | 12 +-- .../screen/MixinCreativeInventoryScreen.java | 2 +- .../screen/MixinMouseOptionsScreen.java | 4 +- .../MixinCraftingScreenHandler.java | 2 +- .../MixinPlayerScreenHandler.java | 2 +- .../viaversion/MixinEntityPackets1_17.java | 2 +- .../viaversion/MixinInventoryPackets.java | 28 ++++++- .../viaversion/MixinUserConnectionImpl.java | 2 +- .../viaversion/MixinWorldPackets1_17.java | 2 +- .../viaversion/MixinWorldPackets1_19.java | 15 +++- .../protocolhack/ProtocolHack.java | 2 +- .../ViaFabricPlusVLCommandHandler.java | 4 +- .../util/MathUtil.java} | 4 +- .../util/NoPacketSendChannel.java | 7 +- 56 files changed, 171 insertions(+), 299 deletions(-) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ActionResultException.java => ActionResultException1_12_2.java} (89%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ArmorUpdateListener.java => ArmorHudEmulation1_8.java} (98%) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/fixes/BlockFixes.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/fixes/ChestHandler1_13_2.java rename src/main/java/de/florianmichael/viafabricplus/fixes/classic/{screen => }/ClassicItemSelectionScreen.java (60%) rename src/main/java/de/florianmichael/viafabricplus/{injection/reference => fixes/classic}/ClassicWorldHeightInjections.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/{impl => }/ListExtensionsCommand.java (93%) rename src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/{impl => }/SetTimeCommand.java (93%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{diff => data}/ItemRegistryDiff.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{diff => data}/Material1_19_4.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{diff => data}/RenderableGlyphDiff.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => data}/recipe/AddBannerPatternRecipe.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => data}/recipe/BannerPattern_1_13_2.java (98%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => data}/recipe/RecipeInfo.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => data}/recipe/Recipes1_11_2.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{boat => entity}/BoatModel1_8.java (98%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{boat => entity}/BoatRenderer1_8.java (98%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{EntityHitboxUpdateListener.java => entity/EntityDimensionReplacements.java} (98%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{EntityHeightOffsetsPre1_20_2.java => entity/EntityRidingOffsetsPre1_20_2.java} (98%) rename src/main/java/de/florianmichael/viafabricplus/{injection/reference => fixes/replacement}/BuiltinEmptyGlyph1_12_2.java (96%) rename src/main/java/de/florianmichael/viafabricplus/{injection/reference => fixes/replacement}/KeyPairResponse1_19_0.java (95%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => replacement}/PendingUpdateManager1_18_2.java (96%) rename src/main/java/de/florianmichael/viafabricplus/{util/MouseSensitivityUtil.java => protocolhack/util/MathUtil.java} (93%) rename src/main/java/de/florianmichael/viafabricplus/{ => protocolhack}/util/NoPacketSendChannel.java (72%) diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException1_12_2.java similarity index 89% rename from src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException1_12_2.java index c24a9e74..1df1c4ca 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ActionResultException1_12_2.java @@ -21,11 +21,11 @@ package de.florianmichael.viafabricplus.fixes; import net.minecraft.util.ActionResult; -public class ActionResultException extends RuntimeException { +public class ActionResultException1_12_2 extends RuntimeException { private final ActionResult actionResult; - public ActionResultException(final ActionResult actionResult) { + public ActionResultException1_12_2(final ActionResult actionResult) { this.actionResult = actionResult; } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ArmorUpdateListener.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ArmorHudEmulation1_8.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/ArmorUpdateListener.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/ArmorHudEmulation1_8.java index 6d7efa19..fc1eb481 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ArmorUpdateListener.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ArmorHudEmulation1_8.java @@ -34,7 +34,7 @@ import net.minecraft.registry.Registries; import java.util.UUID; -public class ArmorUpdateListener { +public class ArmorHudEmulation1_8 { private static final UUID ARMOR_POINTS_UUID = UUID.fromString("2AD3F246-FEE1-4E67-B886-69FD380BB150"); diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/BlockFixes.java b/src/main/java/de/florianmichael/viafabricplus/fixes/BlockFixes.java deleted file mode 100644 index d8cfb6fe..00000000 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/BlockFixes.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC 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.fixes; - -import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; -import net.minecraft.block.*; -import net.minecraft.client.MinecraftClient; -import net.minecraft.registry.Registries; -import net.raphimc.vialoader.util.VersionEnum; - -public class BlockFixes { - - private static final float DEFAULT_SOUL_SAND_VELOCITY_MULTIPLIER = Blocks.SOUL_SAND.getVelocityMultiplier(); - private static final float _1_14_4_SOUL_SAND_VELOCITY_MULTIPLIER = 1F; - - public static void init() { - ChangeProtocolVersionCallback.EVENT.register((oldVersion, newVersion) -> MinecraftClient.getInstance().execute(() -> { - // Soul sand velocity multiplier - if (isNewerThan(oldVersion, newVersion, VersionEnum.r1_14_4)) { - Blocks.SOUL_SAND.velocityMultiplier = DEFAULT_SOUL_SAND_VELOCITY_MULTIPLIER; - } - if (isOlderThanOrEqualTo(oldVersion, newVersion, VersionEnum.r1_14_4)) { - Blocks.SOUL_SAND.velocityMultiplier = _1_14_4_SOUL_SAND_VELOCITY_MULTIPLIER; - } - - // Reloads all bounding boxes - for (Block block : Registries.BLOCK) { - if (block instanceof AnvilBlock || block instanceof BedBlock || block instanceof BrewingStandBlock - || block instanceof CarpetBlock || block instanceof CauldronBlock || block instanceof ChestBlock - || block instanceof EnderChestBlock || block instanceof EndPortalBlock || block instanceof EndPortalFrameBlock - || block instanceof FarmlandBlock || block instanceof FenceBlock || block instanceof FenceGateBlock - || block instanceof HopperBlock || block instanceof LadderBlock || block instanceof LeavesBlock - || block instanceof LilyPadBlock || block instanceof PaneBlock || block instanceof PistonBlock - || block instanceof PistonHeadBlock || block instanceof SnowBlock || block instanceof WallBlock - || block instanceof CropBlock || block instanceof FlowerbedBlock - ) { - for (BlockState state : block.getStateManager().getStates()) { - state.initShapeCache(); - } - } - } - })); - } - - private static boolean isOlderThanOrEqualTo(final VersionEnum oldVersion, final VersionEnum newVersion, final VersionEnum toCheck) { - return oldVersion.isNewerThan(toCheck) && newVersion.isOlderThanOrEqualTo(toCheck); - } - - private static boolean isNewerThan(final VersionEnum oldVersion, final VersionEnum newVersion, final VersionEnum toCheck) { - return newVersion.isNewerThan(toCheck) && oldVersion.isOlderThanOrEqualTo(toCheck); - } - - private static boolean didCrossBoundary(final VersionEnum oldVersion, final VersionEnum newVersion, final VersionEnum toCheck) { - return isNewerThan(oldVersion, newVersion, toCheck) || isOlderThanOrEqualTo(oldVersion, newVersion, toCheck); - } - -} diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ChestHandler1_13_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ChestHandler1_13_2.java deleted file mode 100644 index 674eed54..00000000 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ChestHandler1_13_2.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC 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.fixes; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.screen.GenericContainerScreenHandler; -import net.minecraft.text.Text; -import net.minecraft.util.math.MathHelper; - -import java.util.function.Consumer; - -public class ChestHandler1_13_2 { - - public static final Consumer OLD_PACKET_HANDLER = data -> { - final MinecraftClient mc = MinecraftClient.getInstance(); - - try { - final int windowId = data.readUnsignedByte(); - final int slots = data.readUnsignedByte(); - final Text title = data.readText(); - - final GenericContainerScreenHandler screenHandler = new GenericContainerScreenHandler(null, windowId, mc.player.getInventory(), new SimpleInventory(slots), MathHelper.ceil(slots / 9F)); - mc.player.currentScreenHandler = screenHandler; - mc.setScreen(new GenericContainerScreen(screenHandler, mc.player.getInventory(), title)); - } catch (Throwable t) { - throw new RuntimeException("Failed to handle OpenWindow packet data", t); - } - }; - -} diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java index 45330343..3ffc43e5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java @@ -21,12 +21,10 @@ package de.florianmichael.viafabricplus.fixes; import de.florianmichael.viafabricplus.ViaFabricPlus; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import de.florianmichael.viafabricplus.protocolhack.translator.BlockStateTranslator; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; -import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec2f; @@ -34,24 +32,8 @@ import net.minecraft.util.math.Vec3d; import net.raphimc.vialoader.util.VersionEnum; import org.apache.commons.lang3.tuple.Pair; -import java.util.function.Consumer; - public class ClientPlayerInteractionManager1_18_2 { - - public static final Consumer OLD_PACKET_HANDLER = data -> { - try { - final var pos = data.readBlockPos(); - final var blockState = BlockStateTranslator.via1_18_2toMc(data.readVarInt()); - final var action = data.readEnumConstant(PlayerActionC2SPacket.Action.class); - final var allGood = data.readBoolean(); - - ClientPlayerInteractionManager1_18_2.handleBlockBreakAck(pos, blockState, action, allGood); - } catch (Throwable t) { - throw new RuntimeException("Failed to handle BlockBreakAck packet data", t); - } - }; - - private static final Object2ObjectLinkedOpenHashMap, PositionAndRotation> UNACKED_ACTIONS = new Object2ObjectLinkedOpenHashMap<>(); + private static final Object2ObjectLinkedOpenHashMap, Pair> UN_ACKED_ACTIONS = new Object2ObjectLinkedOpenHashMap<>(); public static void trackPlayerAction(final PlayerActionC2SPacket.Action action, final BlockPos blockPos) { final var player = MinecraftClient.getInstance().player; @@ -63,7 +45,7 @@ public class ClientPlayerInteractionManager1_18_2 { } else { rotation = new Vec2f(player.getYaw(), player.getPitch()); } - UNACKED_ACTIONS.put(Pair.of(blockPos, action), new PositionAndRotation(player.getPos(), rotation)); + UN_ACKED_ACTIONS.put(Pair.of(blockPos, action), Pair.of(player.getPos(), rotation)); } public static void handleBlockBreakAck(final BlockPos blockPos, final BlockState expectedState, final PlayerActionC2SPacket.Action action, final boolean allGood) { @@ -71,32 +53,29 @@ public class ClientPlayerInteractionManager1_18_2 { if (player == null) return; final var world = MinecraftClient.getInstance().getNetworkHandler().getWorld(); - final var oldPlayerState = UNACKED_ACTIONS.remove(Pair.of(blockPos, action)); + final var oldPlayerState = UN_ACKED_ACTIONS.remove(Pair.of(blockPos, action)); final var actualState = world.getBlockState(blockPos); if ((oldPlayerState == null || !allGood || action != PlayerActionC2SPacket.Action.START_DESTROY_BLOCK && actualState != expectedState) && (actualState != expectedState || ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_15_2))) { world.setBlockState(blockPos, expectedState, Block.NOTIFY_ALL | Block.FORCE_STATE); if (oldPlayerState != null && (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_16_1) || (world == player.getWorld() && player.collidesWithStateAtPos(blockPos, expectedState)))) { - final Vec3d oldPlayerPosition = oldPlayerState.position; - if (oldPlayerState.rotation != null) { - player.updatePositionAndAngles(oldPlayerPosition.x, oldPlayerPosition.y, oldPlayerPosition.z, oldPlayerState.rotation.x, oldPlayerState.rotation.y); + final Vec3d oldPlayerPosition = oldPlayerState.getKey(); + if (oldPlayerState.getValue() != null) { + player.updatePositionAndAngles(oldPlayerPosition.x, oldPlayerPosition.y, oldPlayerPosition.z, oldPlayerState.getValue().x, oldPlayerState.getValue().y); } else { player.updatePosition(oldPlayerPosition.x, oldPlayerPosition.y, oldPlayerPosition.z); } } } - while (UNACKED_ACTIONS.size() >= 50) { - ViaFabricPlus.global().getLogger().warn("Too many unacked block actions, dropping {}", UNACKED_ACTIONS.firstKey()); - UNACKED_ACTIONS.removeFirst(); + while (UN_ACKED_ACTIONS.size() >= 50) { + ViaFabricPlus.global().getLogger().warn("Too many unacked block actions, dropping {}", UN_ACKED_ACTIONS.firstKey()); + UN_ACKED_ACTIONS.removeFirst(); } } public static void clearUnackedActions() { - UNACKED_ACTIONS.clear(); - } - - private record PositionAndRotation(Vec3d position, Vec2f rotation) { + UN_ACKED_ACTIONS.clear(); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java index 12e2b955..5b96eff2 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java @@ -23,13 +23,16 @@ import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; import de.florianmichael.viafabricplus.event.DisconnectCallback; import de.florianmichael.viafabricplus.event.LoadClassicProtocolExtensionCallback; import de.florianmichael.viafabricplus.event.PostGameLoadCallback; +import de.florianmichael.viafabricplus.fixes.entity.EntityDimensionReplacements; import de.florianmichael.viafabricplus.fixes.classic.CustomClassicProtocolExtensions; -import de.florianmichael.viafabricplus.fixes.classic.screen.ClassicItemSelectionScreen; +import de.florianmichael.viafabricplus.fixes.classic.ClassicItemSelectionScreen; import de.florianmichael.viafabricplus.injection.ViaFabricPlusMixinPlugin; import de.florianmichael.viafabricplus.protocolhack.provider.vialegacy.ViaFabricPlusClassicMPPassProvider; +import net.minecraft.block.*; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.FontStorage; import net.minecraft.network.PacketByteBuf; +import net.minecraft.registry.Registries; import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.data.ClassicProtocolExtension; import net.raphimc.vialoader.util.VersionEnum; @@ -60,15 +63,19 @@ public class ClientsideFixes { public static void init() { CustomClassicProtocolExtensions.create(); + PostGameLoadCallback.EVENT.register(() -> { - EntityHitboxUpdateListener.init(); - ArmorUpdateListener.init(); - BlockFixes.init(); + // Handles and updates entity dimension changes in <= 1.17 + EntityDimensionReplacements.init(); + + // Ticks the armor hud manually in <= 1.8.x + ArmorHudEmulation1_8.init(); }); DisconnectCallback.EVENT.register(() -> { // Reset the MP-pass ViaFabricPlusClassicMPPassProvider.classiCubeMPPass = null; + // Remove all previous unacked player actions ClientPlayerInteractionManager1_18_2.clearUnackedActions(); }); @@ -86,16 +93,34 @@ public class ClientsideFixes { currentChatLength = 256; } - // Text Renderer invisible character fix if (!ViaFabricPlusMixinPlugin.DASH_LOADER_PRESENT) { + // Clear all font caches to enforce a reload of all fonts (this is needed because we change the font renderer behavior) for (FontStorage storage : MinecraftClient.getInstance().fontManager.fontStorages.values()) { storage.glyphRendererCache.clear(); storage.glyphCache.clear(); } } + // Reloads all bounding boxes of the blocks that we changed + for (Block block : Registries.BLOCK) { + if (block instanceof AnvilBlock || block instanceof BedBlock || block instanceof BrewingStandBlock + || block instanceof CarpetBlock || block instanceof CauldronBlock || block instanceof ChestBlock + || block instanceof EnderChestBlock || block instanceof EndPortalBlock || block instanceof EndPortalFrameBlock + || block instanceof FarmlandBlock || block instanceof FenceBlock || block instanceof FenceGateBlock + || block instanceof HopperBlock || block instanceof LadderBlock || block instanceof LeavesBlock + || block instanceof LilyPadBlock || block instanceof PaneBlock || block instanceof PistonBlock + || block instanceof PistonHeadBlock || block instanceof SnowBlock || block instanceof WallBlock + || block instanceof CropBlock || block instanceof FlowerbedBlock + ) { + for (BlockState state : block.getStateManager().getStates()) { + state.initShapeCache(); + } + } + } + + // Rebuilds the item selection screen grid if (newVersion.isOlderThanOrEqualTo(VersionEnum.c0_28toc0_30)) { - ClassicItemSelectionScreen.INSTANCE.reload(newVersion, false); + ClassicItemSelectionScreen.INSTANCE.rebuildGridOverlay(); } })); diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicItemSelectionScreen.java similarity index 60% rename from src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicItemSelectionScreen.java index 1fb929b1..9f1dac79 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicItemSelectionScreen.java @@ -17,22 +17,21 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.classic.screen; +package de.florianmichael.viafabricplus.fixes.classic; +import de.florianmichael.viafabricplus.fixes.data.ItemRegistryDiff; import de.florianmichael.viafabricplus.screen.base.VFPScreen; import net.minecraft.client.gui.DrawContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; +import net.minecraft.registry.Registries; import net.minecraft.util.math.MathHelper; -import net.raphimc.vialoader.util.VersionEnum; import java.util.ArrayList; import java.util.List; @SuppressWarnings("DataFlowIssue") public class ClassicItemSelectionScreen extends VFPScreen { - public static final ClassicItemSelectionScreen INSTANCE = new ClassicItemSelectionScreen(); private static final int MAX_ROW_DIVIDER = 9; @@ -47,66 +46,15 @@ public class ClassicItemSelectionScreen extends VFPScreen { super("Classic item selection", false); } - public void reload(final VersionEnum version, final boolean hasCustomBlocksV1) { + public void rebuildGridOverlay() { final List allowedItems = new ArrayList<>(); - allowedItems.add(Items.OAK_LOG); - allowedItems.add(Items.OAK_PLANKS); - allowedItems.add(Items.STONE); - allowedItems.add(Items.COBBLESTONE); - allowedItems.add(Items.MOSSY_COBBLESTONE); - allowedItems.add(Items.BRICKS); - allowedItems.add(Items.IRON_BLOCK); - allowedItems.add(Items.GOLD_BLOCK); - allowedItems.add(Items.GLASS); - allowedItems.add(Items.DIRT); - allowedItems.add(Items.GRAVEL); - allowedItems.add(Items.SAND); - allowedItems.add(Items.OBSIDIAN); - allowedItems.add(Items.COAL_ORE); - allowedItems.add(Items.IRON_ORE); - allowedItems.add(Items.GOLD_ORE); - allowedItems.add(Items.OAK_LEAVES); - allowedItems.add(Items.OAK_SAPLING); - allowedItems.add(Items.BOOKSHELF); - allowedItems.add(Items.TNT); - if (version.isNewerThan(VersionEnum.c0_0_19a_06)) { - allowedItems.add(Items.SPONGE); - if (version.isNewerThan(VersionEnum.c0_0_20ac0_27)) { - allowedItems.add(Items.WHITE_WOOL); - allowedItems.add(Items.ORANGE_WOOL); - allowedItems.add(Items.MAGENTA_WOOL); - allowedItems.add(Items.LIGHT_BLUE_WOOL); - allowedItems.add(Items.YELLOW_WOOL); - allowedItems.add(Items.LIME_WOOL); - allowedItems.add(Items.PINK_WOOL); - allowedItems.add(Items.CYAN_WOOL); - allowedItems.add(Items.BLUE_WOOL); - allowedItems.add(Items.BROWN_WOOL); - allowedItems.add(Items.GREEN_WOOL); - allowedItems.add(Items.BROWN_MUSHROOM); - allowedItems.add(Items.GRAY_WOOL); - allowedItems.add(Items.LIGHT_GRAY_WOOL); - allowedItems.add(Items.PURPLE_WOOL); - allowedItems.add(Items.RED_WOOL); - allowedItems.add(Items.BLACK_WOOL); - allowedItems.add(Items.SMOOTH_STONE_SLAB); - allowedItems.add(Items.POPPY); - allowedItems.add(Items.DANDELION); - allowedItems.add(Items.RED_MUSHROOM); + + // Calculate all visible items + for (Item item : Registries.ITEM) { + if (ItemRegistryDiff.keepItem(item)) { + allowedItems.add(item); } } - if (hasCustomBlocksV1) { - allowedItems.add(Items.MAGMA_BLOCK); - allowedItems.add(Items.QUARTZ_PILLAR); - allowedItems.add(Items.SANDSTONE); - allowedItems.add(Items.STONE_BRICKS); - allowedItems.add(Items.COBBLESTONE_SLAB); - allowedItems.add(Items.ICE); - allowedItems.add(Items.SNOW); - allowedItems.add(Items.BEDROCK); - allowedItems.add(Items.WATER_BUCKET); - allowedItems.add(Items.LAVA_BUCKET); - } itemGrid = new Item[MathHelper.ceil(allowedItems.size() / (double) MAX_ROW_DIVIDER)][MAX_ROW_DIVIDER]; int x = 0; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjections.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjections.java index 5b26b9d8..46f34192 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjections.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.injection.reference; +package de.florianmichael.viafabricplus.fixes.classic; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/CustomClassicProtocolExtensions.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/CustomClassicProtocolExtensions.java index 7165124e..e8b10746 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/CustomClassicProtocolExtensions.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/CustomClassicProtocolExtensions.java @@ -20,9 +20,7 @@ package de.florianmichael.viafabricplus.fixes.classic; import com.viaversion.viaversion.api.connection.UserConnection; -import de.florianmichael.viafabricplus.fixes.classic.screen.ClassicItemSelectionScreen; import de.florianmichael.viafabricplus.event.LoadClassicProtocolExtensionCallback; -import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import io.netty.buffer.ByteBuf; import net.lenni0451.reflect.Enums; import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.ClientboundPacketsc0_30cpe; @@ -45,7 +43,9 @@ public class CustomClassicProtocolExtensions { EXT_WEATHER_TYPE = createNewPacket(ClassicProtocolExtension.ENV_WEATHER_TYPE, 31, (user, buf) -> buf.readByte()); LoadClassicProtocolExtensionCallback.EVENT.register(classicProtocolExtension -> { - if (classicProtocolExtension == ClassicProtocolExtension.CUSTOM_BLOCKS) ClassicItemSelectionScreen.INSTANCE.reload(ProtocolHack.getTargetVersion(), true); + if (classicProtocolExtension == ClassicProtocolExtension.CUSTOM_BLOCKS) { + ClassicItemSelectionScreen.INSTANCE.rebuildGridOverlay(); + } }); } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/ListExtensionsCommand.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/ListExtensionsCommand.java similarity index 93% rename from src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/ListExtensionsCommand.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/ListExtensionsCommand.java index 7e2c7db2..cc4d38ca 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/ListExtensionsCommand.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/ListExtensionsCommand.java @@ -17,11 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.classic.command.impl; +package de.florianmichael.viafabricplus.fixes.classic.command; import com.viaversion.viaversion.api.command.ViaCommandSender; import com.viaversion.viaversion.api.connection.UserConnection; -import de.florianmichael.viafabricplus.fixes.classic.command.ClassicViaSubCommand; import de.florianmichael.viafabricplus.injection.access.IExtensionProtocolMetadataStorage; import net.minecraft.util.Formatting; import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.storage.ExtensionProtocolMetadataStorage; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/SetTimeCommand.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/SetTimeCommand.java similarity index 93% rename from src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/SetTimeCommand.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/SetTimeCommand.java index e260eb78..2968e1ad 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/impl/SetTimeCommand.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/command/SetTimeCommand.java @@ -17,11 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.classic.command.impl; +package de.florianmichael.viafabricplus.fixes.classic.command; import com.viaversion.viaversion.api.command.ViaCommandSender; import com.viaversion.viaversion.api.connection.UserConnection; -import de.florianmichael.viafabricplus.fixes.classic.command.ClassicViaSubCommand; import net.minecraft.util.Formatting; import net.raphimc.vialoader.util.VersionEnum; import net.raphimc.vialegacy.protocols.alpha.protocola1_0_17_1_0_17_4toa1_0_16_2.storage.TimeLockStorage; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiff.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/ItemRegistryDiff.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiff.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/ItemRegistryDiff.java index 63ea905c..f4f4a17f 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiff.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/ItemRegistryDiff.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.diff; +package de.florianmichael.viafabricplus.fixes.data; import de.florianmichael.viafabricplus.injection.access.IClientConnection; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/Material1_19_4.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/Material1_19_4.java index 7a787667..c2e1374b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/Material1_19_4.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.diff; +package de.florianmichael.viafabricplus.fixes.data; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/RenderableGlyphDiff.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/RenderableGlyphDiff.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/diff/RenderableGlyphDiff.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/RenderableGlyphDiff.java index f6cdd3e8..2855ec24 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/RenderableGlyphDiff.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/RenderableGlyphDiff.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.diff; +package de.florianmichael.viafabricplus.fixes.data; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/AddBannerPatternRecipe.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/AddBannerPatternRecipe.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/recipe/AddBannerPatternRecipe.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/AddBannerPatternRecipe.java index af592b52..5196c301 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/AddBannerPatternRecipe.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/AddBannerPatternRecipe.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.recipe; +package de.florianmichael.viafabricplus.fixes.data.recipe; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.entity.BannerBlockEntity; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/BannerPattern_1_13_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/BannerPattern_1_13_2.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/recipe/BannerPattern_1_13_2.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/BannerPattern_1_13_2.java index 4c50734b..9e1d3d4f 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/BannerPattern_1_13_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/BannerPattern_1_13_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.recipe; +package de.florianmichael.viafabricplus.fixes.data.recipe; import net.minecraft.block.Blocks; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/RecipeInfo.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/RecipeInfo.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/recipe/RecipeInfo.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/RecipeInfo.java index 7b868e6e..5e7360d2 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/RecipeInfo.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/RecipeInfo.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.recipe; +package de.florianmichael.viafabricplus.fixes.data.recipe; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/Recipes1_11_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/Recipes1_11_2.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/recipe/Recipes1_11_2.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/Recipes1_11_2.java index 5740ec29..363a19ca 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/recipe/Recipes1_11_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/data/recipe/Recipes1_11_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.recipe; +package de.florianmichael.viafabricplus.fixes.data.recipe; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Blocks; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel1_8.java b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatModel1_8.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel1_8.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatModel1_8.java index f9b21ab9..56180164 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel1_8.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatModel1_8.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.boat; +package de.florianmichael.viafabricplus.fixes.entity; import com.google.common.collect.ImmutableList; import net.minecraft.client.model.*; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatRenderer1_8.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatRenderer1_8.java index 197572e1..5e8149b0 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/BoatRenderer1_8.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.boat; +package de.florianmichael.viafabricplus.fixes.entity; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumer; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/EntityHitboxUpdateListener.java b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityDimensionReplacements.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/EntityHitboxUpdateListener.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityDimensionReplacements.java index 9f38f66b..c47d042a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/EntityHitboxUpdateListener.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityDimensionReplacements.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.entity; import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; import net.minecraft.client.MinecraftClient; @@ -28,7 +28,7 @@ import net.raphimc.vialoader.util.VersionEnum; import java.util.LinkedHashMap; import java.util.Map; -public class EntityHitboxUpdateListener { +public class EntityDimensionReplacements { private static final Map, Map> ENTITY_DIMENSIONS = linkedHashMap( EntityType.WITHER, linkedHashMap( diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/EntityHeightOffsetsPre1_20_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityRidingOffsetsPre1_20_2.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/EntityHeightOffsetsPre1_20_2.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityRidingOffsetsPre1_20_2.java index ea1e9950..f0f203e0 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/EntityHeightOffsetsPre1_20_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/entity/EntityRidingOffsetsPre1_20_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.entity; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.entity.Entity; @@ -36,7 +36,7 @@ import net.minecraft.util.math.MathHelper; import net.raphimc.vialoader.util.VersionEnum; import org.joml.Vector3f; -public class EntityHeightOffsetsPre1_20_2 { +public class EntityRidingOffsetsPre1_20_2 { public static Vector3f getMountedHeightOffset(final Entity entity, final Entity passenger) { float yOffset = entity.getHeight() * 0.75F; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/BuiltinEmptyGlyph1_12_2.java similarity index 96% rename from src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/replacement/BuiltinEmptyGlyph1_12_2.java index f220cc84..fdbb05c9 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/BuiltinEmptyGlyph1_12_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.injection.reference; +package de.florianmichael.viafabricplus.fixes.replacement; import net.minecraft.client.font.Glyph; import net.minecraft.client.font.GlyphRenderer; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/KeyPairResponse1_19_0.java similarity index 95% rename from src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/replacement/KeyPairResponse1_19_0.java index 4d904229..0e422874 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/KeyPairResponse1_19_0.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.injection.reference; +package de.florianmichael.viafabricplus.fixes.replacement; import com.mojang.authlib.yggdrasil.response.KeyPairResponse; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/PendingUpdateManager1_18_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/PendingUpdateManager1_18_2.java similarity index 96% rename from src/main/java/de/florianmichael/viafabricplus/fixes/PendingUpdateManager1_18_2.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/replacement/PendingUpdateManager1_18_2.java index 585e571e..84cfbc4e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/PendingUpdateManager1_18_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/replacement/PendingUpdateManager1_18_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.replacement; import net.minecraft.block.BlockState; import net.minecraft.client.network.ClientPlayerEntity; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java index 321f0125..b6b282a3 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java @@ -24,7 +24,7 @@ import com.mojang.authlib.yggdrasil.YggdrasilUserApiService; import com.mojang.authlib.yggdrasil.response.KeyPairResponse; import de.florianmichael.viafabricplus.ViaFabricPlus; import de.florianmichael.viafabricplus.injection.access.ILegacyKeySignatureStorage; -import de.florianmichael.viafabricplus.injection.reference.KeyPairResponse1_19_0; +import de.florianmichael.viafabricplus.fixes.replacement.KeyPairResponse1_19_0; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientWorld.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientWorld.java index d2e2f518..2bc42e08 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientWorld.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientWorld.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft; -import de.florianmichael.viafabricplus.fixes.PendingUpdateManager1_18_2; +import de.florianmichael.viafabricplus.fixes.replacement.PendingUpdateManager1_18_2; import de.florianmichael.viafabricplus.injection.access.IEntity; import de.florianmichael.viafabricplus.settings.impl.DebugSettings; import net.minecraft.client.network.ClientPlayNetworkHandler; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFlowableFluid.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFlowableFluid.java index 44192019..8dc2e1d6 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFlowableFluid.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFlowableFluid.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft; -import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.data.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.*; import net.minecraft.fluid.FlowableFluid; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java index 9c4d0464..c351507f 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java @@ -20,8 +20,8 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft; import com.llamalad7.mixinextras.sugar.Local; -import de.florianmichael.viafabricplus.fixes.diff.RenderableGlyphDiff; -import de.florianmichael.viafabricplus.injection.reference.BuiltinEmptyGlyph1_12_2; +import de.florianmichael.viafabricplus.fixes.data.RenderableGlyphDiff; +import de.florianmichael.viafabricplus.fixes.replacement.BuiltinEmptyGlyph1_12_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; 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 e8521bfa..e0ce89b1 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 @@ -24,7 +24,7 @@ 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.fixes.diff.ItemRegistryDiff; +import de.florianmichael.viafabricplus.fixes.data.ItemRegistryDiff; import de.florianmichael.viafabricplus.injection.access.IMouseKeyboard; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.DebugSettings; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMouse.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMouse.java index 9c5bef66..2b1fb40a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMouse.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMouse.java @@ -22,7 +22,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft; import de.florianmichael.viafabricplus.injection.access.IMouseKeyboard; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.DebugSettings; -import de.florianmichael.viafabricplus.util.MouseSensitivityUtil; +import de.florianmichael.viafabricplus.protocolhack.util.MathUtil; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; import net.minecraft.client.option.SimpleOption; @@ -59,7 +59,7 @@ public abstract class MixinMouse implements IMouseKeyboard { @Redirect(method = "updateMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/SimpleOption;getValue()Ljava/lang/Object;", ordinal = 0)) private Object adjustMouseSensitivity1_13_2(SimpleOption instance) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_13_2)) { - return (double) MouseSensitivityUtil.get1_13SliderValue(instance.getValue().floatValue()).keyFloat(); + return (double) MathUtil.get1_13SliderValue(instance.getValue().floatValue()).keyFloat(); } return instance.getValue(); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/block/MixinSoulSandBlock.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/block/MixinSoulSandBlock.java index 2d4618be..70bd4c3c 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/block/MixinSoulSandBlock.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/block/MixinSoulSandBlock.java @@ -56,4 +56,12 @@ public abstract class MixinSoulSandBlock extends Block { } } + @Override + public float getVelocityMultiplier() { + if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_14_4)) { + return 1F; + } + + return super.getVelocityMultiplier(); + } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinBoatEntity.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinBoatEntity.java index 56c89589..fc73abf5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinBoatEntity.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinBoatEntity.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; -import de.florianmichael.viafabricplus.fixes.EntityHeightOffsetsPre1_20_2; +import de.florianmichael.viafabricplus.fixes.entity.EntityRidingOffsetsPre1_20_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -301,8 +301,8 @@ public abstract class MixinBoatEntity extends Entity { @Inject(method = "updatePassengerPosition", at = @At(value = "HEAD"), cancellable = true) private void updatePassengerPosition1_8(Entity passenger, PositionUpdater positionUpdater, CallbackInfo ci) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_8)) { - final Vec3d newPosition = new Vec3d(EntityHeightOffsetsPre1_20_2.getMountedHeightOffset(this, passenger)).add(this.getPos()); - positionUpdater.accept(passenger, newPosition.x, newPosition.y + EntityHeightOffsetsPre1_20_2.getHeightOffset(passenger), newPosition.z); + final Vec3d newPosition = new Vec3d(EntityRidingOffsetsPre1_20_2.getMountedHeightOffset(this, passenger)).add(this.getPos()); + positionUpdater.accept(passenger, newPosition.x, newPosition.y + EntityRidingOffsetsPre1_20_2.getHeightOffset(passenger), newPosition.z); ci.cancel(); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntity.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntity.java index 3be38056..f26615d5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntity.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntity.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; -import de.florianmichael.viafabricplus.fixes.EntityHeightOffsetsPre1_20_2; +import de.florianmichael.viafabricplus.fixes.entity.EntityRidingOffsetsPre1_20_2; import de.florianmichael.viafabricplus.injection.access.IEntity; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import it.unimi.dsi.fastutil.objects.Object2DoubleMap; @@ -77,14 +77,14 @@ public abstract class MixinEntity implements IEntity { @Inject(method = "getRidingOffset", at = @At("HEAD"), cancellable = true) private void getRidingOffset1_20_1(Entity vehicle, CallbackInfoReturnable cir) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20tor1_20_1)) { - cir.setReturnValue((float) EntityHeightOffsetsPre1_20_2.getHeightOffset((Entity) (Object) this)); + cir.setReturnValue((float) EntityRidingOffsetsPre1_20_2.getHeightOffset((Entity) (Object) this)); } } @Redirect(method = "getPassengerRidingPos", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getPassengerAttachmentPos(Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/EntityDimensions;F)Lorg/joml/Vector3f;")) private Vector3f getPassengerRidingPos1_20_1(Entity instance, Entity passenger, EntityDimensions dimensions, float scaleFactor) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20tor1_20_1)) { - return EntityHeightOffsetsPre1_20_2.getMountedHeightOffset(instance, passenger); + return EntityRidingOffsetsPre1_20_2.getMountedHeightOffset(instance, passenger); } return getPassengerAttachmentPos(passenger, dimensions, scaleFactor); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java index 7b2f3716..b5955def 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; import com.google.common.collect.ImmutableMap; -import de.florianmichael.viafabricplus.fixes.boat.BoatModel1_8; +import de.florianmichael.viafabricplus.fixes.entity.BoatModel1_8; import net.minecraft.client.model.TexturedModelData; import net.minecraft.client.render.entity.model.EntityModelLayer; import net.minecraft.client.render.entity.model.EntityModels; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java index 84aa62d4..6d8034af 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; -import de.florianmichael.viafabricplus.fixes.boat.BoatRenderer1_8; +import de.florianmichael.viafabricplus.fixes.entity.BoatRenderer1_8; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.EntityRenderer; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java index 9a4abaef..75c16638 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; -import de.florianmichael.viafabricplus.fixes.EntityHeightOffsetsPre1_20_2; +import de.florianmichael.viafabricplus.fixes.entity.EntityRidingOffsetsPre1_20_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.DebugSettings; import net.minecraft.block.BlockState; @@ -76,14 +76,14 @@ public abstract class MixinLivingEntity extends Entity { @Inject(method = "getRidingOffset", at = @At("HEAD"), cancellable = true) private void getRidingOffset1_20_1(Entity vehicle, CallbackInfoReturnable cir) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20tor1_20_1)) { - cir.setReturnValue((float) EntityHeightOffsetsPre1_20_2.getHeightOffset(this)); + cir.setReturnValue((float) EntityRidingOffsetsPre1_20_2.getHeightOffset(this)); } } @Redirect(method = "getPassengerRidingPos", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;getPassengerAttachmentPos(Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/EntityDimensions;F)Lorg/joml/Vector3f;")) private Vector3f getPassengerRidingPos1_20_1(LivingEntity instance, Entity entity, EntityDimensions entityDimensions, float v) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20tor1_20_1)) { - return EntityHeightOffsetsPre1_20_2.getMountedHeightOffset(instance, entity); + return EntityRidingOffsetsPre1_20_2.getMountedHeightOffset(instance, entity); } return getPassengerAttachmentPos(entity, entityDimensions, v); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java index bbe06293..6334d9e5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; import com.google.common.collect.ImmutableSet; -import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.data.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java index 5bf526d7..708602a7 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; -import de.florianmichael.viafabricplus.fixes.diff.ItemRegistryDiff; +import de.florianmichael.viafabricplus.fixes.data.ItemRegistryDiff; import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.item.Item; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java index 2317f28a..7cb6c628 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; -import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.data.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; import net.minecraft.block.Blocks; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java index 2f3e1b0e..76029856 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; import com.google.common.collect.ImmutableSet; -import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.data.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.fabricmc.yarn.constants.MiningLevels; import net.minecraft.block.Block; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java index 17e3ebad..2ae852fe 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java @@ -20,8 +20,8 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.network; import com.llamalad7.mixinextras.injector.WrapWithCondition; -import de.florianmichael.viafabricplus.fixes.recipe.RecipeInfo; -import de.florianmichael.viafabricplus.fixes.recipe.Recipes1_11_2; +import de.florianmichael.viafabricplus.fixes.data.recipe.RecipeInfo; +import de.florianmichael.viafabricplus.fixes.data.recipe.Recipes1_11_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayerInteractionManager.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayerInteractionManager.java index 036bf0b2..ad06a5a4 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayerInteractionManager.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayerInteractionManager.java @@ -25,7 +25,7 @@ import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ServerboundPackets1_16_2; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4; -import de.florianmichael.viafabricplus.fixes.ActionResultException; +import de.florianmichael.viafabricplus.fixes.ActionResultException1_12_2; import de.florianmichael.viafabricplus.fixes.ClientPlayerInteractionManager1_18_2; import de.florianmichael.viafabricplus.injection.access.IClientConnection; import de.florianmichael.viafabricplus.injection.access.IScreenHandler; @@ -202,13 +202,13 @@ public abstract class MixinClientPlayerInteractionManager { final ItemUsageContext itemUsageContext = new ItemUsageContext(player, hand, checkHitResult); final ItemPlacementContext itemPlacementContext = new ItemPlacementContext(itemUsageContext); if (!itemPlacementContext.canPlace() || ((BlockItem) itemPlacementContext.getStack().getItem()).getPlacementState(itemPlacementContext) == null) { - throw new ActionResultException(ActionResult.PASS); + throw new ActionResultException1_12_2(ActionResult.PASS); } } this.networkHandler.sendPacket(new PlayerInteractBlockC2SPacket(hand, hitResult, 0)); if (itemStack.isEmpty()) { - throw new ActionResultException(ActionResult.PASS); + throw new ActionResultException1_12_2(ActionResult.PASS); } final ItemUsageContext itemUsageContext = new ItemUsageContext(player, hand, checkHitResult); ActionResult actionResult; @@ -222,7 +222,7 @@ public abstract class MixinClientPlayerInteractionManager { if (!actionResult.isAccepted()) { actionResult = ActionResult.PASS; // In <= 1.12.2 FAIL is the same as PASS } - throw new ActionResultException(actionResult); + throw new ActionResultException1_12_2(actionResult); } } @@ -255,7 +255,7 @@ public abstract class MixinClientPlayerInteractionManager { try { mutableObject.setValue(this.interactBlockInternal(clientPlayerEntity, hand, blockHitResult)); return new PlayerInteractBlockC2SPacket(hand, blockHitResult, sequence); - } catch (ActionResultException e) { + } catch (ActionResultException1_12_2 e) { mutableObject.setValue(e.getActionResult()); throw e; } @@ -265,7 +265,7 @@ public abstract class MixinClientPlayerInteractionManager { private void catchPacketCancelException(ClientPlayerInteractionManager instance, ClientWorld world, SequencedPacketCreator packetCreator) { try { this.sendSequencedPacket(world, packetCreator); - } catch (ActionResultException ignored) { + } catch (ActionResultException1_12_2 ignored) { } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinCreativeInventoryScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinCreativeInventoryScreen.java index be3f1c47..34ee5fb2 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinCreativeInventoryScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinCreativeInventoryScreen.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen; -import de.florianmichael.viafabricplus.fixes.classic.screen.ClassicItemSelectionScreen; +import de.florianmichael.viafabricplus.fixes.classic.ClassicItemSelectionScreen; import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinMouseOptionsScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinMouseOptionsScreen.java index 2a0f7bdd..312cb59a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinMouseOptionsScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinMouseOptionsScreen.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import de.florianmichael.viafabricplus.util.MouseSensitivityUtil; +import de.florianmichael.viafabricplus.protocolhack.util.MathUtil; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.option.GameOptionsScreen; @@ -48,7 +48,7 @@ public abstract class MixinMouseOptionsScreen extends GameOptionsScreen { @Inject(method = "render", at = @At("RETURN")) private void render1_13SliderValue(DrawContext drawContext, int mouseX, int mouseY, float delta, CallbackInfo ci) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_13_2) && this.buttonList.getWidgetFor(this.gameOptions.getMouseSensitivity()).isHovered()) { - drawContext.drawTooltip(textRenderer, Text.of("<=1.13.2 Sensitivity: " + MouseSensitivityUtil.get1_13SliderValue(this.gameOptions.getMouseSensitivity().getValue().floatValue()).valueInt() + "%"), mouseX, mouseY); + drawContext.drawTooltip(textRenderer, Text.of("<=1.13.2 Sensitivity: " + MathUtil.get1_13SliderValue(this.gameOptions.getMouseSensitivity().getValue().floatValue()).valueInt() + "%"), mouseX, mouseY); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java index 4cc16fef..d83f39be 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen.screenhandler; -import de.florianmichael.viafabricplus.fixes.recipe.Recipes1_11_2; +import de.florianmichael.viafabricplus.fixes.data.recipe.Recipes1_11_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.inventory.Inventory; import net.minecraft.inventory.RecipeInputInventory; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java index 7606bc1e..9d1c22f3 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen.screenhandler; -import de.florianmichael.viafabricplus.fixes.recipe.Recipes1_11_2; +import de.florianmichael.viafabricplus.fixes.data.recipe.Recipes1_11_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.inventory.CraftingInventory; import net.minecraft.inventory.Inventory; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java index 083d03fd..46713ff6 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java @@ -25,7 +25,7 @@ import com.viaversion.viaversion.api.protocol.remapper.PacketHandler; import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.packets.EntityPackets; -import de.florianmichael.viafabricplus.injection.reference.ClassicWorldHeightInjections; +import de.florianmichael.viafabricplus.fixes.classic.ClassicWorldHeightInjections; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinInventoryPackets.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinInventoryPackets.java index fcceb7c7..28a555f8 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinInventoryPackets.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinInventoryPackets.java @@ -24,9 +24,14 @@ import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.libs.gson.JsonElement; import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14; import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.packets.InventoryPackets; -import de.florianmichael.viafabricplus.fixes.ChestHandler1_13_2; import de.florianmichael.viafabricplus.fixes.ClientsideFixes; import de.florianmichael.viafabricplus.protocolhack.translator.TextComponentTranslator; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; +import net.minecraft.inventory.SimpleInventory; +import net.minecraft.screen.GenericContainerScreenHandler; +import net.minecraft.text.Text; +import net.minecraft.util.math.MathHelper; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -41,11 +46,26 @@ public abstract class MixinInventoryPackets { if ((type.equals("minecraft:container") || type.equals("minecraft:chest")) && (slots > 54 || slots <= 0)) { ci.cancel(); - final String uuid = ClientsideFixes.executeSyncTask(ChestHandler1_13_2.OLD_PACKET_HANDLER); + final String uuid = ClientsideFixes.executeSyncTask(data -> { + final MinecraftClient mc = MinecraftClient.getInstance(); + + try { + final int syncId = data.readUnsignedByte(); + final int size = data.readUnsignedByte(); + final Text title1_20 = data.readText(); + + final GenericContainerScreenHandler screenHandler = new GenericContainerScreenHandler(null, syncId, mc.player.getInventory(), new SimpleInventory(size), MathHelper.ceil(size / 9F)); + mc.player.currentScreenHandler = screenHandler; + mc.setScreen(new GenericContainerScreen(screenHandler, mc.player.getInventory(), title1_20)); + } catch (Throwable t) { + throw new RuntimeException("Failed to handle OpenWindow packet data", t); + } + }); + wrapper.clearPacket(); wrapper.setPacketType(ClientboundPackets1_14.PLUGIN_MESSAGE); - wrapper.write(Type.STRING, ClientsideFixes.PACKET_SYNC_IDENTIFIER); - wrapper.write(Type.STRING, uuid); + wrapper.write(Type.STRING, ClientsideFixes.PACKET_SYNC_IDENTIFIER); // sync task header + wrapper.write(Type.STRING, uuid); // sync task id wrapper.write(Type.UNSIGNED_BYTE, windowId); wrapper.write(Type.UNSIGNED_BYTE, slots); wrapper.write(Type.COMPONENT, TextComponentTranslator.via1_14toViaLatest(title)); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinUserConnectionImpl.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinUserConnectionImpl.java index 9f6f6fb0..f939a2d4 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinUserConnectionImpl.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinUserConnectionImpl.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion; import com.viaversion.viaversion.connection.UserConnectionImpl; -import de.florianmichael.viafabricplus.util.NoPacketSendChannel; +import de.florianmichael.viafabricplus.protocolhack.util.NoPacketSendChannel; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import org.spongepowered.asm.mixin.Final; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java index 2eb1096f..9282452b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java @@ -25,7 +25,7 @@ import com.viaversion.viaversion.api.protocol.remapper.PacketHandler; import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.packets.WorldPackets; -import de.florianmichael.viafabricplus.injection.reference.ClassicWorldHeightInjections; +import de.florianmichael.viafabricplus.fixes.classic.ClassicWorldHeightInjections; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_19.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_19.java index eb94c536..5d4d88ca 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_19.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_19.java @@ -27,6 +27,8 @@ import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_ import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets.WorldPackets; import de.florianmichael.viafabricplus.fixes.ClientPlayerInteractionManager1_18_2; import de.florianmichael.viafabricplus.fixes.ClientsideFixes; +import de.florianmichael.viafabricplus.protocolhack.translator.BlockStateTranslator; +import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -39,7 +41,18 @@ public abstract class MixinWorldPackets1_19 { instance.registerClientbound(ClientboundPackets1_18.ACKNOWLEDGE_PLAYER_DIGGING, ClientboundPackets1_19.PLUGIN_MESSAGE, wrapper -> { wrapper.resetReader(); - final var uuid = ClientsideFixes.executeSyncTask(ClientPlayerInteractionManager1_18_2.OLD_PACKET_HANDLER); + final var uuid = ClientsideFixes.executeSyncTask(data -> { + try { + final var pos = data.readBlockPos(); + final var blockState = BlockStateTranslator.via1_18_2toMc(data.readVarInt()); + final var action = data.readEnumConstant(PlayerActionC2SPacket.Action.class); + final var allGood = data.readBoolean(); + + ClientPlayerInteractionManager1_18_2.handleBlockBreakAck(pos, blockState, action, allGood); + } catch (Throwable t) { + throw new RuntimeException("Failed to handle BlockBreakAck packet data", t); + } + }); wrapper.write(Type.STRING, ClientsideFixes.PACKET_SYNC_IDENTIFIER); wrapper.write(Type.STRING, uuid); }); diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java index 0d0ab1d4..9284972e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java @@ -38,7 +38,7 @@ import de.florianmichael.viafabricplus.protocolhack.impl.ViaFabricPlusVLInjector import de.florianmichael.viafabricplus.protocolhack.impl.ViaFabricPlusVLLoader; import de.florianmichael.viafabricplus.protocolhack.impl.platform.ViaFabricPlusViaLegacyPlatformImpl; import de.florianmichael.viafabricplus.protocolhack.netty.ViaFabricPlusVLLegacyPipeline; -import de.florianmichael.viafabricplus.util.NoPacketSendChannel; +import de.florianmichael.viafabricplus.protocolhack.util.NoPacketSendChannel; import io.netty.channel.Channel; import io.netty.util.AttributeKey; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/command/ViaFabricPlusVLCommandHandler.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/command/ViaFabricPlusVLCommandHandler.java index d14b5f34..5e359e32 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/command/ViaFabricPlusVLCommandHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/command/ViaFabricPlusVLCommandHandler.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import de.florianmichael.viafabricplus.fixes.classic.command.impl.ListExtensionsCommand; -import de.florianmichael.viafabricplus.fixes.classic.command.impl.SetTimeCommand; +import de.florianmichael.viafabricplus.fixes.classic.command.ListExtensionsCommand; +import de.florianmichael.viafabricplus.fixes.classic.command.SetTimeCommand; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.raphimc.vialoader.impl.viaversion.VLCommandHandler; diff --git a/src/main/java/de/florianmichael/viafabricplus/util/MouseSensitivityUtil.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/MathUtil.java similarity index 93% rename from src/main/java/de/florianmichael/viafabricplus/util/MouseSensitivityUtil.java rename to src/main/java/de/florianmichael/viafabricplus/protocolhack/util/MathUtil.java index 92f1a455..f80fdb31 100644 --- a/src/main/java/de/florianmichael/viafabricplus/util/MouseSensitivityUtil.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/MathUtil.java @@ -17,11 +17,11 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.util; +package de.florianmichael.viafabricplus.protocolhack.util; import it.unimi.dsi.fastutil.floats.FloatIntPair; -public class MouseSensitivityUtil { +public class MathUtil { public static FloatIntPair get1_13SliderValue(final float value1_14) { final int oldSliderWidth = 150 - 8; diff --git a/src/main/java/de/florianmichael/viafabricplus/util/NoPacketSendChannel.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/NoPacketSendChannel.java similarity index 72% rename from src/main/java/de/florianmichael/viafabricplus/util/NoPacketSendChannel.java rename to src/main/java/de/florianmichael/viafabricplus/protocolhack/util/NoPacketSendChannel.java index 3e9cecab..39b7cff6 100644 --- a/src/main/java/de/florianmichael/viafabricplus/util/NoPacketSendChannel.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/NoPacketSendChannel.java @@ -17,10 +17,15 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.util; +package de.florianmichael.viafabricplus.protocolhack.util; import io.netty.channel.local.LocalChannel; +/** + * This class can be used when creating dummy {@link com.viaversion.viaversion.api.connection.UserConnection} instances. + * This class will prevent packets created by ViaVersion from being sent to the server. This is mainly used in the + * translator system. See {@link de.florianmichael.viafabricplus.protocolhack.translator} for more information. + */ public class NoPacketSendChannel extends LocalChannel { public static final NoPacketSendChannel INSTANCE = new NoPacketSendChannel();