Makes deletebook support filenames with spaces
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:
@@ -5,6 +5,7 @@ import net.knarcraft.bookswithoutborders.gui.PagedBookIndex;
|
||||
import net.knarcraft.bookswithoutborders.state.BookDirectory;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
||||
import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper;
|
||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -46,23 +47,22 @@ public class CommandDelete implements TabExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
//TODO: Add parsing of books containing spaces
|
||||
if (arguments.length < 1) {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "Incorrect number of arguments for this command!");
|
||||
return false;
|
||||
}
|
||||
|
||||
//Delete the file
|
||||
if (arguments.length == 1) {
|
||||
List<String> availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic);
|
||||
if (!availableBooks.isEmpty()) {
|
||||
performBookDeletion(sender, arguments[0], deletePublic);
|
||||
//Update the book list
|
||||
BooksWithoutBorders.updateBooks(sender, deletePublic);
|
||||
return true;
|
||||
} else {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "No files available to delete!");
|
||||
return false;
|
||||
}
|
||||
List<String> availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic);
|
||||
if (availableBooks.isEmpty()) {
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "No files available to delete!");
|
||||
return false;
|
||||
}
|
||||
BooksWithoutBorders.sendErrorMessage(sender, "Incorrect number of arguments for this command!");
|
||||
return false;
|
||||
|
||||
performBookDeletion(sender, InputCleaningHelper.mergeArguments(arguments, 0), deletePublic);
|
||||
//Update the book list
|
||||
BooksWithoutBorders.updateBooks(sender, deletePublic);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,18 +116,24 @@ public class CommandDelete implements TabExecutor {
|
||||
* Performs tab completion
|
||||
*
|
||||
* @param sender <p>The sender of the command</p>
|
||||
* @param args <p>The arguments given</p>
|
||||
* @param arguments <p>The arguments given</p>
|
||||
* @param deletePublic <p>Whether to delete a public book</p>
|
||||
* @return <p>A list of available arguments</p>
|
||||
*/
|
||||
@NotNull
|
||||
protected List<String> doTabCompletion(@NotNull CommandSender sender, @NotNull String[] args, boolean deletePublic) {
|
||||
int argumentCount = args.length;
|
||||
if (argumentCount == 1) {
|
||||
return TabCompletionHelper.filterMatchingContains(BooksWithoutBorders.getAvailableBooks(sender, deletePublic),
|
||||
args[0]);
|
||||
protected List<String> doTabCompletion(@NotNull CommandSender sender, @NotNull String[] arguments, boolean deletePublic) {
|
||||
List<String> filtered = TabCompletionHelper.filterMatchingContains(
|
||||
BooksWithoutBorders.getAvailableBooks(sender, deletePublic),
|
||||
InputCleaningHelper.mergeArguments(arguments, 0));
|
||||
if (arguments.length > 1) {
|
||||
List<String> cleaned = new ArrayList<>();
|
||||
for (String name : filtered) {
|
||||
String[] parts = name.split(" ");
|
||||
cleaned.add(parts[parts.length - 1]);
|
||||
}
|
||||
return cleaned;
|
||||
}
|
||||
return new ArrayList<>();
|
||||
return filtered;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user