Skip to content

Commit 46a20e7

Browse files
committed
Update to 1.20.6
1 parent a41a2a5 commit 46a20e7

File tree

10 files changed

+58
-61
lines changed

10 files changed

+58
-61
lines changed

gradle.properties

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,22 @@ org.gradle.parallel=true
66
org.gradle.daemon=false
77

88
# Mod Menu
9-
modmenu_version=14.0.0-rc.2
9+
modmenu_version=15.0.0-beta.3
1010

1111
# Fabric Properties
1212
# check these on https://fabricmc.net/develop
13-
minecraft_version=1.21.5
14-
yarn_mappings=1.21.5+build.1
15-
loader_version=0.16.12
13+
minecraft_version=1.21.6
14+
yarn_mappings=1.21.6+build.1
15+
loader_version=0.16.14
16+
loom_version=1.11-SNAPSHOT
1617

1718
# Mod Properties
18-
mod_version=v1.0.0+1.21.5
19+
mod_version=v1.0.0+1.21.6
1920
maven_group=net.jasper.mod
2021
archives_base_name=playerautoma
2122

2223
# Dependencies
23-
fabric_version=0.119.9+1.21.5
24+
fabric_version=0.128.2+1.21.6
2425

2526
# Other dependencies
2627
lombok_version=1.18.38

src/main/java/net/jasper/mod/automation/MenuPrevention.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import net.jasper.mod.gui.option.PlayerautomaOptionsScreen;
66
import net.jasper.mod.util.ClientHelpers;
77
import net.minecraft.client.MinecraftClient;
8+
import net.minecraft.client.gl.RenderPipelines;
89
import net.minecraft.client.gui.DrawContext;
9-
import net.minecraft.client.render.RenderLayer;
1010
import net.minecraft.client.util.InputUtil;
1111
import net.minecraft.screen.ScreenTexts;
1212
import net.minecraft.text.Text;
@@ -31,17 +31,19 @@ public static void renderIcon(DrawContext context) {
3131
// This is always on and should never be effected by showHUDOption
3232
if (preventToBackground) {
3333
MinecraftClient client = MinecraftClient.getInstance();
34-
context.getMatrices().push();
3534
// Texture is 24x24. Scale it with guiScale
3635
int scaledSizeBlockMenu = 24 * ClientHelpers.getGuiScale();
3736
int xBlockMenu = client.getWindow().getScaledWidth() / 2 - scaledSizeBlockMenu / 2;
3837
int yBlockMenu = client.getWindow().getScaledHeight() / 2 - scaledSizeBlockMenu / 2;
39-
context.drawTexture(RenderLayer::getGuiTextured, BLOCK_MENU_ICON, xBlockMenu, yBlockMenu, 0, 0, scaledSizeBlockMenu, scaledSizeBlockMenu, scaledSizeBlockMenu, scaledSizeBlockMenu);
40-
context.getMatrices().pop();
38+
context.drawTexture(RenderPipelines.GUI_TEXTURED, BLOCK_MENU_ICON, xBlockMenu, yBlockMenu, 0, 0, scaledSizeBlockMenu, scaledSizeBlockMenu, scaledSizeBlockMenu, scaledSizeBlockMenu);
4139
}
4240
}
4341

4442
public static void toggleBackgroundPrevention() {
43+
toggleBackgroundPrevention(false);
44+
}
45+
46+
public static void toggleBackgroundPrevention(boolean displayMessage) {
4547
if (!registered) {
4648
return;
4749
}
@@ -58,7 +60,7 @@ public static void toggleBackgroundPrevention() {
5860

5961
preventToBackground = !preventToBackground;
6062

61-
if (Boolean.TRUE.equals(PlayerautomaOptionsScreen.writeStateToActionBarOption.getValue())) {
63+
if (Boolean.TRUE.equals(PlayerautomaOptionsScreen.writeStateToActionBarOption.getValue()) && displayMessage) {
6264
ClientHelpers.writeToActionBar(Text.translatable("playerautoma.messages.menuPreventionToggle").append(preventToBackground ? ScreenTexts.ON : ScreenTexts.OFF));
6365
}
6466

src/main/java/net/jasper/mod/automation/PlayerRecorder.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import net.minecraft.client.texture.NativeImageBackedTexture;
2626
import net.minecraft.sound.SoundEvents;
2727
import net.minecraft.text.Text;
28+
import net.minecraft.util.Colors;
2829
import net.minecraft.util.Hand;
2930
import net.minecraft.util.Identifier;
3031
import net.minecraft.util.hit.BlockHitResult;
@@ -80,7 +81,6 @@ public static void register() {
8081
if (client.player == null) {
8182
// Player not in-game. Therefore, reset recorder by stopping any activity
8283
stopRecord();
83-
stopReplay();
8484
}
8585

8686
// If not Recording or currently paused prevent actions from being recorded
@@ -368,11 +368,7 @@ private static void startReplay(boolean looped, int loopCount) {
368368

369369
if (!looped) {
370370
// Finish Replay if not looping
371-
tasks.add(() -> {
372-
state = IDLE;
373-
KeyBinding.unpressAll();
374-
ClientHelpers.writeToActionBar(Text.translatable("playerautoma.messages.replayDone"));
375-
});
371+
tasks.add(PlayerRecorder::stopReplay);
376372
}
377373

378374
if (looped) {
@@ -472,9 +468,9 @@ public static void stopReplay() {
472468
// Toggle of all keys to stop player from doing anything after finishing replay
473469
KeyBinding.unpressAll();
474470

475-
// If default menu prevention is enabled it needs to be disabled here if enabled
476-
if (Boolean.TRUE.equals(PlayerautomaOptionsScreen.alwaysPreventMenuOption.getValue()) && MenuPrevention.preventToBackground) {
477-
MenuPrevention.toggleBackgroundPrevention();
471+
// If menu prevention is enabled it needs to be disabled here no matter which options
472+
if (MenuPrevention.preventToBackground) {
473+
MenuPrevention.toggleBackgroundPrevention(false);
478474
}
479475

480476
}
@@ -528,9 +524,9 @@ public enum State {
528524

529525
public int getColor() {
530526
return switch (this) {
531-
case RECORDING, PAUSED_RECORDING -> 0xff0000; // Red
532-
case REPLAYING, PAUSED_REPLAY -> 0x0f7302; // Green
533-
default -> 0xFFFFFF; // White
527+
case RECORDING, PAUSED_RECORDING -> Colors.RED;
528+
case REPLAYING, PAUSED_REPLAY -> Colors.GREEN;
529+
default -> Colors.WHITE;
534530
};
535531
}
536532

src/main/java/net/jasper/mod/gui/PlayerautomaHUD.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package net.jasper.mod.gui;
22

3-
import net.fabricmc.fabric.api.client.rendering.v1.HudLayerRegistrationCallback;
4-
import net.fabricmc.fabric.api.client.rendering.v1.IdentifiedLayer;
3+
import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry;
54
import net.jasper.mod.PlayerautomaClient;
65
import net.jasper.mod.automation.MenuPrevention;
76
import net.jasper.mod.automation.PlayerRecorder;
87
import net.jasper.mod.gui.option.PlayerautomaOptionsScreen;
98
import net.jasper.mod.util.ClientHelpers;
109
import net.minecraft.client.MinecraftClient;
1110
import net.minecraft.client.font.TextRenderer;
11+
import net.minecraft.client.gl.RenderPipelines;
1212
import net.minecraft.client.gui.DrawContext;
13-
import net.minecraft.client.render.RenderLayer;
1413
import net.minecraft.client.render.RenderTickCounter;
1514
import net.minecraft.text.Text;
1615
import net.minecraft.util.Identifier;
@@ -139,34 +138,28 @@ private static void render(DrawContext context, RenderTickCounter tickCounter) {
139138
int x = pos[0];
140139
int y = pos[1];
141140

142-
143-
144141
if (showOffHud == ShowHUDOption.ICON || showOffHud == ShowHUDOption.TEXT_AND_ICON) {
145-
context.getMatrices().push();
146142
// Move x left to the text and create padding
147-
context.drawTexture(RenderLayer::getGuiTextured, PlayerRecorder.state.getIcon(), x, y, 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
148-
context.getMatrices().pop();
143+
context.drawTexture(RenderPipelines.GUI_TEXTURED, PlayerRecorder.state.getIcon(), x, y, 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
149144
}
150145

151146
if (showOffHud == ShowHUDOption.TEXT || showOffHud == ShowHUDOption.TEXT_AND_ICON) {
152-
context.getMatrices().push();
153147
// Position given in 'scaled pixels'
148+
154149
context.drawText(
155-
client.textRenderer,
150+
client.inGameHud.getTextRenderer(),
156151
PlayerRecorder.state.getText(),
157152
// Move x next to icon
158153
x + 2 + scaledSize,
159154
// Move y to align with center of icon
160-
y - 2 + scaledSize / 2,
155+
y - 2 + scaledSize / 2,
161156
PlayerRecorder.state.getColor(),
162157
true
163158
);
164-
context.getMatrices().pop();
165159
}
166160
}
167161

168162
public static void register() {
169-
HudLayerRegistrationCallback.EVENT.register(layeredDrawerWrapper ->
170-
layeredDrawerWrapper.attachLayerAfter(IdentifiedLayer.HOTBAR_AND_BARS, PLAYERAUTOMA_HUD_LAYER, PlayerautomaHUD::render));
163+
HudElementRegistry.addLast(PLAYERAUTOMA_HUD_LAYER, PlayerautomaHUD::render);
171164
}
172165
}

src/main/java/net/jasper/mod/gui/QuickMenu.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import net.jasper.mod.util.PlayerautomaExceptionHandler;
99
import net.jasper.mod.util.Textures;
1010
import net.minecraft.client.MinecraftClient;
11+
import net.minecraft.client.gl.RenderPipelines;
1112
import net.minecraft.client.gui.DrawContext;
1213
import net.minecraft.client.gui.Drawable;
1314
import net.minecraft.client.gui.screen.Screen;
1415
import net.minecraft.client.gui.widget.*;
15-
import net.minecraft.client.render.RenderLayer;
1616
import net.minecraft.client.sound.PositionedSoundInstance;
1717
import net.minecraft.sound.SoundEvents;
1818
import net.minecraft.text.Text;
@@ -421,18 +421,15 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
421421
// Use any button to get size for texture. all buttons have same size
422422
int scaledSize = buttonStartPauseRecord.getWidth();
423423

424-
context.getMatrices().push();
425424
Identifier startPauseRecordTexture = PlayerRecorder.state.isRecording() ? Textures.QuickMenu.PAUSED_RECORDING : Textures.QuickMenu.START_RECORDING;
426425
Identifier startPauseReplayTexture = PlayerRecorder.state.isReplaying() ? Textures.QuickMenu.PAUSE_REPLAY : Textures.QuickMenu.START_REPLAY;
427426

428-
context.drawTexture(RenderLayer::getGuiTextured, startPauseRecordTexture, buttonStartPauseRecord.getX(), buttonStartPauseRecord.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
429-
context.drawTexture(RenderLayer::getGuiTextured, Textures.QuickMenu.STOP_RECORDING, buttonStopRecord.getX(), buttonStopRecord.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
427+
context.drawTexture(RenderPipelines.GUI_TEXTURED, startPauseRecordTexture, buttonStartPauseRecord.getX(), buttonStartPauseRecord.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
428+
context.drawTexture(RenderPipelines.GUI_TEXTURED, Textures.QuickMenu.STOP_RECORDING, buttonStopRecord.getX(), buttonStopRecord.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
430429

431-
context.drawTexture(RenderLayer::getGuiTextured, startPauseReplayTexture, buttonStartPauseReplay.getX(), buttonStartPauseReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
432-
context.drawTexture(RenderLayer::getGuiTextured, Textures.QuickMenu.STOP_REPLAY, buttonStopReplay.getX(), buttonStopReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
433-
context.drawTexture(RenderLayer::getGuiTextured, Textures.QuickMenu.START_LOOP, buttonLoopReplay.getX(), buttonLoopReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
434-
435-
context.getMatrices().pop();
430+
context.drawTexture(RenderPipelines.GUI_TEXTURED, startPauseReplayTexture, buttonStartPauseReplay.getX(), buttonStartPauseReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
431+
context.drawTexture(RenderPipelines.GUI_TEXTURED, Textures.QuickMenu.STOP_REPLAY, buttonStopReplay.getX(), buttonStopReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
432+
context.drawTexture(RenderPipelines.GUI_TEXTURED, Textures.QuickMenu.START_LOOP, buttonLoopReplay.getX(), buttonLoopReplay.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
436433
}
437434

438435
// Draw quick slot thumbnails
@@ -445,7 +442,7 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
445442

446443
// Thumbnail only available if not empty
447444
if (!isEmpty && Boolean.TRUE.equals(PlayerautomaOptionsScreen.showQuickSlotsInQuickMenu.getValue())) {
448-
context.drawTexture(RenderLayer::getGuiTextured, QuickSlots.THUMBNAIL_IDENTIFIER[i], b.getX() + 1, b.getY() + 1, 0, 0, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2);
445+
context.drawTexture(RenderPipelines.GUI_TEXTURED, QuickSlots.THUMBNAIL_IDENTIFIER[i], b.getX() + 1, b.getY() + 1, 0, 0, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2, BUTTON_DIMENSIONS - 2);
449446
}
450447
}
451448
}

src/main/java/net/jasper/mod/gui/RecordingSelectorScreen.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,17 @@
99
import net.jasper.mod.util.data.Recording;
1010
import net.jasper.mod.util.data.RecordingThumbnail;
1111
import net.minecraft.client.MinecraftClient;
12+
import net.minecraft.client.gl.RenderPipelines;
1213
import net.minecraft.client.gui.DrawContext;
1314
import net.minecraft.client.gui.screen.Screen;
1415
import net.minecraft.client.gui.tooltip.Tooltip;
1516
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget;
1617
import net.minecraft.client.gui.widget.ButtonWidget;
1718
import net.minecraft.client.input.KeyCodes;
18-
import net.minecraft.client.render.RenderLayer;
1919
import net.minecraft.client.texture.NativeImageBackedTexture;
2020
import net.minecraft.screen.ScreenTexts;
2121
import net.minecraft.text.Text;
22+
import net.minecraft.util.Colors;
2223
import net.minecraft.util.Identifier;
2324
import net.minecraft.util.InvalidIdentifierException;
2425
import net.minecraft.util.Util;
@@ -189,10 +190,10 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
189190
super.render(context, mouseX, mouseY, delta);
190191
// Render refresh texture over refresh button
191192
int scaledSize = 20;
192-
context.drawTexture(RenderLayer::getGuiTextured, REFRESH_ICON, refreshButton.getX(), refreshButton.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
193+
context.drawTexture(RenderPipelines.GUI_TEXTURED, REFRESH_ICON, refreshButton.getX(), refreshButton.getY(), 0, 0, scaledSize, scaledSize, scaledSize, scaledSize);
193194

194195
this.recordingSelectionList.render(context, mouseX, mouseY, delta);
195-
context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 16777215);
196+
context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, Colors.WHITE);
196197
}
197198

198199
@SuppressWarnings("java:S110")
@@ -259,14 +260,14 @@ public RecordingEntry(String fileName, File file, RecordingThumbnail thumbnail)
259260
}
260261

261262
public void render(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
262-
context.drawCenteredTextWithShadow(RecordingSelectorScreen.this.textRenderer, this.fileName, RecordingSelectorScreen.RecordingSelectionListWidget.this.width / 2, y + 1, 16777215);
263+
context.drawCenteredTextWithShadow(RecordingSelectorScreen.this.textRenderer, this.fileName, RecordingSelectorScreen.RecordingSelectionListWidget.this.width / 2, y + 1, Colors.WHITE);
263264

264265
// Only render if present to prevent exception or 'unknown texture' to be rendered
265266
if (texture != null && textureIdentifier != null) {
266267
int thumbnailX = x - 25;
267268
int thumbnailSize = 20;
268-
context.drawGuiTexture(RenderLayer::getGuiTextured, DEFAULT_BUTTON_TEXTURES.get(false, false), thumbnailX, y - 2, thumbnailSize, thumbnailSize);
269-
context.drawTexture(RenderLayer::getGuiTextured, this.textureIdentifier, thumbnailX + 1 , y - 1, 0,0, thumbnailSize - 2, thumbnailSize - 2, thumbnailSize - 2, thumbnailSize - 2);
269+
context.drawGuiTexture(RenderPipelines.GUI_TEXTURED, DEFAULT_BUTTON_TEXTURES.get(false, false), thumbnailX, y - 2, thumbnailSize, thumbnailSize);
270+
context.drawTexture(RenderPipelines.GUI_TEXTURED, this.textureIdentifier, thumbnailX + 1 , y - 1, 0,0, thumbnailSize - 2, thumbnailSize - 2, thumbnailSize - 2, thumbnailSize - 2);
270271
}
271272
}
272273

src/main/java/net/jasper/mod/gui/RecordingStorerScreen.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import net.jasper.mod.util.IOHelpers;
77
import net.jasper.mod.util.PlayerautomaExceptionHandler;
88
import net.minecraft.client.MinecraftClient;
9+
import net.minecraft.client.gl.RenderPipelines;
910
import net.minecraft.client.gui.DrawContext;
1011
import net.minecraft.client.gui.screen.Screen;
1112
import net.minecraft.client.gui.tooltip.Tooltip;
1213
import net.minecraft.client.gui.widget.ButtonWidget;
1314
import net.minecraft.client.gui.widget.TextFieldWidget;
1415
import net.minecraft.client.gui.widget.TextWidget;
15-
import net.minecraft.client.render.RenderLayer;
1616
import net.minecraft.text.Text;
1717
import net.minecraft.util.Identifier;
1818

@@ -120,9 +120,9 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
120120
super.render(context, mouseX, mouseY, delta);
121121

122122
// Render border always and thumbnail if available
123-
context.drawGuiTexture(RenderLayer::getGuiTextured, DEFAULT_BUTTON_TEXTURES.get(false, false), this.width / 2 - 145, this.height / 2 - 10, 40, 40);
123+
context.drawGuiTexture(RenderPipelines.GUI_TEXTURED, DEFAULT_BUTTON_TEXTURES.get(false, false), this.width / 2 - 145, this.height / 2 - 10, 40, 40);
124124
if (PlayerRecorder.recording.thumbnail != null) {
125-
context.drawTexture(RenderLayer::getGuiTextured, PlayerRecorder.THUMBNAIL_TEXTURE_IDENTIFIER, this.width / 2 - 144, this.height / 2 - 9, 0, 0,38, 38, 38, 38);
125+
context.drawTexture(RenderPipelines.GUI_TEXTURED, PlayerRecorder.THUMBNAIL_TEXTURE_IDENTIFIER, this.width / 2 - 144, this.height / 2 - 9, 0, 0,38, 38, 38, 38);
126126
}
127127
}
128128

src/main/java/net/jasper/mod/gui/components/FilteredTextFieldWidget.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.client.render.RenderTickCounter;
99
import net.minecraft.text.Text;
1010
import net.minecraft.util.math.MathHelper;
11+
import org.joml.Matrix3x2f;
1112

1213
public class FilteredTextFieldWidget extends TextFieldWidget {
1314

@@ -46,12 +47,12 @@ private void renderErrorMessage(DrawContext context, RenderTickCounter tickCount
4647
i = 255;
4748
}
4849
if (i > 8) {
49-
context.getMatrices().push();
50-
context.getMatrices().translate(context.getScaledWindowWidth() / 2.0f, context.getScaledWindowHeight() - 68.0f, 0.0f);
50+
context.getMatrices().pushMatrix();
51+
context.getMatrices().translate(context.getScaledWindowWidth() / 2.0f, context.getScaledWindowHeight() - 68.0f, new Matrix3x2f());
5152
int j = tinted ? MathHelper.hsvToArgb(f / 50.0f, 0.7f, 0.6f, i) : ColorHelpers.getRgbWithAlpha(i, -1);
5253
int k = textRenderer.getWidth(Text.translatable(this.errorMessageTranslationKey));
5354
context.drawTextWithBackground(textRenderer, Text.translatable(this.errorMessageTranslationKey), -k / 2, -4, k, j);
54-
context.getMatrices().pop();
55+
context.getMatrices().popMatrix();
5556
}
5657
}
5758

src/main/java/net/jasper/mod/mixins/KeyboardMixin.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ private void injected(long window, int key, int scancode, int action, int modifi
2828

2929

3030
int startReplayKeyCode = ((KeyBindingAccessor) Constants.START_REPLAY).getBoundKey().getCode();
31-
if (PlayerRecorder.state.isReplaying() && key != startReplayKeyCode && Boolean.TRUE.equals(PlayerautomaOptionsScreen.stopReplayOnManualInput.getValue())) {
31+
int loopReplayKeyCode = ((KeyBindingAccessor) Constants.LOOP_REPLAY).getBoundKey().getCode();
32+
if (PlayerRecorder.state.isReplaying() &&
33+
key != startReplayKeyCode &&
34+
key != loopReplayKeyCode &&
35+
Boolean.TRUE.equals(PlayerautomaOptionsScreen.stopReplayOnManualInput.getValue())
36+
) {
3237
PlayerautomaExceptionHandler.callSafe(PlayerRecorder::stopReplay);
3338
ClientHelpers.writeToActionBar(Text.translatable("playerautoma.messages.replayStoppedOnManualInput"));
3439
}

src/main/java/net/jasper/mod/util/keybinds/Constants.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ public class Constants {
5959

6060
public static final Set<KeyBinding> PLAYERAUTOMA_KEYBINDINGS = Set.of(BINDINGS);
6161

62+
public static final KeyBinding START_REPLAY = BINDINGS[2];
6263
public static final KeyBinding STOP_REPLAY = BINDINGS[3];
64+
public static final KeyBinding LOOP_REPLAY = BINDINGS[4];
6365
public static final KeyBinding PREVENT_MENU = BINDINGS[9];
6466
public static final KeyBinding QUICK_MENU = BINDINGS[10];
65-
public static final KeyBinding START_REPLAY = BINDINGS[2];
6667

6768
private static final Runnable[] callbackMethods = {
6869
PlayerautomaExceptionHandler.produceSafeCall(PlayerRecorder::startRecord),

0 commit comments

Comments
 (0)