接口 Room
- 所有超级接口:
Serializable
- 所有已知实现类:
SimpleRoom
房间接口
- 从以下版本开始:
- 21.8
- 作者:
- 渔民小镇
- 日期:
- 2022-03-31
-
方法概要
修饰符和类型方法说明default void
添加玩家到房间内default void
broadcastRange
(CmdInfo cmdInfo, Object data) Broadcast datadefault void
broadcastRange
(CmdInfo cmdInfo, Object data, long excludeUserId) Broadcast data, excluding specified players.default void
broadcastRangeEmpty
(CmdInfo cmdInfo) Broadcastdefault void
broadcastRangeEmpty
(CmdInfo cmdInfo, long excludeUserId) Broadcast, excluding specified players.default void
broadcastToUser
(CmdInfo cmdInfo, long userId) Broadcast data to a specific user.default void
broadcastToUser
(CmdInfo cmdInfo, long userId, Object data) Broadcast data to a specific user.default int
统计房间内的玩家数量,包含机器人default int
统计房间内真实玩家的数量default int
统计房间内 Robot 的数量default void
executeDelayTask
(Runnable task, long delayMilliseconds) Delayed execution of tasks, this method is thread-safedefault void
executeTask
(Runnable task) Executed in domain events, this method is thread-safedefault boolean
existUser
(long userId) 玩家是否存在房间内default void
forEach
(BiConsumer<Long, Player> action) forEach playersget 通讯上下文default long
房间创建者的 userIddefault int
得到一个空位置default OperationHandler
getOperationHandler
(OperationCode operationCode) get OperationHandler by OperationCodedefault OperationService
getOperationServicedefault <T extends Player>
TgetPlayerById
(long userId) 通过 userId 查找玩家default <T extends Player>
TgetPlayerBySeat
(int seat) 通过 seat 查找玩家玩家,包含 Robot玩家位置所有真实的玩家所有 Robotget 创建房间信息(及玩法规则)long
get roomId已过时。Developers should define room states themselves.int
get 房间空间大小default boolean
hasSeat()
是否还有空位default <T extends Player>
voidifPlayerExist
(long userId, Consumer<T> action) 如果玩家在房间内,就执行给定的操作,否则不执行任何操作。default void
ifPlayerNotExist
(long userId, Runnable runnable) 如果玩家不在房间内,就执行给定的操作,否则不执行任何操作。default boolean
isCreatorUserId
(long userId) 当前 userId 是否是房间创建者default boolean
房间内是否没有玩家,包含 Robotdefault boolean
房间内是否没有真实的玩家default boolean
房间内是否没有 Robotdefault boolean
玩家是否都准备了default boolean
isRealPlayer
(long userId) 是否真实玩家default boolean
isRobot
(long userId) 是否 Robotdefault boolean
isStatus
(RoomStatusEnum roomStatusEnum) 已过时。Developers should define room states themselves.default <T extends Player>
Collection<T> 玩家列表: 所有玩家,包含 Robotdefault Collection
<Long> userId Collectiondefault <T extends Player>
Collection<T> 真实玩家列表: 所有的真实玩家(不包含 Robot)default Collection
<Long> Robot UserId Collectiondefault <T extends Player>
Collection<T> RobotListdefault Collection
<Long> Robot UserId Collectiondefault RangeBroadcaster
创建一个 RangeBroadcastdefault RangeBroadcaster
ofEmptyRangeBroadcast
(CommunicationAggregationContext aggregationContext) 通过 CommunicationAggregationContext 创建一个 RangeBroadcastdefault OperationContext
ofOperationContext
(OperationHandler operationHandler) create OperationContextdefault RangeBroadcaster
创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家default RangeBroadcaster
ofRangeBroadcast
(CommunicationAggregationContext aggregationContext) 通过 CommunicationAggregationContext 创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家default void
operation
(OperationCode operationCode) execute operationdefault void
operation
(OperationCode operationCode, long userId) execute operationdefault void
operation
(OperationCode operationCode, long userId, Object commandMessage) execute operationdefault void
operation
(OperationCode operationCode, FlowContext flowContext) execute operationdefault void
operation
(OperationCode operationCode, FlowContext flowContext, Object commandMessage) execute operationdefault void
operation
(OperationHandler operationHandler, long userId, Object commandMessage) execute operationdefault void
operation
(OperationHandler operationHandler, FlowContext flowContext, Object commandMessage) execute operationdefault void
removePlayer
(Player player) 移除玩家void
setAggregationContext
(CommunicationAggregationContext aggregationContext) 设置通讯上下文default void
setOperationService
(OperationService operationService) setOperationServicevoid
setRoomCreateContext
(RoomCreateContext roomCreateContext) 设置创建房间信息(及玩法规则)void
setRoomId
(long roomId) set roomIdvoid
setRoomStatusEnum
(RoomStatusEnum roomStatusEnum) 已过时。Developers should define room states themselves.void
setSpaceSize
(int spaceSize) set 房间空间大小steam playerssteam real players (真实的玩家)steam players
-
方法详细资料
-
getPlayerMap
玩家,包含 Robotkey : userId value : player
- 返回:
- 玩家
-
getRealPlayerMap
所有真实的玩家key : userId value : player
- 返回:
- 真实的玩家
- 从以下版本开始:
- 21.23
-
getRobotMap
所有 Robotkey : userId value : player
- 返回:
- Robot Map
- 从以下版本开始:
- 21.23
-
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
已过时。Developers should define room states themselves.get 房间状态- 返回:
- 房间状态
-
setRoomStatusEnum
已过时。Developers should define room states themselves.set 房间状态- 参数:
roomStatusEnum
- 房间状态
-
getRoomCreateContext
RoomCreateContext getRoomCreateContext()get 创建房间信息(及玩法规则)- 返回:
- 创建房间信息(及玩法规则)
-
setRoomCreateContext
设置创建房间信息(及玩法规则)- 参数:
roomCreateContext
- 创建房间信息(及玩法规则)
-
getCreatorUserId
default long getCreatorUserId()房间创建者的 userId- 返回:
- userId
-
isCreatorUserId
default boolean isCreatorUserId(long userId) 当前 userId 是否是房间创建者- 参数:
userId
- userId- 返回:
- true 是房间创建者
-
listPlayer
玩家列表: 所有玩家,包含 Robot- 类型参数:
T
- 玩家- 返回:
- 所有玩家
-
streamPlayer
steam players- 返回:
- player Stream
-
listRealPlayer
真实玩家列表: 所有的真实玩家(不包含 Robot)- 类型参数:
T
- 玩家- 返回:
- 所有玩家
-
streamRealPlayer
steam real players (真实的玩家)- 返回:
- player Stream
-
listRobot
RobotList- 类型参数:
T
- Robot- 返回:
- RobotList
-
streamRobot
steam players- 返回:
- player Stream
-
listPlayerId
userId Collection- 返回:
- userId
-
listRealPlayerId
Robot UserId Collection- 返回:
- userId
-
listRobotPlayerId
Robot UserId Collection- 返回:
- userId
-
getPlayerById
通过 userId 查找玩家- 类型参数:
T
- Player- 参数:
userId
- userId- 返回:
- 玩家
-
existUser
default boolean existUser(long userId) 玩家是否存在房间内- 参数:
userId
- userId- 返回:
- true 存在
-
getPlayerBySeat
通过 seat 查找玩家- 类型参数:
T
- Player- 参数:
seat
- seat- 返回:
- 玩家
-
addPlayer
添加玩家到房间内- 参数:
player
- 玩家
-
removePlayer
移除玩家- 参数:
player
- 玩家
-
isStatus
已过时。Developers should define room states themselves.当前房间是否是所指定的房间状态- 参数:
roomStatusEnum
- 房间状态- 返回:
- true 是所指定的房间状态
-
ifPlayerExist
如果玩家在房间内,就执行给定的操作,否则不执行任何操作。- 类型参数:
T
- t- 参数:
userId
- userIdaction
- 给定操作
-
ifPlayerNotExist
如果玩家不在房间内,就执行给定的操作,否则不执行任何操作。- 参数:
userId
- userIdrunnable
- 给定操作
-
countPlayer
default int countPlayer()统计房间内的玩家数量,包含机器人- 返回:
- 玩家数量
-
countRealPlayer
default int countRealPlayer()统计房间内真实玩家的数量- 返回:
- 真实玩家的数量
-
countRobot
default int countRobot()统计房间内 Robot 的数量- 返回:
- Robot 数量
-
isEmptyPlayer
default boolean isEmptyPlayer()房间内是否没有玩家,包含 Robot- 返回:
- true 房间内没有任何玩家
-
isEmptyRealPlayer
default boolean isEmptyRealPlayer()房间内是否没有真实的玩家- 返回:
- true 房间内没有真实玩家
-
isEmptyRobot
default boolean isEmptyRobot()房间内是否没有 Robot- 返回:
- true 房间内没有 Robot
-
isRobot
default boolean isRobot(long userId) 是否 Robot- 参数:
userId
- userId- 返回:
- true: Robot
- 从以下版本开始:
- 21.23
-
isRealPlayer
default boolean isRealPlayer(long userId) 是否真实玩家- 参数:
userId
- userId- 返回:
- true: real player
- 从以下版本开始:
- 21.23
-
getEmptySeatNo
default int getEmptySeatNo()得到一个空位置- 返回:
- >=0 表示有位置
-
hasSeat
default boolean hasSeat()是否还有空位- 返回:
- true 还有空的位置
- 从以下版本开始:
- 21.23
-
isReadyPlayers
default boolean isReadyPlayers()玩家是否都准备了- 返回:
- true 所有玩家都准备了
-
forEach
forEach playersthe first argument is the userId
- 参数:
action
- action
-
executeTask
Executed in domain events, this method is thread-safe- 参数:
task
- task- 从以下版本开始:
- 21.23
-
executeDelayTask
Delayed execution of tasks, this method is thread-safe- 参数:
task
- taskdelayMilliseconds
- delayMilliseconds- 从以下版本开始:
- 21.23
-
setOperationService
setOperationService- 参数:
operationService
- operationService- 从以下版本开始:
- 21.28
-
getOperationService
getOperationService- 返回:
- OperationService
- 从以下版本开始:
- 21.28
-
getOperationHandler
get OperationHandler by OperationCode- 参数:
operationCode
- operationCode- 返回:
- OperationHandler
- 从以下版本开始:
- 21.28
-
ofOperationContext
create OperationContext- 参数:
operationHandler
- operationHandler- 返回:
- OperationContext operationHandler
- 从以下版本开始:
- 21.23
-
operation
execute operation- 参数:
operationCode
- operationCode- 从以下版本开始:
- 21.28
-
operation
execute operation- 参数:
operationCode
- operationCodeuserId
- userId- 从以下版本开始:
- 21.28
-
operation
execute operation- 参数:
operationCode
- operationCodeuserId
- userIdcommandMessage
- commandMessage- 从以下版本开始:
- 21.28
-
operation
execute operation- 参数:
operationCode
- operationCodeflowContext
- flowContext- 从以下版本开始:
- 21.28
-
operation
execute operation- 参数:
operationCode
- operationCodeflowContext
- flowContextcommandMessage
- commandMessage- 从以下版本开始:
- 21.28
-
operation
execute operation- 参数:
operationHandler
- operationHandleruserId
- userIdcommandMessage
- commandMessage- 从以下版本开始:
- 21.28
-
operation
default void operation(OperationHandler operationHandler, FlowContext flowContext, Object commandMessage) execute operation- 参数:
operationHandler
- operationHandlerflowContext
- flowContextcommandMessage
- commandMessage- 从以下版本开始:
- 21.28
-
broadcastToUser
Broadcast data to a specific user.- 参数:
cmdInfo
- cmdInfouserId
- userIddata
- data- 从以下版本开始:
- 21.28
-
broadcastToUser
Broadcast data to a specific user.- 参数:
cmdInfo
- cmdInfouserId
- userId- 从以下版本开始:
- 21.28
-
broadcastRange
Broadcast data, excluding specified players.- 参数:
cmdInfo
- cmdInfodata
- dataexcludeUserId
- excludeUserId- 从以下版本开始:
- 21.28
-
broadcastRange
Broadcast data- 参数:
cmdInfo
- cmdInfodata
- data- 从以下版本开始:
- 21.28
-
broadcastRangeEmpty
Broadcast, excluding specified players.- 参数:
cmdInfo
- cmdInfoexcludeUserId
- excludeUserId- 从以下版本开始:
- 21.28
-
broadcastRangeEmpty
Broadcast- 参数:
cmdInfo
- cmdInfo- 从以下版本开始:
- 21.28
-
setAggregationContext
设置通讯上下文// 方式一:通过 flowContext 得到通讯上下文 CommunicationAggregationContext aggregationContext = flowContext.option(FlowAttr.aggregationContext); // 方式二:通过 BrokerClient 得到通讯上下文 CommunicationAggregationContext aggregationContext = BrokerClientHelper.getBrokerClient().getCommunicationAggregationContext();
- 参数:
aggregationContext
- 通讯上下文
-
getAggregationContext
CommunicationAggregationContext getAggregationContext()get 通讯上下文- 返回:
- 通讯上下文
-
ofRangeBroadcast
通过 CommunicationAggregationContext 创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家- 参数:
aggregationContext
- aggregationContext- 返回:
- RangeBroadcast 范围内的广播
-
ofEmptyRangeBroadcast
通过 CommunicationAggregationContext 创建一个 RangeBroadcast- 参数:
aggregationContext
- aggregationContext- 返回:
- RangeBroadcast 范围内的广播
-
ofRangeBroadcast
创建一个 RangeBroadcast,默认会添加上当前房间内的所有玩家- 返回:
- RangeBroadcast 范围内的广播
-
ofEmptyRangeBroadcast
创建一个 RangeBroadcast- 返回:
- RangeBroadcast 范围内的广播
-