diff --git a/game-server/app/servers/chat/remote/guildRemote.ts b/game-server/app/servers/chat/remote/guildRemote.ts index cd8764a48..42636e2cd 100644 --- a/game-server/app/servers/chat/remote/guildRemote.ts +++ b/game-server/app/servers/chat/remote/guildRemote.ts @@ -126,7 +126,7 @@ export class GuildRemote { }, sid); // 更新人数减少 this.updateInfo(guildCode, { memberCnt: guild.memberCnt, guildCe: guild.guildCe }); - leaveGuildChannel(roleId, sid); + leaveGuildChannel(roleId, sid, guildCode); } /** diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index b92982622..cba588d73 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -192,6 +192,7 @@ export class EntryHandler { let roleId = session.get('roleId'); let sid = session.get('sid'); let serverId = session.get('serverId'); + const guildCode = session.get('guildCode'); roleLeave(roleId).then(function (roleInfo) { if (roleInfo.isOnline) { reportOneOnline(roleId, roleInfo.userCode, sid, roleInfo.pkgName); @@ -204,7 +205,7 @@ export class EntryHandler { this.app.rpc.chat.chatRemote.kickWorldChannel.route(session, true)(roleId, sid, serverId); await leaveSysChannel(roleId, sid, serverId); await leaveWorldChannel(roleId, sid, serverId); - await leaveGuildChannel(roleId, sid); + await leaveGuildChannel(roleId, sid, guildCode); RoleModel.updateRoleInfo(roleId, { quitTime: nowSeconds() }); } diff --git a/game-server/app/services/chatChannelService.ts b/game-server/app/services/chatChannelService.ts index 618399f30..0aba3243a 100644 --- a/game-server/app/services/chatChannelService.ts +++ b/game-server/app/services/chatChannelService.ts @@ -67,8 +67,7 @@ export async function leaveCityChannel(roleId: string, sid: string, cityId: numb } -export async function leaveGuildChannel(roleId: string, sid: string) { - const { guildCode } = await RoleModel.findByRoleId(roleId, 'guildCode'); +export async function leaveGuildChannel(roleId: string, sid: string, guildCode: string) { if (!guildCode) return; const roomId = groupRoomId(CHANNEL_PREFIX.GUILD, guildCode); await leaveChannel(roomId, roleId, sid);