Example #1
0
 void OnPlayerConnected(NetUser netuser)
 {
     if (!(ChatPersonData.ContainsKey(netuser)))
     {
         ChatPerson cp = new ChatPerson(netuser.displayName);
         ChatPersonData.Add(netuser, cp);
     }
 }
Example #2
0
 object getChatColor(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         return(cp.chatcolor);
     }
     return(false);
 }
Example #3
0
 object getDisplayName(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         return(cp.displayName);
     }
     return(false);
 }
Example #4
0
 object getSuffix(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         return(cp.suffix);
     }
     return(false);
 }
Example #5
0
 void TryToAdd(NetUser netuser)
 {
     if (!(ChatPersonData.ContainsKey(netuser)))
     {
         ChatPerson cp = new ChatPerson(netuser.displayName);
         ChatPersonData.Add(netuser, cp);
         Interface.CallHook("onChatApiPlayerLoad", netuser);
     }
 }
Example #6
0
 bool resetCustomTag(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         cp.UpdateTag();
         return(true);
     }
     return(false);
 }
Example #7
0
 bool setDisplayName(NetUser netuser, string DisplayName)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         cp.displayName = DisplayName;
         return(true);
     }
     return(false);
 }
Example #8
0
        bool setCustomTag(NetUser netuser, string tag)
        {
            if (getCP(netuser) is ChatPerson)
            {
                ChatPerson cp = (ChatPerson)getCP(netuser);
                cp.tag = tag;

                return(true);
            }
            return(false);
        }
Example #9
0
        object getCP(NetUser netuser)
        {
            if (ChatPersonData.ContainsKey(netuser))
            {
                return(ChatPersonData[netuser]);
            }
            ChatPerson cp = new ChatPerson(netuser.displayName);

            ChatPersonData.Add(netuser, cp);
            return(ChatPersonData[netuser]);
        }
Example #10
0
 bool resetChatColor(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         cp.chatcolor    = "[color white]";
         cp.chatcolor_pr = 0;
         return(true);
     }
     return(false);
 }
Example #11
0
 bool resetDisplayName(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         cp.displayName = netuser.displayName;
         cp.UpdateTag();
         return(true);
     }
     return(false);
 }
Example #12
0
 bool resetSuffix(NetUser netuser)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         cp.suffix    = "";
         cp.suffix_pr = 0;
         cp.UpdateTag();
         return(true);
     }
     return(false);
 }
 public void UpdateData(ChatPerson person)
 {
     name.Text = person.Name;
     if (String.IsNullOrEmpty(person.ImageUrl))
     {
         image.Image = GetImageForName(person.Name);
     }
     else
     {
         image.Image = UIImage.FromBundle("android-contact.png");
     }
 }
Example #14
0
        public void MessagesRead(string friend_email)
        {
            GeneralPackage package = new GeneralPackage();

            package.Header = ComHeader.hMessagesRead;

            ChatPerson chatPerson = new ChatPerson();

            chatPerson.Email = friend_email;

            package.Content = chatPerson;
            SendPackage(package);
        }
Example #15
0
 bool setListenersList(NetUser netuser, List <NetUser> list, Plugin plugin)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         if (cp.listenersplugin == null)
         {
             cp.listenersplugin = plugin;
             cp.listoflisteners = list;
             return(false);
         }
     }
     return(false);
 }
Example #16
0
        /// <summary>
        /// Ein Kontakt in die Kontaktliste hinzufügen
        /// </summary>
        /// <param name="friend_email"></param>
        public void AddContact(string friend_email)
        {
            GeneralPackage package = new GeneralPackage();

            package.Header = ComHeader.hAddContact;

            ChatPerson friend = new ChatPerson();

            friend.Email = friend_email;

            package.Content = friend;

            SendPackage(package);
        }
Example #17
0
 bool setChatColor(NetUser netuser, string chatcolor, int priority = 0)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         if (priority >= cp.suffix_pr)
         {
             cp.chatcolor    = chatcolor;
             cp.chatcolor_pr = priority;
             return(true);
         }
     }
     return(false);
 }
Example #18
0
 bool setSuffix(NetUser netuser, string suffix, int priority = 0)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         if (priority >= cp.suffix_pr)
         {
             cp.suffix    = suffix;
             cp.suffix_pr = priority;
             cp.UpdateTag();
             return(true);
         }
     }
     return(false);
 }
Example #19
0
 bool resetListenersList(NetUser netuser, Plugin plugin)
 {
     if (getCP(netuser) is ChatPerson)
     {
         ChatPerson cp = (ChatPerson)getCP(netuser);
         if (cp.listenersplugin == null)
         {
             cp.listoflisteners.Clear();
             return(true);
         }
         else
         {
             if (plugin.Name.Equals(cp.listenersplugin.Name))
             {
                 cp.listoflisteners.Clear();
                 return(true);
             }
         }
     }
     return(false);
 }
Example #20
0
        /// <summary>
        /// Wartet fortlaufend auf Packete vom Client
        /// </summary>
        public void Receiver()
        {
            try
            {
                while (client.Client.Connected)
                {
                    GeneralPackage receivedPackage = (GeneralPackage)bFormatter.Deserialize(netStream);

                    GeneralPackage sendPackage = new GeneralPackage();

                    switch (receivedPackage.Header)
                    {
                    case ComHeader.hSend:
                        MessageSend message = new MessageSend();
                        message = (MessageSend)receivedPackage.Content;
                        int indexReceiver = UserController.GetIndexOfUser(message.To);
                        //Ist der Empfänger Online ?
                        if (UserController.ConnectedUsers[indexReceiver].Status == true)
                        {
                            NetworkStream netStreamOfReceiver = ((SClient)UserController.ConnectedUsers[indexReceiver].Connection).netStream;

                            // An den Empfänger senden
                            sendPackage.Header = ComHeader.hReceived;

                            //Sende Nachricht zum Empfänger
                            MessageReceived messageReceived = new MessageReceived();
                            messageReceived.From    = individualUser.Email;
                            messageReceived.Message = message.Msg;
                            sendPackage.Content     = messageReceived;

                            bFormatter.Serialize(netStreamOfReceiver, sendPackage);

                            //Speichere Nachricht in der Datenbank
                            dbController.SaveMessage(individualUser.Email, message.To, message.Msg, false);
                        }
                        else
                        {
                            //Speichere die Nachricht in der Datenbank
                            dbController.SaveMessage(individualUser.Email, message.To, message.Msg, false);
                        }
                        break;

                    case ComHeader.hDisconnect:
                        if (individualUser != null)     //individualUser ist null, wenn der Benutzer sich nur registrieren möchte
                        {
                            Console.WriteLine("[{0}] Client ({1}) hat sich abgemeldet", DateTime.Now, individualUser.Email);
                            CloseConn();
                        }
                        else
                        {
                            Console.WriteLine("[{0}] Client hat sich abgemeldet", DateTime.Now);
                            CloseConn();
                        }
                        break;

                    case ComHeader.hChat:     // Wenn nach dem Inhalt eines "Chats" gefragt wird

                        sendPackage.Header = ComHeader.hChat;

                        ChatPerson chatPerson = ((ChatPerson)receivedPackage.Content);


                        //Die ungelesenen Nachrichten als gelesen markieren
                        dbController.MarkNotReceivedMessagesAsReceived(individualUser.Email, chatPerson.Email);


                        ChatContent chatContent = new ChatContent();
                        chatContent.chatContent = dbController.LoadChat(individualUser.Email, chatPerson.Email);

                        sendPackage.Content = chatContent;

                        SendPackage(sendPackage);
                        break;

                    case ComHeader.hAddContact:
                        #region Kontakt hinzufügen
                        ChatPerson friend = ((ChatPerson)receivedPackage.Content);

                        // Wenn der Kontakt hinzugefügt wurden konnte
                        if (dbController.AddContact(individualUser.Email, friend.Email))
                        {
                            sendPackage.Header  = ComHeader.hAddContact;
                            sendPackage.Content = dbController.LoadContacts(individualUser.Email);

                            SendPackage(sendPackage);
                        }
                        else
                        {
                            // Wenn der Kontakt nicht hinzugeüft werden kann
                            sendPackage.Header = ComHeader.hAddContactWrong;
                            SendPackage(sendPackage);
                        }

                        #endregion
                        break;

                    case ComHeader.hState:
                        sendPackage.Header  = ComHeader.hState;
                        sendPackage.Content = dbController.LoadContacts(individualUser.Email);
                        SendPackage(sendPackage);
                        break;

                    case ComHeader.hMessagesRead:
                        ChatPerson chat_friend = ((ChatPerson)receivedPackage.Content);
                        //Die Nachrichten als gelesen markieren
                        dbController.MarkNotReceivedMessagesAsReceived(individualUser.Email, chat_friend.Email);
                        break;
                    }
                }
            }

            catch (IOException e)
            {
                //Falls während eines Vorgangs ein Fehler auftreten sollte, wird von einer Verbindungsunterbrechung ausgegangen.
                Console.WriteLine("[{0}] Client ({1}) hat sich abgemeldet", DateTime.Now, individualUser.Email);
                Console.WriteLine("{0}", e.ToString()); //TODO:

                /*
                 * Wenn ein "Client" sicht  abmeldet, erscheint eine Fehlermeldung("[...] connection was forcibly closed").
                 * Besser wäre eine Abmeldung mit einer Benachrichtigung an den Server
                 */
            }
        }
Example #21
0
        bool OnPlayerChat(NetUser netuser, string message)
        {
            object obj   = Interface.CallHook("ChatAPIPlayerChat", netuser, message);
            bool   strip = true;

            if (obj is bool)
            {
                if ((bool)obj == false)
                {
                    return(false);
                }
            }
            if (obj is string)
            {
                message = (string)obj;
                strip   = false;
            }
            else
            {
                message = StripBBCode(message);
            }
            object cl = getCP(netuser);

            if (cl is bool)
            {
                return(false);
            }

            ChatPerson cp = (ChatPerson)cl;

            if (cp == null)
            {
                return(false);
            }

            string msg  = string.Format(FormatMessage, cp.chatcolor, message).Trim();
            string ctag = cp.tag;

            if (ctag == null)
            {
                cp.UpdateTag();
                ctag = cp.tag;
            }

            if (cp.listenersplugin != null && cp.listoflisteners.Any())
            {
                foreach (NetUser listener in cp.listoflisteners.ToList())
                {
                    if (listener == null)
                    {
                        continue;
                    }

                    rust.SendChatMessage(listener, ctag, msg);
                }
            }
            else
            {
                rust.BroadcastChat(ctag, msg);
            }

            Puts(ctag + " " + StripBBCode(message));

            return(true);
        }