/* * This file is a part of the SteamWar software. * * Copyright (C) 2026 SteamWar.de-Serverteam * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package de.steamwar.lobby.particle; import de.steamwar.lobby.special.easter.EggHunt; import de.steamwar.sql.Event; import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.TeamTeilnahme; import de.steamwar.sql.UserConfig; import lombok.Getter; import java.util.Set; import java.util.stream.Collectors; // Everything requirements check against, loaded only when a requirement needs it public class UnlockContext { @Getter private final SteamwarUser user; private Set events; private String eggHuntConfig; private boolean eggHuntConfigLoaded; public UnlockContext(SteamwarUser user) { this.user = user; } public Set getEvents() { if (events == null) { events = user.getTeam() == 0 ? Set.of() : TeamTeilnahme.getEvents(user.getTeam()).stream().map(Event::getEventID).collect(Collectors.toSet()); } return events; } public String getEggHuntConfig() { if (!eggHuntConfigLoaded) { eggHuntConfig = UserConfig.getConfig(user.getId(), EggHunt.EGG_HUNT_CONFIG_KEY); eggHuntConfigLoaded = true; } return eggHuntConfig; } }