Don't enforce a RegistryByteBuf packet code for the extended screen handler type (#3743)

(cherry picked from commit 8c7b71c2c5)
This commit is contained in:
modmuss 2024-05-07 19:03:52 +01:00 committed by modmuss50
parent 5c75478521
commit 186cc2ef8b
2 changed files with 4 additions and 4 deletions

View file

@ -74,14 +74,14 @@ import net.minecraft.screen.ScreenHandlerType;
*/
public class ExtendedScreenHandlerType<T extends ScreenHandler, D> extends ScreenHandlerType<T> {
private final ExtendedFactory<T, D> factory;
private final PacketCodec<RegistryByteBuf, D> packetCodec;
private final PacketCodec<? super RegistryByteBuf, D> packetCodec;
/**
* Constructs an extended screen handler type.
*
* @param factory the screen handler factory used for {@link #create(int, PlayerInventory, Object)}
*/
public ExtendedScreenHandlerType(ExtendedFactory<T, D> factory, PacketCodec<RegistryByteBuf, D> packetCodec) {
public ExtendedScreenHandlerType(ExtendedFactory<T, D> factory, PacketCodec<? super RegistryByteBuf, D> packetCodec) {
super(null, FeatureFlags.VANILLA_FEATURES);
this.factory = Objects.requireNonNull(factory, "screen handler factory cannot be null");
this.packetCodec = Objects.requireNonNull(packetCodec, "packet codec cannot be null");
@ -112,7 +112,7 @@ public class ExtendedScreenHandlerType<T extends ScreenHandler, D> extends Scree
/**
* @return the packet codec for serializing the data of this screen handler
*/
public PacketCodec<RegistryByteBuf, D> getPacketCodec() {
public PacketCodec<? super RegistryByteBuf, D> getPacketCodec() {
return packetCodec;
}

View file

@ -51,7 +51,7 @@ public final class Networking implements ModInitializer {
// title: text
// customData: buf
public static final Identifier OPEN_ID = new Identifier("fabric-screen-handler-api-v1", "open_screen");
public static final Map<Identifier, PacketCodec<RegistryByteBuf, ?>> CODEC_BY_ID = new HashMap<>();
public static final Map<Identifier, PacketCodec<? super RegistryByteBuf, ?>> CODEC_BY_ID = new HashMap<>();
/**
* Opens an extended screen handler by sending a custom packet to the client.