From e724b314c2781f9b83dc452fb6049740a6b36ab9 Mon Sep 17 00:00:00 2001 From: lukasabbe <67807954+lukasabbe@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:28:44 +0200 Subject: [PATCH] formating fixes --- README.md | 5 +++++ .../mixin/WritableBookMixin.java | 22 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0b8609f --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Paste book text + +With this mod you can paste larger texts in to books. + +Larger texts can take more time to load in. \ No newline at end of file diff --git a/src/main/java/me/lukasabbe/pastebooktext/mixin/WritableBookMixin.java b/src/main/java/me/lukasabbe/pastebooktext/mixin/WritableBookMixin.java index 873b7ae..7fb0ada 100644 --- a/src/main/java/me/lukasabbe/pastebooktext/mixin/WritableBookMixin.java +++ b/src/main/java/me/lukasabbe/pastebooktext/mixin/WritableBookMixin.java @@ -12,6 +12,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import java.util.Arrays; +import java.util.List; import java.util.function.Predicate; @Mixin(BookEditScreen.class) @@ -77,9 +79,23 @@ public abstract class WritableBookMixin extends Screen { @Unique String[] getSubString(String clipboard, String currentPageContent, int startInt){ for(int i = clipboard.length() - 1 ; i >=0; i--){ - final String substring = clipboard.substring(0, i); - if(textRenderer.getWrappedLinesHeight(getTotalContent(currentPageContent, startInt, substring),114) > 127) continue; - return new String[]{substring, Integer.toString(i)}; + StringBuilder substring = new StringBuilder(clipboard.substring(0, i)); + if(textRenderer.getWrappedLinesHeight(getTotalContent(currentPageContent, startInt, substring.toString()),114) > 127) continue; + List substrings = Arrays.stream(substring.toString().split(" ")).toList(); + substring = new StringBuilder(); + String popedElemnt = ""; + for(int y = 0; y y) { + substring.append(substrings.get(y)); + substring.append(" "); + }else{ + popedElemnt = substrings.get(y); + } + } + int popedSize = popedElemnt.length(); + if(popedElemnt.split(" ").length > 0) + popedSize++; + return new String[]{substring.toString(), Integer.toString(i-popedSize)}; } return new String[]{null, null}; }