Fix SWPlayer on 1.15

This commit is contained in:
2025-12-20 11:45:36 +01:00
parent 6cda79f7e1
commit 7216806a1c
3 changed files with 14 additions and 7 deletions
@@ -46,8 +46,8 @@ public class ObserverTracerListener implements Listener {
public ObserverTracerListener() { public ObserverTracerListener() {
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> { Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> {
SWPlayer.allWithSingleComponent(ObserverTracer.class).forEach(pair -> { SWPlayer.allWithSingleComponent(ObserverTracer.class).forEach(pair -> {
if (pair.getKey().getGameMode() != GameMode.SPECTATOR) return; if (pair.getPlayer().getGameMode() != GameMode.SPECTATOR) return;
pair.getValue().show(); pair.getComponent().show();
}); });
}, 15L, 15L); }, 15L, 15L);
} }
@@ -64,7 +64,7 @@ public class ObserverTracerListener implements Listener {
createNew(event); createNew(event);
} }
SWPlayer.allWithSingleComponent(ObserverTracer.class).forEach(pair -> { SWPlayer.allWithSingleComponent(ObserverTracer.class).forEach(pair -> {
pair.getValue().trace(); pair.getComponent().trace();
}); });
}, 1L); }, 1L);
} else { } else {
@@ -51,8 +51,8 @@ public class EventListener implements Listener {
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> { Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> {
long millis = System.currentTimeMillis(); long millis = System.currentTimeMillis();
SWPlayer.allWithSingleComponent(ScriptRunner.ScriptData.class) SWPlayer.allWithSingleComponent(ScriptRunner.ScriptData.class)
.filter(pair -> millis - pair.getValue().getLastF() > 200) .filter(pair -> millis - pair.getComponent().getLastF() > 200)
.forEach(pair -> pair.getValue().setLastF(Long.MAX_VALUE)); .forEach(pair -> pair.getComponent().setLastF(Long.MAX_VALUE));
}, 1, 1); }, 1, 1);
} }
@@ -20,6 +20,7 @@
package de.steamwar.core; package de.steamwar.core;
import de.steamwar.message.Message; import de.steamwar.message.Message;
import lombok.Data;
import lombok.NonNull; import lombok.NonNull;
import lombok.experimental.Delegate; import lombok.experimental.Delegate;
import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.ChatMessageType;
@@ -91,10 +92,16 @@ public class SWPlayer {
return players.values().stream(); return players.values().stream();
} }
public static <T extends Component> @NonNull Stream<Pair<SWPlayer, T>> allWithSingleComponent(Class<T> component) { public static <T extends Component> @NonNull Stream<SWPlayerWithComponent<T>> allWithSingleComponent(Class<T> component) {
return players.values().stream() return players.values().stream()
.filter(player -> player.components.containsKey(component)) .filter(player -> player.components.containsKey(component))
.map(player -> Pair.of(player, (T) player.components.get(component))); .map(player -> new SWPlayerWithComponent<>(player, (T) player.components.get(component)));
}
@Data
public static final class SWPlayerWithComponent<T extends Component> {
private final SWPlayer player;
private final T component;
} }
@Delegate @Delegate