Start() публичный Метод

public Start ( ) : void
Результат void
Пример #1
0
        private static void Main()
        {
            Events.Start();

            Logger.Debug("Loading...");

            ObjectManager <IRoom> .Instance.RegisterManager <RoomManager>();

            ObjectManager <IItem> .Instance.RegisterManager <ItemManager>();

            ObjectManager <IMessenger> .Instance.RegisterManager <MessengerManager>();

            Logger.Debug("Loading objects...");
            foreach (var assembly in Configuration.Config.GetSection("assemblies").GetChildren())
            {
                MainManager.Instance.LoadAssembly(assembly.Value);
            }

            foreach (var python in Configuration.Config.GetSection("python").GetChildren())
            {
                MainManager.Instance.LoadPython(Path.GetDirectoryName(python.Value), Path.GetFileName(python.Value));
            }

            MainManager.Instance.LoadAssembly(Assembly.GetExecutingAssembly());


            Logger.Info("Working!");

            // To allow long strings
            Console.SetIn(new StreamReader(Console.OpenStandardInput(),
                                           Console.InputEncoding,
                                           false,
                                           16384));

            var commandLine = new PythonCommandLine();
            var engine      = Python.CreateEngine();

            foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                engine.Runtime.LoadAssembly(assembly);
            }

            commandLine.Run(engine, new SuperConsole(commandLine, true), new PythonConsoleOptions
            {
                AutoIndent      = true,
                ColorfulConsole = true,
                TabCompletion   = true
            });

            Logger.Info("Saving users...");
            UserManager.Instance.Flush();
            Logger.Debug("Done!");
            Thread.Sleep(500); // Finish logging
            Environment.Exit(0);
        }
Пример #2
0
        public void Start()
        {
            ItemEvaluator.Instance   = DefaultItemEvaluator.Instance;
            Explorer.CurrentDelegate = user => CombatAreaCache.Current.Explorer.BasicExplorer;

            ComplexExplorer.ResetSettingsProviders();
            ComplexExplorer.AddSettingsProvider("MapBot", MapBotExploration, ProviderPriority.Low);

            // Cache all bound keys.
            LokiPoe.Input.Binding.Update();

            // Reset the default MsBetweenTicks on start.
            Log.Debug($"[Start] MsBetweenTicks: {BotManager.MsBetweenTicks}.");
            Log.Debug($"[Start] NetworkingMode: {LokiPoe.ConfigManager.NetworkingMode}.");
            Log.Debug($"[Start] KeyPickup: {LokiPoe.ConfigManager.KeyPickup}.");
            Log.Debug($"[Start] IsAutoEquipEnabled: {LokiPoe.ConfigManager.IsAutoEquipEnabled}.");

            // Since this bot will be performing client actions, we need to enable the process hook manager.
            LokiPoe.ProcessHookManager.Enable();

            _coroutine = null;

            ExilePather.Reload();

            _taskManager.Reset();

            AddTasks();

            Events.Start();
            PluginManager.Start();
            RoutineManager.Start();
            PlayerMoverManager.Start();
            _taskManager.Start();

            foreach (var plugin in PluginManager.EnabledPlugins)
            {
                Log.Debug($"[Start] The plugin {plugin.Name} is enabled.");
            }

            if (ExilePather.BlockTrialOfAscendancy == FeatureEnum.Unset)
            {
                //no need for this, map trials are in separate areas
                ExilePather.BlockTrialOfAscendancy = FeatureEnum.Disabled;
            }
        }
Пример #3
0
        public void SetActive(bool _value)
        {
            if (_value == true && m_Active == false && Enabled)
            {
                m_Active = true;

                Move.Altitude.Init();
                Effect.Start(OwnerComponent);
                Events.Start(OwnerComponent);
                Inventory.Start();
                Influences.Start();
            }
            else if (_value == false)
            {
                m_Active = false;

                m_Runtime = 0;

                Effect.Stop();
                Events.Stop();
                Inventory.Stop(OwnerComponent);
                Influences.Stop(OwnerComponent);
            }
        }
Пример #4
0
        private static void Main()
        {
            Events.Start();

            AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
            {
                Logger.Error(args.ExceptionObject as Exception, "Unhandled error");
                Exit();
            };

            Logger.Debug("Loading...");

            ObjectManager <IRoom> .Instance.RegisterManager <RoomManager>();

            ObjectManager <IRoot> .Instance.RegisterManager <RootManager>();

            ObjectManager <IItem> .Instance.RegisterManager <ItemManager>();

            ObjectManager <IQuest> .Instance.RegisterManager <QuestManager>();

            ObjectManager <IMessenger> .Instance.RegisterManager <MessengerManager>();

            ObjectManager <IMigrator> .Instance.RegisterManager <MigratorManager>();

            Logger.Debug("Loading objects...");
            MainManager.Instance.LoadAssembly(Assembly.GetExecutingAssembly());
            foreach (var assembly in Configuration.Config.GetSection("assemblies").GetChildren())
            {
                MainManager.Instance.LoadAssembly(assembly.Value);
            }

            Logger.Debug("Loading other...");

            ObjectManager <IMessenger> .Instance.Get <MessengerManager>().BeginPolling();

            Logger.Info("Working!");

            // To allow long strings
            Console.SetIn(new StreamReader(Console.OpenStandardInput(),
                                           Console.InputEncoding,
                                           false,
                                           16384));

            Console.CancelKeyPress += (sender, args) =>
            {
                args.Cancel = true;
                Console.Error.WriteLine("\nUse `/q` to quit.");
            };

            while (true)
            {
                Console.WriteLine("Working...");
                var cmd = Console.ReadLine();
                if (cmd != "/q")
                {
                    Console.Error.WriteLine("Use `/q` to quit.");
                }
                else
                {
                    break;
                }
            }

            Exit();
        }
Пример #5
0
        static void Main(string[] args)
        {
            _proxy          = new TransportProxy(new SimpleTransport());
            _discovery      = new Discovery(_proxy);
            _authentication = new Authentication(_proxy);

            System.Console.WriteLine("Enter discovery domain");
            var discoveryDomain = System.Console.ReadLine();

            System.Console.WriteLine("Enter username");
            var username = System.Console.ReadLine();

            System.Console.WriteLine("Enter password");
            var password = System.Console.ReadLine();

            System.Console.WriteLine("Starting discovery...");
            var discoveryTask = _discovery.Start(!string.IsNullOrWhiteSpace(discoveryDomain) ? discoveryDomain : username);

            discoveryTask.Wait();
            var discoveryUri = new Uri(discoveryTask.Result.Links.User.Href);

            System.Console.WriteLine("Starting authentication");
            try
            {
                var authenticationTask = _authentication.Start(discoveryUri);
                authenticationTask.Wait();
            }
            catch (AggregateException ex)
            {
                if (ex?.InnerException.GetType() == typeof(AuthenticationException))
                {
                    var challenge     = (ex.InnerException as AuthenticationException).Challenge;
                    var authTokenTask = _authentication.GetAuthToken(challenge.MsRtcOAuth, new Credentials
                    {
                        GrantType = Constants.Password,
                        Username  = username,
                        Password  = password
                    });
                    authTokenTask.Wait();

                    var rootTask = _authentication.Start(discoveryUri, authTokenTask.Result);
                    rootTask.Wait();

                    if (rootTask.Result != null)
                    {
                        System.Console.WriteLine("Creating Application");
                        var applications = new Application
                        {
                            Culture    = "en-US",
                            EndpointId = Guid.NewGuid().ToString(),
                            UserAgent  = "tester"
                        };
                        var appTask = _proxy.ExecuteRequestAsync(new Request
                        {
                            Uri     = new Uri(rootTask.Result.Links.Applications.Href),
                            Method  = HttpMethod.Post,
                            Headers = new Dictionary <string, string>
                            {
                                { Constants.ContentType, Constants.Json }
                            },
                            Data = applications.ToBytes()
                        });
                        appTask.Wait();

                        if (appTask?.Result?.StatusCode == HttpStatusCode.Created)
                        {
                            applications = appTask.Result.Data.FromBytes <Application>();
                            if (applications != null)
                            {
                                var makeMeAvailable = new MakeMeAvailable
                                {
                                    SupportedModalities = new [] { "Messaging" }
                                };
                                var makeMeAvailableTask = _proxy.ExecuteRequestAsync(new Request
                                {
                                    Uri     = new Uri(applications.Embedded.Me.Links.MakeMeAvailable.Href, UriKind.Relative),
                                    Method  = HttpMethod.Post,
                                    Headers = new Dictionary <string, string>
                                    {
                                        { Constants.ContentType, Constants.Json }
                                    },
                                    Data = makeMeAvailable.ToBytes()
                                });
                                makeMeAvailableTask.Wait();

                                if (makeMeAvailableTask?.Result.StatusCode == HttpStatusCode.NoContent)
                                {
                                    // Start events loop
                                    var events = new Events(_proxy, new Uri(applications.Links.Events.Href, UriKind.Relative));
                                    events.OnEventReceived += OnEventReceived;
                                    events.Start();

                                    // Request and start reportMyActivity loop
                                    var meTask = _proxy.ExecuteRequestAsync(new Request
                                    {
                                        Uri    = new Uri(applications.Embedded.Me.Links.Self.Href, UriKind.Relative),
                                        Method = HttpMethod.Get
                                    });
                                    meTask.Wait();

                                    if (meTask?.Result?.StatusCode == HttpStatusCode.OK)
                                    {
                                        var me = meTask.Result.Data.FromBytes <Me>();
                                        _timer = new Timer(ReportMyActivity, me.Links.ReportMyActivity.Href, 0, (int)(3.5 * 60 * 1000));
                                    }

                                    // Request and update communication
                                    var commGetTask = _proxy.ExecuteRequestAsync(new Request
                                    {
                                        Uri    = new Uri(applications.Embedded.Communication.Links.Self.Href, UriKind.Relative),
                                        Method = HttpMethod.Get
                                    });
                                    commGetTask.Wait();

                                    if (commGetTask?.Result?.StatusCode == HttpStatusCode.OK)
                                    {
                                        var comm = commGetTask.Result.Data.FromBytes <Communication>();
                                        comm.SupportedMessageFormats.Add("Html");
                                        var commTask = _proxy.ExecuteRequestAsync(new Request
                                        {
                                            Uri     = new Uri(applications.Embedded.Communication.Links.Self.Href, UriKind.Relative),
                                            Method  = HttpMethod.Put,
                                            Headers = new Dictionary <string, string>
                                            {
                                                { Constants.ContentType, Constants.Json },
                                                { Constants.IfMatch, string.Format("\"{0}\"", comm.ETag) }
                                            },
                                            Data = comm.ToBytes()
                                        });
                                        commTask.Wait();

                                        if (commTask?.Result?.StatusCode == HttpStatusCode.NoContent)
                                        {
                                            System.Console.WriteLine("Communication Updated");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            System.Console.ReadLine();
            _timer.Dispose();
            _timer = null;
        }
Пример #6
0
        private static void Main()
        {
            Events.Start();

            AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
            {
                Logger.Error(args.ExceptionObject as Exception, "Unhandled error");
                _work = false;
                Exit();
            };

            Logger.Debug("Loading...");

            ObjectManager <IRoom> .Instance.RegisterManager <RoomManager>();

            ObjectManager <IRoot> .Instance.RegisterManager <RootManager>();

            ObjectManager <IItem> .Instance.RegisterManager <ItemManager>();

            ObjectManager <IQuest> .Instance.RegisterManager <QuestManager>();

            ObjectManager <IMessenger> .Instance.RegisterManager <MessengerManager>();

            ObjectManager <IMigrator> .Instance.RegisterManager <MigratorManager>();

            Logger.Debug("Loading objects...");
            MainManager.Instance.LoadAssembly(Assembly.GetExecutingAssembly());
            foreach (var assembly in Configuration.Config.GetSection("assemblies").GetChildren())
            {
                MainManager.Instance.LoadAssembly(assembly.Value);
            }

            Logger.Debug("Loading other...");

            TopPlayers.Instance.Initialize();
            ObjectManager <IMessenger> .Instance.Get <MessengerManager>().BeginPolling();

            Logger.Info("Working!");

            // To allow long strings
            Console.SetIn(new StreamReader(Console.OpenStandardInput(),
                                           Console.InputEncoding,
                                           false,
                                           16384));

            while (_work)
            {
                try
                {
                    var console = new InteractiveInterpreterConsole();
                    console.ReadEvalPrintLoop();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    continue;
                }

                break;
            }

            Exit();
        }