Fix some stuff and make it more ugly
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Dieser Commit ist enthalten in:
yoyosource 2024-04-12 17:13:27 +02:00
Ursprung bcdad382c7
Commit 31e0a0172f
3 geänderte Dateien mit 24 neuen und 5 gelöschten Zeilen

Datei anzeigen

@ -159,7 +159,7 @@ public class Trace { // TODO: Add UUID for file saving and so on!
private void render(List<TNTPoint> records, REntityServer entityServer, PlayerTraceShowData playerTraceShowData) {
if (records.isEmpty()) return;
List<TNTPoint> workingRecords = records;
List<TNTPoint> workingRecords = new ArrayList<>(records);
Set<ViewFlag> flagList = playerTraceShowData.getEffectiveViewFlags();
//Apply filters

Datei anzeigen

@ -194,6 +194,10 @@ public class TraceManager implements Listener {
public boolean follow(Player follower, Player following) {
if (followerMap.containsKey(follower)) return false;
if (followerMap.entrySet().stream().anyMatch(playerSetEntry -> playerSetEntry.getValue().contains(follower))) {
unfollow(follower);
}
followerMap.computeIfAbsent(following, ignored -> new HashSet<>()).add(follower);
showDataPerRegionPerPlayer.forEach((region, playerPlayerTraceShowDataMap) -> {
@ -215,13 +219,21 @@ public class TraceManager implements Listener {
public void unfollow(Player follower) {
if (followerMap.containsKey(follower)) return;
List<Player> toRemove = new ArrayList<>();
Set<Player> toHide = new HashSet<>();
followerMap.forEach((player, players) -> {
players.remove(player);
if (players.remove(follower)) toHide.add(follower);
if (players.isEmpty()) toRemove.add(player);
});
toRemove.forEach(followerMap::remove);
showDataPerRegionPerPlayer.forEach((region, playerPlayerTraceShowDataMap) -> {
toHide.forEach(player -> {
if (!playerPlayerTraceShowDataMap.containsKey(player)) return;
tracesByRegion.getOrDefault(region, Collections.emptyMap()).forEach((integer, trace) -> {
trace.hide(follower);
});
});
PlayerTraceShowData playerTraceShowData = playerPlayerTraceShowDataMap.get(follower);
if (playerTraceShowData == null) return;
tracesByRegion.getOrDefault(region, Collections.emptyMap()).forEach((integer, trace) -> {

Datei anzeigen

@ -19,18 +19,24 @@
package de.steamwar.bausystem.features.tracer.rendering;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.features.tracer.TNTPoint;
import de.steamwar.core.Core;
import de.steamwar.entity.REntity;
import de.steamwar.entity.REntityServer;
import de.steamwar.entity.RFallingBlockEntity;
import de.steamwar.techhider.BlockIds;
import lombok.Getter;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import java.util.List;
public class TraceEntity extends RFallingBlockEntity {
public class TraceEntity extends REntity {
private static final Reflection.MethodInvoker addEntityMethod = Reflection.getMethod(REntityServer.class, "addEntity", REntity.class);
/**
* The records represented by this REntity
@ -39,9 +45,10 @@ public class TraceEntity extends RFallingBlockEntity {
private final List<TNTPoint> records;
public TraceEntity(REntityServer server, Location location, boolean isExplosion, List<TNTPoint> records) {
super(server, location, isExplosion ? Material.RED_STAINED_GLASS : Material.TNT);
super(server, EntityType.FALLING_BLOCK, location, BlockIds.impl.materialToId(isExplosion ? Material.RED_STAINED_GLASS : Material.TNT) >> (Core.getVersion() <= 12 ? 4 : 0));
setNoGravity(true);
this.records = records;
addEntityMethod.invoke(server, this);
}
public void printIntoChat(Player player) {