void OnPlayerConnected(NetUser netuser) { if (!(ChatPersonData.ContainsKey(netuser))) { ChatPerson cp = new ChatPerson(netuser.displayName); ChatPersonData.Add(netuser, cp); } }
object getChatColor(NetUser netuser) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); return(cp.chatcolor); } return(false); }
object getDisplayName(NetUser netuser) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); return(cp.displayName); } return(false); }
object getSuffix(NetUser netuser) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); return(cp.suffix); } return(false); }
void TryToAdd(NetUser netuser) { if (!(ChatPersonData.ContainsKey(netuser))) { ChatPerson cp = new ChatPerson(netuser.displayName); ChatPersonData.Add(netuser, cp); Interface.CallHook("onChatApiPlayerLoad", netuser); } }
bool resetCustomTag(NetUser netuser) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); cp.UpdateTag(); return(true); } return(false); }
bool setDisplayName(NetUser netuser, string DisplayName) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); cp.displayName = DisplayName; return(true); } return(false); }
bool setCustomTag(NetUser netuser, string tag) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); cp.tag = tag; return(true); } return(false); }
object getCP(NetUser netuser) { if (ChatPersonData.ContainsKey(netuser)) { return(ChatPersonData[netuser]); } ChatPerson cp = new ChatPerson(netuser.displayName); ChatPersonData.Add(netuser, cp); return(ChatPersonData[netuser]); }
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); }
bool resetDisplayName(NetUser netuser) { if (getCP(netuser) is ChatPerson) { ChatPerson cp = (ChatPerson)getCP(netuser); cp.displayName = netuser.displayName; cp.UpdateTag(); return(true); } return(false); }
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"); } }
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); }
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); }
/// <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); }
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); }
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); }
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); }
/// <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 */ } }
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); }