Changes formatting method for all commands
All checks were successful
EpicKnarvik97/Books-Without-Borders/pipeline/head This commit looks good
All checks were successful
EpicKnarvik97/Books-Without-Borders/pipeline/head This commit looks good
This commit is contained in:
@@ -9,7 +9,7 @@ import net.knarcraft.bookswithoutborders.config.translation.CostMessage;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Formatting;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.manager.EconomyManager;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -33,8 +33,6 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
|
||||
String commands;
|
||||
String commandExplanation;
|
||||
|
||||
@@ -44,16 +42,16 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
commands = getCommandInfo(bwbCommand, sender, false);
|
||||
commandExplanation = getCommandExplanation(false);
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_UNKNOWN_COMMAND);
|
||||
new FormatBuilder(Translatable.ERROR_UNKNOWN_COMMAND).error(sender);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
commands = getCommands(sender);
|
||||
commandExplanation = getCommandExplanation(true);
|
||||
}
|
||||
stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholders(
|
||||
Formatting.NEUTRAL_COMMANDS_HEADER, List.of("{bookPrice}", "{commands}", "{commandExplanation}"),
|
||||
List.of(getBookPrice(), commands, commandExplanation)));
|
||||
new FormatBuilder(Formatting.NEUTRAL_COMMANDS_HEADER).replace("{bookPrice}", getBookPrice()).
|
||||
replace("{commands}", commands).replace("{commandExplanation}", commandExplanation).
|
||||
success(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -85,20 +83,18 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
return "";
|
||||
}
|
||||
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
Material bookPriceType = config.getBookPriceType();
|
||||
double bookPriceQuantity = config.getBookPriceQuantity();
|
||||
if (bookPriceType != Material.AIR) {
|
||||
return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ITEM,
|
||||
List.of("{quantity}", "{type}"),
|
||||
List.of(String.valueOf((int) bookPriceQuantity), bookPriceType.toString()));
|
||||
return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ITEM).replace("{quantity}",
|
||||
String.valueOf((int) bookPriceQuantity)).replace("{type}", bookPriceType.toString()).build();
|
||||
} else {
|
||||
EconomyManager economyManager = BooksWithoutBorders.getConfiguration().getEconomyManager();
|
||||
if (economyManager.getEconomy() == null) {
|
||||
return BooksWithoutBorders.getStringFormatter().getUnFormattedColoredMessage(CostMessage.ERROR_VAULT_COST_BUT_UNAVAILABLE) + "\n";
|
||||
return new FormatBuilder(CostMessage.ERROR_VAULT_COST_BUT_UNAVAILABLE).build() + "\n";
|
||||
} else {
|
||||
return stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ECO,
|
||||
"{price}", economyManager.getEconomy().format(bookPriceQuantity));
|
||||
return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ECO).replace("{price}",
|
||||
economyManager.getEconomy().format(bookPriceQuantity)).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -144,8 +140,8 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
private String getCommandInfo(@NotNull BwBCommand bwBCommand, @NotNull CommandSender sender, boolean summary) {
|
||||
PluginCommand pluginCommand = BooksWithoutBorders.getInstance().getCommand(bwBCommand.toString());
|
||||
if (pluginCommand == null) {
|
||||
BooksWithoutBorders.log(Level.SEVERE, StringFormatter.replacePlaceholder(
|
||||
StaticMessage.EXCEPTION_COMMAND_NOT_REGISTERED.toString(), "{command}", bwBCommand.toString()));
|
||||
BooksWithoutBorders.log(Level.SEVERE, new FormatBuilder(StaticMessage.EXCEPTION_COMMAND_NOT_REGISTERED.toString()).
|
||||
replace("{command}", bwBCommand.toString()).build());
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -155,7 +151,6 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
return "";
|
||||
}
|
||||
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
String description;
|
||||
String aliases = "";
|
||||
String commandUsage;
|
||||
@@ -166,18 +161,18 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
} else {
|
||||
commandUsage = pluginCommand.getUsage().replace("<command>", pluginCommand.getName());
|
||||
description = pluginCommand.getDescription();
|
||||
aliases = stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_ALIASES, "{aliases}",
|
||||
String.join(",", pluginCommand.getAliases()));
|
||||
aliases = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_ALIASES).replace("{aliases}",
|
||||
String.join(",", pluginCommand.getAliases())).build();
|
||||
}
|
||||
|
||||
String commandDescription = stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND,
|
||||
List.of("{usage}", "{description}", "{aliases}"), List.of(commandUsage, description, aliases));
|
||||
String commandDescription = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND).replace("{usage}",
|
||||
commandUsage).replace("{description}", description).replace("{aliases}", aliases).build();
|
||||
|
||||
if (!summary && sender.hasPermission(Permission.ADMIN.toString())) {
|
||||
if (permission == null) {
|
||||
permission = stringFormatter.getUnFormattedColoredMessage(Formatting.NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED);
|
||||
permission = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED).build();
|
||||
}
|
||||
commandDescription += stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION, "{permission}", permission);
|
||||
commandDescription += new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION).replace("{permission}", permission).build();
|
||||
}
|
||||
return commandDescription;
|
||||
}
|
||||
@@ -190,15 +185,10 @@ public class CommandBooksWithoutBorders implements TabExecutor {
|
||||
*/
|
||||
@NotNull
|
||||
private String getCommandExplanation(boolean summary) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (summary) {
|
||||
return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND,
|
||||
List.of("{usage}", "{description}", "{aliases}"), List.of("Command", "Usage summary", ""));
|
||||
return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_SUMMARY).build();
|
||||
} else {
|
||||
return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND,
|
||||
List.of("{usage}", "{description}", "{aliases}"), List.of("Command and arguments", "Full description",
|
||||
stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_ALIASES, "{aliases}", "Alias list"))) +
|
||||
stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION, "{permission}", "Required permission");
|
||||
return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_DESCRIPTION).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -3,7 +3,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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -25,18 +25,14 @@ public class CommandClear implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
|
||||
if (!(sender instanceof Player player)) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWritableBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITABLE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CLEAR)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CLEAR)))) {
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -51,7 +47,7 @@ public class CommandClear implements TabExecutor {
|
||||
// Fallback to cleaning existing metadata
|
||||
BookMeta bookMeta = (BookMeta) heldBook.getItemMeta();
|
||||
if (bookMeta == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender);
|
||||
return false;
|
||||
}
|
||||
bookMeta.setPages("");
|
||||
@@ -60,7 +56,7 @@ public class CommandClear implements TabExecutor {
|
||||
bookMeta.setTitle(null);
|
||||
heldBook.setItemMeta(bookMeta);
|
||||
}
|
||||
stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_CLEARED);
|
||||
new FormatBuilder(Translatable.SUCCESS_CLEARED).success(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -7,7 +7,7 @@ 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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -30,23 +30,19 @@ public class CommandCopy implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_COPY)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_COPY)))) {
|
||||
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;
|
||||
}
|
||||
|
||||
if (arguments.length < 1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_COUNT_NOT_SPECIFIED);
|
||||
new FormatBuilder(Translatable.ERROR_COPY_COUNT_NOT_SPECIFIED).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -54,12 +50,12 @@ public class CommandCopy implements TabExecutor {
|
||||
ItemStack heldBook = InventoryHelper.getHeldBook(player, true);
|
||||
int copies = Integer.parseInt(arguments[0]);
|
||||
if (copies <= 0) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_NEGATIVE_AMOUNT);
|
||||
new FormatBuilder(Translatable.ERROR_COPY_NEGATIVE_AMOUNT).error(player);
|
||||
return false;
|
||||
}
|
||||
return performCopy(copies, player, heldBook);
|
||||
} catch (NumberFormatException ignored) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_INVALID_AMOUNT);
|
||||
new FormatBuilder(Translatable.ERROR_COPY_INVALID_AMOUNT).error(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -93,7 +89,7 @@ public class CommandCopy implements TabExecutor {
|
||||
}
|
||||
|
||||
heldBook.setAmount(heldBook.getAmount() + copies);
|
||||
BooksWithoutBorders.getStringFormatter().displaySuccessMessage(player, Translatable.SUCCESS_COPY);
|
||||
new FormatBuilder(Translatable.SUCCESS_COPY).success(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -124,13 +120,13 @@ public class CommandCopy implements TabExecutor {
|
||||
//Copy the vanilla behavior of refusing copying any further
|
||||
if (bookMeta.getGeneration() == BookMeta.Generation.COPY_OF_COPY ||
|
||||
bookMeta.getGeneration() == BookMeta.Generation.TATTERED) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(player, Translatable.ERROR_BOOK_COPIED_TOO_FAR);
|
||||
new FormatBuilder(Translatable.ERROR_BOOK_COPIED_TOO_FAR).error(player);
|
||||
return false;
|
||||
}
|
||||
//Make sure the player can fit the book in their inventory
|
||||
int nextAvailableSlot = player.getInventory().firstEmpty();
|
||||
if (nextAvailableSlot == -1) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(player, Translatable.ERROR_INVENTORY_FULL);
|
||||
new FormatBuilder(Translatable.ERROR_INVENTORY_FULL).error(player);
|
||||
return false;
|
||||
}
|
||||
//Make sure the player can pay for the copying
|
||||
|
@@ -6,7 +6,7 @@ import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.EncryptionHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -27,25 +27,21 @@ public class CommandDecrypt implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_DECRYPT)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_DECRYPT)))) {
|
||||
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);
|
||||
BookMeta bookMetadata = (BookMeta) heldItem.getItemMeta();
|
||||
if (bookMetadata == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -54,7 +50,7 @@ public class CommandDecrypt implements TabExecutor {
|
||||
player.hasPermission(Permission.ADMIN.toString())) {
|
||||
return adminDecrypt(player, bookMetadata);
|
||||
} else if (arguments.length == 0) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_DECRYPT_MISSING_KEY);
|
||||
new FormatBuilder(Translatable.ERROR_DECRYPT_MISSING_KEY).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -66,10 +62,10 @@ public class CommandDecrypt implements TabExecutor {
|
||||
|
||||
if (book != null) {
|
||||
InventoryHelper.setHeldWrittenBook(player, book);
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_DECRYPTED);
|
||||
new FormatBuilder(Translatable.SUCCESS_DECRYPTED).success(player);
|
||||
return true;
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_DECRYPT_FAILED);
|
||||
new FormatBuilder(Translatable.ERROR_DECRYPT_FAILED).error(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -82,11 +78,10 @@ public class CommandDecrypt implements TabExecutor {
|
||||
* @return <p>True if successful</p>
|
||||
*/
|
||||
private boolean adminDecrypt(@NotNull Player player, @NotNull BookMeta bookMetadata) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
ItemStack decrypted = EncryptionHelper.loadEncryptedBook(player, "", false, true);
|
||||
if (decrypted != null) {
|
||||
InventoryHelper.setHeldWrittenBook(player, decrypted);
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_AUTO_DECRYPTED);
|
||||
new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player);
|
||||
return true;
|
||||
} else {
|
||||
return adminDecryptLegacy(player, bookMetadata);
|
||||
@@ -101,11 +96,10 @@ public class CommandDecrypt implements TabExecutor {
|
||||
* @return <p>True if successfully decrypted</p>
|
||||
*/
|
||||
private boolean adminDecryptLegacy(@NotNull Player player, @NotNull BookMeta bookMetadata) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
File encryptedDirectory = new File(BooksWithoutBorders.getConfiguration().getEncryptedBookPath());
|
||||
String[] encryptedFiles = encryptedDirectory.list();
|
||||
if (encryptedFiles == null) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPTED_DIRECTORY_EMPTY_OR_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_ENCRYPTED_DIRECTORY_EMPTY_OR_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -125,13 +119,13 @@ public class CommandDecrypt implements TabExecutor {
|
||||
ItemStack book = EncryptionHelper.loadEncryptedBookLegacy(player, key, false);
|
||||
if (book != null) {
|
||||
InventoryHelper.setHeldWrittenBook(player, book);
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_AUTO_DECRYPTED);
|
||||
new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPTED_BOOK_UNKNOWN);
|
||||
new FormatBuilder(Translatable.ERROR_ENCRYPTED_BOOK_UNKNOWN).success(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -28,7 +28,7 @@ public class CommandDelete implements TabExecutor {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
if (!(sender instanceof Player)) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class CommandDelete implements TabExecutor {
|
||||
//Delete the file
|
||||
List<String> availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic);
|
||||
if (availableBooks.isEmpty()) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_DELETE_EMPTY);
|
||||
new FormatBuilder(Translatable.ERROR_DELETE_EMPTY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,6 @@ public class CommandDelete implements TabExecutor {
|
||||
* @param isPublic <p>Whether the book to delete is public or not</p>
|
||||
*/
|
||||
public void performBookDeletion(@NotNull CommandSender sender, @NotNull String fileName, @NotNull Boolean isPublic) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
//If the file name is an index of the load list, load the book
|
||||
try {
|
||||
int loadListIndex = Integer.parseInt(fileName);
|
||||
@@ -89,20 +88,19 @@ public class CommandDelete implements TabExecutor {
|
||||
|
||||
//Send message if no such file could be found
|
||||
if (file == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_INCORRECT_FILE_NAME);
|
||||
new FormatBuilder(Translatable.ERROR_INCORRECT_FILE_NAME).error(sender);
|
||||
return;
|
||||
}
|
||||
|
||||
//Try to delete the file
|
||||
try {
|
||||
if (file.delete()) {
|
||||
stringFormatter.displaySuccessMessage(sender,
|
||||
stringFormatter.replacePlaceholder(Translatable.SUCCESS_DELETED, "{file}", fileName));
|
||||
new FormatBuilder(Translatable.SUCCESS_DELETED).replace("{file}", fileName).success(sender);
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_DELETE_FAILED_SILENT);
|
||||
new FormatBuilder(Translatable.ERROR_DELETE_FAILED_SILENT).error(sender);
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_DELETE_FAILED_EXCEPTION);
|
||||
new FormatBuilder(Translatable.ERROR_DELETE_FAILED_EXCEPTION).error(sender);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,9 +1,8 @@
|
||||
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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -24,20 +23,19 @@ public class CommandDeletePage implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (arguments.length == 0) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NO_BOOK_PAGE);
|
||||
new FormatBuilder(Translatable.ERROR_NO_BOOK_PAGE).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldBook = InventoryHelper.getHeldBook(player);
|
||||
if (heldBook == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK);
|
||||
new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -45,19 +43,19 @@ public class CommandDeletePage implements TabExecutor {
|
||||
try {
|
||||
index = Integer.parseInt(arguments[0]) - 1;
|
||||
} catch (NumberFormatException exception) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_INVALID_BOOK_PAGE);
|
||||
new FormatBuilder(Translatable.ERROR_INVALID_BOOK_PAGE).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
BookMeta bookMeta = (BookMeta) heldBook.getItemMeta();
|
||||
if (bookMeta == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender);
|
||||
return false;
|
||||
}
|
||||
List<String> pages = new ArrayList<>(bookMeta.getPages());
|
||||
|
||||
if (index < 0 || index >= pages.size()) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_OUT_OF_RANGE_BOOK_PAGE);
|
||||
new FormatBuilder(Translatable.ERROR_OUT_OF_RANGE_BOOK_PAGE).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -65,7 +63,7 @@ public class CommandDeletePage implements TabExecutor {
|
||||
|
||||
bookMeta.setPages(pages);
|
||||
heldBook.setItemMeta(bookMeta);
|
||||
stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_PAGE_DELETED);
|
||||
new FormatBuilder(Translatable.SUCCESS_PAGE_DELETED).success(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -8,7 +8,7 @@ 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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -30,9 +30,8 @@ public class CommandEncrypt implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (performPreChecks(sender, arguments, 1, 2,
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ERROR_ENCRYPT_NO_KEY)) == null) {
|
||||
new FormatBuilder(Translatable.ERROR_ENCRYPT_NO_KEY).build()) == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -63,38 +62,35 @@ public class CommandEncrypt implements TabExecutor {
|
||||
@Nullable
|
||||
protected BookMeta performPreChecks(@NotNull CommandSender sender, @NotNull String[] arguments,
|
||||
int necessaryArguments, int optionalArguments, @NotNull String missingArgumentsError) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ENCRYPT)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ENCRYPT)))) {
|
||||
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;
|
||||
}
|
||||
|
||||
int argumentCount = arguments.length;
|
||||
if (argumentCount < necessaryArguments) {
|
||||
stringFormatter.displayErrorMessage(player, missingArgumentsError);
|
||||
new FormatBuilder(missingArgumentsError).error(player);
|
||||
return null;
|
||||
}
|
||||
if (argumentCount > necessaryArguments + optionalArguments) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_TOO_MANY_ARGUMENTS_COMMAND);
|
||||
new FormatBuilder(Translatable.ERROR_TOO_MANY_ARGUMENTS_COMMAND).error(player);
|
||||
return null;
|
||||
}
|
||||
|
||||
ItemStack heldBook = InventoryHelper.getHeldBook(player, true);
|
||||
BookMeta bookMetadata = (BookMeta) heldBook.getItemMeta();
|
||||
if (bookMetadata == null) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return null;
|
||||
}
|
||||
if (!bookMetadata.hasPages()) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPT_EMPTY);
|
||||
new FormatBuilder(Translatable.ERROR_ENCRYPT_EMPTY).error(player);
|
||||
return null;
|
||||
}
|
||||
return bookMetadata;
|
||||
|
@@ -1,10 +1,9 @@
|
||||
package net.knarcraft.bookswithoutborders.command;
|
||||
|
||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookFormatter;
|
||||
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -24,29 +23,27 @@ public class CommandFormat implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldBook = InventoryHelper.getHeldBook(player);
|
||||
if (heldBook == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK);
|
||||
new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
BookMeta meta = (BookMeta) heldBook.getItemMeta();
|
||||
|
||||
if (meta == null) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
heldBook.setItemMeta(BookFormatter.formatPages(meta));
|
||||
|
||||
stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_FORMATTED);
|
||||
|
||||
new FormatBuilder(Translatable.SUCCESS_FORMATTED).success(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -7,7 +7,7 @@ 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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
@@ -33,7 +33,7 @@ public class CommandGive implements TabExecutor {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
if (!(sender instanceof Player)) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -56,9 +56,8 @@ public class CommandGive implements TabExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (arguments.length == 1) {
|
||||
stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_NO_RECIPIENT);
|
||||
new FormatBuilder(GiveMessage.ERROR_GIVE_NO_RECIPIENT).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -132,7 +131,6 @@ public class CommandGive implements TabExecutor {
|
||||
*/
|
||||
private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull CommandSender sender,
|
||||
@NotNull String directory, boolean givePublic) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
int argumentCount = arguments.length;
|
||||
//Organize and parse input
|
||||
String bookIdentifier;
|
||||
@@ -163,13 +161,13 @@ public class CommandGive implements TabExecutor {
|
||||
//Try and find the target player
|
||||
Player receivingPlayer = booksWithoutBorders.getServer().getPlayerExact(receivingPlayerName);
|
||||
if (receivingPlayer == null) {
|
||||
stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_RECIPIENT_UNKNOWN);
|
||||
new FormatBuilder(GiveMessage.ERROR_GIVE_RECIPIENT_UNKNOWN).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
//Make sure the receiver is able to fit the book
|
||||
if (receivingPlayer.getInventory().firstEmpty() == -1) {
|
||||
stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_RECIPIENT_FULL);
|
||||
new FormatBuilder(GiveMessage.ERROR_GIVE_RECIPIENT_FULL).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -192,17 +190,16 @@ 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 {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier);
|
||||
ItemStack newBook = BookLoader.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);
|
||||
stringFormatter.displaySuccessMessage(sender, GiveMessage.SUCCESS_GIVE_SENT);
|
||||
stringFormatter.displaySuccessMessage(receivingPlayer, GiveMessage.SUCCESS_GIVE_RECEIVED);
|
||||
new FormatBuilder(GiveMessage.SUCCESS_GIVE_SENT).success(sender);
|
||||
new FormatBuilder(GiveMessage.SUCCESS_GIVE_RECEIVED).success(receivingPlayer);
|
||||
return true;
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_LOAD_FAILED);
|
||||
new FormatBuilder(GiveMessage.ERROR_GIVE_LOAD_FAILED).error(sender);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,8 @@
|
||||
package net.knarcraft.bookswithoutborders.command;
|
||||
|
||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.encryption.EncryptionStyle;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -21,14 +20,13 @@ public class CommandGroupEncrypt extends CommandEncrypt implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
BookMeta bookMetadata = performPreChecks(sender, arguments, 2, 1,
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ERROR_GROUP_ENCRYPT_ARGUMENTS_MISSING));
|
||||
new FormatBuilder(Translatable.ERROR_GROUP_ENCRYPT_ARGUMENTS_MISSING).build());
|
||||
|
||||
if (bookMetadata == null) {
|
||||
return false;
|
||||
@@ -37,7 +35,7 @@ public class CommandGroupEncrypt extends CommandEncrypt implements TabExecutor {
|
||||
//Check if book is already group encrypted
|
||||
List<String> lore = bookMetadata.getLore();
|
||||
if (bookMetadata.hasLore() && lore != null && lore.get(0).contains(" encrypted]")) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_GROUP_ENCRYPTED_ALREADY);
|
||||
new FormatBuilder(Translatable.ERROR_GROUP_ENCRYPTED_ALREADY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@@ -6,7 +6,7 @@ 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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -41,14 +41,13 @@ public class CommandLoad implements TabExecutor {
|
||||
*/
|
||||
public boolean loadBook(@NotNull CommandSender sender, @NotNull String[] arguments, @NotNull String directory,
|
||||
boolean loadPublic, @NotNull String commandName) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.getInventory().firstEmpty() == -1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_INVENTORY_FULL);
|
||||
new FormatBuilder(Translatable.ERROR_INVENTORY_FULL).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -156,7 +155,6 @@ public class CommandLoad implements TabExecutor {
|
||||
*/
|
||||
private boolean loadBook(@NotNull Player player, boolean loadPublic, @NotNull String bookIdentifier,
|
||||
boolean isSigned, @NotNull String directory, int copies) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
BooksWithoutBorders.updateBooks(player, loadPublic);
|
||||
|
||||
String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier);
|
||||
@@ -165,10 +163,10 @@ public class CommandLoad implements TabExecutor {
|
||||
ItemStack newBook = BookLoader.loadBook(player, bookToLoad, isSigned, directory, copies);
|
||||
if (newBook != null) {
|
||||
player.getInventory().addItem(newBook);
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_BOOK_LOADED);
|
||||
new FormatBuilder(Translatable.SUCCESS_BOOK_LOADED).success(player);
|
||||
return true;
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_LOAD_FAILED);
|
||||
new FormatBuilder(Translatable.ERROR_LOAD_FAILED).error(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@ import net.knarcraft.bookswithoutborders.config.StaticMessage;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.container.MigrationRequest;
|
||||
import net.knarcraft.bookswithoutborders.thread.MigrationQueueThread;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -27,13 +27,12 @@ public class CommandMigrate implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
File bookDirectory = new File(BooksWithoutBorders.getConfiguration().getBookFolder());
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_MIGRATION_STARTED);
|
||||
new FormatBuilder(Translatable.SUCCESS_MIGRATION_STARTED).neutral(player);
|
||||
Queue<MigrationRequest> filesToMigrate = new LinkedList<>();
|
||||
findFilesToMigrate(bookDirectory, filesToMigrate, player);
|
||||
BooksWithoutBorders.getMigrationQueue().addAll(filesToMigrate);
|
||||
@@ -62,8 +61,8 @@ public class CommandMigrate implements TabExecutor {
|
||||
private void findFilesToMigrate(@NotNull File folder, @NotNull Queue<MigrationRequest> queue, @NotNull Player player) {
|
||||
File[] files = folder.listFiles();
|
||||
if (files == null) {
|
||||
BooksWithoutBorders.log(Level.WARNING, StringFormatter.replacePlaceholder(
|
||||
StaticMessage.EXCEPTION_DIRECTORY_UNAVAILABLE.toString(), "{folder}", folder.getName()));
|
||||
BooksWithoutBorders.log(Level.WARNING, new FormatBuilder(StaticMessage.EXCEPTION_DIRECTORY_UNAVAILABLE.toString()).
|
||||
replace("{folder}", folder.getName()).build());
|
||||
return;
|
||||
}
|
||||
for (File file : files) {
|
||||
|
@@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command;
|
||||
|
||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -19,15 +19,14 @@ public class CommandReload implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
// Reload books
|
||||
BooksWithoutBorders.clearBookData();
|
||||
BooksWithoutBorders.updateBooks(sender, true);
|
||||
|
||||
if (BooksWithoutBorders.getConfiguration().loadConfig()) {
|
||||
stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_RELOADED);
|
||||
new FormatBuilder(Translatable.SUCCESS_RELOADED).success(sender);
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_RELOAD_FAILED);
|
||||
new FormatBuilder(Translatable.ERROR_RELOAD_FAILED).error(sender);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookToFromTextHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -49,9 +49,8 @@ public class CommandSave implements TabExecutor {
|
||||
*/
|
||||
protected boolean saveHeldBook(@NotNull CommandSender sender, @NotNull String[] arguments, boolean savePublic,
|
||||
@NotNull String command) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -61,7 +60,7 @@ public class CommandSave implements TabExecutor {
|
||||
saveBook(player, heldBook, duplicate, savePublic, command);
|
||||
return true;
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK);
|
||||
new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -77,10 +76,9 @@ public class CommandSave implements TabExecutor {
|
||||
*/
|
||||
public void saveBook(@NotNull Player player, @NotNull ItemStack heldBook, boolean overwrite,
|
||||
boolean saveToPublicFolder, @NotNull String command) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
BookMeta book = (BookMeta) heldBook.getItemMeta();
|
||||
if (book == null) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -96,7 +94,7 @@ public class CommandSave implements TabExecutor {
|
||||
String savePath = BookHelper.getBookDirectoryPathString(saveToPublicFolder ?
|
||||
BookDirectory.PUBLIC : BookDirectory.PLAYER, player);
|
||||
if (savePath == null) {
|
||||
stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_INVALID_PATH);
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_INVALID_PATH).error(player);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -105,14 +103,14 @@ public class CommandSave implements TabExecutor {
|
||||
try {
|
||||
fileName = BookHelper.getBookFile(book, player, saveToPublicFolder);
|
||||
} catch (IllegalArgumentException exception) {
|
||||
stringFormatter.displayErrorMessage(player, exception.getMessage());
|
||||
new FormatBuilder(exception.getMessage()).error(player);
|
||||
return;
|
||||
}
|
||||
|
||||
//Make sure the used folders exist
|
||||
File file = new File(savePath);
|
||||
if (!file.exists() && !file.mkdir()) {
|
||||
stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR);
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR).error(player);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -128,8 +126,7 @@ public class CommandSave implements TabExecutor {
|
||||
|
||||
//Update the relevant book list
|
||||
BooksWithoutBorders.updateBooks(player, saveToPublicFolder);
|
||||
stringFormatter.displaySuccessMessage(player,
|
||||
stringFormatter.replacePlaceholder(SaveMessage.SUCCESS_SAVED, "{fileName}", newName));
|
||||
new FormatBuilder(SaveMessage.SUCCESS_SAVED).replace("{fileName}", newName).success(player);
|
||||
} catch (IOException exception) {
|
||||
BooksWithoutBorders.log(Level.SEVERE, StaticMessage.EXCEPTION_SAVE_BOOK_FAILED.toString());
|
||||
}
|
||||
@@ -161,10 +158,9 @@ public class CommandSave implements TabExecutor {
|
||||
private String checkDuplicates(@NotNull Player player, @NotNull File directory, @NotNull String fileName,
|
||||
@NotNull String command, @NotNull String separator, int duplicateLimit,
|
||||
boolean overwrite) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
File[] foundFiles = directory.listFiles();
|
||||
if (foundFiles == null) {
|
||||
stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR);
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR).error(player);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -178,23 +174,19 @@ public class CommandSave implements TabExecutor {
|
||||
|
||||
String fullCommand = "/" + command + " true";
|
||||
|
||||
boolean isUnnamed = fileName.contains(stringFormatter.getUnFormattedColoredMessage(
|
||||
Formatting.NEUTRAL_UNKNOWN_TITLE) + separator);
|
||||
boolean isUnnamed = fileName.contains(new FormatBuilder(Formatting.NEUTRAL_UNKNOWN_TITLE).build() + separator);
|
||||
|
||||
// Skip duplicate unnamed book saving
|
||||
if (!isUnnamed && !overwrite) {
|
||||
stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_DUPLICATE_NAMED);
|
||||
stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder(
|
||||
SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED, "{command}", fullCommand));
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_DUPLICATE_NAMED).error(player);
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED).replace("{command}", fullCommand).error(player);
|
||||
return null;
|
||||
}
|
||||
|
||||
// Skip if duplicate limit is reached
|
||||
if (foundDuplicates > duplicateLimit) {
|
||||
stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder(
|
||||
SaveMessage.ERROR_SAVE_DUPLICATE_UNNAMED, "{fileName}", fileName));
|
||||
stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder(
|
||||
SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED, "{command}", fullCommand));
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_DUPLICATE_UNNAMED).replace("{fileName}", fileName).error(player);
|
||||
new FormatBuilder(SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED).replace("{command}", fullCommand).error(player);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@@ -1,10 +1,9 @@
|
||||
package net.knarcraft.bookswithoutborders.command;
|
||||
|
||||
import net.knarcraft.bookswithoutborders.BooksWithoutBorders;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.state.ItemSlot;
|
||||
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.property.ColorConversion;
|
||||
import net.knarcraft.knarlib.util.ColorHelper;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -27,22 +26,19 @@ public class CommandSetAuthor implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (arguments.length < 1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_AUTHOR_BLANK);
|
||||
new FormatBuilder(Translatable.ERROR_AUTHOR_BLANK).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_SET_AUTHOR)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_SET_AUTHOR)))) {
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -51,15 +47,14 @@ public class CommandSetAuthor implements TabExecutor {
|
||||
ItemStack heldBook = InventoryHelper.getHeldItem(player, mainHand);
|
||||
BookMeta bookMetaData = InventoryHelper.getHeldBookMetadata(player, mainHand);
|
||||
if (bookMetaData == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
String author = ColorHelper.translateColorCodes(String.join(" ", arguments), ColorConversion.RGB);
|
||||
bookMetaData.setAuthor(author);
|
||||
heldBook.setItemMeta(bookMetaData);
|
||||
stringFormatter.displaySuccessMessage(player, stringFormatter.replacePlaceholder(Translatable.SUCCESS_SET_AUTHOR,
|
||||
"{author}", author));
|
||||
new FormatBuilder(Translatable.SUCCESS_SET_AUTHOR).replace("{author}", author).success(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -9,7 +9,7 @@ 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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -33,7 +33,6 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
//Clear the current price
|
||||
if (arguments.length == 0) {
|
||||
clearItemPrice(sender);
|
||||
@@ -42,7 +41,7 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
|
||||
//Warn about missing arguments
|
||||
if (arguments.length < 2) {
|
||||
stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_NOT_SPECIFIED);
|
||||
new FormatBuilder(CostMessage.ERROR_COST_NOT_SPECIFIED).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -50,11 +49,11 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
try {
|
||||
price = Double.parseDouble(arguments[1]);
|
||||
if (price <= 0) {
|
||||
stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_QUANTITY);
|
||||
new FormatBuilder(CostMessage.ERROR_COST_INVALID_QUANTITY).error(sender);
|
||||
return false;
|
||||
}
|
||||
} catch (NumberFormatException exception) {
|
||||
stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_QUANTITY);
|
||||
new FormatBuilder(CostMessage.ERROR_COST_INVALID_QUANTITY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -62,7 +61,7 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
case "item" -> setItemPrice(sender, price);
|
||||
case "economy" -> setEconomyPrice(sender, price);
|
||||
default -> {
|
||||
stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_TYPE);
|
||||
new FormatBuilder(CostMessage.ERROR_COST_INVALID_TYPE).error(sender);
|
||||
yield false;
|
||||
}
|
||||
};
|
||||
@@ -92,15 +91,14 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
* @return <p>True if the price was changed successfully</p>
|
||||
*/
|
||||
private boolean setItemPrice(@NotNull CommandSender sender, double price) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldItem = InventoryHelper.getHeldItem(player, true);
|
||||
if (heldItem.getType() == Material.AIR) {
|
||||
stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_ITEM_MISSING);
|
||||
new FormatBuilder(CostMessage.ERROR_COST_ITEM_MISSING).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -113,9 +111,8 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
booksWithoutBorders.getConfig().set(ConfigOption.PRICE_QUANTITY.getConfigNode(), newPriceQuantity);
|
||||
booksWithoutBorders.saveConfig();
|
||||
|
||||
stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholders(
|
||||
CostMessage.SUCCESS_COST_ITEM_SET, List.of("{quantity}", "{price}"),
|
||||
List.of(String.valueOf((int) newPriceQuantity), newPriceType)));
|
||||
new FormatBuilder(CostMessage.SUCCESS_COST_ITEM_SET).replace("{quantity}",
|
||||
String.valueOf((int) newPriceQuantity)).replace("{price}", newPriceType).success(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -127,7 +124,6 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
* @return <p>True if the price was changed successfully</p>
|
||||
*/
|
||||
private boolean setEconomyPrice(@NotNull CommandSender sender, double price) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
EconomyManager economyManager = BooksWithoutBorders.getConfiguration().getEconomyManager();
|
||||
if (economyManager.getEconomy() != null) {
|
||||
BwBConfig config = BooksWithoutBorders.getConfiguration();
|
||||
@@ -138,12 +134,11 @@ public class CommandSetBookPrice implements TabExecutor {
|
||||
booksWithoutBorders.getConfig().set(ConfigOption.PRICE_QUANTITY.getConfigNode(), newPriceQuantity);
|
||||
booksWithoutBorders.saveConfig();
|
||||
|
||||
stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholder(
|
||||
CostMessage.SUCCESS_COST_ECONOMY_SET, "{cost}", economyManager.getEconomy().format(newPriceQuantity)));
|
||||
new FormatBuilder(CostMessage.SUCCESS_COST_ECONOMY_SET).replace("{cost}",
|
||||
economyManager.getEconomy().format(newPriceQuantity)).success(sender);
|
||||
return true;
|
||||
} else {
|
||||
BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender,
|
||||
StaticMessage.EXCEPTION_VAULT_PRICE_NOT_CHANGED.toString());
|
||||
new FormatBuilder(StaticMessage.EXCEPTION_VAULT_PRICE_NOT_CHANGED.toString()).error(sender);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@ import net.knarcraft.bookswithoutborders.config.translation.BookshelfMessage;
|
||||
import net.knarcraft.bookswithoutborders.config.translation.Translatable;
|
||||
import net.knarcraft.bookswithoutborders.container.Bookshelf;
|
||||
import net.knarcraft.bookswithoutborders.handler.BookshelfHandler;
|
||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
@@ -28,15 +28,14 @@ public class CommandSetBookshelfData implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
Block targetBlock = player.getTargetBlockExact(7);
|
||||
if (targetBlock == null || targetBlock.getType() != Material.CHISELED_BOOKSHELF) {
|
||||
stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NOT_FOUND);
|
||||
new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NOT_FOUND).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -48,9 +47,9 @@ public class CommandSetBookshelfData implements TabExecutor {
|
||||
if (bookshelf != null) {
|
||||
shelfHandler.unregisterBookshelf(bookshelf);
|
||||
shelfHandler.save();
|
||||
stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_DATA_DELETED);
|
||||
new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_DATA_DELETED).success(sender);
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NOT_REGISTERED);
|
||||
new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NOT_REGISTERED).error(sender);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
@@ -73,16 +72,16 @@ public class CommandSetBookshelfData implements TabExecutor {
|
||||
bookshelf.setTitle(builder.toString());
|
||||
}
|
||||
shelfHandler.save();
|
||||
stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_TITLE_SET);
|
||||
new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_TITLE_SET).success(sender);
|
||||
return true;
|
||||
case "lore":
|
||||
if (bookshelf == null) {
|
||||
stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NAME_REQUIRED);
|
||||
new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NAME_REQUIRED).error(sender);
|
||||
} else {
|
||||
List<String> loreParts = Arrays.asList(builder.toString().split(BooksWithoutBorders.getConfiguration().getLoreSeparator()));
|
||||
bookshelf.setLore(loreParts);
|
||||
shelfHandler.save();
|
||||
stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_LORE_SET);
|
||||
new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_LORE_SET).success(sender);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@@ -1,9 +1,8 @@
|
||||
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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -24,22 +23,19 @@ public class CommandSetGeneration implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CHANGE_GENERATION)),
|
||||
stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
|
||||
stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CHANGE_GENERATION)))) {
|
||||
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;
|
||||
}
|
||||
|
||||
if (arguments.length < 1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_GENERATION_NOT_SPECIFIED);
|
||||
new FormatBuilder(Translatable.ERROR_GENERATION_NOT_SPECIFIED).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -47,7 +43,7 @@ public class CommandSetGeneration implements TabExecutor {
|
||||
try {
|
||||
generation = BookMeta.Generation.valueOf(arguments[0]);
|
||||
} catch (IllegalArgumentException exception) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_GENERATION_INVALID);
|
||||
new FormatBuilder(Translatable.ERROR_GENERATION_INVALID).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -56,10 +52,10 @@ public class CommandSetGeneration implements TabExecutor {
|
||||
if (bookMeta != null) {
|
||||
bookMeta.setGeneration(generation);
|
||||
heldBook.setItemMeta(bookMeta);
|
||||
stringFormatter.displayErrorMessage(player, Translatable.SUCCESS_GENERATION_CHANGED);
|
||||
new FormatBuilder(Translatable.SUCCESS_GENERATION_CHANGED).success(player);
|
||||
return true;
|
||||
} else {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -3,7 +3,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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.property.ColorConversion;
|
||||
import net.knarcraft.knarlib.util.ColorHelper;
|
||||
import org.bukkit.Material;
|
||||
@@ -27,20 +27,19 @@ public class CommandSetLore implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (arguments.length < 1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_LORE_EMPTY);
|
||||
new FormatBuilder(Translatable.ERROR_LORE_EMPTY).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldItem = InventoryHelper.getHeldItem(player, true);
|
||||
if (heldItem.getType() == Material.AIR) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_NO_ITEM);
|
||||
new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -54,12 +53,12 @@ public class CommandSetLore implements TabExecutor {
|
||||
//Update lore
|
||||
ItemMeta meta = heldItem.getItemMeta();
|
||||
if (meta == null) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
meta.setLore(newLore);
|
||||
heldItem.setItemMeta(meta);
|
||||
stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_LORE_SET);
|
||||
new FormatBuilder(Translatable.SUCCESS_LORE_SET).success(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -1,9 +1,8 @@
|
||||
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.knarlib.formatting.StringFormatter;
|
||||
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||
import net.knarcraft.knarlib.property.ColorConversion;
|
||||
import net.knarcraft.knarlib.util.ColorHelper;
|
||||
import org.bukkit.Material;
|
||||
@@ -27,20 +26,19 @@ public class CommandSetTitle implements TabExecutor {
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] arguments) {
|
||||
StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
|
||||
if (!(sender instanceof Player player)) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
|
||||
new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (arguments.length < 1) {
|
||||
stringFormatter.displayErrorMessage(player, Translatable.ERROR_TITLE_EMPTY);
|
||||
new FormatBuilder(Translatable.ERROR_TITLE_EMPTY).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack heldItem = InventoryHelper.getHeldItem(player, true);
|
||||
if (heldItem.getType() == Material.AIR) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NO_ITEM);
|
||||
new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -49,7 +47,7 @@ public class CommandSetTitle implements TabExecutor {
|
||||
|
||||
ItemMeta itemMetadata = heldItem.getItemMeta();
|
||||
if (itemMetadata == null) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
|
||||
new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -57,7 +55,7 @@ public class CommandSetTitle implements TabExecutor {
|
||||
ItemMeta newMetaData;
|
||||
if (heldItem.getType() == Material.WRITTEN_BOOK) {
|
||||
if (title.length() > 32) {
|
||||
stringFormatter.displayErrorMessage(sender, Translatable.ERROR_TITLE_LENGTH);
|
||||
new FormatBuilder(Translatable.ERROR_TITLE_LENGTH).error(player);
|
||||
return false;
|
||||
}
|
||||
BookMeta bookMetadata = (BookMeta) itemMetadata;
|
||||
@@ -70,8 +68,7 @@ public class CommandSetTitle implements TabExecutor {
|
||||
|
||||
//Set the new metadata
|
||||
heldItem.setItemMeta(newMetaData);
|
||||
stringFormatter.displaySuccessMessage(sender,
|
||||
stringFormatter.replacePlaceholder(Translatable.SUCCESS_TITLE_SET, "{title}", title));
|
||||
new FormatBuilder(Translatable.SUCCESS_TITLE_SET).replace("{title}", title).success(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -28,6 +28,16 @@ public enum Formatting implements TranslatableMessage {
|
||||
*/
|
||||
NEUTRAL_COMMANDS_COMMAND,
|
||||
|
||||
/**
|
||||
* The format used for explaining command summary elements
|
||||
*/
|
||||
NEUTRAL_COMMANDS_SUMMARY,
|
||||
|
||||
/**
|
||||
* The format used for explaining command description elements
|
||||
*/
|
||||
NEUTRAL_COMMANDS_DESCRIPTION,
|
||||
|
||||
/**
|
||||
* The string used when displaying that a command requires no permission
|
||||
*/
|
||||
|
@@ -130,6 +130,8 @@ en:
|
||||
NEUTRAL_COMMANDS_BOOK_PRICE_ECO: "\n&c[{price} is required to create a book]"
|
||||
NEUTRAL_COMMANDS_BOOK_PRICE_ITEM: "&c[{quantity} {type} (s) are required to create a book]\n"
|
||||
NEUTRAL_COMMANDS_COMMAND: "\n&e{usage}{aliases}: &a{description}"
|
||||
NEUTRAL_COMMANDS_SUMMARY: "\n&eCommand: &aUsage summary"
|
||||
NEUTRAL_COMMANDS_DESCRIPTION: "\n&eCommand and arguments &f(&bAlias list&f): &aFull description &7{Required permission}"
|
||||
NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED: "None"
|
||||
NEUTRAL_COMMANDS_COMMAND_PERMISSION: " &7{{permission}}"
|
||||
NEUTRAL_COMMANDS_ALIASES: " &f(&b{aliases}&f)"
|
||||
|
Reference in New Issue
Block a user