MinecraftServerStateServiceImpl.java

net.minecraft.server.jsonrpc.internalapi.MinecraftServerStateServiceImpl

信息

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

    TODO

字段/常量

  • server

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

      TODO

  • jsonrpcLogger

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

      TODO

内部类/嵌套类型

构造器

public MinecraftServerStateServiceImpl(DedicatedServer server, JsonRpcLogger jsonrpcLogger) @ L16

  • 构造器名:MinecraftServerStateServiceImpl
  • 源码定位:L16
  • 修饰符:public

参数:

  • server: DedicatedServer
  • jsonrpcLogger: JsonRpcLogger

说明:

TODO

方法

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

public boolean isReady() @ L21

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

参数:

说明:

TODO

public boolean saveEverything(boolean suppressLogs, boolean flush, boolean force, ClientInfo clientInfo) @ L26

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

参数:

  • suppressLogs: boolean
  • flush: boolean
  • force: boolean
  • clientInfo: ClientInfo

说明:

TODO

public void halt(boolean waitForShutdown, ClientInfo clientInfo) @ L32

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

参数:

  • waitForShutdown: boolean
  • clientInfo: ClientInfo

说明:

TODO

public void sendSystemMessage(Component message, ClientInfo clientInfo) @ L38

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

参数:

  • message: Component
  • clientInfo: ClientInfo

说明:

TODO

public void sendSystemMessage(Component message, boolean overlay, Collection<ServerPlayer> players, ClientInfo clientInfo) @ L44

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

参数:

  • message: Component
  • overlay: boolean
  • players: Collection
  • clientInfo: ClientInfo

说明:

TODO

public void broadcastSystemMessage(Component message, boolean overlay, ClientInfo clientInfo) @ L58

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

参数:

  • message: Component
  • overlay: boolean
  • clientInfo: ClientInfo

说明:

TODO

代码

public class MinecraftServerStateServiceImpl implements MinecraftServerStateService {
    private final DedicatedServer server;
    private final JsonRpcLogger jsonrpcLogger;
 
    public MinecraftServerStateServiceImpl(DedicatedServer server, JsonRpcLogger jsonrpcLogger) {
        this.server = server;
        this.jsonrpcLogger = jsonrpcLogger;
    }
 
    @Override
    public boolean isReady() {
        return this.server.isReady();
    }
 
    @Override
    public boolean saveEverything(boolean suppressLogs, boolean flush, boolean force, ClientInfo clientInfo) {
        this.jsonrpcLogger.log(clientInfo, "Save everything. SuppressLogs: {}, flush: {}, force: {}", suppressLogs, flush, force);
        return this.server.saveEverything(suppressLogs, flush, force);
    }
 
    @Override
    public void halt(boolean waitForShutdown, ClientInfo clientInfo) {
        this.jsonrpcLogger.log(clientInfo, "Halt server. WaitForShutdown: {}", waitForShutdown);
        this.server.halt(waitForShutdown);
    }
 
    @Override
    public void sendSystemMessage(Component message, ClientInfo clientInfo) {
        this.jsonrpcLogger.log(clientInfo, "Send system message: '{}'", message.getString());
        this.server.sendSystemMessage(message);
    }
 
    @Override
    public void sendSystemMessage(Component message, boolean overlay, Collection<ServerPlayer> players, ClientInfo clientInfo) {
        List<String> playerNames = players.stream().map(Player::getPlainTextName).toList();
        this.jsonrpcLogger.log(clientInfo, "Send system message to '{}' players (overlay: {}): '{}'", playerNames.size(), overlay, message.getString());
 
        for (ServerPlayer player : players) {
            if (overlay) {
                player.sendOverlayMessage(message);
            } else {
                player.sendSystemMessage(message);
            }
        }
    }
 
    @Override
    public void broadcastSystemMessage(Component message, boolean overlay, ClientInfo clientInfo) {
        this.jsonrpcLogger.log(clientInfo, "Broadcast system message (overlay: {}): '{}'", overlay, message.getString());
 
        for (ServerPlayer player : this.server.getPlayerList().getPlayers()) {
            if (overlay) {
                player.sendOverlayMessage(message);
            } else {
                player.sendSystemMessage(message);
            }
        }
    }
}

引用的其他类