MinecraftGameRuleServiceImpl.java

net.minecraft.server.jsonrpc.internalapi.MinecraftGameRuleServiceImpl

信息

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

    TODO

字段/常量

  • server

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

      TODO

  • gameRules

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

      TODO

  • jsonrpcLogger

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

      TODO

内部类/嵌套类型

构造器

public MinecraftGameRuleServiceImpl(DedicatedServer server, JsonRpcLogger jsonrpcLogger) @ L16

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

参数:

  • server: DedicatedServer
  • jsonrpcLogger: JsonRpcLogger

说明:

TODO

方法

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

public <T> GameRulesService.GameRuleUpdate<T> updateGameRule(GameRulesService.GameRuleUpdate<T> update, ClientInfo clientInfo) @ L22

  • 方法名:updateGameRule
  • 源码定位:L22
  • 返回类型: GameRulesService.GameRuleUpdate
  • 修饰符:public

参数:

  • update: GameRulesService.GameRuleUpdate
  • clientInfo: ClientInfo

说明:

TODO

public <T> GameRulesService.GameRuleUpdate<T> getTypedRule(GameRule<T> gameRule, T value) @ L33

  • 方法名:getTypedRule
  • 源码定位:L33
  • 返回类型: GameRulesService.GameRuleUpdate
  • 修饰符:public

参数:

  • gameRule: GameRule
  • value: T

说明:

TODO

public Stream<GameRule<?>> getAvailableGameRules() @ L38

  • 方法名:getAvailableGameRules
  • 源码定位:L38
  • 返回类型:Stream<GameRule<?>>
  • 修饰符:public

参数:

说明:

TODO

public <T> T getRuleValue(GameRule<T> gameRule) @ L43

  • 方法名:getRuleValue
  • 源码定位:L43
  • 返回类型: T
  • 修饰符:public

参数:

  • gameRule: GameRule

说明:

TODO

代码

public class MinecraftGameRuleServiceImpl implements MinecraftGameRuleService {
    private final DedicatedServer server;
    private final GameRules gameRules;
    private final JsonRpcLogger jsonrpcLogger;
 
    public MinecraftGameRuleServiceImpl(DedicatedServer server, JsonRpcLogger jsonrpcLogger) {
        this.server = server;
        this.gameRules = server.getGameRules();
        this.jsonrpcLogger = jsonrpcLogger;
    }
 
    @Override
    public <T> GameRulesService.GameRuleUpdate<T> updateGameRule(GameRulesService.GameRuleUpdate<T> update, ClientInfo clientInfo) {
        GameRule<T> gameRule = update.gameRule();
        T oldValue = this.gameRules.get(gameRule);
        T newValue = update.value();
        this.gameRules.set(gameRule, newValue, this.server);
        this.jsonrpcLogger
            .log(clientInfo, "Game rule '{}' updated from '{}' to '{}'", gameRule.id(), gameRule.serialize(oldValue), gameRule.serialize(newValue));
        return update;
    }
 
    @Override
    public <T> GameRulesService.GameRuleUpdate<T> getTypedRule(GameRule<T> gameRule, T value) {
        return new GameRulesService.GameRuleUpdate<>(gameRule, value);
    }
 
    @Override
    public Stream<GameRule<?>> getAvailableGameRules() {
        return this.gameRules.availableRules();
    }
 
    @Override
    public <T> T getRuleValue(GameRule<T> gameRule) {
        return this.gameRules.get(gameRule);
    }
}

引用的其他类