예제 #1
0
        public Watchdog()
        {
            api  = APIAdapter.Instance.Login();
            data = new DataStore();
            log  = LogSaver.Instance;
            data.OnInitializeLocation += (location) =>
            {
                if (location.WorldID == "offline" || location.WorldID == "private")
                {
                    location.Name = location.WorldID;
                }
                else
                {
                    api.GetWorldData(location.Id, (l) =>
                    {
                        location.SetStructData(l);
                        if (String.IsNullOrWhiteSpace(l.OwnerId))
                        {
                            OnUpdateLocation?.Invoke(location);
                        }
                        else
                        {
                            api.GetUserData(location.OwnerId, (u) =>
                            {
                                location.OwnerId   = l.OwnerId;
                                location.OwnerName = u.Name;
                                OnUpdateLocation?.Invoke(location);
                            });
                        }
                    });
                }
            };
            data.OnAddUser += (a, b) =>
            {
                OnAddUser?.Invoke(a, b);
                log.LogUser(b);
            };
            data.OnRemoveUser += (a, b) => OnRemoveUser?.Invoke(a, b);
            data.OnUpdateUser  = OnUpdateUser;

            //ログアウト検知
            data.OnLostUser += (a) =>
            {
                api.GetUserData(a.Id, (b) =>
                {
                    data.UpdateUser(b);
                });
            };
        }
예제 #2
0
 public void LoginCheck(Action onSuccess = null, Action onFailure = null)
 {
     api = APIAdapter.Instance.Login();
     api.LoginCheck(onSuccess, onFailure);
 }
예제 #3
0
 public void ReLogin(string id = "", string password = "", Action onSuccess = null)
 {
     api = APIAdapter.Instance.Login(id, password);
     api.LoginCheck(onSuccess);
 }