diff --git a/game-server/app/servers/guild/handler/gvgManageHandler.ts b/game-server/app/servers/guild/handler/gvgManageHandler.ts index 8746115b2..e8f765b3e 100644 --- a/game-server/app/servers/guild/handler/gvgManageHandler.ts +++ b/game-server/app/servers/guild/handler/gvgManageHandler.ts @@ -34,7 +34,7 @@ export class GVGManageHandler { async createLeague(msg: { name: string, icon: number, notice: string }, session: BackendSession) { const roleId = session.get('roleId'); const guildCode = session.get('guildCode'); - const { name, icon, notice } = msg; + const { name, icon, notice = '' } = msg; const checkNameResult = await GVGLeagueModel.checkName(name); if (checkNameResult) return resResult(STATUS.LEAGUE_NAME_DUP); @@ -62,7 +62,7 @@ export class GVGManageHandler { const roleId = session.get('roleId'); const guildCode = session.get('guildCode'); const serverId = session.get('serverId'); - const { page, name } = msg; + const { page = 1, name } = msg; let serverType = await getGVGServerType(serverId); if(serverType == GVG_SERVER_TYPE.NO) return resResult(STATUS.GVG_NO_SERVER_TYPE); diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index 5bb1c3dcd..7fad7bbb4 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -1,3 +1,4 @@ +import { checkArray } from "pinus-rpc/lib/util/utils"; import { isArray, isBoolean, isNumber, isString } from "underscore"; import { BLOCK_OPEATE, DEBUG_MAGIC_WORD, GM_MAIL_TYPE, GUILD_AUTH, GUILD_STRUCTURE, GVG_RESOURCE_TYPE, LEAGUE_JOB, LINEUP_NUM, MSG_TYPE } from "../consts"; import { pvpEndParamInter } from "../pubUtils/interface"; @@ -75,6 +76,16 @@ export function checkRouteParam(route: string, msg: any) { case "role.taskHandler.getTaskList": case "role.taskHandler.receiveActiveReward": case "role.artifactHandler.composeAll": + case "guild.gvgHandler.getData": + case "guild.gvgHandler.getMap": + case "guild.gvgHandler.getRec": + case "guild.gvgHandler.getDistribute": + case "guild.gvgHandler.getTech": + case "guild.gvgManageHandler.getApplies": + case "guild.gvgManageHandler.getLeagueInvitations": + case "guild.gvgFighterHandler.getLeagueRank": + case "guild.gvgFighterHandler.getLeagueDetailRank": + case "guild.gvgFighterHandler.receiveBox": { break; } @@ -1229,17 +1240,288 @@ export function checkRouteParam(route: string, msg: any) { if(msg.job != LEAGUE_JOB.FIGHTER && msg.job != LEAGUE_JOB.PRODUCER) return false; break; } - case "guild.gvgHandler.unlockTech": + case "guild.gvgHandler.receiveBox": { - if(!isNumber(msg.techId)) return false; + if(!checkNaturalNumbers(msg.boxId)) return false; + break; + } + case "guild.gvgHandler.receiveLvReward": + { + if(!checkNaturalNumbers(msg.lv)) return false; + break; + } + case "guild.gvgHandler.receiveLvReward": + { + if(!checkNaturalNumbers(msg.receiveTask)) return false; + break; + } + case "guild.gvgHandler.unlockTech": + { + if(!checkNaturalNumbers(msg.techId)) return false; + break; + } + case "guild.gvgHandler.activate": + { + if(!checkNaturalNumbers(msg.techId, msg.battleFeats)) return false; + break; + } + case "guild.gvgManageHandler.createLeague": + { + let { name, icon, notice } = msg; + if(!checkNaturalStrings(name)) return false; + if(!checkStringIfExist(notice)) return false; + if(!checkNaturalNumbers(icon)) return false; + break; + } + case "guild.gvgManageHandler.getLeagues": + case "guild.gvgManageHandler.getInviteGuilds": + { + let { name, page } = msg; + if(!checkStringIfExist(name)) return false; + if(!checkNumberIfExist(page)) return false; + break; + } + case "guild.gvgManageHandler.getLeagueInfo": + case "guild.gvgManageHandler.getGuilds": + case "guild.gvgManageHandler.getMembers": + case "guild.gvgManageHandler.dismiss": + case "guild.gvgManageHandler.getCandidate": + { + if(!checkNaturalStrings(msg.leagueCode)) return false; + break; + } + case "guild.gvgManageHandler.applyLeague": + { + if(!checkStringArray(msg.leagueCodes)) return false; + break; + } + case "guild.gvgManageHandler.handleApply": + { + if(!checkNaturalStrings(msg.guildCode)) return false; + if(!checkBoolean(msg.isReceive)) return false; + break; + } + case "guild.gvgManageHandler.inviteGuild": + { + if(!checkStringArray(msg.guildCodes)) return false; + break; + } + case "guild.gvgManageHandler.handleInvitation": + { + if(!checkNaturalStrings(msg.leagueCode)) return false; + if(!checkBoolean(msg.isReceive)) return false; + break; + } + case "guild.gvgManageHandler.kick": + case "guild.gvgManageHandler.quit": + { + if(!checkStringArray(msg.guildCode)) return false; + break; + } + case "guild.gvgManageHandler.abdicate": + { + if(!checkStringArray(msg.roleId)) return false; + break; + } + case "guild.gvgManageHandler.setLeagueInfo": + { + if(!checkNaturalStrings(msg.leagueCode)) return false; + if(!checkStringIfExist(msg.name, msg.notice)) return false; + if(!checkNumberIfExist(msg.icon)) return false; + break; + } + case "guild.gvgManageHandler.sendMail": + case "guild.gvgManageHandler.recruit": + { + if(!checkNaturalStrings(msg.content)) return false; + break; + } + case "guild.gvgProduceHandler.exchangeItem": + { + if(!checkNaturalNumbers(msg.id, msg.count)) return false; break; } - case "guild.gvgProduceHandler.getProduceList": { if(!checkIsInEnum(GVG_RESOURCE_TYPE, msg.type)) return false; break; } + case "guild.gvgProduceHandler.getOtherFarms": + case "guild.gvgProduceHandler.getMyFarm": + case "guild.gvgProduceHandler.getOtherMines": + { + if(!checkNaturalNumbers(msg.farmId)) return false; + break; + } + case "guild.gvgProduceHandler.plant": + { + if(!checkNaturalNumbers(msg.farmId)) return false; + if(!checkArray(msg.seeds)) return false; + for(let { fieldId, seedType } of msg.seeds) { + if(!checkNaturalNumbers(fieldId, seedType)) return false; + } + break; + } + case "guild.gvgProduceHandler.harvest": + { + if(!checkNaturalNumbers(msg.farmId)) return false; + if(!checkNumberArray(msg.fieldIds)) return false; + break; + } + case "guild.gvgProduceHandler.plantEnd": + { + if(!checkNaturalNumbers(msg.farmId)) return false; + if(!checkNumberArray(msg.fieldIds)) return false; + break; + } + case "guild.gvgProduceHandler.helpHarvest": + { + if(!checkNaturalNumbers(msg.farmId, msg.fieldId)) return false; + break; + } + case "guild.gvgProduceHandler.mineStart": + case "guild.gvgProduceHandler.forestryStart": + { + if(!checkNaturalNumbers(msg.farmId, msg.itemId)) return false; + break; + } + case "guild.gvgProduceHandler.mineEnd": + { + if(!checkNaturalNumbers(msg.farmId, msg.fieldId)) return false; + if(!checkArrayCanEmpty(msg.result)) return false; + for(let { type, count } of msg.result) { + if(!checkNaturalNumbers(type, count)) return false; + } + break; + } + case "guild.gvgProduceHandler.forestryEnd": + { + if(!checkNaturalNumbers(msg.farmId, msg.fieldId, msg.result)) return false; + break; + } + case "guild.gvgFighterHandler.getVestige": + case "guild.gvgFighterHandler.refreshOpp": + case "guild.gvgFighterHandler.getRec": + case "guild.gvgFighterHandler.getPlayerRank": + + + { + if(!checkNaturalNumbers(msg.vestigeId)) return false; + break; + } + case "guild.gvgFighterHandler.saveLineup": + { + if(!checkNaturalNumbers(msg.vestigeId)) return false; + if(!checkArray(msg.lineup)) return false; + for(let { actorId, dataId, order } of msg.lineup) { + if(!checkNaturalNumbers(actorId, dataId, order)) return false; + } + break; + } + case "guild.gvgFighterHandler.getOppLineup": + { + if(!checkNaturalNumbers(msg.vestigeId, msg.rank)) return false; + if(!checkNaturalStrings(msg.roleId)) return false; + break; + } + case "guild.gvgFighterHandler.chooseOpp": + { + if(!checkNaturalNumbers(msg.vestigeId, msg.rank, msg.myRank)) return false; + if(!checkNaturalStrings(msg.roleId)) return false; + break; + } + case "guild.gvgFighterHandler.giveupCheck": + case "guild.gvgFighterHandler.getOppData": + { + if(!checkNaturalStrings(msg.battleCode)) return false; + break; + } + case "guild.gvgFighterHandler.checkBattle": + { + if(!checkNaturalStrings(msg.battleCode)) return false; + if(!checkArray(msg.heroes)) return false; + for(let { actorId, dataId, order } of msg.heroes) { + if(!checkNaturalNumbers(actorId, dataId, order)) return false; + } + break; + } + case "guild.gvgFighterHandler.battleEnd": + { + if(!checkNaturalStrings(msg.battleCode)) return false; + if(!checkBoolean(msg.isSuccess)) return false; + break; + } + case "guild.gvgBattleHandler.saveTeam": + { + if(!checkNaturalNumbers(msg.index, msg.head, msg.frame, msg.spine)) return false; + if(!checkArray(msg.lineup)) return false; + for(let { actorId, dataId, order } of msg.lineup) { + if(!checkNaturalNumbers(actorId, dataId, order)) return false; + } + break; + } + case "guild.gvgBattleHandler.getCity": + case "guild.gvgBattleHandler.enterCity": + case "guild.gvgBattleHandler.leaveCity": + { + if(!checkNaturalNumbers(msg.cityId)) return false; + break; + } + case "guild.gvgBattleHandler.startMove": + case "guild.gvgBattleHandler.stopMove": + { + if(!checkNaturalNumbers(msg.cityId, msg.areaId)) return false; + if(!checkNaturalStrings(msg.teamCode)) return false; + break; + } + case "guild.gvgBattleHandler.teamSettle": + { + if(!checkNaturalNumbers(msg.cityId, msg.areaId, msg.pointId)) return false; + if(!checkNaturalStrings(msg.teamCode)) return false; + break; + } + case "guild.gvgBattleHandler.teamLeave": + { + //TODO + break; + } + case "guild.gvgBattleHandler.battleStart": + { + if(!checkNaturalStrings(msg.teamCode, msg.oppoTeamCode)) return false; + break; + } + case "guild.gvgBattleHandler.battleEnd": + { + if(!checkNaturalStrings(msg.battleCode)) return false; + if(!checkBoolean(msg.isSuccess)) return false; + break; + } + case "guild.gvgBattleHandler.useItem": + { + if(!checkNaturalNumbers(msg.itemId)) return false; + if(!checkNaturalStrings(msg.teamCode)) return false; + break; + } + case "guild.gvgBattleHandler.reviveTeam": + { + if(!checkNaturalStrings(msg.teamCode)) return false; + break; + } + case "guild.gvgBattleHandler.getRecs": + { + if(!checkNaturalNumbers(msg.type)) return false; + break; + } + case "guild.gvgBattleHandler.getOverview": + { + break; + } + case "guild.gvgBattleHandler.getAreaTeams": + { + if(!checkNaturalNumbers(msg.cityId)) return false; + if(!checkNumberArray(msg.areaIds)) return false; + break; + } case "order.orderHandler.applyOrder": { let { productID, payType, activityId, paramStr, useVoucher } = msg; @@ -1711,6 +1993,13 @@ export function checkRouteParam(route: string, msg: any) { case "activity.groupShopHandler.debugRefund": case "activity.groupShopHandler.debugSetSum": case "activity.groupShopHandler.debugClearCnt": + case "activity.groupShopHandler.debugAddLeagueItem": + case "activity.groupShopHandler.debugHandleCost": + case "guild.gvgProduceHandler.debugAddResource": + case "guild.gvgFighterHandler.debugCalRec": + case "guild.gvgFighterHandler.debugSaveScore": + case "guild.gvgBattleHandler.createCity": + { if (msg.magicWord !== DEBUG_MAGIC_WORD || !isDevelopEnv()) return false; break;