protected override void HandleMessageRecievedEvent(MessageIRC message) { base.HandleMessageRecievedEvent(message); string word = message.Parameters[1]; word = word.Substring(0, word.Length - 2); for (int i = 0; i < Keys.Length; i++) { int matched = WordComparator.Comparator(word, Keys[i].Key); if (matched > Keys[i].RevealedCount) { Keys[i].RevealedCount = matched; m_PendingUIUpdates.Enqueue(i); if (Keys[i].RevealedCount == Keys[i].Key.Length) { m_BufferedMobs.Add(ExposedMobs[i]); m_BufferedMobs.Add(ExposedMobs[i]); m_BufferedMobs.Add(ExposedMobs[i]); m_BufferedMobs.Add(ExposedMobs[i]); m_BufferedMobsName.Add(message.Parameters[0]); m_BufferedMobsName.Add(message.Parameters[0]); m_BufferedMobsName.Add(message.Parameters[0]); m_BufferedMobsName.Add(message.Parameters[0]); m_PendingReplaces.Enqueue(i); } } } }
protected override void HandleMessageRecievedEvent(MessageIRC message) { base.HandleMessageRecievedEvent(message); for (int i = 0; i < m_ShownMap.Count; i++) { string param = message.Parameters[1]; if (param.Substring(0, param.Length - 2) == m_ShownMap[i].Name) { SelectedMapName = m_ShownMap[i].Name; Instigator = message.Parameters[0].Substring(1); break; } } }
protected override void HandleMessageRecievedEvent(MessageIRC message) { base.HandleMessageRecievedEvent(message); string word = message.Parameters[1]; word = word.Substring(0, word.Length - 2); int matched = WordComparator.Comparator(word, m_CurrentKey.Key); if (matched > m_CurrentKey.RevealedCount) { m_CurrentKey.RevealedCount = matched; m_PendingUIUpdates.Enqueue(0); if (m_CurrentKey.RevealedCount == m_CurrentKey.Key.Length) { m_PendingReplaces.Enqueue(0); m_UpgradeLevel++; if (m_UpgradeLevel == 3) { m_CurrentSelectionTime = 0; } } } }
protected virtual void HandleMessageRecievedEvent(MessageIRC message) { }
private void HandleConnectErrorEvent(MessageIRC message) { m_MenuToShow = ConnectErrorMenu; }
void HandlePrivateMessage(MessageIRC message) { #if DEBUG string log = string.Format("Message from {0}: {1}", message.Parameters[0], message.Parameters[1]); Debug.Log(log); #endif OnMessageRecieved(message); }
void HandlePingCommand(MessageIRC message) { #if DEBUG Debug.Log("got pinged: " + message.Parameters[0]); #endif SendRawMessage("PONG :{0}", message.Parameters[0]); }
internal void OnConnectError(MessageIRC message) { if (ConnectErrorEvent != null) ConnectErrorEvent(message); }
internal void OnMessageRecieved(MessageIRC message) { if (MessageRecievedEvent != null) MessageRecievedEvent(message); }
private void HandleData(IAsyncResult result) { if (m_TcpClient == null) { return; } int length = m_TcpClient.GetStream().EndRead(result); if (length == 0) { Debug.Log("Connection dropped by server"); Disconnect(false); return; } int readOffset = 0; while (length > 0) { int messageLength = Array.IndexOf(m_ReadBuffer, (byte)'\n', readOffset, length); messageLength++; int bytesToRead = messageLength; if (bytesToRead == 0) { bytesToRead = m_ReadBufferLength; } bytesToRead -= readOffset; StringBuilder rawMessage = new StringBuilder(m_PartialMessage); m_PartialMessage = ""; rawMessage.Append(m_Encoding.GetString(m_ReadBuffer, readOffset, bytesToRead)); if (rawMessage.Length > 0) { if (messageLength == 0) { // raw message is not complete m_PartialMessage = rawMessage.ToString(); break; } else { // raw message complete MessageIRC ircMessage = new MessageIRC(rawMessage.ToString()); string commandToLower = ircMessage.Command.ToLower(); if (m_CommandHandlers.ContainsKey(commandToLower)) { m_CommandHandlers[commandToLower](ircMessage); } else { if (m_FirstMessage) { if (ircMessage.Parameters[0] == "*" && ircMessage.Parameters[1].Contains("Error")) { Debug.Log(string.Format("Connection error: {0}", ircMessage.Parameters[1])); Disconnect(true); OnConnectError(ircMessage); } else { Debug.Log(string.Format("Connected to TwitchTV as {0}, on {1}'s channel", Username, StreamName)); OnConnectSuccess(); } m_FirstMessage = false; } else { #if DEBUG Debug.Log(string.Format("Unknown message: {0}", ircMessage.RawMessage)); #endif } } } } else { Debug.LogError("Raw message is empty"); } length -= bytesToRead; readOffset += bytesToRead; } m_TcpClient.GetStream().BeginRead(m_ReadBuffer, 0, m_ReadBufferLength, new AsyncCallback(HandleData), null); }