From ddcfaf7968561fbde6af0142c7fd73c9859fecbc Mon Sep 17 00:00:00 2001 From: mountain Date: Thu, 18 Jan 2024 15:57:02 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B0=EB=9E=98=EC=B1=84=EB=84=90=20?= =?UTF-8?q?=EC=B0=B8=EA=B0=80=EC=9D=B8=EC=9B=90=20=EC=88=98=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/group_chat.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/core/group_chat.go b/core/group_chat.go index 78b3cd9..e5b0edf 100644 --- a/core/group_chat.go +++ b/core/group_chat.go @@ -118,9 +118,12 @@ func (gc *groupChat) ClientDisconnected(msg string, callby *wshandler.Sender) { chanid := v.(string) gc.leaveRoom(chanid, callby.Accid) if k == "public" { - gc.rh.JSONNumIncrBy(chanid, "$.size", -1) - if cfg, ok := gc.chatConfig.Channels[chanid]; ok { - cfg.inoutChan <- "-" + callby.Alias + cnt, _ := gc.rh.JSONDel(chanid, "$.members."+callby.Alias) + if cnt > 0 { + gc.rh.JSONNumIncrBy(chanid, "$.size", -1) + if cfg, ok := gc.chatConfig.Channels[chanid]; ok { + cfg.inoutChan <- "-" + callby.Alias + } } } else { gc.sendUpstreamMessage(&wshandler.UpstreamMessage{ @@ -179,10 +182,13 @@ func (gc *groupChat) LeavePublicChannel(ctx wshandler.ApiCallContext) { chanid := ctx.Arguments[0].(string) cnt, _ := gc.rh.JSONDel(ctx.CallBy.Accid.Hex(), "$.channel.public") if cnt > 0 { - gc.leaveRoom(chanid, ctx.CallBy.Accid) - gc.rh.JSONNumIncrBy(chanid, "$.size", -1) - if cfg, ok := gc.chatConfig.Channels[chanid]; ok { - cfg.inoutChan <- "-" + ctx.CallBy.Alias + cnt, _ = gc.rh.JSONDel(chanid, "$.members."+ctx.CallBy.Alias) + if cnt > 0 { + gc.leaveRoom(chanid, ctx.CallBy.Accid) + gc.rh.JSONNumIncrBy(chanid, "$.size", -1) + if cfg, ok := gc.chatConfig.Channels[chanid]; ok { + cfg.inoutChan <- "-" + ctx.CallBy.Alias + } } } }