Trace Refactor #233
@ -237,6 +237,13 @@ public class Trace { // TODO: Add UUID for file saving and so on!
|
|||||||
entityServer.close();
|
entityServer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void hide() {
|
||||||
|
entityServerMap.forEach((player, entityServer) -> {
|
||||||
|
entityServer.close();
|
||||||
|
});
|
||||||
|
entityServerMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Trace{" +
|
return "Trace{" +
|
||||||
|
@ -139,7 +139,7 @@ public class TraceCommand extends SWCommand {
|
|||||||
|
|
||||||
@Register(value = "delete")
|
@Register(value = "delete")
|
||||||
public void delete(@Validator Player player, Trace trace) {
|
public void delete(@Validator Player player, Trace trace) {
|
||||||
// TODO: Reimplement manager.remove(trace);
|
manager.remove(trace);
|
||||||
BauSystem.MESSAGE.send("TRACE_MESSAGE_DELETE_SPECIFIC", player);
|
BauSystem.MESSAGE.send("TRACE_MESSAGE_DELETE_SPECIFIC", player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,17 +86,18 @@ public class TraceManager implements Listener {
|
|||||||
/**
|
/**
|
||||||
* Removes the trace with the given id
|
* Removes the trace with the given id
|
||||||
*
|
*
|
||||||
* @param id id of the trace to be removed
|
* @param trace the trace to be removed
|
||||||
*/
|
*/
|
||||||
public boolean remove(int id) {
|
public boolean remove(Trace trace) {
|
||||||
if (id >= nextOpenId) return false;
|
Integer traceId = traces.entrySet().stream()
|
||||||
if (traces.get(id) == null) return false;
|
.filter(entry -> entry.getValue() == trace)
|
||||||
Trace trace = traces.remove(id);
|
.map(Map.Entry::getKey)
|
||||||
showDataPerRegionPerPlayer.get(trace.getRegion()).forEach((player, playerTraceShowData) -> {
|
.findFirst()
|
||||||
trace.hide(player);
|
.orElse(null);
|
||||||
followerMap.getOrDefault(player, Collections.emptySet()).forEach(trace::hide);
|
if (traceId == null) return false;
|
||||||
});
|
traces.remove(traceId);
|
||||||
tracesByRegion.get(trace.getRegion()).remove(id);
|
tracesByRegion.getOrDefault(trace.getRegion(), Collections.emptyMap()).remove(traceId);
|
||||||
|
trace.hide();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren