Exemple #1
0
        public bool ShouldHandle(IncomingMessage msg)
        {
            Regex REGEX = new Regex("^" + msg.Server.Nick + "[:,]? .+");

            if ((msg.IsDestChannel() && REGEX.IsMatch(msg.Message)) || msg.IsDestMe())
            {
                string text = msg.Message.Substring(msg.Message.IndexOf(' ') + 1);
                if (COMMAND_REGEX.IsMatch(text))
                {
                    string command = text.Split(' ')[0].ToLower();
                    if (commands.HasCommand(command))
                    {
                        CommandActor commandActor = commands.GetCommand(command);
                        if (commandActor.GetRequiredAccess() != UserAccess.ANYONE)
                        {
                            string     host       = msg.Source.Split('@')[1];
                            UserAccess userRights = msg.Server.GetUserAccess(host);
                            if (UserAccessAttr.HasRequiredAccess(userRights, commandActor.GetRequiredAccess()))
                            {
                                return(true);
                            }
                        }
                        else
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Exemple #2
0
        private static async Task Main()
        {
            _sysactor = ActorSystem.Create("theSystem");
            var vehicles  = _sysactor.ActorOf <VehiclesActor>("vehicles");
            var writer    = _sysactor.ActorOf <ConsoleWriterActor>("writer");
            var commander = _sysactor.ActorOf(CommandActor.Props(vehicles, writer), "commander");

            _sysactor.ActorOf(ConsoleReaderActor.Props(commander), "reader");
            commander.Tell("print");
            await _sysactor.WhenTerminated;
        }
Exemple #3
0
        static void Main(string[] args)
        {
            MassTransitBus bus = new MassTransitBus();
            ConduitNode.Create()
                .WithServiceBus(bus)
                .Open();

            CommandActor actor = new CommandActor();

            string cmd = string.Empty;
            while (cmd.ToLowerInvariant() != "exit")
            {
                Console.Write("Command>");
                string[] cmdline = Console.ReadLine().Split(' ');
                cmd = cmdline[0];

                switch (cmd)
                {
                    case "check":
                        actor.Publish<QueryConsistency>();
                        break;
                    case "clear":
                        actor.Publish<ClearCommand>();
                        break;
                    case "status":
                        actor.Publish<QueryStatus>();
                        break;
                    case "test":
                        int cnt = int.Parse(cmdline[1]);
                        bool async = false;
                        if (cmdline.Length > 2 && cmdline[2].ToLowerInvariant() == "async")
                        {
                            async = true;
                        }
                        actor.Publish<StartCommand>(new StartCommand(cnt, async));
                        break;
                    case "ping":
                        //CommandActor component = conduit.Components[0] as CommandActor;
                        //component.Ping();
                        break;
                    case "unsubscribe":
                        actor.Publish<UnsubscribeCommand>();
                        break;
                }
            }
        }
Exemple #4
0
        public void Handle(IncomingMessage msg)
        {
            string[]        parts   = msg.Message.Split(new char[] { ' ' }, 3);
            string          command = parts[1];
            CommandActor    cmd     = commands.GetCommand(command);
            IncomingMessage newMessage;

            if (parts.Length > 2)
            {
                newMessage = new IncomingMessage(msg.Server, msg.Raw, msg.Source, msg.Command, msg.Target, parts[2]);
            }
            else
            {
                newMessage = new IncomingMessage(msg.Server, msg.Raw, msg.Source, msg.Command, msg.Target, null);
            }
            cmd.HandleCommand(msg.Server, command, newMessage);
        }
Exemple #5
0
        public static void Main()
        {
            var system    = ActorSystem.Create("TreasureHunter");
            var list      = new List <IActorRef>();
            var commander = system.ActorOf(CommandActor.Props(list), "Commander");
            var account   = system.ActorOf(AccountMonitor.Props(commander), "Account");

            account.Tell(new ScheduleMessage());
            do
            {
                Console.Write("botmgr > ");
                string inputText = Console.ReadLine();

                if (!string.IsNullOrEmpty(inputText))
                {
                    commander.Tell(new UserCommandMessage()
                    {
                        Text = inputText
                    });
                }
            } while (true);
        }
 public void Execute(CommandActor commandActor)
 {
     commandActor.Hp -= 1;
 }
 public void Execute(CommandActor commandActor)
 {
     commandActor.Hp -= 1;
 }