MinecraftPlayerListServiceImpl.java

net.minecraft.server.jsonrpc.internalapi.MinecraftPlayerListServiceImpl

信息

  • 全限定名:net.minecraft.server.jsonrpc.internalapi.MinecraftPlayerListServiceImpl
  • 类型:public class
  • 包:net.minecraft.server.jsonrpc.internalapi
  • 源码路径:src/main/java/net/minecraft/server/jsonrpc/internalapi/MinecraftPlayerListServiceImpl.java
  • 起始行号:L13
  • 实现:MinecraftPlayerListService
  • 职责:

    TODO

字段/常量

  • jsonRpcLogger

    • 类型: JsonRpcLogger
    • 修饰符: private final
    • 源码定位: L14
    • 说明:

      TODO

  • server

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

      TODO

内部类/嵌套类型

构造器

public MinecraftPlayerListServiceImpl(DedicatedServer server, JsonRpcLogger jsonRpcLogger) @ L17

  • 构造器名:MinecraftPlayerListServiceImpl
  • 源码定位:L17
  • 修饰符:public

参数:

  • server: DedicatedServer
  • jsonRpcLogger: JsonRpcLogger

说明:

TODO

方法

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

public List<ServerPlayer> getPlayers() @ L22

  • 方法名:getPlayers
  • 源码定位:L22
  • 返回类型:List
  • 修饰符:public

参数:

说明:

TODO

public ServerPlayer getPlayer(UUID uuid) @ L27

  • 方法名:getPlayer
  • 源码定位:L27
  • 返回类型:ServerPlayer
  • 修饰符:public

参数:

  • uuid: UUID

说明:

TODO

public Optional<NameAndId> fetchUserByName(String name) @ L32

  • 方法名:fetchUserByName
  • 源码定位:L32
  • 返回类型:Optional
  • 修饰符:public

参数:

  • name: String

说明:

TODO

public Optional<NameAndId> fetchUserById(UUID id) @ L37

  • 方法名:fetchUserById
  • 源码定位:L37
  • 返回类型:Optional
  • 修饰符:public

参数:

  • id: UUID

说明:

TODO

public Optional<NameAndId> getCachedUserById(UUID id) @ L42

  • 方法名:getCachedUserById
  • 源码定位:L42
  • 返回类型:Optional
  • 修饰符:public

参数:

  • id: UUID

说明:

TODO

public Optional<ServerPlayer> getPlayer(Optional<UUID> id, Optional<String> name) @ L47

  • 方法名:getPlayer
  • 源码定位:L47
  • 返回类型:Optional
  • 修饰符:public

参数:

  • id: Optional
  • name: Optional

说明:

TODO

public List<ServerPlayer> getPlayersWithAddress(String ip) @ L56

  • 方法名:getPlayersWithAddress
  • 源码定位:L56
  • 返回类型:List
  • 修饰符:public

参数:

  • ip: String

说明:

TODO

public void remove(ServerPlayer serverPlayer, ClientInfo clientInfo) @ L61

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

参数:

  • serverPlayer: ServerPlayer
  • clientInfo: ClientInfo

说明:

TODO

public ServerPlayer getPlayerByName(String name) @ L67

  • 方法名:getPlayerByName
  • 源码定位:L67
  • 返回类型:ServerPlayer
  • 修饰符:public

参数:

  • name: String

说明:

TODO

代码

public class MinecraftPlayerListServiceImpl implements MinecraftPlayerListService {
    private final JsonRpcLogger jsonRpcLogger;
    private final DedicatedServer server;
 
    public MinecraftPlayerListServiceImpl(DedicatedServer server, JsonRpcLogger jsonRpcLogger) {
        this.jsonRpcLogger = jsonRpcLogger;
        this.server = server;
    }
 
    @Override
    public List<ServerPlayer> getPlayers() {
        return this.server.getPlayerList().getPlayers();
    }
 
    @Override
    public @Nullable ServerPlayer getPlayer(UUID uuid) {
        return this.server.getPlayerList().getPlayer(uuid);
    }
 
    @Override
    public Optional<NameAndId> fetchUserByName(String name) {
        return this.server.services().nameToIdCache().get(name);
    }
 
    @Override
    public Optional<NameAndId> fetchUserById(UUID id) {
        return Optional.ofNullable(this.server.services().sessionService().fetchProfile(id, true)).map(profile -> new NameAndId(profile.profile()));
    }
 
    @Override
    public Optional<NameAndId> getCachedUserById(UUID id) {
        return this.server.services().nameToIdCache().get(id);
    }
 
    @Override
    public Optional<ServerPlayer> getPlayer(Optional<UUID> id, Optional<String> name) {
        if (id.isPresent()) {
            return Optional.ofNullable(this.server.getPlayerList().getPlayer(id.get()));
        } else {
            return name.isPresent() ? Optional.ofNullable(this.server.getPlayerList().getPlayerByName(name.get())) : Optional.empty();
        }
    }
 
    @Override
    public List<ServerPlayer> getPlayersWithAddress(String ip) {
        return this.server.getPlayerList().getPlayersWithAddress(ip);
    }
 
    @Override
    public void remove(ServerPlayer serverPlayer, ClientInfo clientInfo) {
        this.server.getPlayerList().remove(serverPlayer);
        this.jsonRpcLogger.log(clientInfo, "Remove player '{}'", serverPlayer.getPlainTextName());
    }
 
    @Override
    public @Nullable ServerPlayer getPlayerByName(String name) {
        return this.server.getPlayerList().getPlayerByName(name);
    }
}

引用的其他类