From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Sun, 16 Jun 2024 15:38:49 -0500 Subject: [PATCH] Add more fallback code for chunk bans diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java index 5d3e739d28d394ed59fe0003245cc55ac62e6087..7189525e573be6d5023c6b34fded8bd1259293f9 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java @@ -1,11 +1,17 @@ package net.minecraft.network.protocol.game; import java.util.function.BiFunction; +import java.util.stream.Collectors; + +import me.totalfreedom.scissors.NbtUtility; +import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.RegistryAccess; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.SignedMessageBody; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.Packet; @@ -36,6 +42,23 @@ public class ClientboundBlockEntityDataPacket implements Packet blockEntityType, CompoundTag nbt) { this.pos = pos; this.type = blockEntityType; diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetSlotPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetSlotPacket.java index 63f6a2437da9363786b55af0a7cbc5373232d35b..38e8e3e58821da896851a42d6088bc70857ae7e1 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetSlotPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundContainerSetSlotPacket.java @@ -43,6 +43,19 @@ public class ClientboundContainerSetSlotPacket implements Packet type() { return GamePacketTypes.CLIENTBOUND_MAP_ITEM_DATA; @@ -46,6 +59,8 @@ public record ClientboundMapItemDataPacket( listener.handleMapItemData(this); } + + public void applyToMap(MapItemSavedData mapState) { this.decorations.ifPresent(mapState::addClientSideDecorations); this.colorPatch.ifPresent(updateData -> updateData.applyToMap(mapState)); diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerChatPacket.java index 37ab438ab37b9235666ae69376509bdde7722d87..cd1d0efec72c83e0f2bbc7ffcb5d2d3b8385f4fe 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerChatPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerChatPacket.java @@ -1,7 +1,10 @@ package net.minecraft.network.protocol.game; +import java.util.Optional; import java.util.UUID; import javax.annotation.Nullable; + +import net.minecraft.ChatFormatting; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.ChatType; @@ -39,6 +42,19 @@ public record ClientboundPlayerChatPacket( ); } + // Scissors start - Handle large packets disconnecting client + @Override + public boolean hasLargePacketFallback() { + return true; + } + + @Override + public boolean packetTooLarge(net.minecraft.network.Connection manager) { + manager.send(new ClientboundPlayerChatPacket(sender, index, signature, body, Component.empty().append("** Message too large **").withStyle(ChatFormatting.RED), filterMask, chatType)); + return true; + } + // Scissors end - Handle large packets disconnecting client + private void write(RegistryFriendlyByteBuf buf) { buf.writeUUID(this.sender); buf.writeVarInt(this.index); diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java index 3945ca04ede578121b370592482ac917f2d4cf96..f05678ab6fc598da0416c6e0c68bc30a1beef139 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java @@ -2,6 +2,8 @@ package net.minecraft.network.protocol.game; import com.google.common.collect.Lists; import com.mojang.datafixers.util.Pair; + +import java.util.Collections; import java.util.List; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; @@ -44,6 +46,19 @@ public class ClientboundSetEquipmentPacket implements Packet