Improve Detonator

This commit is contained in:
2025-11-07 09:12:17 +01:00
parent 6b8f791497
commit 941a1916b7
3 changed files with 58 additions and 48 deletions
@@ -20,7 +20,6 @@
package de.steamwar.core;
import de.steamwar.message.Message;
import lombok.Getter;
import lombok.NonNull;
import lombok.experimental.Delegate;
import net.md_5.bungee.api.ChatMessageType;
@@ -36,6 +35,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;
@@ -103,7 +103,6 @@ public class SWPlayer {
}
@Delegate
@Getter
private final Player player;
private final Map<Class<? extends Component>, Component> components = new HashMap<>();
@@ -119,6 +118,10 @@ public class SWPlayer {
return Optional.ofNullable((T) components.get(clazz));
}
public <T extends Component> @NonNull Optional<T> getComponentAndFilter(@NonNull Class<T> clazz, Predicate<T> filter) {
return Optional.ofNullable((T) components.get(clazz)).filter(filter);
}
public <T extends Component> @NonNull T getComponentOrDefault(@NonNull Class<T> clazz, @NonNull Supplier<T> defaultValue) {
T value = (T) components.get(clazz);
if (value != null) return value;