예제 #1
0
 // Token: 0x06000D0E RID: 3342 RVA: 0x00009B9A File Offset: 0x00007D9A
 public void SetSelectedUser(CommUser user)
 {
     if (user != null)
     {
         this._selectedCommUser = user;
         this._filterText       = user.Name;
     }
 }
예제 #2
0
 // Token: 0x060009D0 RID: 2512 RVA: 0x0003EDA4 File Offset: 0x0003CFA4
 public ChatDialog(CommUser user, UserGroups group) : this(string.Empty)
 {
     this.Group = group;
     if (user != null)
     {
         this.UserName = user.ShortName;
         this.UserCmid = user.Cmid;
         this.Title    = "Chat with " + this.UserName;
     }
 }
예제 #3
0
 // Token: 0x06000AAB RID: 2731 RVA: 0x000448A4 File Offset: 0x00042AA4
 private void MenuCmdReportPlayer(CommUser user)
 {
     if (user != null && Singleton <GameStateController> .Instance.Client.IsInsideRoom)
     {
         PopupSystem.ShowMessage(LocalizedStrings.ReportPlayerCaps, "Are you sure you want to report\n" + user.Name + "\nfor cheating?", PopupSystem.AlertType.OKCancel, delegate()
         {
             Singleton <GameStateController> .Instance.Client.Operations.SendReportPlayer(user.Cmid, PlayerDataManager.AuthToken);
         }, "Report", null, "Cancel", PopupSystem.ActionType.Negative);
     }
 }
예제 #4
0
 // Token: 0x06000A9B RID: 2715 RVA: 0x00043644 File Offset: 0x00041844
 private void MenuCmdModeratePlayer(CommUser user)
 {
     if (user != null)
     {
         ModerationPanelGUI moderationPanelGUI = PanelManager.Instance.OpenPanel(PanelType.Moderation) as ModerationPanelGUI;
         if (moderationPanelGUI)
         {
             moderationPanelGUI.SetSelectedUser(user);
         }
     }
 }
예제 #5
0
 // Token: 0x06000AAA RID: 2730 RVA: 0x000433E4 File Offset: 0x000415E4
 private void MenuCmdInviteClan(CommUser user)
 {
     if (user != null)
     {
         InviteToClanPanelGUI inviteToClanPanelGUI = PanelManager.Instance.OpenPanel(PanelType.ClanRequest) as InviteToClanPanelGUI;
         if (inviteToClanPanelGUI)
         {
             inviteToClanPanelGUI.SelectReceiver(user.Cmid, user.ShortName);
         }
     }
 }
예제 #6
0
 // Token: 0x06000AA9 RID: 2729 RVA: 0x0004330C File Offset: 0x0004150C
 private void MenuCmdAddFriend(CommUser user)
 {
     if (user != null)
     {
         FriendRequestPanelGUI friendRequestPanelGUI = PanelManager.Instance.OpenPanel(PanelType.FriendRequest) as FriendRequestPanelGUI;
         if (friendRequestPanelGUI)
         {
             friendRequestPanelGUI.SelectReceiver(user.Cmid, user.Name);
         }
     }
 }
예제 #7
0
 // Token: 0x06000AA8 RID: 2728 RVA: 0x00044848 File Offset: 0x00042A48
 private void MenuCmdRemoveFriend(CommUser user)
 {
     if (user != null)
     {
         int friendCmid = user.Cmid;
         PopupSystem.ShowMessage(LocalizedStrings.RemoveFriendCaps, string.Format(LocalizedStrings.DoYouReallyWantToRemoveNFromYourFriendsList, user.Name), PopupSystem.AlertType.OKCancel, delegate()
         {
             Singleton <InboxManager> .Instance.RemoveFriend(friendCmid);
         }, LocalizedStrings.Remove, null, LocalizedStrings.Cancel, PopupSystem.ActionType.Negative);
     }
 }
예제 #8
0
 // Token: 0x06000A27 RID: 2599 RVA: 0x000407A8 File Offset: 0x0003E9A8
 public void AddNewPrivateMessage(int cmid, InstantMessage msg)
 {
     try
     {
         ChatDialog chatDialog;
         if (!this._dialogsByCmid.TryGetValue(cmid, out chatDialog) && !msg.IsNotification)
         {
             CommActorInfo user;
             if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(cmid, out user))
             {
                 CommUser commUser = new CommUser(user);
                 chatDialog = this.AddNewDialog(commUser);
                 if (!this._friendUsers.Exists((CommUser p) => p.Cmid == cmid))
                 {
                     this._otherUsers.Add(commUser);
                 }
             }
             else
             {
                 CommUser commUser2 = new CommUser(new CommActorInfo
                 {
                     Cmid        = cmid,
                     PlayerName  = msg.PlayerName,
                     Channel     = ChannelType.WebPortal,
                     AccessLevel = msg.AccessLevel
                 });
                 chatDialog = this.AddNewDialog(commUser2);
                 if (!this._friendUsers.Exists((CommUser p) => p.Cmid == cmid))
                 {
                     this._otherUsers.Add(commUser2);
                 }
             }
         }
         if (chatDialog != null)
         {
             chatDialog.AddMessage(msg);
             if (chatDialog != this.SelectedDialog)
             {
                 chatDialog.HasUnreadMessage = true;
             }
             if (ChatPageGUI.SelectedTab != TabArea.Private)
             {
                 this.HasUnreadPrivateMessage.Value = true;
                 AutoMonoBehaviour <SfxManager> .Instance.Play2dAudioClip(GameAudio.NewMessage, 0UL, 1f, 1f);
             }
         }
     }
     catch
     {
         Debug.LogError(string.Format("AddNewPrivateMessage from cmid={0}", cmid));
         throw;
     }
 }
예제 #9
0
    // Token: 0x06000A22 RID: 2594 RVA: 0x00040208 File Offset: 0x0003E408
    public void CreatePrivateChat(int cmid)
    {
        ChatDialog chatDialog = null;
        ChatDialog chatDialog2;

        if (this._dialogsByCmid.TryGetValue(cmid, out chatDialog2) && chatDialog2 != null)
        {
            chatDialog = chatDialog2;
        }
        else
        {
            CommActorInfo commActorInfo = null;
            if (PlayerDataManager.IsFriend(cmid) || PlayerDataManager.IsFacebookFriend(cmid))
            {
                CommUser commUser = this._friendUsers.Find((CommUser u) => u.Cmid == cmid);
                if (commUser != null)
                {
                    chatDialog = new ChatDialog(commUser, UserGroups.Friend);
                }
            }
            else if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(cmid, out commActorInfo))
            {
                CommUser       commUser;
                ClanMemberView member;
                if (PlayerDataManager.TryGetClanMember(cmid, out member))
                {
                    commUser = new CommUser(member);
                    commUser.SetActor(commActorInfo);
                }
                else
                {
                    commUser = new CommUser(commActorInfo);
                }
                this._otherUsers.Add(commUser);
                chatDialog = new ChatDialog(commUser, UserGroups.Other);
            }
            if (chatDialog != null)
            {
                this._dialogsByCmid.Add(cmid, chatDialog);
            }
        }
        if (chatDialog != null)
        {
            ChatPageGUI.SelectedTab = TabArea.Private;
            this.SelectedDialog     = chatDialog;
            this.SelectedCmid       = cmid;
        }
        else
        {
            Debug.LogError(string.Format("Player with cmuneID {0} not found in communicator!", cmid));
        }
    }
예제 #10
0
 // Token: 0x06000A1F RID: 2591 RVA: 0x000400EC File Offset: 0x0003E2EC
 public bool TryGetGameUser(int cmid, out CommUser user)
 {
     user = null;
     foreach (CommUser commUser in this._ingameUsers)
     {
         if (commUser.Cmid == cmid)
         {
             user = commUser;
             return(true);
         }
     }
     return(false);
 }
예제 #11
0
 // Token: 0x06000A21 RID: 2593 RVA: 0x00040198 File Offset: 0x0003E398
 public bool TryGetFriend(int cmid, out CommUser user)
 {
     foreach (CommUser commUser in this._friendUsers)
     {
         if (commUser.Cmid == cmid)
         {
             user = commUser;
             return(true);
         }
     }
     user = null;
     return(false);
 }
예제 #12
0
 // Token: 0x06000A9A RID: 2714 RVA: 0x00043AD4 File Offset: 0x00041CD4
 private void MenuCmdCopyData(CommUser user)
 {
     if (user != null)
     {
         TextEditor textEditor = new TextEditor();
         textEditor.content = new GUIContent(string.Concat(new object[]
         {
             "<Cmid:",
             user.Cmid,
             "> <Name:",
             user.Name,
             ">"
         }));
         textEditor.SelectAll();
         textEditor.Copy();
     }
 }
예제 #13
0
    // Token: 0x06000A28 RID: 2600 RVA: 0x00040950 File Offset: 0x0003EB50
    public ChatDialog AddNewDialog(CommUser user)
    {
        ChatDialog chatDialog = null;

        if (user != null && !this._dialogsByCmid.TryGetValue(user.Cmid, out chatDialog))
        {
            if (PlayerDataManager.IsFriend(user.Cmid) || PlayerDataManager.IsFacebookFriend(user.Cmid))
            {
                chatDialog = new ChatDialog(user, UserGroups.Friend);
            }
            else
            {
                chatDialog = new ChatDialog(user, UserGroups.Other);
            }
            this._dialogsByCmid.Add(user.Cmid, chatDialog);
        }
        return(chatDialog);
    }
예제 #14
0
 // Token: 0x06000ABF RID: 2751 RVA: 0x00044B0C File Offset: 0x00042D0C
 public static void Show(Vector2 screenPos, CommUser user, PopupMenu menu)
 {
     if (menu != null)
     {
         menu._selectedUser = user;
         menu.Configure();
         menu._position.height = (float)(24 * menu._items.FindAll((PopupMenu.MenuItem i) => i.Enabled).Count);
         menu._position.width  = 105f;
         menu._position.x      = screenPos.x - 1f;
         if (screenPos.y + menu._position.height > (float)Screen.height)
         {
             menu._position.y = screenPos.y - menu._position.height + 1f;
         }
         else
         {
             menu._position.y = screenPos.y - 1f;
         }
         PopupMenu.Current = menu;
     }
 }
예제 #15
0
    // Token: 0x06000A1C RID: 2588 RVA: 0x0003FDFC File Offset: 0x0003DFFC
    public void SetGameSection(string server, int roomId, int mapId, IEnumerable <GameActorInfo> actors)
    {
        this._ingameUsers.Clear();
        this._lastgameUsers.Clear();
        this._lastgameUsers.AddRange(this._allTimePlayers.Values);
        GameActorInfo v;

        foreach (GameActorInfo v2 in actors)
        {
            v = v2;
            CommUser commUser = new CommUser(v);
            commUser.CurrentGame = new GameRoom
            {
                Server = new ConnectionAddress(server),
                Number = roomId,
                MapId  = mapId
            };
            commUser.IsClanMember     = PlayerDataManager.IsClanMember(commUser.Cmid);
            commUser.IsFriend         = PlayerDataManager.IsFriend(commUser.Cmid);
            commUser.IsFacebookFriend = PlayerDataManager.IsFacebookFriend(commUser.Cmid);
            this._ingameUsers.Add(commUser);
            this._lastgameUsers.RemoveAll((CommUser p) => p.Cmid == v.Cmid);
            if (v.Cmid != PlayerDataManager.Cmid && !this._allTimePlayers.ContainsKey(v.Cmid))
            {
                CommUser commUser2 = new CommUser(v);
                commUser2.CurrentGame = new GameRoom
                {
                    Server = new ConnectionAddress(server),
                    Number = roomId,
                    MapId  = mapId
                };
                this._allTimePlayers[v.Cmid] = commUser2;
            }
        }
        this._ingameUsers.Sort(new CommUserNameComparer());
    }
예제 #16
0
 // Token: 0x06000ABE RID: 2750 RVA: 0x00008A8F File Offset: 0x00006C8F
 public void Show(Vector2 screenPos, CommUser user)
 {
     PopupMenu.Show(screenPos, user, this);
 }
예제 #17
0
 // Token: 0x06000AAC RID: 2732 RVA: 0x000089DF File Offset: 0x00006BDF
 private bool MenuChkReportPlayer(CommUser user)
 {
     return(user != null && user.Cmid != PlayerDataManager.Cmid && user.AccessLevel == MemberAccessLevel.Default);
 }
예제 #18
0
 // Token: 0x06000AAD RID: 2733 RVA: 0x00008A03 File Offset: 0x00006C03
 private bool MenuChkAddFriend(CommUser user)
 {
     return(user != null && user.Cmid != PlayerDataManager.Cmid && user.AccessLevel <= PlayerDataManager.AccessLevel && !PlayerDataManager.IsFriend(user.Cmid));
 }
예제 #19
0
 // Token: 0x06000AAE RID: 2734 RVA: 0x00008756 File Offset: 0x00006956
 private bool MenuChkRemoveFriend(CommUser user)
 {
     return(user != null && user.Cmid != PlayerDataManager.Cmid && PlayerDataManager.IsFriend(user.Cmid));
 }
예제 #20
0
 // Token: 0x06000A20 RID: 2592 RVA: 0x0004015C File Offset: 0x0003E35C
 public bool TryGetLobbyCommUser(int cmid, out CommUser user)
 {
     user = this._lobbyUsers.Find((CommUser u) => u.Cmid == cmid);
     return(user != null);
 }
예제 #21
0
 // Token: 0x06000AAF RID: 2735 RVA: 0x0004491C File Offset: 0x00042B1C
 private bool MenuChkInviteClan(CommUser user)
 {
     return(user != null && user.Cmid != PlayerDataManager.Cmid && (user.AccessLevel <= PlayerDataManager.AccessLevel || PlayerDataManager.IsFriend(user.Cmid)) && PlayerDataManager.IsPlayerInClan && PlayerDataManager.CanInviteToClan && !PlayerDataManager.IsClanMember(user.Cmid));
 }
예제 #22
0
 // Token: 0x06000A1E RID: 2590 RVA: 0x0000854A File Offset: 0x0000674A
 public bool TryGetClanUsers(int cmid, out CommUser user)
 {
     return(this._clanUsers.TryGetValue(cmid, out user) && user != null);
 }
예제 #23
0
    // Token: 0x06000A18 RID: 2584 RVA: 0x0003F744 File Offset: 0x0003D944
    public void RefreshAll(bool forceRefresh = false)
    {
        if (forceRefresh || this._nextRefreshTime < Time.time)
        {
            this._nextRefreshTime = Time.time + 5f;
            this._lobbyUsers.Clear();
            foreach (CommActorInfo commActorInfo in AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.Players)
            {
                if (commActorInfo.Cmid > 0)
                {
                    CommUser item = new CommUser(commActorInfo)
                    {
                        IsClanMember     = PlayerDataManager.IsClanMember(commActorInfo.Cmid),
                        IsFriend         = PlayerDataManager.IsFriend(commActorInfo.Cmid),
                        IsFacebookFriend = PlayerDataManager.IsFacebookFriend(commActorInfo.Cmid),
                        IsOnline         = true
                    };
                    this._lobbyUsers.Add(item);
                }
            }
            this._lobbyUsers.Sort(new CommUserNameComparer());
            this._lobbyUsers.Sort(new CommUserFriendsComparer());
            foreach (CommUser commUser in Singleton <ChatManager> .Instance._lastgameUsers)
            {
                commUser.IsClanMember     = PlayerDataManager.IsClanMember(commUser.Cmid);
                commUser.IsFriend         = PlayerDataManager.IsFriend(commUser.Cmid);
                commUser.IsFacebookFriend = PlayerDataManager.IsFacebookFriend(commUser.Cmid);
                CommActorInfo actor;
                if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(commUser.Cmid, out actor))
                {
                    commUser.SetActor(actor);
                }
                else
                {
                    commUser.SetActor(null);
                }
            }
            Singleton <ChatManager> .Instance._lastgameUsers.Sort(new CommUserPresenceComparer());

            foreach (CommUser commUser2 in Singleton <ChatManager> .Instance._friendUsers)
            {
                CommActorInfo actor;
                if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(commUser2.Cmid, out actor))
                {
                    commUser2.SetActor(actor);
                }
                else
                {
                    commUser2.SetActor(null);
                }
            }
            Singleton <ChatManager> .Instance._friendUsers.Sort(new CommUserPresenceComparer());

            foreach (CommUser commUser3 in Singleton <ChatManager> .Instance._clanUsers.Values)
            {
                CommActorInfo actor;
                if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(commUser3.Cmid, out actor))
                {
                    commUser3.SetActor(actor);
                }
                else
                {
                    commUser3.SetActor(null);
                }
            }
            foreach (CommUser commUser4 in Singleton <ChatManager> .Instance._otherUsers)
            {
                CommActorInfo actor;
                if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(commUser4.Cmid, out actor))
                {
                    commUser4.SetActor(actor);
                }
                else
                {
                    commUser4.SetActor(null);
                }
            }
            Singleton <ChatManager> .Instance._otherUsers.Sort(new CommUserNameComparer());

            foreach (KeyValuePair <int, CommUser> keyValuePair in Singleton <ChatManager> .Instance._naughtyUsers)
            {
                CommActorInfo actor;
                if (AutoMonoBehaviour <CommConnectionManager> .Instance.Client.Lobby.TryGetPlayer(keyValuePair.Key, out actor))
                {
                    keyValuePair.Value.SetActor(actor);
                }
                else
                {
                    keyValuePair.Value.SetActor(null);
                }
            }
        }
    }
예제 #24
0
 // Token: 0x06001D62 RID: 7522 RVA: 0x0001387C File Offset: 0x00011A7C
 public static int UserNameCompare(CommUser f1, CommUser f2)
 {
     return(string.Compare(f1.ShortName, f2.ShortName, true));
 }