军团:军团推送sid引用聊天系统

This commit is contained in:
luying
2021-03-18 17:57:45 +08:00
parent 442a53359e
commit 46a625761c
5 changed files with 66 additions and 106 deletions

View File

@@ -1,10 +1,10 @@
import { Application, ChannelService, FrontendSession, RemoterClass, pinus } from 'pinus';
import { Application, ChannelService } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts';
import { STATUS, CHANNEL_PREFIX } from '../../../consts';
import { GuildType } from '../../../db/Guild';
import { RoleType } from '../../../db/Role';
import { GuildRecType } from '../../../db/GuildRec';
import { UserGuildModel } from '../../../db/UserGuild';
import { leaveGuildChannel, groupRoomId } from '../../../services/chatService';
export default function (app: Application) {
return new GuildRemote(app);
@@ -24,6 +24,8 @@ export class GuildRemote {
private DEMOTION = 'onDemotion';
private PROMOTION = 'onPromotion';
private GUILD_REC_ADD = 'onGuildRecAdd';
private GUILD_ACT_RANK = 'onGuildGateRankUpdate'; // 军团活动排行榜
private GUILD_GATE_ACT_HP = 'onGuildGateHpUpdate'; // 军团活动蛮夷入侵排行榜
/**
* 封装军团相关channel名: 'guild'+guildCode
@@ -31,7 +33,7 @@ export class GuildRemote {
* @param create 是否创建channel
*/
private getChannel(guildCode: string, create: boolean = false) {
let channelName = `guild${guildCode}`;
let channelName = groupRoomId(CHANNEL_PREFIX.GUILD, guildCode);
let channel = this.channelService.getChannel(channelName, create);
return channel
}
@@ -71,74 +73,6 @@ export class GuildRemote {
}
return channel
}
/**
* 玩家上线
* @param roleId 玩家id
* @param sid 玩家所在服 connector
*/
public async enterMyChannel(roleId: string, sid: string) {
let myGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
if(!!myGuild) {
this.enterChannel(myGuild.guildCode, roleId, sid);
}
}
/**
* 加入军团channel
* @param guildCode 军团code
* @param roleId 玩家id
* @param sid 玩家所在服 connector
*/
public enterChannel(guildCode: string, roleId: string, sid: string) {
let channel = this.getChannel(guildCode, true);
// TODO 后续可能添加上下线通知功能
// let param = {
// roleId
// };
// channel.pushMessage('onMemberAdd', resResult(STATUS.SUCCESS, param));
let users = channel.getMembers();
if (users.indexOf(roleId) === -1) {
channel.add(roleId, sid);
}
}
/**
* 玩家下线
* @param roleId 玩家id
* @param sid 玩家所在服 connector
*/
public async leaveMyChannel(roleId: string, sid: string) {
let myGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
if(!!myGuild) {
this.leaveChannel(myGuild.guildCode, roleId, sid);
}
}
/**
* 退出军团channel
* @param guildCode 军团code
* @param roleId 玩家id
* @param sid 玩家所在服 connector
*/
public leaveChannel(guildCode: string, roleId: string, sid?: string) {
let channel = this.getChannel(guildCode, false);
if(!sid) {
sid = channel && channel.getMember(roleId)['sid'];
}
// leave channel
if (!!channel) {
channel.leave(roleId, sid);
}
// TODO 后续可能添加上下线通知功能
// let param = {
// roleId
// };
// channel.pushMessage('onMemberLeave', resResult(STATUS.SUCCESS, param));
}
/**
* 踢出某个成员
@@ -155,7 +89,7 @@ export class GuildRemote {
}, sid);
// 更新人数减少
this.updateInfo(guildCode, { memberCnt: guild.memberCnt, guildCe: guild.guildCe });
this.leaveChannel(guildCode, roleId, sid);
leaveGuildChannel(roleId, sid);
}
/**
@@ -222,4 +156,12 @@ export class GuildRemote {
let { guildCode, type, params, createTime } = guildRecType;
this.pushMessage(guildCode, this.GUILD_REC_ADD, {type, params, createTime});
}
/**
* 向军团推送排行榜名次
* @param guildCode
*/
public pushRank(guildCode: string) {
}
}