Example #1
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            /* subscribe for anon lambda in order to receive any update */
            bot.OnGroupUpdateReceived += (sender, eventArgs) =>
            {
                logger.LogInformation(eventArgs.Update.Type.ToString() + " event type triggered");
            };


            /* subscribe for static method in order to receive new comment update type */
            bot.OnGroupUpdateReceived += NewCommentHandler;


            bot.OnBotStarted += (sender, eventArgs) =>
            {
                bot.Api.Wall.CreateComment(new WallCreateCommentParams()
                {
                    OwnerId = -bot.GroupId, PostId = 1, Message = "test"
                });
            };

            bot.Start();
            //bot.Dispose();
            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);


            //регистрируем текстовый ответ на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand,
                                                                   "ну окей, вот тебе матеша"));

            //регистрируем обработчик-функцию на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand, MateshaHandler));

            //важно: отсутствие PeerId в конструкторе RegexToActionTemplate означает

            // способ удаления клавиатуры будет добавлен в следующем обновлении проекта VkNet
            //https://github.com/vknet/vk/pull/780

            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaUnsubscribeCommand,
                                                                   "ну окей, теперь не будет у вас этой кнопки",
                                                                   new KeyboardBuilder().SetOneTime().AddButton("пока", "").Build()));

            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
    IEnumerator Start()
    {
        //KGameSettings.Instance.InitAction += OnGameSettingsInit;

        var engine = KEngine.AppEngine.New(
            gameObject,
            null,
            new IModuleInitable[]
        {
            //KGameSettings.Instance,
//                UIModule.Instance,
        });

        while (!engine.IsInited)
        {
            yield return(null);
        }

        var uiName = "DemoHome";

        UIModule.Instance.OpenWindow(uiName);

        Debug.Log("[SettingModule]Table: " + string.Join(",", ExampleSettings.TabFilePaths));

        foreach (ExampleSetting exampleInfo in ExampleSettings.GetAll())
        {
            Debug.Log(string.Format("Name: {0}", exampleInfo.Name));
            Debug.Log(string.Format("Number: {0}", exampleInfo.Number));
        }
        var info = ExampleSettings.Get("A_1024");

        Debuger.Assert(info.Name == "Test1");
        var info2 = SubdirExample2Settings.Get(2);

        Debuger.Assert(info2.Name == "Test2");

        var info3 = AppConfigSettings.Get("Test.Cat1");

        Debuger.Assert(info3.Value == "Cat1");

        ExampleSettings.OnReload = () =>
        {
            var reloadedInfo = ExampleSettings.Get("C_9888");
            Log.Info("Reload ExampleInfos! Now info: {0} -> {1}", "C_9888", reloadedInfo.Name);
        };



        Log.Info("Start reading streamingAssets Test...");
        UIModule.Instance.CallUI(uiName, (ui, args) =>
        {
            var tip                 = string.Format("Reading from streamingAssets, content: {0}", Encoding.UTF8.GetString(KResourceModule.LoadSyncFromStreamingAssets("TestFile.txt")));
            var demoHome            = ui as KUIDemoHome;
            demoHome.TipLabel.text += tip;
            // Do some UI stuff
        });
    }
Example #4
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.TemplateManager.Register(new RegexToActionTemplate("привет", "на привет всегда отвечаю кусь"));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("ты кто",
                                          new List <string>()
            {
                "меня зовут мишутка", "вы о ком", "не говори так", "а ты кто?"
            }));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("^[0-9]+$", "ого, я определил, что вы прислали мне число!"));

            bot.TemplateManager.Register(new RegexToActionTemplate("колобок",
                                                                   (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал {eventArgs.Message.Text}, я могу регировать на эту фразу так, как я хочу! system(\"reboot\")");
            }));

            bot.TemplateManager.Register(new RegexToActionTemplate("квадр.*[0-9]+", (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал '{eventArgs.Message.Text}', пора вычислить квадрат числа в сообщении!");

                int num = int.Parse(Regex.Match(eventArgs.Message.Text, "[0-9]+").Value);

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    RandomId = Environment.TickCount,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"квадрат числа {num} равен {num * num}"
                });
            }));


            var keyboard = new KeyboardBuilder().SetOneTime()
                           .AddButton("лол", "кек", KeyboardButtonColor.Positive, "type").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("кнопка", "лови кнопку", keyboard));
            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
    public void Initialize()
    {
        ExampleSettings.Load();
        wManagerSetting.CurrentSetting.UseLuaToMove = true;

        RotationFramework.Initialize(ExampleSettings.CurrentSetting.SlowRotation, ExampleSettings.CurrentSetting.FrameLock);
        MovementEvents.OnMovementPulse += LongGhostWolfHandler;
        MovementEvents.OnMoveToPulse   += GhostWolfHandler;
        _isLaunched = true;

        RotationSpells.Sort((a, b) => a.Priority.CompareTo(b.Priority));
        Rotation();
    }
Example #6
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            var keyboard = new KeyboardBuilder().SetOneTime().AddButton("тык", "").AddButton("тыдыщ", "").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("тык", (sender, eventArgs) =>
            {
                PeerContext context = eventArgs.PeerContext;
                long peerId         = eventArgs.Message.PeerId.Value;

                if (!context.Vars.ContainsKey("тыки"))
                {
                    context.Vars["тыки"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = peerId,
                    Message  = $"тык номер {context.Vars["тыки"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }
                                                                   ));


            bot.TemplateManager.Register(new RegexToActionTemplate("тыдыщ", (sender, eventArgs) =>
            {
                if (!eventArgs.PeerContext.GlobalVars.ContainsKey("тыдыщи"))
                {
                    eventArgs.PeerContext.GlobalVars["тыдыщи"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"глобальный, междиалоговый тыдыщ номер {eventArgs.PeerContext.GlobalVars["тыдыщи"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }));

            bot.Start();
            bot.Dispose();
        }
Example #7
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.OnMessageReceived += NewMessageHandler;

            bot.Start();

            Console.ReadLine();
        }
 public static bool Load()
 {
     try
     {
         if (File.Exists(AdviserFilePathAndName("CustomClass-ExampleSettings", ObjectManager.Me.Name + "." + Usefuls.RealmName)))
         {
             CurrentSetting =
                 Load <ExampleSettings>(AdviserFilePathAndName("CustomClass-ExampleSettings",
                                                               ObjectManager.Me.Name + "." + Usefuls.RealmName));
             return(true);
         }
         CurrentSetting = new ExampleSettings();
     }
     catch (Exception e)
     {
         Logging.WriteError("ExampleSettings > Load(): " + e);
     }
     return(false);
 }
Example #9
0
        public ExampleRequiredConnection(ILogger <ExampleRequiredConnection> logger,
                                         IEventBus eventBus,
                                         IOptions <ExampleSettings> options,
                                         IConnectivityPeerStats serverPeerStats,
                                         IForgeClientConnectivity forgeConnectivity,
                                         IPeriodicWork connectionLoop) : base(logger, eventBus, serverPeerStats, forgeConnectivity, connectionLoop)
        {
            _settings = options.Value !;

            foreach (ExampleClientPeerBinding peerBinding in _settings.Connections)
            {
                if (!peerBinding.TryGetExampleEndPoint(out ExampleEndPoint? endPoint))
                {
                    logger.LogWarning("Required connection skipped because of wrong format, check settings file. {Endpoint}", peerBinding.EndPoint);
                    continue;
                }

                var remoteEndPoint = new OutgoingConnectionEndPoint(endPoint);
                remoteEndPoint.Items[nameof(endPoint.MyExtraInformation)] = endPoint.MyExtraInformation;
                _connectionsToAttempt.Add(remoteEndPoint);
            }
        }
Example #10
0
 public ExampleService(ILogger <ExampleService> logger, IOptions <ExampleSettings> exampleSettings)
 {
     this.logger          = logger;
     this.exampleSettings = exampleSettings.Value;
 }
 public void ShowConfiguration()
 {
     ExampleSettings.Load();
     ExampleSettings.CurrentSetting.ToForm();
     ExampleSettings.CurrentSetting.Save();
 }