Add 1.20.3->1.20.5 openWrittenBook fix

This commit is contained in:
RaphiMC 2024-06-09 16:52:54 +02:00
parent a199f553af
commit 6fd7e3730e
No known key found for this signature in database
GPG Key ID: 0F6BB0657A03AC94
2 changed files with 12 additions and 1 deletions

View File

@ -39,7 +39,6 @@ import java.util.concurrent.CompletableFuture;
* - Command arguments (Probably not everything worth, but least them with nbt)
* - Entity attachment calculation got changed completely
* - Particle handling has slightly changed
* - handleOpenBook now also handles writeable book contents (not sure if relevant)
*
* TODO | General
* - Make recipe fixes dynamic instead of a data dump in java classes

View File

@ -31,11 +31,14 @@ import de.florianmichael.viafabricplus.protocoltranslator.ProtocolTranslator;
import de.florianmichael.viafabricplus.settings.impl.VisualSettings;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
import net.minecraft.client.gui.screen.ingame.BookScreen;
import net.minecraft.client.network.*;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.vehicle.BoatEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.packet.s2c.play.*;
import net.minecraft.recipe.RecipeEntry;
@ -86,6 +89,15 @@ public abstract class MixinClientPlayNetworkHandler extends ClientCommonNetworkH
return ProtocolTranslator.getTargetVersion().newerThanOrEqualTo(ProtocolVersion.v1_20_5);
}
@Redirect(method = "onOpenWrittenBook", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/BookScreen$Contents;create(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/gui/screen/ingame/BookScreen$Contents;"))
private BookScreen.Contents dontOpenWriteableBookScreen(ItemStack stack) {
if (ProtocolTranslator.getTargetVersion().newerThanOrEqualTo(ProtocolVersion.v1_20_5) || stack.isOf(Items.WRITTEN_BOOK)) {
return BookScreen.Contents.create(stack);
} else {
return null;
}
}
@Inject(method = "onEnterReconfiguration", at = @At("HEAD"))
private void disableAutoRead(EnterReconfigurationS2CPacket packet, CallbackInfo ci) {
if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_20_3)) {