Adds various improvements, fixes and a new feature
Adds and option to match any paid sign condition instead of all conditions Adds checks for whether line indices are outside the allowed range Disallows any invalid regular expressions in sign conditions
This commit is contained in:
@ -45,26 +45,31 @@ public class AddCommand extends TokenizedCommand {
|
||||
if (argumentSize > 4) {
|
||||
ignoreColor = OptionState.fromString(arguments.get(4));
|
||||
}
|
||||
boolean matchAnyCondition = false;
|
||||
if (argumentSize > 5) {
|
||||
matchAnyCondition = Boolean.parseBoolean(arguments.get(5));
|
||||
}
|
||||
|
||||
return createPaidSign(sender, signName, cost, permission, ignoreCase, ignoreColor);
|
||||
return createPaidSign(sender, signName, cost, permission, ignoreCase, ignoreColor, matchAnyCondition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new paid sign with the given user input
|
||||
*
|
||||
* @param sender <p>The command sender that called the add command</p>
|
||||
* @param signName <p>The name of the new paid sign</p>
|
||||
* @param cost <p>The cost of the new paid sign</p>
|
||||
* @param permission <p>The permission required for creating the sign represented by the paid sign</p>
|
||||
* @param ignoreCase <p>Whether to ignore case for the paid sign's conditions</p>
|
||||
* @param ignoreColor <p>Whether to ignore color for the paid sign's conditions</p>
|
||||
* @param sender <p>The command sender that called the add command</p>
|
||||
* @param signName <p>The name of the new paid sign</p>
|
||||
* @param cost <p>The cost of the new paid sign</p>
|
||||
* @param permission <p>The permission required for creating the sign represented by the paid sign</p>
|
||||
* @param ignoreCase <p>Whether to ignore case for the paid sign's conditions</p>
|
||||
* @param ignoreColor <p>Whether to ignore color for the paid sign's conditions</p>
|
||||
* @param matchAnyCondition <p>Whether to treat any matching condition as a sign match</p>
|
||||
* @return <p>True if the paid sign was successfully created and registered</p>
|
||||
*/
|
||||
private boolean createPaidSign(CommandSender sender, String signName, double cost, String permission,
|
||||
OptionState ignoreCase, OptionState ignoreColor) {
|
||||
OptionState ignoreCase, OptionState ignoreColor, boolean matchAnyCondition) {
|
||||
PaidSignManager manager = PaidSigns.getInstance().getSignManager();
|
||||
try {
|
||||
PaidSign sign = new PaidSign(signName, cost, permission, ignoreCase, ignoreColor);
|
||||
PaidSign sign = new PaidSign(signName, cost, permission, ignoreCase, ignoreColor, matchAnyCondition);
|
||||
if (manager.getPaidSign(signName) != null) {
|
||||
sender.sendMessage(StringFormatter.getTranslatedErrorMessage(TranslatableMessage.ERROR_NAME_DUPLICATE));
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user