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); }
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; }
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; } } }
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); }
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; }