diff --git a/src/idz/decoder.ts b/src/idz/decoder.ts index 9dc1649..5c8bdd8 100644 --- a/src/idz/decoder.ts +++ b/src/idz/decoder.ts @@ -77,6 +77,13 @@ readers.set(MSG.GET_CONFIG_DATA_2_REQ, () => { return { type: "get_config_2_req" }; }); +readers.set(MSG.GET_EXIST_RECORD_REQ, buf => { + return { + type: "get_exist_record_req", + aimeId: buf.readUInt32LE(0x0004), + }; +}); + readers.set(MSG.GET_SERVER_LIST_REQ, () => { return { type: "get_server_list_req" }; }); diff --git a/src/idz/defs.ts b/src/idz/defs.ts index 12ada30..e86c116 100644 --- a/src/idz/defs.ts +++ b/src/idz/defs.ts @@ -8,6 +8,8 @@ export const MSG = { UPDATE_RECORD_REQ: 0x0068, ACCOUNT_LOCK_REQ: 0x0069, ACCOUNT_LOCK_RES: 0x006a, + GET_EXIST_RECORD_REQ: 0x006b, + GET_EXIST_RECORD_RES: 0x006c, ACCOUNT_UNLOCK_REQ: 0x006f, ACCOUNT_UNLOCK_RES: 0x0070, CREATE_TEAM_REQ: 0x007b, @@ -27,6 +29,7 @@ REQ_LEN.set(MSG.CREATE_RECORD_REQ, 0x00c0); REQ_LEN.set(MSG.CREATE_TEAM_REQ, 0x0010); REQ_LEN.set(MSG.GET_CONFIG_REQ, 0x0050); REQ_LEN.set(MSG.GET_CONFIG_DATA_2_REQ, 0x0010); +REQ_LEN.set(MSG.GET_EXIST_RECORD_REQ, 0x0010); REQ_LEN.set(MSG.GET_SERVER_LIST_REQ, 0x0020); REQ_LEN.set(MSG.UPDATE_PROVISIONAL_STORE_RANK_REQ, 0x0010); REQ_LEN.set(MSG.UPDATE_RECORD_REQ, 0x0940); diff --git a/src/idz/encoder.ts b/src/idz/encoder.ts index 277fb3a..4c3f740 100644 --- a/src/idz/encoder.ts +++ b/src/idz/encoder.ts @@ -64,6 +64,13 @@ export class Encoder extends Transform { break; + case "get_exist_record_res": + buf = Buffer.alloc(0x0010); + buf.writeUInt16LE(MSG.GET_EXIST_RECORD_RES, 0x0000); + buf.writeUInt8(obj.result ? 1 : 0, 0x0004); + + break; + case "get_server_list_res": buf = Buffer.alloc(0x04b0); buf.writeUInt16LE(MSG.GET_SERVER_LIST_RES, 0x0000); @@ -111,6 +118,8 @@ export class Encoder extends Transform { break; default: + const exhaustCheck: never = obj; + return callback(new Error(`No writer fn for ${obj["type"]}`)); } diff --git a/src/idz/index.ts b/src/idz/index.ts index fe9a21c..9b55552 100644 --- a/src/idz/index.ts +++ b/src/idz/index.ts @@ -46,6 +46,22 @@ export default async function idz(socket: Socket) { break; + case "get_config_req": + output.write({ + type: "get_config_res", + status: 1, + }); + + break; + + case "get_config_2_req": + output.write({ + type: "get_config_2_res", + status: 1, + }); + + break; + case "get_server_list_req": const myHost = hostname(); @@ -91,18 +107,10 @@ export default async function idz(socket: Socket) { break; - case "get_config_req": + case "get_exist_record_req": output.write({ - type: "get_config_res", - status: 1, - }); - - break; - - case "get_config_2_req": - output.write({ - type: "get_config_2_res", - status: 1, + type: "get_exist_record_res", + result: false, }); break; diff --git a/src/idz/request.ts b/src/idz/request.ts index 54b309d..738b50d 100644 --- a/src/idz/request.ts +++ b/src/idz/request.ts @@ -52,6 +52,11 @@ export interface GetConfigRequest2 { type: "get_config_2_req"; } +export interface GetExistRecordRequest { + type: "get_exist_record_req"; + aimeId: number; +} + export interface GetServerListRequest { type: "get_server_list_req"; } @@ -73,6 +78,7 @@ export type Request = | CreateTeamRequest | GetConfigRequest | GetConfigRequest2 + | GetExistRecordRequest | GetServerListRequest | UpdateProvisionalStoreRankRequest | UpdateRecordRequest; diff --git a/src/idz/response.ts b/src/idz/response.ts index cd3c759..8c663cd 100644 --- a/src/idz/response.ts +++ b/src/idz/response.ts @@ -30,6 +30,11 @@ export interface GetConfigResponse2 { status: number; } +export interface GetExistRecordResponse { + type: "get_exist_record_res"; + result: boolean; +} + export interface GetServerListResponse { type: "get_server_list_res"; status: number; @@ -89,5 +94,6 @@ export type Response = | GenericResponse | GetConfigResponse | GetConfigResponse2 + | GetExistRecordResponse | GetServerListResponse | UpdateProvisionalStoreRankResponse;