106 lines
3.8 KiB
TypeScript
106 lines
3.8 KiB
TypeScript
|
|
import { dispatch} from './dispatcher';
|
|
import { Session, Application } from 'pinus';
|
|
|
|
export function chat(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
|
|
let chatServers = app.getServersByType('chat');
|
|
|
|
if(!chatServers || chatServers.length === 0) {
|
|
cb(new Error('can not find chat servers.'));
|
|
return;
|
|
}
|
|
|
|
let res = dispatch(session.get('roleId'), chatServers);
|
|
cb(null, res.id);
|
|
}
|
|
|
|
export function battle(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
|
|
let battleServers = app.getServersByType('battle');
|
|
|
|
if(!battleServers || battleServers.length === 0) {
|
|
cb(new Error('can not find battle servers.'));
|
|
return;
|
|
}
|
|
|
|
let rid = session.get('roleId');
|
|
|
|
if (msg.args && msg.args.length > 0) {
|
|
for (let arg of msg.args) {
|
|
if (!arg.route) continue;
|
|
if (['battle.comBattleHandler.createTeam', 'battle.comBattleHandler.searchTeam'].indexOf(arg.route) !== -1) {
|
|
rid = Math.random().toString(36).slice(-8);
|
|
session.set('teamCode', rid);
|
|
} else if (arg.route.indexOf('battle.comBattleHandler') !== -1) {
|
|
if (arg.body.teamCode) {
|
|
rid = arg.body.teamCode;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
let res = dispatch(rid, battleServers);
|
|
cb(null, res.id);
|
|
}
|
|
|
|
|
|
export function guild(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
|
|
let guildServers = app.getServersByType('guild');
|
|
|
|
if(!guildServers || guildServers.length === 0) {
|
|
cb(new Error('can not find guild servers.'));
|
|
return;
|
|
}
|
|
|
|
let rid = session.get('roleId');
|
|
|
|
if (msg.args && msg.args.length > 0) {
|
|
for (let arg of msg.args) {
|
|
if (!arg.route) continue;
|
|
|
|
if (['guild.gateActivityHandler.getGateActivity',
|
|
'guild.gateActivityHandler.checkBattle', // 军团活动蛮夷入侵路由,按军团路由
|
|
'guild.gateActivityHandler.action',
|
|
'guild.gateActivityHandler.hitGate',
|
|
'guild.gateActivityHandler.battleEnd',
|
|
'guild.gateActivityHandler.debugGetPrivate',
|
|
'guild.gateActivityHandler.debugStartActivity',
|
|
'guild.gateActivityHandler.debugEndActivity'
|
|
].indexOf(arg.route) !== -1) {
|
|
rid = session.get('guildCode');
|
|
} else if (['guild.cityActivityHandler.getCityStatus',
|
|
'guild.cityActivityHandler.declareCity',
|
|
'guild.cityActivityHandler.checkBattle',
|
|
'guild.cityActivityHandler.hitGate',
|
|
'guild.cityActivityHandler.battleEnd'
|
|
].indexOf(arg.route) !== -1) {
|
|
|
|
if (arg.body.cityId) {
|
|
rid = arg.body.cityId.toString();
|
|
}
|
|
} else if (['guild.raceActivityHandler.getRaceActivity',
|
|
'guild.raceActivityHandler.join',
|
|
'guild.raceActivityHandler.getRace',
|
|
'guild.raceActivityHandler.useItem',
|
|
'guild.raceActivityHandler.battleEnd',
|
|
].indexOf(arg.route) !== -1) {
|
|
rid = session.get('serverId').toString();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
let res = dispatch(rid, guildServers);
|
|
cb(null, res.id);
|
|
}
|
|
|
|
export function gm(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) {
|
|
let gmServers = app.getServersByType('gm');
|
|
|
|
if(!gmServers || gmServers.length === 0) {
|
|
cb(new Error('can not find gm servers.'));
|
|
return;
|
|
}
|
|
|
|
let res = dispatch(session.get('roleId'), gmServers);
|
|
cb(null, res.id);
|
|
} |