// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.builtin.adventure.objectives.admin;

import java.util.Iterator;
import java.util.Collection;
import java.util.Arrays;
import java.util.UUID;
import com.hypixel.hytale.server.core.universe.Universe;
import com.hypixel.hytale.builtin.adventure.objectives.Objective;
import com.hypixel.hytale.builtin.adventure.objectives.ObjectivePlugin;
import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.entity.entities.player.pages.BasicCustomUIPage;

public class ObjectiveAdminPanelPage extends BasicCustomUIPage
{
    public ObjectiveAdminPanelPage(@Nonnull final PlayerRef playerRef) {
        super(playerRef, CustomPageLifetime.CanDismiss);
    }
    
    @Override
    public void build(@Nonnull final UICommandBuilder commandBuilder) {
        commandBuilder.append("Pages/ObjectiveAdminPanelPage.ui");
        final Collection<Objective> objectives = ObjectivePlugin.get().getObjectiveDataStore().getObjectiveCollection();
        int index = 0;
        for (Objective objective : objectives) {
            final String selector = "#ObjectiveList[" + index;
            commandBuilder.append("#ObjectiveList", "Pages/ObjectiveAdminPanelDataSlot.ui");
            commandBuilder.set(selector + " #Id.Text", objective.getObjectiveId());
            commandBuilder.set(selector + " #UUID.Text", "Objective UUID: " + objective.getObjectiveUUID().toString());
            final StringBuilder stringBuilder = new StringBuilder();
            final Universe universe = Universe.get();
            for (final UUID playerUUID : objective.getActivePlayerUUIDs()) {
                final PlayerRef player = universe.getPlayer(playerUUID);
                if (player == null) {
                    continue;
                }
                if (!stringBuilder.isEmpty()) {
                    stringBuilder.append(", ");
                }
                stringBuilder.append(player.getUsername());
            }
            commandBuilder.set(selector + " #CurrentPlayers.Text", "Current players: " + stringBuilder.toString());
            commandBuilder.set(selector + " #AllTimePlayers.Text", "All time players: " + Arrays.toString(objective.getPlayerUUIDs().toArray()));
            ++index;
        }
    }
}
