From 50103ce4cf411ca92efd30ee38ca9854b91f2878 Mon Sep 17 00:00:00 2001 From: cryy <19242445+cryy@users.noreply.github.com> Date: Sun, 20 Apr 2025 19:53:26 +0200 Subject: [PATCH] Move cursor to end of text in book --- .../midnightcontrols/client/mixin/BookEditScreenAccessor.java | 4 ++++ .../midnightcontrols/fabric/event/MouseClickListener.java | 1 + 2 files changed, 5 insertions(+) diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/BookEditScreenAccessor.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/BookEditScreenAccessor.java index e26f51b..e44a57c 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/BookEditScreenAccessor.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/BookEditScreenAccessor.java @@ -1,6 +1,7 @@ package eu.midnightdust.midnightcontrols.client.mixin; import net.minecraft.client.gui.screen.ingame.BookEditScreen; +import net.minecraft.client.util.SelectionManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; @@ -16,6 +17,9 @@ public interface BookEditScreenAccessor { @Accessor("title") void midnightcontrols$setTitle(String title); + @Accessor("currentPageSelectionManager") + SelectionManager midnightcontrols$getCurrentPageSelectionManager(); + @Invoker("getCurrentPageContent") String midnightcontrols$getCurrentPageContent(); diff --git a/fabric/src/main/java/eu/midnightdust/midnightcontrols/fabric/event/MouseClickListener.java b/fabric/src/main/java/eu/midnightdust/midnightcontrols/fabric/event/MouseClickListener.java index 6eefac9..d8b3610 100644 --- a/fabric/src/main/java/eu/midnightdust/midnightcontrols/fabric/event/MouseClickListener.java +++ b/fabric/src/main/java/eu/midnightdust/midnightcontrols/fabric/event/MouseClickListener.java @@ -95,6 +95,7 @@ public class MouseClickListener implements ScreenMouseEvents.AllowMouseClick { virtualKeyboardScreen = new VirtualKeyboardScreen(accessor.midnightcontrols$getCurrentPageContent(), (text) -> { client.setScreen(bookEditScreen); accessor.midnightcontrols$setPageContent(text); + accessor.midnightcontrols$getCurrentPageSelectionManager().putCursorAtEnd(); }); }