diff --git a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java index 5887c63..63c94a7 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java @@ -43,8 +43,8 @@ import net.knarcraft.bookswithoutborders.listener.BookshelfListener; import net.knarcraft.bookswithoutborders.listener.GroupDecryptListener; import net.knarcraft.bookswithoutborders.listener.PlayerEventListener; import net.knarcraft.bookswithoutborders.listener.SignEventListener; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.formatting.StringFormatter; import net.knarcraft.knarlib.formatting.Translator; @@ -132,7 +132,7 @@ public class BooksWithoutBorders extends JavaPlugin { } else if (sender instanceof Player player) { UUID playerUUID = player.getUniqueId(); if (!getInstance().playerBooksList.containsKey(playerUUID)) { - List newFiles = BookFileHelper.listFiles(sender, false); + List newFiles = BookFileUtil.listFiles(sender, false); if (newFiles != null) { getInstance().playerBooksList.put(playerUUID, newFiles); getInstance().playerLetterIndex.put(playerUUID, populateLetterIndices(newFiles)); @@ -172,7 +172,7 @@ public class BooksWithoutBorders extends JavaPlugin { * @param updatePublic

Whether to update public books

*/ public static void updateBooks(@NotNull CommandSender sender, boolean updatePublic) { - List newFiles = BookFileHelper.listFiles(sender, updatePublic); + List newFiles = BookFileUtil.listFiles(sender, updatePublic); if (newFiles == null) { return; } @@ -223,7 +223,7 @@ public class BooksWithoutBorders extends JavaPlugin { playerBooksList = new HashMap<>(); playerLetterIndex = new HashMap<>(); booksWithoutBordersConfig = new BwBConfig(this, translator); - @Nullable List files = BookFileHelper.listFiles(this.getServer().getConsoleSender(), true); + @Nullable List files = BookFileUtil.listFiles(this.getServer().getConsoleSender(), true); if (files != null) { publicBooksList = files; publicLetterIndex = populateLetterIndices(files); @@ -390,7 +390,7 @@ public class BooksWithoutBorders extends JavaPlugin { Map firstEncounter = new HashMap<>(); Character current = null; for (int i = 0; i < books.size(); i++) { - char first = InputCleaningHelper.stripColor(books.get(i)).toLowerCase().charAt(0); + char first = InputCleaningUtil.stripColor(books.get(i)).toLowerCase().charAt(0); if (current == null || current != first) { current = first; firstEncounter.put(first, i); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java index f36a145..11ac443 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java @@ -3,9 +3,9 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Formatting; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.BookHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.BookMetaUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.Material; import org.bukkit.command.Command; @@ -34,7 +34,7 @@ public class CommandAddTitlePage implements TabExecutor { } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook == null) { new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender); return false; @@ -46,7 +46,7 @@ public class CommandAddTitlePage implements TabExecutor { Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE).build(); String twoBooksError = new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE).build(); - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, noBookError, twoBooksError)) { + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, noBookError, twoBooksError)) { return false; } @@ -87,9 +87,9 @@ public class CommandAddTitlePage implements TabExecutor { // Add a page with the book title and book author String loreSeparator = BooksWithoutBorders.getConfiguration().getLoreSeparator(); String pageText = formatTitle(new FormatBuilder(Formatting.NEUTRAL_TITLE_PAGE_TITLE_AUTHOR_FORMAT). - replace("{title}", InputCleaningHelper.stripColor(BookHelper.getBookTitle(bookMeta))). + replace("{title}", InputCleaningUtil.stripColor(BookMetaUtil.getBookTitle(bookMeta))). replace("{separator}", loreSeparator). - replace("{author}", InputCleaningHelper.stripColor(BookHelper.getBookAuthor(bookMeta, null))).build()); + replace("{author}", InputCleaningUtil.stripColor(BookMetaUtil.getBookAuthor(bookMeta, null))).build()); if (index > pages.size()) { pages.add(pageText); @@ -146,7 +146,7 @@ public class CommandAddTitlePage implements TabExecutor { if (!(commandSender instanceof Player player)) { return List.of("1", "2", "3", "4"); } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook != null) { BookMeta bookMeta = (BookMeta) heldBook.getItemMeta(); if (bookMeta != null) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java index af30970..a354115 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java @@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -30,14 +30,14 @@ public class CommandClear implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWritableBookCheck(player, + if (InventoryUtil.notHoldingOneWritableBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITABLE_BOOK).replace("{action}", Translatable.ACTION_CLEAR).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_CLEAR).build())) { return false; } //Clear the player's held book - ItemStack heldBook = InventoryHelper.getHeldBook(player, false); + ItemStack heldBook = InventoryUtil.getHeldBook(player, false); WritableBookMeta newMetadata = (BookMeta) BooksWithoutBorders.getItemFactory().getItemMeta(heldBook.getType()); if (newMetadata != null) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java index d45eba7..d2d223b 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java @@ -4,9 +4,9 @@ import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.BwBConfig; import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.BookHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; +import net.knarcraft.bookswithoutborders.utility.BookMetaUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; +import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; @@ -35,7 +35,7 @@ public class CommandCopy implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_COPY).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_COPY).build())) { return false; @@ -47,7 +47,7 @@ public class CommandCopy implements TabExecutor { } try { - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + ItemStack heldBook = InventoryUtil.getHeldBook(player, true); int copies = Integer.parseInt(arguments[0]); if (copies <= 0) { new FormatBuilder(Translatable.ERROR_COPY_NEGATIVE_AMOUNT).error(player); @@ -74,7 +74,7 @@ public class CommandCopy implements TabExecutor { //Make sure the player owns the book if authorOnlyCopy is enabled if (config.getAuthorOnlyCopy() && !player.hasPermission(Permission.BYPASS_AUTHOR_ONLY_COPY.toString())) { - if (BookHelper.isNotAuthor(player, (BookMeta) Objects.requireNonNull(heldBook.getItemMeta()))) { + if (BookMetaUtil.isNotAuthor(player, (BookMeta) Objects.requireNonNull(heldBook.getItemMeta()))) { return false; } } @@ -137,7 +137,7 @@ public class CommandCopy implements TabExecutor { ItemStack itemStack = new ItemStack(Material.WRITTEN_BOOK); itemStack.setItemMeta(bookMeta); //Increase the generation of the book - BookHelper.increaseGeneration(itemStack); + BookMetaUtil.increaseGeneration(itemStack); itemStack.setAmount(copies); player.getInventory().addItem(itemStack); @@ -149,7 +149,7 @@ public class CommandCopy implements TabExecutor { @NotNull String[] arguments) { int argumentCount = arguments.length; if (argumentCount == 1) { - return TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeHelper.getNumbers(1, 20), arguments[0]); + return TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeUtil.getNumbers(1, 20), arguments[0]); } return new ArrayList<>(); } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java index 3a11c65..4b84182 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java @@ -3,9 +3,10 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.EncryptedBookUtil; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -32,13 +33,13 @@ public class CommandDecrypt implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_DECRYPT).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_DECRYPT).build())) { return false; } - ItemStack heldItem = InventoryHelper.getHeldBook(player, true); + ItemStack heldItem = InventoryUtil.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldItem.getItemMeta(); if (bookMetadata == null) { new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender); @@ -55,13 +56,13 @@ public class CommandDecrypt implements TabExecutor { } //Decrypt the book normally - ItemStack book = EncryptionHelper.loadEncryptedBook(player, arguments[0], true, false); + ItemStack book = EncryptedBookUtil.loadEncryptedBook(player, arguments[0], true, false); if (book == null) { - book = EncryptionHelper.loadEncryptedBookLegacy(player, arguments[0], true); + book = EncryptedBookUtil.loadEncryptedBookLegacy(player, arguments[0], true); } if (book != null) { - InventoryHelper.setHeldWrittenBook(player, book); + InventoryUtil.setHeldWrittenBook(player, book); new FormatBuilder(Translatable.SUCCESS_DECRYPTED).success(player); return true; } else { @@ -78,9 +79,9 @@ public class CommandDecrypt implements TabExecutor { * @return

True if successful

*/ private boolean adminDecrypt(@NotNull Player player, @NotNull BookMeta bookMetadata) { - ItemStack decrypted = EncryptionHelper.loadEncryptedBook(player, "", false, true); + ItemStack decrypted = EncryptedBookUtil.loadEncryptedBook(player, "", false, true); if (decrypted != null) { - InventoryHelper.setHeldWrittenBook(player, decrypted); + InventoryUtil.setHeldWrittenBook(player, decrypted); new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player); return true; } else { @@ -106,8 +107,8 @@ public class CommandDecrypt implements TabExecutor { //Get the "encryption key" from the filename String key = ""; for (String encryptedFile : encryptedFiles) { - if (encryptedFile.contains(BookFileHelper.getBookFile(bookMetadata, player, true).replace(" ", "_"))) { - key = EncryptionHelper.extractLegacyKey(encryptedFile); + if (encryptedFile.contains(BookFileUtil.getBookFile(bookMetadata, player, true).replace(" ", "_"))) { + key = EncryptionUtil.extractLegacyKey(encryptedFile); if (!key.isBlank()) { break; } @@ -116,9 +117,9 @@ public class CommandDecrypt implements TabExecutor { if (!key.isBlank()) { //Decrypt the book - ItemStack book = EncryptionHelper.loadEncryptedBookLegacy(player, key, false); + ItemStack book = EncryptedBookUtil.loadEncryptedBookLegacy(player, key, false); if (book != null) { - InventoryHelper.setHeldWrittenBook(player, book); + InventoryUtil.setHeldWrittenBook(player, book); new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player); return true; } else { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java index 7a429fb..9ec1559 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java @@ -4,9 +4,9 @@ import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.gui.PagedBookIndex; import net.knarcraft.bookswithoutborders.state.BookDirectory; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; -import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.InputParsingUtil; +import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; @@ -56,7 +56,7 @@ public class CommandDelete implements TabExecutor { return false; } - performBookDeletion(sender, InputCleaningHelper.mergeArguments(arguments, 0), deletePublic); + performBookDeletion(sender, InputParsingUtil.mergeArguments(arguments, 0), deletePublic); //Update the book list BooksWithoutBorders.updateBooks(sender, deletePublic); return true; @@ -81,7 +81,7 @@ public class CommandDelete implements TabExecutor { } //Get the file to be deleted - File file = BookFileHelper.getFile(BookDirectory.getCommon(isPublic), fileName, sender); + File file = BookFileUtil.getFile(BookDirectory.getCommon(isPublic), fileName, sender); //Send message if no such file could be found if (file == null) { @@ -119,9 +119,9 @@ public class CommandDelete implements TabExecutor { protected List doTabCompletion(@NotNull CommandSender sender, @NotNull String[] arguments, boolean deletePublic) { List filtered = TabCompletionHelper.filterMatchingContains( BooksWithoutBorders.getAvailableBooks(sender, deletePublic), - InputCleaningHelper.mergeArguments(arguments, 0)); + InputParsingUtil.mergeArguments(arguments, 0)); if (arguments.length > 1) { - return TabCompletionTypeHelper.getCleanedTabCompletions(arguments, filtered); + return TabCompletionTypeUtil.getCleanedTabCompletions(arguments, filtered); } else { return filtered; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java index f36b979..70a3023 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java @@ -1,7 +1,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -33,7 +33,7 @@ public class CommandDeletePage implements TabExecutor { return false; } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook == null) { new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender); return false; @@ -75,7 +75,7 @@ public class CommandDeletePage implements TabExecutor { if (!(commandSender instanceof Player player)) { return List.of("1", "2", "3", "4"); } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook != null) { BookMeta bookMeta = (BookMeta) heldBook.getItemMeta(); if (bookMeta != null) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java index b857c45..1eef03b 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java @@ -6,8 +6,8 @@ import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.encryption.EncryptionStyle; import net.knarcraft.bookswithoutborders.state.ItemSlot; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.EncryptedBookUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; @@ -67,7 +67,7 @@ public class CommandEncrypt implements TabExecutor { return null; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_ENCRYPT).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_ENCRYPT).build())) { return null; @@ -83,7 +83,7 @@ public class CommandEncrypt implements TabExecutor { return null; } - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + ItemStack heldBook = InventoryUtil.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldBook.getItemMeta(); if (bookMetadata == null) { new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); @@ -108,12 +108,12 @@ public class CommandEncrypt implements TabExecutor { */ protected boolean encryptBook(@NotNull EncryptionStyle encryptionStyle, @NotNull Player player, @NotNull String key, @NotNull String group, boolean preventAdminDecryption) { - ItemSlot heldSlot = InventoryHelper.getHeldSlotBook(player, false, false, true, true); - ItemStack encryptedBook = EncryptionHelper.encryptBook(player, heldSlot == ItemSlot.MAIN_HAND, key, + ItemSlot heldSlot = InventoryUtil.getHeldSlotBook(player, false, false, true, true); + ItemStack encryptedBook = EncryptedBookUtil.encryptBook(player, heldSlot == ItemSlot.MAIN_HAND, key, encryptionStyle, group, preventAdminDecryption); if (encryptedBook != null) { - InventoryHelper.setHeldWrittenBook(player, encryptedBook); + InventoryUtil.setHeldWrittenBook(player, encryptedBook); return true; } else { return false; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java index a7b555d..0bf8456 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java @@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.BookFormatterUtil; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -28,7 +28,7 @@ public class CommandFormat implements TabExecutor { return false; } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook == null) { new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender); return false; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java index fe25f73..388f591 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java @@ -4,9 +4,9 @@ import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.GiveMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.gui.PagedBookIndex; -import net.knarcraft.bookswithoutborders.utility.BookLoader; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; -import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; +import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; +import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Bukkit; @@ -22,6 +22,11 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; +import static java.lang.Boolean.parseBoolean; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.isBoolean; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.isInt; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.mergeArguments; + /** * Command executor for the give command */ @@ -89,26 +94,26 @@ public class CommandGive implements TabExecutor { List output = new ArrayList<>(); List books = BooksWithoutBorders.getAvailableBooks(sender, listPublic); List filtered = TabCompletionHelper.filterMatchingContains(books, - InputCleaningHelper.mergeArguments(arguments, 0)); + mergeArguments(arguments, 0)); if (!filtered.isEmpty()) { - List cleaned = TabCompletionTypeHelper.getCleanedTabCompletions(arguments, filtered); - if (!books.contains(InputCleaningHelper.mergeArguments(arguments, 1))) { + List cleaned = TabCompletionTypeUtil.getCleanedTabCompletions(arguments, filtered); + if (!books.contains(mergeArguments(arguments, 1))) { return cleaned; } else { output.addAll(cleaned); } } - if (argumentCount > 2 && InputCleaningHelper.isBoolean(arguments[argumentCount - 2])) { + if (argumentCount > 2 && isBoolean(arguments[argumentCount - 2])) { return output; } else if (argumentCount > 2 && server.getPlayerExact(arguments[argumentCount - 3]) != null && - InputCleaningHelper.isInt(arguments[argumentCount - 2])) { + isInt(arguments[argumentCount - 2])) { output.addAll(TabCompletionHelper.filterMatchingStartsWith( - TabCompletionTypeHelper.getBooleans(), arguments[argumentCount - 1])); + TabCompletionTypeUtil.getBooleans(), arguments[argumentCount - 1])); } else if (argumentCount > 2 && server.getPlayerExact(arguments[argumentCount - 2]) != null) { output.addAll(TabCompletionHelper.filterMatchingStartsWith( - TabCompletionTypeHelper.getBooleansAndNumbers(1, 3), arguments[argumentCount - 1])); + TabCompletionTypeUtil.getBooleansAndNumbers(1, 3), arguments[argumentCount - 1])); } else { List players = new ArrayList<>(); for (Player player : Bukkit.getOnlinePlayers()) { @@ -139,23 +144,22 @@ public class CommandGive implements TabExecutor { boolean isSigned = true; // Parse arguments at the end of the command, and treat the rest as the book name - if (argumentCount > 3 && InputCleaningHelper.isInt(arguments[argumentCount - 2]) && - InputCleaningHelper.isBoolean(arguments[argumentCount - 1])) { + if (argumentCount > 3 && isInt(arguments[argumentCount - 2]) && isBoolean(arguments[argumentCount - 1])) { receivingPlayerName = arguments[argumentCount - 3]; - isSigned = Boolean.parseBoolean(arguments[argumentCount - 1]); + isSigned = parseBoolean(arguments[argumentCount - 1]); copies = arguments[argumentCount - 2]; - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 3); - } else if (argumentCount > 2 && InputCleaningHelper.isBoolean(arguments[argumentCount - 1])) { - isSigned = Boolean.parseBoolean(arguments[argumentCount - 1]); + bookIdentifier = mergeArguments(arguments, 3); + } else if (argumentCount > 2 && isBoolean(arguments[argumentCount - 1])) { + isSigned = parseBoolean(arguments[argumentCount - 1]); receivingPlayerName = arguments[argumentCount - 2]; - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 2); - } else if (argumentCount > 2 && InputCleaningHelper.isInt(arguments[argumentCount - 1])) { + bookIdentifier = mergeArguments(arguments, 2); + } else if (argumentCount > 2 && isInt(arguments[argumentCount - 1])) { copies = arguments[argumentCount - 1]; receivingPlayerName = arguments[argumentCount - 2]; - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 2); + bookIdentifier = mergeArguments(arguments, 2); } else { receivingPlayerName = arguments[argumentCount - 1]; - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 1); + bookIdentifier = mergeArguments(arguments, 1); } //Try and find the target player @@ -190,8 +194,8 @@ public class CommandGive implements TabExecutor { private boolean loadAndGiveBook(@NotNull String bookIdentifier, @NotNull CommandSender sender, @NotNull Player receivingPlayer, boolean isSigned, @NotNull String folder, @NotNull String copies) throws NumberFormatException { - String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier); - ItemStack newBook = BookLoader.loadBook(sender, bookToLoad, isSigned, folder, Integer.parseInt(copies)); + String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier); + ItemStack newBook = BookLoaderUtil.loadBook(sender, bookToLoad, isSigned, folder, Integer.parseInt(copies)); if (newBook != null) { //NOTE: As this method bypasses cost, it should also bypass the generation change receivingPlayer.getInventory().addItem(newBook); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java index f3fd6d8..cf70414 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java @@ -3,9 +3,9 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.gui.PagedBookIndex; -import net.knarcraft.bookswithoutborders.utility.BookLoader; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; -import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; +import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; +import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; @@ -18,6 +18,11 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; +import static java.lang.Integer.parseInt; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.isBoolean; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.isInt; +import static net.knarcraft.bookswithoutborders.utility.InputParsingUtil.mergeArguments; + /** * Command executor for the load command */ @@ -83,23 +88,23 @@ public class CommandLoad implements TabExecutor { List output = new ArrayList<>(); List books = BooksWithoutBorders.getAvailableBooks(sender, loadPublic); List filtered = TabCompletionHelper.filterMatchingContains(books, - InputCleaningHelper.mergeArguments(arguments, 0)); + mergeArguments(arguments, 0)); if (!filtered.isEmpty()) { - List cleaned = TabCompletionTypeHelper.getCleanedTabCompletions(arguments, filtered); - if (!books.contains(InputCleaningHelper.mergeArguments(arguments, 1))) { + List cleaned = TabCompletionTypeUtil.getCleanedTabCompletions(arguments, filtered); + if (!books.contains(mergeArguments(arguments, 1))) { return cleaned; } else { output.addAll(cleaned); } } - if (InputCleaningHelper.isBoolean(arguments[argumentCount - 2])) { + if (isBoolean(arguments[argumentCount - 2])) { return output; - } else if (InputCleaningHelper.isInt(arguments[argumentCount - 2])) { - output.addAll(TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeHelper.getBooleans(), arguments[argumentCount - 1])); + } else if (isInt(arguments[argumentCount - 2])) { + output.addAll(TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeUtil.getBooleans(), arguments[argumentCount - 1])); } else { - output.addAll(TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeHelper.getBooleansAndNumbers(1, 3), arguments[argumentCount - 1])); + output.addAll(TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeUtil.getBooleansAndNumbers(1, 3), arguments[argumentCount - 1])); } return output; } @@ -123,19 +128,18 @@ public class CommandLoad implements TabExecutor { // Parse arguments at the end of the command, and treat the rest as the book name if (argumentCount > 1) { - if (argumentCount > 2 && InputCleaningHelper.isInt(arguments[argumentCount - 2]) && - InputCleaningHelper.isBoolean(arguments[argumentCount - 1])) { + if (argumentCount > 2 && isInt(arguments[argumentCount - 2]) && isBoolean(arguments[argumentCount - 1])) { isSigned = Boolean.parseBoolean(arguments[argumentCount - 1]); - copies = Integer.parseInt(arguments[argumentCount - 2]); - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 2); - } else if (InputCleaningHelper.isBoolean(arguments[argumentCount - 1])) { + copies = parseInt(arguments[argumentCount - 2]); + bookIdentifier = mergeArguments(arguments, 2); + } else if (isBoolean(arguments[argumentCount - 1])) { isSigned = Boolean.parseBoolean(arguments[argumentCount - 1]); - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 1); - } else if (InputCleaningHelper.isInt(arguments[argumentCount - 1])) { - copies = Integer.parseInt(arguments[argumentCount - 1]); - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 1); + bookIdentifier = mergeArguments(arguments, 1); + } else if (isInt(arguments[argumentCount - 1])) { + copies = parseInt(arguments[argumentCount - 1]); + bookIdentifier = mergeArguments(arguments, 1); } else { - bookIdentifier = InputCleaningHelper.mergeArguments(arguments, 0); + bookIdentifier = mergeArguments(arguments, 0); } } @@ -157,10 +161,10 @@ public class CommandLoad implements TabExecutor { boolean isSigned, @NotNull String directory, int copies) { BooksWithoutBorders.updateBooks(player, loadPublic); - String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier); + String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier); //Give the new book if it can be loaded - ItemStack newBook = BookLoader.loadBook(player, bookToLoad, isSigned, directory, copies); + ItemStack newBook = BookLoaderUtil.loadBook(player, bookToLoad, isSigned, directory, copies); if (newBook != null) { player.getInventory().addItem(newBook); new FormatBuilder(Translatable.SUCCESS_BOOK_LOADED).success(player); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java index 85b0a48..61b278f 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java @@ -8,10 +8,10 @@ import net.knarcraft.bookswithoutborders.config.translation.Formatting; import net.knarcraft.bookswithoutborders.config.translation.SaveMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.state.BookDirectory; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; import net.knarcraft.bookswithoutborders.utility.BookFileReaderWriterUtil; -import net.knarcraft.bookswithoutborders.utility.BookHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.BookMetaUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -54,7 +54,7 @@ public class CommandSave implements TabExecutor { return false; } - ItemStack heldBook = InventoryHelper.getHeldBook(player); + ItemStack heldBook = InventoryUtil.getHeldBook(player); if (heldBook != null) { boolean duplicate = arguments.length == 1 && Boolean.parseBoolean(arguments[0]); saveBook(player, heldBook, duplicate, savePublic, command); @@ -87,11 +87,11 @@ public class CommandSave implements TabExecutor { //Only allow saving of own books if enabled if (config.getAuthorOnlySave() && !saveToPublicFolder && (!player.hasPermission(Permission.BYPASS_AUTHOR_ONLY_SAVE.toString()) && - BookHelper.isNotAuthor(player, book))) { + BookMetaUtil.isNotAuthor(player, book))) { return; } - String savePath = BookFileHelper.getBookDirectoryPathString(BookDirectory.getCommon(saveToPublicFolder), player); + String savePath = BookFileUtil.getBookDirectoryPathString(BookDirectory.getCommon(saveToPublicFolder), player); if (savePath == null) { new FormatBuilder(SaveMessage.ERROR_SAVE_INVALID_PATH).error(player); return; @@ -100,7 +100,7 @@ public class CommandSave implements TabExecutor { //Generate book filename String fileName; try { - fileName = BookFileHelper.getBookFile(book, player, saveToPublicFolder); + fileName = BookFileUtil.getBookFile(book, player, saveToPublicFolder); } catch (IllegalArgumentException exception) { new FormatBuilder(exception.getMessage()).error(player); return; @@ -164,7 +164,7 @@ public class CommandSave implements TabExecutor { } // Find any duplicates of the book - int foundDuplicates = BookFileHelper.findDuplicates(foundFiles, fileName); + int foundDuplicates = BookFileUtil.findDuplicates(foundFiles, fileName); // No duplicates to process if (foundDuplicates <= 0) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java index a9a6f42..6c3bb8b 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java @@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.state.ItemSlot; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.property.ColorConversion; import net.knarcraft.knarlib.util.ColorHelper; @@ -36,16 +36,16 @@ public class CommandSetAuthor implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_SET_AUTHOR).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_SET_AUTHOR).build())) { return false; } - ItemSlot heldBookSlot = InventoryHelper.getHeldSlotBook(player, false, false, true, true); + ItemSlot heldBookSlot = InventoryUtil.getHeldSlotBook(player, false, false, true, true); boolean mainHand = heldBookSlot == ItemSlot.MAIN_HAND; - ItemStack heldBook = InventoryHelper.getHeldItem(player, mainHand); - BookMeta bookMetaData = InventoryHelper.getHeldBookMetadata(player, mainHand); + ItemStack heldBook = InventoryUtil.getHeldItem(player, mainHand); + BookMeta bookMetaData = InventoryUtil.getHeldBookMetadata(player, mainHand); if (bookMetaData == null) { new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java index 4d0d00b..733eb32 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java @@ -7,8 +7,8 @@ import net.knarcraft.bookswithoutborders.config.StaticMessage; import net.knarcraft.bookswithoutborders.config.translation.CostMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.manager.EconomyManager; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; +import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; @@ -96,7 +96,7 @@ public class CommandSetBookPrice implements TabExecutor { return false; } - ItemStack heldItem = InventoryHelper.getHeldItem(player, true); + ItemStack heldItem = InventoryUtil.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { new FormatBuilder(CostMessage.ERROR_COST_ITEM_MISSING).error(sender); return false; @@ -154,7 +154,7 @@ public class CommandSetBookPrice implements TabExecutor { if (argumentCount == 1) { return TabCompletionHelper.filterMatchingStartsWith(paymentTypes, arguments[0]); } else if (argumentCount == 2) { - return TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeHelper.getNumbers(1, 3), arguments[1]); + return TabCompletionHelper.filterMatchingStartsWith(TabCompletionTypeUtil.getNumbers(1, 3), arguments[1]); } return new ArrayList<>(); } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java index b49ea2e..d0e6581 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java @@ -1,7 +1,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -28,7 +28,7 @@ public class CommandSetGeneration implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_CHANGE_GENERATION).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_CHANGE_GENERATION).build())) { return false; @@ -47,7 +47,7 @@ public class CommandSetGeneration implements TabExecutor { return false; } - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + ItemStack heldBook = InventoryUtil.getHeldBook(player, true); BookMeta bookMeta = (BookMeta) heldBook.getItemMeta(); if (bookMeta != null) { bookMeta.setGeneration(generation); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java index a4cd30a..d54c36d 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java @@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.property.ColorConversion; import net.knarcraft.knarlib.util.ColorHelper; @@ -37,7 +37,7 @@ public class CommandSetLore implements TabExecutor { return false; } - ItemStack heldItem = InventoryHelper.getHeldItem(player, true); + ItemStack heldItem = InventoryUtil.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player); return false; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java index 9701cef..8354ab6 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java @@ -1,8 +1,8 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.InputParsingUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.Material; import org.bukkit.command.Command; @@ -35,7 +35,7 @@ public class CommandSetTitle implements TabExecutor { return false; } - ItemStack heldItem = InventoryHelper.getHeldItem(player, true); + ItemStack heldItem = InventoryUtil.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player); return false; @@ -43,9 +43,9 @@ public class CommandSetTitle implements TabExecutor { boolean setDisplayName = false; String title; - if (InputCleaningHelper.isBoolean(arguments[arguments.length - 1])) { + if (InputParsingUtil.isBoolean(arguments[arguments.length - 1])) { setDisplayName = Boolean.parseBoolean(arguments[arguments.length - 1]); - title = InputCleaningHelper.mergeArguments(arguments, 1); + title = InputParsingUtil.mergeArguments(arguments, 1); } else { title = String.join(" ", arguments); } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java index cacad25..7e935c4 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java @@ -4,8 +4,8 @@ import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.state.ItemSlot; -import net.knarcraft.bookswithoutborders.utility.BookHelper; -import net.knarcraft.bookswithoutborders.utility.InventoryHelper; +import net.knarcraft.bookswithoutborders.utility.BookMetaUtil; +import net.knarcraft.bookswithoutborders.utility.InventoryUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -32,14 +32,14 @@ public class CommandUnSign implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, + if (InventoryUtil.notHoldingOneWrittenBookCheck(player, new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_UNSIGN).build(), new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_UNSIGN).build())) { return false; } //Find which hand the player is using to hold the book. If holding one in each, throw an error - ItemSlot holdingSlot = InventoryHelper.getHeldSlotBook(player, false, false, true, true); + ItemSlot holdingSlot = InventoryUtil.getHeldSlotBook(player, false, false, true, true); unSignHeldBook(player, holdingSlot == ItemSlot.MAIN_HAND); return true; } @@ -52,29 +52,29 @@ public class CommandUnSign implements TabExecutor { */ protected void unSignHeldBook(@NotNull Player player, boolean mainHand) { //Get the old book - BookMeta oldMetadata = InventoryHelper.getHeldBookMetadata(player, mainHand); + BookMeta oldMetadata = InventoryUtil.getHeldBookMetadata(player, mainHand); if (oldMetadata == null) { new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return; } - ItemStack heldBook = InventoryHelper.getHeldBook(player, mainHand); + ItemStack heldBook = InventoryUtil.getHeldBook(player, mainHand); //Only allow the owner to un-sign the book if (BooksWithoutBorders.getConfiguration().getAuthorOnlyUnsign() && !player.hasPermission(Permission.AUTHOR_ONLY_UNSIGN.toString())) { - if (BookHelper.isNotAuthor(player, Objects.requireNonNull(oldMetadata))) { + if (BookMetaUtil.isNotAuthor(player, Objects.requireNonNull(oldMetadata))) { return; } } // Give the player the new book - ItemStack book = BookHelper.unsignBook(oldMetadata, heldBook.getAmount()); + ItemStack book = BookMetaUtil.unsignBook(oldMetadata, heldBook.getAmount()); if (book == null) { return; } reverseColorCodes(book); - InventoryHelper.replaceHeldItem(player, book, mainHand); + InventoryUtil.replaceHeldItem(player, book, mainHand); new FormatBuilder(Translatable.SUCCESS_UNSIGNED).success(player); } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/config/BwBConfig.java b/src/main/java/net/knarcraft/bookswithoutborders/config/BwBConfig.java index 48240d7..cf59d33 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/config/BwBConfig.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/config/BwBConfig.java @@ -12,7 +12,7 @@ import java.util.ArrayList; import java.util.List; import java.util.logging.Level; -import static net.knarcraft.bookswithoutborders.utility.InputCleaningHelper.cleanString; +import static net.knarcraft.bookswithoutborders.utility.InputCleaningUtil.cleanString; /** * A config class that keeps track of all config values diff --git a/src/main/java/net/knarcraft/bookswithoutborders/gui/AuthorBookIndex.java b/src/main/java/net/knarcraft/bookswithoutborders/gui/AuthorBookIndex.java index cc25a69..0127736 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/gui/AuthorBookIndex.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/gui/AuthorBookIndex.java @@ -2,8 +2,8 @@ package net.knarcraft.bookswithoutborders.gui; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Formatting; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.formatting.TranslatableMessage; import net.md_5.bungee.api.ChatColor; @@ -32,7 +32,7 @@ public class AuthorBookIndex extends BookIndex { @NotNull String authorName) { List availableBooks = BooksWithoutBorders.getAvailableBooks(sender, listPublic); availableBooks.removeIf((bookPath) -> - !InputCleaningHelper.stripColor(BookFileHelper.getBookAuthorFromPath(bookPath)).equalsIgnoreCase(authorName)); + !InputCleaningUtil.stripColor(BookFileUtil.getBookAuthorFromPath(bookPath)).equalsIgnoreCase(authorName)); int totalPages = (int) Math.ceil((double) availableBooks.size() / booksPerPage); if (page > totalPages) { @@ -84,8 +84,8 @@ public class AuthorBookIndex extends BookIndex { @NotNull List availableBooks) { int startIndex = (page - 1) * booksPerPage; for (int bookIndex = startIndex; bookIndex < Math.min(startIndex + booksPerPage, availableBooks.size()); bookIndex++) { - String title = BookFileHelper.getBookTitleFromPath(availableBooks.get(bookIndex)); - String author = BookFileHelper.getBookAuthorFromPath(availableBooks.get(bookIndex)); + String title = BookFileUtil.getBookTitleFromPath(availableBooks.get(bookIndex)); + String author = BookFileUtil.getBookAuthorFromPath(availableBooks.get(bookIndex)); String niceName = new FormatBuilder(title).append(Formatting.NEUTRAL_BOOK_LIST_AUTHOR_SEPARATOR).append(author).color().build(); componentBuilder.append(niceName).color(ChatColor.WHITE).event( diff --git a/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java b/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java index 00251a7..5e4aafb 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java @@ -1,7 +1,7 @@ package net.knarcraft.bookswithoutborders.gui; import net.knarcraft.bookswithoutborders.config.translation.Formatting; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.InputParsingUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.chat.ClickEvent; @@ -34,15 +34,15 @@ public abstract class BookIndex { PagedBookIndex.printBooks(sender, selectPublic, command, 1); return true; } else if (arguments.length == 1) { - int page = InputCleaningHelper.parsePageNumber(arguments[0]); + int page = InputParsingUtil.parsePageNumber(arguments[0]); if (page > 0) { PagedBookIndex.printBooks(sender, selectPublic, command, page); return true; } } else if (arguments.length == 2) { - String author = InputCleaningHelper.parseAuthorSpecifier(arguments[0]); + String author = InputParsingUtil.parseAuthorSpecifier(arguments[0]); if (author != null) { - int page = InputCleaningHelper.parsePageNumber(arguments[1]); + int page = InputParsingUtil.parsePageNumber(arguments[1]); if (page > 0) { AuthorBookIndex.printBooks(sender, selectPublic, command, page, author); } @@ -52,12 +52,12 @@ public abstract class BookIndex { // Parse book author from input for (int authorIndex = 0; authorIndex < arguments.length; authorIndex++) { - String author = InputCleaningHelper.parseAuthorSpecifier(arguments[authorIndex]); + String author = InputParsingUtil.parseAuthorSpecifier(arguments[authorIndex]); if (author == null) { continue; } for (int pageIndex = authorIndex + 1; pageIndex < arguments.length; pageIndex++) { - int pageNumber = InputCleaningHelper.parsePageNumber(arguments[pageIndex]); + int pageNumber = InputParsingUtil.parsePageNumber(arguments[pageIndex]); if (pageNumber <= 0) { continue; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java b/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java index dc34e4d..16957bd 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java @@ -2,8 +2,8 @@ package net.knarcraft.bookswithoutborders.gui; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Formatting; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.formatting.TranslatableMessage; import net.md_5.bungee.api.ChatColor; @@ -94,16 +94,16 @@ public class PagedBookIndex extends BookIndex { @NotNull List availableBooks) { int startIndex = (page - 1) * booksPerPage; for (int bookIndex = startIndex; bookIndex < Math.min(startIndex + booksPerPage, availableBooks.size()); bookIndex++) { - String title = new FormatBuilder(BookFileHelper.getBookTitleFromPath(availableBooks.get(bookIndex))).color().build(); - String author = new FormatBuilder(BookFileHelper.getBookAuthorFromPath(availableBooks.get(bookIndex))).color().build(); + String title = new FormatBuilder(BookFileUtil.getBookTitleFromPath(availableBooks.get(bookIndex))).color().build(); + String author = new FormatBuilder(BookFileUtil.getBookAuthorFromPath(availableBooks.get(bookIndex))).color().build(); ClickEvent indexClick = new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + command + " " + (bookIndex + 1)); HoverEvent indexHover = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(new FormatBuilder(Formatting.NEUTRAL_BOOK_LIST_BOOK_INDEX_HOVER).color().build())); ClickEvent pathClick = new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + command + " " + availableBooks.get(bookIndex)); HoverEvent pathHover = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(new FormatBuilder(Formatting.NEUTRAL_BOOK_LIST_PATH_HOVER).color().build())); - ClickEvent authorClick = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/" + command + " author" + InputCleaningHelper.stripColor(author) + " page1"); + ClickEvent authorClick = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/" + command + " author" + InputCleaningUtil.stripColor(author) + " page1"); HoverEvent authorHover = new HoverEvent(HoverEvent.Action.SHOW_TEXT, - new Text(new FormatBuilder(Formatting.NEUTRAL_BOOK_LIST_AUTHOR_HOVER).replace("{author}", InputCleaningHelper.stripColor(author)).color().build())); + new Text(new FormatBuilder(Formatting.NEUTRAL_BOOK_LIST_AUTHOR_HOVER).replace("{author}", InputCleaningUtil.stripColor(author)).color().build())); componentBuilder.append(new FormatBuilder(Formatting.NEUTRAL_BOOK_LIST_BOOK_INDEX_NUMBER).replace("{index}", String.valueOf(bookIndex + 1)).color().build()).color(interactColor).event(indexClick).event(indexHover); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/listener/BookshelfListener.java b/src/main/java/net/knarcraft/bookswithoutborders/listener/BookshelfListener.java index 12d9ba8..0d2844b 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/listener/BookshelfListener.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/listener/BookshelfListener.java @@ -5,8 +5,8 @@ import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Formatting; import net.knarcraft.bookswithoutborders.container.Bookshelf; import net.knarcraft.bookswithoutborders.handler.BookshelfHandler; -import net.knarcraft.bookswithoutborders.utility.BookHelper; -import net.knarcraft.bookswithoutborders.utility.IntegerToRomanConverter; +import net.knarcraft.bookswithoutborders.utility.BookMetaUtil; +import net.knarcraft.bookswithoutborders.utility.IntegerToRomanUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.Location; import org.bukkit.Material; @@ -166,8 +166,8 @@ public class BookshelfListener implements Listener { */ @NotNull private String getBookDescription(@NotNull BookMeta bookMeta) { - String title = BookHelper.getBookTitle(bookMeta); - String author = BookHelper.getBookAuthor(bookMeta, null); + String title = BookMetaUtil.getBookTitle(bookMeta); + String author = BookMetaUtil.getBookAuthor(bookMeta, null); return new FormatBuilder(Formatting.NEUTRAL_BOOKSHELF_WRITTEN_FORMAT).replace("{title}", title). replace("{author}", author).build(); } @@ -186,7 +186,7 @@ public class BookshelfListener implements Listener { List enchantments = new ArrayList<>(enchantmentMap.size()); for (Map.Entry enchantmentEntry : enchantmentMap.entrySet()) { enchantments.add(getEnchantmentName(enchantmentEntry.getKey()) + " " + - IntegerToRomanConverter.getRomanNumber(enchantmentEntry.getValue())); + IntegerToRomanUtil.getRomanNumber(enchantmentEntry.getValue())); } builder.append(String.join(", ", enchantments)); return builder.toString(); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/listener/GroupDecryptListener.java b/src/main/java/net/knarcraft/bookswithoutborders/listener/GroupDecryptListener.java index 801b176..9f5518e 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/listener/GroupDecryptListener.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/listener/GroupDecryptListener.java @@ -5,8 +5,8 @@ import net.knarcraft.bookswithoutborders.config.BwBConfig; import net.knarcraft.bookswithoutborders.config.Permission; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.state.BookDirectory; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.BookLoader; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -79,13 +79,13 @@ public class GroupDecryptListener implements Listener { return; } - File file = BookFileHelper.getFile(BookDirectory.ENCRYPTED, groupName, oldBook); + File file = BookFileUtil.getFile(BookDirectory.ENCRYPTED, groupName, oldBook); if (file == null) { new FormatBuilder(Translatable.ERROR_GROUP_DECRYPT_NOT_FOUND).error(player); return; } - newBook = BookLoader.loadBook(player, file, true, BookDirectory.ENCRYPTED, heldItem.getAmount()); + newBook = BookLoaderUtil.loadBook(player, file, true, BookDirectory.ENCRYPTED, heldItem.getAmount()); if (newBook == null) { new FormatBuilder(Translatable.ERROR_GROUP_DECRYPT_LOAD_FAILED).error(player); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/listener/PlayerEventListener.java b/src/main/java/net/knarcraft/bookswithoutborders/listener/PlayerEventListener.java index 9a81e6d..9e8b496 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/listener/PlayerEventListener.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/listener/PlayerEventListener.java @@ -3,8 +3,8 @@ package net.knarcraft.bookswithoutborders.listener; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.BwBConfig; import net.knarcraft.bookswithoutborders.config.StaticMessage; -import net.knarcraft.bookswithoutborders.utility.BookLoader; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -30,7 +30,7 @@ public class PlayerEventListener implements Listener { //If a book directory exists with this player's name, move it to this player's UUID String bookFolder = config.getBookFolder(); - File file = new File(bookFolder, InputCleaningHelper.cleanString(player.getName())); + File file = new File(bookFolder, InputCleaningUtil.cleanString(player.getName())); if (file.exists() && !file.renameTo(new File(bookFolder, player.getUniqueId().toString()))) { BooksWithoutBorders.log(Level.WARNING, new FormatBuilder( StaticMessage.WARNING_USER_BOOK_MIGRATION_IMPOSSIBLE.toString()). @@ -60,7 +60,7 @@ public class PlayerEventListener implements Listener { if (!bookName.trim().isEmpty()) { //Give the book to the player if it exists - ItemStack newBook = BookLoader.loadBook(player, bookName, true, "public"); + ItemStack newBook = BookLoaderUtil.loadBook(player, bookName, true, "public"); if (newBook != null) { player.getInventory().addItem(newBook); } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/listener/SignEventListener.java b/src/main/java/net/knarcraft/bookswithoutborders/listener/SignEventListener.java index 40507fd..3e66568 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/listener/SignEventListener.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/listener/SignEventListener.java @@ -7,10 +7,11 @@ import net.knarcraft.bookswithoutborders.config.translation.SignText; import net.knarcraft.bookswithoutborders.encryption.EncryptionStyle; import net.knarcraft.bookswithoutborders.state.BookDirectory; import net.knarcraft.bookswithoutborders.state.SignType; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; -import net.knarcraft.bookswithoutborders.utility.BookLoader; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil; +import net.knarcraft.bookswithoutborders.utility.EncryptedBookUtil; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import net.md_5.bungee.api.ChatColor; import org.bukkit.Material; @@ -31,7 +32,7 @@ import org.bukkit.inventory.PlayerInventory; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import static net.knarcraft.bookswithoutborders.utility.BookFileHelper.isBookListIndex; +import static net.knarcraft.bookswithoutborders.utility.BookFileUtil.isBookListIndex; /** * A listener for relevant sign events such as clicking a decryption sign @@ -136,12 +137,12 @@ public class SignEventListener implements Listener { player.closeInventory(); //Converts user supplied key into integer form - String lineText = InputCleaningHelper.stripColor(sign.getSide(Side.FRONT).getLine(2)); - String key = EncryptionHelper.getNumberKeyFromStringKey(lineText); + String lineText = InputCleaningUtil.stripColor(sign.getSide(Side.FRONT).getLine(2)); + String key = EncryptionUtil.getNumberKeyFromStringKey(lineText); - ItemStack book = EncryptionHelper.loadEncryptedBook(player, key, false, false); + ItemStack book = EncryptedBookUtil.loadEncryptedBook(player, key, false, false); if (book == null) { - book = EncryptionHelper.loadEncryptedBookLegacy(player, key, false); + book = EncryptedBookUtil.loadEncryptedBookLegacy(player, key, false); } if (book != null) { @@ -160,7 +161,7 @@ public class SignEventListener implements Listener { @Nullable private ChatColor getSignLine2Color(@NotNull Sign sign) { String line = sign.getSide(Side.FRONT).getLine(2); - if (!InputCleaningHelper.stripColor(line).equals(line)) { + if (!InputCleaningUtil.stripColor(line).equals(line)) { return ChatColor.getByChar(sign.getSide(Side.FRONT).getLine(2).substring(1, 2).charAt(0)); } else { return null; @@ -178,7 +179,7 @@ public class SignEventListener implements Listener { @NotNull Player player) { //Tests if a full file name has been supplied and points to an actual file String signFile = lines[2] + lines[3]; - if (BookFileHelper.getFile(BookDirectory.PUBLIC, null, signFile) != null) { + if (BookFileUtil.getFile(BookDirectory.PUBLIC, null, signFile) != null) { markGiveSignValidity(event, true); return; } else { @@ -223,8 +224,8 @@ public class SignEventListener implements Listener { boolean mainHand = hand == EquipmentSlot.HAND; if (heldItemType == Material.WRITTEN_BOOK) { player.closeInventory(); - eBook = EncryptionHelper.encryptBook(player, mainHand, InputCleaningHelper.stripColor(lines[2]), - EncryptionStyle.getFromString(InputCleaningHelper.stripColor(lines[3])), false); + eBook = EncryptedBookUtil.encryptBook(player, mainHand, InputCleaningUtil.stripColor(lines[2]), + EncryptionStyle.getFromString(InputCleaningUtil.stripColor(lines[3])), false); if (eBook != null) { player.getInventory().setItem(hand, eBook); } @@ -238,7 +239,7 @@ public class SignEventListener implements Listener { * @param player

The player which clicked the sign

*/ private void giveBook(@NotNull Sign sign, @NotNull Player player) { - String fileName = InputCleaningHelper.stripColor(sign.getSide(Side.FRONT).getLine(2)); + String fileName = InputCleaningUtil.stripColor(sign.getSide(Side.FRONT).getLine(2)); boolean isLoadListNumber = false; try { @@ -250,10 +251,10 @@ public class SignEventListener implements Listener { //Add the third line to the second line for the full filename String thirdLine = sign.getSide(Side.FRONT).getLine(3); if (!isLoadListNumber && thirdLine.length() >= 2) { - fileName += InputCleaningHelper.stripColor(thirdLine); + fileName += InputCleaningUtil.stripColor(thirdLine); } - ItemStack newBook = BookLoader.loadBook(player, fileName, true, "public"); + ItemStack newBook = BookLoaderUtil.loadBook(player, fileName, true, "public"); if (newBook != null) { player.getInventory().addItem(newBook); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/state/SignType.java b/src/main/java/net/knarcraft/bookswithoutborders/state/SignType.java index b3981d1..765ee1e 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/state/SignType.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/state/SignType.java @@ -1,7 +1,7 @@ package net.knarcraft.bookswithoutborders.state; import net.knarcraft.bookswithoutborders.config.translation.SignText; -import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; +import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -51,7 +51,7 @@ public enum SignType { */ @Nullable public static SignType fromString(@NotNull String input) { - input = InputCleaningHelper.stripColor(input); + input = InputCleaningUtil.stripColor(input); for (SignType signType : SignType.values()) { if (input.equalsIgnoreCase(getText(signType.text))) { return signType; @@ -68,7 +68,7 @@ public enum SignType { */ @NotNull private static String getText(@NotNull SignText signText) { - return InputCleaningHelper.stripColor(new FormatBuilder(signText).build()); + return InputCleaningUtil.stripColor(new FormatBuilder(signText).build()); } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/thread/MigrationQueueThread.java b/src/main/java/net/knarcraft/bookswithoutborders/thread/MigrationQueueThread.java index a28248f..ee4ff21 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/thread/MigrationQueueThread.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/thread/MigrationQueueThread.java @@ -5,9 +5,9 @@ import net.knarcraft.bookswithoutborders.config.StaticMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.container.EncryptedBook; import net.knarcraft.bookswithoutborders.container.MigrationRequest; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; import net.knarcraft.bookswithoutborders.utility.BookFileReaderWriterUtil; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -96,7 +96,7 @@ public class MigrationQueueThread implements Runnable { EncryptedBook encryptedBook = null; BookMeta loadedBook = null; - String extension = BookFileHelper.getExtensionFromPath(file.getName()); + String extension = BookFileUtil.getExtensionFromPath(file.getName()); if (!extension.equalsIgnoreCase("txt") && !extension.equalsIgnoreCase("yml")) { BooksWithoutBorders.log(Level.WARNING, new FormatBuilder(StaticMessage.EXCEPTION_UNEXPECTED_EXTENSION.toString()). @@ -134,10 +134,10 @@ public class MigrationQueueThread implements Runnable { } try { - String newName = BookFileHelper.getBookFile(loadedBook, author, isPublic); + String newName = BookFileUtil.getBookFile(loadedBook, author, isPublic); // Retain legacy key - String key = EncryptionHelper.extractLegacyKey(file.getName()); + String key = EncryptionUtil.extractLegacyKey(file.getName()); if (!key.isBlank()) { newName = "[" + key + "]" + newName; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileReaderWriterUtil.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileReaderWriterUtil.java index 5b046d1..5e26f41 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileReaderWriterUtil.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileReaderWriterUtil.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.logging.Level; /** - * Helper class for converting books to and from text/yml files + * Utility class for converting books to and from text/yml files */ public final class BookFileReaderWriterUtil { @@ -81,15 +81,15 @@ public final class BookFileReaderWriterUtil { if (encryptedBook.aesConfiguration() == null) { throw new IOException(StaticMessage.EXCEPTION_AES_NO_CONFIGURATION.toString()); } - bookYml.set("Encryption.AES.IV", EncryptionHelper.bytesToHex(encryptedBook.aesConfiguration().iv())); - bookYml.set("Encryption.AES.Salt", EncryptionHelper.bytesToHex(encryptedBook.aesConfiguration().salt())); + bookYml.set("Encryption.AES.IV", EncryptionUtil.bytesToHex(encryptedBook.aesConfiguration().iv())); + bookYml.set("Encryption.AES.Salt", EncryptionUtil.bytesToHex(encryptedBook.aesConfiguration().salt())); } // If data is non-empty, that means the book is already encrypted if (!encryptedBook.data().isEmpty()) { bookYml.set("Encryption.Data", encryptedBook.data()); } else { - List encryptedPages = EncryptionHelper.encryptDecryptBookPages(encryptedBook.bookMeta(), + List encryptedPages = EncryptedBookUtil.encryptDecryptBookPages(encryptedBook.bookMeta(), encryptedBook.encryptionStyle(), encryptedBook.aesConfiguration(), encryptedBook.encryptionKey(), true); if (encryptedPages == null || encryptedPages.isEmpty()) { throw new IOException(StaticMessage.EXCEPTION_ENCRYPTED_LOAD_FAILED.toString()); @@ -134,7 +134,7 @@ public final class BookFileReaderWriterUtil { FileConfiguration bookYml = YamlConfiguration.loadConfiguration(file); // If key is blank, it's either not real encrypted, or admin decryption is disabled for the book - userKey = EncryptionHelper.sha256(userKey); + userKey = EncryptionUtil.sha256(userKey); String realKey = bookYml.getString("Encryption.Key", ""); if (!realKey.isBlank()) { if (forceDecrypt) { @@ -156,8 +156,8 @@ public final class BookFileReaderWriterUtil { AESConfiguration aesConfiguration = null; if (encryptionStyle == EncryptionStyle.AES) { - byte[] iv = EncryptionHelper.hexStringToByteArray(bookYml.getString("Encryption.AES.IV", "")); - byte[] salt = EncryptionHelper.hexStringToByteArray(bookYml.getString("Encryption.AES.Salt", "")); + byte[] iv = EncryptionUtil.hexStringToByteArray(bookYml.getString("Encryption.AES.IV", "")); + byte[] salt = EncryptionUtil.hexStringToByteArray(bookYml.getString("Encryption.AES.Salt", "")); aesConfiguration = new AESConfiguration(iv, salt, userKey); } @@ -175,7 +175,7 @@ public final class BookFileReaderWriterUtil { // Perform the actual AES decryption meta.setPages(data); - List decryptedPages = EncryptionHelper.encryptDecryptBookPages(meta, encryptionStyle, aesConfiguration, + List decryptedPages = EncryptedBookUtil.encryptDecryptBookPages(meta, encryptionStyle, aesConfiguration, userKey, false); if (decryptedPages != null && !decryptedPages.isEmpty()) { meta.setPages(decryptedPages); @@ -246,7 +246,7 @@ public final class BookFileReaderWriterUtil { } bookMetadata.setTitle(bookYml.getString("Title", new FormatBuilder(Formatting.NEUTRAL_UNKNOWN_TITLE).build())); - bookMetadata.setAuthor(BookFileHelper.authorFromUUID(bookYml.getString("Author", + bookMetadata.setAuthor(BookFileUtil.authorFromUUID(bookYml.getString("Author", new FormatBuilder(Formatting.NEUTRAL_UNKNOWN_AUTHOR).build()))); bookMetadata.setPages(bookYml.getStringList("Pages")); bookMetadata.setLore(bookYml.getStringList("Lore")); @@ -264,8 +264,8 @@ public final class BookFileReaderWriterUtil { @Nullable private static BookMeta bookFromTXT(@NotNull File file, @NotNull BookMeta bookMetadata) { //Get title and author from the file name - String title = BookFileHelper.getBookTitleFromPath(file.getName()); - String author = BookFileHelper.getBookAuthorFromPath(file.getName()); + String title = BookFileUtil.getBookTitleFromPath(file.getName()); + String author = BookFileUtil.getBookAuthorFromPath(file.getName()); //Read the .txt file List rawPages; @@ -287,10 +287,10 @@ public final class BookFileReaderWriterUtil { } //Remove any empty pages - List pages = new ArrayList<>(InputCleaningHelper.cleanList(rawPages)); + List pages = new ArrayList<>(InputCleaningUtil.cleanList(rawPages)); //Update the metadata of the book with its new values - bookMetadata.setAuthor(BookFileHelper.authorFromUUID(author)); + bookMetadata.setAuthor(BookFileUtil.authorFromUUID(author)); bookMetadata.setTitle(title.substring(0, Math.min(title.length(), 32))); bookMetadata.setPages(pages); diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileUtil.java similarity index 92% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileUtil.java index 2f4e88c..7c27523 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookFileUtil.java @@ -23,11 +23,11 @@ import java.util.UUID; import java.util.regex.Pattern; /** - * Helper class for dealing with files + * Helper class for listing and finding files */ -public final class BookFileHelper { +public final class BookFileUtil { - private BookFileHelper() { + private BookFileUtil() { } /** @@ -60,11 +60,11 @@ public final class BookFileHelper { */ @Nullable public static List listFiles(@NotNull CommandSender sender, @NotNull Boolean listPublic) { - File file = BookFileHelper.getBookDirectoryPath(BookDirectory.getCommon(listPublic), sender); + File file = BookFileUtil.getBookDirectoryPath(BookDirectory.getCommon(listPublic), sender); if (file == null) { return new ArrayList<>(); } - return BookFileHelper.listFiles(file); + return BookFileUtil.listFiles(file); } /** @@ -165,7 +165,7 @@ public final class BookFileHelper { * @return

The filename, or the filename with the author replaced with UUID

*/ public static String replaceAuthorWithUUID(@NotNull String fileName) { - String userName = InputCleaningHelper.stripColor(getBookAuthorFromPath(fileName)); + String userName = InputCleaningUtil.stripColor(getBookAuthorFromPath(fileName)); Player player = Bukkit.getPlayerExact(userName); if (player != null) { @@ -184,7 +184,7 @@ public final class BookFileHelper { @NotNull public static String authorFromUUID(@NotNull String author) { try { - UUID authorID = UUID.fromString(InputCleaningHelper.stripColor(author)); + UUID authorID = UUID.fromString(InputCleaningUtil.stripColor(author)); Player player = Bukkit.getPlayer(authorID); if (player != null) { author = player.getName(); @@ -205,17 +205,17 @@ public final class BookFileHelper { @NotNull public static String getBookFile(@NotNull BookMeta book, @NotNull OfflinePlayer player, boolean isPublic) throws IllegalArgumentException { String separator = BooksWithoutBorders.getConfiguration().getTitleAuthorSeparator(); - String bookName = BookHelper.getBookTitle(book); - String authorName = BookHelper.getBookAuthor(book, isPublic ? null : player); + String bookName = BookMetaUtil.getBookTitle(book); + String authorName = BookMetaUtil.getBookAuthor(book, isPublic ? null : player); - if (InputCleaningHelper.cleanString(bookName).contains(separator) || - InputCleaningHelper.cleanString(authorName).contains(separator)) { + if (InputCleaningUtil.cleanString(bookName).contains(separator) || + InputCleaningUtil.cleanString(authorName).contains(separator)) { throw new IllegalArgumentException(new FormatBuilder(StaticMessage.EXCEPTION_META_HAS_SEPARATOR.toString()). replace("{author}", authorName).replace("{title}", bookName). replace("{separator}", separator).build()); } - return InputCleaningHelper.cleanString(bookName + separator + authorName); + return InputCleaningUtil.cleanString(bookName + separator + authorName); } /** @@ -261,6 +261,7 @@ public final class BookFileHelper { * @param bookMeta

The book meta of the book to locate

* @return

The file, or null if not found

*/ + @Nullable public static File getFile(@NotNull BookDirectory bookDirectory, @Nullable String group, @NotNull BookMeta bookMeta) { String separator = BooksWithoutBorders.getConfiguration().getTitleAuthorSeparator(); return getFile(bookDirectory, group, bookMeta.getTitle() + separator + bookMeta.getAuthor()); @@ -274,6 +275,7 @@ public final class BookFileHelper { * @param sender

The command sender looking for a file

* @return

The file, or null if not found

*/ + @Nullable public static File getFile(@NotNull BookDirectory bookDirectory, @NotNull String fileName, @NotNull CommandSender sender) { String folder = getBookDirectoryPathString(bookDirectory, sender); if (folder != null) { @@ -295,7 +297,7 @@ public final class BookFileHelper { public static File getFile(@NotNull BookDirectory bookDirectory, @Nullable String subFolder, @NotNull String fileName) { File baseFolder = new File(BooksWithoutBorders.getConfiguration().getBookFolder()); if (subFolder != null) { - subFolder = InputCleaningHelper.cleanString(subFolder); + subFolder = InputCleaningUtil.cleanString(subFolder); } File parentFolder = switch (bookDirectory) { case PUBLIC -> baseFolder; @@ -320,7 +322,7 @@ public final class BookFileHelper { return null; } - fileName = InputCleaningHelper.cleanString(fileName); + fileName = InputCleaningUtil.cleanString(fileName); List possiblePaths = List.of( fileName, fileName.replace(" ", "_"), @@ -411,7 +413,7 @@ public final class BookFileHelper { //Convert the UUID into a username if necessary String userName = getBookAuthorFromPath(fileName); String title = getBookTitleFromPath(fileName); - fileList.add(title + separator + BookFileHelper.authorFromUUID(userName)); + fileList.add(title + separator + BookFileUtil.authorFromUUID(userName)); } else { fileList.add(fileName); } @@ -419,8 +421,8 @@ public final class BookFileHelper { // Sort the book list Comparator bookComparator = Comparator.naturalOrder(); - fileList.sort((a, b) -> bookComparator.compare(InputCleaningHelper.stripColor(a).toLowerCase(), - InputCleaningHelper.stripColor(b).toLowerCase())); + fileList.sort((a, b) -> bookComparator.compare(InputCleaningUtil.stripColor(a).toLowerCase(), + InputCleaningUtil.stripColor(b).toLowerCase())); return fileList; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoader.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoaderUtil.java similarity index 93% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoader.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoaderUtil.java index 43f37b5..9ca51e9 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoader.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookLoaderUtil.java @@ -19,11 +19,11 @@ import java.util.ArrayList; import java.util.List; /** - * A helper class for loading books from files + * A utility class for loading books, and taking required cost */ -public final class BookLoader { +public final class BookLoaderUtil { - private BookLoader() { + private BookLoaderUtil() { } /** @@ -89,9 +89,9 @@ public final class BookLoader { //Get the full path of the book to load File file; if (bookDirectory == BookDirectory.PUBLIC) { - file = BookFileHelper.getFile(bookDirectory, null, fileName); + file = BookFileUtil.getFile(bookDirectory, null, fileName); } else { - file = BookFileHelper.getFile(bookDirectory, fileName, sender); + file = BookFileUtil.getFile(bookDirectory, fileName, sender); } if (file == null) { new FormatBuilder(Translatable.ERROR_INCORRECT_FILE_NAME).error(sender); @@ -153,11 +153,11 @@ public final class BookLoader { //Set the metadata and amount to the new book book.setItemMeta(bookMetadata); //Increase book generation if enabled - BookHelper.increaseGeneration(book); + BookMetaUtil.increaseGeneration(book); book.setAmount(numCopies); if (!isSigned && book.getItemMeta() != null) { - return BookHelper.unsignBook((BookMeta) book.getItemMeta(), book.getAmount()); + return BookMetaUtil.unsignBook((BookMeta) book.getItemMeta(), book.getAmount()); } return book; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookMetaUtil.java similarity index 95% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/BookHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/BookMetaUtil.java index 9f3d793..a872722 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/BookHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/BookMetaUtil.java @@ -19,11 +19,11 @@ import java.util.List; import java.util.logging.Level; /** - * Helper class for getting abstract book information + * Utility class for getting book meta data */ -public final class BookHelper { +public final class BookMetaUtil { - private BookHelper() { + private BookMetaUtil() { } @@ -67,7 +67,7 @@ public final class BookHelper { public static void increaseGeneration(@NotNull ItemStack bookItem) { BookMeta bookMeta = (BookMeta) bookItem.getItemMeta(); if (BooksWithoutBorders.getConfiguration().changeGenerationOnCopy() && bookMeta != null) { - bookMeta.setGeneration(BookHelper.getNextGeneration(bookMeta.getGeneration())); + bookMeta.setGeneration(BookMetaUtil.getNextGeneration(bookMeta.getGeneration())); bookItem.setItemMeta(bookMeta); } } @@ -158,8 +158,8 @@ public final class BookHelper { * @return

True if the player is the author

*/ private static boolean isAuthor(@NotNull String playerName, @Nullable String author) { - playerName = InputCleaningHelper.cleanString(playerName); - return author != null && playerName.equalsIgnoreCase(InputCleaningHelper.cleanString(author)); + playerName = InputCleaningUtil.cleanString(playerName); + return author != null && playerName.equalsIgnoreCase(InputCleaningUtil.cleanString(author)); } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptedBookUtil.java similarity index 75% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptedBookUtil.java index 4b2082a..5914709 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptedBookUtil.java @@ -25,58 +25,18 @@ import org.jetbrains.annotations.Nullable; import java.io.File; import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; -import java.util.Base64; import java.util.List; import java.util.logging.Level; -import static net.knarcraft.bookswithoutborders.utility.InputCleaningHelper.cleanString; +import static net.knarcraft.bookswithoutborders.utility.InputCleaningUtil.cleanString; /** - * Helper class for book encryption + * Utility class for book encryption and decryption */ -public final class EncryptionHelper { +public final class EncryptedBookUtil { - private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII); - - private EncryptionHelper() { - } - - /** - * Transforms a string key/password into its numerical values - * - * @param key

The key to transform

- * @return

A comma-separated string of the numbers representing the key's characters

- */ - @NotNull - public static String getNumberKeyFromStringKey(@NotNull String key) { - StringBuilder integerKey = new StringBuilder(String.valueOf(Character.codePointAt(key, 0))); - for (int x = 1; x < key.length(); x++) { - integerKey.append(", ").append(Character.codePointAt(key, x)); - } - return integerKey.toString(); - } - - /** - * Performs sha256 hashing on the input string - * - * @param input

The input to hash

- * @return

The hashed input

- */ - @NotNull - public static String sha256(@NotNull String input) { - String hashed; - try { - final MessageDigest digest = MessageDigest.getInstance("SHA3-256"); - final byte[] hashBytes = digest.digest(input.getBytes(StandardCharsets.UTF_8)); - hashed = Base64.getEncoder().encodeToString(hashBytes); - } catch (NoSuchAlgorithmException exception) { - hashed = input; - } - return hashed; + private EncryptedBookUtil() { } /** @@ -94,8 +54,8 @@ public final class EncryptionHelper { @Nullable AESConfiguration aesConfiguration, @NotNull String key, boolean encrypt) { Encryptor encryptor = switch (style) { - case DNA -> new GenenCrypt(EncryptionHelper.getNumberKeyFromStringKey(key)); - case SUBSTITUTION -> new SubstitutionCipher(EncryptionHelper.getNumberKeyFromStringKey(key)); + case DNA -> new GenenCrypt(EncryptionUtil.getNumberKeyFromStringKey(key)); + case SUBSTITUTION -> new SubstitutionCipher(EncryptionUtil.getNumberKeyFromStringKey(key)); case AES -> { if (aesConfiguration == null) { throw new IllegalArgumentException(StaticMessage.EXCEPTION_AES_NO_CONFIGURATION.toString()); @@ -155,7 +115,7 @@ public final class EncryptionHelper { public static ItemStack encryptBook(Player player, boolean mainHand, @NotNull String key, @NotNull EncryptionStyle style, @NotNull String groupName, boolean preventAdminDecrypt) { - BookMeta book = InventoryHelper.getHeldBookMetadata(player, mainHand); + BookMeta book = InventoryUtil.getHeldBookMetadata(player, mainHand); if (book == null) { new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return null; @@ -166,7 +126,7 @@ public final class EncryptionHelper { return null; } - String hashedKey = sha256(key); + String hashedKey = EncryptionUtil.sha256(key); AESConfiguration configuration = AESConfiguration.getNewConfiguration(hashedKey); //Save the book's un-encrypted contents to a file @@ -177,7 +137,7 @@ public final class EncryptionHelper { } //Get the encrypted pages - List encryptedPages = EncryptionHelper.encryptDecryptBookPages(book, style, configuration, hashedKey, + List encryptedPages = EncryptedBookUtil.encryptDecryptBookPages(book, style, configuration, hashedKey, true); if (encryptedPages == null) { return null; @@ -186,7 +146,7 @@ public final class EncryptionHelper { //Format the last page just in case BookFormatterUtil.formatLastPage(encryptedPages); //Remove empty pages - List newPages = InputCleaningHelper.cleanList(encryptedPages); + List newPages = InputCleaningUtil.cleanList(encryptedPages); ItemStack encryptedBook = createEncryptedBook(book, newPages, player, newMetadata); @@ -212,7 +172,7 @@ public final class EncryptionHelper { encryptedBook.setItemMeta(book); //Update item amount - encryptedBook.setAmount(InventoryHelper.getHeldBook(player, true).getAmount()); + encryptedBook.setAmount(InventoryUtil.getHeldBook(player, true).getAmount()); //Set new item metadata encryptedBook.setItemMeta(newMetadata); @@ -257,15 +217,15 @@ public final class EncryptionHelper { @Nullable public static ItemStack loadEncryptedBook(@NotNull Player player, @NotNull String key, boolean deleteEncryptedFile, boolean forceDecrypt) { - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + ItemStack heldBook = InventoryUtil.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldBook.getItemMeta(); if (bookMetadata == null) { return null; } - File file = BookFileHelper.getFile(BookDirectory.ENCRYPTED, null, bookMetadata); - if (!file.isFile()) { + File file = BookFileUtil.getFile(BookDirectory.ENCRYPTED, null, bookMetadata); + if (file == null || !file.isFile()) { new FormatBuilder(Translatable.ERROR_DECRYPT_NOT_FOUND).error(player); return null; } else { @@ -288,7 +248,7 @@ public final class EncryptionHelper { ItemStack newBook = new ItemStack(Material.WRITTEN_BOOK); newBook.setItemMeta(bookMetadata); - newBook.setAmount(InventoryHelper.getHeldBook(player, true).getAmount()); + newBook.setAmount(InventoryUtil.getHeldBook(player, true).getAmount()); return newBook; } @@ -303,9 +263,8 @@ public final class EncryptionHelper { @Nullable public static ItemStack loadEncryptedBookLegacy(@NotNull Player player, @NotNull String key, boolean deleteEncryptedFile) { new FormatBuilder(Translatable.NEUTRAL_ATTEMPTING_LEGACY_DECRYPTION).neutral(player); - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + ItemStack heldBook = InventoryUtil.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldBook.getItemMeta(); - String path = BooksWithoutBorders.getConfiguration().getEncryptedBookPath(); if (bookMetadata == null) { return null; @@ -316,16 +275,13 @@ public final class EncryptionHelper { integerKey.append(Character.getNumericValue(Character.codePointAt(key, x))); } - String fileName = "[" + integerKey + "]" + BookFileHelper.getBookFile(bookMetadata, player, true); + String fileName = "[" + integerKey + "]" + BookFileUtil.getBookFile(bookMetadata, player, true); fileName = cleanString(fileName).replace(" ", "_"); - File file = new File(path + fileName + ".yml"); - if (!file.isFile()) { - file = new File(path + fileName + ".txt"); - if (!file.isFile()) { - new FormatBuilder(Translatable.ERROR_DECRYPT_LEGACY_INVALID_KEY).error(player); - return null; - } + File file = BookFileUtil.getFile(BookDirectory.ENCRYPTED, null, fileName); + if (file == null) { + new FormatBuilder(Translatable.ERROR_DECRYPT_LEGACY_INVALID_KEY).error(player); + return null; } try { @@ -345,58 +301,10 @@ public final class EncryptionHelper { ItemStack newBook = new ItemStack(Material.WRITTEN_BOOK); newBook.setItemMeta(bookMetadata); - newBook.setAmount(InventoryHelper.getHeldBook(player, true).getAmount()); + newBook.setAmount(InventoryUtil.getHeldBook(player, true).getAmount()); return newBook; } - /** - * Attempts to extract a legacy password key from a filename - * - * @param fileName

The filename to get the legacy key from

- * @return

The legacy key, or an empty string if not found

- */ - @NotNull - public static String extractLegacyKey(@NotNull String fileName) { - if (fileName.matches("^\\[[0-9]+].*")) { - return fileName.substring(fileName.indexOf("[") + 1, fileName.indexOf("]")); - } else { - return ""; - } - } - - /** - * Converts a byte array to a hexadecimal string - * - * @param bytes

The bytes to convert

- * @return

The resulting hexadecimal string

- */ - @NotNull - public static String bytesToHex(byte[] bytes) { - byte[] hexChars = new byte[bytes.length * 2]; - for (int j = 0; j < bytes.length; j++) { - int v = bytes[j] & 0xFF; - hexChars[j * 2] = HEX_ARRAY[v >>> 4]; - hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F]; - } - return new String(hexChars, StandardCharsets.UTF_8); - } - - /** - * Converts a string of hexadecimals to a byte array - * - * @param input

The hexadecimal input to parse

- * @return

The resulting byte array

- */ - public static byte[] hexStringToByteArray(@NotNull String input) { - int len = input.length(); - byte[] data = new byte[len / 2]; - for (int i = 0; i < len; i += 2) { - data[i / 2] = (byte) ((Character.digit(input.charAt(i), 16) << 4) + - Character.digit(input.charAt(i + 1), 16)); - } - return data; - } - /** * Attempts to delete the encryption file after a book has been decrypted * @@ -441,7 +349,7 @@ public final class EncryptionHelper { } } //Generate file name - String fileName = BookFileHelper.getBookFile(bookMetadata, player, true); + String fileName = BookFileUtil.getBookFile(bookMetadata, player, true); List newLore = new ArrayList<>(); newLore.add(ChatColor.GRAY + "[" + groupName + " encrypted]"); @@ -478,7 +386,7 @@ public final class EncryptionHelper { private static Boolean saveEncryptedBook(@NotNull Player player, @NotNull EncryptedBook encryptedBook) { String path = BooksWithoutBorders.getConfiguration().getEncryptedBookPath(); - String fileName = BookFileHelper.getBookFile(encryptedBook.bookMeta(), player, true); + String fileName = BookFileUtil.getBookFile(encryptedBook.bookMeta(), player, true); fileName = cleanString(fileName); //cancels saving if file is already encrypted diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionUtil.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionUtil.java new file mode 100644 index 0000000..a960626 --- /dev/null +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/EncryptionUtil.java @@ -0,0 +1,103 @@ +package net.knarcraft.bookswithoutborders.utility; + +import org.jetbrains.annotations.NotNull; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Base64; + +/** + * A utility class for encryption-related tasks + */ +public final class EncryptionUtil { + + private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII); + + private EncryptionUtil() { + + } + + /** + * Transforms a string key/password into its numerical values + * + * @param key

The key to transform

+ * @return

A comma-separated string of the numbers representing the key's characters

+ */ + @NotNull + public static String getNumberKeyFromStringKey(@NotNull String key) { + StringBuilder integerKey = new StringBuilder(String.valueOf(Character.codePointAt(key, 0))); + for (int x = 1; x < key.length(); x++) { + integerKey.append(", ").append(Character.codePointAt(key, x)); + } + return integerKey.toString(); + } + + /** + * Performs sha256 hashing on the input string + * + * @param input

The input to hash

+ * @return

The hashed input

+ */ + @NotNull + public static String sha256(@NotNull String input) { + String hashed; + try { + final MessageDigest digest = MessageDigest.getInstance("SHA3-256"); + final byte[] hashBytes = digest.digest(input.getBytes(StandardCharsets.UTF_8)); + hashed = Base64.getEncoder().encodeToString(hashBytes); + } catch (NoSuchAlgorithmException exception) { + hashed = input; + } + return hashed; + } + + /** + * Attempts to extract a legacy password key from a filename + * + * @param fileName

The filename to get the legacy key from

+ * @return

The legacy key, or an empty string if not found

+ */ + @NotNull + public static String extractLegacyKey(@NotNull String fileName) { + if (fileName.matches("^\\[[0-9]+].*")) { + return fileName.substring(fileName.indexOf("[") + 1, fileName.indexOf("]")); + } else { + return ""; + } + } + + /** + * Converts a byte array to a hexadecimal string + * + * @param bytes

The bytes to convert

+ * @return

The resulting hexadecimal string

+ */ + @NotNull + public static String bytesToHex(byte[] bytes) { + byte[] hexChars = new byte[bytes.length * 2]; + for (int j = 0; j < bytes.length; j++) { + int v = bytes[j] & 0xFF; + hexChars[j * 2] = HEX_ARRAY[v >>> 4]; + hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F]; + } + return new String(hexChars, StandardCharsets.UTF_8); + } + + /** + * Converts a string of hexadecimals to a byte array + * + * @param input

The hexadecimal input to parse

+ * @return

The resulting byte array

+ */ + public static byte[] hexStringToByteArray(@NotNull String input) { + int len = input.length(); + byte[] data = new byte[len / 2]; + for (int i = 0; i < len; i += 2) { + data[i / 2] = (byte) ((Character.digit(input.charAt(i), 16) << 4) + + Character.digit(input.charAt(i + 1), 16)); + } + return data; + } + +} diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningUtil.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningUtil.java new file mode 100644 index 0000000..568c255 --- /dev/null +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningUtil.java @@ -0,0 +1,63 @@ +package net.knarcraft.bookswithoutborders.utility; + +import net.knarcraft.knarlib.property.ColorConversion; +import net.knarcraft.knarlib.util.ColorHelper; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +/** + * Helper class for cleaning input and names + */ +public final class InputCleaningUtil { + + private InputCleaningUtil() { + } + + /** + * Removes null and empty items from a list + * + * @param list

The list to clean

+ * @return

A clean list containing all relevant values

+ */ + @NotNull + public static List cleanList(@NotNull List list) { + List resultList = new ArrayList<>(list); + resultList.removeIf((item) -> item == null || item.trim().isEmpty()); + return resultList; + } + + /** + * Removes any special character from a filename + * + * @param fileName

The file name to clean

+ * @return

The cleaned file name

+ */ + @NotNull + public static String cleanString(@NotNull String fileName) { + fileName = fileName.replace("/", ""); + fileName = fileName.replace("\\", ""); + fileName = fileName.replace("*", ""); + fileName = fileName.replace(":", ""); + fileName = fileName.replace("|", ""); + fileName = fileName.replace("<", ""); + fileName = fileName.replace(">", ""); + fileName = fileName.replace("?", ""); + fileName = fileName.replace("\"", ""); + fileName = fileName.replace("§", "&"); + return fileName; + } + + /** + * Strips the color from the given input + * + * @param input

The input to strip

+ * @return

The color stripped input

+ */ + @NotNull + public static String stripColor(@NotNull String input) { + return ColorHelper.stripColorCodes(input, ColorConversion.RGB); + } + +} diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/InputParsingUtil.java similarity index 58% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/InputParsingUtil.java index b4c499d..59a2bdd 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/InputCleaningHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/InputParsingUtil.java @@ -1,66 +1,51 @@ package net.knarcraft.bookswithoutborders.utility; -import net.knarcraft.knarlib.property.ColorConversion; -import net.knarcraft.knarlib.util.ColorHelper; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -/** - * Helper class for cleaning input and names - */ -public final class InputCleaningHelper { +public final class InputParsingUtil { + + private InputParsingUtil() { - private InputCleaningHelper() { } /** - * Removes null and empty items from a list + * Checks whether the given input is a boolean * - * @param list

The list to clean

- * @return

A clean list containing all relevant values

+ * @param input

The input to validate

+ * @return

True if the given input is a boolean

*/ - @NotNull - public static List cleanList(@NotNull List list) { - List resultList = new ArrayList<>(list); - resultList.removeIf((item) -> item == null || item.trim().isEmpty()); - return resultList; + public static boolean isBoolean(@NotNull String input) { + return input.matches("(true|false)"); } /** - * Removes any special character from a filename + * Checks whether the given input is an integer * - * @param fileName

The file name to clean

- * @return

The cleaned file name

+ * @param input

The input to validate

+ * @return

True if the given input is an integer

*/ - @NotNull - public static String cleanString(@NotNull String fileName) { - fileName = fileName.replace("/", ""); - fileName = fileName.replace("\\", ""); - fileName = fileName.replace("*", ""); - fileName = fileName.replace(":", ""); - fileName = fileName.replace("|", ""); - fileName = fileName.replace("<", ""); - fileName = fileName.replace(">", ""); - fileName = fileName.replace("?", ""); - fileName = fileName.replace("\"", ""); - fileName = fileName.replace("§", "&"); - return fileName; + public static boolean isInt(@NotNull String input) { + return input.matches("[0-9]+"); } /** - * Strips the color from the given input + * Merges all arguments to a string with spaces * - * @param input

The input to strip

- * @return

The color stripped input

+ * @param arguments

The arguments to merge

+ * @param stripLastN

How many of the last arguments to ignore

+ * @return

The merged arguments

*/ @NotNull - public static String stripColor(@NotNull String input) { - return ColorHelper.stripColorCodes(input, ColorConversion.RGB); + public static String mergeArguments(String[] arguments, int stripLastN) { + StringBuilder builder = new StringBuilder(arguments[0]); + for (int i = 1; i < arguments.length - stripLastN; i++) { + builder.append(" ").append(arguments[i]); + } + return builder.toString(); } /** @@ -100,40 +85,4 @@ public final class InputCleaningHelper { } } - /** - * Checks whether the given input is a boolean - * - * @param input

The input to validate

- * @return

True if the given input is a boolean

- */ - public static boolean isBoolean(@NotNull String input) { - return input.matches("(true|false)"); - } - - /** - * Checks whether the given input is an integer - * - * @param input

The input to validate

- * @return

True if the given input is an integer

- */ - public static boolean isInt(@NotNull String input) { - return input.matches("[0-9]+"); - } - - /** - * Merges all arguments to a string with spaces - * - * @param arguments

The arguments to merge

- * @param stripLastN

How many of the last arguments to ignore

- * @return

The merged arguments

- */ - @NotNull - public static String mergeArguments(String[] arguments, int stripLastN) { - StringBuilder builder = new StringBuilder(arguments[0]); - for (int i = 1; i < arguments.length - stripLastN; i++) { - builder.append(" ").append(arguments[i]); - } - return builder.toString(); - } - } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanConverter.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanUtil.java similarity index 95% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanConverter.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanUtil.java index 4cdbb37..50a9715 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanConverter.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/IntegerToRomanUtil.java @@ -6,9 +6,9 @@ import java.util.ArrayList; import java.util.List; /** - * A converter from an integer to a roman numeral + * A utility for converting from an integer to a roman numeral */ -public final class IntegerToRomanConverter { +public final class IntegerToRomanUtil { private final static List romanValues = new ArrayList<>(); private final static List romanCharacters = new ArrayList<>(); @@ -32,7 +32,7 @@ public final class IntegerToRomanConverter { romanCharacters.add('I'); } - private IntegerToRomanConverter() { + private IntegerToRomanUtil() { } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryUtil.java similarity index 97% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryUtil.java index 8512f38..60d101e 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/InventoryUtil.java @@ -15,9 +15,9 @@ import org.jetbrains.annotations.Nullable; /** * The inventory helper mainly helps with getting and setting books */ -public final class InventoryHelper { +public final class InventoryUtil { - private InventoryHelper() { + private InventoryUtil() { } /** @@ -26,10 +26,11 @@ public final class InventoryHelper { * @param player

The player holding the book

* @return

The held book, or null if not holding one book in the main hand

*/ + @Nullable public static ItemStack getHeldBook(@NotNull Player player) { - ItemSlot holdingSlot = InventoryHelper.getHeldSlotBook(player, false, false, false, false); + ItemSlot holdingSlot = InventoryUtil.getHeldSlotBook(player, false, false, false, false); if (holdingSlot != ItemSlot.NONE) { - return InventoryHelper.getHeldItem(player, holdingSlot == ItemSlot.MAIN_HAND); + return InventoryUtil.getHeldItem(player, holdingSlot == ItemSlot.MAIN_HAND); } else { return null; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeHelper.java b/src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeUtil.java similarity index 94% rename from src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeHelper.java rename to src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeUtil.java index 3594ce1..be1fb97 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeHelper.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/utility/TabCompletionTypeUtil.java @@ -6,11 +6,11 @@ import java.util.ArrayList; import java.util.List; /** - * Helper class for getting string lists required for auto-completion + * Utility class for getting string lists required for auto-completion */ -public final class TabCompletionTypeHelper { +public final class TabCompletionTypeUtil { - private TabCompletionTypeHelper() { + private TabCompletionTypeUtil() { } /** diff --git a/src/test/java/net/knarcraft/bookswithoutborders/encryption/GenenCryptTest.java b/src/test/java/net/knarcraft/bookswithoutborders/encryption/GenenCryptTest.java index 396f075..5937abf 100644 --- a/src/test/java/net/knarcraft/bookswithoutborders/encryption/GenenCryptTest.java +++ b/src/test/java/net/knarcraft/bookswithoutborders/encryption/GenenCryptTest.java @@ -1,6 +1,6 @@ package net.knarcraft.bookswithoutborders.encryption; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -11,7 +11,7 @@ public class GenenCryptTest { @Test public void encryptDecryptTest() { - String encryptionKey = EncryptionHelper.getNumberKeyFromStringKey("My secret password!"); + String encryptionKey = EncryptionUtil.getNumberKeyFromStringKey("My secret password!"); String plaintext = "Very secret &4colored&r message. That might be quite long. Of course, the length might " + "cause problems, especially as the gene encryption requires several characters for every encrypted " + "character. Also, the hexadecimal representation of the original text is encrypted. It is unknown if " + diff --git a/src/test/java/net/knarcraft/bookswithoutborders/encryption/SubstitutionCipherTest.java b/src/test/java/net/knarcraft/bookswithoutborders/encryption/SubstitutionCipherTest.java index 8c0b0c8..e5d4124 100644 --- a/src/test/java/net/knarcraft/bookswithoutborders/encryption/SubstitutionCipherTest.java +++ b/src/test/java/net/knarcraft/bookswithoutborders/encryption/SubstitutionCipherTest.java @@ -1,6 +1,6 @@ package net.knarcraft.bookswithoutborders.encryption; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -13,7 +13,7 @@ public class SubstitutionCipherTest { public void encryptDecryptTest() { String plaintext = "Very secret text that should be kept secret. It should be noted that several characters, " + "like !\"#¤%&/()=?`§|@£${[]}'*,.-;:_<>µ need to be tested. Also foreign characters, like: øæåØÆÅ"; - String integerKey = EncryptionHelper.getNumberKeyFromStringKey("Very secret key that you will never guess!¤%&/"); + String integerKey = EncryptionUtil.getNumberKeyFromStringKey("Very secret key that you will never guess!¤%&/"); SubstitutionCipher substitutionCipher = new SubstitutionCipher(integerKey); String cypherText = substitutionCipher.encryptText(plaintext); diff --git a/src/test/java/net/knarcraft/bookswithoutborders/util/BookFileHelperTest.java b/src/test/java/net/knarcraft/bookswithoutborders/util/BookFileUtilTest.java similarity index 60% rename from src/test/java/net/knarcraft/bookswithoutborders/util/BookFileHelperTest.java rename to src/test/java/net/knarcraft/bookswithoutborders/util/BookFileUtilTest.java index 6a30cd6..bdae1db 100644 --- a/src/test/java/net/knarcraft/bookswithoutborders/util/BookFileHelperTest.java +++ b/src/test/java/net/knarcraft/bookswithoutborders/util/BookFileUtilTest.java @@ -1,13 +1,13 @@ package net.knarcraft.bookswithoutborders.util; -import net.knarcraft.bookswithoutborders.utility.BookFileHelper; +import net.knarcraft.bookswithoutborders.utility.BookFileUtil; import org.junit.Test; import java.io.File; import static org.junit.Assert.assertEquals; -public class BookFileHelperTest { +public class BookFileUtilTest { @Test public void findDuplicatesTest() { @@ -17,9 +17,9 @@ public class BookFileHelperTest { files[2] = new File("test/asd/(3)book+)Crab.yml"); files[3] = new File("test/asd/(2)book+)Crab.yml"); files[4] = new File("test/asd/(1)book+)Crab.yml"); - assertEquals(4, BookFileHelper.findDuplicates(files, "book+)Crab.yml")); - assertEquals(1, BookFileHelper.findDuplicates(files, "book+)Fish.yml")); - assertEquals(0, BookFileHelper.findDuplicates(files, "book+)Horse.yml")); + assertEquals(4, BookFileUtil.findDuplicates(files, "book+)Crab.yml")); + assertEquals(1, BookFileUtil.findDuplicates(files, "book+)Fish.yml")); + assertEquals(0, BookFileUtil.findDuplicates(files, "book+)Horse.yml")); } } diff --git a/src/test/java/net/knarcraft/bookswithoutborders/util/EncryptionHelperTest.java b/src/test/java/net/knarcraft/bookswithoutborders/util/EncryptedBookUtilTest.java similarity index 57% rename from src/test/java/net/knarcraft/bookswithoutborders/util/EncryptionHelperTest.java rename to src/test/java/net/knarcraft/bookswithoutborders/util/EncryptedBookUtilTest.java index 7ec3ac6..6daae20 100644 --- a/src/test/java/net/knarcraft/bookswithoutborders/util/EncryptionHelperTest.java +++ b/src/test/java/net/knarcraft/bookswithoutborders/util/EncryptedBookUtilTest.java @@ -1,15 +1,15 @@ package net.knarcraft.bookswithoutborders.util; -import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; +import net.knarcraft.bookswithoutborders.utility.EncryptionUtil; import org.junit.Test; import static org.junit.Assert.assertEquals; -public class EncryptionHelperTest { +public class EncryptedBookUtilTest { @Test public void getNumberKeyFromStringKey() { - String numberKey = EncryptionHelper.getNumberKeyFromStringKey("hello"); + String numberKey = EncryptionUtil.getNumberKeyFromStringKey("hello"); assertEquals("104, 101, 108, 108, 111", numberKey); } diff --git a/src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanConverterTest.java b/src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanUtilTest.java similarity index 94% rename from src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanConverterTest.java rename to src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanUtilTest.java index 3d25aec..87121ce 100644 --- a/src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanConverterTest.java +++ b/src/test/java/net/knarcraft/bookswithoutborders/util/IntegerToRomanUtilTest.java @@ -2,13 +2,13 @@ package net.knarcraft.bookswithoutborders.util; import org.junit.Test; -import static net.knarcraft.bookswithoutborders.utility.IntegerToRomanConverter.getRomanNumber; +import static net.knarcraft.bookswithoutborders.utility.IntegerToRomanUtil.getRomanNumber; import static org.junit.Assert.assertEquals; /** * A test class for IntegerToRomanConverter */ -public class IntegerToRomanConverterTest { +public class IntegerToRomanUtilTest { @Test public void basicNumbersTest() {