public interface BoundRoom
| Modifier and Type | Method and Description |
|---|---|
Actor |
getActorByActorId(int actorId)
根据 Actor Id 获取房间玩家 Actor 实例
|
List<Actor> |
getActorByActorIds(List<Integer> actorIds)
根据 Actor Id 获取房间玩家列表
|
Actor |
getActorByUserId(String userId)
根据 User Id 获取房间玩家 Actor 实例
|
List<Actor> |
getAllActors()
获取房间所有玩家列表。
|
PlayObject |
getCustomRoomProperties()
获取房间自定义属性。修改返回的属性无法实际修改房间属性,请使用
updateRoomProperty(cn.leancloud.play.collection.PlayObject) 修改房间属性。 |
List<String> |
getCustomRoomPropertyKeysForLobby()
获取用于房间匹配的房间自定义属性键。不在本列表内的房间自定义属性不会用来做房间匹配
|
int |
getEmptyRoomTtlSecs()
获取没玩家在本房间时本房间最大保留时长
|
List<String> |
getExpectedUserIds()
获取房间指定的玩家 ID 列表。这个参数主要用于为某些能加入到房间中的特定玩家「占位」。
|
Actor |
getMaster()
获取房间 Master 玩家的 Actor 实例
|
int |
getMaxPlayerCount()
获取房间最大玩家数量限制
|
int |
getPlayerTtlSecs()
获取玩家允许的最大离线时间,默认为 0 表示玩家一旦断线就自动从房间离开
|
String |
getRoomName()
获取房间名称
|
ScheduledExecutorService |
getScheduler()
获取一个 ScheduledExecutorService 用于将某个任务交给与当前房间绑定的线程来执行。在该线程上能保证任务运行期间,房间
属性不会发生变化,但需要任务尽快执行完以避免过长时间的阻塞线程。
|
boolean |
isOpen()
房间是否关闭。关闭后房间不允许新玩家加入
|
boolean |
isVisible()
房间是否可见。默认为可见,即所有玩家都能在大厅上查看、自动匹配到本房间
|
void |
removeActor(int actorId)
将某玩家从房间移除
|
void |
sendEventToActors(List<Integer> toActorsIds,
int fromActorId,
byte eventId,
PlayObject eventData,
SendEventOptions options)
发送事件给目标 Actor。
|
void |
sendEventToInterestGroup(byte toInterestGroup,
int fromActorId,
byte eventId,
PlayObject eventData,
SendEventOptions options)
发送事件给目标接收组
|
void |
sendEventToReceiverGroup(ReceiverGroup toReceiverGroup,
int fromActorId,
byte eventId,
PlayObject eventData,
SendEventOptions options)
发送事件给目标接收组
|
void |
updatePlayerProperty(int targetActorId,
PlayObject valuesToSet)
更改房间玩家自定义属性。
|
void |
updatePlayerProperty(int targetActorId,
PlayObject valuesToSet,
PlayObject expectedValues)
更改房间玩家自定义属性
|
void |
updateRoomProperty(PlayObject valuesToSet)
更改房间自定义属性
|
void |
updateRoomProperty(PlayObject valuesToSet,
PlayObject expectedValues)
更改房间自定义属性
|
<V> void |
updateRoomSystemProperty(RoomSystemProperty<V> property)
更改房间系统属性
|
ScheduledExecutorService getScheduler()
因为性能原因,返回的 ScheduledExecutorService 时间精度为 20ms,比如布置一个任务 30ms 后执行则实际 执行时间在 30ms ~ 50ms 之间,即不会早于预期执行时间且与预期执行时间最大偏差为 20ms。
返回的 ScheduledExecutorService 不能被 shutdown,执行 shutdown 没有任何作用。
String getRoomName()
Actor getMaster()
PlayObject getCustomRoomProperties()
updateRoomProperty(cn.leancloud.play.collection.PlayObject) 修改房间属性。List<Actor> getActorByActorIds(List<Integer> actorIds)
actorIds - 目标 Actor Id 列表,可以包含不在房间内的 Actor Id,但不存在的玩家不会在结果中Actor getActorByActorId(int actorId)
actorId - 目标 Actor Id,可以是不在房间内的 Actor Id,但不存在的玩家将会返回 nullActor getActorByUserId(String userId)
userId - 目标 User Id,可以是不在房间内的 User Id,但不存在的玩家将会返回 nullint getMaxPlayerCount()
int getEmptyRoomTtlSecs()
int getPlayerTtlSecs()
List<String> getExpectedUserIds()
boolean isVisible()
boolean isOpen()
List<String> getCustomRoomPropertyKeysForLobby()
void updatePlayerProperty(int targetActorId,
PlayObject valuesToSet)
targetActorId - 目标玩家 Actor Id,如果目标 Actor Id 并不在房间内则会抛出 IllegalArgumentExceptionvaluesToSet - 待修改的玩家自定义属性,不能为 nullNullPointerException - 当 valuesToSet 为 null 时抛此异常IllegalArgumentException - 当 valuesToSet 执行 isEmpty() 为 true 时抛此异常IllegalArgumentException - 当 targetActorId 不在本房间时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void updatePlayerProperty(int targetActorId,
PlayObject valuesToSet,
PlayObject expectedValues)
targetActorId - 目标玩家 Actor Id,如果目标 Actor Id 并不在房间内则会抛出 IllegalArgumentExceptionvaluesToSet - 待修改的玩家自定义属性,不能为 nullexpectedValues - 不能为 null。设置 CAS 操作用于匹配的玩家自定义属性。设置了用于匹配的玩家自定义属性后,只有当玩家自定义属性符合
匹配的值后更新玩家自定义属性操作才会生效。NullPointerException - 当 valuesToSet 为 null 时抛此异常IllegalArgumentException - 当 valuesToSet 执行 isEmpty() 为 true 时抛此异常IllegalArgumentException - 当 targetActorId 不在本房间时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void updateRoomProperty(PlayObject valuesToSet)
valuesToSet - 待修改的房间自定义属性, 不能为 nullNullPointerException - 当 valuesToSet 为 null 时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void updateRoomProperty(PlayObject valuesToSet, PlayObject expectedValues)
valuesToSet - 待修改的房间自定义属性, 不能为 nullexpectedValues - 不能为 null。进行 CAS 操作时使用,用于匹配的房间自定义属性。设置了用于匹配的自定义属性后,只有当房间自定义属性符合
匹配的值后更新房间自定义属性操作才会生效。NullPointerException - 当 valuesToSet 为 null 时抛此异常IllegalArgumentException - 当 valuesToSet 执行 isEmpty() 为 true 时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常<V> void updateRoomSystemProperty(RoomSystemProperty<V> property)
V - 具体修改的房间系统属性类型property - 待修改的系统属性,不能为 nullNullPointerException - 当 property 为 null 时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void removeActor(int actorId)
actorId - 待移除的玩家 Actor Id,如果目标 Actor Id 并不在房间内则本次请求无效果IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void sendEventToActors(List<Integer> toActorsIds, int fromActorId, byte eventId, PlayObject eventData, SendEventOptions options)
toActorsIds - 目标 Actor Id 列表,不能为 null。如果列表中有部分 Actor 不在本房间则消息只会发送至在本房间的 Actor。fromActorId - 发送事件的 Actor Id,为 0 表示由系统发出eventId - 自定义事件 IdeventData - 事件数据,不能为 nulloptions - 发送事件配置选项,不能为 null,无配置选项请填写 SendEventOptions.emptyOptionNullPointerException - 当 toActorIds 或 eventData 为 null 时抛此异常IllegalArgumentException - 当 fromActorId 不在本房间,或所有 toActorIds 都不在本房间时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void sendEventToReceiverGroup(ReceiverGroup toReceiverGroup, int fromActorId, byte eventId, PlayObject eventData, SendEventOptions options)
toReceiverGroup - 目标接收组,不能为 nullfromActorId - 发送事件的 Actor Id,为 0 表示由系统发出eventId - 自定义事件 IdeventData - 事件数据,不能为 nulloptions - 发送事件配置选项,不能为 null,无配置选项请填写 SendEventOptions.emptyOptionNullPointerException - 当 toReceiverGroup 或 eventData 为 null 时抛此异常IllegalArgumentException - 当 fromActorId 不在本房间时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常void sendEventToInterestGroup(byte toInterestGroup,
int fromActorId,
byte eventId,
PlayObject eventData,
SendEventOptions options)
toInterestGroup - 目标兴趣组fromActorId - 发送事件的 Actor Id,为 0 表示由系统发出eventId - 自定义事件 IdeventData - 事件数据,不能为 nulloptions - 发送事件配置选项,不能为 null,无配置选项请填写 SendEventOptions.emptyOptionNullPointerException - 当 toInterestGroup 或 eventData 为 null 时抛此异常IllegalArgumentException - 当 fromActorId 不在本房间时抛此异常IllegalStateException - 在 Plugin.onCreateRoom(cn.leancloud.play.plugin.context.CreateRoomContext) 调用时房间还未初始化完成,该 Hook 内调用本方法会抛此异常Copyright © 2019 LeanCloud. All rights reserved.