diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java index a236d8b8..882d300e 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java @@ -46,6 +46,9 @@ import org.bukkit.entity.Player; import java.util.*; import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; @Linked(LinkageType.COMMAND) public class TraceCommand extends SWCommand { @@ -83,16 +86,19 @@ public class TraceCommand extends SWCommand { showModeParameterTypeSet.add(showModeParameterTypesMap.get(previousArgument)); } showModeParameterTypeSet.remove(null); + + Set removed = showModeParameterTypeSet.stream() + .map(ShowModeParameterType::getRemoved) + .map(Supplier::get) + .flatMap(Arrays::stream) + .collect(Collectors.toSet()); + List tabCompletes = new ArrayList<>(); for (Map.Entry> entry : showModeParameterTypeListMap.entrySet()) { - if ((showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_XZ) || showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_Y)) && entry.getKey() == ShowModeParameterType.ADVANCED) { - continue; - } - if (showModeParameterTypeSet.contains(entry.getKey())) { + if (removed.contains(entry.getKey()) || showModeParameterTypeSet.contains(entry.getKey())) { continue; } tabCompletes.addAll(entry.getValue()); - showModeParameterTypeSet.addAll(Arrays.asList(entry.getKey().getRemoved().get())); } return tabCompletes; } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/show/ShowModeParameterType.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/show/ShowModeParameterType.java index 5c19d23a..5b7b7a0e 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/show/ShowModeParameterType.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/show/ShowModeParameterType.java @@ -35,7 +35,7 @@ public enum ShowModeParameterType { ADVANCED(showModeParameter -> { showModeParameter.setInterpolate_Y(true); showModeParameter.setInterpolate_XZ(true); - }, Arrays.asList("-advanced", "-a"), "INTERPOLATE_Y", "INTERPOLATE_XZ"), + }, Arrays.asList("-advanced", "-a", "advanced"), "INTERPOLATE_Y", "INTERPOLATE_XZ"), EXPLODE(showModeParameter -> showModeParameter.setExplodeOnly(true), Arrays.asList("-explode", "-explodeonly")), TICKS(showModeParameter -> showModeParameter.setTicks(true), Arrays.asList("-ticks", "-t"));