394 lines
12 KiB
Lua
394 lines
12 KiB
Lua
local FGInvitedMsgView = import('.FamilyInvitedMsgView')
|
|
|
|
|
|
local FamilyEventView = {}
|
|
|
|
local M = FamilyEventView
|
|
|
|
function FamilyEventView.new(root)
|
|
setmetatable(M, { __index = root })
|
|
local self = setmetatable({}, { __index = M })
|
|
return self
|
|
end
|
|
|
|
function M:AddListener()
|
|
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("家族添加监听")
|
|
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()
|
|
|
|
local AuditNumber = BaseView.FindView("FamilyAuditNumber")
|
|
|
|
if AuditNumber then
|
|
AuditNumber:OnNewApply(arg)
|
|
end
|
|
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
|
|
view.com_FamilyChatRoom:Refalsh()
|
|
ViewUtil.CloseModalWait()
|
|
end
|
|
|
|
function M:_evtOnNewRecord(...)
|
|
local view = ViewManager.GetCurrenView()
|
|
if view.class ~= "FamilyMainView" then
|
|
return
|
|
end
|
|
local arg = { ... }
|
|
view.com_FamilyChatRoom:OnNewChatRefalsh(arg[1])
|
|
view:ReflashChatRoomRedPoint()
|
|
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()
|
|
end
|
|
|
|
-- reflashType == "joinFamily" 成功加入了亲友圈
|
|
-- reflashType == "outFamily" 成员退出了亲友圈
|
|
-- reflashType == "kickoutFamily" 成员被踢出了亲友圈
|
|
-- reflashType == "changeJoins" 修改了申请信息
|
|
function M:_evtOnFamilyReflash(...)
|
|
local view = ViewManager.GetCurrenView()
|
|
if view.class ~= "FamilyMainView" then
|
|
return
|
|
end
|
|
|
|
local gMgr = ControllerManager.GetController(GroupMgrController)
|
|
local group = DataManager.groups:get(gMgr.groupId)
|
|
|
|
local arg = { ... }
|
|
local reflashType = arg[1].reflashType
|
|
|
|
if reflashType == "joinFamily" then
|
|
local uid = arg[1].uid
|
|
|
|
if DataManager.SelfUser.account_id == uid then
|
|
group.lev = 3
|
|
view:Reflash()
|
|
local tips = "成功加入【%s(%s)】"
|
|
tips = string.format(tips, arg[1].name, arg[1].groupId)
|
|
local win = MsgWindow.new(view._view, tips, MsgWindow.MsgMode.OnlyOk)
|
|
win:Show()
|
|
return
|
|
end
|
|
|
|
--新加入的成员没带权限
|
|
arg[1].usersDetail.lev = 3
|
|
group:addMember(arg[1].usersDetail)
|
|
|
|
Broadcast.Send(Broadcast.OnMemberChange)
|
|
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
|
|
|
|
group.joins = joins
|
|
|
|
for _, data in pairs(group.joinsData) do
|
|
if data.id == uid then
|
|
group.joinsData[_] = nil
|
|
end
|
|
end
|
|
|
|
Broadcast.Send(BroadcastEvent.OnJoinsChange)
|
|
--[[
|
|
view:ChangeOther()
|
|
local win = BaseWindow.FindWindow("FamilyAuditNumber")
|
|
if win then
|
|
win:Reflash()
|
|
end
|
|
]]
|
|
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)
|
|
view:ReflashMember()
|
|
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
|
|
if uid == DataManager.SelfUser.account_id then
|
|
if view._group.id == groupId then
|
|
view._close_destroy = true
|
|
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|
end
|
|
end
|
|
local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈"
|
|
tips = string.format(tips, name, uid, group.name, groupId)
|
|
local win = MsgWindow.new(view._view, tips, MsgWindow.MsgMode.OnlyOk)
|
|
win:Show()
|
|
end
|
|
|
|
return M
|