hengyang_client/lua_probject/base_project/Game/View/Family/FamilyEventView.lua

394 lines
12 KiB
Lua
Raw Normal View History

2025-06-17 18:09:58 +08:00
local FGInvitedMsgView = import('.FamilyInvitedMsgView')
local FamilyEventView = {}
local M = FamilyEventView
function FamilyEventView.new(root)
setmetatable(M, { __index = root })
local self = setmetatable({}, { __index = M })
2025-08-08 20:17:08 +08:00
return self
end
2025-06-17 18:09:58 +08:00
2025-08-08 20:17:08 +08:00
function M:AddListener()
2025-06-17 18:09:58 +08:00
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))
2025-07-21 14:42:49 +08:00
--mgr_ctr:AddEventListener(GroupMgrEvent.BeInvited, handler(self, self._evtInvited))
2025-06-17 18:09:58 +08:00
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))
2025-07-02 20:13:34 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom))
2025-07-05 21:36:09 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData))
2025-07-28 22:42:58 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply))
2025-07-11 16:05:11 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord))
2025-07-21 18:12:13 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant))
2025-07-24 21:41:05 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState))
2025-07-25 22:17:17 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyReflash, handler(self, self._evtOnFamilyReflash))
2025-07-24 21:41:05 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash))
2025-07-27 00:05:46 +08:00
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut))
2025-07-25 22:17:17 +08:00
print("家族添加监听")
2025-06-17 18:09:58 +08:00
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))
2025-07-28 22:42:58 +08:00
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply))
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord))
2025-07-24 21:41:05 +08:00
mgr_ctr:RemoveEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant))
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState))
2025-07-25 22:17:17 +08:00
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash))
2025-07-27 00:05:46 +08:00
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut))
2025-07-25 22:17:17 +08:00
print("家族去除监听")
end
2025-06-17 18:09:58 +08:00
function M:_evtAddPlay(...)
local arg = { ... }
print("family event _evtAddPlay")
2025-07-25 22:17:17 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
view:UpdateFamilyRoom(nil, view._group.id)
2025-06-17 18:09:58 +08:00
end
function M:_evtDelPlay(...)
local arg = { ... }
print("family event _evtDelPlay")
2025-07-25 22:17:17 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
view:UpdateFamilyRoom(nil, view._group.id)
2025-06-17 18:09:58 +08:00
end
function M:_evtUpdatePlay(...)
local arg = { ... }
print("family event _evtUpdatePlay")
2025-07-25 22:17:17 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
view:UpdateFamilyRoom(nil, view._group.id)
2025-06-17 18:09:58 +08:00
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 = { ... }
2025-07-24 21:41:05 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
2025-07-25 22:17:17 +08:00
-- 刷新名字
2025-07-24 21:41:05 +08:00
view:ReflashFamilyList()
2025-07-25 22:17:17 +08:00
-- 刷新打烊
view:ReflashBan()
2025-06-17 18:09:58 +08:00
print("family event _evtUpdateGroup")
end
function M:_evtNewMailTip(...)
local arg = { ... }
print("family event _evtNewMailTip")
end
2025-07-23 15:40:53 +08:00
function M:_evtOnNewApply(...)
2025-07-10 03:14:40 +08:00
print("_evtOnNewApply")
local arg = { ... }
2025-07-23 15:40:53 +08:00
pt(arg)
2025-07-24 17:04:53 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
2025-07-25 22:17:17 +08:00
view:ChangeOther()
2025-07-28 22:42:58 +08:00
local AuditNumber = BaseView.FindView("FamilyAuditNumber")
if AuditNumber then
AuditNumber:OnNewApply(arg)
end
2025-07-10 03:14:40 +08:00
end
2025-07-28 22:42:58 +08:00
2025-06-17 18:09:58 +08:00
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
2025-06-17 20:34:45 +08:00
UIPackage.AddPackage('base/newgroup/ui/FGAssist')
2025-06-17 18:09:58 +08:00
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
2025-07-02 17:19:20 +08:00
function M:_evtIsOpenChatRoom(...)
local arg = { ... }
2025-08-18 21:44:31 +08:00
self:ReflashChatRoomBtn()
2025-07-02 17:19:20 +08:00
print("_evtIsOpenChatRoom")
pt(arg)
end
2025-07-05 21:36:09 +08:00
function M:_evtChatRoomData(...)
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
view.com_FamilyChatRoom:Refalsh()
ViewUtil.CloseModalWait()
2025-07-05 21:36:09 +08:00
end
2025-07-11 16:05:11 +08:00
function M:_evtOnNewRecord(...)
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
2025-07-17 15:02:14 +08:00
local arg = { ... }
2025-07-11 16:05:11 +08:00
view.com_FamilyChatRoom:OnNewChatRefalsh(arg[1])
2025-07-28 20:42:56 +08:00
view:ReflashChatRoomRedPoint()
2025-07-11 16:05:11 +08:00
end
2025-07-17 15:02:14 +08:00
function M:_evtOnMemberState(...)
2025-07-24 21:41:05 +08:00
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
view:ReflashMember(...)
--[[
2025-07-17 15:02:14 +08:00
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
2025-07-24 21:41:05 +08:00
for _, player in pairs(arg[1].playingUserId) do
group.memberMap[player].playing = "startPlaying"
end
]]
2025-07-17 15:02:14 +08:00
end
2025-07-21 18:12:13 +08:00
function M:_evtOnPush_assistant(...)
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
local arg = { ... }
2025-07-21 21:44:50 +08:00
local groupId = arg[1].id
local lev = arg[1].lev
2025-07-25 22:17:17 +08:00
if view._group == nil or groupId ~= view._group.id then
2025-07-21 21:44:50 +08:00
return
end
2025-08-04 20:34:41 +08:00
view:ChangeOther()
2025-07-21 18:12:13 +08:00
end
-- reflashType == "joinFamily" 成功加入了亲友圈
2025-07-25 23:37:32 +08:00
-- reflashType == "outFamily" 成员退出了亲友圈
-- reflashType == "kickoutFamily" 成员被踢出了亲友圈
2025-07-27 00:05:46 +08:00
-- 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
2025-07-24 17:04:53 +08:00
if reflashType == "joinFamily" then
2025-07-30 18:35:43 +08:00
local uid = arg[1].uid
if DataManager.SelfUser.account_id == uid then
2025-08-07 16:42:31 +08:00
group.lev = 3
2025-07-30 18:35:43 +08:00
view:Reflash()
2025-08-07 17:33:11 +08:00
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
2025-07-30 18:35:43 +08:00
end
2025-08-06 22:29:15 +08:00
--新加入的成员没带权限
arg[1].usersDetail.lev = 3
group:addMember(arg[1].usersDetail)
Broadcast.Send(Broadcast.OnMemberChange)
end
2025-07-25 23:37:32 +08:00
if reflashType == "outFamily" then
2025-07-27 00:05:46 +08:00
--local player = DataManager.
2025-07-25 23:37:32 +08:00
--local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈"
--string.format(tips, )
2025-07-27 00:05:46 +08:00
--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
2025-07-30 18:35:43 +08:00
Broadcast.Send(BroadcastEvent.OnJoinsChange)
--[[
2025-07-27 00:05:46 +08:00
view:ChangeOther()
2025-07-28 21:44:23 +08:00
local win = BaseWindow.FindWindow("FamilyAuditNumber")
if win then
win:Reflash()
end
2025-07-30 18:35:43 +08:00
]]
2025-07-27 00:05:46 +08:00
end
end
-- 刷新房间和成员
2025-07-24 21:41:05 +08:00
function M:_evtOnFamilyRoomReflash(...)
local arg = { ... }
print("_evtOnFamilyRoomReflash")
pt(arg)
local groupId = arg[1]
local view = ViewManager.GetCurrenView()
if view.class ~= "FamilyMainView" then
return
end
2025-07-25 22:17:17 +08:00
if view._group == nil or groupId ~= view._group.id then
2025-07-24 21:41:05 +08:00
return
end
view:UpdateFamilyRoom(nil, groupId)
view:ReflashMember()
2025-07-24 21:41:05 +08:00
end
2025-07-27 00:05:46 +08:00
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
2025-08-06 22:29:15 +08:00
if uid == DataManager.SelfUser.account_id then
if view._group.id == groupId then
2025-08-07 16:32:51 +08:00
view._close_destroy = true
2025-08-06 22:29:15 +08:00
ViewManager.ChangeView(ViewManager.View_Lobby)
end
end
2025-08-07 17:33:11 +08:00
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()
2025-07-27 00:05:46 +08:00
end
2025-06-17 18:09:58 +08:00
return M