62 lines
2.2 KiB
Java
62 lines
2.2 KiB
Java
package net.knarcraft.paidsigns.command;
|
|
|
|
import net.knarcraft.paidsigns.PaidSigns;
|
|
import net.knarcraft.paidsigns.formatting.PaidSignsTranslatableMessage;
|
|
import net.knarcraft.paidsigns.utility.PaidSignsTabCompleteHelper;
|
|
import net.knarcraft.paidsigns.utility.Tokenizer;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.command.TabExecutor;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* A representation of the command for removing a paid sign
|
|
*/
|
|
public class RemoveTabCommand implements TabExecutor {
|
|
|
|
@Override
|
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
|
@NotNull String[] args) {
|
|
List<String> arguments = Tokenizer.tokenize(String.join(" ", args));
|
|
if (arguments.size() < 1) {
|
|
return false;
|
|
}
|
|
String name = arguments.get(0);
|
|
|
|
try {
|
|
if (PaidSigns.getInstance().getSignManager().removePaidSign(name)) {
|
|
PaidSigns.getStringFormatter().displaySuccessMessage(sender,
|
|
PaidSignsTranslatableMessage.SUCCESS_REMOVED_PAID_SIGN);
|
|
} else {
|
|
PaidSigns.getStringFormatter().displaySuccessMessage(sender,
|
|
PaidSignsTranslatableMessage.ERROR_PAID_SIGN_NOT_FOUND);
|
|
}
|
|
return true;
|
|
} catch (IOException e) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender,
|
|
PaidSignsTranslatableMessage.ERROR_EXCEPTION_OCCURRED);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias,
|
|
@NotNull String[] args) {
|
|
List<String> arguments = Tokenizer.tokenize(String.join(" ", args));
|
|
int argumentSize = args[args.length - 1].isEmpty() ? arguments.size() : arguments.size() - 1;
|
|
|
|
if (argumentSize < 1) {
|
|
return PaidSignsTabCompleteHelper.getPaidSignNames();
|
|
} else {
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
|
|
}
|