RealmsServerList.java

com.mojang.realmsclient.gui.RealmsServerList

信息

  • 全限定名:com.mojang.realmsclient.gui.RealmsServerList
  • 类型:public class
  • 包:com.mojang.realmsclient.gui
  • 源码路径:src/main/java/com/mojang/realmsclient/gui/RealmsServerList.java
  • 起始行号:L14
  • 实现:Iterable
  • 职责:

    TODO

字段/常量

  • minecraft

    • 类型: Minecraft
    • 修饰符: private final
    • 源码定位: L15
    • 说明:

      TODO

  • removedServers

    • 类型: Set<RealmsServer>
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

  • servers

    • 类型: List<RealmsServer>
    • 修饰符: private
    • 源码定位: L17
    • 说明:

      TODO

内部类/嵌套类型

构造器

public RealmsServerList(Minecraft minecraft) @ L19

  • 构造器名:RealmsServerList
  • 源码定位:L19
  • 修饰符:public

参数:

  • minecraft: Minecraft

说明:

TODO

方法

下面的方法块按源码顺序生成。

public void updateServersList(List<RealmsServer> fetchedServers) @ L23

  • 方法名:updateServersList
  • 源码定位:L23
  • 返回类型:void
  • 修饰符:public

参数:

  • fetchedServers: List

说明:

TODO

public void removeItem(RealmsServer server) @ L34

  • 方法名:removeItem
  • 源码定位:L34
  • 返回类型:void
  • 修饰符:public

参数:

  • server: RealmsServer

说明:

TODO

public Iterator<RealmsServer> iterator() @ L39

  • 方法名:iterator
  • 源码定位:L39
  • 返回类型:Iterator
  • 修饰符:public

参数:

说明:

TODO

public boolean isEmpty() @ L44

  • 方法名:isEmpty
  • 源码定位:L44
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.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> fetchedServers) {
        List<RealmsServer> sortedServers = new ArrayList<>(fetchedServers);
        sortedServers.sort(new RealmsServer.McoServerComparator(this.minecraft.getUser().getName()));
        boolean removedAnyServers = sortedServers.removeAll(this.removedServers);
        if (!removedAnyServers) {
            this.removedServers.clear();
        }
 
        this.servers = sortedServers;
    }
 
    public void removeItem(RealmsServer server) {
        this.servers.remove(server);
        this.removedServers.add(server);
    }
 
    @Override
    public Iterator<RealmsServer> iterator() {
        return this.servers.iterator();
    }
 
    public boolean isEmpty() {
        return this.servers.isEmpty();
    }
}

引用的其他类

  • RealmsServer

    • 引用位置: 参数/字段/实现/方法调用/构造调用/返回值
    • 关联成员: McoServerComparator(), RealmsServer.McoServerComparator()
  • Minecraft

    • 引用位置: 参数/字段