diff --git a/src/idz/userdb/encoder/createProfile.ts b/src/idz/userdb/encoder/createProfile.ts new file mode 100644 index 0000000..006db5b --- /dev/null +++ b/src/idz/userdb/encoder/createProfile.ts @@ -0,0 +1,11 @@ +import { CreateProfileResponse } from "../response/createProfile"; + +export function createProfile(res: CreateProfileResponse) { + const buf = Buffer.alloc(0x0020); + + // Shares message type code with the "generic" response + buf.writeInt16LE(0x0001, 0x0000); + buf.writeInt32LE(res.aimeId, 0x0004); + + return buf; +} diff --git a/src/idz/userdb/encoder/index.ts b/src/idz/userdb/encoder/index.ts index 2a5e52e..6fab4a8 100644 --- a/src/idz/userdb/encoder/index.ts +++ b/src/idz/userdb/encoder/index.ts @@ -2,6 +2,7 @@ import logger from "debug"; import { _team } from "./_team"; import { checkTeamName } from "./checkTeamName"; +import { createProfile } from "./createProfile"; import { createTeam } from "./createTeam"; import { discoverProfile } from "./discoverProfile"; import { generic } from "./generic"; @@ -47,6 +48,9 @@ function encode110(res: Response): Buffer { case "create_auto_team_res": return _team(res); + case "create_profile_res": + return createProfile(res); + case "create_team_res": return createTeam(res); @@ -149,6 +153,9 @@ function encode130(res: Response): Buffer { case "create_auto_team_res": return _team(res); + case "create_profile_res": + return createProfile(res); + case "create_team_res": return createTeam(res); diff --git a/src/idz/userdb/handler/createProfile.ts b/src/idz/userdb/handler/createProfile.ts index 543f072..2b997f6 100644 --- a/src/idz/userdb/handler/createProfile.ts +++ b/src/idz/userdb/handler/createProfile.ts @@ -4,13 +4,13 @@ import { Settings } from "../model/settings"; import { Story } from "../model/story"; import { Unlocks } from "../model/unlocks"; import { CreateProfileRequest } from "../request/createProfile"; -import { GenericResponse } from "../response/generic"; +import { CreateProfileResponse } from "../response/createProfile"; import { Repositories } from "../repo"; export async function createProfile( w: Repositories, req: CreateProfileRequest -): Promise { +): Promise { const { aimeId, version, name } = req; const now = new Date(); @@ -58,7 +58,7 @@ export async function createProfile( await w.teamReservations().commitHack(aimeId); return { - type: "generic_res", - status: aimeId, // "Generic response" my fucking *ass* + type: "create_profile_res", + aimeId: aimeId, }; } diff --git a/src/idz/userdb/response/createProfile.ts b/src/idz/userdb/response/createProfile.ts new file mode 100644 index 0000000..f53a38a --- /dev/null +++ b/src/idz/userdb/response/createProfile.ts @@ -0,0 +1,6 @@ +import { AimeId } from "../../../model"; + +export interface CreateProfileResponse { + type: "create_profile_res"; + aimeId: AimeId; +} diff --git a/src/idz/userdb/response/index.ts b/src/idz/userdb/response/index.ts index f066dd7..74c21d0 100644 --- a/src/idz/userdb/response/index.ts +++ b/src/idz/userdb/response/index.ts @@ -1,5 +1,6 @@ import { CheckTeamNameResponse } from "./checkTeamName"; import { CreateAutoTeamResponse } from "./createAutoTeam"; +import { CreateProfileResponse } from "./createProfile"; import { CreateTeamResponse } from "./createTeam"; import { DiscoverProfileResponse } from "./discoverProfile"; import { GenericResponse } from "./generic"; @@ -33,6 +34,7 @@ import { UnlockProfileResponse } from "./unlockProfile"; export type Response = | CheckTeamNameResponse | CreateAutoTeamResponse + | CreateProfileResponse | CreateTeamResponse | DiscoverProfileResponse | GenericResponse