POGOserver/src/response.js
Felix 7169d9b020 Spawn example map objects in front of player
- Spawn example map objects immediately in front of the players position
2016-08-16 14:42:55 +02:00

161 lines
4.3 KiB
JavaScript

import proto from "./proto";
import * as CFG from "../cfg";
import { REQUEST } from "./requests";
import {
GetInventory,
GetHatchedEggs,
CheckAwardedBadges,
DownloadSettings,
DownloadRemoteConfigVersion,
GetPlayer,
GetPlayerProfile,
ItemTemplates,
GetAssetDigest,
GetDownloadUrls,
GetMapObjects,
SfidaActionLog,
FortDetails,
FortSearch,
SetContactSettings,
SetAvatar,
MarkTutorialComplete,
LevelUpRewards,
Encounter,
NicknamePokemon,
UpgradePokemon,
EvolvePokemon,
SetFavoritePokemon,
ClaimCodeName
} from "./packets";
/**
* @param {Request} req
* @return {Buffer}
*/
export function processResponse(request) {
let buffer = null;
let player = this.player;
return new Promise((resolve) => {
try {
switch (request.request_type) {
case REQUEST.GET_PLAYER:
this.forwardPlayer().then((res) => resolve(res));
return void 0;
break;
case REQUEST.GET_HATCHED_EGGS:
buffer = GetHatchedEggs();
break;
case REQUEST.GET_INVENTORY:
buffer = GetInventory();
break;
case REQUEST.CHECK_AWARDED_BADGES:
buffer = CheckAwardedBadges();
break;
case REQUEST.DOWNLOAD_SETTINGS:
buffer = DownloadSettings();
break;
case REQUEST.DOWNLOAD_ITEM_TEMPLATES:
buffer = ItemTemplates();
break;
case REQUEST.DOWNLOAD_REMOTE_CONFIG_VERSION:
buffer = DownloadRemoteConfigVersion();
break;
case REQUEST.GET_ASSET_DIGEST:
buffer = GetAssetDigest(request);
break;
case REQUEST.GET_PLAYER_PROFILE:
buffer = GetPlayerProfile();
break;
case REQUEST.GET_MAP_OBJECTS:
this.player.updatePosition(request);
buffer = GetMapObjects(player, request);
this.savePlayer(player).then(() => {
resolve(buffer);
});
return void 0;
break;
case REQUEST.GET_DOWNLOAD_URLS:
GetDownloadUrls(request, this.generateDownloadUrlByAssetId).then((res) => {
resolve(res);
});
return void 0;
break;
case REQUEST.SET_AVATAR:
player.updateAvatar(request);
buffer = SetAvatar(player);
this.savePlayer(player).then(() => {
resolve(buffer);
});
return void 0;
break;
case REQUEST.SFIDA_ACTION_LOG:
buffer = SfidaActionLog();
break;
case REQUEST.MARK_TUTORIAL_COMPLETE:
buffer = MarkTutorialComplete(player);
this.savePlayer(player).then(() => {
resolve(buffer);
});
return void 0;
break;
case REQUEST.CLAIM_CODENAME:
buffer = ClaimCodeName(request, player);
this.savePlayer(player).then(() => {
resolve(buffer);
});
return void 0;
break;
case REQUEST.LEVEL_UP_REWARDS:
buffer = LevelUpRewards();
break;
case REQUEST.FORT_DETAILS:
buffer = FortDetails(request);
break;
case REQUEST.FORT_SEARCH:
buffer = FortSearch();
break;
case REQUEST.SET_CONTACT_SETTINGS:
player.updateContactSettings(request);
buffer = SetContactSettings(player);
this.savePlayer(player).then(() => {
resolve(buffer);
});
return void 0;
break;
case REQUEST.ENCOUNTER:
buffer = Encounter(request);
break;
case REQUEST.NICKNAME_POKEMON:
buffer = NicknamePokemon(request);
break;
case REQUEST.UPGRADE_POKEMON:
buffer = UpgradePokemon(request);
break;
case REQUEST.EVOLVE_POKEMON:
buffer = EvolvePokemon(request);
break;
case REQUEST.SET_FAVORITE_POKEMON:
buffer = SetFavoritePokemon(request);
break;
case REQUEST.CATCH_POKEMON:
let data = proto.Networking.Requests.Messages.CatchPokemonMessage.decode(request.request_message.toBuffer());
console.log(data);
break;
default:
this.print(`Unknown request: ${this.getRequestType(request)}`, 31);
break;
};
} catch (e) {
console.log(e);
};
resolve(buffer);
});
}