Implements #37 and improves material tab-completion

This commit is contained in:
2024-05-16 13:14:33 +02:00
parent bfc0eb7334
commit d101c7ed02
23 changed files with 486 additions and 76 deletions

View File

@@ -7,6 +7,7 @@ import net.knarcraft.minigames.arena.dropper.DropperArenaEditableProperty;
import net.knarcraft.minigames.command.EditArenaCommand;
import net.knarcraft.minigames.config.DropperConfiguration;
import net.knarcraft.minigames.config.MiniGameMessage;
import net.knarcraft.minigames.util.InputValidationHelper;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -90,6 +91,10 @@ public class EditDropperArenaCommand extends EditArenaCommand {
case NAME -> arena.setName(value);
case EXIT_LOCATION -> arena.setExitLocation(parseLocation(player, value));
case MAX_PLAYERS -> arena.setMaxPlayers(parseMaxPlayers(value));
case ALLOWED_DAMAGE_CAUSES ->
arena.setAllowedDamageCauses(InputValidationHelper.parseDamageCauses(asSet(value)));
case LOSS_TRIGGER_DAMAGE_CAUSES ->
arena.setLossTriggerDamageCauses(InputValidationHelper.parseDamageCauses(asSet(value)));
};
}

View File

@@ -1,5 +1,6 @@
package net.knarcraft.minigames.command.dropper;
import net.knarcraft.minigames.arena.EditablePropertyType;
import net.knarcraft.minigames.arena.dropper.DropperArenaEditableProperty;
import net.knarcraft.minigames.util.TabCompleteHelper;
import org.bukkit.command.Command;
@@ -30,8 +31,14 @@ public class EditDropperArenaTabCompleter implements TabCompleter {
if (property == null) {
return new ArrayList<>();
}
return filterMatchingContains(TabCompleteHelper.getTabCompleteSuggestions(property.getPropertyType()),
arguments[2]);
EditablePropertyType propertyType = property.getPropertyType();
if (propertyType == EditablePropertyType.MATERIAL_LIST ||
propertyType == EditablePropertyType.DAMAGE_CAUSE_LIST) {
return TabCompleteHelper.getListCompleteSuggestions(propertyType, arguments[2]);
} else {
return filterMatchingContains(TabCompleteHelper.getTabCompleteSuggestions(propertyType), arguments[2]);
}
} else {
return new ArrayList<>();
}