import { RoleType } from "../../db/Role"; import { FriendShipType } from "../../db/FriendShip"; import * as friendUtil from '../../pubUtils/friendUtil' export class FriendParams { roleId: string; roleName: string; lv: number; headHid: number; sHid: number; ce: number; title: number; serverId: number; serverName: string; type: number; constructor(role: RoleType) { this.roleId = role.roleId; this.roleName = role.roleName; this.lv = role.lv; this.headHid = role.headHid; this.sHid = role.sHid; this.ce = role.ce; this.title = role.title; } setServerName(serverId: number, serverName: string) { this.serverId = serverId; this.serverName = serverName; } setType(type: number) { this.type = type; } } export class FriendRecommendParams extends FriendParams { friendCnt: number = 0; recFrdApplyCnt: number = 0; constructor(role: RoleType) { super(role); if(role.friendCnt) this.friendCnt = role.friendCnt; if(role.recFrdApplyCnt) this.recFrdApplyCnt = role.recFrdApplyCnt; } } export class FriendApplyParams extends FriendParams { applyCode: string; friendCnt: number = 0; constructor(applyCode: string, role: RoleType) { super(role); this.applyCode = applyCode; if(role.friendCnt) this.friendCnt = role.friendCnt; } } export class FriendListParam extends FriendParams { guildName: string = ""; isOnline: boolean = false; quitTime: number = 0; friendValue: number = 0; friendLv: number = 1; canReceive: boolean = false; // 初始没人送肯定不能领取 canSend: boolean = true; // 初始可以赠送 constructor(role: RoleType, myRoleId: string, friendship: FriendShipType) { super(role); if(role.guildName) this.guildName = role.guildName; this.quitTime = role.quitTime; this.friendLv = friendship.friendLv; this.friendValue = friendship.friendValue; friendUtil.setCanReceiveAndCanSend.bind(this, myRoleId, friendship)(); } setOnline(isOnline: boolean) { this.isOnline = isOnline; } } export class FriendValueListParam { roleId: string; friendValue: number = 0; friendLv: number = 1; canReceive: boolean = false; canSend: boolean = true; constructor(roleId: string, myRoleId: string, friendship: FriendShipType) { this.roleId = roleId; this.friendLv = friendship.friendLv; this.friendValue = friendship.friendValue; friendUtil.setCanReceiveAndCanSend.bind(this, myRoleId, friendship)(); } } export class BlackListParam extends FriendParams { guildName: string = ""; isOnline: boolean = false; quitTime: number = 0; constructor(role: RoleType) { super(role); if(role.guildName) this.guildName = role.guildName; this.quitTime = role.quitTime; } setOnline(isOnline: boolean) { this.isOnline = isOnline; } }