progress?

This commit is contained in:
LunarAkai 2024-03-20 16:52:25 +01:00
commit ce060a26bf
13 changed files with 758 additions and 57 deletions

View file

@ -1,14 +1,33 @@
package de.lunarakai.minecleaner;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.google.common.base.Preconditions;
import de.iani.cubesidestats.api.PlayerStatistics;
import de.iani.cubesidestats.api.PlayerStatisticsQueryKey;
import de.iani.cubesidestats.api.PlayerStatisticsQueryKey.QueryType;
import de.iani.cubesidestats.api.StatisticKey;
import de.iani.cubesidestats.api.StatisticsQueryKey;
import de.iani.cubesidestats.api.TimeFrame;
import de.iani.playerUUIDCache.CachedPlayer;
import net.md_5.bungee.api.ChatColor;
public class MinecleanerManager {
private final MinecleanerPlugin plugin;
private final StatisticKey statisticsGamesTotal;
public MinecleanerManager(MinecleanerPlugin plugin) {
this.plugin = plugin;
statisticsGamesTotal = plugin.getCubesideStatistics().getStatisticKey("minecleaner.gamesTotal");
statisticsGamesTotal.setIsMonthlyStats(true);
statisticsGamesTotal.setDisplayName("Runden gespielt");
}
public void joinArena(Player player, MinecleanerArena arena) {
@ -30,4 +49,35 @@ public class MinecleanerManager {
player.sendMessage(ChatColor.YELLOW + "Das Minecleanerspiel wurde abgebrochen.");
}
}
public void getStatisticsForPlayer(OfflinePlayer player, Consumer<PlayerStatisticsData> callback) {
List<StatisticsQueryKey> keys = new ArrayList<>();
PlayerStatistics pStatistics = plugin.getCubesideStatistics().getStatistics(player.getUniqueId());
PlayerStatisticsQueryKey kMatchesPlayed;
keys.add(kMatchesPlayed = new PlayerStatisticsQueryKey(pStatistics, statisticsGamesTotal, QueryType.SCORE));
PlayerStatisticsQueryKey kMatchesPlayedMonth;
keys.add(kMatchesPlayedMonth = new PlayerStatisticsQueryKey(pStatistics, statisticsGamesTotal, QueryType.SCORE, TimeFrame.MONTH));
plugin.getCubesideStatistics().queryStats(keys, (c) -> {
int matchesPlayed = c.getOrDefault(kMatchesPlayed, 0);
int matchesPlayedMonth = c.getOrDefault(kMatchesPlayedMonth, 0);
callback.accept(new PlayerStatisticsData(player.getUniqueId(), player.getName(), matchesPlayed, matchesPlayedMonth));
});
}
public void getStatisticsForPlayerIfExists(String player, Consumer<PlayerStatisticsData> callback) {
CachedPlayer cPlayer = plugin.getPlayerUUIDCache().getPlayerFromNameOrUUID(player);
if(cPlayer == null) {
callback.accept(null);
} else {
getStatisticsForPlayer(cPlayer, callback);
}
}
public void deleteScores(UUID playerId) {
PlayerStatistics statsPlayer = plugin.getCubesideStatistics().getStatistics(playerId);
statsPlayer.deleteScore(statisticsGamesTotal);
}
}