Skip to content

Commit

Permalink
24w03a/b networking
Browse files Browse the repository at this point in the history
  • Loading branch information
apple502j committed Jan 19, 2024
1 parent 662a3ac commit 3923862
Show file tree
Hide file tree
Showing 37 changed files with 552 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ CLASS net/minecraft/class_635 net/minecraft/client/network/ClientLoginNetworkHan
FIELD field_41384 worldLoadTime Ljava/time/Duration;
FIELD field_44809 minigameName Ljava/lang/String;
FIELD field_46192 state Ljava/util/concurrent/atomic/AtomicReference;
FIELD field_48400 serverCookies Ljava/util/Map;
FIELD field_48401 hasCookies Z
METHOD <init> (Lnet/minecraft/class_2535;Lnet/minecraft/class_310;Lnet/minecraft/class_642;Lnet/minecraft/class_437;ZLjava/time/Duration;Ljava/util/function/Consumer;Lnet/minecraft/class_9112;)V
ARG 1 connection
ARG 2 client
Expand All @@ -17,6 +19,7 @@ CLASS net/minecraft/class_635 net/minecraft/client/network/ClientLoginNetworkHan
ARG 5 newWorld
ARG 6 worldLoadTime
ARG 7 statusConsumer
ARG 8 cookieStorage
METHOD method_2891 getSessionService ()Lcom/mojang/authlib/minecraft/MinecraftSessionService;
METHOD method_2892 joinServerSession (Ljava/lang/String;)Lnet/minecraft/class_2561;
ARG 1 serverId
Expand All @@ -31,6 +34,10 @@ CLASS net/minecraft/class_635 net/minecraft/client/network/ClientLoginNetworkHan
ARG 1 state
METHOD method_53873 (Lnet/minecraft/class_635$class_8798;Lnet/minecraft/class_635$class_8798;)Lnet/minecraft/class_635$class_8798;
ARG 1 currentState
METHOD method_56151 setupEncryption (Lnet/minecraft/class_2917;Ljavax/crypto/Cipher;Ljavax/crypto/Cipher;)V
ARG 1 keyPacket
ARG 2 decryptionCipher
ARG 3 encryptionCipher
CLASS class_8798 State
FIELD field_46197 name Lnet/minecraft/class_2561;
FIELD field_46198 prevStates Ljava/util/Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ CLASS net/minecraft/class_634 net/minecraft/client/network/ClientPlayNetworkHand
FIELD field_46187 worldCleared Z
FIELD field_46578 worldLoadingState Lnet/minecraft/class_8819;
FIELD field_47878 scoreboard Lnet/minecraft/class_269;
FIELD field_48403 secureChatEnforced Z
METHOD <init> (Lnet/minecraft/class_310;Lnet/minecraft/class_2535;Lnet/minecraft/class_8675;)V
ARG 1 client
METHOD method_16690 getSessionId ()Ljava/util/UUID;
Expand Down
38 changes: 37 additions & 1 deletion mappings/net/minecraft/network/ClientConnection.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ CLASS net/minecraft/class_2535 net/minecraft/network/ClientConnection
FIELD field_45668 queuedTasks Ljava/util/Queue;
FIELD field_45669 prePlayStateListener Lnet/minecraft/class_2547;
FIELD field_45955 packetSizeLogger Lnet/minecraft/class_8762;
FIELD field_48514 C2S_HANDSHAKE_STATE Lnet/minecraft/class_9127;
FIELD field_48515 duringLogin Z
METHOD <init> (Lnet/minecraft/class_2598;)V
ARG 1 side
METHOD channelActive (Lio/netty/channel/ChannelHandlerContext;)V
Expand Down Expand Up @@ -122,6 +124,8 @@ CLASS net/minecraft/class_2535 net/minecraft/network/ClientConnection
ARG 0 address
ARG 1 useEpoll
ARG 2 connection
METHOD method_52900 (Lnet/minecraft/class_9127;Lnet/minecraft/class_8697;Ljava/lang/String;ILnet/minecraft/class_8592;Lnet/minecraft/class_9127;Lnet/minecraft/class_2535;)V
ARG 7 connection
METHOD method_52902 connect (Ljava/lang/String;ILnet/minecraft/class_2896;)V
ARG 1 address
ARG 2 port
Expand All @@ -133,6 +137,8 @@ CLASS net/minecraft/class_2535 net/minecraft/network/ClientConnection
METHOD method_52904 connect (Ljava/lang/String;ILnet/minecraft/class_9127;Lnet/minecraft/class_9127;Lnet/minecraft/class_8697;Lnet/minecraft/class_8592;)V
ARG 1 address
ARG 2 port
ARG 3 outboundState
ARG 4 inboundState
ARG 5 prePlayStateListener
ARG 6 intent
METHOD method_52905 submit (Ljava/util/function/Consumer;)V
Expand All @@ -152,7 +158,8 @@ CLASS net/minecraft/class_2535 net/minecraft/network/ClientConnection
COMMENT Sets the initial packet listener.
COMMENT
COMMENT @throws IllegalStateException if the listener was already set
COMMENT @see #setPacketListener
COMMENT @see #transitionInbound
COMMENT @see #transitionOutbound
ARG 1 packetListener
METHOD method_52915 flush ()V
METHOD method_52918 flushInternal ()V
Expand All @@ -163,7 +170,36 @@ CLASS net/minecraft/class_2535 net/minecraft/network/ClientConnection
METHOD method_56326 connect (Ljava/lang/String;ILnet/minecraft/class_9127;Lnet/minecraft/class_9127;Lnet/minecraft/class_8697;Z)V
ARG 1 address
ARG 2 port
ARG 3 outboundState
ARG 4 inboundState
ARG 5 prePlayStateListener
ARG 6 transfer
METHOD method_56327 (Lnet/minecraft/class_8035;Lio/netty/channel/ChannelHandlerContext;)V
ARG 1 context
METHOD method_56328 (Lnet/minecraft/class_8036;Lio/netty/channel/ChannelHandlerContext;)V
ARG 1 context
METHOD method_56329 transitionOutbound (Lnet/minecraft/class_9127;)V
ARG 1 newState
METHOD method_56330 transitionInbound (Lnet/minecraft/class_9127;Lnet/minecraft/class_2547;)V
ARG 1 state
ARG 2 packetListener
METHOD method_56331 (ZLio/netty/channel/ChannelHandlerContext;)V
ARG 2 context
METHOD method_56332 setPacketListener (Lnet/minecraft/class_9127;Lnet/minecraft/class_2547;)V
ARG 1 state
ARG 2 listener
METHOD method_56333 getOutboundHandlerName (Z)Ljava/lang/String;
ARG 0 sendingSide
METHOD method_56334 getInboundHandlerName (Z)Ljava/lang/String;
ARG 0 receivingSide
CLASS 1
METHOD initChannel (Lio/netty/channel/Channel;)V
ARG 1 channel
CLASS 2
METHOD write (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
ARG 1 context
ARG 2 value
ARG 3 promise
CLASS 3
METHOD initChannel (Lio/netty/channel/Channel;)V
ARG 1 channel
11 changes: 6 additions & 5 deletions mappings/net/minecraft/network/NetworkState.mapping
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
CLASS net/minecraft/class_2539 net/minecraft/network/NetworkState
FIELD field_20594 stateId Ljava/lang/String;
METHOD <init> (Ljava/lang/String;ILjava/lang/String;)V
ARG 3 stateId
METHOD method_10785 getId ()Ljava/lang/String;
CLASS net/minecraft/class_9127 net/minecraft/network/NetworkState
METHOD comp_2235 side ()Lnet/minecraft/class_2598;
METHOD comp_2237 bundleHandler ()Lnet/minecraft/class_8039;
CLASS class_9128 Factory
METHOD bind (Ljava/util/function/Function;)Lnet/minecraft/class_9127;
ARG 1 registryBinder
52 changes: 52 additions & 0 deletions mappings/net/minecraft/network/NetworkStateBuilder.mapping
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
CLASS net/minecraft/class_9147 net/minecraft/network/NetworkStateBuilder
FIELD field_48616 type Lnet/minecraft/class_2539;
FIELD field_48617 side Lnet/minecraft/class_2598;
FIELD field_48618 packetTypes Ljava/util/List;
FIELD field_48619 bundleHandler Lnet/minecraft/class_8039;
METHOD <init> (Lnet/minecraft/class_2539;Lnet/minecraft/class_2598;)V
ARG 1 type
ARG 2 side
METHOD method_56447 buildFactory ()Lnet/minecraft/class_9127$class_9128;
METHOD method_56448 (Ljava/util/List;Lnet/minecraft/class_8039;Ljava/util/function/Function;)Lnet/minecraft/class_9127;
ARG 3 bufUpgrader
METHOD method_56449 build (Ljava/util/function/Function;)Lnet/minecraft/class_9127;
ARG 1 bufUpgrader
METHOD method_56450 createCodec (Ljava/util/function/Function;Ljava/util/List;)Lnet/minecraft/class_9139;
ARG 1 bufUpgrader
ARG 2 packetTypes
METHOD method_56451 c2s (Lnet/minecraft/class_2539;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127;
ARG 0 type
ARG 1 registrar
METHOD method_56452 build (Lnet/minecraft/class_2539;Lnet/minecraft/class_2598;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127;
ARG 0 type
ARG 1 side
ARG 2 registrar
METHOD method_56453 addBundle (Lnet/minecraft/class_9145;Ljava/util/function/Function;Lnet/minecraft/class_8037;)Lnet/minecraft/class_9147;
ARG 1 id
ARG 2 bundler
ARG 3 splitter
METHOD method_56454 add (Lnet/minecraft/class_9145;Lnet/minecraft/class_9139;)Lnet/minecraft/class_9147;
ARG 1 id
ARG 2 codec
METHOD method_56455 s2c (Lnet/minecraft/class_2539;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127;
ARG 0 type
ARG 1 registrar
METHOD method_56456 buildFactory (Lnet/minecraft/class_2539;Lnet/minecraft/class_2598;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127$class_9128;
ARG 0 type
ARG 1 side
ARG 2 registrar
METHOD method_56457 c2sFactory (Lnet/minecraft/class_2539;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127$class_9128;
ARG 0 type
ARG 1 registrar
METHOD method_56458 s2cFactory (Lnet/minecraft/class_2539;Ljava/util/function/Consumer;)Lnet/minecraft/class_9127$class_9128;
ARG 0 type
ARG 1 registrar
CLASS class_9148 PacketType
FIELD comp_2232 id Lnet/minecraft/class_9145;
FIELD comp_2233 codec Lnet/minecraft/class_9139;
METHOD comp_2232 id ()Lnet/minecraft/class_9145;
METHOD comp_2233 codec ()Lnet/minecraft/class_9139;
METHOD method_56459 add (Lnet/minecraft/class_9146;Ljava/util/function/Function;)V
ARG 1 builder
ARG 2 bufUpgrader
CLASS class_9149 NetworkStateImpl
5 changes: 5 additions & 0 deletions mappings/net/minecraft/network/NetworkStateType.mapping
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CLASS net/minecraft/class_2539 net/minecraft/network/NetworkStateType
FIELD field_20594 stateId Ljava/lang/String;
METHOD <init> (Ljava/lang/String;ILjava/lang/String;)V
ARG 3 stateId
METHOD method_10785 getId ()Ljava/lang/String;
8 changes: 2 additions & 6 deletions mappings/net/minecraft/network/PacketByteBuf.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ CLASS net/minecraft/class_2540 net/minecraft/network/PacketByteBuf
COMMENT <td>Codec-based (JSON)</td><td>{@link #decodeAsJson(Codec)}</td><td>{@link #encodeAsJson(Codec, Object)}</td>
COMMENT </tr>
COMMENT <tr>
COMMENT <td>{@link net.minecraft.registry.Registry} value</td><td>{@link #readRegistryValue(IndexedIterable)}</td><td>{@link #writeRegistryValue(IndexedIterable, Object)}</td>
COMMENT </tr>
COMMENT <tr>
COMMENT <td>Integer-identified value</td><td>{@link #decode(IntFunction)}</td><td>{@link #encode(ToIntFunction, Object)}</td>
COMMENT </tr>
COMMENT <tr>
Expand Down Expand Up @@ -90,9 +87,6 @@ CLASS net/minecraft/class_2540 net/minecraft/network/PacketByteBuf
COMMENT <td>{@link NbtCompound}</td><td>{@link #readNbt()}</td><td>{@link #writeNbt(NbtCompound)}</td>
COMMENT </tr>
COMMENT <tr>
COMMENT <td>{@link ItemStack}</td><td>{@link #readItemStack()}</td><td>{@link #writeItemStack(ItemStack)}</td>
COMMENT </tr>
COMMENT <tr>
COMMENT <td>{@link String}</td><td>{@link #readString()}</td><td>{@link #writeString(String)}</td>
COMMENT </tr>
COMMENT <tr>
Expand Down Expand Up @@ -765,6 +759,8 @@ CLASS net/minecraft/class_2540 net/minecraft/network/PacketByteBuf
COMMENT @see #readMap(PacketByteBuf.PacketReader, PacketByteBuf.PacketReader)
ARG 1 mapFactory
COMMENT a factory that creates a map with a given size
ARG 2 keyReader
ARG 3 valueReader
METHOD method_34070 (Lnet/minecraft/class_2520;Ljava/lang/String;)Lio/netty/handler/codec/DecoderException;
ARG 1 error
METHOD method_36130 writeChunkPos (Lnet/minecraft/class_1923;)Lnet/minecraft/class_2540;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
CLASS net/minecraft/class_9129 net/minecraft/network/codec/RegistryByteBuf
CLASS net/minecraft/class_9129 net/minecraft/network/RegistryByteBuf
COMMENT A packet byte buffer bound to a particular {@link DynamicRegistryManager} instance.
COMMENT
COMMENT <p>This is used during the {@link NetworkStateType#PLAY} phase only.
FIELD field_48538 registryManager Lnet/minecraft/class_5455;
METHOD <init> (Lio/netty/buffer/ByteBuf;Lnet/minecraft/class_5455;)V
ARG 1 buf
Expand Down
85 changes: 84 additions & 1 deletion mappings/net/minecraft/network/codec/PacketCodec.mapping
Original file line number Diff line number Diff line change
@@ -1,23 +1,81 @@
CLASS net/minecraft/class_9139 net/minecraft/network/codec/PacketCodec
COMMENT A codec that is used for serializing a packet.
COMMENT
COMMENT <p>Packet codecs serialize to, and deserialize from, {@link net.minecraft.network.PacketByteBuf},
COMMENT which is a stream of data. To integrate the classic {@link net.minecraft.network.PacketByteBuf}-based
COMMENT code, use {@link #of(ValueFirstEncoder, PacketDecoder)}
COMMENT like this:
COMMENT
COMMENT <p><pre>{@code
COMMENT public static final PacketCodec<PacketByteBuf, MyPacket> CODEC = PacketCodec.of(MyPacket::write, MyPacket::new);
COMMENT
COMMENT private MyPacket(PacketByteBuf buf) {
COMMENT \tthis.text = buf.readString();
COMMENT }
COMMENT
COMMENT private void write(PacketByteBuf buf) {
COMMENT \tbuf.writeString(this.text);
COMMENT }
COMMENT }</pre>
COMMENT
COMMENT <p>While this serves similar functions as codecs in the DataFixerUpper library,
COMMENT the two are wholly separate and DataFixerUpper methods cannot be used with this.
COMMENT However, a packet codec may reference a regular codec by using {@link
COMMENT PacketCodecs#codec}, which serializes the data to NBT.
COMMENT
COMMENT <p>See {@link PacketCodecs} for codecs to serialize various objects.
COMMENT
COMMENT @param <B> the type of the buffer; {@link net.minecraft.network.RegistryByteBuf}
COMMENT for play-phase packets, {@link net.minecraft.network.PacketByteBuf} for other
COMMENT phases (like configuration)
COMMENT @param <V> the type of the value to be encoded/decoded
METHOD method_56430 cast ()Lnet/minecraft/class_9139;
METHOD method_56431 unit (Ljava/lang/Object;)Lnet/minecraft/class_9139;
COMMENT {@return a codec that always returns {@code value}}
COMMENT
COMMENT <p>This does not encode anything. Instead, it throws {@link
COMMENT IllegalStateException} when the value does not
COMMENT equal {@code value}. This comparison is made with {@code equals()}, not
COMMENT reference equality ({@code ==}).
ARG 0 value
METHOD method_56432 xmap (Ljava/util/function/Function;Ljava/util/function/Function;)Lnet/minecraft/class_9139;
COMMENT {@return a codec that maps its encode input and decode output with {@code from}
COMMENT and {@code to}, respectively}
COMMENT
COMMENT <p>This can be used to transform a codec for a simple value (like a string)
COMMENT into a corresponding, more complex value (like an identifier). An example:
COMMENT
COMMENT <p><pre>{@code
COMMENT public static final PacketCodec<ByteBuf, Identifier> PACKET_CODEC = PacketCodecs.STRING.xmap(Identifier::new, Identifier::toString);
COMMENT }</pre>
ARG 1 to
ARG 2 from
METHOD method_56433 mapResult (Lnet/minecraft/class_9139$class_9140;)Lnet/minecraft/class_9139;
METHOD method_56433 collect (Lnet/minecraft/class_9139$class_9140;)Lnet/minecraft/class_9139;
COMMENT {@return the result mapped with {@code function}}
COMMENT
COMMENT <p>For example, passing {@code PacketCodecs::optional} makes the value
COMMENT optional. Additionally, this method can be used like Stream {@link
COMMENT java.util.stream.Collectors} - hence its name. For example, to make a codec
COMMENT for a list of something, write {@code parentCodec.collect(PacketCodecs.toList())}.
COMMENT
COMMENT @see PacketCodecs#optional
COMMENT @see PacketCodecs#toCollection
COMMENT @see PacketCodecs#toList
ARG 1 function
METHOD method_56434 tuple (Lnet/minecraft/class_9139;Ljava/util/function/Function;Ljava/util/function/Function;)Lnet/minecraft/class_9139;
COMMENT {@return a codec for encoding one value}
ARG 0 codec
ARG 1 from
ARG 2 to
METHOD method_56435 tuple (Lnet/minecraft/class_9139;Ljava/util/function/Function;Lnet/minecraft/class_9139;Ljava/util/function/Function;Ljava/util/function/BiFunction;)Lnet/minecraft/class_9139;
COMMENT {@return a codec for encoding two values}
ARG 0 codec1
ARG 1 from1
ARG 2 codec2
ARG 3 from2
ARG 4 to
METHOD method_56436 tuple (Lnet/minecraft/class_9139;Ljava/util/function/Function;Lnet/minecraft/class_9139;Ljava/util/function/Function;Lnet/minecraft/class_9139;Ljava/util/function/Function;Lcom/mojang/datafixers/util/Function3;)Lnet/minecraft/class_9139;
COMMENT {@return a codec for encoding three values}
ARG 0 codec1
ARG 1 from1
ARG 2 codec2
Expand All @@ -26,16 +84,41 @@ CLASS net/minecraft/class_9139 net/minecraft/network/codec/PacketCodec
ARG 5 from3
ARG 6 to
METHOD method_56437 of (Lnet/minecraft/class_9142;Lnet/minecraft/class_9141;)Lnet/minecraft/class_9139;
COMMENT {@return a packet codec from the {@code encoder} and {@code decoder}}
COMMENT
COMMENT @apiNote This is useful for integrating with code that uses static methods for
COMMENT packet writing, where the buffer is the first argument, like
COMMENT {@code static void write(PacketByteBuf buf, Data data)}.
COMMENT For code that uses instance methods like {@code void write(PacketByteBuf buf)},
COMMENT use {@link #of(ValueFirstEncoder, PacketDecoder)}.
ARG 0 encoder
ARG 1 decoder
METHOD method_56438 of (Lnet/minecraft/class_9143;Lnet/minecraft/class_9141;)Lnet/minecraft/class_9139;
COMMENT {@return a packet codec from the {@code encoder} and {@code decoder}}
COMMENT
COMMENT @apiNote This is useful for integrating with code that uses instance methods for
COMMENT packet writing, like {@code void write(PacketByteBuf buf)}.
COMMENT For code that uses static methods like {@code static void write(PacketByteBuf buf, Data data)},
COMMENT where the buffer is the first argument, use {@link #of(PacketEncoder, PacketDecoder)}.
ARG 0 encoder
ARG 1 decoder
METHOD method_56439 mapBuf (Ljava/util/function/Function;)Lnet/minecraft/class_9139;
ARG 1 function
METHOD method_56440 dispatch (Ljava/util/function/Function;Ljava/util/function/Function;)Lnet/minecraft/class_9139;
COMMENT {@return a codec that dispatches one of the sub-codecs based on the type}
COMMENT
COMMENT <p>For example, subtypes of {@link net.minecraft.stat.Stat} requires different values
COMMENT to be serialized, yet it makes sense to use the same codec for all stats.
COMMENT This method should be called on the codec for the "type" - like {@link
COMMENT net.minecraft.stat.StatType}. An example:
COMMENT
COMMENT <p><pre>{@code
COMMENT public static final PacketCodec<RegistryByteBuf, Thing<?>> PACKET_CODEC = PacketCodecs.registryValue(RegistryKeys.THING_TYPE).dispatch(Thing::getType, ThingType::getPacketCodec);
COMMENT }</pre>
ARG 1 type
COMMENT a function that, given a value, returns its "type"
ARG 2 codec
COMMENT a function that, given a "type", returns the codec for encoding/decoding the value
CLASS class_9140 ResultFunction
METHOD apply (Lnet/minecraft/class_9139;)Lnet/minecraft/class_9139;
ARG 1 codec
Loading

0 comments on commit 3923862

Please sign in to comment.