Fixes some bugs in the edit command
Adds missing super call to EditTabCompleter Adds missing super call to EditCommand Fixes the index of an argument during tab completion Fixes a bug that caused conditions to be lost when a paid sign is changed
This commit is contained in:
parent
3e31c8c648
commit
c6d3a771c3
@ -14,6 +14,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A representation of the command for editing a new paid sign
|
* A representation of the command for editing a new paid sign
|
||||||
@ -23,6 +24,7 @@ public class EditCommand extends TokenizedCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] args) {
|
@NotNull String[] args) {
|
||||||
|
super.onCommand(sender, command, label, args);
|
||||||
if (argumentSize < 3) {
|
if (argumentSize < 3) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -122,9 +124,16 @@ public class EditCommand extends TokenizedCommand {
|
|||||||
sign.matchAnyCondition();
|
sign.matchAnyCondition();
|
||||||
double cost = property == PaidSignProperty.COST ? Double.parseDouble(newValue) : sign.getCost();
|
double cost = property == PaidSignProperty.COST ? Double.parseDouble(newValue) : sign.getCost();
|
||||||
String permission = property == PaidSignProperty.PERMISSION ? newValue : sign.getPermission();
|
String permission = property == PaidSignProperty.PERMISSION ? newValue : sign.getPermission();
|
||||||
|
Map<Short, PaidSignCondition> conditions = sign.getConditions();
|
||||||
|
|
||||||
PaidSignManager manager = PaidSigns.getInstance().getSignManager();
|
PaidSignManager manager = PaidSigns.getInstance().getSignManager();
|
||||||
PaidSign updatedSign = new PaidSign(signName, cost, permission, ignoreCase, ignoreColor, matchAnyCondition);
|
PaidSign updatedSign = new PaidSign(signName, cost, permission, ignoreCase, ignoreColor, matchAnyCondition);
|
||||||
|
for (short line : conditions.keySet()) {
|
||||||
|
PaidSignCondition condition = conditions.get(line);
|
||||||
|
updatedSign.addCondition(line, condition.getStringToMatch(), condition.executeRegex(),
|
||||||
|
OptionState.getFromBoolean(condition.ignoreCase()),
|
||||||
|
OptionState.getFromBoolean(condition.ignoreColor()));
|
||||||
|
}
|
||||||
manager.removePaidSign(sign.getName());
|
manager.removePaidSign(sign.getName());
|
||||||
manager.addPaidSign(updatedSign);
|
manager.addPaidSign(updatedSign);
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ public class EditTabCompleter extends TokenizedTabCompleter {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] args) {
|
@NotNull String[] args) {
|
||||||
|
super.onTabComplete(sender, command, label, args);
|
||||||
if (propertyExampleValues == null) {
|
if (propertyExampleValues == null) {
|
||||||
initializePropertyExampleValues();
|
initializePropertyExampleValues();
|
||||||
initializeConditionPropertyExampleValues();
|
initializeConditionPropertyExampleValues();
|
||||||
@ -73,7 +74,7 @@ public class EditTabCompleter extends TokenizedTabCompleter {
|
|||||||
* @return <p>The tab complete options to give to users</p>
|
* @return <p>The tab complete options to give to users</p>
|
||||||
*/
|
*/
|
||||||
private List<String> tabCompleteSignLine(@NotNull PaidSign sign) {
|
private List<String> tabCompleteSignLine(@NotNull PaidSign sign) {
|
||||||
short signLine = (short) (Short.parseShort(arguments.get(2)) - 1);
|
short signLine = (short) (Short.parseShort(arguments.get(1)) - 1);
|
||||||
//Refuse to autocomplete if invalid input is given
|
//Refuse to autocomplete if invalid input is given
|
||||||
if (signLine < 0 || signLine > 3 || sign.getConditions().get(signLine) == null) {
|
if (signLine < 0 || signLine > 3 || sign.getConditions().get(signLine) == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package net.knarcraft.paidsigns.command;
|
package net.knarcraft.paidsigns.command;
|
||||||
|
|
||||||
import net.knarcraft.paidsigns.PaidSigns;
|
import net.knarcraft.paidsigns.PaidSigns;
|
||||||
import net.knarcraft.paidsigns.container.PaidSign;
|
|
||||||
import net.knarcraft.paidsigns.formatting.StringFormatter;
|
import net.knarcraft.paidsigns.formatting.StringFormatter;
|
||||||
import net.knarcraft.paidsigns.formatting.TranslatableMessage;
|
import net.knarcraft.paidsigns.formatting.TranslatableMessage;
|
||||||
|
import net.knarcraft.paidsigns.utility.TabCompleteHelper;
|
||||||
import net.knarcraft.paidsigns.utility.Tokenizer;
|
import net.knarcraft.paidsigns.utility.Tokenizer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -14,7 +14,6 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A representation of the command for removing a paid sign
|
* A representation of the command for removing a paid sign
|
||||||
@ -53,12 +52,7 @@ public class RemoveTabCommand implements TabExecutor {
|
|||||||
int argumentSize = args[args.length - 1].isEmpty() ? arguments.size() : arguments.size() - 1;
|
int argumentSize = args[args.length - 1].isEmpty() ? arguments.size() : arguments.size() - 1;
|
||||||
|
|
||||||
if (argumentSize < 1) {
|
if (argumentSize < 1) {
|
||||||
Map<String, PaidSign> allPaidSigns = PaidSigns.getInstance().getSignManager().getAllPaidSigns();
|
return TabCompleteHelper.getPaidSignNames();
|
||||||
List<String> signNames = new ArrayList<>();
|
|
||||||
for (String name : allPaidSigns.keySet()) {
|
|
||||||
signNames.add("\"" + name + "\"");
|
|
||||||
}
|
|
||||||
return signNames;
|
|
||||||
} else {
|
} else {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ commands:
|
|||||||
aliases:
|
aliases:
|
||||||
- eps
|
- eps
|
||||||
description: Edits a property of a paid sign or a paid sign condition
|
description: Edits a property of a paid sign or a paid sign condition
|
||||||
usage: /<ommand> <sign name> <property>/<line number> [new value]/<property> [new value]
|
usage: /<command> <sign name> <property>/<line number> [new value]/<property> [new value]
|
||||||
permission: paidsigns.manage
|
permission: paidsigns.manage
|
||||||
removepaidsigncondition:
|
removepaidsigncondition:
|
||||||
aliases:
|
aliases:
|
||||||
|
Loading…
Reference in New Issue
Block a user