local FGInvitedMsgView = import('.FamilyInvitedMsgView') local FamilyEventView = {} local M = FamilyEventView function FamilyEventView.new(root) setmetatable(M, { __index = root }) local self = setmetatable({}, { __index = M }) local mgr_ctr = self._mgr_ctr mgr_ctr:AddEventListener(GroupMgrEvent.AddPlay, handler(self, self._evtAddPlay)) mgr_ctr:AddEventListener(GroupMgrEvent.DelPlay, handler(self, self._evtDelPlay)) mgr_ctr:AddEventListener(GroupMgrEvent.UpdatePlay, handler(self, self._evtUpdatePlay)) mgr_ctr:AddEventListener(GroupMgrEvent.AddRoom, handler(self, self._evtAddRoom)) mgr_ctr:AddEventListener(GroupMgrEvent.DelRoom, handler(self, self._evtDelRoom)) mgr_ctr:AddEventListener(GroupMgrEvent.UpdateRoom, handler(self, self._evtUpdateRoom)) mgr_ctr:AddEventListener(GroupMgrEvent.UpdatePlayerInfo, handler(self, self._evtUpdatePlayerInfo)) --mgr_ctr:AddEventListener(GroupMgrEvent.BeInvited, handler(self, self._evtInvited)) mgr_ctr:AddEventListener(GroupMgrEvent.UpdateGroup, handler(self, self._evtUpdateGroup)) mgr_ctr:AddEventListener(GroupMgrEvent.NewMailTip, handler(self, self._evtNewMailTip)) mgr_ctr:AddEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse)) mgr_ctr:AddEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom)) mgr_ctr:AddEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData)) mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) mgr_ctr:AddEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord)) mgr_ctr:AddEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant)) mgr_ctr:AddEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState)) mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyReflash, handler(self, self._evtOnFamilyReflash)) mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash)) mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut)) print("家族添加监听") return self end function M:RemoveAll() local mgr_ctr = self._mgr_ctr mgr_ctr:RemoveEventListener(GroupMgrEvent.AddPlay, handler(self, self._evtAddPlay)) mgr_ctr:RemoveEventListener(GroupMgrEvent.DelPlay, handler(self, self._evtDelPlay)) mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdatePlay, handler(self, self._evtUpdatePlay)) mgr_ctr:RemoveEventListener(GroupMgrEvent.AddRoom, handler(self, self._evtAddRoom)) mgr_ctr:RemoveEventListener(GroupMgrEvent.DelRoom, handler(self, self._evtDelRoom)) mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdateRoom, handler(self, self._evtUpdateRoom)) mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdatePlayerInfo, handler(self, self._evtUpdatePlayerInfo)) --mgr_ctr:RemoveEventListener(GroupMgrEvent.BeInvited, handler(self, self._evtInvited)) mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdateGroup, handler(self, self._evtUpdateGroup)) mgr_ctr:RemoveEventListener(GroupMgrEvent.NewMailTip, handler(self, self._evtNewMailTip)) mgr_ctr:RemoveEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse)) mgr_ctr:RemoveEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom)) mgr_ctr:RemoveEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord)) mgr_ctr:RemoveEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut)) print("家族去除监听") end function M:_evtAddPlay(...) local arg = { ... } print("family event _evtAddPlay") local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end view:UpdateFamilyRoom(nil, view._group.id) end function M:_evtDelPlay(...) local arg = { ... } print("family event _evtDelPlay") local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end view:UpdateFamilyRoom(nil, view._group.id) end function M:_evtUpdatePlay(...) local arg = { ... } print("family event _evtUpdatePlay") local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end view:UpdateFamilyRoom(nil, view._group.id) end function M:_evtAddRoom(...) local arg = { ... } print("family event _evtAddRoom") end function M:_evtDelRoom(...) local arg = { ... } print("family event _evtDelRoom") end function M:_evtUpdateRoom(...) local arg = { ... } print("family event _evtUpdateRoom") end function M:_evtUpdatePlayerInfo(...) local arg = { ... } print("family event _evtUpdatePlayerInfo") end function M:_evtInvited(...) local arg = { ... } print("family event _evtInvited") end function M:_evtUpdateGroup(...) local arg = { ... } local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end -- 刷新名字 view:ReflashFamilyList() -- 刷新打烊 view:ReflashBan() print("family event _evtUpdateGroup") end function M:_evtNewMailTip(...) local arg = { ... } print("family event _evtNewMailTip") end function M:_evtOnNewApply(...) print("_evtOnNewApply") local arg = { ... } pt(arg) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end view:ChangeOther() self._child_familyAuditNumber:OnNewApply(arg) end function M:_evtInviteResponse(...) local arg = { ... } local invite_id = arg[1] local g_name = arg[2] local roomid = arg[3] local pid = arg[4] local groupid = arg[5] local roomCtr = ControllerManager.GetController(RoomController) local gameId = DataManager.groups:get(groupid):getPlay(pid).gameId UIPackage.AddPackage('base/newgroup/ui/FGAssist') local imv = FGInvitedMsgView.new( self._root_view, groupid, pid, invite_id, function() roomCtr:PublicJoinRoom( Protocol.WEB_FG_JOIN_ROOM, roomid, groupid, function(response) if (response.ReturnCode == -1) then ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1') -- RestartGame() return end if response.ReturnCode ~= 0 then ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败') -- ViewManager.ChangeView(ViewManager.View_Lobby) return else UpdateBeat:Remove(self.OnUpdate, self) ViewManager.ChangeView(ViewManager.View_Main, gameId) end end, groupid, pid ) end ) -- imv:FillData(data) imv:Show() end function M:_evtIsOpenChatRoom(...) local arg = { ... } print("_evtIsOpenChatRoom") pt(arg) end function M:_evtChatRoomData(...) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local arg = { ... } --totalScore view.com_FamilyChatRoom.ChatRoomData = arg --view.com_FamilyChatRoom.list_chat.numItems = #arg view.com_FamilyChatRoom:Refalsh() end function M:_evtOnNewRecord(...) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local arg = { ... } view.com_FamilyChatRoom:OnNewChatRefalsh(arg[1]) end function M:_evtOnMemberState(...) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end view:ReflashMember(...) --[[ local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local arg = { ... } local group = DataManager.groups:get(view._group.id) for _, player in pairs(arg[1].offlineUserId) do group.memberMap[player].online = 0 end for _, player in pairs(arg[1].onlineUserId) do group.memberMap[player].online = 0 end for _, player in pairs(arg[1].playingUserId) do group.memberMap[player].playing = "startPlaying" end ]] end function M:_evtOnPush_assistant(...) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local arg = { ... } local groupId = arg[1].id local lev = arg[1].lev if view._group == nil or groupId ~= view._group.id then return end view:ChangeOther(lev + 1) end -- reflashType == "joinFamily" 成功加入了亲友圈 -- reflashType == "outFamily" 成员退出了亲友圈 -- reflashType == "kickoutFamily" 成员被踢出了亲友圈 -- reflashType == "changeJoins" 修改了申请信息 function M:_evtOnFamilyReflash(...) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local arg = { ... } local reflashType = arg[1].reflashType if reflashType == "joinFamily" then view:Reflash() end if reflashType == "outFamily" then --local player = DataManager. --local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈" --string.format(tips, ) --MsgWindow.new(self._root_view, "确定要点过吗?") end if reflashType == "changeJoins" then local uid = arg[1].uid local joins = arg[1].joins local gMgr = ControllerManager.GetController(GroupMgrController) local group = DataManager.groups:get(gMgr.groupId) group.joins = joins for _, data in pairs(group.joinsData) do if data.id == uid then group.joinsData[_] = nil end end view:ChangeOther() view._child_familyAuditNumber:Reflash() end if reflashType == "" then end end function M:_evtOnFamilyRoomReflash(...) local arg = { ... } print("_evtOnFamilyRoomReflash") pt(arg) local groupId = arg[1] local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end if view._group == nil or groupId ~= view._group.id then return end view:UpdateFamilyRoom(nil, groupId) end function M:_evtOnFamilyMemberOut(...) local arg = { ... } local arg = arg[1] local uid = arg.uid local groupId = arg.groupId local name = arg.name local group = DataManager.groups:get(groupId) local view = ViewManager.GetCurrenView() if view.class ~= "FamilyMainView" then return end local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈" tips = string.format(tips, name, uid, group.name, groupId) ViewUtil.ShowTips("成员 【%s】") end return M