From c03fbb65e67fe67304c58e5d6fb0990095827b1a Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Fri, 1 Mar 2024 23:06:36 +0100 Subject: [PATCH] Refactored view flag to be abstract class --- .../features/tracer/TraceCommand.java | 16 ++++++----- .../features/tracer/rendering/ViewFlag.java | 27 ++++++++++++------- 2 files changed, 28 insertions(+), 15 deletions(-) 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 f2f05237..95954c98 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java @@ -101,18 +101,22 @@ public class TraceCommand extends SWCommand { return new TypeMapper() { @Override public ViewFlag map(CommandSender commandSender, String[] previousArguments, String s) { - for(ViewFlag filter: ViewFlag.values()) { - if (s.equals("--" + filter.toString().toLowerCase())) - return filter; + for(ViewFlag flag: ViewFlag.flags) { + if (s.equals("--" + flag.name)) + return flag; + + for(String alias: flag.aliases) + if (s.equals("--" + alias)) + return flag; } return null; } @Override public Collection tabCompletes(CommandSender sender, PreviousArguments previousArguments, String s) { - return Arrays.stream(ViewFlag.values()) - .map(Enum::toString) - .map(string -> "--" + string.toLowerCase()) + return ViewFlag.flags.stream() + .map(viewFlag -> viewFlag.name) + .map(name -> "--" + name) .collect(Collectors.toList()); } }; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/ViewFlag.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/ViewFlag.java index 92726c26..04833f09 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/ViewFlag.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/ViewFlag.java @@ -28,14 +28,7 @@ import java.util.List; import java.util.function.BiConsumer; import java.util.function.UnaryOperator; -public enum ViewFlag { - EXPLOSION((List records) ->{ - List ret = new ArrayList<>(); - for(TNTRecord record : records) - if(record.isExplosion()) - ret.add(record); - return ret; - }, (REntityServer server , List entities) -> {}); +public abstract class ViewFlag { /** * The filtering part of the flag @@ -47,8 +40,24 @@ public enum ViewFlag { */ public final BiConsumer> modify; - ViewFlag(UnaryOperator> filter, BiConsumer> modify) { + /** + * Name of the flag + */ + public final String name; + + /** + * Aliases of the flag + */ + public final String[] aliases; + + public static final List flags = new ArrayList<>(); + + public ViewFlag(UnaryOperator> filter, BiConsumer> modify, boolean isStatic, String name, String... aliases) { this.filter = filter; this.modify = modify; + this.name = name; + this.aliases = aliases; + if(isStatic) + flags.add(this); } }