コード例 #1
0
        void OnZkServerSaid(object sender, Say say)
        {
            try
            {
                if (say.Text?.StartsWith("!") == true)
                {
                    ConnectedUser conus;
                    if (server.ConnectedUsers.TryGetValue(say.User, out conus) && conus.User.IsAdmin)
                    {
                        var parts    = say.Text.Split(new[] { ' ' }, 2);
                        var command  = parts.FirstOrDefault();
                        var argument = parts.Skip(1).FirstOrDefault();

                        switch (command)
                        {
                        case "!announce":
                            server.GhostSay(new Say()
                            {
                                Text = argument, User = say.User, Place = SayPlace.MessageBox, Ring = true,
                            });
                            break;

                        case "!topic":
                            if (say.Place == SayPlace.Channel && !string.IsNullOrEmpty(say.Target))
                            {
                                server.SetTopic(say.Target, argument, say.User);
                            }
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.TraceWarning("Error processing message  {0} {1} : {2}", say?.User, say?.Text, ex);
            }
        }