From 19323ef71e0526ac0ffeb34b9602d3419b52c497 Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 21 Jun 2022 19:44:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activityMonopolyHandler.ts | 5 - .../activity/handler/dailyCoinHandler.ts | 1 - .../servers/activity/handler/gachaHandler.ts | 1 - .../activity/handler/luckyTurntableHandler.ts | 3 - .../activity/handler/taskPassHandler.ts | 1 - .../battle/handler/dungeonBattleHandler.ts | 1 - .../battle/handler/expeditionBattleHandler.ts | 2 +- .../battle/handler/normalBattleHandler.ts | 15 +- .../app/servers/battle/handler/pvpHandler.ts | 16 +- .../battle/handler/towerBattleHandler.ts | 12 +- .../app/servers/chat/handler/chatHandler.ts | 1 - .../app/servers/connector/filter/global.ts | 6 + .../servers/connector/handler/entryHandler.ts | 2 +- .../servers/guild/handler/auctionHandler.ts | 2 - .../guild/handler/cityActivityHandler.ts | 4 - .../guild/handler/gateActivityHandler.ts | 3 - .../servers/guild/handler/guildBossHandler.ts | 6 - .../guild/handler/guildRefineHandler.ts | 1 - .../guild/handler/guildTrainHandler.ts | 1 - .../guild/handler/raceActivityHandler.ts | 1 - .../app/servers/role/handler/equipHandler.ts | 1 - .../app/servers/role/handler/itemHandler.ts | 45 +- .../app/servers/role/handler/rankHandler.ts | 9 - .../app/servers/role/handler/roleHandler.ts | 1 - .../app/servers/role/handler/shopHandler.ts | 2 - game-server/app/services/checkParam.ts | 1649 +++++++++++++++++ game-server/app/services/pushService.ts | 2 +- game-server/test/activity.test.ts | 4 +- game-server/test/guildactivity.test.ts | 3 +- shared/pubUtils/util.ts | 1 + 30 files changed, 1693 insertions(+), 108 deletions(-) create mode 100644 game-server/app/services/checkParam.ts diff --git a/game-server/app/servers/activity/handler/activityMonopolyHandler.ts b/game-server/app/servers/activity/handler/activityMonopolyHandler.ts index 5a8de76d0..fdc13f847 100644 --- a/game-server/app/servers/activity/handler/activityMonopolyHandler.ts +++ b/game-server/app/servers/activity/handler/activityMonopolyHandler.ts @@ -132,8 +132,6 @@ export class ActivityMonopolyHandler { const serverId = session.get('serverId'); const sid: string = session.get('sid'); - - if (addCount > 0) { let playerData = await getPlayerMonopolyData(activityId, serverId, roleId) let curPosition = playerData.curPosition; if (curPosition == 0) { @@ -169,9 +167,6 @@ export class ActivityMonopolyHandler { let recordResult = await ActivityMonopolyLandModel.addRecord(serverId, activityId, roleId, curPosition, BANK_TYPE.IN, resrouseStr); landData.record = recordResult.record; return resResult(STATUS.SUCCESS, { landData }); - } - - return resResult(STATUS.MONOPOLY_BANK_COUNT_ERROR); } diff --git a/game-server/app/servers/activity/handler/dailyCoinHandler.ts b/game-server/app/servers/activity/handler/dailyCoinHandler.ts index 63aaedeec..3151bc001 100644 --- a/game-server/app/servers/activity/handler/dailyCoinHandler.ts +++ b/game-server/app/servers/activity/handler/dailyCoinHandler.ts @@ -54,7 +54,6 @@ export class DailyCoinHandler { const serverId = session.get('serverId'); const sid = session.get('sid'); const roleName = session.get('roleName'); - if(count < 0) return resResult(STATUS.WRONG_PARMS); let playerData = await getPlayerDailyCoinData(activityId, serverId, roleId) if (!playerData) return resResult(STATUS.ACTIVITY_MISSING); diff --git a/game-server/app/servers/activity/handler/gachaHandler.ts b/game-server/app/servers/activity/handler/gachaHandler.ts index e5c4e5fea..1a9214b49 100644 --- a/game-server/app/servers/activity/handler/gachaHandler.ts +++ b/game-server/app/servers/activity/handler/gachaHandler.ts @@ -48,7 +48,6 @@ export class GachaHandler { */ async pull(msg: { gachaId: number, activityId: number, count: number }, session: BackendSession) { const { gachaId, activityId, count } = msg; - if (gachaId == undefined || activityId == undefined || count == undefined || count < 0) return resResult(STATUS.WRONG_PARMS); const roleId: string = session.get('roleId'); const roleName: string = session.get('roleName'); const sid: string = session.get('sid'); diff --git a/game-server/app/servers/activity/handler/luckyTurntableHandler.ts b/game-server/app/servers/activity/handler/luckyTurntableHandler.ts index e951f5e36..b4d611540 100644 --- a/game-server/app/servers/activity/handler/luckyTurntableHandler.ts +++ b/game-server/app/servers/activity/handler/luckyTurntableHandler.ts @@ -45,9 +45,6 @@ export class LuckyTurntableHandler { */ async pull(msg: { activityId: number, count: number }, session: BackendSession) { const { activityId, count } = msg; - if(count < 0) { - return resResult(STATUS.WRONG_PARMS); - } const roleId = session.get('roleId'); const roleName = session.get('roleName'); const sid = session.get('sid'); diff --git a/game-server/app/servers/activity/handler/taskPassHandler.ts b/game-server/app/servers/activity/handler/taskPassHandler.ts index 30b2f683d..26d5c114d 100644 --- a/game-server/app/servers/activity/handler/taskPassHandler.ts +++ b/game-server/app/servers/activity/handler/taskPassHandler.ts @@ -66,7 +66,6 @@ export class TaskPassHandler { const roleName = session.get('roleName'); const sid = session.get('sid'); const serverId = session.get('serverId'); - if(count <= 0 || !isNumber(count)) return resResult(STATUS.WRONG_PARMS); let playerData = await getTaskPassData(activityId, serverId, roleId) if (!playerData) return resResult(STATUS.ACTIVITY_MISSING); diff --git a/game-server/app/servers/battle/handler/dungeonBattleHandler.ts b/game-server/app/servers/battle/handler/dungeonBattleHandler.ts index 48fbc6f51..a1ef2ef40 100644 --- a/game-server/app/servers/battle/handler/dungeonBattleHandler.ts +++ b/game-server/app/servers/battle/handler/dungeonBattleHandler.ts @@ -29,7 +29,6 @@ export class DungeonBattleHandler { // 购买每日次数 async buyNum(msg: { count: number }, session: BackendSession) { let { count } = msg; - if( !count || count < 0) return resResult(STATUS.WRONG_PARMS); const roleId = session.get('roleId'); const sid = session.get('sid'); diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 18edcd89a..e91c2881f 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -121,7 +121,7 @@ export class ExpeditionBattleHandler { * 进入战斗 * 记录我军数据,生成战斗唯一表示,记录状态 */ - async checkBattle(msg: { expeditionCode: string, expeditionId: number, battleId: number, heroes: Array }, session: BackendSession) { + async checkBattle(msg: { expeditionCode: string, expeditionId: number, battleId: number, heroes: number[] }, session: BackendSession) { const { expeditionCode, expeditionId, battleId, heroes: seqIds = [] } = msg; let roleId = session.get('roleId'); let roleName = session.get('roleName'); diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index e8b330dca..e52c63639 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -2,7 +2,7 @@ import { Application, BackendSession, HandlerService, } from 'pinus'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { BattleSweepRecordModel } from '../../../db/BattleSweepRecord'; import { genCode, getReasonByWarType, getWarTypeName } from '../../../pubUtils/util'; -import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY, TASK_TYPE, KING_EXP_RATIO_TYPE, TA_EVENT, ITEM_CHANGE_REASON } from '../../../consts'; +import { WAR_TYPE, EVENT_STATUS, REDIS_KEY, KING_EXP_RATIO_TYPE, TA_EVENT, ITEM_CHANGE_REASON } from '../../../consts'; import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattleService'; import { checkTowerWar, towerBattleEnd } from '../../../services/battleService'; import { WarReward } from '../../../services/warRewardService'; @@ -12,7 +12,7 @@ import { STATUS } from '../../../consts/statusCode'; import { resResult } from '../../../pubUtils/util'; import { RoleModel } from '../../../db/Role'; import { RScriptRecordModel } from '../../../db/RScriptRecord'; -import { checkBattleHeroes, roleLevelup, getBattleList, calculateWarStar, getBattleListOfTypes, getMainChapter, getStarOfChapter, checkWarCountAndInc } from '../../../services/normalBattleService'; +import { checkBattleHeroes, roleLevelup, calculateWarStar, getBattleListOfTypes, getMainChapter, getStarOfChapter, checkWarCountAndInc } from '../../../services/normalBattleService'; import { checkDungeonNum, checkDungeonAndIncrease, saveDungeonFirst } from '../../../services/dungeonService'; // import { switchOnFunc } from '../../../services/funcSwitchService'; import { gameData } from '../../../pubUtils/data'; @@ -131,8 +131,6 @@ export class NormalBattleHandler { // 关卡列表 async getBattleList(msg: { types: number[] }, session: BackendSession) { const { types } = msg; - if(!isArray(types)) return resResult(STATUS.WRONG_PARMS); - let roleId = session.get('roleId'); let role = await RoleModel.findByRoleId(roleId); @@ -143,7 +141,7 @@ export class NormalBattleHandler { } // 关卡结算,记录使用的武将,获得奖励 - async battleEnd(msg: { battleCode: string, battleId: number, isSuccess: boolean, stars: number[], heroes: Array, activityId: number, pageIndex: number }, session: BackendSession) { + async battleEnd(msg: { battleCode: string, battleId: number, isSuccess: boolean, stars: number[], heroes: number[], activityId: number, pageIndex: number }, session: BackendSession) { const { battleCode, battleId, isSuccess, heroes = [], stars = [], activityId, pageIndex } = msg; let roleId = session.get('roleId'); let roleName = session.get('roleName'); @@ -318,9 +316,7 @@ export class NormalBattleHandler { let sid = session.get('sid'); let serverId = session.get('serverId'); let ip = session.get('ip'); - - if(count < 0) return resResult(STATUS.WRONG_PARMS); - + let warInfo = gameData.war.get(battleId); if (!warInfo) { return resResult(STATUS.BATTLE_MISS_INFO); @@ -443,9 +439,6 @@ export class NormalBattleHandler { const { warId, battleCode, count } = msg; let roleId: string = session.get('roleId'); let vipStartTime: number = session.get('vipStartTime'); - if(!isNumber(count) || count <= 0) { - return resResult(STATUS.WRONG_PARMS); - } let battleRecord = await BattleRecordModel.getBattleRecordByCode(battleCode); if(!battleRecord || battleRecord.roleId != roleId || battleRecord.battleId != warId) { diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index a537ec553..3f05962d7 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -1,24 +1,22 @@ import { Application, BackendSession, pinus, HandlerService, } from 'pinus'; -import { uniq, findWhere, findIndex } from 'underscore'; +import { findIndex } from 'underscore'; import { gameData, getPvpBoxBySeasonNumAndIndex } from '../../../pubUtils/data'; -import { refreshEnemies, getEnemies, getLvByScore, comsumeChallengeCnt, refChallengeCnt, generPVPOppRecInfo, generMyRecInfo, sendLastSeasonRewardIfNotSent, refreshRefOppCnt, generPvpLineupCe } from '../../../services/pvpService'; +import { refreshEnemies, getEnemies, refChallengeCnt, generPVPOppRecInfo, generMyRecInfo, sendLastSeasonRewardIfNotSent, refreshRefOppCnt, generPvpLineupCe } from '../../../services/pvpService'; import { RoleModel, RoleType } from '../../../db/Role'; import { STATUS } from '../../../consts/statusCode'; import { resResult, genCode, checkRoleIsRobot, robotIdComBack } from '../../../pubUtils/util'; import { PvpDefenseModel, pvpUpdateInter } from '../../../db/PvpDefense'; import { PvpSeasonResultModel } from '../../../db/PvpSeasonResult'; -import { PVPConfigModel } from '../../../db/SystemConfig'; import { Rank } from '../../../services/rankService'; import { checkTask, checkTaskInPvpEnd } from '../../../services/task/taskService'; -import { Attack, AttackHero, Defense, DefenseHero, PvpDataReturn } from '../../../domain/battleField/pvp'; +import { Attack, Defense, DefenseHero, PvpDataReturn } from '../../../domain/battleField/pvp'; import { DEBUG_MAGIC_WORD, FIGURE_UNLOCK_CONDITION, ITEM_CHANGE_REASON, LINEUP_NUM, REDIS_KEY, TASK_TYPE } from '../../../consts'; import { PVP } from '../../../pubUtils/dicParam'; import { addItems, getGoldObject, handleCost, unlockFigure } from '../../../services/role/rewardService'; import { pick } from "underscore"; import { HeroModel } from '../../../db/Hero'; import PvpHistoryOpp, { PvpHistoryOppModel } from '../../../db/PvpHistoryOpp'; -import { checkBattleHeroesByHid } from '../../../services/normalBattleService'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { PvpRecordModel } from '../../../db/PvpRecord'; import { pvpEndParamInter } from '../../../pubUtils/interface'; @@ -293,7 +291,6 @@ export class PvpHandler { let { count } = msg; let roleId = session.get('roleId'); let sid = session.get('sid'); - if(count <= 0 || count == undefined) return resResult(STATUS.WRONG_PARMS); let pvpDefense = await PvpDefenseModel.findByRoleId(roleId); if(!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN); @@ -338,12 +335,7 @@ export class PvpHandler { async saveAttack(msg: { heroes: { actorId: number, order: number }[] }, session: BackendSession) { let { heroes } = msg; let roleId = session.get('roleId'); - let sid = session.get('sid'); - - if (heroes.length > LINEUP_NUM || heroes.length <= 0) { - return resResult(STATUS.WRONG_PARMS); - } - + let pvpDefense = await PvpDefenseModel.findByRoleIdIncludeAll(roleId); if(!pvpDefense) return resResult(STATUS.PVP_NOT_OPEN); diff --git a/game-server/app/servers/battle/handler/towerBattleHandler.ts b/game-server/app/servers/battle/handler/towerBattleHandler.ts index 20fb1a4fc..c87b5ab46 100644 --- a/game-server/app/servers/battle/handler/towerBattleHandler.ts +++ b/game-server/app/servers/battle/handler/towerBattleHandler.ts @@ -1,5 +1,5 @@ import { STATUS } from './../../../consts/statusCode'; -import { HANG_UP_CONSTS, ITEM_CHANGE_REASON, MSG_SOURCE, REDIS_KEY, TASK_TYPE } from './../../../consts'; +import { HANG_UP_CONSTS, ITEM_CHANGE_REASON, MSG_SOURCE, REDIS_KEY } from './../../../consts'; import { TaskHero, TowerTaskRecModel, TowerTaskRecType } from './../../../db/TowerTaskRec'; import { HangUpSpdUpRecModel } from './../../../db/HangUpSpdUpRec'; import { HangUpRecordModel } from './../../../db/HangUpRecord'; @@ -7,19 +7,18 @@ import { RoleModel } from './../../../db/Role'; import { TowerRecordModel } from './../../../db/TowerRecord'; import { Application, BackendSession } from 'pinus'; import { resResult, genCode, shouldRefresh } from '../../../pubUtils/util'; -import { calcuHangUpReward, refreshTasks, treatTask, getRemainTime, getTowerStatus, getHungupRewards, getTasks, checkTaskRewards, getTowerTaskCostGold, getHangSpdUpCostGold, getManyHangSpdUpCostGold, getTaskStatus, checkForbiddenChar, checkAndStartHungUp, createNewTowerRecord, getTowerRecByLv } from '../../../services/battleService'; +import { calcuHangUpReward, refreshTasks, treatTask, getRemainTime, getTowerStatus, getHungupRewards, getTasks, checkTaskRewards, getTowerTaskCostGold, getManyHangSpdUpCostGold, getTaskStatus, checkForbiddenChar, checkAndStartHungUp, createNewTowerRecord, getTowerRecByLv } from '../../../services/battleService'; import { addItems, getGoldObject, handleCost } from '../../../services/role/rewardService'; import { checkBattleHeroes } from '../../../services/normalBattleService'; import { gameData } from '../../../pubUtils/data'; import * as dicParam from '../../../pubUtils/dicParam'; -import { isNumber } from 'underscore'; import { HeroModel } from '../../../db/Hero'; import { vipCanSkipTower } from '../../../services/activity/monthlyTicketService'; import { pushTowerMsg } from '../../../services/sysChatService'; import { WarStar } from '../../../domain/dbGeneral'; import { RewardInter } from '../../../pubUtils/interface'; import { combineItems } from '../../../services/role/util'; -import { checkTask, checkTaskInSkipTower } from '../../../services/task/taskService'; +import { checkTaskInSkipTower } from '../../../services/task/taskService'; import { Rank } from '../../../services/rankService'; export default function(app: Application) { @@ -122,10 +121,7 @@ export class TowerBattleHandler { let roleName = session.get('roleName'); let sid = session.get('sid'); let { speedUpCnt } = msg; - - if (!isNumber(speedUpCnt) || speedUpCnt <= 0) { - return resResult(STATUS.WRONG_PARMS); - } + const curTime = new Date(); let role = await RoleModel.findByRoleId(roleId); diff --git a/game-server/app/servers/chat/handler/chatHandler.ts b/game-server/app/servers/chat/handler/chatHandler.ts index 746ca5713..d3c90eb36 100644 --- a/game-server/app/servers/chat/handler/chatHandler.ts +++ b/game-server/app/servers/chat/handler/chatHandler.ts @@ -119,7 +119,6 @@ export class ChatHandler { async getPrivateMessage(msg: { targetRoleId: string, fromSeqId: number, count: number }, session: BackendSession) { const roleId = session.get('roleId'); const { targetRoleId, fromSeqId = Infinity, count = DEFAULT_MSG_PER_PAGE } = msg; - if( count < 0) return resResult(STATUS.WRONG_PARMS); const msgs = await getPrivateMessages(roleId, targetRoleId, fromSeqId, count); const targetRoleInfo = await getSimpleRoleInfo(targetRoleId); return resResult(STATUS.SUCCESS, { targetRoleId, msgs, targetRoleInfo }); diff --git a/game-server/app/servers/connector/filter/global.ts b/game-server/app/servers/connector/filter/global.ts index 1fed69dec..d3773b91e 100644 --- a/game-server/app/servers/connector/filter/global.ts +++ b/game-server/app/servers/connector/filter/global.ts @@ -14,6 +14,8 @@ import { isCheckWord } from "../../../pubUtils/sdkUtil"; import { isDevelopEnv } from "../../../services/utilService"; import { isNumber } from "underscore"; import { redisClient } from "../../../services/redisService"; +import { checkRouteParam } from "../../../services/checkParam"; + export function globalFilter(app: Application) { return new Filter(app); } @@ -52,6 +54,10 @@ class Filter { return next(new Error('globalFilter'), resResult(STATUS.FUNCTION_CLOSE)); } + if(!checkRouteParam(routeRecord.route, msg)) { + return next(new Error('globalFilter'), resResult(STATUS.WRONG_PARMS)); + } + // 玩家屏蔽 if(blockType == BLOCK_TYPE.BLOCK) return next(new Error('globalFilter'), resResult(STATUS.BLOCKED)); if(blockType == BLOCK_TYPE.BAN && this.checkBanRoute(routeRecord.route)) { diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index 72bc12b9b..09ccac665 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -212,7 +212,7 @@ export class EntryHandler { * @param {Object} msg request message * @param {Object} session current session object */ - async gmEnter(msg: { token: string, serverId: number }, session: FrontendSession) { + async gmEnter(msg: { token: string }, session: FrontendSession) { let self = this; diff --git a/game-server/app/servers/guild/handler/auctionHandler.ts b/game-server/app/servers/guild/handler/auctionHandler.ts index 6e4509581..83638d2a1 100644 --- a/game-server/app/servers/guild/handler/auctionHandler.ts +++ b/game-server/app/servers/guild/handler/auctionHandler.ts @@ -190,7 +190,6 @@ export class AuctionHandler { } async offerRecs(msg: { count: number }, session: BackendSession) { - if( msg.count < 0) return resResult(STATUS.WRONG_PARMS); const roleId = session.get('roleId'); const serverId = session.get('serverId'); const lotsData = await LotModel.recentBidLots(serverId, roleId, msg.count); @@ -203,7 +202,6 @@ export class AuctionHandler { } async guildLotRecs(msg: { count: number }, session: BackendSession) { - if( msg.count < 0) return resResult(STATUS.WRONG_PARMS); const guildCode = session.get('guildCode'); const dividends = await DividendModel.findDividendsByGuild(guildCode, msg.count); let lotsData = []; diff --git a/game-server/app/servers/guild/handler/cityActivityHandler.ts b/game-server/app/servers/guild/handler/cityActivityHandler.ts index ac89cbbc8..cd11a191d 100644 --- a/game-server/app/servers/guild/handler/cityActivityHandler.ts +++ b/game-server/app/servers/guild/handler/cityActivityHandler.ts @@ -146,7 +146,6 @@ export class CityActivityHandler { // 开始挑战 async checkBattle(msg: guildInter & { cityId: number, heroes: number[] }, session: BackendSession) { let { cityId, heroes, myUserGuild: userGuild } = msg; - if (!heroes || heroes.length <= 0) return resResult(STATUS.WRONG_PARMS); const roleId = session.get('roleId'); const roleName = session.get('roleName'); @@ -256,8 +255,6 @@ export class CityActivityHandler { const sid = session.get('sid'); let { cityId, code, damage, hid, round } = msg; - if (damage == undefined || damage < 0) return resResult(STATUS.WRONG_PARMS); - let obj = getCityActivityObj(); let { gateHp, maxHp } = await obj.getGateHpAndInc(serverId, cityId); if (gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO); @@ -320,7 +317,6 @@ export class CityActivityHandler { let guildCode = session.get('guildCode'); let serverId = session.get('serverId'); - let { cityId, code, isSuccess } = msg; let obj = getCityActivityObj(); diff --git a/game-server/app/servers/guild/handler/gateActivityHandler.ts b/game-server/app/servers/guild/handler/gateActivityHandler.ts index 2b4fa3d0e..474100434 100644 --- a/game-server/app/servers/guild/handler/gateActivityHandler.ts +++ b/game-server/app/servers/guild/handler/gateActivityHandler.ts @@ -61,8 +61,6 @@ export class GateActivityHandler { // 开启挑战 async checkBattle(msg: guildInter & { heroes: number[] }, session: BackendSession) { let { heroes, myUserGuild: userGuild } = msg; - if (!heroes || heroes.length <= 0) return resResult(STATUS.WRONG_PARMS); - const roleId = session.get('roleId'); const roleName = session.get('roleName'); const serverId = session.get('serverId'); @@ -163,7 +161,6 @@ export class GateActivityHandler { let sid = session.get('sid'); let guildCode = session.get('guildCode'); let serverId = session.get('serverId'); - let { code, isSuccess, gateHp } = msg; diff --git a/game-server/app/servers/guild/handler/guildBossHandler.ts b/game-server/app/servers/guild/handler/guildBossHandler.ts index c1bf26feb..64931771d 100644 --- a/game-server/app/servers/guild/handler/guildBossHandler.ts +++ b/game-server/app/servers/guild/handler/guildBossHandler.ts @@ -159,9 +159,6 @@ export class GuildHandler { if (!flag) { return resResult(STATUS.REDLOCK_ERR); } - if(damage < 0) { - return resResult(STATUS.WRONG_PARMS); - } //记录伤害 let bossInstance = await BossInstanceModel.updateBossHp(bossCode, zoomInDamage(damage), roleId); @@ -211,8 +208,6 @@ export class GuildHandler { const roleId = session.get('roleId'); const roleName = session.get('roleName'); const sid = session.get('sid'); - - const serverId: number = parseInt(session.get('serverId')); let bossInstance = await BossInstanceModel.findByCode(bossCode); if(!bossInstance) return resResult(STATUS.WRONG_PARMS); @@ -240,7 +235,6 @@ export class GuildHandler { const { count, myUserGuild: userGuild } = msg; const roleId: string = session.get('roleId'); const sid: string = session.get('sid'); - if(!count || count < 0) return resResult(STATUS.WRONG_PARMS); let bossInstance = await BossInstanceModel.findBossInstance(userGuild.guildCode); if(!bossInstance) return resResult(STATUS.GUILD_SCRIPT_NOT_OPENED); diff --git a/game-server/app/servers/guild/handler/guildRefineHandler.ts b/game-server/app/servers/guild/handler/guildRefineHandler.ts index 836e9d471..35241c930 100644 --- a/game-server/app/servers/guild/handler/guildRefineHandler.ts +++ b/game-server/app/servers/guild/handler/guildRefineHandler.ts @@ -48,7 +48,6 @@ export class GuildRefineHandler { */ async refine(msg: guildInter & { id: number, count: number }, session: BackendSession) { let { id, count, myUserGuild: userGuild } = msg; - if( count < 0) return resResult(STATUS.WRONG_PARMS); const roleId: string = session.get('roleId'); const sid: string = session.get('sid'); const roleName: string = session.get('roleName'); diff --git a/game-server/app/servers/guild/handler/guildTrainHandler.ts b/game-server/app/servers/guild/handler/guildTrainHandler.ts index 961d146bd..c73f7d470 100644 --- a/game-server/app/servers/guild/handler/guildTrainHandler.ts +++ b/game-server/app/servers/guild/handler/guildTrainHandler.ts @@ -352,7 +352,6 @@ export class GuildTrainHandler { //购买挑战次数 async purchaseTrainCount(msg: guildInter & { count: number }, session: BackendSession) { let { count, myUserGuild } = msg; - if( count < 0) return resResult(STATUS.WRONG_PARMS); const roleId: string = session.get('roleId'); const serverId: number = parseInt(session.get('serverId')); const sid: string = session.get('sid'); diff --git a/game-server/app/servers/guild/handler/raceActivityHandler.ts b/game-server/app/servers/guild/handler/raceActivityHandler.ts index 124c4b11a..cda59a420 100644 --- a/game-server/app/servers/guild/handler/raceActivityHandler.ts +++ b/game-server/app/servers/guild/handler/raceActivityHandler.ts @@ -165,7 +165,6 @@ export class RaceActivityHandler { let index = getGAIndexInPinus(this.aid); let { id, count, toGuild } = msg; - if (!count || count < 0) return resResult(STATUS.WRONG_PARMS); let obj = getRaceActivityObj(); let woodenHorse = obj.getWoodenHorse(toGuild, serverId); if (!woodenHorse) return resResult(STATUS.WRONG_PARMS); diff --git a/game-server/app/servers/role/handler/equipHandler.ts b/game-server/app/servers/role/handler/equipHandler.ts index 49192d4f0..e83949354 100644 --- a/game-server/app/servers/role/handler/equipHandler.ts +++ b/game-server/app/servers/role/handler/equipHandler.ts @@ -716,7 +716,6 @@ export class EquipHandler { //宝石合成 public async composeStone(msg: { id: number, count: number }, session: BackendSession) { let { id, count } = msg; - if(count < 0) return resResult(STATUS.WRONG_PARMS); let roleId: string = session.get('roleId'); let roleName: string = session.get('roleName'); let sid: string = session.get('sid'); diff --git a/game-server/app/servers/role/handler/itemHandler.ts b/game-server/app/servers/role/handler/itemHandler.ts index 9a13f7912..de3bce5c8 100644 --- a/game-server/app/servers/role/handler/itemHandler.ts +++ b/game-server/app/servers/role/handler/itemHandler.ts @@ -35,8 +35,6 @@ export class ItemHandler { const roleName = session.get('roleName'); const guildCode = session.get('guildCode'); - - if (count > 0) { let consumeResult = await handleCost(roleId, sid, [{ id: id, count: count }], ITEM_CHANGE_REASON.USE_GIFT_PACKAGE); if (!consumeResult) return resResult(STATUS.ACTIVITY_RES_NOT_ENOUGH); @@ -55,9 +53,6 @@ export class ItemHandler { } let result = await useGiftPackage(roleId, roleName, sid, serverId, guildCode, giftID, selected, count); return result; - } - - return resResult(STATUS.WRONG_PARMS); } @@ -69,7 +64,6 @@ export class ItemHandler { const ip = session.get('ip'); const serverId = session.get('serverId'); - if (count > 0) { let dicGoods = gameData.goods.get(id); if (!dicGoods) { return resResult(STATUS.DIC_DATA_NOT_FOUND); @@ -96,10 +90,6 @@ export class ItemHandler { return resResult(STATUS.SUCCESS, { apJson }); - } - - return resResult(STATUS.WRONG_PARMS); - } // 购买体力道具 @@ -188,23 +178,6 @@ export class ItemHandler { return resResult(STATUS.SUCCESS, { goods }); } - public async debugIncAp(msg: { magicWord: string, ap: number }, session: BackendSession) { - const { magicWord } = msg; - if (magicWord !== DEBUG_MAGIC_WORD) { - return resResult(STATUS.TOKEN_ERR); - } - - const roleId = session.get('roleId'); - const sid = session.get('sid'); - const ip = session.get('ip'); - const serverId = session.get('serverId'); - - let role = await RoleModel.findByRoleId(roleId, 'lv'); - let apJson = await setAp(serverId, roleId, ip, role.lv, msg.ap, sid, ITEM_CHANGE_REASON.DEBUG); - if (!apJson) return resResult(STATUS.BATTLE_ACTION_POINT_LACK) - return resResult(STATUS.SUCCESS, { apJson }); - } - public async getAp(msg: {}, session: BackendSession) { let roleId = session.get('roleId'); let ip = session.get('ip'); @@ -233,6 +206,24 @@ export class ItemHandler { return resResult(STATUS.SUCCESS, { ap, apBefore }); } + + public async debugIncAp(msg: { magicWord: string, ap: number }, session: BackendSession) { + const { magicWord } = msg; + if (magicWord !== DEBUG_MAGIC_WORD) { + return resResult(STATUS.TOKEN_ERR); + } + + const roleId = session.get('roleId'); + const sid = session.get('sid'); + const ip = session.get('ip'); + const serverId = session.get('serverId'); + + let role = await RoleModel.findByRoleId(roleId, 'lv'); + let apJson = await setAp(serverId, roleId, ip, role.lv, msg.ap, sid, ITEM_CHANGE_REASON.DEBUG); + if (!apJson) return resResult(STATUS.BATTLE_ACTION_POINT_LACK) + return resResult(STATUS.SUCCESS, { apJson }); + } + public async debugResetBuyTimes(msg: { magicWord: string }, session: BackendSession) { const { magicWord } = msg; if (magicWord !== DEBUG_MAGIC_WORD) { diff --git a/game-server/app/servers/role/handler/rankHandler.ts b/game-server/app/servers/role/handler/rankHandler.ts index c74641b47..ba9897b73 100644 --- a/game-server/app/servers/role/handler/rankHandler.ts +++ b/game-server/app/servers/role/handler/rankHandler.ts @@ -154,13 +154,4 @@ export class RoleHandler { goods }) } - - async test(msg: {}, session: BackendSession) { - let roles = await RoleModel.find({}).lean(); - for (let role of roles) { - let heroes = await HeroModel.find({ roleId: role.roleId }).lean(); - await RoleModel.updateRoleInfo(role.roleId, { heroNum: heroes.length, heroNumUpdatedAt: nowSeconds() }); - - } - } } \ No newline at end of file diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index a4cc51068..676d18dad 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -107,7 +107,6 @@ export class RoleHandler { //神像强化 async roleTeraphStrengthen(msg: { id: number, count: number }, session: BackendSession) { let { id, count } = msg; - if( count < 0) return resResult(STATUS.WRONG_PARMS); let roleId = session.get('roleId'); let sid: string = session.get('sid'); let serverId: number = session.get('serverId'); diff --git a/game-server/app/servers/role/handler/shopHandler.ts b/game-server/app/servers/role/handler/shopHandler.ts index 41581b352..215264325 100644 --- a/game-server/app/servers/role/handler/shopHandler.ts +++ b/game-server/app/servers/role/handler/shopHandler.ts @@ -53,7 +53,6 @@ export class ShopHandler { let serverId = session.get('serverId'); let { activityId = 0, shopItemId, count } = msg; - if( count < 0) return resResult(STATUS.WRONG_PARMS); let dicShopItem = await getShopDicById(activityId, shopItemId, roleId, serverId); if(!dicShopItem) return STATUS.DIC_DATA_NOT_FOUND; @@ -95,7 +94,6 @@ export class ShopHandler { let roleName = session.get('roleName'); let sid = session.get('sid'); let { goodsId, count } = msg; - if(!count || count < 0) return resResult(STATUS.WRONG_PARMS); let dicGoods = gameData.goods.get(goodsId); if(!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts new file mode 100644 index 000000000..caf1d233e --- /dev/null +++ b/game-server/app/services/checkParam.ts @@ -0,0 +1,1649 @@ +import { isArray, isBoolean, isNumber, isString } from "underscore"; +import { BLOCK_OPEATE, DEBUG_MAGIC_WORD, GM_MAIL_TYPE, GUILD_AUTH, GUILD_STRUCTURE, LINEUP_NUM, MSG_TYPE } from "../consts"; +import { pvpEndParamInter } from "../pubUtils/interface"; + +export function checkRouteParam(route: string, msg: any) { + switch(route) { + case 'activity.activityHandler.getAllOpenActivity': + case 'activity.gachaHandler.getGachaList': + case 'activity.gachaHandler.getVisitedHero': + case 'activity.gachaHandler.getGuideGachaData': + case 'activity.gachaHandler.guidePull': + case 'activity.selfServiceShopHandler.getSelfServiceShopActivity': + case "battle.comBattleHandler.cancelSearch": + case "battle.comBattleHandler.getTeamRec": + case "battle.comBattleHandler.getAssistCnt": + case "battle.comBattleHandler.getComBtlCnt": + case "battle.comBattleHandler.getRecentTeammates": + case "battle.dailyBattleHandler.getData": + case "battle.dungeonBattleHandler.getData": + case "battle.eventBattleHandler.getEvents": + case "battle.expeditionBattleHandler.getStatus": + case "battle.expeditionBattleHandler.resetStatus": + case "battle.normalBattleHandler.getMainStarBox": + case "battle.pvpHandler.getData": + case "battle.pvpHandler.refreshOppPlayer": + case "battle.pvpHandler.getRank": + case "battle.pvpHandler.getRec": + case "battle.towerBattleHandler.getStatus": + case "battle.towerBattleHandler.checkHangUpRewards": + case "battle.towerBattleHandler.recHangUpRewards": + case "battle.towerBattleHandler.getTasks": + case "battle.towerBattleHandler.refreshTasks": + case "battle.towerBattleHandler.skipTower": + case "chat.chatHandler.getRecentPrivateChats": + case "chat.chatHandler.getGroupMessages": + case "connector.entryHandler.getData": + case "connector.entryHandler.refresh": + case "gate.gateHandler.queryEntry": + case "guild.auctionHandler.checkDividend": + case "guild.auctionHandler.myWatching": + case "guild.cityActivityHandler.getCityActivity": + case "guild.cityActivityHandler.resetChallengeTime": + case "guild.donateHandler.getDonation": + case "guild.gateActivityHandler.getGateActivity": + case "guild.guildBossHandler.getBossInstance": + case "guild.guildBossHandler.openBossInstance": + case "guild.guildBossHandler.battleBoss": + case "guild.guildHandler.getMyGuildInfo": + case "guild.guildHandler.getInviteMemberList": + case "guild.guildHandler.getActiveRank": + case "guild.guildRefineHandler.getRefine": + case "guild.guildTrainHandler.getTrainInstance": + case "guild.guildTrainHandler.getTrainReports": + case "guild.guildTrainHandler.getTrainBoxs": + case "guild.raceActivityHandler.getRaceActivity": + case "guild.raceActivityHandler.join": + case "guild.raceActivityHandler.getRace": + case "guild.wishPoolHandler.getWishPool": + case "guild.wishPoolHandler.getReports": + case "role.friendHandler.getRecommend": + case "role.friendHandler.getApplyList": + case "role.friendHandler.getFriendList": + case "role.friendHandler.getBlackList": + case "role.itemHandler.getAp": + case "role.mailHandler.getMails": + case "role.rankHandler.getGeneralRank": + case "role.rankHandler.getRankReward": + case "role.roleHandler.roleTitleLevelUp": + case "role.roleHandler.getSchoolList": + case "role.taskHandler.getPvpTaskList": + case "role.taskHandler.getTaskList": + case "role.taskHandler.receiveActiveReward": + { + break; + } + case 'activity.activityMonopolyHandler.getMonopolyActivity': + case 'activity.dailyChallengeHandler.getDailyChallengesActivity': + case 'activity.dailyCoinHandler.getDailyCoinActivity': + case 'activity.dailyGiftsHandler.getDailyGiftsActivity': + case 'activity.dailyGKHandler.getDailyGKActivity': + case 'activity.dailyMealHandler.getDailyMealActivity': + case 'activity.dailyRMBGiftsHandler.getDailyRMBGiftsActivity': + case 'activity.firstGiftHandler.getFirstGiftActivity': + case 'activity.growthFundHandler.getGrowthFundActivity': + case 'activity.growthHandler.getGrowthActivity': + case 'activity.guildPayHandler.getGuildPayData': + case 'activity.limitPackageHandler.getNewPlayerLimitPackageActivity': + case 'activity.luckyTurntableHandler.getTurntableData': + case 'activity.monthlyTicketHandler.getMonthlyTicketActivity': + case 'activity.newHeroGachaHandler.getNewHeroGachaActivity': + case 'activity.newHeroGiftsHandler.getNewHeroGiftsActivity': + case 'activity.newHeroGKHandler.getNewHeroGKActivity': + case 'activity.popUpShopHandler.getPopUpShopActivity': + case 'activity.rechargeMoneyHandler.getRechargeMoneyActivity': + case 'activity.refreshShopHandler.getRefreshShopActivity': + case 'activity.refreshTaskHandler.getRefreshTaskActivity': + case 'activity.sevenDaysHandler.getSevenDaysActivity': + case 'activity.signInHandler.getSignInActivity': + case 'activity.taskPassHandler.getTaskPassData': + case 'activity.thirtyDaysHandler.getThirtyDaysActivity': + case 'activity.timeLimitRankHandler.getTimeLimitRankData': + case 'activity.treasureHuntHandler.getTreasureHuntActivity': + case 'activity.vipRechargeMoneyHandler.getVipRechargeMoneyActivity': + case 'activity.yuanbaoShopHandler.getShopActivity': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.activityMonopolyHandler.move': + { + if(!checkNaturalNumbers(msg.activityId, msg.step)) return false; + if(msg.step < 0 || msg.step > 7) return false; + break; + } + case 'activity.activityMonopolyHandler.bank': + { + if(!checkNaturalNumbers(msg.activityId, msg.addCount)) return false; + break; + } + case 'activity.activityMonopolyHandler.getRefreshShopActivity': + { + if(!checkNaturalNumbers(msg.activityId, msg.shopActivityId)) return false; + break; + } + case 'activity.activityMonopolyHandler.buyGood': + { + let {monopolyActivityId, shopActivityId, roundIndex, id, pageIndex} = msg; + if(!checkNaturalNumbers(monopolyActivityId, shopActivityId, roundIndex, id, pageIndex)) return false; + break; + } + case 'activity.dailyChallengeHandler.getDailyChallengeReward': + case 'activity.sevenDaysHandler.getDailyChallengeReward': + { + let {activityId, dayIndex, cellIndex, type} = msg; + if(!checkNaturalNumbers(activityId, dayIndex, cellIndex, type)) return false; + break; + } + case 'activity.dailyCoinHandler.exchangeCoin': + { + if(!checkNaturalNumbers(msg.activityId, msg.count)) return false; + break; + } + case 'activity.dailyCoinHandler.receiveExtraReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.dailyGiftsHandler.buyDailyGiftsCell': + case 'activity.sevenDaysHandler.buyDailyGiftsCell': + { + if(!checkNaturalNumbers(msg.activityId, msg.dayIndex, msg.cellIndex)) return false; + break; + } + case 'activity.dailyGKHandler.getGK': + { + if(!checkNaturalNumbers(msg.activityId, msg.dayIndex)) return false; + break; + } + case 'activity.dailyMealHandler.getDailyMealReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.type)) return false; + break; + } + case 'activity.dailyRMBGiftsHandler.getDailyRMBGiftsReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.id)) return false; + break; + } + case 'activity.firstGiftHandler.getFirstGiftReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.pageIndex)) return false; + break; + } + case 'activity.gachaHandler.pull': + { + if(!checkNaturalNumbers(msg.activityId, msg.gachaId, msg.count)) return false; + break; + } + case 'activity.gachaHandler.setHope': + { + if(!checkNaturalNumbers(msg.gachaId)) return false; + if(!checkNaturalArray(msg.hope)) return false; + for(let { id, hid } of msg.hope) { + if(!checkNaturalNumbers(id, hid)) return false; + } + break; + } + case 'activity.gachaHandler.drawTurnTable': + { + if(!checkNaturalNumbers(msg.gachaId)) return false; + break; + } + case 'activity.gachaHandler.setPickHero': + { + if(!checkNaturalNumbers(msg.gachaId, msg.activityId, msg.pickHero)) return false; + break; + } + case 'activity.gachaHandler.visitHero': + { + if(!checkNaturalNumbers(msg.hid)) return false + break; + } + case 'activity.gachaHandler.saveToCandidates': + case 'activity.gachaHandler.decide': + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case 'activity.growthFundHandler.getGrowthFundCellReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.pageIndex, msg.cellIndex)) return false; + break; + } + case 'activity.growthHandler.getGrowthCellReward': + case 'activity.sevenDaysHandler.getGrowthCellReward': + { + let {activityId, dayIndex, cellIndex, type} = msg; + if(!checkNaturalNumbers(activityId, dayIndex, cellIndex, type)) return false; + break; + } + case 'activity.growthHandler.getGrowthDayReward': + case 'activity.sevenDaysHandler.getGrowthDayReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.id)) return false; + break; + } + case 'activity.guildPayHandler.receiveItems': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.limitPackageHandler.getLimitPackageActivity': + { + if(!checkNaturalNumbers(msg.activityId, msg.type)) return false; + break; + } + case 'activity.limitPackageHandler.buyGood': + { + if(!checkNaturalNumbers(msg.activityId, msg.roundIndex, msg.id)) return false; + break; + } + case 'activity.luckyTurntableHandler.pull': + { + if(!checkNaturalNumbers(msg.activityId, msg.count)) return false; + break; + } + case 'activity.luckyTurntableHandler.receiveBox': + { + if(!checkNaturalNumbers(msg.activityId, msg.boxCount)) return false; + break; + } + case 'activity.monthlyTicketHandler.getMonthlyTicketReward': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.newHeroGachaHandler.selectedHero': + { + if(!checkNaturalNumbers(msg.activityId, msg.hid)) return false; + break; + } + case 'activity.newHeroGachaHandler.pull': + { + if(!checkNaturalNumbers(msg.activityId, msg.hid, msg.count)) return false; + break; + } + case 'activity.newHeroGiftsHandler.exchangePoint': + { + if(!checkNaturalNumbers(msg.activityId, msg.index)) return false; + break; + } + case 'activity.newHeroGKHandler.getGK': + { + if(!checkNaturalNumbers(msg.activityId, msg.pageIndex, msg.index)) return false; + break; + } + case 'activity.popUpShopHandler.checkPopUpCondition': + { + if(!checkNaturalNumbers(msg.conditionType)) return false; + break; + } + case 'activity.popUpShopHandler.buyGift': + { + if(!checkNaturalNumbers(msg.activityId, msg.id)) return false; + if(!checkNaturalStrings(msg.code)) return false; + break; + } + case 'activity.rechargeMoneyHandler.pull': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.refreshShopHandler.buyGood': + { + let { activityId, roundIndex, id, pageIndex } = msg; + if(!checkNaturalNumbers(activityId, roundIndex, id, pageIndex)) return false; + break; + } + case 'activity.refreshTaskHandler.getReward': + { + let {activityId, roundIndex, pageIndex, id, type} = msg; + if(!checkNaturalNumbers(activityId, roundIndex, id, pageIndex, type)) return false; + break; + } + case 'activity.refreshTaskHandler.exchangePoint': + { + if(!checkNaturalNumbers(msg.activityId, msg.roundIndex)) return false; + break; + } + case 'activity.selfServiceShopHandler.buyGift': + { + if(!checkNaturalNumbers(msg.activityId, msg.roundIndex, msg.index)) return false; + break; + } + case 'activity.selfServiceShopHandler.saveGood': + { + let { data } = msg; + for(let { activityId, roundIndex, index, cellIndex, rewardIndex } of data) { + if(!checkNaturalNumbers(activityId, roundIndex, index, cellIndex, rewardIndex)) return false; + } + break; + } + case 'activity.selfServiceShopHandler.buyRecources': + { + if(!checkNaturalNumbers(msg.activityId, msg.roundIndex)) return false; + break; + } + case 'activity.selfServiceShopHandler.getWarId': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.signInHandler.getSignInReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.dayIndex)) return false; + break; + } + case 'activity.taskPassHandler.receiveItems': + { + if(!checkNaturalNumbers(msg.activityId, msg.pageIndex, msg.lv)) return false; + break; + } + case 'activity.taskPassHandler.speedUp': + { + if(!checkNaturalNumbers(msg.activityId, msg.count)) return false; + break; + } + case 'activity.thirtyDaysHandler.getThirtyDaysCellReward': + { + let { activityId, pageIndex, cellIndex, tab } = msg; + if(!checkNaturalNumbers(activityId, pageIndex, cellIndex, tab)) return false; + break; + } + case 'activity.thirtyDaysHandler.getThirtyDaysPointReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.timeLimitRankHandler.getRank': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.treasureHuntHandler.getFirstPageReward': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.treasureHuntHandler.buyGoods': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.treasureHuntHandler.getTaskReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.treasureHuntHandler.challenge': + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case 'activity.treasureHuntHandler.buyTreasureShopGoods': + { + if(!checkNaturalNumbers(msg.activityId, msg.cellIndex)) return false; + break; + } + case 'activity.vipRechargeMoneyHandler.getVipRechargeMoneyReward': + { + if(!checkNaturalNumbers(msg.activityId, msg.id)) return false; + break; + } + case 'activity.vipRechargeMoneyHandler.getOrderList': + { + if(!checkNaturalNumbers(msg.begin, msg.count)) return false; + if(msg.count < 0 && msg.count > 100) return false + break; + } + case "battle.barrageHandler.getBarrageList": + { + if(!checkNaturalStrings(msg.rid)) return false; + break; + } + case "battle.barrageHandler.sendBarrage": + { + let { warId, rid, index, content } = msg; + if(!checkNaturalNumbers(warId)) return false; + if(!checkNaturalStrings(rid, index, content)) return false; + break; + } + case "battle.comBattleHandler.createTeam": + { + let { blueprtId, pub, ceLimit } = msg; + if(!checkNaturalNumbers(blueprtId, ceLimit)) return false; + if(!checkBoolean(pub)) return false; + break; + } + case "battle.comBattleHandler.searchTeam": + { + let { lv, magicWord } = msg; + if(!checkNumberArray(lv)) return false; + if(!!magicWord && magicWord != DEBUG_MAGIC_WORD) return false; + break; + } + case "battle.comBattleHandler.joinTeam": + { + if(!checkNaturalStrings(msg.teamCode)) return false; + if(!checkBoolean(msg.isFrd)) return false; + break; + } + case "battle.comBattleHandler.setFrdAssistance": + { + if(!checkNaturalStrings(msg.teamCode)) return false; + if(!checkBoolean(msg.isFrd)) return false; + break; + } + case "battle.comBattleHandler.setupHeroes": + { + let { teamCode, heroes, battleCode } = msg; + if(!checkNaturalStrings(teamCode, battleCode)) return false; + if(!checkNumberArray(heroes)) return false; + break; + } + case "battle.comBattleHandler.rmTeammate": + { + if(!checkNaturalStrings(msg.teamCode, msg.roleIdToRm)) return false; + break; + } + case "battle.comBattleHandler.dismiss": + case "battle.comBattleHandler.startBattle": + case "battle.comBattleHandler.autoInvite": + case "battle.comBattleHandler.comBattleEnd": + case "battle.comBattleHandler.getComBtlStatus": + { + if(!checkNaturalStrings(msg.teamCode)) return false; + break; + } + case "battle.comBattleHandler.action": + { + let { teamCode, bossHurts, killed, curRnd } = msg; + if(!checkNaturalStrings(teamCode)) return false; + if(!checkNumberArray(killed)) return false; + if(!checkNaturalNumbers(curRnd)) return false; + if(!checkNaturalArray(bossHurts)) return false; + for(let { hid, dataId, hurtHp } of bossHurts) { + if(!checkNaturalNumbers(hid, dataId, hurtHp)) return false; + } + break; + } + case "battle.comBattleHandler.getBlueprtCount": + { + if(!checkNumberArray(msg.ids)) return false; + break; + } + case "battle.comBattleHandler.sendTeamMsg": + { + let { teamCode, type, content, targetRoleId, targetMsgCode } = msg; + if(!checkNaturalStrings(teamCode, content, targetRoleId, targetMsgCode)) return false; + if(!checkNaturalNumbers(type)) return false; + break; + } + case "battle.comBattleHandler.inviteTeammate": + { + if(!checkNaturalStrings(msg.teamCode, msg.targetRoleId)) return false; + break; + } + case "battle.dailyBattleHandler.buyNum": + { + if(!checkNaturalNumbers(msg.type, msg.count)) return false; + break; + } + case "battle.dungeonBattleHandler.buyNum": + { + if(!checkNaturalNumbers(msg.count)) return false; + break; + } + case "battle.dungeonBattleHandler.getFirstInfo": + { + if(!checkNaturalNumbers(msg.movePoint)) return false; + break; + } + case "battle.eventBattleHandler.checkAnswer": + { + let {eventId, eventCode, questionId, answer} = msg; + if(!checkNaturalNumbers(eventId, questionId, answer)) return false; + if(!checkNaturalStrings(eventCode)) return false; + break; + } + case "battle.eventBattleHandler.receiveEventReward": + { + if(!checkNaturalNumbers(msg.eventId)) return false; + if(!checkNaturalStrings(msg.eventCode)) return false; + break; + } + case "battle.expeditionBattleHandler.getEnemies": + { + if(!checkNaturalNumbers(msg.expeditionId)) return false; + if(!checkNaturalStrings(msg.expeditionCode)) return false; + break; + } + case "battle.expeditionBattleHandler.checkBattle": + { + let { expeditionCode, expeditionId, battleId, heroes } = msg; + if(!checkNaturalStrings(expeditionCode)) return false; + if(!checkNaturalNumbers(expeditionId, battleId)) return false; + if(!checkNumberArray(heroes)) return false + break; + } + case "battle.expeditionBattleHandler.battleEnd": + { + let { expeditionCode, expeditionId, battleCode, battleId, isSuccess, heroes, enemies, star, stars } = msg; + if(!checkNaturalStrings(expeditionCode, battleCode)) return false; + if(!checkNaturalNumbers(expeditionId, battleId, star)) return false; + if(!checkBoolean(isSuccess)) return false; + if(!checkExpeditionBattleHeroFormat(heroes, enemies)) return false; + if(!checkNumberArray(stars)) return false; + break; + } + case "battle.expeditionBattleHandler.pointReward": + { + if(!checkNaturalNumbers(msg.point)) return false; + break; + } + case "battle.normalBattleHandler.checkBattle": + { + let { battleId, heroes } = msg; + if(!checkNaturalNumbers(battleId)) return false; + if(!checkNumberArray(heroes)) return false + break; + } + case "battle.normalBattleHandler.getBattleList": + { + if(!checkNumberArray(msg.types)) return false; + break; + } + case "battle.normalBattleHandler.battleEnd": + { + let { battleCode, battleId, isSuccess, heroes, star, stars, activityId = 0, pageIndex = 0 } = msg; + if(!checkNaturalStrings(battleCode)) return false; + if(!checkNaturalNumbers(battleId, star, activityId, pageIndex)) return false; + if(!checkBoolean(isSuccess)) return false; + if(!checkNumberArray(heroes, stars)) return false; + break; + } + case "battle.normalBattleHandler.battleSweep": + { + if(!checkNaturalNumbers(msg.battleId, msg.count)) return false; + break; + } + case "battle.normalBattleHandler.saveScript": + { + if(!checkNaturalNumbers(msg.battleId, msg.type)) return false; + if(!checkNaturalStrings(msg.script)) return false; + break; + } + case "battle.normalBattleHandler.getScriptByBattle": + { + if(!checkNumberArray(msg.battleIds)) return false; + break; + } + case "battle.normalBattleHandler.getRegretCnt": + { + if(!checkNaturalNumbers(msg.warId)) return false; + if(!checkNaturalStrings(msg.battleCode)) return false; + break; + } + case "battle.normalBattleHandler.incRegretCnt": + { + if(!checkNaturalNumbers(msg.warId, msg.count)) return false; + if(!checkNaturalStrings(msg.battleCode)) return false; + break; + } + case "battle.normalBattleHandler.receiveChapterBox": + { + if(!checkNaturalNumbers(msg.chapter, msg.id, msg.warType)) return false; + break; + } + case "battle.pvpHandler.getOppPlayer": + case "battle.pvpHandler.getPlayerDetail": + { + if(!checkNaturalStrings(msg.roleId)) return false; + break; + } + case "battle.pvpHandler.pvpStart": + { + if(!checkNaturalNumbers(msg.warId)) return false; + if(!checkNaturalStrings(msg.roleId)) return false; + break; + } + case "battle.pvpHandler.pvpEnd": + { + let { battleCode, isSuccess, myHeroes, oppHeroes } = msg; + if(!checkNaturalStrings(battleCode)) return false; + if(!checkBoolean(isSuccess)) return false; + if(!checkPvpEndHeroFormat(myHeroes, oppHeroes)) return false + break; + } + case "battle.pvpHandler.buyAttackCnt": + { + if(!checkNaturalNumbers(msg.count)) return false; + break; + } + case "battle.pvpHandler.saveAttack": + { + let { heroes } = msg; + if(!checkNaturalArray(heroes)) return false; + if (heroes.length > LINEUP_NUM) return false; + for(let { actorId, order } of heroes) { + if(!checkNaturalNumbers(actorId, order)) return false; + } + break; + } + case "battle.pvpHandler.saveDefense": + { + let { heroes, warId, buff } = msg; + if(!checkNaturalArray(heroes)) return false; + if(!checkNaturalNumbers(warId, buff)) return false; + if (heroes.length > LINEUP_NUM) return false; + for(let { actorId, dataId, order, ai } of heroes) { + if(!checkNaturalNumbers(actorId, dataId, order, ai)) return false; + } + break; + } + case "battle.pvpHandler.receiveBox": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "battle.towerBattleHandler.resetLv": + { + if(!checkNaturalNumbers(msg.towerLv)) return false; + break; + } + case "battle.towerBattleHandler.hangUpSpeedUp": + { + if(!checkNaturalNumbers(msg.speedUpCnt)) return false; + break; + } + case "battle.towerBattleHandler.sendTaskHero": + { + let { batchCode, tasks } = msg; + if(!checkNaturalStrings(batchCode)) return false; + if(!checkNaturalArray(tasks)) return false; + for(let { taskCode, heroes } of tasks) { + if(!checkNaturalStrings(taskCode)) return false; + if(!checkNumberArray(heroes)) return false; + } + break; + } + case "battle.towerBattleHandler.settleTask": + { + if(!checkNaturalNumbers(msg.batchCode, msg.taskCode)) return false; + break; + } + case "battle.towerBattleHandler.receiveBox": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "chat.chatHandler.sendGroupMessage": + { + let { channel, type, content, targetRoleId, targetMsgCode} = msg; + if(!checkNaturalNumbers(type) || !checkIsInEnum(MSG_TYPE, type)) return false; + if(!checkNaturalStrings(channel, content)) return false; + if(!checkStringIfExist(targetRoleId, targetMsgCode)) return false; + break; + } + case "chat.chatHandler.sendPrivateMessage": + { + let { type, content, targetRoleId, targetMsgCode} = msg; + if(!checkNaturalNumbers(type) || !checkIsInEnum(MSG_TYPE, type)) return false; + if(!checkNaturalStrings(content)) return false; + if(!checkStringIfExist(targetRoleId, targetMsgCode)) return false; + break; + } + case "chat.chatHandler.getPrivateMessage": + { + let { targetRoleId, fromSeqId, count } = msg; + if(!checkNaturalStrings(targetRoleId)) return false; + if(!checkNumberIfExist(fromSeqId)) return false; + if(!checkNaturalNumbers(count)) return false; + if(count < 0 || count > 1000) return false; + break; + } + case "chat.chatHandler.readPrivateMessage": + case "chat.chatHandler.delPrivateMessage": + { + if(!checkNaturalStrings(msg.targetRoleId)) return false; + break; + } + case "chat.chatHandler.setPrivateMessageTop": + { + if(!checkNaturalStrings(msg.targetRoleId)) return false; + if(!checkBoolean(msg.isTop)) return false; + break; + } + case "chat.chatHandler.accuse": + { + if(!checkNaturalStrings(msg.targetRoleId, msg.targetMsgCode)) return false; + if(!checkStringIfExist(msg.reason)) return false; + break; + } + case "connector.entryHanddler.enter": + { + if(!checkNaturalStrings(msg.token)) return false; + if(!checkNaturalNumbers(msg.serverId)) return false; + break; + } + case "connector.entryHandler.gmEnter": + { + if(!checkNaturalStrings(msg.token)) return false; + break; + } + case "gm.gmHandler.sendSingleMail": + case "gm.gmHandler.sendSingleMailTxt": + case "gm.gmHandler.sendServerMail": + case "gm.gmHandler.sendServerMailTxt": + { + if(!checkNaturalStrings(msg.id)) return false; + if(!checkBoolean(msg.isPass)) return false; + break; + } + case "gm.gmHandler.reloadResource": + { + break; + } + case "gm.gmHandler.updateActivity": + { + let { groupId, beginTime, endTime, type, data, timeType, days, delayDay, interval, name, hideDayByServer, effectDay } = msg; + if(!checkNumberIfExist(groupId, beginTime, endTime, type, timeType, days, delayDay, interval, hideDayByServer, effectDay)) return false + if(!checkStringIfExist(data, name)) return false; + break; + } + case "gm.gmHandler.switchActivity": + { + let { activityId, isEnable } = msg; + if(!checkNaturalNumbers(activityId)) return false; + if(!checkBoolean(isEnable)) return false; + break; + } + case "gm.gmHandler.deleteActivity": + { + if(!checkNaturalNumbers(msg.activityId)) return false; + break; + } + case "gm.gmHandler.updateActivityGroup": + { + let { groupId, groupName, serverIds, activities, type } = msg; + if(!checkNaturalNumbers(groupId, type)) return false; + if(!checkNaturalStrings(groupName)) return false; + if(!checkNumberArray(serverIds, activities)) return false; + break; + } + case "gm.gmHandler.saveSingleActivityToGroup": + { + let { groupId, index, activityId } = msg; + if(!checkNaturalNumbers(groupId, index, activityId)) return false; + break; + } + case "gm.gmHandler.setGuildActivityDebug": + { + let { aid, day, startActivity = 0, endActivity = 0, startGuildAuction = 0, endGuildAuction = 0, startWorldAuction = 0, endWorldAuction = 0, startNextDay = 0 } = msg; + if(!checkNaturalNumbers(aid, day, startActivity, endActivity, startGuildAuction, endGuildAuction, startWorldAuction, endWorldAuction, startNextDay)) return false; + break; + } + case "gm.gmHandler.cancelGuildActivityDebug": + case "gm.gmHandler.taflus": + { + break; + } + case "gm.gmHandler.updateSurvey": + { + let { code, surveyId, beginTime, endTime, isEnable, surverLink, surveyName, roleIndex, goods, mailContent } = msg; + if(!checkNaturalStrings(code, surveyId, surverLink, surveyName, goods, mailContent)) return false; + if(!checkNaturalNumbers(beginTime, endTime, roleIndex)) return false; + if(!checkBoolean(isEnable)) return false; + break; + } + case "gm.gmHandler.deleteSurvey": + { + if(!checkNaturalStrings(msg.code)) return false; + break; + } + case "gm.gmOrderHandler.getActivitiesCanBuy": + { + if(!checkNaturalNumbers(msg.serverId)) return false; + break; + } + case "gm.gmOrderHandler.applyOrder": + { + let { serverId, activityId, receiver } = msg; + if(!checkNaturalNumbers(serverId)) return false; + if(!checkNaturalArray(activityId)) return false; + if(!checkNaturalNumbers(activityId[1])) return false; + if(!checkNaturalStrings(activityId[2])) return false; + if(!checkNaturalArray(receiver)) return false; + for(let { env, serverId, roleId, roleName } of receiver) { + if(!checkNaturalStrings(env)) return false; + if(!checkNaturalNumbers(serverId)) return false; + if(!checkStringIfExist(roleId, roleName)) return false; + } + break; + } + case "gm.gmRoleHandler.addItems": + case "gm.gmRoleHandler.deleteHero": + case "gm.gmRoleHandler.dismissGuild": + case "gm.gmRoleHandler.handleBlock": + case "gm.gmRoleHandler.setGuildLeader": + case "gm.gmRoleHandler.setHero": + case "gm.gmRoleHandler.skipEpilogue": + case "gm.gmRoleHandler.updateGuild": + case "gm.gmServerHandler.cancelMarquee": + case "gm.gmServerHandler.createNewServer": + case "gm.gmServerHandler.saveRegionConf": + case "gm.gmServerHandler.sendMarquee": + case "gm.gmServerHandler.startMaintenance": + case "gm.gmServerHandler.startRegionMaintenance": + case "gm.gmServerHandler.stopMaintenance": + case "gm.gmServerHandler.stopRegionMaintenance": + { + break; + } + case "guild.auctionHandler.getAuction": + case "guild.auctionHandler.leaveAuction": + { + if(!!msg.magicWord && msg.magicWord != DEBUG_MAGIC_WORD) return false; + break; + } + case "guild.auctionHandler.offer": + { + const { code, max, auctionStage, magicWord } = msg; + if(!checkNaturalStrings(code)) return false; + if(!checkBoolean(max)) return false; + if(!checkNaturalNumbers(auctionStage)) return false; + if(!!magicWord && magicWord != DEBUG_MAGIC_WORD) return false; + break; + } + case "guild.auctionHandler.unWatchLot": + case "guild.auctionHandler.watchLot": + case "guild.auctionHandler.getDividend": + { + if(!checkNaturalStrings(msg.code)) return false; + break; + } + case "guild.auctionHandler.offerRecs": + case "guild.auctionHandler.guildLotRecs": + { + if(!checkNaturalNumbers(msg.count)) return false; + if(msg.count < 0 || msg.count > 1000) return false; + break; + } + case "guild.cityActivityHandler.getCityStatus": + case "guild.cityActivityHandler.declareCity": + { + if(!checkNaturalNumbers(msg.cityId)) return false; + break; + } + case "guild.cityActivityHandler.checkBattle": + { + if(!checkNaturalNumbers(msg.cityId)) return false; + if(!checkNumberArray(msg.heroes)) return false; + break; + } + case "guild.cityActivityHandler.hitGate": + { + let { cityId, code, damage, hid, round } = msg; + if(!checkNaturalNumbers(cityId, damage, hid, round)) return false; + if(!checkNumberArray(code)) return false; + break; + } + case "guild.cityActivityHandler.battleEnd": + { + let { cityId, code, isSuccess } = msg; + if(!checkNaturalNumbers(cityId)) return false; + if(!checkNumberArray(code)) return false; + if(!checkBoolean(isSuccess)) return false; + break; + } + case "guild.donateHandler.donate": + case "guild.donateHandler.receiveBox": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "guild.gateActivityHandler.checkBattle": + { + if(!checkNumberArray(msg.heroes)) return false; + break; + } + case "guild.gateActivityHandler.action": + { + let { code, round, record } = msg; + if(!checkNaturalStrings(code)) return false; + if(!checkNaturalNumbers(round)) return false; + if(!checkNaturalArray(record)) return false; + for(let { round, dataId } of record) { + if(!checkNaturalNumbers(round, dataId)) return false; + } + break; + } + case "guild.gateActivityHandler.battleEnd": + { + let { code, isSuccess, gateHp } = msg; + if(!checkNaturalStrings(code)) return false; + if(!checkNaturalNumbers(gateHp)) return false; + if(!checkBoolean(isSuccess)) return false; + break; + } + case "guild.guildBossHandler.getBossInstanceByBattleCode": + { + if(!checkNaturalStrings(msg.battleCode)) return false; + break; + } + case "guild.guildBossHandler.action": + { + if(!checkNaturalStrings(msg.bossCode, msg.battleCode)) return false; + if(!checkNaturalNumbers(msg.damage)) return false; + break; + } + case "guild.guildBossHandler.battleBossEnd": + { + if(!checkNaturalStrings(msg.bossCode, msg.battleCode)) return false; + break; + } + case "guild.guildBossHandler.encourage": + { + if(!checkNaturalNumbers(msg.count)) return false; + break; + } + case "guild.guildHandler.createGuild": + { + let { name, icon, notice } = msg; + if(!checkNaturalStrings(name)) return false; + if(!checkNaturalNumbers(icon)) return false; + if(!checkStringIfExist(notice)) return false; + break; + } + case "guild.guildHandler.getGuildList": + { + let { page = 1, showPeopleMax, name } = msg; + if(!checkStringIfExist(name)) return false; + if(!checkNaturalNumbers(page)) return false; + if(!checkBoolean(showPeopleMax)) return false; + break; + } + case "guild.guildHandler.setGuildInfo": + { + let { code, name, notice, introduce, ceLimit, isAuto, icon } = msg; + if(!checkNaturalStrings(code)) return false; + if(!checkStringIfExist(name, notice, introduce)) return false; + if(!checkNumberIfExist(ceLimit, icon)) return false; + if(!checkBooleanIfExist(isAuto)) return false; + break; + } + case "guild.guildHandler.getGuildInfo": + case "guild.guildHandler.applyGuild": + case "guild.guildHandler.dismiss": + case "guild.guildHandler.quit": + case "guild.guildHandler.getRec": + { + if(!checkNaturalStrings(msg.code)) return false; + break; + } + case "guild.guildHandler.setAuth": + { + if(!checkNaturalStrings(msg.roleId)) return false; + if(!checkNaturalNumbers(msg.auth)) return false; + if(!checkIsInEnum(GUILD_AUTH, msg.auth)) return false; + break; + } + case "guild.guildHandler.getApplyList": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkStringIfExist(msg.lastApplyCode)) return false; + break; + } + case "guild.guildHandler.receiveApply": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkStringArray(msg.applyCodeList)) return false; + if(!checkBoolean(msg.isReceived)) return false; + break; + } + case "guild.guildHandler.inviteMember": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkStringArray(msg.roleIds)) return false; + break; + } + case "guild.guildHandler.getInvitationList": + { + if(!checkStringIfExist(msg.lastApplyCode)) return false; + break; + } + case "guild.guildHandler.receiveInvitation": + { + if(!checkStringIfExist(msg.lastApplyCode)) return false; + if(!checkBoolean(msg.isReceived)) return false; + break; + } + case "guild.guildHandler.getGuildMember": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkStringIfExist(msg.sort)) return false; + break; + } + case "guild.guildHandler.kick": + case "guild.guildHandler.impeach": + { + if(!checkNaturalStrings(msg.code, msg.roleId)) return false; + break; + } + case "guild.guildHandler.upStructure": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkNaturalNumbers(msg.id)) return false; + if(!checkIsInEnum(GUILD_STRUCTURE, msg.id)) return false; + break; + } + case "guild.guildHandler.sendMail": + case "guild.guildHandler.recruit": + { + if(!checkNaturalStrings(msg.code, msg.info)) return false; + break; + } + case "guild.guildHandler.receiveActiveBox": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "guild.guildRefineHandler.refine": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } + case "guild.guildRefineHandler.lightUpTree": + case "guild.guildRefineHandler.assistRefine": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "guild.guildTrainHandler.trainBattleStart": + { + let { hid, difficulty, trainId, battleId } = msg; + if(!checkNaturalNumbers(hid, difficulty, trainId, battleId)) return false; + break; + } + case "guild.guildTrainHandler.trainBattleEnd": + { + let { battleCode, isSuccess } = msg; + if(!checkNaturalStrings(battleCode)) return false; + if(!checkBoolean(isSuccess)) return false; + break; + } + case "guild.guildTrainHandler.getTrainInstanceBox": + { + let { trainId, hid, index } = msg; + if(!checkNaturalNumbers(trainId, hid, index)) return false; + break; + } + case "guild.guildTrainHandler.getTrainLvUpRewards": + { + if(!checkNaturalNumbers(msg.trainId)) return false; + break; + } + case "guild.guildTrainHandler.purchaseTrainCount": + { + if(!checkNaturalNumbers(msg.count)) return false; + break; + } + case "guild.raceActivityHandler.useItem": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + if(!checkNaturalStrings(msg.toGuild)) return false; + break; + } + case "guild.raceActivityHandler.battleEnd": + { + if(!checkNaturalStrings(msg.code)) return false; + if(!checkBoolean(msg.isSuccess)) return false; + break; + } + case "guild.wishPoolHandler.wishGoods": + { + if(!checkNaturalNumbers(msg.goodId, msg.type)) return false; + break; + } + case "guild.wishPoolHandler.donateGoods": + { + if(!checkNaturalStrings(msg.wishRoleId, msg.id)) return false; + break; + } + case "guild.wishPoolHandler.receiveGoods": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "order.orderHandler.applyOrder": + { + let { productID, payType, activityId, paramStr } = msg; + if(!checkNaturalNumbers(payType, activityId)) return false; + if(!checkNaturalStrings(productID)) return false; + if(!checkStringIfExist(paramStr)) return false; + break; + } + case "order.orderHandler.checkOrder": + { + if(!checkNaturalStrings(msg.localOrderID)) return false; + break; + } + case "role.equipHandler.composeEquip": + case "role.equipHandler.putOffJewel": + { + if(!checkNaturalNumbers(msg.hid, msg.ePlaceId)) return false; + break; + } + case "role.equipHandler.strengthen": + case "role.equipHandler.qualityUp": + case "role.equipHandler.starUp": + { + if(!checkNaturalNumbers(msg.hid, msg.ePlaceId)) return false; + if(!checkBoolean(msg.isOneClick)) return false; + break; + } + case "role.equipHandler.strengthenAll": + { + if(!checkNaturalNumbers(msg.hid, msg.lv)) return false; + break; + } + case "role.equipHandler.putOnJewel": + { + if(!checkNaturalNumbers(msg.hid, msg.ePlaceId, msg.jewel)) return false; + break; + } + case "role.equipHandler.putOnOrOffStone": + { + if(!checkNaturalNumbers(msg.hid, msg.ePlaceId, msg.stonesId, msg.gid)) return false; + break; + } + case "role.equipHandler.lockRandSe": + { + if(!checkNaturalNumbers(msg.seqId, msg.randSeId, msg.type)) return false; + if(msg.type != 0 && msg.type != 1) return false; + break; + } + case "role.equipHandler.previewRandSe": + case "role.equipHandler.resetRandSe": + case "role.equipHandler.giveupPreview": + case "role.equipHandler.quench": + { + if(!checkNaturalNumbers(msg.seqId)) return false; + break; + } + case "role.equipHandler.chooseQuench": + { + if(!checkNaturalNumbers(msg.seqId, msg.randSeId)) return false; + break; + } + case "role.equipHandler.decomposeItem": + { + if(!checkNaturalArray(msg.origin)) return false; + for(let { id, count } of msg.origin) { + if(!checkNaturalNumbers(id, count)) return false; + } + break; + } + case "role.equipHandler.decomposeJewel": + { + if(!checkNumberArray(msg.origin)) return false; + break; + } + case "role.equipHandler.composeStone": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } + case "role.equipHandler.inheritJewel": + { + if(!checkNaturalNumbers(msg.originJewel, msg.targetJewel)) return false; + break; + } + case "role.friendHandler.searchUser": + { + if(!checkNaturalStrings(msg.value)) return false; + break; + } + case "role.friendHandler.applyFriend": + { + if(!checkStringArray(msg.roleIds)) return false; + break; + } + case "role.friendHandler.handleApply": + { + if(!checkStringArray(msg.applyCodeList)) return false; + if(!checkBoolean(msg.isPass)) return false; + break; + } + case "role.friendHandler.setBlackList": + { + if(!checkNaturalStrings(msg.roleId)) return false; + if(!checkNaturalNumbers(msg.type)) return false; + if(!checkIsInEnum(BLOCK_OPEATE, msg.type)) return false; + break; + } + case "role.friendHandler.sendHeart": + case "role.friendHandler.receiveHeart": + case "role.friendHandler.getPlayerSimpleInfo": + case "role.friendHandler.getPlayerDetail": + { + if(!checkNaturalStrings(msg.roleId)) return false; + break; + } + case "role.friendHandler.sendPresent": + { + if(!checkNaturalStrings(msg.roleId)) return false; + if(!checkNaturalArray(msg.items)) return false; + for(let { id, count } of msg.items) { + if(!checkNaturalNumbers(id, count)) return false; + } + break; + } + case "role.friendHandler.getHeroDetail": + { + if(!checkNaturalStrings(msg.roleId)) return false; + if(!checkNumberArray(msg.hids)) return false; + break; + } + case "role.heroHandler.compose": + { + if(!checkNaturalNumbers(msg.hid)) return false; + break; + } + case "role.heroHandler.lvUp": + { + if(!checkNaturalNumbers(msg.hid, msg.type)) return false; + break; + } + case "role.heroHandler.starUp": + { + let { hid, star, starStage, isOneClick } = msg; + if(!checkNaturalNumbers(hid, star, starStage)) return false; + if(!checkBoolean(isOneClick)) return false; + break; + } + case "role.heroHandler.qualityUp": + { + let { hid, quality } = msg; + if(!checkNaturalNumbers(hid, quality)) return false; + break; + } + case "role.heroHandler.wakeUp": + { + let { hid, colorStar, colorStarStage, isOneClick } = msg; + if(!checkNaturalNumbers(hid, colorStar, colorStarStage)) return false; + if(!checkBoolean(isOneClick)) return false; + break; + } + case "role.heroHandler.heroJobTrain": + { + let { hid, isOneClick } = msg; + if(!checkNaturalNumbers(hid)) return false; + if(!checkBoolean(isOneClick)) return false; + break; + } + case "role.heroHandler.heroJobStageUp": + { + if(!checkNaturalNumbers(msg.hid)) return false; + break; + } + case "role.heroHandler.heroConectionActivate": + { + if(!checkNaturalNumbers(msg.shipId)) return false; + break; + } + case "role.heroHandler.heroGiveFavor": + { + if(!checkNaturalNumbers(msg.hid, msg.type)) return false; + break; + } + case "role.heroHandler.heroWearSkin": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "role.heroHandler.previewRebirth": + case "role.heroHandler.rebirth": + case "role.heroHandler.resetTalent": + { + if(!checkNaturalNumbers(msg.hid)) return false; + break; + } + case "role.heroHandler.unlockTalent": + case "role.heroHandler.upgradeTalent": + { + if(!checkNaturalNumbers(msg.hid, msg.id)) return false; + break; + } + case "role.itemHandler.useItem": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + if(!checkNumberArray(msg.selected)) return false; + break; + } + case "role.itemHandler.useApItem": + case "role.itemHandler.buyApItem": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } + case "role.itemHandler.useGiftCode": + { + if(!checkNaturalStrings(msg.code)) return false; + break; + } + case "role.itemHandler.getApByLv": + { + if(!checkNaturalNumbers(msg.lv)) return false; + break; + } + case "role.mailHandler.readMail": + { + if(!checkNaturalStrings(msg.id)) return false; + if(!checkMailType(msg.mailType)) return false; + break; + } + case "role.mailHandler.delMails": + case "role.mailHandler.getMailRewards": + { + if(!checkStringIfExist(msg.id)) return false; + if(!checkMailType(msg.mailType)) return false; + if(msg.type != 1 && msg.type != 2) return false; + break; + } + case "role.rankHandler.getRank": + case "role.rankHandler.getGuildRank": + { + if(!checkNaturalNumbers(msg.type)) return false; + break; + } + case "role.rankHandler.getHeroRank": + { + if(!checkNaturalNumbers(msg.type, msg.hid)) return false; + break; + } + case "role.rankHandler.receiveReward": + { + if(!checkNaturalNumbers(msg.type, msg.id)) return false; + break; + } + case "role.roleHandler.initRole": + case "role.roleHandler.rename": + { + if(!checkNaturalStrings(msg.roleName)) return false; + break; + } + case "role.roleHandler.getRoleInfo": + { + if(!checkNaturalStrings(msg.targetRoleId)) return false; + break; + } + case "role.roleHandler.roleTeraphStrengthen": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } + case "role.roleHandler.roleTeraphQualityUp": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "role.roleHandler.changeSchoolHero": + { + let { schoolId, positionId, hid } = msg; + if(!checkNaturalNumbers(schoolId, positionId, hid)) return false; + break; + } + case "role.roleHandler.unlockSchoolPosition": + { + if(!checkNaturalNumbers(msg.schoolId, msg.positionId)) return false; + break; + } + case "role.roleHandler.activeHeroScroll": + { + if(!checkNaturalNumbers(msg.hid)) return false; + break; + } + case "role.roleHandler.saveShowLineup": + { + if(!checkArrayCanEmpty(msg.showLineup)) return false; + for(let hid of msg.showLineup) { + if(!checkNaturalNumbers(hid)) return false; + } + break; + } + case "role.roleHandler.setHead": + case "role.roleHandler.setFrame": + case "role.roleHandler.setSpine": + { + if(!checkNaturalNumbers(msg.id)) return false; + break; + } + case "role.roleHandler.saveGuide": + { + if(!checkNumberArray(msg.ids)) return false; + break; + } + case "role.shopHandler.getShopList": + { + if(!checkNaturalNumbers(msg.shopId)) return false; + break; + } + case "role.shopHandler.purchase": + { + if(!checkNaturalNumbers(msg.shopId, msg.count)) return false; + break; + } + case "role.shopHandler.recycleSoul": + { + if(!checkNaturalNumbers(msg.goodsId, msg.count)) return false; + break; + } + case "role.taskHandler.receiveTask": + { + if(!checkNaturalNumbers(msg.type, msg.id)) return false; + break; + } + case "role.taskHandler.receiveBox": + { + if(!checkNaturalNumbers(msg.type, msg.id)) return false; + break; + } + case "role.taskHandler.receiveMainStage": + { + if(!checkNaturalNumbers(msg.stage)) return false; + break; + } + case "role.heroHandler.addItem": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; + break; + } + case 'activity.activityHandler.debugActivityMemory': + case 'activity.popUpShopHandler.debugPushPopUpShop': + case 'activity.popUpShopHandler.debugPushPopUpInterval': + case 'activity.popUpShopHandler.debugStopPupUpInterval': + case 'activity.popUpShopHandler.debugSendMail': + case 'activity.popUpShopHandler.debugTakeSnapshot': + case "battle.dailyBattleHandler.debugResetNum": + case "battle.dungeonBattleHandler.debugResetRefTime": + case "battle.eventBattleHandler.debugRefEvent": + case "battle.expeditionBattleHandler.debugResetResetNum": + case "battle.pvpHandler.addRoleScore": + case "battle.pvpHandler.debugAddChallengeCnt": + case "battle.pvpHandler.debugPvpSeasonResetTime": + case "battle.pvpHandler.debugResetAttackCnt": + case "battle.pvpHandler.debugResetBox": + case "battle.pvpHandler.debugResetRefOppCnt": + case "connector.entryHandler.debugGetRole": + case "connector.entryHandler.debugPushRefToOnlineUsers": + case "connector.entryHandler.debugQueryToken": + case "connector.entryHandler.debugQueryTokenById": + case "connector.entryHandler.debugQueryTokenByTel": + case "guild.auctionHandler.debugAddLots": + case "guild.auctionHandler.debugScheduleSendUngotDividend": + case "guild.auctionHandler.debugScheduleStartGuild": + case "guild.auctionHandler.debugScheduleStartWorld": + case "guild.auctionHandler.debugScheduleStopAuction": + case "guild.auctionHandler.debugSetDividendStatus": + case "guild.auctionHandler.debugSetLotStage": + case "guild.auctionHandler.debugSetPlayTime": + case "guild.cityActivityHandler.debugResetCity": + case "guild.gateActivityHandler.debugAddParticipants": + case "guild.gateActivityHandler.debugDelRedis": + case "guild.gateActivityHandler.debugEndActivity": + case "guild.gateActivityHandler.debugGetPrivate": + case "guild.gateActivityHandler.debugIncChallengeCnt": + case "guild.gateActivityHandler.debugSetDay": + case "guild.gateActivityHandler.debugStartActivity": + case "guild.gateActivityHandler.test": + case "guild.guildHandler.debugAddActive": + case "guild.guildHandler.debugAdddFund": + case "guild.guildHandler.debugClearQuitGuildTime": + case "guild.guildHandler.debugJoinGuild": + case "guild.guildBossHandler.debugAddBattleTimes": + case "guild.guildBossHandler.debugAddOpenTimes": + case "guild.guildHandler.debugLeaderLeaveTime": + case "guild.guildHandler.debugWeeklyRask": + case "order.orderHandler.debugOrder": + case "role.heroHandler.debugGetAllHeroes": + case "role.heroHandler.debugSetHero": + case "guild.guildTrainHandler.debugAddTrainCount": + case "guild.guildTrainHandler.debugResetTrainInstance": + case "role.heroHandler.testCleanUp": + case "role.itemHandler.debugIncAp": + case "role.itemHandler.debugResetBuyTimes": + case "role.roleHandler.debugClearRole": + case "role.roleHandler.debugPlayerTime": + case "role.roleHandler.debugRoleLvUp": + case "role.roleHandler.debugSetRole": + case "role.roleHandler.debugTreatRoleName": + case "role.roleHandler.test": + case "role.taskHandler.test": + case "role.taskHandler.debugCompleteMainStage": + case "role.taskHandler.debugCompleteRandTask": + case "role.taskHandler.debugGetDicTask": + case "role.taskHandler.debugIncPoint": + case "role.taskHandler.debugRefTask": + case "role.shopHandler.debugClearPurchaseLimit": + case "guild.raceActivityHandler.settleReward": + { + if (msg.magicWord !== DEBUG_MAGIC_WORD) return false; + break; + } + case "battle.comBattleHandler.getTeams": + case "battle.comBattleHandler.teammateReady": + case "battle.comBattleHandler.battleEnd": + case "connector.entryHandler.addSession": + case "connector.entryHandler.getIp": + case "chat.chatHandler.getInitMessage": + case "connector.entryHandler.onGmUserLeave": + case "connector.entryHandler.onUserLeave": + case "gm.gmHandler.sendMail": + case "gm.gmHandler.saveGroupToServer": + case "gm.gmHandler.saveActivitiesToGroup": + case "role.mailHandler.refrshMails": + { + return false + } + } + return true; +} + +function checkNaturalNumbers(...params: number[]) { + for(let param of params) { + if(param == undefined || !isNumber(param) || param < 0) return false; + } + return true +} + +function checkNaturalArray(array: T[]) { + return isArray(array) && array.length > 0; +} + +function checkArrayCanEmpty(array: T[]) { + return isArray(array); +} + +function checkNaturalStrings(...params: string[]) { + for(let param of params) { + if(param == undefined || !isString(param) || param == '') return false; + } + return true; +} + +function checkStringIfExist(...params: string[]) { + for(let param of params) { + if(!!param && !isString(param)) return false; + } + return true; +} + +function checkNumberIfExist(...params: number[]) { + for(let param of params) { + if(!!param && !isNumber(param)) return false; + } + return true; +} + +function checkNumberArray(...params: number[][]) { + for(let array of params) { + if(array == undefined || !isArray(array)) return false; + if(!checkNaturalNumbers(...array)) return false; + } + return true; +} + +function checkStringArray(...params: string[][]) { + for(let array of params) { + if(array == undefined || !isArray(array)) return false; + if(!checkNaturalStrings(...array)) return false; + } + return true; +} + +function checkBoolean(...params: boolean[]) { + for(let param of params) { + if(!isBoolean(param)) return false; + } + return true; +} + +function checkBooleanIfExist(...params: boolean[]) { + for(let param of params) { + if(!isBoolean(param)) return false; + } + return true; +} + +function checkExpeditionBattleHeroFormat(...params: { dataId: number, hp: number, ap: number }[][]) { + for(let param of params) { + if(!checkArrayCanEmpty(param)) return false; + for(let { dataId, hp, ap } of param) { + if(!checkNaturalNumbers(dataId, hp, ap)) return false; + } + } + return true; +} + +function checkPvpEndHeroFormat(...params: pvpEndParamInter[][]) { + for(let param of params) { + if(!checkArrayCanEmpty(param)) return false; + for(let { hid, damage, heal, underDamage } of param) { + if(!checkNaturalNumbers(hid, damage, heal, underDamage)) return false; + } + } + return true; +} + +function checkIsInEnum(someEnum: T, value: T) { + return Object.values(someEnum).includes(value) +} + +function checkMailType(mailType: any) { + if(!checkNaturalNumbers(mailType)) return false; + if(!checkIsInEnum(GM_MAIL_TYPE, mailType)) return false; + return true; +} \ No newline at end of file diff --git a/game-server/app/services/pushService.ts b/game-server/app/services/pushService.ts index 222d399d7..7734b7adf 100644 --- a/game-server/app/services/pushService.ts +++ b/game-server/app/services/pushService.ts @@ -137,7 +137,7 @@ export function sendMessgeToChannelByBatch(channel: Channel, route: string, data // 抽下下来pushMessage收束 export function sendMessageToChannel(channel: Channel, route: string, data: any) { - channel.pushMessage(route, data); + channel.pushMessage(route, encryptMsg(route, data)); infologger.debug(`pushMessage route: ${route} data: ${JSON.stringify(data)} members: ${channel.getMembers().join()}`); } diff --git a/game-server/test/activity.test.ts b/game-server/test/activity.test.ts index 78c4c4a6e..d86d4328b 100644 --- a/game-server/test/activity.test.ts +++ b/game-server/test/activity.test.ts @@ -3,7 +3,7 @@ import { PinusWSClient } from 'pinus-robot-plugin'; import { expect } from 'chai'; import { Client } from './Client'; import { checkSuccessResponse } from './CheckPatten'; -import { ACTIVITY_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS } from '../app/consts'; +import { ACTIVITY_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, DEBUG_MAGIC_WORD, STATUS } from '../app/consts'; describe('活动测试', function () { let pinusClient: PinusWSClient; let playerGroupArray: [] = []; @@ -188,7 +188,7 @@ describe('活动测试', function () { function checkActivityData(pinusClient, url, type, done) { try { - requestActivity(pinusClient, 'activity.activityHandler.debugActivityMemory', { type }) + requestActivity(pinusClient, 'activity.activityHandler.debugActivityMemory', { magicWord: DEBUG_MAGIC_WORD }) .then((data: any) => { if (data.data) { checkSuccessResponse(data); diff --git a/game-server/test/guildactivity.test.ts b/game-server/test/guildactivity.test.ts index 091127e53..1c5237ba3 100644 --- a/game-server/test/guildactivity.test.ts +++ b/game-server/test/guildactivity.test.ts @@ -4,6 +4,7 @@ import { PinusWSClient } from 'pinus-robot-plugin'; import { expect } from 'chai'; import { addItemsIfNotEnough, checkBattleGoods, checkDisplayItems, checkSuccessResponse, checkTimeStamp, checkWarJson } from './CheckPatten'; import * as dic7001 from '../app/resource/warJsons/7001.json'; +import { DEBUG_MAGIC_WORD } from '../app/consts'; describe('蛮夷入侵测试', function () { let pinusClient: PinusWSClient; @@ -358,7 +359,7 @@ describe('粮草先行测试', function () { }); it('结束比赛', function (done) { - pinusClient.request('guild.raceActivityHandler.settleReward', { serverId: roleInfo.serverId }, res => { + pinusClient.request('guild.raceActivityHandler.settleReward', { magicWord: DEBUG_MAGIC_WORD, serverId: roleInfo.serverId }, res => { pinusClient.request('guild.raceActivityHandler.battleEnd', { code, isSuccess: true }, res => { checkSuccessResponse(res); expect(res.data.hasShow).to.equal(false); diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index 28fc28acc..f8bd9d286 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -130,6 +130,7 @@ export function deltaDays(preTime: Date, proTime: Date): number { * @param deltaDay 间隔几天刷新,默认每天刷新(deltaDay = 1) */ export function shouldRefresh(preTime: Date, now: Date, hour: number = REFRESH_TIME, deltaDay = 1): boolean { + console.log('##### shouldRefresh preTime', preTime, 'now', now, 'hour', hour, 'deltaDay', deltaDay) if (!preTime) return true; let curTime = new Date(now.getTime()); let refreshTime = getZeroPointD(SHOP_REFRESH_TYPE.DAILY, hour);