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.state.BookDirectory;
|
||||||
import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
|
import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
|
||||||
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
import net.knarcraft.bookswithoutborders.utility.BookHelper;
|
||||||
|
import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper;
|
||||||
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
import net.knarcraft.knarlib.util.TabCompletionHelper;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -46,23 +47,22 @@ public class CommandDelete implements TabExecutor {
|
|||||||
return true;
|
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
|
//Delete the file
|
||||||
if (arguments.length == 1) {
|
List<String> availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic);
|
||||||
List<String> availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic);
|
if (availableBooks.isEmpty()) {
|
||||||
if (!availableBooks.isEmpty()) {
|
BooksWithoutBorders.sendErrorMessage(sender, "No files available to delete!");
|
||||||
performBookDeletion(sender, arguments[0], deletePublic);
|
return false;
|
||||||
//Update the book list
|
|
||||||
BooksWithoutBorders.updateBooks(sender, deletePublic);
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
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
|
* Performs tab completion
|
||||||
*
|
*
|
||||||
* @param sender <p>The sender of the command</p>
|
* @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>
|
* @param deletePublic <p>Whether to delete a public book</p>
|
||||||
* @return <p>A list of available arguments</p>
|
* @return <p>A list of available arguments</p>
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
protected List<String> doTabCompletion(@NotNull CommandSender sender, @NotNull String[] args, boolean deletePublic) {
|
protected List<String> doTabCompletion(@NotNull CommandSender sender, @NotNull String[] arguments, boolean deletePublic) {
|
||||||
int argumentCount = args.length;
|
List<String> filtered = TabCompletionHelper.filterMatchingContains(
|
||||||
if (argumentCount == 1) {
|
BooksWithoutBorders.getAvailableBooks(sender, deletePublic),
|
||||||
return TabCompletionHelper.filterMatchingContains(BooksWithoutBorders.getAvailableBooks(sender, deletePublic),
|
InputCleaningHelper.mergeArguments(arguments, 0));
|
||||||
args[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