From 7a601235f5775284930650b8ee64bf6a033660c1 Mon Sep 17 00:00:00 2001 From: Sakziea Date: Mon, 6 Jul 2026 17:27:47 +0200 Subject: [PATCH 1/5] Fix Trace isolating the same Tnt shows all Tnts --- .../de/steamwar/bausystem/features/tracer/TraceManager.java | 4 ++++ .../features/tracer/rendering/dynamicflags/IsolateFlag.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index 38409347..133f9c5d 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -374,6 +374,10 @@ public class TraceManager implements Listener { isolateFlag.toggleId(record.getTntId()); } + if (isolateFlag.isEmpty() && playerTraceShowData.hasViewFlagOnly(IsolateFlag.class)) { + playerTraceShowData = new PlayerTraceShowData(BundleFilter.DEFAULT); + } + PlayerTraceShowData finalPlayerTraceShowData = playerTraceShowData; tracesByRegion.getOrDefault(region, Collections.emptyMap()).forEach((integer, trace) -> { trace.render(player, finalPlayerTraceShowData); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/dynamicflags/IsolateFlag.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/dynamicflags/IsolateFlag.java index 8c86fcaf..303e4a32 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/dynamicflags/IsolateFlag.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/dynamicflags/IsolateFlag.java @@ -51,6 +51,10 @@ public class IsolateFlag extends ViewFlag { } } + public boolean isEmpty() { + return tntToIsolate.isEmpty(); + } + @Override public Stream filter(Stream records) { if (tntToIsolate.isEmpty()) return records; From 2e795aaf8e806c9eabf84d907262e34414e7ad0d Mon Sep 17 00:00:00 2001 From: Sakziea Date: Mon, 6 Jul 2026 17:49:09 +0200 Subject: [PATCH 2/5] Fix /trace 1 still showes all the tnt of that trace --- .../src/de/steamwar/bausystem/features/tracer/TraceManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index 133f9c5d..d4dd8fdc 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -374,7 +374,7 @@ public class TraceManager implements Listener { isolateFlag.toggleId(record.getTntId()); } - if (isolateFlag.isEmpty() && playerTraceShowData.hasViewFlagOnly(IsolateFlag.class)) { + if (isolateFlag.isEmpty() && playerTraceShowData.hasViewFlagOnly(IsolateFlag.class) && records.length != 0) { playerTraceShowData = new PlayerTraceShowData(BundleFilter.DEFAULT); } From b488c4ed7cbe04836f8c2785395d285c1ce1fb4d Mon Sep 17 00:00:00 2001 From: Sakziea Date: Tue, 14 Jul 2026 19:29:12 +0200 Subject: [PATCH 3/5] Fix /trace isolate {id} showing tnt from other traces --- .../bausystem/features/tracer/TraceCommand.java | 6 +++++- .../bausystem/features/tracer/TraceManager.java | 16 ++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java index cfe50f55..e63ad554 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java @@ -153,7 +153,11 @@ public class TraceCommand extends SWCommand { @Register(value = "isolate", description = "TRACE_COMMAND_HELP_ISOLATE") public void isolate(@Validator Player player, Trace trace, @ErrorMessage("TRACE_RECORD_ID_INVALID") TNTPoint... records) { - TraceManager.instance.isolate(player, records); + if (records.length == 0) { + TraceManager.instance.isolate(player, trace, trace.getRecords().toArray(new TNTPoint[0])); + } else { + TraceManager.instance.isolate(player, trace, records); + } BauSystem.MESSAGE.send("TRACE_MESSAGE_ISOLATE", player); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index d4dd8fdc..ea594b9b 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -347,9 +347,10 @@ public class TraceManager implements Listener { * Toggles the isolated render for the given records and player * * @param player the player the trace is shown to - * @param records the record for which isolation is toggled + * @param ptrace the trace for whitch isolation is toggled + * @param records the records of the trace for which isolation is toggled */ - public void isolate(Player player, TNTPoint... records) { + public void isolate(Player player, Trace ptrace, TNTPoint... records) { unfollow(player); Region region = Region.getRegion(player.getLocation()); @@ -376,14 +377,17 @@ public class TraceManager implements Listener { if (isolateFlag.isEmpty() && playerTraceShowData.hasViewFlagOnly(IsolateFlag.class) && records.length != 0) { playerTraceShowData = new PlayerTraceShowData(BundleFilter.DEFAULT); + showDataPerRegionPerPlayer.get(region).put(player, playerTraceShowData); } PlayerTraceShowData finalPlayerTraceShowData = playerTraceShowData; tracesByRegion.getOrDefault(region, Collections.emptyMap()).forEach((integer, trace) -> { - trace.render(player, finalPlayerTraceShowData); - followerMap.getOrDefault(player, Collections.emptySet()).forEach(follower -> { - trace.render(follower, finalPlayerTraceShowData); - }); + if (trace.getUuid() == ptrace.getUuid()) { + trace.render(player, finalPlayerTraceShowData); + followerMap.getOrDefault(player, Collections.emptySet()).forEach(follower -> { + trace.render(follower, finalPlayerTraceShowData); + }); + } }); } From bf3c65c6300dfb90a5ffb12a5e18c030653773e8 Mon Sep 17 00:00:00 2001 From: Sakziea Date: Tue, 14 Jul 2026 19:47:08 +0200 Subject: [PATCH 4/5] Fix when no tnt isolated show normal --- .../steamwar/bausystem/features/tracer/TraceManager.java | 7 ++++--- .../features/tracer/rendering/PlayerTraceShowData.java | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index ea594b9b..af2e0d37 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -376,17 +376,18 @@ public class TraceManager implements Listener { } if (isolateFlag.isEmpty() && playerTraceShowData.hasViewFlagOnly(IsolateFlag.class) && records.length != 0) { - playerTraceShowData = new PlayerTraceShowData(BundleFilter.DEFAULT); - showDataPerRegionPerPlayer.get(region).put(player, playerTraceShowData); + playerTraceShowData.removeViewFlag(IsolateFlag.class); } PlayerTraceShowData finalPlayerTraceShowData = playerTraceShowData; tracesByRegion.getOrDefault(region, Collections.emptyMap()).forEach((integer, trace) -> { - if (trace.getUuid() == ptrace.getUuid()) { + if (trace.getUuid() == ptrace.getUuid() || finalPlayerTraceShowData.hasNoViewFlags()) { trace.render(player, finalPlayerTraceShowData); followerMap.getOrDefault(player, Collections.emptySet()).forEach(follower -> { trace.render(follower, finalPlayerTraceShowData); }); + } else { + trace.hide(player); } }); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/PlayerTraceShowData.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/PlayerTraceShowData.java index 40bbb238..ca34da43 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/PlayerTraceShowData.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/PlayerTraceShowData.java @@ -95,4 +95,8 @@ public class PlayerTraceShowData { public void addViewFlag(ViewFlag viewFlag) { viewFlags.put(viewFlag.getClass(), viewFlag); } + + public void removeViewFlag(Class clazz) { + viewFlags.remove(clazz); + } } From dab443b989fd393af75747c84b2c14fbff7478f2 Mon Sep 17 00:00:00 2001 From: Sakziea Date: Thu, 16 Jul 2026 16:23:52 +0200 Subject: [PATCH 5/5] Fix pullRequest comments --- .../src/de/steamwar/bausystem/features/tracer/TraceCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java index e63ad554..a40a4a62 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java @@ -154,7 +154,7 @@ public class TraceCommand extends SWCommand { @Register(value = "isolate", description = "TRACE_COMMAND_HELP_ISOLATE") public void isolate(@Validator Player player, Trace trace, @ErrorMessage("TRACE_RECORD_ID_INVALID") TNTPoint... records) { if (records.length == 0) { - TraceManager.instance.isolate(player, trace, trace.getRecords().toArray(new TNTPoint[0])); + TraceManager.instance.isolate(player, trace, trace.getRecords().toArray(TNTPoint[]::new)); } else { TraceManager.instance.isolate(player, trace, records); }