46 lines
1.2 KiB
Java
46 lines
1.2 KiB
Java
package com.mojang.realmsclient.gui;
|
|
|
|
import com.mojang.realmsclient.dto.RealmsServer;
|
|
import java.util.ArrayList;
|
|
import java.util.HashSet;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.Minecraft;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class RealmsServerList implements Iterable<RealmsServer> {
|
|
private final Minecraft minecraft;
|
|
private final Set<RealmsServer> removedServers = new HashSet();
|
|
private List<RealmsServer> servers = List.of();
|
|
|
|
public RealmsServerList(Minecraft minecraft) {
|
|
this.minecraft = minecraft;
|
|
}
|
|
|
|
public void updateServersList(List<RealmsServer> servers) {
|
|
List<RealmsServer> list = new ArrayList(servers);
|
|
list.sort(new RealmsServer.McoServerComparator(this.minecraft.getUser().getName()));
|
|
boolean bl = list.removeAll(this.removedServers);
|
|
if (!bl) {
|
|
this.removedServers.clear();
|
|
}
|
|
|
|
this.servers = list;
|
|
}
|
|
|
|
public void removeItem(RealmsServer server) {
|
|
this.servers.remove(server);
|
|
this.removedServers.add(server);
|
|
}
|
|
|
|
public Iterator<RealmsServer> iterator() {
|
|
return this.servers.iterator();
|
|
}
|
|
|
|
public boolean isEmpty() {
|
|
return this.servers.isEmpty();
|
|
}
|
|
}
|