public App() { _flist = new FListClientV1(); _fchat = new FChatConnection(_flist); UriParser.Register(new FListUriParser(), "flist", 1); }
internal Channel(FChatConnection Connection, string ID, string Title) { _Connection = Connection; _ID = ID; _Title = Title; _Banlist = new List <Character>(); _Characters = new List <Character>(); _OPs = new List <Character>(); _Status = ChannelStatus.Private; }
public CharacterDialog(FChatConnection Client) { this.Client = Client; if (!Client.IsConnected) Client.Connect(); InitializeComponent(); _CharacterBox.ItemsSource = Client.FListClient.Ticket.Characters; _CharacterBox.SelectedIndex = 0; }
internal Character(FChatConnection Connection, libflist.Character Character) : base(Character.Client, Character.Name) { this.Connection = Connection; _Description.UnderlyingTimestamp = Character._Description.UnderlyingTimestamp; _Description.UnderlyingValue = Character._Description.UnderlyingValue; _Images.UnderlyingTimestamp = Character._Images.UnderlyingTimestamp; _Images.UnderlyingValue = Character._Images.UnderlyingValue; _Kinks.UnderlyingTimestamp = Character._Kinks.UnderlyingTimestamp; _Kinks.UnderlyingValue = Character._Kinks.UnderlyingValue; _ProfileInfo.UnderlyingTimestamp = Character._ProfileInfo.UnderlyingTimestamp; _ProfileInfo.UnderlyingValue = Character._ProfileInfo.UnderlyingValue; }
public void Dispose() { _ID = null; _Title = null; _OwnerName = null; _Banlist.Clear(); _Banlist = null; _OPs.Clear(); _OPs = null; _Characters.Clear(); _Characters = null; _Connection = null; Joined = false; IsDisposed = true; }
public MessageSerializer(FChatConnection chat) { Chat = chat; }
internal Channel(FChatConnection Connection, string ID, string Title) { _Connection = Connection; _ID = ID; _Title = Title; _Banlist = new List<Character>(); _Characters = new List<Character>(); _OPs = new List<Character>(); _Status = ChannelStatus.Private; }
public static void Run() { Console.Clear(); Console.Title = string.Format("FChat Messenger v{0}", Assembly.GetExecutingAssembly().GetName().Version); Debug.Listeners.Clear(); Debug.Listeners.Add((_ConsoleBuffer.ChatBuf as ConsoleChatBuffer).TraceListener); _ChannelBuffers.Add(_ConsoleBuffer); _InputBox.OnTextEntered += (s, e) => { TextEntry(e); }; _Chat.AutoPing = true; //_Chat.OnRawMessage += (_, e) => // _ConsoleBuffer.ChatBuf.PushMessage(null, $"<< {e.Command.Serialize()}"); //_Chat.OnSendMessage += (_, e) => // _ConsoleBuffer.ChatBuf.PushMessage(null, $">> {e.Command.Serialize()}"); _Chat.OnSYSMessage += (_, e) => _ConsoleBuffer.ChatBuf.PushMessage(null, (e.Command as Server_SYS_ChatSYSMessage).Message); _Chat.OnErrorMessage += (_, e) => { if (CurrentChannelBuffer != _ConsoleBuffer) _ConsoleBuffer.ChatBuf.PushMessage(null, (e.Command as Server_ERR_ChatError).Error); CurrentChannelBuffer.ChatBuf.PushMessage(null, (e.Command as Server_ERR_ChatError).Error, MessageType.Preview, MessageSource.Remote); }; _Chat.OnError += (_, e) => _ConsoleBuffer.ChatBuf.PushMessage(null, $"{e.Message}:\n${e.InnerException}"); _Chat.OnChannelJoin += (_, e) => { ChannelBuffer chatBuf = _ChannelBuffers.FirstOrDefault(c => c.Channel == e.Channel); if (chatBuf == null) { chatBuf = new ChannelBuffer { ChatBuf = new ChannelChatBuffer(e.Channel), Title = e.Channel.Title }; _ChannelBuffers.Add(chatBuf); } else chatBuf.Title = e.Channel.Title; CurrentBuffer = _ChannelBuffers.IndexOf(chatBuf); }; _Chat.OnChannelChatMessage += (_, e) => WriteMessage(e.Message, null, e.Channel, e.Character, source: MessageSource.Remote); _Chat.OnChannelLFRPMessage += (_, e) => WriteMessage(e.Message, null, e.Channel, e.Character, MessageType.LFRP, MessageSource.Remote); _Chat.OnChannelRollMessage += (_, e) => WriteMessage(e.Message, null, e.Channel, e.Character, MessageType.Roll, MessageSource.Remote); _Chat.OnCharacterChatMessage += (_, e) => WriteMessage(e.Message, null, null, e.Character, source: MessageSource.Remote); _Chat.OnCharacterStatusChange += (_, e) => { var buf = _ChannelBuffers.FirstOrDefault(c => c.Character == e.Character); string msg = $"{e.Character.Name} is now {e.Character.Status}"; if (!string.IsNullOrEmpty(e.Character.StatusMessage)) msg += ", " + e.Character.StatusMessage; if (buf != null) WriteMessage(msg, buf, type: MessageType.Preview, source: MessageSource.Remote); if (e.Character.IsFriend || e.Character.IsBookmark) WriteMessage(msg, _ConsoleBuffer, type: MessageType.Preview, source: MessageSource.Remote); }; _Chat.OnCharacterTypingChange += (_, e) => { var buf = _ChannelBuffers.FirstOrDefault(c => c.Character == e.Character); if (buf == null) return; buf.SystemActivity |= true; // TODO: Typing notification }; _Chat.OnChannelLeave += (_, e) => { int i = 0; foreach (var c in _ChannelBuffers) { if (c.Channel == e.Channel) { if (_CurBuffer == i) _CurBuffer--; _ChannelBuffers.Remove(c); break; } ++i; } }; Redraw(true); InputLoop(); if (_Chat != null) _Chat.Dispose(); _Chat = null; }