Treats null book generation as the original

This commit is contained in:
Kristian Knarvik 2022-08-10 00:55:30 +02:00
parent 7467645bcd
commit 1100f181be
5 changed files with 16 additions and 12 deletions

View File

@ -73,7 +73,7 @@ public class CommandCopy implements TabExecutor {
} }
BookMeta bookMeta = (BookMeta) heldBook.getItemMeta(); BookMeta bookMeta = (BookMeta) heldBook.getItemMeta();
if (BooksWithoutBordersConfig.changeGenerationOnCopy() && bookMeta != null && bookMeta.hasGeneration()) { if (BooksWithoutBordersConfig.changeGenerationOnCopy() && bookMeta != null) {
return copyNextGenerationBook(bookMeta, player, copies); return copyNextGenerationBook(bookMeta, player, copies);
} else { } else {
//Make sure the player can pay for the copying //Make sure the player can pay for the copying

View File

@ -63,7 +63,7 @@ public enum ConfigOption {
/** /**
* Whether to turn Original into Copy when copying books * Whether to turn Original into Copy when copying books
*/ */
CHANGE_GENERATION_ON_COPY("Options.Decrease_Generation_On_Copy", false), CHANGE_GENERATION_ON_COPY("Options.Change_Generation_On_Copy", false),
/** /**
* Whether to automatically format every signed book * Whether to automatically format every signed book

View File

@ -25,7 +25,7 @@ public final class BookHelper {
*/ */
public static void increaseGeneration(ItemStack bookItem) { public static void increaseGeneration(ItemStack bookItem) {
BookMeta bookMeta = (BookMeta) bookItem.getItemMeta(); BookMeta bookMeta = (BookMeta) bookItem.getItemMeta();
if (BooksWithoutBordersConfig.changeGenerationOnCopy() && bookMeta != null && bookMeta.hasGeneration()) { if (BooksWithoutBordersConfig.changeGenerationOnCopy() && bookMeta != null) {
bookMeta.setGeneration(BookHelper.getNextGeneration(bookMeta.getGeneration())); bookMeta.setGeneration(BookHelper.getNextGeneration(bookMeta.getGeneration()));
bookItem.setItemMeta(bookMeta); bookItem.setItemMeta(bookMeta);
} }
@ -41,6 +41,9 @@ public final class BookHelper {
* @return <p>The next generation of the book</p> * @return <p>The next generation of the book</p>
*/ */
public static BookMeta.Generation getNextGeneration(BookMeta.Generation currentGeneration) { public static BookMeta.Generation getNextGeneration(BookMeta.Generation currentGeneration) {
if (currentGeneration == null) {
return BookMeta.Generation.COPY_OF_ORIGINAL;
}
return switch (currentGeneration) { return switch (currentGeneration) {
case ORIGINAL -> BookMeta.Generation.COPY_OF_ORIGINAL; case ORIGINAL -> BookMeta.Generation.COPY_OF_ORIGINAL;
case COPY_OF_ORIGINAL -> BookMeta.Generation.COPY_OF_COPY; case COPY_OF_ORIGINAL -> BookMeta.Generation.COPY_OF_COPY;

View File

@ -64,7 +64,7 @@ public final class BookLoader {
} }
//Make sure the player can pay for the book //Make sure the player can pay for the book
if (BooksWithoutBordersConfig.booksHavePrice() && if (BooksWithoutBordersConfig.booksHavePrice() &&
!sender.hasPermission("bookswithoutborders.bypassBookPrice") && !sender.hasPermission("bookswithoutborders.bypassBookPrice") &&
(bookDirectory == BookDirectory.PUBLIC || bookDirectory == BookDirectory.PLAYER) && (bookDirectory == BookDirectory.PUBLIC || bookDirectory == BookDirectory.PLAYER) &&
EconomyHelper.cannotPayForBookPrinting((Player) sender, numCopies)) { EconomyHelper.cannotPayForBookPrinting((Player) sender, numCopies)) {

View File

@ -41,9 +41,11 @@ public final class BookToFromTextHelper {
if (bookMetadata.hasAuthor()) { if (bookMetadata.hasAuthor()) {
bookYml.set("Author", bookMetadata.getAuthor()); bookYml.set("Author", bookMetadata.getAuthor());
} }
if (bookMetadata.hasGeneration() && bookMetadata.getGeneration() != null) { BookMeta.Generation generation = bookMetadata.getGeneration();
bookYml.set("Generation", bookMetadata.getGeneration().name()); if (generation == null) {
generation = BookMeta.Generation.ORIGINAL;
} }
bookYml.set("Generation", generation.name());
if (bookMetadata.hasPages()) { if (bookMetadata.hasPages()) {
bookYml.set("Pages", bookMetadata.getPages()); bookYml.set("Pages", bookMetadata.getPages());
} }
@ -84,15 +86,14 @@ public final class BookToFromTextHelper {
PrintWriter printWriter = new PrintWriter(fileWriter); PrintWriter printWriter = new PrintWriter(fileWriter);
List<String> pages = bookMetadata.getPages(); List<String> pages = bookMetadata.getPages();
String generation; BookMeta.Generation generation = bookMetadata.getGeneration();
if (bookMetadata.hasGeneration() && bookMetadata.getGeneration() != null) { if (generation == null) {
generation = ":" + bookMetadata.getGeneration().name(); generation = BookMeta.Generation.ORIGINAL;
} else {
generation = "";
} }
String generationString = ":" + generation.name();
//Save each page of the book as a text line //Save each page of the book as a text line
printWriter.println("[Book]" + generation); printWriter.println("[Book]" + generationString);
for (String page : pages) { for (String page : pages) {
printWriter.println(page); printWriter.println(page);
} }