From b2fcb1d7f596dd48452f1116687a91043f59d1c9 Mon Sep 17 00:00:00 2001 From: apple502j <33279053+apple502j@users.noreply.github.com> Date: Thu, 21 Jul 2022 01:56:22 +0900 Subject: [PATCH] 1.19.1-pre5 client networking (#3249) * 1.19.1-pre5 client networking * Fix typo --- .../gui/screen/ChatInputSuggestor.mapping | 7 ++ .../gui/screen/ChatPreviewBackground.mapping | 19 +++ .../client/gui/screen/ChatScreen.mapping | 25 +++- .../ChatPreviewWarningScreen.mapping | 1 + .../client/network/ChatPreviewer.mapping | 19 ++- .../network/ClientPlayNetworkHandler.mapping | 17 +++ .../client/network/ClientPlayerEntity.mapping | 13 ++ .../network/message/MessageHandler.mapping | 114 +++++++++++++++++- .../message/MessageTrustStatus.mapping | 1 + .../client/option/ChatPreviewMode.mapping | 9 ++ .../client/option/GameOptions.mapping | 9 ++ .../client/report/ChatAbuseReport.mapping | 43 +++++++ .../client/report/{ => log}/ChatLog.mapping | 58 +++++---- .../client/report/log/ChatLogEntry.mapping | 2 + .../report/{ => log}/ChatLogImpl.mapping | 12 +- .../client/report/log/HeaderEntry.mapping | 7 ++ .../report/{ => log}/ReceivedMessage.mapping | 2 +- 17 files changed, 323 insertions(+), 35 deletions(-) create mode 100644 mappings/net/minecraft/client/gui/screen/ChatPreviewBackground.mapping create mode 100644 mappings/net/minecraft/client/option/ChatPreviewMode.mapping rename mappings/net/minecraft/client/report/{ => log}/ChatLog.mapping (64%) create mode 100644 mappings/net/minecraft/client/report/log/ChatLogEntry.mapping rename mappings/net/minecraft/client/report/{ => log}/ChatLogImpl.mapping (73%) create mode 100644 mappings/net/minecraft/client/report/log/HeaderEntry.mapping rename mappings/net/minecraft/client/report/{ => log}/ReceivedMessage.mapping (97%) diff --git a/mappings/net/minecraft/client/gui/screen/ChatInputSuggestor.mapping b/mappings/net/minecraft/client/gui/screen/ChatInputSuggestor.mapping index e1bdac4b0f..9be402f16a 100644 --- a/mappings/net/minecraft/client/gui/screen/ChatInputSuggestor.mapping +++ b/mappings/net/minecraft/client/gui/screen/ChatInputSuggestor.mapping @@ -77,6 +77,13 @@ CLASS net/minecraft/class_4717 net/minecraft/client/gui/screen/ChatInputSuggesto METHOD method_44278 getNodeAt (ILcom/mojang/brigadier/context/CommandContextBuilder;)Lcom/mojang/brigadier/tree/CommandNode; ARG 0 cursor ARG 1 builder + METHOD method_44931 clearWindow ()V + METHOD method_44932 renderMessages (Lnet/minecraft/class_4587;)V + ARG 1 matrices + METHOD method_44933 tryRenderWindow (Lnet/minecraft/class_4587;II)Z + ARG 1 matrices + ARG 2 mouseX + ARG 3 mouseY CLASS class_464 SuggestionWindow FIELD field_21630 lastNarrationIndex I FIELD field_25709 suggestions Ljava/util/List; diff --git a/mappings/net/minecraft/client/gui/screen/ChatPreviewBackground.mapping b/mappings/net/minecraft/client/gui/screen/ChatPreviewBackground.mapping new file mode 100644 index 0000000000..1373dec307 --- /dev/null +++ b/mappings/net/minecraft/client/gui/screen/ChatPreviewBackground.mapping @@ -0,0 +1,19 @@ +CLASS net/minecraft/class_7625 net/minecraft/client/gui/screen/ChatPreviewBackground + FIELD field_39845 MAX_FADE_TIME J + FIELD field_39846 previewText Lnet/minecraft/class_2561; + FIELD field_39847 currentFadeTime J + FIELD field_39848 lastRenderTime J + METHOD method_44922 init (J)V + ARG 1 currentTime + METHOD method_44923 computeRenderData (JLnet/minecraft/class_2561;)Lnet/minecraft/class_7625$class_7626; + ARG 1 currentTime + ARG 3 previewText + METHOD method_44924 computeRenderDataWithoutText (J)Lnet/minecraft/class_7625$class_7626; + ARG 1 timeDelta + METHOD method_44925 computeRenderDataWithText (JLnet/minecraft/class_2561;)Lnet/minecraft/class_7625$class_7626; + ARG 1 timeDelta + ARG 3 previewText + METHOD method_44926 toAlpha (J)F + ARG 0 timeDelta + CLASS class_7626 RenderData + FIELD field_39849 EMPTY Lnet/minecraft/class_7625$class_7626; diff --git a/mappings/net/minecraft/client/gui/screen/ChatScreen.mapping b/mappings/net/minecraft/client/gui/screen/ChatScreen.mapping index 262fdd2db4..7c01959470 100644 --- a/mappings/net/minecraft/client/gui/screen/ChatScreen.mapping +++ b/mappings/net/minecraft/client/gui/screen/ChatScreen.mapping @@ -6,7 +6,7 @@ CLASS net/minecraft/class_408 net/minecraft/client/gui/screen/ChatScreen COMMENT COMMENT @see net.minecraft.client.gui.hud.ChatHud FIELD field_18973 originalChatText Ljava/lang/String; - FIELD field_21616 commandSuggestor Lnet/minecraft/class_4717; + FIELD field_21616 chatInputSuggestor Lnet/minecraft/class_4717; FIELD field_2382 chatField Lnet/minecraft/class_342; FIELD field_2387 messageHistorySize I FIELD field_2389 chatLastMessage Ljava/lang/String; @@ -19,6 +19,15 @@ CLASS net/minecraft/class_408 net/minecraft/client/gui/screen/ChatScreen FIELD field_39345 CHAT_PREVIEW_WARNING_TOAST_TEXT Lnet/minecraft/class_2561; FIELD field_39347 chatPreviewer Lnet/minecraft/class_7479; FIELD field_39774 MAX_INDICATOR_TOOLTIP_WIDTH I + FIELD field_39850 chatPreviewMode Lnet/minecraft/class_7628; + FIELD field_39851 missingPreview Z + FIELD field_39852 chatPreviewBackground Lnet/minecraft/class_7625; + FIELD field_39853 PREVIEW_PENDING_COLOR I + FIELD field_39854 PREVIEW_CONSUMABLE_COLOR I + FIELD field_39855 CHAT_PREVIEW_INPUT_TEXT Lnet/minecraft/class_2561; + FIELD field_39856 EVENT_HIGHLIGHT_COLOR I + METHOD (Ljava/lang/String;)V + ARG 1 originalChatText METHOD method_2108 setText (Ljava/lang/String;)V ARG 1 text METHOD method_2114 setChatFromHistory (I)V @@ -31,6 +40,10 @@ CLASS net/minecraft/class_408 net/minecraft/client/gui/screen/ChatScreen ARG 1 x ARG 3 y METHOD method_44053 renderChatPreview (Lnet/minecraft/class_4587;Lnet/minecraft/class_2561;FZ)V + ARG 1 matrices + ARG 2 previewText + ARG 3 alpha + ARG 4 signable METHOD method_44054 normalize (Ljava/lang/String;)Ljava/lang/String; COMMENT {@return the {@code message} normalized by trimming it and then normalizing spaces} ARG 1 chatText @@ -62,3 +75,13 @@ CLASS net/minecraft/class_408 net/minecraft/client/gui/screen/ChatScreen ARG 1 chatText METHOD method_44281 tryRequestCommandPreview (Ljava/lang/String;)V ARG 1 chatText + METHOD method_44934 drawEventHighlight (Lnet/minecraft/class_4587;Lnet/minecraft/class_5481;II)V + ARG 1 matrices + ARG 2 text + ARG 3 y + ARG 4 alpha + METHOD method_44935 wrapPreviewText (Lnet/minecraft/class_2561;)Ljava/util/List; + ARG 1 preview + METHOD method_44936 (Lnet/minecraft/class_2583;)Z + ARG 0 style + METHOD method_44937 getPreviewText ()Lnet/minecraft/class_2561; diff --git a/mappings/net/minecraft/client/gui/screen/multiplayer/ChatPreviewWarningScreen.mapping b/mappings/net/minecraft/client/gui/screen/multiplayer/ChatPreviewWarningScreen.mapping index 7a7fea896c..75d2c784be 100644 --- a/mappings/net/minecraft/client/gui/screen/multiplayer/ChatPreviewWarningScreen.mapping +++ b/mappings/net/minecraft/client/gui/screen/multiplayer/ChatPreviewWarningScreen.mapping @@ -11,3 +11,4 @@ CLASS net/minecraft/class_7483 net/minecraft/client/gui/screen/multiplayer/ChatP METHOD method_44067 (Lnet/minecraft/class_4185;)V ARG 1 button METHOD method_44069 acknowledge ()V + METHOD method_44938 getWarningContent ()Lnet/minecraft/class_2561; diff --git a/mappings/net/minecraft/client/network/ChatPreviewer.mapping b/mappings/net/minecraft/client/network/ChatPreviewer.mapping index a80402fcbd..232dbbb38f 100644 --- a/mappings/net/minecraft/client/network/ChatPreviewer.mapping +++ b/mappings/net/minecraft/client/network/ChatPreviewer.mapping @@ -34,6 +34,7 @@ CLASS net/minecraft/class_7479 net/minecraft/client/network/ChatPreviewer COMMENT @implNote This sets the last response if the requester {@linkplain COMMENT ChatPreviewRequester#handleResponse successfully handled} the response. ARG 1 id + ARG 2 previewText METHOD method_44036 clear ()V COMMENT Clears the last response and the requester's state. METHOD method_44037 tryConsumeResponse (Ljava/lang/String;)Lnet/minecraft/class_7479$class_7481; @@ -61,14 +62,22 @@ CLASS net/minecraft/class_7479 net/minecraft/client/network/ChatPreviewer COMMENT can be requested by calling {@link #tryRequestPending()}. ARG 1 message METHOD method_44275 disablePreview ()V - COMMENT Sets {@link #shouldRenderPreview} to {@code false} and clears this previewer. + COMMENT Clears this previewer. METHOD method_44276 tryRequestInternal (Ljava/lang/String;)V ARG 1 message + METHOD method_44927 equalsLastPreviewed (Ljava/lang/String;)Z + COMMENT {@return whether normalized {@code text} equals the last previewed text} + ARG 1 text + METHOD method_44928 cannotConsumePreview ()Z + COMMENT {@return whether the previewer cannot consume the preview (because the preview + COMMENT response hasn't arrived or because of the cooldown)} CLASS class_7481 Response COMMENT A response to the preview query. + FIELD comp_826 receptionTimestamp J FIELD comp_827 Ljava/lang/String; COMMENT the message that was queried to preview FIELD comp_828 previewText Lnet/minecraft/class_2561; + METHOD comp_826 receptionTimestamp ()J METHOD comp_828 previewText ()Lnet/minecraft/class_2561; METHOD method_44045 canConsume (Ljava/lang/String;)Z COMMENT {@return whether the response can be consumed for the {@code message}} @@ -76,3 +85,11 @@ CLASS net/minecraft/class_7479 net/minecraft/client/network/ChatPreviewer COMMENT

This returns {@code true} if the {@code message} equals the queried message and COMMENT the cooldown has passed. ARG 1 message + METHOD method_44929 queryEquals (Ljava/lang/String;)Z + COMMENT {@return whether normalized {@code query} equals the response query} + ARG 1 query + METHOD method_44930 hasCooldownPassed ()Z + COMMENT {@return the cooldown for consuming the preview has passed} + COMMENT + COMMENT @see #canConsume + COMMENT @see ChatPreviewer#tryConsumeResponse diff --git a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping index a455498aec..ebb084d075 100644 --- a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping +++ b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping @@ -21,7 +21,15 @@ CLASS net/minecraft/class_634 net/minecraft/client/network/ClientPlayNetworkHand FIELD field_3700 advancementHandler Lnet/minecraft/class_632; FIELD field_3701 loginScreen Lnet/minecraft/class_437; FIELD field_39808 messagePacker Lnet/minecraft/class_7610$class_7612; + FIELD field_39857 MAX_PENDING_ACKNOWLEDGMENTS I + FIELD field_39858 lastSeenMessagesCollector Lnet/minecraft/class_7637; + FIELD field_39859 lastReceivedMessage Ljava/util/Optional; + FIELD field_39860 pendingAcknowledgments I + COMMENT The number of messages whose acknowledgments aren't sent to the server yet. + COMMENT They are sent when the count reaches {@value #MAX_PENDING_ACKNOWLEDGMENTS} + COMMENT or when the client sends a message, and this count is reset to zero in those cases. METHOD (Lnet/minecraft/class_310;Lnet/minecraft/class_437;Lnet/minecraft/class_2535;Lcom/mojang/authlib/GameProfile;Lnet/minecraft/class_6628;)V + ARG 1 client ARG 2 screen ARG 3 connection ARG 4 profile @@ -116,3 +124,12 @@ CLASS net/minecraft/class_634 net/minecraft/client/network/ClientPlayNetworkHand METHOD method_44072 (Lnet/minecraft/class_642;Lnet/minecraft/class_2561;)V ARG 1 description METHOD method_44816 getMessagePacker ()Lnet/minecraft/class_7610$class_7612; + METHOD method_44940 acknowledge (Lnet/minecraft/class_7471;Z)V + ARG 1 message + ARG 2 displayed + METHOD method_44941 consumeAcknowledgment ()Lnet/minecraft/class_7635$class_7636; + COMMENT {@return the consumed acknowledgment} + COMMENT + COMMENT

This resets {@link #pendingAcknowledgments} to {@code 0}. + COMMENT + COMMENT @see #pendingAcknowledgments diff --git a/mappings/net/minecraft/client/network/ClientPlayerEntity.mapping b/mappings/net/minecraft/client/network/ClientPlayerEntity.mapping index 8cb33ffe1b..690061cdf2 100644 --- a/mappings/net/minecraft/client/network/ClientPlayerEntity.mapping +++ b/mappings/net/minecraft/client/network/ClientPlayerEntity.mapping @@ -99,6 +99,8 @@ CLASS net/minecraft/class_746 net/minecraft/client/network/ClientPlayerEntity COMMENT Signs the chat message. If the chat message cannot be signed, this will return COMMENT {@link MessageSignatureData#EMPTY}. ARG 1 metadata + ARG 2 content + ARG 3 lastSeenMessages METHOD method_43786 signArguments (Lnet/minecraft/class_7470;Lcom/mojang/brigadier/ParseResults;Lnet/minecraft/class_2561;Lnet/minecraft/class_7635;)Lnet/minecraft/class_7450; COMMENT Signs the command arguments. If the arguments cannot be signed or if there is no COMMENT arguments to sign, this will return {@link ArgumentSignatureDataMap#EMPTY}. @@ -106,6 +108,7 @@ CLASS net/minecraft/class_746 net/minecraft/client/network/ClientPlayerEntity ARG 2 parseResults ARG 3 preview COMMENT the previewed argument value; if supplied, will be used for all signed arguments + ARG 4 lastSeenMessages METHOD method_43787 sendCommandInternal (Ljava/lang/String;Lnet/minecraft/class_2561;)V COMMENT Signs and sends {@code command} to the server. ARG 1 command @@ -127,6 +130,7 @@ CLASS net/minecraft/class_746 net/minecraft/client/network/ClientPlayerEntity ARG 2 preview METHOD method_44097 sendChatMessagePacket (Ljava/lang/String;Lnet/minecraft/class_2561;)V ARG 1 content + ARG 2 preview METHOD method_44098 sendCommand (Ljava/lang/String;Lnet/minecraft/class_2561;)V COMMENT Signs and sends {@code command} to the server. ARG 1 command @@ -136,6 +140,15 @@ CLASS net/minecraft/class_746 net/minecraft/client/network/ClientPlayerEntity COMMENT Sends an unsigned command to the server. ARG 1 command COMMENT the command (without the leading slash) + METHOD method_44297 (Lnet/minecraft/class_2561;Lnet/minecraft/class_7501;Lnet/minecraft/class_7470;Lnet/minecraft/class_7635;Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/class_7469; + ARG 5 argumentName + ARG 6 value METHOD method_44826 createMessageMetadata ()Lnet/minecraft/class_7470; + METHOD method_44970 shouldPreview (Ljava/lang/String;)Z + COMMENT {@return whether to preview {@code command}} + COMMENT + COMMENT @see ArgumentSignatureDataMap#shouldPreview + ARG 1 command + COMMENT the command (without the leading slash) METHOD method_7290 dropSelectedItem (Z)Z ARG 1 entireStack diff --git a/mappings/net/minecraft/client/network/message/MessageHandler.mapping b/mappings/net/minecraft/client/network/message/MessageHandler.mapping index 3bbaa520a1..0f2e7d2e42 100644 --- a/mappings/net/minecraft/client/network/message/MessageHandler.mapping +++ b/mappings/net/minecraft/client/network/message/MessageHandler.mapping @@ -7,12 +7,29 @@ CLASS net/minecraft/class_7594 net/minecraft/client/network/message/MessageHandl METHOD (Lnet/minecraft/class_310;)V ARG 1 client METHOD method_44731 getPlayerListEntry (Ljava/util/UUID;)Lnet/minecraft/class_640; + COMMENT {@return the player list entry for {@code sender}, or {@code null} if the sender's + COMMENT UUID did not correspond to any known players} ARG 1 sender METHOD method_44732 getStatus (Lnet/minecraft/class_7471;Lnet/minecraft/class_2561;Lnet/minecraft/class_640;Ljava/time/Instant;)Lnet/minecraft/class_7595; + COMMENT {@return the trust status of {@code message}} + COMMENT + COMMENT

This returns {@link MessageTrustStatus#SECURE} for messages that are + COMMENT considered to be {@linkplain #isAlwaysTrusted always trusted}. + COMMENT + COMMENT @see #isAlwaysTrusted + COMMENT @see MessageTrustStatus#getStatus ARG 1 message ARG 2 decorated ARG 3 senderEntry + ARG 4 receptionTimestamp METHOD method_44733 onChatMessage (Lnet/minecraft/class_7471;Lnet/minecraft/class_2556$class_7602;)V + COMMENT Called when a chat message is received. + COMMENT + COMMENT

This enqueues the message to be processed after the chat delay set in + COMMENT options, if any. + COMMENT + COMMENT @see #processChatMessage + ARG 1 message ARG 2 params METHOD method_44734 extractSender (Lnet/minecraft/class_2561;)Ljava/util/UUID; ARG 1 text @@ -20,6 +37,9 @@ CLASS net/minecraft/class_7594 net/minecraft/client/network/message/MessageHandl ARG 1 message ARG 2 timestamp METHOD method_44736 onGameMessage (Lnet/minecraft/class_2561;Z)V + COMMENT Called when a game message is received. + COMMENT + COMMENT

Game messages ignore chat delay. ARG 1 message ARG 2 overlay METHOD method_44737 addToChatLog (Lnet/minecraft/class_7471;Lnet/minecraft/class_2556$class_7602;Lnet/minecraft/class_640;Lnet/minecraft/class_7595;)V @@ -28,6 +48,9 @@ CLASS net/minecraft/class_7594 net/minecraft/client/network/message/MessageHandl ARG 3 senderEntry ARG 4 trustStatus METHOD method_44738 isAlwaysTrusted (Ljava/util/UUID;)Z + COMMENT {@return whether messages from {@code sender} are always trusted} + COMMENT + COMMENT

Messages from this client's player in a singleplayer world are always trusted. ARG 1 sender METHOD method_44765 processDelayedMessages ()V COMMENT Processes all delayed messages until one of them fails to process if the delay @@ -37,17 +60,38 @@ CLASS net/minecraft/class_7594 net/minecraft/client/network/message/MessageHandl COMMENT to {@code 0}, this also processes all queued messages. ARG 1 chatDelay METHOD method_44767 processProfilelessMessage (Lnet/minecraft/class_2556$class_7602;Lnet/minecraft/class_7471;Lnet/minecraft/class_2561;)Z + COMMENT Processes a message that is sent as chat message but lacks the sender. + COMMENT + COMMENT

This is usually a message sent via commands executed from {@code /execute} + COMMENT command. + COMMENT + COMMENT

This adds the message to the hud, narrates it, and appends it to the + COMMENT chat log. The message is not verified. ARG 1 params ARG 2 message ARG 3 decorated METHOD method_44768 processChatMessage (Lnet/minecraft/class_2556$class_7602;Lnet/minecraft/class_7471;Lnet/minecraft/class_2561;Lnet/minecraft/class_640;ZLjava/time/Instant;)Z + COMMENT Processes a chat message and sends acknowledgment to the server. + COMMENT + COMMENT

The message can still end up not being displayed if the verification + COMMENT fails and {@code onlyShowSecureChat} is {@code true} or if the sender is + COMMENT blocked via the social interactions screen. + COMMENT + COMMENT @return whether the message was actually displayed + COMMENT @see #processChatMessageInternal ARG 1 params ARG 2 message ARG 3 decorated ARG 4 senderEntry + ARG 5 onlyShowSecureChat + ARG 6 receptionTimestamp + COMMENT the timestamp when the message was received by this client METHOD method_44769 process ()V COMMENT Processes one delayed message from the queue's beginning. METHOD method_44772 narrate (Lnet/minecraft/class_2556$class_7602;Lnet/minecraft/class_7471;)V + COMMENT Narrates {@code message}. + COMMENT + COMMENT @see net.minecraft.client.util.NarratorManager#narrateChatMessage ARG 1 params ARG 2 message METHOD method_44775 shouldDelay ()Z @@ -55,16 +99,78 @@ CLASS net/minecraft/class_7594 net/minecraft/client/network/message/MessageHandl METHOD method_44818 process (Lnet/minecraft/class_7594$class_7627;)V COMMENT Queues {@code processor} during {@linkplain #shouldDelay the chat delay}, COMMENT otherwise runs the processor. - ARG 1 processor + ARG 1 message METHOD method_44819 removeDelayedMessage (Lnet/minecraft/class_7469;)Z + COMMENT Removes a delayed message whose signature matches {@code signature}. + COMMENT If this returns {@code false}, either the message is not received or it it + COMMENT already on the hud. + COMMENT + COMMENT @return whether the message was removed ARG 1 signature METHOD method_44820 onMessageHeader (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)V - ARG 3 bodyDigest - METHOD method_44821 processHeader (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)Z + COMMENT Called when a message header is received. + COMMENT + COMMENT

Message header is received instead of the full message when a message is censored + COMMENT or when the message is originally sent without metadata due to it being originated from + COMMENT entities. This is to keep the integrity of the "message chain". ARG 1 header ARG 2 signature ARG 3 bodyDigest - METHOD method_44822 headerProcessed (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)V + METHOD method_44821 processHeader (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)Z + COMMENT Processes a received message header. + COMMENT + COMMENT

Message header is received instead of the full message when a message is censored + COMMENT or when the message is originally sent without metadata due to it being originated from + COMMENT entities. This is to keep the integrity of the "message chain". + COMMENT + COMMENT

This stores the header verification result and adds it to the chat log. + COMMENT + COMMENT @see net.minecraft.network.message.MessageVerifier#storeHeaderVerification + ARG 1 header + ARG 2 signature + ARG 3 bodyDigest + METHOD method_44822 addToChatLog (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)V ARG 1 header ARG 2 signatures ARG 3 bodyDigest + METHOD method_44942 (Lnet/minecraft/class_7594$class_7627;)V + ARG 0 message + METHOD method_44943 processChatMessageInternal (Lnet/minecraft/class_2556$class_7602;Lnet/minecraft/class_7471;Lnet/minecraft/class_2561;Lnet/minecraft/class_640;ZLjava/time/Instant;)Z + COMMENT Processes a chat message. + COMMENT + COMMENT

The message can still end up not being displayed if the verification + COMMENT fails and {@code onlyShowSecureChat} is {@code true} or if the sender is + COMMENT blocked via the social interactions screen. + COMMENT + COMMENT

This adds the message to the hud, narrates it, and appends it to the + COMMENT chat log. + COMMENT + COMMENT @return whether the message was actually displayed + ARG 1 params + ARG 2 message + ARG 3 decorated + ARG 4 senderEntry + ARG 5 onlyShowSecureChat + ARG 6 receptionTimestamp + COMMENT the timestamp when the message was received by this client + METHOD method_44944 getUnprocessedMessageCount ()J + COMMENT {@return the number of delayed messages that are not processed yet} + METHOD method_44945 processAll ()V + COMMENT Processes all delayed messages from the queue. + CLASS 1 + FIELD field_39868 processed Z + CLASS class_7627 ProcessableMessage + COMMENT A message to be processed. An instance is created for each received message. + METHOD accept ()Z + COMMENT If this is not processed yet, adds the message to the hud; otherwise, processes + COMMENT the message header without adding to the hud. + METHOD method_44946 markProcessed ()V + COMMENT Marks this as processed. + METHOD method_44947 removeMatching (Lnet/minecraft/class_7469;)Z + COMMENT If {@code signature} equals this message's signature, marks this + COMMENT as processed and returns {@code true}. Otherwise, returns {@code false}. + COMMENT + COMMENT @return whether the passed signature matches the message's signature + ARG 1 signature + METHOD method_44948 isUnprocessed ()Z + COMMENT {@return {@code true} if this is not processed yet} diff --git a/mappings/net/minecraft/client/network/message/MessageTrustStatus.mapping b/mappings/net/minecraft/client/network/message/MessageTrustStatus.mapping index b95b5cb0e9..fd2a352f2d 100644 --- a/mappings/net/minecraft/client/network/message/MessageTrustStatus.mapping +++ b/mappings/net/minecraft/client/network/message/MessageTrustStatus.mapping @@ -6,3 +6,4 @@ CLASS net/minecraft/class_7595 net/minecraft/client/network/message/MessageTrust ARG 0 message ARG 1 decorated ARG 2 sender + ARG 3 receptionTimestamp diff --git a/mappings/net/minecraft/client/option/ChatPreviewMode.mapping b/mappings/net/minecraft/client/option/ChatPreviewMode.mapping new file mode 100644 index 0000000000..3f74782c2b --- /dev/null +++ b/mappings/net/minecraft/client/option/ChatPreviewMode.mapping @@ -0,0 +1,9 @@ +CLASS net/minecraft/class_7628 net/minecraft/client/option/ChatPreviewMode + FIELD field_39876 VALUES [Lnet/minecraft/class_7628; + FIELD field_39877 id I + FIELD field_39878 translationKey Ljava/lang/String; + METHOD (Ljava/lang/String;IILjava/lang/String;)V + ARG 3 id + ARG 4 translationKey + METHOD method_44952 byId (I)Lnet/minecraft/class_7628; + ARG 0 id diff --git a/mappings/net/minecraft/client/option/GameOptions.mapping b/mappings/net/minecraft/client/option/GameOptions.mapping index 0ac678957f..9f4f6aa51f 100644 --- a/mappings/net/minecraft/client/option/GameOptions.mapping +++ b/mappings/net/minecraft/client/option/GameOptions.mapping @@ -208,6 +208,9 @@ CLASS net/minecraft/class_315 net/minecraft/client/option/GameOptions FIELD field_39319 chatPreview Lnet/minecraft/class_7172; FIELD field_39320 ONLY_SHOW_SECURE_CHAT_TOOLTIP Lnet/minecraft/class_2561; FIELD field_39321 onlyShowSecureChat Lnet/minecraft/class_7172; + FIELD field_39835 OFF_CHAT_PREVIEW_TOOLTIP Lnet/minecraft/class_2561; + FIELD field_39836 LIVE_CHAT_PREVIEW_TOOLTIP Lnet/minecraft/class_2561; + FIELD field_39837 CONFIRM_CHAT_PREVIEW_TOOLTIP Lnet/minecraft/class_2561; METHOD (Lnet/minecraft/class_310;Ljava/io/File;)V ARG 1 client ARG 2 optionsFile @@ -562,6 +565,12 @@ CLASS net/minecraft/class_315 net/minecraft/client/option/GameOptions ARG 1 value METHOD method_44025 getChatPreview ()Lnet/minecraft/class_7172; METHOD method_44026 getOnlyShowSecureChat ()Lnet/minecraft/class_7172; + METHOD method_44915 (Lnet/minecraft/class_310;)Lnet/minecraft/class_7172$class_7277; + ARG 0 client + METHOD method_44916 (Lnet/minecraft/class_310;Lnet/minecraft/class_7628;)Ljava/util/List; + ARG 1 value + METHOD method_44917 (Lnet/minecraft/class_7628;)V + ARG 0 value CLASS 2 METHOD method_33676 find (Ljava/lang/String;)Ljava/lang/String; ARG 1 key diff --git a/mappings/net/minecraft/client/report/ChatAbuseReport.mapping b/mappings/net/minecraft/client/report/ChatAbuseReport.mapping index 06e9a862d0..a23a359368 100644 --- a/mappings/net/minecraft/client/report/ChatAbuseReport.mapping +++ b/mappings/net/minecraft/client/report/ChatAbuseReport.mapping @@ -37,9 +37,52 @@ CLASS net/minecraft/class_7566 net/minecraft/client/report/ChatAbuseReport METHOD method_44583 getReason ()Lnet/minecraft/class_7573; METHOD method_44584 validate ()Lnet/minecraft/class_7566$class_7567; METHOD method_44585 copy ()Lnet/minecraft/class_7566; + METHOD method_44956 (Lnet/minecraft/class_7555$class_7560;)Lnet/minecraft/class_7555$class_7560; + ARG 0 indexedEntry + METHOD method_44957 streamSucceedingMessages (Lnet/minecraft/class_7555;II)Ljava/util/stream/Stream; + ARG 0 log + ARG 1 selectedIndex + ARG 2 maxCount + METHOD method_44958 collectEvidences (Lnet/minecraft/class_7555;ILcom/mojang/authlib/minecraft/report/AbuseReportLimits;)Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + ARG 0 log + ARG 1 selectedIndex + ARG 2 abuseReportLimits + METHOD method_44959 collectIndicesUntilLastSeen (Lnet/minecraft/class_7555;ILnet/minecraft/class_7557$class_7558;)Lit/unimi/dsi/fastutil/ints/IntCollection; + ARG 0 log + ARG 1 selectedIndex + ARG 2 message + METHOD method_44960 collectPrecedingMessages (Lnet/minecraft/class_7555;ILnet/minecraft/class_7566$class_7632;)V + ARG 0 log + ARG 1 selectedIndex + ARG 2 consumer + METHOD method_44961 streamHeadersFrom (Lnet/minecraft/class_7555;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;Ljava/util/UUID;)Ljava/util/stream/Stream; + ARG 1 log + ARG 2 evidences + ARG 3 senderUuid + METHOD method_44962 (Lnet/minecraft/class_7555;Lit/unimi/dsi/fastutil/ints/Int2ObjectSortedMap;I)V + ARG 1 selection + METHOD method_44963 toReportChatMessage (Lnet/minecraft/class_7630;)Lcom/mojang/authlib/minecraft/report/ReportChatMessage; + ARG 1 headerEntry + METHOD method_44964 (Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;Lcom/mojang/authlib/minecraft/report/AbuseReportLimits;ILnet/minecraft/class_7557$class_7558;)Z + ARG 0 index + ARG 1 message + METHOD method_44965 (Lit/unimi/dsi/fastutil/ints/Int2ObjectMap;Lnet/minecraft/class_7555$class_7560;)V + ARG 0 message + METHOD method_44966 (Lit/unimi/dsi/fastutil/ints/Int2ObjectSortedMap;Lnet/minecraft/class_7555$class_7560;)V + ARG 2 entry + METHOD method_44967 (Ljava/util/UUID;Lnet/minecraft/class_7555$class_7560;)Z + ARG 1 headerEntry + METHOD method_44968 (Lnet/minecraft/class_7635$class_7609;)Lcom/mojang/authlib/minecraft/report/ReportChatMessageBody$LastSeenSignature; + ARG 0 entry + METHOD method_44969 (Lnet/minecraft/class_7555$class_7560;)Lnet/minecraft/class_7555$class_7560; + ARG 0 indexedEntry CLASS class_7567 ValidationError FIELD field_39655 NO_REASON Lnet/minecraft/class_7566$class_7567; FIELD field_39656 NO_REPORTED_MESSAGES Lnet/minecraft/class_7566$class_7567; FIELD field_39657 TOO_MANY_MESSAGES Lnet/minecraft/class_7566$class_7567; FIELD field_39658 COMMENTS_TOO_LONG Lnet/minecraft/class_7566$class_7567; CLASS class_7568 ReportWithId + CLASS class_7632 IndexedMessageConsumer + METHOD accept (ILnet/minecraft/class_7557$class_7558;)Z + ARG 1 index + ARG 2 message diff --git a/mappings/net/minecraft/client/report/ChatLog.mapping b/mappings/net/minecraft/client/report/log/ChatLog.mapping similarity index 64% rename from mappings/net/minecraft/client/report/ChatLog.mapping rename to mappings/net/minecraft/client/report/log/ChatLog.mapping index d46af83728..a37bb1be5b 100644 --- a/mappings/net/minecraft/client/report/ChatLog.mapping +++ b/mappings/net/minecraft/client/report/log/ChatLog.mapping @@ -1,20 +1,24 @@ -CLASS net/minecraft/class_7555 net/minecraft/client/report/ChatLog - COMMENT A chat log holds received chat and game messages with sequential indices, where - COMMENT newer messages receive bigger indices. An implementation using fixed-size array +CLASS net/minecraft/class_7555 net/minecraft/client/report/log/ChatLog + COMMENT A chat log holds received message entries with sequential indices, where + COMMENT newer entries receive bigger indices. An implementation using fixed-size array COMMENT is available at {@link ChatLogImpl}. + COMMENT + COMMENT

There are two types of entries. {@link HeaderEntry} is an entry containing only + COMMENT the message's header, and is used for censored messages. {@link ReceivedMessage} + COMMENT is an entry for full chat or game messages. FIELD field_39629 MISSING_NEXT_INDEX I METHOD method_44531 getMaxIndex ()I COMMENT {@return the maximum index currently used within the log} COMMENT - COMMENT

This value changes every time a new message gets added. The message + COMMENT

This value changes every time a new entry gets added. The entry COMMENT associated with this index is the newest one in the log. METHOD method_44532 get (I)Lnet/minecraft/class_7629; - COMMENT {@return the message with index {@code index}, or {@code null} if there is no - COMMENT such message in the log} + COMMENT {@return the entry with index {@code index}, or {@code null} if there is no + COMMENT such entry in the log} ARG 1 index METHOD method_44533 getOffsetIndex (II)I - COMMENT {@return the index offset by {@code offset} if there is a message with that index, or - COMMENT {@value #MISSING_NEXT_INDEX} if there is no message with the offset index} + COMMENT {@return the index offset by {@code offset} if there is an entry with that index, or + COMMENT {@value #MISSING_NEXT_INDEX} if there is no entry with the offset index} ARG 1 index ARG 2 offset METHOD method_44534 stream (ILjava/util/function/IntUnaryOperator;)Lnet/minecraft/class_7555$class_7556; @@ -26,22 +30,22 @@ CLASS net/minecraft/class_7555 net/minecraft/client/report/ChatLog COMMENT a function that, when given an index, returns the next index COMMENT or {@value #MISSING_NEXT_INDEX} to indicate the end of the stream METHOD method_44535 add (Lnet/minecraft/class_7629;)V - COMMENT Adds {@code message} to the log. - ARG 1 message + COMMENT Adds {@code entry} to the log. + ARG 1 entry METHOD method_44536 getMinIndex ()I COMMENT {@return the minimum index currently used within the log} COMMENT - COMMENT

This value can change every time a new message gets added. The message + COMMENT

This value can change every time a new entry gets added. The entry COMMENT associated with this index is the oldest one in the log. METHOD method_44537 getIndexed (I)Lnet/minecraft/class_7555$class_7560; - COMMENT {@return the indexed message with index {@code index}, or {@code null} if there is no - COMMENT such message in the log} + COMMENT {@return the indexed entry with index {@code index}, or {@code null} if there is no + COMMENT such entry in the log} ARG 1 index METHOD method_44539 streamForward ()Lnet/minecraft/class_7555$class_7556; COMMENT {@return the streams starting from {@linkplain #getMinIndex the smallest index COMMENT in the log} with entires ordered chronologically (in ascending order)} METHOD method_44540 contains (I)Z - COMMENT {@return whether the log contains a message with index {@code index}} + COMMENT {@return whether the log contains an entry with index {@code index}} ARG 1 index METHOD method_44541 streamForward (II)Lnet/minecraft/class_7555$class_7556; COMMENT {@return the streams starting from {@code startIndex} with entires ordered @@ -54,16 +58,16 @@ CLASS net/minecraft/class_7555 net/minecraft/client/report/ChatLog METHOD method_44542 emptyStreams ()Lnet/minecraft/class_7555$class_7556; COMMENT {@return the empty stream} METHOD method_44543 getPreviousIndex (I)I - COMMENT {@return the index offset by {@code -1} if there is a message with that index, or - COMMENT {@value #MISSING_NEXT_INDEX} if there is no message with the offset index} + COMMENT {@return the index offset by {@code -1} if there is an entry with that index, or + COMMENT {@value #MISSING_NEXT_INDEX} if there is no entry with the offset index} COMMENT COMMENT @see #getOffsetIndex ARG 1 index METHOD method_44544 (II)I ARG 2 currentIndex METHOD method_44545 getNextIndex (I)I - COMMENT {@return the index offset by {@code 1} if there is a message with that index, or - COMMENT {@value #MISSING_NEXT_INDEX} if there is no message with the offset index} + COMMENT {@return the index offset by {@code 1} if there is an entry with that index, or + COMMENT {@value #MISSING_NEXT_INDEX} if there is no entry with the offset index} COMMENT COMMENT @see #getOffsetIndex ARG 1 index @@ -85,7 +89,7 @@ CLASS net/minecraft/class_7555 net/minecraft/client/report/ChatLog CLASS 1 FIELD field_39633 nextIndex I CLASS class_7556 Streams - COMMENT A set of streams of logged messages. + COMMENT A set of streams of log entries. FIELD field_39634 CHARACTERISTICS I FIELD field_39635 log Lnet/minecraft/class_7555; FIELD field_39636 indicesIterator Ljava/util/PrimitiveIterator$OfInt; @@ -93,16 +97,26 @@ CLASS net/minecraft/class_7555 net/minecraft/client/report/ChatLog ARG 1 log ARG 2 indicesIterator METHOD method_44548 streamIndices ()Ljava/util/stream/IntStream; - COMMENT {@return the stream of message indices} + COMMENT {@return the stream of entry indices} METHOD method_44703 (Lnet/minecraft/class_7629;)Lcom/mojang/authlib/GameProfile; ARG 0 message METHOD method_44704 collectSenderProfiles ()Ljava/util/Collection; COMMENT {@return the collection of profiles of message senders} COMMENT COMMENT

This ignores game messages, and the returned collection has no duplicates. - CLASS class_7560 IndexedMessage - COMMENT A pair of the message's index and the message itself. + METHOD method_44950 streamLogEntries ()Ljava/util/stream/Stream; + COMMENT {@return the stream of log entries} + METHOD method_44951 streamIndexedEntries ()Ljava/util/stream/Stream; + COMMENT {@return the stream of indexed log entries} + CLASS class_7560 IndexedEntry + COMMENT A pair of the entry's index and the entry itself. COMMENT COMMENT @see ChatLog FIELD comp_873 index I + FIELD comp_959 entry Lnet/minecraft/class_7629; METHOD comp_873 index ()I + METHOD comp_959 entry ()Lnet/minecraft/class_7629; + METHOD method_44949 cast (Ljava/lang/Class;)Lnet/minecraft/class_7555$class_7560; + COMMENT {@return the indexed entry with the entry instance cast to {@code clazz}, + COMMENT or {@code null} if it cannot be cast} + ARG 1 clazz diff --git a/mappings/net/minecraft/client/report/log/ChatLogEntry.mapping b/mappings/net/minecraft/client/report/log/ChatLogEntry.mapping new file mode 100644 index 0000000000..90fd34c59b --- /dev/null +++ b/mappings/net/minecraft/client/report/log/ChatLogEntry.mapping @@ -0,0 +1,2 @@ +CLASS net/minecraft/class_7629 net/minecraft/client/report/log/ChatLogEntry + COMMENT An entry logged to {@link ChatLog}. diff --git a/mappings/net/minecraft/client/report/ChatLogImpl.mapping b/mappings/net/minecraft/client/report/log/ChatLogImpl.mapping similarity index 73% rename from mappings/net/minecraft/client/report/ChatLogImpl.mapping rename to mappings/net/minecraft/client/report/log/ChatLogImpl.mapping index 85067f48c3..4e4dc0d3d7 100644 --- a/mappings/net/minecraft/client/report/ChatLogImpl.mapping +++ b/mappings/net/minecraft/client/report/log/ChatLogImpl.mapping @@ -1,22 +1,22 @@ -CLASS net/minecraft/class_7561 net/minecraft/client/report/ChatLogImpl +CLASS net/minecraft/class_7561 net/minecraft/client/report/log/ChatLogImpl COMMENT An implementation of {@link ChatLog} using a fixed-size array and {@code 0} as the - COMMENT starting index. When adding a log, the index is incremented, and the message at the + COMMENT starting index. When adding a log, the index is incremented, and the entry at the COMMENT index is overwritten. If the index goes above the array size, the array index wraps - COMMENT around but the message index is still incremented. + COMMENT around but the entry index is still incremented. COMMENT COMMENT

For example, if the size is {@code 10}, after adding the 10th item, the next index is COMMENT {@code 10} because the log is 0-indexed. However, the next message will be stored at COMMENT {@code messages[0]}. Use {@link #wrapIndex} to calculate the wrapped index. - FIELD field_39638 messages [Lnet/minecraft/class_7629; + FIELD field_39638 entries [Lnet/minecraft/class_7629; FIELD field_39639 maxIndex I FIELD field_39640 minIndex I METHOD (I)V - ARG 1 maxMessages + ARG 1 maxEntries METHOD method_44559 incrementIndex ()I COMMENT {@return the incremented index} COMMENT COMMENT @implNote This always increments {@link #maxIndex}, and increments {@link #minIndex} COMMENT only if the array is already full. METHOD method_44560 wrapIndex (I)I - COMMENT {@return the message {@code index} wrapped for accessing the backing array} + COMMENT {@return the entry {@code index} wrapped for accessing the backing array} ARG 1 index diff --git a/mappings/net/minecraft/client/report/log/HeaderEntry.mapping b/mappings/net/minecraft/client/report/log/HeaderEntry.mapping new file mode 100644 index 0000000000..3929b67356 --- /dev/null +++ b/mappings/net/minecraft/client/report/log/HeaderEntry.mapping @@ -0,0 +1,7 @@ +CLASS net/minecraft/class_7630 net/minecraft/client/report/log/HeaderEntry + COMMENT An entry of {@link ChatLog} containing only the message header. + METHOD method_44955 of (Lnet/minecraft/class_7614;Lnet/minecraft/class_7469;[B)Lnet/minecraft/class_7630$class_7631; + ARG 0 header + ARG 1 headerSignature + ARG 2 bodyDigest + CLASS class_7631 Impl diff --git a/mappings/net/minecraft/client/report/ReceivedMessage.mapping b/mappings/net/minecraft/client/report/log/ReceivedMessage.mapping similarity index 97% rename from mappings/net/minecraft/client/report/ReceivedMessage.mapping rename to mappings/net/minecraft/client/report/log/ReceivedMessage.mapping index f3b51ff2ae..4c89b50eb3 100644 --- a/mappings/net/minecraft/client/report/ReceivedMessage.mapping +++ b/mappings/net/minecraft/client/report/log/ReceivedMessage.mapping @@ -1,4 +1,4 @@ -CLASS net/minecraft/class_7557 net/minecraft/client/report/ReceivedMessage +CLASS net/minecraft/class_7557 net/minecraft/client/report/log/ReceivedMessage COMMENT A message received by the client and stored in {@link ChatLog}. COMMENT COMMENT

This includes both {@linkplain net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket