Files
18xchat/assets/Scripts/chat18x/network/services/MockPlayerDataService.ts
T
2025-08-29 16:40:14 +08:00

29 lines
1.2 KiB
TypeScript

import type { ApiResponse } from "../client/types";
import proto from "db://assets/Scripts/proto/proto.pb.js";
import type { IPlayerDataService } from "./IPlayerDataService";
export class MockPlayerDataService implements IPlayerDataService {
private delay(ms = 160) { return new Promise<void>(r => setTimeout(r, ms)); }
// 按你项目的 ApiResponse 真实结构调整这里
private ok<T>(data: T): ApiResponse<T> {
return ({ ok: true, data } as unknown) as ApiResponse<T>;
}
// 如需模拟失败
// private err<T = unknown>(message = "mock myInfo error"): ApiResponse<T> {
// return ({ ok: false, error: { message } } as unknown) as ApiResponse<T>;
// }
// 获取个人信息
async reqMyInfo(_req: proto.cs.ICSMyInfoReq): Promise<ApiResponse<proto.cs.ICSMyInfoRes>> {
await this.delay();
// 由于我们并不知道 ICSMyInfoRes 的具体字段,这里提供一个“最安全”的空对象返回;
// 如果你有明确字段(例如 name/diamond/vipExpire 等),可在此构造并 as-cast:
// const res = { name: "Player-001", diamond: 123, vipExpire: Math.floor(Date.now()/1000) } as unknown as proto.cs.ICSMyInfoRes;
const res = ({} as unknown) as proto.cs.ICSMyInfoRes;
return this.ok(res);
}
}