diff --git a/mappings/net/minecraft/SharedConstants.mapping b/mappings/net/minecraft/SharedConstants.mapping index f10648a42d..07a222a498 100644 --- a/mappings/net/minecraft/SharedConstants.mapping +++ b/mappings/net/minecraft/SharedConstants.mapping @@ -31,6 +31,16 @@ CLASS net/minecraft/class_155 net/minecraft/SharedConstants ARG 0 gameVersion METHOD method_36208 createGameVersion ()V METHOD method_43250 enableDataFixerOptimization ()V + METHOD method_44355 stripInvalidChars (Ljava/lang/String;Z)Ljava/lang/String; + COMMENT {@return {@code s} with {@linkplain #isValidChar invalid characters} stripped} + COMMENT + COMMENT
LF (linebreak; U+000A) may or may not be stripped depending on the passed + COMMENT {@code allowLinebreaks} value. + COMMENT + COMMENT @see #isValidChar + COMMENT @see #stripInvalidChars(String) + ARG 0 s + ARG 1 allowLinebreaks METHOD method_643 isValidChar (C)Z COMMENT {@return true if the character is not {@linkplain COMMENT net.minecraft.util.Formatting#FORMATTING_CODE_PREFIX the formatting code @@ -43,4 +53,11 @@ CLASS net/minecraft/class_155 net/minecraft/SharedConstants COMMENT @see net.minecraft.server.network.ServerPlayNetworkHandler#hasIllegalCharacter ARG 0 chr METHOD method_644 stripInvalidChars (Ljava/lang/String;)Ljava/lang/String; + COMMENT {@return {@code s} with all {@linkplain #isValidChar invalid characters} stripped} + COMMENT + COMMENT
LF (linebreak; U+000A) is an invalid character and therefore stripped. Use
+ COMMENT {@link #stripInvalidChars(String, boolean)} to keep linebreaks.
+ COMMENT
+ COMMENT @see #isValidChar
+ COMMENT @see #stripInvalidChars(String, boolean)
ARG 0 s
diff --git a/mappings/net/minecraft/client/MinecraftClient.mapping b/mappings/net/minecraft/client/MinecraftClient.mapping
index 0023eff299..91540b2de1 100644
--- a/mappings/net/minecraft/client/MinecraftClient.mapping
+++ b/mappings/net/minecraft/client/MinecraftClient.mapping
@@ -175,6 +175,7 @@ CLASS net/minecraft/class_310 net/minecraft/client/MinecraftClient
FIELD field_39317 realms32BitWarningChecker Lnet/minecraft/class_7478;
FIELD field_39420 authenticationService Lcom/mojang/authlib/yggdrasil/YggdrasilAuthenticationService;
FIELD field_39421 servicesSignatureVerifier Lnet/minecraft/class_7500;
+ FIELD field_39492 abuseReporter Lnet/minecraft/class_7574;
METHOD If this equals {@link #UNLIMITED_LENGTH}, the edit box does not have a
+ COMMENT length limit. Edit box widgets with such edit boxes do not show the current
+ COMMENT text length indicator.
+ COMMENT
+ COMMENT @see #setMaxLength
+ COMMENT @see #hasMaxLength
+ METHOD method_44410 moveCursor (DD)V
+ COMMENT Moves the cursor to the specified position relative to the edit box.
+ ARG 1 x
+ ARG 3 y
+ METHOD method_44411 setMaxLength (I)V
+ COMMENT Sets the maximum length of the edit box text in characters.
+ COMMENT
+ COMMENT If {@code maxLength} equals {@link #UNLIMITED_LENGTH}, the edit box does not
+ COMMENT have a length limit. Edit box widgets with such edit boxes do not show the current
+ COMMENT text length indicator.
+ COMMENT
+ COMMENT @throws IllegalArgumentException if {@code maxLength} is negative
+ COMMENT @see #getMaxLength
+ COMMENT @see #hasMaxLength
+ ARG 1 maxLength
+ METHOD method_44412 moveCursor (Lnet/minecraft/class_7533;I)V
+ COMMENT Moves the cursor by {@code amount} characters.
+ COMMENT
+ COMMENT @apiNote See {@link CursorMovement} for the types of the movement.
+ ARG 1 movement
+ ARG 2 amount
+ METHOD method_44413 setCursorChangeListener (Ljava/lang/Runnable;)V
+ COMMENT Sets the cursor change listener that is called every time the cursor position changes.
+ ARG 1 cursorChangeListener
+ METHOD method_44414 setText (Ljava/lang/String;)V
+ COMMENT Sets the text of the edit box and moves the cursor to the end of the edit box.
+ ARG 1 text
+ METHOD method_44415 setChangeListener (Ljava/util/function/Consumer;)V
+ COMMENT Sets the change listener that is called every time the text changes.
+ ARG 1 changeListener
+ COMMENT the listener that takes the new text of the edit box
+ METHOD method_44416 (Lnet/minecraft/class_2583;II)V
+ ARG 1 style
+ ARG 2 start
+ ARG 3 end
+ METHOD method_44417 setSelecting (Z)V
+ COMMENT Sets whether the edit box is currently selecting.
+ COMMENT
+ COMMENT If using the widget, this is done by dragging or holding down Shift and clicking.
+ ARG 1 selecting
+ METHOD method_44418 hasMaxLength ()Z
+ COMMENT {@return whether the edit box has a maximum length limit}
+ COMMENT
+ COMMENT Edit box widgets with edit boxes without a length limit do not
+ COMMENT show the current text length indicator.
+ COMMENT
+ COMMENT @see #getMaxLength
+ COMMENT @see #setMaxLength
+ METHOD method_44419 delete (I)V
+ COMMENT Deletes the selected text, or {@code offset} characters of text from the cursor position
+ COMMENT if there is no selection. If the offset is negative, the characters before the cursor
+ COMMENT will be removed, and vice versa.
+ ARG 1 offset
+ METHOD method_44420 replaceSelection (Ljava/lang/String;)V
+ COMMENT Replaces the current selection with {@code string}. If there is no
+ COMMENT selection, this inserts the string at the cursor position. This removes
+ COMMENT {@linkplain SharedConstants#isValidChar invalid characters} and truncates
+ COMMENT the passed string if necessary.
+ ARG 1 string
+ METHOD method_44421 getText ()Ljava/lang/String;
+ COMMENT {@return the text of the edit box}
+ METHOD method_44422 getLine (I)Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the line with index {@code index}}
+ ARG 1 index
+ METHOD method_44423 truncateForReplacement (Ljava/lang/String;)Ljava/lang/String;
+ COMMENT {@return {@code value} truncated to at most {@link #maxLength} characters}
+ COMMENT
+ COMMENT @see #truncate
+ ARG 1 value
+ METHOD method_44424 getCursor ()I
+ COMMENT {@return the cursor position}
+ METHOD method_44425 moveCursorLine (I)V
+ COMMENT Moves the cursor by {@code offset} lines. This method attempts to keep the
+ COMMENT relative position within the line the same. Does nothing if {@code offset} is zero.
+ ARG 1 offset
+ METHOD method_44426 truncate (Ljava/lang/String;)Ljava/lang/String;
+ COMMENT {@return {@code value} truncated to fit in the current text}
+ COMMENT For example, if the edit box with 100 characters limit currently
+ COMMENT has 90 characters, this method will return at most 10 characters.
+ COMMENT
+ COMMENT @see #truncateForReplacement
+ ARG 1 value
+ METHOD method_44427 getSelection ()Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the current selection}
+ METHOD method_44428 handleSpecialKey (I)Z
+ COMMENT Handles the special keys, such as copy, cut, linebreak, and cursor movements.
+ ARG 1 keyCode
+ METHOD method_44429 (Ljava/lang/String;)V
+ ARG 0 text
+ METHOD method_44430 getLineCount ()I
+ COMMENT {@return the number of total lines in the edit box}
+ METHOD method_44431 getOffsetLine (I)Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the line offset by {@code offsetFromCurrent} from the cursor's line}
+ ARG 1 offsetFromCurrent
+ METHOD method_44432 getCurrentLineIndex ()I
+ COMMENT {@return the line index that the cursor is located at}
+ METHOD method_44433 getWordEndIndex (I)I
+ COMMENT {@return the end index of the word starting at {@code startIndex}}
+ COMMENT
+ COMMENT A word is a string consisting entirely of non-whitespace characters. Therefore,
+ COMMENT the end index is the index of the character whose succeeding character is the first
+ COMMENT whitespace since {@code startIndex}.
+ ARG 1 startIndex
+ METHOD method_44434 getLines ()Ljava/lang/Iterable;
+ COMMENT {@return the lines of the edit box's text}
+ METHOD method_44435 hasSelection ()Z
+ COMMENT {@return whether the edit box has a selected text}
+ METHOD method_44436 getSelectedText ()Ljava/lang/String;
+ COMMENT {@return the text that is currently selected, or an empty string if there is no selection}
+ METHOD method_44437 getPreviousWordAtCursor ()Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the substring of a word whose start position is before the cursor}
+ COMMENT
+ COMMENT A word is a string consisting entirely of non-whitespace characters. If the
+ COMMENT cursor is in the middle of a word, the start position is that of the word; if not,
+ COMMENT the start position is that of the first word before the cursor.
+ COMMENT
+ COMMENT @see #getNextWordAtCursor
+ METHOD method_44438 getNextWordAtCursor ()Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the substring of a word whose start position is after the cursor}
+ COMMENT
+ COMMENT A word is a string consisting entirely of non-whitespace characters. If the
+ COMMENT cursor is in the middle of a word, the start position is that of the first word
+ COMMENT after the cursor; if not, the start position is that of the next word.
+ COMMENT
+ COMMENT @see #getPreviousWordAtCursor
+ METHOD method_44439 getCurrentLine ()Lnet/minecraft/class_7530$class_7531;
+ COMMENT {@return the line that the cursor is located at}
+ METHOD method_44440 onChange ()V
+ COMMENT Called when the text changes. This rewraps the text, calls
+ COMMENT {@link #changeListener}, then calls {@link #cursorChangeListener}.
+ METHOD method_44441 rewrap ()V
+ COMMENT Rewraps the text. This is called whenever the text changes.
+ CLASS class_7531 Substring
+ COMMENT A substring of an edit box's text, specified using the indices of the
+ COMMENT start and the end. This can indicate selections, lines, words, etc. This
+ COMMENT does not contain the string itself; to obtain the string, get the text
+ COMMENT first, then call {@link String#substring}.
+ FIELD field_39524 EMPTY Lnet/minecraft/class_7530$class_7531;
+ COMMENT An empty substring.
diff --git a/mappings/net/minecraft/client/gui/PlayerSkinDrawer.mapping b/mappings/net/minecraft/client/gui/PlayerSkinDrawer.mapping
new file mode 100644
index 0000000000..8c5e444b33
--- /dev/null
+++ b/mappings/net/minecraft/client/gui/PlayerSkinDrawer.mapping
@@ -0,0 +1,28 @@
+CLASS net/minecraft/class_7532 net/minecraft/client/gui/PlayerSkinDrawer
+ COMMENT Helper class for drawing a player's head on GUI.
+ METHOD method_44443 draw (Lnet/minecraft/class_4587;III)V
+ COMMENT Draws the player's head (including the hat) on GUI. The skin texture must be
+ COMMENT specified prior to calling by using {@link
+ COMMENT com.mojang.blaze3d.systems.RenderSystem#setShaderTexture(int, net.minecraft.util.Identifier)}.
+ ARG 0 matrices
+ ARG 1 x
+ ARG 2 y
+ ARG 3 size
+ METHOD method_44444 drawHat (Lnet/minecraft/class_4587;IIIZ)V
+ ARG 0 matrices
+ ARG 1 x
+ ARG 2 y
+ ARG 3 size
+ ARG 4 upsideDown
+ METHOD method_44445 draw (Lnet/minecraft/class_4587;IIIZZ)V
+ COMMENT Draws the player's head on GUI. The skin texture must be specified prior to
+ COMMENT calling by using {@link
+ COMMENT com.mojang.blaze3d.systems.RenderSystem#setShaderTexture(int, net.minecraft.util.Identifier)}.
+ ARG 0 matrices
+ ARG 1 x
+ ARG 2 y
+ ARG 3 size
+ ARG 4 hatVisible
+ COMMENT whether the hat should be drawn
+ ARG 5 upsideDown
+ COMMENT whether the head should be upside down, also known as "Dinnerbone"
diff --git a/mappings/net/minecraft/client/gui/hud/InGameHud.mapping b/mappings/net/minecraft/client/gui/hud/InGameHud.mapping
index 83079dcf2f..a39cd153d9 100644
--- a/mappings/net/minecraft/client/gui/hud/InGameHud.mapping
+++ b/mappings/net/minecraft/client/gui/hud/InGameHud.mapping
@@ -160,18 +160,12 @@ CLASS net/minecraft/class_329 net/minecraft/client/gui/hud/InGameHud
METHOD method_43591 onGameMessage (Lnet/minecraft/class_2556;Lnet/minecraft/class_2561;)V
COMMENT Handles a game message.
COMMENT
- COMMENT @implNote This method discards the message if {@linkplain #extractSender the extracted
- COMMENT sender} is blocked. Otherwise, it calls {@link ClientChatListener#onChatMessage}.
- COMMENT
COMMENT @see net.minecraft.client.network.ClientPlayNetworkHandler#onGameMessage
ARG 1 type
ARG 2 message
METHOD method_43592 onChatMessage (Lnet/minecraft/class_2556;Lnet/minecraft/class_2561;Lnet/minecraft/class_7436;)V
COMMENT Handles a chat message.
COMMENT
- COMMENT @implNote This method discards the message if the sender is blocked.
- COMMENT Otherwise, it calls {@link ClientChatListener#onChatMessage}.
- COMMENT
COMMENT @see net.minecraft.client.network.ClientPlayNetworkHandler#onChatMessage
ARG 1 type
ARG 2 message
diff --git a/mappings/net/minecraft/client/gui/screen/NoticeScreen.mapping b/mappings/net/minecraft/client/gui/screen/NoticeScreen.mapping
index 98bc8c89df..813961eba9 100644
--- a/mappings/net/minecraft/client/gui/screen/NoticeScreen.mapping
+++ b/mappings/net/minecraft/client/gui/screen/NoticeScreen.mapping
@@ -3,6 +3,8 @@ CLASS net/minecraft/class_403 net/minecraft/client/gui/screen/NoticeScreen
FIELD field_2346 notice Lnet/minecraft/class_2561;
FIELD field_2348 noticeLines Lnet/minecraft/class_5489;
FIELD field_2349 buttonText Lnet/minecraft/class_2561;
+ FIELD field_39539 NOTICE_TEXT_Y I
+ FIELD field_39540 shouldCloseOnEsc Z
METHOD If {@code maxLength} equals {@link EditBox#UNLIMITED_LENGTH}, the edit box does not
+ COMMENT have a length limit, and the widget does not show the current text length indicator.
+ COMMENT
+ COMMENT @throws IllegalArgumentException if {@code maxLength} is negative
+ COMMENT @see EditBox#setMaxLength
+ ARG 1 maxLength
+ METHOD method_44403 drawSelection (Lnet/minecraft/class_4587;IIII)V
+ ARG 1 matrices
+ ARG 2 left
+ ARG 3 top
+ ARG 4 right
+ ARG 5 bottom
+ METHOD method_44404 moveCursor (DD)V
+ ARG 1 mouseX
+ ARG 3 mouseY
+ METHOD method_44405 getText ()Ljava/lang/String;
+ COMMENT {@return the current text of the edit box}
+ METHOD method_44406 tick ()V
+ METHOD method_44407 onCursorChange ()V
+ METHOD method_44408 getMaxLinesWithoutOverflow ()D
+ COMMENT {@return the maximum amount of lines the widget can hold without overflowing}
diff --git a/mappings/net/minecraft/client/gui/widget/EntryListWidget.mapping b/mappings/net/minecraft/client/gui/widget/EntryListWidget.mapping
index d28dd6ebbc..1e761c624e 100644
--- a/mappings/net/minecraft/client/gui/widget/EntryListWidget.mapping
+++ b/mappings/net/minecraft/client/gui/widget/EntryListWidget.mapping
@@ -37,8 +37,9 @@ CLASS net/minecraft/class_350 net/minecraft/client/gui/widget/EntryListWidget
ARG 2 y
METHOD method_25311 renderList (Lnet/minecraft/class_4587;IIF)V
ARG 1 matrices
- ARG 2 x
- ARG 3 y
+ ARG 2 mouseX
+ ARG 3 mouseY
+ ARG 4 delta
METHOD method_25312 renderHeader (Lnet/minecraft/class_4587;IILnet/minecraft/class_289;)V
ARG 1 matrices
ARG 2 x
@@ -105,6 +106,8 @@ CLASS net/minecraft/class_350 net/minecraft/client/gui/widget/EntryListWidget
ARG 1 entry
METHOD method_30013 moveSelectionIf (Lnet/minecraft/class_350$class_5403;Ljava/util/function/Predicate;)Z
COMMENT Moves the selection in the specified direction until the predicate returns true.
+ COMMENT
+ COMMENT @return whether the selection matching the predicate was found
ARG 1 direction
COMMENT the direction to move the selection
ARG 2 predicate
@@ -120,6 +123,25 @@ CLASS net/minecraft/class_350 net/minecraft/client/gui/widget/EntryListWidget
ARG 1 builder
ARG 2 entry
METHOD method_37019 getHoveredEntry ()Lnet/minecraft/class_350$class_351;
+ METHOD method_44397 renderEntry (Lnet/minecraft/class_4587;IIFIIIII)V
+ ARG 1 matrices
+ ARG 2 mouseX
+ ARG 3 mouseY
+ ARG 4 delta
+ ARG 5 index
+ ARG 6 x
+ ARG 7 y
+ ARG 8 entryWidth
+ ARG 9 entryHeight
+ METHOD method_44398 drawSelectionHighlight (Lnet/minecraft/class_4587;IIIII)V
+ ARG 1 matrices
+ ARG 2 y
+ ARG 3 entryWidth
+ ARG 4 entryHeight
+ ARG 5 borderColor
+ ARG 6 fillColor
+ METHOD method_44399 addEntryToTop (Lnet/minecraft/class_350$class_351;)V
+ ARG 1 entry
CLASS class_351 Entry
FIELD field_22752 parentList Lnet/minecraft/class_350;
METHOD method_25343 render (Lnet/minecraft/class_4587;IIIIIIIZF)V
diff --git a/mappings/net/minecraft/client/gui/widget/ScrollableWidget.mapping b/mappings/net/minecraft/client/gui/widget/ScrollableWidget.mapping
new file mode 100644
index 0000000000..39a3256daa
--- /dev/null
+++ b/mappings/net/minecraft/client/gui/widget/ScrollableWidget.mapping
@@ -0,0 +1,46 @@
+CLASS net/minecraft/class_7528 net/minecraft/client/gui/widget/ScrollableWidget
+ COMMENT A widget that can be focused and vertically scrolled.
+ FIELD field_39493 FOCUSED_BORDER_COLOR I
+ FIELD field_39494 UNFOCUSED_BORDER_COLOR I
+ FIELD field_39495 BOX_COLOR I
+ FIELD field_39496 PADDING I
+ FIELD field_39497 scrollY D
+ FIELD field_39498 scrollbarDragged Z
+ METHOD method_44381 getPadding ()I
+ METHOD method_44382 setScrollY (D)V
+ ARG 1 scrollY
+ METHOD method_44383 isVisible (II)Z
+ ARG 1 top
+ ARG 2 bottom
+ METHOD method_44384 renderOverlay (Lnet/minecraft/class_4587;)V
+ COMMENT Renders overlays that are not scrolled but part of the widget.
+ COMMENT
+ COMMENT This renders the scrollbar by default. Subclasses can override this to
+ COMMENT render other overlays, but {@code super} call is necessary to make sure the scrollbar
+ COMMENT renders when it should.
+ ARG 1 matrices
+ METHOD method_44385 getPaddingDoubled ()I
+ METHOD method_44386 drawBox (Lnet/minecraft/class_4587;)V
+ COMMENT Draws the box that the contents are rendered over, including its borders.
+ ARG 1 matrices
+ METHOD method_44387 getScrollY ()D
+ METHOD method_44388 isWithinBounds (DD)Z
+ ARG 1 mouseX
+ ARG 3 mouseY
+ METHOD method_44389 renderContents (Lnet/minecraft/class_4587;IIF)V
+ COMMENT Renders the scrolled contents. Subclasses must override this. The rendered contents
+ COMMENT may overflow; the caller should trim those using {@link
+ COMMENT net.minecraft.client.gui.DrawableHelper#enableScissor}.
+ ARG 1 matrices
+ ARG 2 mouseX
+ ARG 3 mouseY
+ ARG 4 delta
+ METHOD method_44390 getMaxScrollY ()I
+ METHOD method_44391 getContentsHeight ()I
+ COMMENT {@return the total height of the contents}
+ METHOD method_44392 overflows ()Z
+ COMMENT {@return whether the contents overflow and needs a scrollbar}
+ METHOD method_44393 getDeltaYPerScroll ()D
+ METHOD method_44394 getScrollbarThumbHeight ()I
+ METHOD method_44395 getContentsHeightWithPadding ()I
+ METHOD method_44396 drawScrollbar ()V
diff --git a/mappings/net/minecraft/client/input/CursorMovement.mapping b/mappings/net/minecraft/client/input/CursorMovement.mapping
new file mode 100644
index 0000000000..5ac6f69314
--- /dev/null
+++ b/mappings/net/minecraft/client/input/CursorMovement.mapping
@@ -0,0 +1,8 @@
+CLASS net/minecraft/class_7533 net/minecraft/client/input/CursorMovement
+ COMMENT The types of cursor movement.
+ FIELD field_39535 Lnet/minecraft/class_7533;
+ COMMENT Cursor is moved using an absolute position.
+ FIELD field_39536 Lnet/minecraft/class_7533;
+ COMMENT Cursor is moved using a relative position.
+ FIELD field_39537 Lnet/minecraft/class_7533;
+ COMMENT Cursor is moved to the end of the text.
diff --git a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
index 58ee9225ea..a19da64be1 100644
--- a/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
+++ b/mappings/net/minecraft/client/network/ClientPlayNetworkHandler.mapping
@@ -126,3 +126,13 @@ CLASS net/minecraft/class_634 net/minecraft/client/network/ClientPlayNetworkHand
ARG 1 type
ARG 2 message
ARG 3 sender
+ METHOD method_44529 getProfile (Lnet/minecraft/class_7436;)Lcom/mojang/authlib/GameProfile;
+ COMMENT {@return the game profile of {@code sender}}
+ COMMENT
+ COMMENT If {@code sender} points to a non-player (such as entities sending
+ COMMENT chat messages through {@code /say} command) or a player not in the game,
+ COMMENT this will create a new game profile based on the UUID and the display
+ COMMENT name.
+ ARG 1 sender
+ METHOD method_44530 extractSender (Lnet/minecraft/class_2561;)Ljava/util/UUID;
+ ARG 1 content
diff --git a/mappings/net/minecraft/client/network/abusereport/AbuseReportReason.mapping b/mappings/net/minecraft/client/network/abusereport/AbuseReportReason.mapping
new file mode 100644
index 0000000000..baabcc88b1
--- /dev/null
+++ b/mappings/net/minecraft/client/network/abusereport/AbuseReportReason.mapping
@@ -0,0 +1,9 @@
+CLASS net/minecraft/class_7573 net/minecraft/client/network/abusereport/AbuseReportReason
+ FIELD field_39671 id Ljava/lang/String;
+ FIELD field_39672 text Lnet/minecraft/class_2561;
+ FIELD field_39673 description Lnet/minecraft/class_2561;
+ METHOD This value changes every time a new message gets added. The message
+ COMMENT associated with this index is the newest one in the log.
+ METHOD method_44532 get (I)Lnet/minecraft/class_7557;
+ COMMENT {@return the message with index {@code index}, or {@code null} if there is no
+ COMMENT such message 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}
+ ARG 1 index
+ ARG 2 offset
+ METHOD method_44534 stream (ILjava/util/function/IntUnaryOperator;)Lnet/minecraft/class_7555$class_7556;
+ COMMENT {@return the streams starting from {@code startIndex}}
+ COMMENT
+ COMMENT @implNote If {@code startIndex} is not in the log, this returns {@link #emptyStreams}.
+ ARG 1 startIndex
+ ARG 2 nextIndexGetter
+ 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_7557;)V
+ COMMENT Adds {@code message} to the log.
+ ARG 1 message
+ 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 associated with this index is the oldest one in the log.
+ METHOD method_44537 getIndexed (I)Lnet/minecraft/class_7557$class_7560;
+ COMMENT {@return the indexed message with index {@code index}, or {@code null} if there is no
+ COMMENT such message in the log}
+ ARG 1 index
+ METHOD method_44538 clampWithOffset (II)I
+ COMMENT {@return the index offset by {@code offset} and clamped between the minimum
+ COMMENT and the maximum indices}
+ COMMENT
+ COMMENT @see #getMaxIndex
+ COMMENT @see #getMinIndex
+ ARG 1 index
+ ARG 2 offset
+ 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}}
+ 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
+ COMMENT chronologically (in ascending order) up to and including {@code endIndex}}
+ COMMENT
+ COMMENT @implNote If either {@code startIndex} or {@code endIndex} is not in the log,
+ COMMENT this returns {@link #emptyStreams}.
+ ARG 1 startIndex
+ ARG 2 endIndex
+ 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
+ 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
+ COMMENT @see #getOffsetIndex
+ ARG 1 index
+ METHOD method_44546 streamForward (I)Lnet/minecraft/class_7555$class_7556;
+ COMMENT {@return the streams starting from {@code startIndex} with entires ordered
+ COMMENT chronologically (in ascending order)}
+ COMMENT
+ COMMENT @implNote If {@code startIndex} is not in the log, this returns {@link #emptyStreams}.
+ ARG 1 startIndex
+ METHOD method_44547 streamBackward (I)Lnet/minecraft/class_7555$class_7556;
+ COMMENT {@return the streams starting from {@code startIndex} with entires ordered
+ COMMENT antichronologically (in descending order)}
+ COMMENT
+ COMMENT @implNote If {@code startIndex} is not in the log, this returns {@link #emptyStreams}.
+ ARG 1 startIndex
+ CLASS 1
+ FIELD field_39633 nextIndex I
+ CLASS class_7556 Streams
+ COMMENT A set of streams of logged messages.
+ FIELD field_39634 CHARACTERISTICS I
+ FIELD field_39635 log Lnet/minecraft/class_7555;
+ FIELD field_39636 indicesIterator Ljava/util/PrimitiveIterator$OfInt;
+ METHOD If for some reason the index is no longer present in the log, such messages are
+ COMMENT ignored.
+ METHOD method_44550 streamIndexedMessages ()Ljava/util/stream/Stream;
+ COMMENT {@return the stream of indexed messages}
+ COMMENT
+ COMMENT If for some reason the index is no longer present in the log, such messages are
+ COMMENT ignored.
diff --git a/mappings/net/minecraft/client/network/chat/ChatLogImpl.mapping b/mappings/net/minecraft/client/network/chat/ChatLogImpl.mapping
new file mode 100644
index 0000000000..6ac9328434
--- /dev/null
+++ b/mappings/net/minecraft/client/network/chat/ChatLogImpl.mapping
@@ -0,0 +1,22 @@
+CLASS net/minecraft/class_7561 net/minecraft/client/network/chat/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 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
+ 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_7557;
+ FIELD field_39639 maxIndex I
+ FIELD field_39640 minIndex I
+ METHOD This includes both {@linkplain net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket
+ COMMENT chat messages} and {@linkplain net.minecraft.network.packet.s2c.play.GameMessageS2CPacket
+ COMMENT game messages}.
+ METHOD method_44551 getContent ()Lnet/minecraft/class_2561;
+ COMMENT {@return the content of the message}
+ COMMENT
+ COMMENT @implNote If the message is a chat message and it contains an unsigned part, the unsigned
+ COMMENT part will be returned. Note that in vanilla, unsigned part is stripped prior to
+ COMMENT construction of the received message instance if the client requires secure chat.
+ METHOD method_44552 of (Lcom/mojang/authlib/GameProfile;Lnet/minecraft/class_2561;Lnet/minecraft/class_7471;)Lnet/minecraft/class_7557;
+ COMMENT {@return the received message constructed from a chat message's elements}
+ ARG 0 gameProfile
+ COMMENT the game profile of the message's sender
+ ARG 1 displayName
+ COMMENT the displayed name of the sender
+ ARG 2 message
+ COMMENT the message content
+ METHOD method_44553 isSentFrom (Ljava/util/UUID;)Z
+ COMMENT {@return whether the sender's UUID equals {@code uuid}}
+ ARG 1 uuid
+ METHOD method_44554 of (Lnet/minecraft/class_2561;Ljava/time/Instant;)Lnet/minecraft/class_7557;
+ COMMENT {@return the received message constructed from a game message's elements}
+ ARG 0 message
+ COMMENT the message content
+ ARG 1 timestamp
+ COMMENT the timestamp of the message
+ METHOD method_44555 getNarration ()Lnet/minecraft/class_2561;
+ COMMENT {@return the narration of the message (by default, the content)}
+ CLASS class_7558 ChatMessage
+ COMMENT A chat message received by the client.
+ FIELD field_39637 DATE_TIME_FORMATTER Ljava/time/format/DateTimeFormatter;
+ METHOD method_44556 getHeadingText ()Lnet/minecraft/class_2561;
+ COMMENT {@return the heading text used by Chat Selection screen}
+ COMMENT
+ COMMENT The text contains the sender's display name and the formatted timestamp.
+ METHOD method_44557 getSenderUuid ()Ljava/util/UUID;
+ COMMENT {@return the UUID of the sender}
+ METHOD method_44558 getFormattedTimestamp ()Lnet/minecraft/class_2561;
+ COMMENT {@return the formatted timestamp text of this message}
+ CLASS class_7559 GameMessage
+ COMMENT A game message received by the client.
+ FIELD comp_872 timestamp Ljava/time/Instant;
+ METHOD comp_872 timestamp ()Ljava/time/Instant;
+ CLASS class_7560 IndexedMessage
+ COMMENT A pair of the message's index and the message itself.
+ COMMENT
+ COMMENT @see ChatLog
+ FIELD comp_873 index I
+ METHOD comp_873 index ()I
diff --git a/mappings/net/minecraft/network/message/SignedMessage.mapping b/mappings/net/minecraft/network/message/SignedMessage.mapping
index b5ce4d0c12..839237689f 100644
--- a/mappings/net/minecraft/network/message/SignedMessage.mapping
+++ b/mappings/net/minecraft/network/message/SignedMessage.mapping
@@ -53,3 +53,7 @@ CLASS net/minecraft/class_7471 net/minecraft/network/message/SignedMessage
ARG 1 decoratedContent
ARG 2 signature
ARG 3 previewed
+ METHOD method_44607 withoutUnsigned ()Lnet/minecraft/class_7471;
+ COMMENT {@return the signed chat message with {@link #unsignedContent} removed if it exists}
+ COMMENT
+ COMMENT @implNote This returns itself if the message does not have an unsigned content.
diff --git a/mappings/net/minecraft/screen/ScreenTexts.mapping b/mappings/net/minecraft/screen/ScreenTexts.mapping
index dfaabf8a29..bd3c6f5479 100644
--- a/mappings/net/minecraft/screen/ScreenTexts.mapping
+++ b/mappings/net/minecraft/screen/ScreenTexts.mapping
@@ -11,6 +11,7 @@ CLASS net/minecraft/class_5244 net/minecraft/screen/ScreenTexts
FIELD field_33849 LINE_BREAK Lnet/minecraft/class_2561;
FIELD field_33850 SENTENCE_SEPARATOR Lnet/minecraft/class_2561;
FIELD field_39003 EMPTY Lnet/minecraft/class_2561;
+ FIELD field_39678 ELLIPSIS Lnet/minecraft/class_2561;
METHOD method_30619 composeToggleText (Lnet/minecraft/class_2561;Z)Lnet/minecraft/class_5250;
ARG 0 text
ARG 1 value