From db4f080ac80b7ec498d84d528a3583cb425e0bb8 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 31 Aug 2021 19:05:28 +0200 Subject: [PATCH] Moves the delete public command to its own file --- .../BooksWithoutBorders.java | 32 +------------------ .../command/CommandDelete.java | 27 +++++++++++----- .../command/CommandDeletePublic.java | 14 ++++++-- .../command/CommandLoad.java | 3 ++ .../command/CommandLoadPublic.java | 3 ++ src/main/resources/plugin.yml | 4 +++ 6 files changed, 42 insertions(+), 41 deletions(-) diff --git a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java index fcb2ca0..98124e0 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java @@ -84,6 +84,7 @@ public class BooksWithoutBorders extends JavaPlugin { registerCommand("decrypt", new CommandDecrypt(this), null); registerCommand("groupEncrypt", new CommandGroupEncrypt(this), null); registerCommand("delete", new CommandDelete(this), null); + registerCommand("deletePublic", new CommandDeletePublic(this), null); registerCommand("copy", new CommandCopy(this), null); registerCommand("unSign", new CommandUnSign(this), null); registerCommand("encrypt", new CommandEncrypt(this), null); @@ -516,37 +517,6 @@ public class BooksWithoutBorders extends JavaPlugin { } } - if (args[0].equalsIgnoreCase("deletePublic")) { - - if (sender instanceof Player) { - if (!sender.hasPermission("bookswithoutborders.admin")) { - sendErrorMessage(sender, " You don't have permission to use this command!"); - return false; - } - } - - //lists delete-able files - if (args.length == 1) { - loadList.put(sender.getName(), listFiles(sender, true, false)); - return true; - } - //actual deletion - if (args.length == 2) { - if (!loadList.containsKey(sender.getName())) { - sendErrorMessage(sender, "You must first use /bwb deletePublic to create a list of delete-able files!"); - return false; - } else { - if (!loadList.get(sender.getName()).isEmpty()) { - deleteBook((sender), args[1], true); - return true; - } else { - sendErrorMessage(sender, "No files available to delete!"); - return false; - } - } - } - } - sendErrorMessage(sender, "Command not recognized! Use " + commandColor + "/BwB" + errorColor + " for more info!"); } return false; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java index cd93024..95bb2a9 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java @@ -19,32 +19,43 @@ public class CommandDelete implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player player)) { + if (!(sender instanceof Player)) { BooksWithoutBorders.sendErrorMessage(sender, "This command can only be used by a player!"); return false; } + return deleteBook(sender, args, false); + } + + /** + * Deletes a book + * @param sender

The sender trying to delete the book

+ * @param args

The arguments given

+ * @param deletePublic

Whether to delete a public book

+ * @return

True if the book was deleted successfully

+ */ + boolean deleteBook(CommandSender sender, String[] args, boolean deletePublic) { //List deletable files if (args.length == 0) { - BooksWithoutBorders.loadList.put(player.getName(), booksWithoutBorders.listFiles(player, false, false)); + BooksWithoutBorders.loadList.put(sender.getName(), booksWithoutBorders.listFiles(sender, deletePublic, false)); return true; } //Delete the file if (args.length == 1) { - if (!BooksWithoutBorders.loadList.containsKey(player.getName())) { - BooksWithoutBorders.sendErrorMessage(player, "You must first use /bwb delete to create a list of delete-able files!"); + if (!BooksWithoutBorders.loadList.containsKey(sender.getName())) { + BooksWithoutBorders.sendErrorMessage(sender, "You must first use /bwb delete to create a list of delete-able files!"); return false; } else { - if (!BooksWithoutBorders.loadList.get(player.getName()).isEmpty()) { - booksWithoutBorders.deleteBook(player, args[0], false); + if (!BooksWithoutBorders.loadList.get(sender.getName()).isEmpty()) { + booksWithoutBorders.deleteBook(sender, args[0], deletePublic); return true; } else { - BooksWithoutBorders.sendErrorMessage(player, "No files available to delete!"); + BooksWithoutBorders.sendErrorMessage(sender, "No files available to delete!"); return false; } } } - BooksWithoutBorders.sendErrorMessage(player, "Incorrect number of arguments for this command!"); + BooksWithoutBorders.sendErrorMessage(sender, "Incorrect number of arguments for this command!"); return false; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePublic.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePublic.java index c544a66..dd01aba 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePublic.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePublic.java @@ -1,12 +1,22 @@ package net.knarcraft.bookswithoutborders.command; +import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -public class CommandDeletePublic implements CommandExecutor { +/** + * Command executor for the "delete public" command + */ +public class CommandDeletePublic extends CommandDelete implements CommandExecutor { + + public CommandDeletePublic(BooksWithoutBorders booksWithoutBorders) { + super(booksWithoutBorders); + } + @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - return false; + return deleteBook(sender, args, true); } + } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java index 850ff67..62b8ecb 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java @@ -7,6 +7,9 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +/** + * Command executor for the load command + */ public class CommandLoad implements CommandExecutor { private final BooksWithoutBorders booksWithoutBorders; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoadPublic.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoadPublic.java index 62787e9..9f8ebc4 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoadPublic.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoadPublic.java @@ -5,6 +5,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +/** + * Command executor for the load public command + */ public class CommandLoadPublic extends CommandLoad implements CommandExecutor { public CommandLoadPublic(BooksWithoutBorders booksWithoutBorders) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2f1af1f..e413929 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -29,6 +29,10 @@ commands: description: Deletes a book saved by the executing user usage: / permission: bookswithoutborders.delete + deletepublic: + description: Deletes a public book + usage: / + permission: bookswithoutborders.admin copy: description: Copies the held book usage: /