接口 Room

所有超级接口:
Serializable
所有已知实现类:
SimpleRoom

public interface Room extends Serializable
房间接口
从以下版本开始:
21.8
作者:
渔民小镇
日期:
2022-03-31
  • 方法详细资料

    • getPlayerMap

      Map<Long,Player> getPlayerMap()
      玩家
           key : userId
           value : player
       
      返回:
      玩家
    • getPlayerSeatMap

      Map<Integer,Long> getPlayerSeatMap()
      玩家位置
           key : seat
           value : userId
       
      返回:
      玩家位置
    • getRoomId

      long getRoomId()
      get roomId
      返回:
      房间唯一 id
    • setRoomId

      void setRoomId(long roomId)
      set roomId
      参数:
      roomId - 房间唯一 id
    • getSpaceSize

      int getSpaceSize()
      get 房间空间大小
      返回:
      房间空间大小。如 4 就是 4 个人上限 (可以根据规则设置)
    • setSpaceSize

      void setSpaceSize(int spaceSize)
      set 房间空间大小
      参数:
      spaceSize - 房间空间大小。如 4 就是 4 个人上限 (可以根据规则设置)
    • getRoomStatusEnum

      RoomStatusEnum getRoomStatusEnum()
      get 房间状态
      返回:
      房间状态
    • setRoomStatusEnum

      void setRoomStatusEnum(RoomStatusEnum roomStatusEnum)
      set 房间状态
      参数:
      roomStatusEnum - 房间状态
    • getRoomCreateContext

      RoomCreateContext getRoomCreateContext()
      get 创建房间信息(及玩法规则)
      返回:
      创建房间信息(及玩法规则)
    • setRoomCreateContext

      void setRoomCreateContext(RoomCreateContext roomCreateContext)
      设置创建房间信息(及玩法规则)
      参数:
      roomCreateContext - 创建房间信息(及玩法规则)
    • getCreatorUserId

      default long getCreatorUserId()
      房间创建者的 userId
      返回:
      userId
    • isCreatorUserId

      default boolean isCreatorUserId(long userId)
      当前 userId 是否是房间创建者
      参数:
      userId - userId
      返回:
      true 是房间创建者
    • listPlayer

      default <T extends Player> Collection<T> listPlayer()
      玩家列表: 所有玩家
      类型参数:
      T - 玩家
      返回:
      所有玩家
    • streamPlayer

      default Stream<Player> streamPlayer()
      steam players
      返回:
      player Stream
    • listPlayerId

      default Collection<Long> listPlayerId()
      userId Collection
      返回:
      userId
    • getPlayerById

      default <T extends Player> T getPlayerById(long userId)
      通过 userId 查找玩家
      类型参数:
      T - Player
      参数:
      userId - userId
      返回:
      玩家
    • existUser

      default boolean existUser(long userId)
      玩家是否存在房间内
      参数:
      userId - userId
      返回:
      true 存在
    • addPlayer

      default void addPlayer(Player player)
      添加玩家到房间内
      参数:
      player - 玩家
    • removePlayer

      default void removePlayer(Player player)
      移除玩家
      参数:
      player - 玩家
    • isStatus

      default boolean isStatus(RoomStatusEnum roomStatusEnum)
      当前房间是否是所指定的房间状态
      参数:
      roomStatusEnum - 房间状态
      返回:
      true 是所指定的房间状态
    • ifPlayerExist

      default <T extends Player> void ifPlayerExist(long userId, Consumer<T> action)
      如果玩家在房间内,就执行给定的操作,否则不执行任何操作。
      类型参数:
      T - t
      参数:
      userId - userId
      action - 给定操作
    • ifPlayerNotExist

      default void ifPlayerNotExist(long userId, Runnable runnable)
      如果玩家不在房间内,就执行给定的操作,否则不执行任何操作。
      参数:
      userId - userId
      runnable - 给定操作
    • countPlayer

      default int countPlayer()
      统计房间内的玩家数量
      返回:
      玩家数量
    • isEmptyPlayer

      default boolean isEmptyPlayer()
      房间内的是否没有玩家
      返回:
      true 房间内没有玩家了
    • getEmptySeatNo

      default int getEmptySeatNo()
      得到一个空位置
      返回:
      >=0 表示有位置
    • isReadyPlayers

      default boolean isReadyPlayers()
      玩家是否都准备了
      返回:
      true 所有玩家都准备了
    • forEach

      default void forEach(BiConsumer<Long,Player> action)
      forEach players
           the first argument is the userId
       
      参数:
      action - action
    • setAggregationContext

      void setAggregationContext(CommunicationAggregationContext aggregationContext)
      设置通讯上下文
      
       // 方式一:通过 flowContext 得到通讯上下文
       CommunicationAggregationContext aggregationContext = flowContext.option(FlowAttr.aggregationContext);
       // 方式二:通过 BrokerClient 得到通讯上下文
       CommunicationAggregationContext aggregationContext = BrokerClientHelper.getBrokerClient().getCommunicationAggregationContext();
       
       
      参数:
      aggregationContext - 通讯上下文
    • getAggregationContext

      CommunicationAggregationContext getAggregationContext()
      get 通讯上下文
      返回:
      通讯上下文
    • ofRangeBroadcast

      default RangeBroadcaster ofRangeBroadcast(CommunicationAggregationContext aggregationContext)
      通过 CommunicationAggregationContext 创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家
      参数:
      aggregationContext - aggregationContext
      返回:
      RangeBroadcast 范围内的广播
    • ofEmptyRangeBroadcast

      default RangeBroadcaster ofEmptyRangeBroadcast(CommunicationAggregationContext aggregationContext)
      通过 CommunicationAggregationContext 创建一个 RangeBroadcast
      参数:
      aggregationContext - aggregationContext
      返回:
      RangeBroadcast 范围内的广播
    • ofRangeBroadcast

      default RangeBroadcaster ofRangeBroadcast()
      创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家
      返回:
      RangeBroadcast 范围内的广播
    • ofEmptyRangeBroadcast

      default RangeBroadcaster ofEmptyRangeBroadcast()
      创建一个 RangeBroadcast
      返回:
      RangeBroadcast 范围内的广播