diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java index baa263d4..1572c1ad 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java @@ -310,6 +310,33 @@ public class Trace { render(player, viewFlags, BundleFilter.STRICT); } + /**Makes the first passed player follow the trace render of the second passed player + * + * @param player + * @param toFollow + */ + public void follow(Player player, Player toFollow){ + for(REntityServer server :serverMap.values()){ + server.removePlayer(player); + } + + serverMap.get(toFollow).addPlayer(player); + } + + /** Makes the passed player stop following any other players trace render + * + * @param player + */ + public void unfollow(Player player){ + for(REntityServer server :serverMap.values()){ + server.removePlayer(player); + } + + if(serverMap.get(player) != null){ + serverMap.get(player).addPlayer(player); + } + } + /** Hides this trail for the given player * * @param player 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 dbc6d35b..640b898b 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceCommand.java @@ -101,8 +101,24 @@ public class TraceCommand extends SWCommand { trace.renderAt(player, start, end); } } + @Register(value="share", description = "TRACE_COMMAND_HELP_SHOW") + public void share(Player player){ + //TODO Rücksprache + } + @Register(value="follow", description = "TRACE_COMMAND_HELP_SHOW") + public void follow(Player player, Player toFollow){ + for(Trace trace: manager.getAll()){ + trace.follow(player, toFollow); + } + } + @Register(value="unfollow", description = "TRACE_COMMAND_HELP_SHOW") + public void unfollow(Player player){ + for(Trace trace: manager.getAll()){ + trace.unfollow(player); + } + } @ClassMapper(value = Trace.class, local = true) public TypeMapper traceClassMapper(){ diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index c000c0b1..1ef128f5 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -149,5 +149,5 @@ public class TraceManager implements Listener { viewFlagMap.remove(player); bundleFilterMap.remove(player); - }; + } }