| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package chat
- import (
- "f1-game/internal/component/redis"
- "f1-game/internal/enum"
- nameActor "f1-game/internal/name/actor"
- nameRemote "f1-game/internal/name/remote"
- nameRoute "f1-game/internal/name/route"
- "f1-game/internal/pb"
- ctime "github.com/cherry-game/cherry/extend/time"
- )
- type (
- actorLeague struct {
- RoomTypeList
- }
- )
- func NewActorLeague() *actorLeague {
- return &actorLeague{
- RoomTypeList: newRoomTypeList(enum.ChatType_League),
- }
- }
- func (p *actorLeague) OnInit() {
- p.Remote().Register(nameRemote.Chat_Send, p.send)
- p.Remote().Register(nameRemote.Chat_Push, p.Push)
- p.Remote().Register(nameRemote.Chat_Destory, p.Destory)
- p.Remote().Register(nameRemote.Chat_DelMsg, p.DelMsg)
- p.initCleanRoomTimer()
- }
- func (p *actorLeague) AliasID() string {
- return nameActor.Chat_League
- }
- func (p *actorLeague) send(req *pb.ChatMsgList) {
- chatRoom := p.GetChatRoom(req.ChatID)
- p.flushPlayerIDList(chatRoom)
- p.AddChatMsg(req)
- p.Broadcast2Client(chatRoom, nameRoute.PushChat_MsgList, req)
- // update last send time
- chatRoom.LastSendTime = ctime.Now()
- }
- // 联盟每一秒钟刷新一次玩家列表
- func (p *actorLeague) flushPlayerIDList(chatRoom *ChatRoom) {
- if chatRoom.LastSendTime.NowDiffSecond() < 1 {
- return
- }
- chatRoom.PlayerIDList = redis.Chat.GetLeagueMembers(chatRoom.ChatID)
- }
|