聊天:加入玩家发起的群聊和测试用例

This commit is contained in:
liangtongchuan
2021-03-05 21:23:28 +08:00
parent d43fd51e9a
commit 5842723458
10 changed files with 195 additions and 23 deletions
@@ -19,6 +19,7 @@ import { GuildModel } from '../../../db/Guild';
import { gameData } from '../../../pubUtils/data';
import { getMails } from '../../../services/mailService';
import { addRoleToGuildChannel, addRoleToSysChannel, addRoleToWorldChannel, leaveGuildChannel, leaveSysChannel, leaveWorldChannel } from '../../../services/chatService';
export default function (app: Application) {
return new EntryHandler(app);
}
@@ -88,7 +89,8 @@ export class EntryHandler {
// put user into channel
// console.log(JSON.stringify(self.app.rpc.battle))
// await self.app.rpc.battle.battleRemote.add.route(session)(role.roleId, self.app.get('serverId'), role.serverId, true);
addRoleToSysChannel(role.roleId, self.app.get('serverId'), role.serverId);
addRoleToWorldChannel(role.roleId, self.app.get('serverId'), role.serverId);
await self.app.rpc.chat.chatRemote.addWorldChannel.route(session)(role.roleId, serverId, self.app.get('serverId'));
await self.app.rpc.chat.guildRemote.enterMyChannel.route(session)(role.roleId, self.app.get('serverId'));
let heros = await HeroModel.findByRole(role.roleId, [], HERO_SELECT.ENTRY, true);
@@ -110,6 +112,7 @@ export class EntryHandler {
if(userGuild) {
let guild = await GuildModel.findGuild(userGuild.guildCode, role.serverId, GUILD_SELECT.ENTRY);
if(guild) {
addRoleToGuildChannel(role.roleId, self.app.get('serverId'), guild.code);
role['guildAuth'] = userGuild.auth;
let {lv: guildLv, memberCnt} = guild;
let dicGuild = gameData.centerBase.get(guildLv);
@@ -132,7 +135,7 @@ export class EntryHandler {
* @param {Object} session current session object
*
*/
onUserLeave(session: FrontendSession, reason: string) {
async onUserLeave(session: FrontendSession, reason: string) {
if (!session || !session.uid) {
return;
}
@@ -148,6 +151,9 @@ export class EntryHandler {
// this.app.rpc.battle.battleRemote.kick.route(session)(roleId, this.app.get('serverId'), serverId);
this.app.rpc.chat.chatRemote.kickWorldChannel.route(session, true)(roleId, sid, serverId);
this.app.rpc.chat.guildRemote.leaveMyChannel.route(session)(roleId, sid);
await leaveSysChannel(roleId, sid, serverId);
await leaveWorldChannel(roleId, sid, serverId);
await leaveGuildChannel(roleId, sid);
RoleModel.updateRoleInfo(roleId, { quitTime: nowSeconds() });
}