JsonRpcNotificationService.java

net.minecraft.server.jsonrpc.JsonRpcNotificationService

信息

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

    TODO

字段/常量

  • managementServer

    • 类型: ManagementServer
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • minecraftApi

    • 类型: MinecraftApi
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

内部类/嵌套类型

构造器

public JsonRpcNotificationService(MinecraftApi minecraftApi, ManagementServer managementServer) @ L23

  • 构造器名:JsonRpcNotificationService
  • 源码定位:L23
  • 修饰符:public

参数:

  • minecraftApi: MinecraftApi
  • managementServer: ManagementServer

说明:

TODO

方法

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

public void playerJoined(ServerPlayer player) @ L28

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

参数:

  • player: ServerPlayer

说明:

TODO

public void playerLeft(ServerPlayer player) @ L33

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

参数:

  • player: ServerPlayer

说明:

TODO

public void serverStarted() @ L38

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

参数:

说明:

TODO

public void serverShuttingDown() @ L43

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

参数:

说明:

TODO

public void serverSaveStarted() @ L48

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

参数:

说明:

TODO

public void serverSaveCompleted() @ L53

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

参数:

说明:

TODO

public void serverActivityOccured() @ L58

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

参数:

说明:

TODO

public void playerOped(ServerOpListEntry operator) @ L63

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

参数:

  • operator: ServerOpListEntry

说明:

TODO

public void playerDeoped(ServerOpListEntry operator) @ L68

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

参数:

  • operator: ServerOpListEntry

说明:

TODO

public void playerAddedToAllowlist(NameAndId player) @ L73

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

参数:

  • player: NameAndId

说明:

TODO

public void playerRemovedFromAllowlist(NameAndId player) @ L78

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

参数:

  • player: NameAndId

说明:

TODO

public void ipBanned(IpBanListEntry ban) @ L83

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

参数:

  • ban: IpBanListEntry

说明:

TODO

public void ipUnbanned(String ip) @ L88

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

参数:

  • ip: String

说明:

TODO

public void playerBanned(UserBanListEntry ban) @ L93

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

参数:

  • ban: UserBanListEntry

说明:

TODO

public void playerUnbanned(NameAndId player) @ L98

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

参数:

  • player: NameAndId

说明:

TODO

public <T> void onGameRuleChanged(GameRule<T> gameRule, T value) @ L103

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

参数:

  • gameRule: GameRule
  • value: T

说明:

TODO

public void statusHeartbeat() @ L108

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

参数:

说明:

TODO

private void broadcastNotification(Holder.Reference<?extends OutgoingRpcMethod<Void,?>> method) @ L113

  • 方法名:broadcastNotification
  • 源码定位:L113
  • 返回类型:void
  • 修饰符:private

参数:

  • method: Holder.Reference>

说明:

TODO

private <Params> void broadcastNotification(Holder.Reference<?extends OutgoingRpcMethod<Params,?>> method, Params params) @ L117

  • 方法名:broadcastNotification
  • 源码定位:L117
  • 返回类型: void
  • 修饰符:private

参数:

  • method: Holder.Reference>
  • params: Params

说明:

TODO

代码

public class JsonRpcNotificationService implements NotificationService {
    private final ManagementServer managementServer;
    private final MinecraftApi minecraftApi;
 
    public JsonRpcNotificationService(MinecraftApi minecraftApi, ManagementServer managementServer) {
        this.minecraftApi = minecraftApi;
        this.managementServer = managementServer;
    }
 
    @Override
    public void playerJoined(ServerPlayer player) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_JOINED, PlayerDto.from(player));
    }
 
    @Override
    public void playerLeft(ServerPlayer player) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_LEFT, PlayerDto.from(player));
    }
 
    @Override
    public void serverStarted() {
        this.broadcastNotification(OutgoingRpcMethods.SERVER_STARTED);
    }
 
    @Override
    public void serverShuttingDown() {
        this.broadcastNotification(OutgoingRpcMethods.SERVER_SHUTTING_DOWN);
    }
 
    @Override
    public void serverSaveStarted() {
        this.broadcastNotification(OutgoingRpcMethods.SERVER_SAVE_STARTED);
    }
 
    @Override
    public void serverSaveCompleted() {
        this.broadcastNotification(OutgoingRpcMethods.SERVER_SAVE_COMPLETED);
    }
 
    @Override
    public void serverActivityOccured() {
        this.broadcastNotification(OutgoingRpcMethods.SERVER_ACTIVITY_OCCURRED);
    }
 
    @Override
    public void playerOped(ServerOpListEntry operator) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_OPED, OperatorService.OperatorDto.from(operator));
    }
 
    @Override
    public void playerDeoped(ServerOpListEntry operator) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_DEOPED, OperatorService.OperatorDto.from(operator));
    }
 
    @Override
    public void playerAddedToAllowlist(NameAndId player) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_ADDED_TO_ALLOWLIST, PlayerDto.from(player));
    }
 
    @Override
    public void playerRemovedFromAllowlist(NameAndId player) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_REMOVED_FROM_ALLOWLIST, PlayerDto.from(player));
    }
 
    @Override
    public void ipBanned(IpBanListEntry ban) {
        this.broadcastNotification(OutgoingRpcMethods.IP_BANNED, IpBanlistService.IpBanDto.from(ban));
    }
 
    @Override
    public void ipUnbanned(String ip) {
        this.broadcastNotification(OutgoingRpcMethods.IP_UNBANNED, ip);
    }
 
    @Override
    public void playerBanned(UserBanListEntry ban) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_BANNED, BanlistService.UserBanDto.from(ban));
    }
 
    @Override
    public void playerUnbanned(NameAndId player) {
        this.broadcastNotification(OutgoingRpcMethods.PLAYER_UNBANNED, PlayerDto.from(player));
    }
 
    @Override
    public <T> void onGameRuleChanged(GameRule<T> gameRule, T value) {
        this.broadcastNotification(OutgoingRpcMethods.GAMERULE_CHANGED, GameRulesService.getTypedRule(this.minecraftApi, gameRule, value));
    }
 
    @Override
    public void statusHeartbeat() {
        this.broadcastNotification(OutgoingRpcMethods.STATUS_HEARTBEAT, ServerStateService.status(this.minecraftApi));
    }
 
    private void broadcastNotification(Holder.Reference<? extends OutgoingRpcMethod<Void, ?>> method) {
        this.managementServer.forEachConnection(connection -> connection.sendNotification(method));
    }
 
    private <Params> void broadcastNotification(Holder.Reference<? extends OutgoingRpcMethod<Params, ?>> method, Params params) {
        this.managementServer.forEachConnection(connection -> connection.sendNotification(method, params));
    }
}

引用的其他类