123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- using UnityEngine;
- using UnityEngine.Events;
- using System.Collections;
- using System.Collections.Generic;
- using LitJson;
- public class UserCache
- {
- public static UserDataEvent UserDataGot = new UserDataEvent ();
- private static Dictionary<int, UserData> cache = new Dictionary<int, UserData>();
- public static UserData Add(JsonData data)
- {
- int userId = JsonUtil.ToInt(data["id"]);
- // if (userId == Session.GetInstance ().myUserData.id)
- // return Session.GetInstance ().myUserData;
- UserData userData = null;
- cache.TryGetValue (userId, out userData);
- if(userData == null)
- {
- userData = new UserData ();
- cache.Add (userId, userData);
- }
- userData.id = userId;
- userData.nick = UserData.NickFormat (data ["nick"], userId);
- userData.rank = JsonUtil.ToInt (data["rank"]);
- userData.clanId = JsonUtil.ToInt (data["clan"]);
- userData.win = JsonUtil.ToInt (data["win"]);
- userData.lose = JsonUtil.ToInt (data["lose"]);
- return userData;
- }
- public static void GetUser(int id)
- {
- if(id == Session.GetInstance().myUserData.id)
- {
- UserDataGot.Invoke(Session.GetInstance().myUserData);
- return;
- }
- UserData userData = null;
- cache.TryGetValue (id, out userData);
- if (userData == null) {
- UserRequest.Info (id).ResultEvent.AddListener ((bool success, JsonData data) => {
- if(success)
- {
- UserData ud = UserCache.Add(data);
- UserDataGot.Invoke (ud);
- }
- });
- } else {
- UserDataGot.Invoke (userData);
- }
- }
- public static string GetNick(int id)
- {
- if(id == Session.GetInstance().myUserData.id)
- {
- return Session.GetInstance().myUserData.nick;
- }
- UserData userData = null;
- cache.TryGetValue (id, out userData);
- if (userData != null) {
- return userData.nick;
- }
- return UserData.NickFormat ("", id);
- }
- }
- public class UserDataEvent : UnityEvent<UserData>{}
|