Esempio n. 1
0
 private void GetAllUser(object source, OnGetUserEventArgs args)
 {
     if (!args.Update)
     {
         foreach (string name in args.Users)
         {
             if (!OnlineUsers.Any(u => u.Name == name))
             {
                 MainDispatcher.Invoke(() => { OnlineUsers.Add(new User {
                         Name = name
                     }); });
             }
         }
     }
     else
     {
         if (args.AddUser)
         {
             MainDispatcher.Invoke(() => { OnlineUsers.Add(new User {
                     Name = args.User
                 }); });
         }
         else
         {
             try
             {
                 var user = OnlineUsers.FirstOrDefault(u => u.Name == args.User);
                 MainDispatcher.Invoke(() => { OnlineUsers.Remove(user); });
             }
             catch
             {
             }
         }
     }
 }
Esempio n. 2
0
        public void AddPlayer(String player, int entityId)
        {
            if (!IsStringInList(player, Player))
            {
                Player.Add(player);
                UpdatePlayer(player, 1);

                foreach (IPlugin plugin in Plugins)
                {
                    try
                    {
                        if (plugin.Enabled)
                        {
                            plugin.OnPlayerJoined(this, player);
                        }
                    }
                    catch
                    {
                        Log.AppendText("Error Executing Plugin OnPlayerJoined()", Log.PluginLog);
                    }
                }

                try
                {
                    UserCollectionSingletone users = UserCollectionSingletone.GetInstance();
                    User user = users.GetUserByName(player);
                    user.LastEntityId = entityId;
                    OnlineUsers.Add(user);
                }
                catch
                {
                    Log.AppendText("Error Adding user at OnlineUsers OnPlayerJoined()", Log.ExceptionsLog);
                }
            }
        }
Esempio n. 3
0
 public void OnUserLoggedIn(string userName)
 {
     _guiDispatcher.Invoke(() =>
     {
         Users.Remove(userName);
         OnlineUsers.Add(userName);
     });
 }
        private void UpdateTextBox(string tekst)
        {
            if (tekst == "")
            {
                return;
            }
            string[] data = tekst.Split(';');
            switch (data[0])
            {
            case "Ingelogd":
                btnInloggen.Enabled    = false;
                btnRegistreren.Enabled = false;
                btnUitloggen.Enabled   = true;
                IK = new User(data[1]);
                break;

            case "Uitgelogd":
                btnInloggen.Enabled    = false;
                btnRegistreren.Enabled = false;
                btnUitloggen.Enabled   = false;
                btnVerbind.Enabled     = true;
                listBox1.Items.Clear();
                myNetworkStream.Close();
                mySocket.Shutdown(SocketShutdown.Both);
                break;

            case "Online users":
                listBox1.Items.Clear();
                OnlineUsers.Clear();
                for (int i = 1; i < data.Length; i++)
                {
                    listBox1.Items.Add(data[i].Split(',')[1]);
                    OnlineUsers.Add(new User(data[i]));
                }
                break;

            case "Bericht":
                // Bericht;zender.id;zender.user;ik.id;bericht
                ChatSessie[] it = Sessies.Where(T => T.Ontvanger.ID == Convert.ToInt32(data[1])).ToArray();
                if (it.Length == 1)
                {
                    it[0].OntvangBericht(data[2], data[4]);
                    it[0].BringToFront();
                    it[0].Activate();
                }
                else
                {
                    ChatSessie nieuw = new ChatSessie(this, OnlineUsers.Where(T => T.ID == Convert.ToInt32(data[1])).ElementAt(0));
                    nieuw.FormClosed += delegate { Sessies.Remove(nieuw); };
                    Sessies.Add(nieuw);
                    nieuw.Owner = this;
                    nieuw.Show();
                    nieuw.OntvangBericht(data[2], data[4]);
                }
                break;
            }
            txtOntvangen.AppendText(tekst + Environment.NewLine);
        }
Esempio n. 5
0
        public static void AddOnlineUser(HubUser hubUser)
        {
            if (OnlineUsers == null)
            {
                OnlineUsers = new List <HubUser>();
            }

            if (OnlineUsers.FirstOrDefault(p => p.ID == hubUser.ID) == null)
            {
                OnlineUsers.Add(hubUser);
            }
        }
Esempio n. 6
0
        public void OnUserLoggedIn(string userName)
        {
            if (userName != null)
            {
                OfflineUsers.Remove(userName);
            }

            var userOnline = OnlineUsers.SingleOrDefault(x => x == userName);


            if (userOnline != null)
            {
                return;
            }

            OnlineUsers.Add(userName);
            OnPropertyChanged(nameof(OnlineUsers));
        }
Esempio n. 7
0
        /// <summary>
        /// Try to add user to Online List, if already exists, find him and return
        /// </summary>
        /// <param name="chatLine">Full chat line</param>
        /// <returns>Sender user</returns>
        public User JoinUser(string chatLine)
        {
            string username = Parsing.ParseUsername(chatLine);
            long   userId   = Parsing.ParseUserId(chatLine);

            if (!OnlineUsers.Any(x => x.Username == username))
            { // User is not in the list
                var newUser = new User(username)
                {
                    ID = userId
                };

                newUser = _botDataManager.LoadUserData(newUser);
                OnlineUsers.Add(newUser);

                OnUserJoined?.Invoke(this, new OnUserArgs {
                    User = newUser
                });
                _logger.LogInformation("[JOIN] {name} joined the broadcast!", username);
                return(newUser);
            }

            return(FindOnlineUser(username));
        }
Esempio n. 8
0
        public async Task Connect(UserViewModel user)
        {
            var newUser = new User {
                Id = Context.ConnectionId, UserName = user.Name
            };

            if (OnlineUsers.FirstOrDefault(usr => usr.Id == Context.ConnectionId) != null)
            {
                var old = OnlineUsers.FirstOrDefault(usr => usr.Id == Context.ConnectionId);
                old.UserName = user.Name;
                await Clients.All.SendAsync("UserConnected", GetOnlineUsers());
            }
            else
            {
                OnlineUsers.Add(newUser);
                await Clients.All.SendAsync("UserConnected", GetOnlineUsers());
            }
            var chat = Chats.FirstOrDefault(cht => cht.Name == "Global Chat");

            newUser.ChatId = chat.ChatId;
            chat.ConnectedUsers.Add(newUser); //бага тута
            //await Clients.Caller.SendAsync("ConnectToChat2", new { newUser.CurrentChat.Messages, Users = new[] { new User { UserName = "******" } } });
            //var costilniyChat = new Chat {
            //    ConnectedUsers = newUser.CurrentChat.ConnectedUsers.Select(usr => new User
            //    {
            //        UserName = usr.UserName,
            //        MessageBox = newUser.MessageBox,
            //        Id = newUser.Id,
            //        CurrentChat = null
            //    }).ToList(),
            //    ChatId = newUser.CurrentChat.ChatId,
            //    Messages = newUser.CurrentChat.Messages,
            //    Name = newUser.CurrentChat.Name
            //};
            await Clients.Caller.SendAsync("ConnectToChat", chat);
        }
Esempio n. 9
0
        public MainViewModel(Chat tcpChat)
        {
            chat = tcpChat;
            chat.OnMessageRecieved += HandleRecievedMessage;
            chat.OnStrokeRecieved  += HandleRecievedStroke;
            chat.OnUserConnected   += user =>
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    if (OnlineUsers.Contains(user))
                    {
                        return;
                    }
                    OnlineUsers.Add(user);
                });
            };
            chat.OnUserLogout += user =>
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    if (!OnlineUsers.Contains(user))
                    {
                        return;
                    }
                    OnlineUsers.Remove(user);
                });
            };
            chat.OnUsersListReceived += users =>
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    foreach (var user in users)
                    {
                        if (OnlineUsers.Contains(user))
                        {
                            continue;
                        }
                        OnlineUsers.Add(user);
                    }
                });
            };

            Messages    = new ObservableCollection <ChatMessage>();
            Strokes     = new ObservableCollection <Stroke>();
            OnlineUsers = new ObservableCollection <string>();

            OpenDrawRoomCommand = new RelayCommand(x => { WindowService.ShowWindow(new DrawingRoomViewModel(chat)); });
            SendMessageCommand  = new RelayCommand(x =>
            {
                if (!chat.IsConnected)
                {
                    MessageBox.Show("Connection Failed");
                    return;
                }
                if (string.IsNullOrWhiteSpace(TextField))
                {
                    return;
                }
                chat.Send(TextField);
                TextField = "";
                OnPropertyChanged("TextField");
            });
        }
Esempio n. 10
0
 public async Task AddOnlineUser(User user)
 {
     OnlineUsers.Add(user);
 }
Esempio n. 11
0
 public bool Login(string username)
 {
     OnlineUsers.Add(new UserConfig(username));
     return(true);
 }
Esempio n. 12
0
        private void OnWebSocketMessage(object sender, MessageEventArgs e)
        {
            var messageJson = JObject.Parse(e.Data);

            var command = (string)messageJson["cmd"];

            switch (command)
            {
            case "chat":
                var time = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)
                           .AddMilliseconds((double)messageJson["time"]);
                time = time.ToLocalTime();

                var text = (string)messageJson["text"];
                var nick = (string)messageJson["nick"];
                var trip = (string)messageJson["trip"];

                var richText = HackChatTextParser.GetRichText(text, this);
                var message  = new Message(nick, trip, text, richText, text.ToLower().Contains(Username.ToLower()),
                                           time);

                OnMessage(message);
                break;

            case "onlineSet":
                OnlineUsers = messageJson["nicks"].ToObject <List <string> >();
                OnInfo(InfoType.OnlineSet, OnlineUsers);
                break;

            case "onlineAdd":
                var addNick = (string)messageJson["nick"];
                OnlineUsers.Add(addNick);
                OnInfo(InfoType.OnlineAdd, addNick);
                break;

            case "onlineRemove":
                var removeNick = (string)messageJson["nick"];
                OnlineUsers.Remove(removeNick);
                OnInfo(InfoType.OnlineRemove, removeNick);
                break;

            case "warn":
                var warnText = (string)messageJson["text"];
                switch (warnText)
                {
                case "Nickname must consist of up to 24 letters, numbers, and underscores":
                    OnInfo(InfoType.InvalidUsername, warnText);
                    break;

                case "Cannot impersonate the admin":
                    OnInfo(InfoType.ImpersonatingAdmin, warnText);
                    break;

                case "Nickname taken":
                    OnInfo(InfoType.UsernameTaken, warnText);
                    break;

                case "You are joining channels too fast. Wait a moment and try again.":
                    OnInfo(InfoType.ChannelRatelimit, warnText);
                    break;

                case "You are sending too much text. Wait a moment and try again.\n" +
                    "Press the up arrow key to restore your last message.":
                    OnInfo(InfoType.MessageRatelimit, warnText);
                    break;

                default:
                    Console.WriteLine("Unrecognised warning:\n" + e.Data);
                    break;
                }
                break;

            default:
                Debug.WriteLine("Unrecognised message:");
                Debug.WriteLine(e.Data);
                break;
            }
        }