UserData.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { Framework } from "../../framework/Framework";
  2. import { ObjectUtil } from "../../framework/util/ObjectUtil";
  3. import { StringUtil } from "../../framework/util/StringUtil";
  4. import { GameEvent } from "./GameEvent";
  5. export const DataKey = {
  6. Role: "Role", //角色
  7. GameInstall: "GameInstall", //设置
  8. UserID: 'UserID', //用户ID
  9. };
  10. class Data {
  11. private _class_id = StringUtil.getUUID(32);
  12. //需要保存的数据
  13. save_data = new Map<string, any>();
  14. UserID: any = null;
  15. init(user_uuid: string, data: any) {
  16. Framework.storage.setUser(user_uuid);
  17. //将服务器的数据替换到本地
  18. // let save = new Map<string, string>();
  19. for (let key in data) {
  20. this[key] = data[key]
  21. Framework.storage.set(key, this[key]);
  22. }
  23. //读取本地数据
  24. //this.era = Framework.storage.get(DataKey.Era, GameConf.Macro.default_era);
  25. //兼容代码
  26. Framework.event.addEvent(GameEvent.Daily_Update, () => {
  27. // Framework.event.fireEvent(GameEvent.Daily_Update);
  28. //每日凌晨更新事件
  29. //
  30. }, this, this._class_id);
  31. }
  32. // 存储本地
  33. save_locally(key: string, value?, defaultValue?: any) {
  34. if (key != 'UserID') {
  35. key += this.UserID
  36. }
  37. if (value) {
  38. this[key] = value
  39. Framework.storage.set(key, value);
  40. this._saveData(key, value)
  41. } else {
  42. this[key] = Framework.storage.get(key, defaultValue);
  43. return this[key];
  44. }
  45. }
  46. _saveData(key: string, value: any) {
  47. this.save_data.delete(key);
  48. if (typeof value === 'object') {
  49. try {
  50. if (value instanceof Map) {
  51. let temp = ObjectUtil.mapToObject(value)
  52. value = JSON.stringify(temp);
  53. } else {
  54. value = JSON.stringify(value);
  55. }
  56. } catch (e) {
  57. console.error(`解析失败,str = ${value}`);
  58. return;
  59. }
  60. } else {
  61. value = value + "";
  62. }
  63. this.save_data.set(key, value);
  64. Framework.storage.set('save_data', this.save_data);
  65. }
  66. private _mapToObject(map: any) {
  67. let obj = {};
  68. for (let [k, v] of map) {
  69. obj[k] = v;
  70. }
  71. return obj;
  72. }
  73. getServerTime(){
  74. return Date.now()
  75. }
  76. }
  77. export let UserData = new Data;