Skip to content

Commit 362e560

Browse files
committed
feat(room): The room supports convenient broadcastRange.
1 parent 52d3cb3 commit 362e560

File tree

1 file changed

+51
-6
lines changed
  • widget/light-game-room/src/main/java/com/iohao/game/widget/light/room

1 file changed

+51
-6
lines changed

widget/light-game-room/src/main/java/com/iohao/game/widget/light/room/Room.java

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
*/
1919
package com.iohao.game.widget.light.room;
2020

21+
import com.iohao.game.action.skeleton.core.BarMessageKit;
2122
import com.iohao.game.action.skeleton.core.CmdInfo;
2223
import com.iohao.game.action.skeleton.core.flow.FlowContext;
2324
import com.iohao.game.action.skeleton.core.flow.FlowContextKit;
25+
import com.iohao.game.action.skeleton.protocol.ResponseMessage;
2426
import com.iohao.game.common.kit.OperationCode;
2527
import com.iohao.game.common.kit.PresentKit;
2628
import com.iohao.game.common.kit.concurrent.TaskKit;
@@ -667,18 +669,34 @@ default void operation(OperationHandler operationHandler, FlowContext flowContex
667669
* Broadcast data to a specific user.
668670
*
669671
* @param cmdInfo cmdInfo
670-
* @param data data
671672
* @param userId userId
673+
* @param data data
672674
* @since 21.28
673675
*/
674-
default void broadcastToUser(CmdInfo cmdInfo, Object data, long userId) {
676+
default void broadcastToUser(CmdInfo cmdInfo, long userId, Object data) {
675677
if (this.isRobot(userId)) {
676678
return;
677679
}
678680

679681
this.getAggregationContext().broadcast(cmdInfo, data, userId);
680682
}
681683

684+
/**
685+
* Broadcast data to a specific user.
686+
*
687+
* @param cmdInfo cmdInfo
688+
* @param userId userId
689+
* @since 21.28
690+
*/
691+
default void broadcastToUser(CmdInfo cmdInfo, long userId) {
692+
if (this.isRobot(userId)) {
693+
return;
694+
}
695+
696+
ResponseMessage responseMessage = BarMessageKit.createResponseMessage(cmdInfo);
697+
this.getAggregationContext().broadcast(responseMessage, userId);
698+
}
699+
682700
/**
683701
* Broadcast data, excluding specified players.
684702
*
@@ -697,10 +715,16 @@ default void broadcastRange(CmdInfo cmdInfo, Object data, long excludeUserId) {
697715
return;
698716
}
699717

700-
this.ofEmptyRangeBroadcast()
701-
.addUserId(playerIdList, excludeUserId)
702-
.setResponseMessage(cmdInfo, data)
703-
.execute();
718+
var rangeBroadcast = this.ofEmptyRangeBroadcast()
719+
.addUserId(playerIdList, excludeUserId);
720+
721+
if (Objects.nonNull(data)) {
722+
rangeBroadcast.setResponseMessage(cmdInfo, data);
723+
} else {
724+
rangeBroadcast.setResponseMessage(cmdInfo);
725+
}
726+
727+
rangeBroadcast.execute();
704728
}
705729

706730
/**
@@ -713,4 +737,25 @@ default void broadcastRange(CmdInfo cmdInfo, Object data, long excludeUserId) {
713737
default void broadcastRange(CmdInfo cmdInfo, Object data) {
714738
broadcastRange(cmdInfo, data, 0);
715739
}
740+
741+
/**
742+
* Broadcast, excluding specified players.
743+
*
744+
* @param cmdInfo cmdInfo
745+
* @param excludeUserId excludeUserId
746+
* @since 21.28
747+
*/
748+
default void broadcastRangeEmpty(CmdInfo cmdInfo, long excludeUserId) {
749+
broadcastRange(cmdInfo, null, excludeUserId);
750+
}
751+
752+
/**
753+
* Broadcast
754+
*
755+
* @param cmdInfo cmdInfo
756+
* @since 21.28
757+
*/
758+
default void broadcastRangeEmpty(CmdInfo cmdInfo) {
759+
broadcastRange(cmdInfo, null, 0);
760+
}
716761
}

0 commit comments

Comments
 (0)