65 lines
2.5 KiB
Java
65 lines
2.5 KiB
Java
package net.knarcraft.paidsigns.command;
|
|
|
|
import net.knarcraft.paidsigns.PaidSigns;
|
|
import net.knarcraft.paidsigns.container.PaidSign;
|
|
import net.knarcraft.paidsigns.formatting.PaidSignsTranslatableMessage;
|
|
import net.knarcraft.paidsigns.manager.PaidSignManager;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* A representation of the command for removing a condition from a sign
|
|
*/
|
|
public class RemoveConditionCommand extends TokenizedCommand {
|
|
|
|
@Override
|
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
|
@NotNull String[] args) {
|
|
super.onCommand(sender, command, label, args);
|
|
if (argumentSize < 2) {
|
|
return false;
|
|
}
|
|
|
|
String name = arguments.get(0);
|
|
short lineNumber;
|
|
try {
|
|
lineNumber = (short) (Short.parseShort(arguments.get(1)) - 1);
|
|
if (lineNumber < 0 || lineNumber > 3) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender, PaidSignsTranslatableMessage.ERROR_INVALID_NUMBER);
|
|
return false;
|
|
}
|
|
} catch (NumberFormatException exception) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender, PaidSignsTranslatableMessage.ERROR_INVALID_NUMBER);
|
|
return false;
|
|
}
|
|
PaidSignManager signManager = PaidSigns.getInstance().getSignManager();
|
|
PaidSign sign = signManager.getPaidSign(name);
|
|
if (sign == null) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender,
|
|
PaidSignsTranslatableMessage.ERROR_PAID_SIGN_NOT_FOUND);
|
|
return false;
|
|
}
|
|
|
|
if (!sign.getConditions().containsKey(lineNumber)) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender, PaidSigns.getStringFormatter().replacePlaceholder(
|
|
PaidSignsTranslatableMessage.ERROR_NO_SUCH_CONDITION, "{line}",
|
|
String.valueOf((lineNumber + 1))));
|
|
return false;
|
|
}
|
|
|
|
sign.removeCondition(lineNumber);
|
|
try {
|
|
signManager.saveSigns();
|
|
} catch (IOException e) {
|
|
PaidSigns.getStringFormatter().displayErrorMessage(sender, PaidSignsTranslatableMessage.ERROR_EXCEPTION_OCCURRED);
|
|
return false;
|
|
}
|
|
PaidSigns.getStringFormatter().displaySuccessMessage(sender, PaidSignsTranslatableMessage.SUCCESS_REMOVED_CONDITION);
|
|
return true;
|
|
}
|
|
|
|
}
|