Removes the use of string values for book directories
This commit is contained in:
@@ -4,6 +4,7 @@ import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
|||||||
import net.knarcraft.bookswithoutborders.config.translation.GiveMessage;
|
import net.knarcraft.bookswithoutborders.config.translation.GiveMessage;
|
||||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||||
import net.knarcraft.bookswithoutborders.gui.PagedBookIndex;
|
import net.knarcraft.bookswithoutborders.gui.PagedBookIndex;
|
||||||
|
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||||
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
||||||
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
||||||
import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil;
|
import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil;
|
||||||
@@ -42,7 +43,7 @@ public class CommandGive implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return giveBook(sender, arguments, false, "player", label);
|
return giveBook(sender, arguments, false, BookDirectory.PLAYER, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,7 +57,7 @@ public class CommandGive implements TabExecutor {
|
|||||||
* @return <p>True if the book was given successfully</p>
|
* @return <p>True if the book was given successfully</p>
|
||||||
*/
|
*/
|
||||||
boolean giveBook(@NotNull CommandSender sender, @NotNull String[] arguments, boolean givePublic,
|
boolean giveBook(@NotNull CommandSender sender, @NotNull String[] arguments, boolean givePublic,
|
||||||
@NotNull String folder, @NotNull String commandName) {
|
@NotNull BookDirectory folder, @NotNull String commandName) {
|
||||||
if (PagedBookIndex.displayPage(arguments, sender, givePublic, commandName)) {
|
if (PagedBookIndex.displayPage(arguments, sender, givePublic, commandName)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -135,7 +136,7 @@ public class CommandGive implements TabExecutor {
|
|||||||
* @throws NumberFormatException <p>If the number of copies given is not a number</p>
|
* @throws NumberFormatException <p>If the number of copies given is not a number</p>
|
||||||
*/
|
*/
|
||||||
private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull CommandSender sender,
|
private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull CommandSender sender,
|
||||||
@NotNull String directory, boolean givePublic) {
|
@NotNull BookDirectory directory, boolean givePublic) {
|
||||||
int argumentCount = arguments.length;
|
int argumentCount = arguments.length;
|
||||||
//Organize and parse input
|
//Organize and parse input
|
||||||
String bookIdentifier;
|
String bookIdentifier;
|
||||||
@@ -192,7 +193,7 @@ public class CommandGive implements TabExecutor {
|
|||||||
* @return <p>True if the book was successfully given</p>
|
* @return <p>True if the book was successfully given</p>
|
||||||
*/
|
*/
|
||||||
private boolean loadAndGiveBook(@NotNull String bookIdentifier, @NotNull CommandSender sender,
|
private boolean loadAndGiveBook(@NotNull String bookIdentifier, @NotNull CommandSender sender,
|
||||||
@NotNull Player receivingPlayer, boolean isSigned, @NotNull String folder,
|
@NotNull Player receivingPlayer, boolean isSigned, @NotNull BookDirectory folder,
|
||||||
@NotNull String copies) throws NumberFormatException {
|
@NotNull String copies) throws NumberFormatException {
|
||||||
String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier);
|
String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier);
|
||||||
ItemStack newBook = BookLoaderUtil.loadBook(sender, bookToLoad, isSigned, folder, Integer.parseInt(copies));
|
ItemStack newBook = BookLoaderUtil.loadBook(sender, bookToLoad, isSigned, folder, Integer.parseInt(copies));
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.bookswithoutborders.command;
|
package net.knarcraft.bookswithoutborders.command;
|
||||||
|
|
||||||
|
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
@@ -16,7 +17,7 @@ public class CommandGivePublic extends CommandGive implements TabExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
return giveBook(sender, arguments, true, "public", label);
|
return giveBook(sender, arguments, true, BookDirectory.PUBLIC, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,6 +3,7 @@ package net.knarcraft.bookswithoutborders.command;
|
|||||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||||
import net.knarcraft.bookswithoutborders.gui.PagedBookIndex;
|
import net.knarcraft.bookswithoutborders.gui.PagedBookIndex;
|
||||||
|
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||||
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
||||||
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
||||||
import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil;
|
import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeUtil;
|
||||||
@@ -31,7 +32,7 @@ public class CommandLoad implements TabExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
return loadBook(sender, arguments, "player", false, label);
|
return loadBook(sender, arguments, BookDirectory.PLAYER, false, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,7 +45,7 @@ public class CommandLoad implements TabExecutor {
|
|||||||
* @param commandName <p>The name of the command calling this method</p>
|
* @param commandName <p>The name of the command calling this method</p>
|
||||||
* @return <p>True if the book was loaded successfully</p>
|
* @return <p>True if the book was loaded successfully</p>
|
||||||
*/
|
*/
|
||||||
public boolean loadBook(@NotNull CommandSender sender, @NotNull String[] arguments, @NotNull String directory,
|
public boolean loadBook(@NotNull CommandSender sender, @NotNull String[] arguments, @NotNull BookDirectory directory,
|
||||||
boolean loadPublic, @NotNull String commandName) {
|
boolean loadPublic, @NotNull String commandName) {
|
||||||
if (!(sender instanceof Player player)) {
|
if (!(sender instanceof Player player)) {
|
||||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||||
@@ -120,7 +121,7 @@ public class CommandLoad implements TabExecutor {
|
|||||||
* @throws NumberFormatException <p>If the number of copies given is not a number</p>
|
* @throws NumberFormatException <p>If the number of copies given is not a number</p>
|
||||||
*/
|
*/
|
||||||
private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull Player player,
|
private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull Player player,
|
||||||
@NotNull String directory, boolean loadPublic) {
|
@NotNull BookDirectory directory, boolean loadPublic) {
|
||||||
int argumentCount = arguments.length;
|
int argumentCount = arguments.length;
|
||||||
String bookIdentifier = arguments[0];
|
String bookIdentifier = arguments[0];
|
||||||
int copies = 1;
|
int copies = 1;
|
||||||
@@ -158,7 +159,7 @@ public class CommandLoad implements TabExecutor {
|
|||||||
* @return <p>The loaded book(s)</p>
|
* @return <p>The loaded book(s)</p>
|
||||||
*/
|
*/
|
||||||
private boolean loadBook(@NotNull Player player, boolean loadPublic, @NotNull String bookIdentifier,
|
private boolean loadBook(@NotNull Player player, boolean loadPublic, @NotNull String bookIdentifier,
|
||||||
boolean isSigned, @NotNull String directory, int copies) {
|
boolean isSigned, @NotNull BookDirectory directory, int copies) {
|
||||||
BooksWithoutBorders.updateBooks(player, loadPublic);
|
BooksWithoutBorders.updateBooks(player, loadPublic);
|
||||||
|
|
||||||
String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier);
|
String bookToLoad = InputCleaningUtil.cleanString(bookIdentifier);
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.bookswithoutborders.command;
|
package net.knarcraft.bookswithoutborders.command;
|
||||||
|
|
||||||
|
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -15,7 +16,7 @@ public class CommandLoadPublic extends CommandLoad implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
return loadBook(sender, arguments, "public", true, label);
|
return loadBook(sender, arguments, BookDirectory.PUBLIC, true, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,6 +3,7 @@ package net.knarcraft.bookswithoutborders.listener;
|
|||||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||||
import net.knarcraft.bookswithoutborders.config.BwBConfig;
|
import net.knarcraft.bookswithoutborders.config.BwBConfig;
|
||||||
import net.knarcraft.bookswithoutborders.config.StaticMessage;
|
import net.knarcraft.bookswithoutborders.config.StaticMessage;
|
||||||
|
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||||
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
import net.knarcraft.bookswithoutborders.utility.BookLoaderUtil;
|
||||||
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
import net.knarcraft.bookswithoutborders.utility.InputCleaningUtil;
|
||||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
@@ -60,7 +61,7 @@ public class PlayerEventListener implements Listener {
|
|||||||
if (!bookName.trim().isEmpty()) {
|
if (!bookName.trim().isEmpty()) {
|
||||||
|
|
||||||
//Give the book to the player if it exists
|
//Give the book to the player if it exists
|
||||||
ItemStack newBook = BookLoaderUtil.loadBook(player, bookName, true, "public");
|
ItemStack newBook = BookLoaderUtil.loadBook(player, bookName, true, BookDirectory.PUBLIC);
|
||||||
if (newBook != null) {
|
if (newBook != null) {
|
||||||
player.getInventory().addItem(newBook);
|
player.getInventory().addItem(newBook);
|
||||||
}
|
}
|
||||||
|
@@ -270,7 +270,7 @@ public class SignEventListener implements Listener {
|
|||||||
fileName += InputCleaningUtil.stripColor(thirdLine);
|
fileName += InputCleaningUtil.stripColor(thirdLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack newBook = BookLoaderUtil.loadBook(player, fileName, true, "public");
|
ItemStack newBook = BookLoaderUtil.loadBook(player, fileName, true, BookDirectory.PUBLIC);
|
||||||
|
|
||||||
if (newBook != null) {
|
if (newBook != null) {
|
||||||
player.getInventory().addItem(newBook);
|
player.getInventory().addItem(newBook);
|
||||||
|
@@ -1,8 +1,5 @@
|
|||||||
package net.knarcraft.bookswithoutborders.state;
|
package net.knarcraft.bookswithoutborders.state;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This enum represents the different directories books can be saved in
|
* This enum represents the different directories books can be saved in
|
||||||
*/
|
*/
|
||||||
@@ -23,25 +20,6 @@ public enum BookDirectory {
|
|||||||
*/
|
*/
|
||||||
ENCRYPTED;
|
ENCRYPTED;
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the relevant book directory given a directory name
|
|
||||||
*
|
|
||||||
* @param directory <p>The directory to transform</p>
|
|
||||||
* @return <p>A book directory, or null if the given directory is empty</p>
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
public static BookDirectory getFromString(@NotNull String directory) {
|
|
||||||
if (directory.equalsIgnoreCase("public")) {
|
|
||||||
return BookDirectory.PUBLIC;
|
|
||||||
} else if (directory.equalsIgnoreCase("player")) {
|
|
||||||
return BookDirectory.PLAYER;
|
|
||||||
} else if (!directory.trim().isEmpty()) {
|
|
||||||
return BookDirectory.ENCRYPTED;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the common public/player directory based on the input
|
* Gets the common public/player directory based on the input
|
||||||
*
|
*
|
||||||
|
@@ -19,7 +19,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A utility class for loading books, and taking required cost
|
* A utility class for loading books, and taking the required cost from players
|
||||||
*/
|
*/
|
||||||
public final class BookLoaderUtil {
|
public final class BookLoaderUtil {
|
||||||
|
|
||||||
@@ -37,31 +37,10 @@ public final class BookLoaderUtil {
|
|||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static ItemStack loadBook(@NotNull CommandSender sender, @NotNull String fileName, boolean isSigned,
|
public static ItemStack loadBook(@NotNull CommandSender sender, @NotNull String fileName, boolean isSigned,
|
||||||
@NotNull String directory) {
|
@NotNull BookDirectory directory) {
|
||||||
return loadBook(sender, fileName, isSigned, directory, 1);
|
return loadBook(sender, fileName, isSigned, directory, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads the given book
|
|
||||||
*
|
|
||||||
* @param sender <p>The command sender trying to load the book</p>
|
|
||||||
* @param fileName <p>The index or file name of the book to load</p>
|
|
||||||
* @param isSigned <p>Whether to load the book as signed, and not unsigned</p>
|
|
||||||
* @param directory <p>The directory to save the book in</p>
|
|
||||||
* @param numCopies <p>The number of copies to load</p>
|
|
||||||
* @return <p>The loaded book</p>
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
public static ItemStack loadBook(@NotNull CommandSender sender, @NotNull String fileName, boolean isSigned,
|
|
||||||
@NotNull String directory, int numCopies) {
|
|
||||||
BookDirectory bookDirectory = BookDirectory.getFromString(directory);
|
|
||||||
if (bookDirectory == null) {
|
|
||||||
new FormatBuilder(Translatable.ERROR_BOOK_DIRECTORY_UNKNOWN).error(sender);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return loadBook(sender, fileName, isSigned, bookDirectory, numCopies);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the given book
|
* Loads the given book
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user