diff --git a/Xplat/src/main/java/vazkii/patchouli/api/PatchouliAPI.java b/Xplat/src/main/java/vazkii/patchouli/api/PatchouliAPI.java index a20dc6bc9..4b35a136f 100644 --- a/Xplat/src/main/java/vazkii/patchouli/api/PatchouliAPI.java +++ b/Xplat/src/main/java/vazkii/patchouli/api/PatchouliAPI.java @@ -86,6 +86,8 @@ public interface IPatchouliAPI { /** * Sends a network message to the given player * to open the book to the given entry + * + * @param page Zero-indexed page number */ void openBookEntry(ServerPlayer player, ResourceLocation book, ResourceLocation entry, int page); diff --git a/Xplat/src/main/java/vazkii/patchouli/client/base/PersistentData.java b/Xplat/src/main/java/vazkii/patchouli/client/base/PersistentData.java index 7aab65403..8a625af9d 100644 --- a/Xplat/src/main/java/vazkii/patchouli/client/base/PersistentData.java +++ b/Xplat/src/main/java/vazkii/patchouli/client/base/PersistentData.java @@ -1,5 +1,7 @@ package vazkii.patchouli.client.base; +import com.google.gson.annotations.SerializedName; + import net.minecraft.resources.ResourceLocation; import vazkii.patchouli.client.book.BookEntry; @@ -57,11 +59,12 @@ public static final class BookData { public static final class Bookmark { public String entry; - public int page; + // Serialized as page for legacy reasons + @SerializedName("page") public int spread; - public Bookmark(String entry, int page) { + public Bookmark(String entry, int spread) { this.entry = entry; - this.page = page; + this.spread = spread; } public BookEntry getEntry(Book book) { diff --git a/Xplat/src/main/java/vazkii/patchouli/client/book/ClientBookRegistry.java b/Xplat/src/main/java/vazkii/patchouli/client/book/ClientBookRegistry.java index 9351ffe34..0249f72e3 100644 --- a/Xplat/src/main/java/vazkii/patchouli/client/book/ClientBookRegistry.java +++ b/Xplat/src/main/java/vazkii/patchouli/client/book/ClientBookRegistry.java @@ -69,7 +69,7 @@ public void reloadLocks(boolean suppressToasts) { /** * @param entryId Entry to force to the top of the stack - * @param page Page in the entry to force. Ignored if {@code entryId} is null. + * @param page Zero-indexed page in the entry to force. Ignored if {@code entryId} is null. */ public void displayBookGui(ResourceLocation bookStr, @Nullable ResourceLocation entryId, int page) { Minecraft mc = Minecraft.getInstance(); diff --git a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBook.java b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBook.java index 2fd271f05..f32010f04 100644 --- a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBook.java +++ b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBook.java @@ -283,7 +283,7 @@ public void handleButtonBookmark(Button button) { PersistentData.save(); needsBookmarkUpdate = true; } else { - displayLexiconGui(new GuiBookEntry(book, bookmark.getEntry(book), bookmark.page), true); + displayLexiconGui(new GuiBookEntry(book, bookmark.getEntry(book), bookmark.spread), true); } } } diff --git a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBookEntry.java b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBookEntry.java index ab17142b3..710b53108 100644 --- a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBookEntry.java +++ b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/GuiBookEntry.java @@ -183,7 +183,7 @@ boolean isBookmarkedAlready() { BookData data = PersistentData.data.getBookData(book); for (Bookmark bookmark : data.bookmarks) { - if (bookmark.entry.equals(entryKey) && bookmark.page == spread) { + if (bookmark.entry.equals(entryKey) && bookmark.spread == spread) { return true; } } @@ -209,7 +209,7 @@ public static void displayOrBookmark(GuiBook currGui, BookEntry entry) { if (gui.isBookmarkedAlready()) { String key = entry.getId().toString(); - data.bookmarks.removeIf((bm) -> bm.entry.equals(key) && bm.page == 0); + data.bookmarks.removeIf((bm) -> bm.entry.equals(key) && bm.spread == 0); PersistentData.save(); currGui.needsBookmarkUpdate = true; return; diff --git a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/button/GuiButtonBookBookmark.java b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/button/GuiButtonBookBookmark.java index 850b2696e..3f5436d36 100644 --- a/Xplat/src/main/java/vazkii/patchouli/client/book/gui/button/GuiButtonBookBookmark.java +++ b/Xplat/src/main/java/vazkii/patchouli/client/book/gui/button/GuiButtonBookBookmark.java @@ -44,7 +44,7 @@ public void renderButton(PoseStack ms, int mouseX, int mouseY, float partialTick entry.getIcon().render(ms, px, py); RenderSystem.disableDepthTest(); - String s = Integer.toString(bookmark.page + 1); + String s = Integer.toString(bookmark.spread + 1); if (multiblock) { s = I18n.get("patchouli.gui.lexicon.visualize_letter"); }