Example #1
0
        public static IPCMessage.IIPCMessage FromRawIPCMessage(RawIPCMessage rawmsg)
        {
            IPCMessage.IIPCMessage ret;
            switch (rawmsg.MessageName)
            {
            case "Chat":
                ret = new IPCMessage.ChatIPCMessage();
                break;

            case "ChannelList":
                ret = new IPCMessage.ChannelListIPCMessage();
                break;

            case "ChannelSelect":
                ret = new IPCMessage.ChannelSelectIPCMessage();
                break;

            case "CurrentChannel":
                ret = new IPCMessage.CurrentChannelIPCMessage();
                break;

            case "Time":
                ret = new IPCMessage.TimeIPCMessage();
                break;

            case "Close":
                ret = new IPCMessage.CloseIPCMessage();
                break;

            case "SetChatOpacity":
                ret = new IPCMessage.SetChatOpacityIPCMessage();
                break;

            case "Command":
                ret = new IPCMessage.CommandIPCMessage();
                break;

            default:
                throw new IPCMessage.IPCMessageDecodeException("不明なMessageNameです: " + rawmsg.ToString());
            }
            ret.Decode(rawmsg.Contents);
            return(ret);
        }
Example #2
0
        private async void collectServiceModule_NewChatProduced(IEnumerable <Chat> newChats)
        {
            foreach (Chat chat in newChats)
            {
                applyChatModRule(chat);

                if (ChatPreserveCount.Value > 0)
                {
                    while (chats.Count >= ChatPreserveCount.Value)
                    {
                        chats.RemoveAt(0);
                    }
                }
                chats.Add(chat);

                if (!chat.Ng)
                {
                    IPC.IPCMessage.ChatIPCMessage msg = new IPC.IPCMessage.ChatIPCMessage {
                        Chat = chat
                    };
                    await ipc.Send(msg);
                }
            }
        }