Example #1
0
        internal void Check(Slack slack)
        {
            try
            {
                var whosin = Singleton <NetworkData> .Instance.CertainHosts().Select(h => h.Owner).Distinct();

                foreach (var item in Notes.ToArray())
                {
                    var who  = slack.GetUser(item.Who);
                    var name = "@" + who.Name;
                    if (whosin.Contains(name, System.StringComparer.CurrentCultureIgnoreCase))
                    {
                        var im = slack.Ims.FirstOrDefault(i => i.Name == who.Id);
                        if (im == null)
                        {
                            im = who.OpenIm();
                        }
                        slack.SendMessage(im.Id, "Reminder: " + item.Text);
                        Notes.Remove(item);
                    }
                }
                PersistentSingleton <Reminders> .Dirty();
            }
            catch (Exception c)
            {
                Console.WriteLine(c);
            }
        }
	protected void Awake () {
		if (instance == null) {
			DontDestroyOnLoad(gameObject);
			instance = this;

		} else if (instance != this) {
			Destroy(gameObject);
		}
	}
Example #3
0
        public void Enable()
        {
            PersistentSingleton <Settings> .TouchInstance();

            PersistentSingleton <UISingleton> .TouchInstance();

            UISingleton.RegMenuButton();
            ApplyPatches();
        }
Example #4
0
        public void Start()
        {
            PersistentSingleton <Settings> .TouchInstance();

            BSMLSettings.instance.AddSettingsMenu("SnapTurn", "SnapTurn.Views.SnapTurnSettings.bsml", Settings.instance);
            GameplaySetup.instance.AddTab("SnapTurn", "SnapTurn.Views.SnapTurnModifiers.bsml", Settings.instance);

            SceneManager.sceneLoaded += OnSceneLoaded;

            StartTurnManager();
        }
Example #5
0
 protected void Awake()
 {
     if (instance == null)
     {
         DontDestroyOnLoad(gameObject);
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
        public void Start()
        {
            PersistentSingleton <Settings> .TouchInstance();

            PersistentSingleton <UISingleton> .TouchInstance();

            UISingleton.RegMenuButton();

            SceneManager.sceneLoaded += OnSceneLoaded;
            SetupDirectories();
            InitBackground();
            ApplyPatches();
        }
Example #7
0
        public void Start()
        {
            PersistentSingleton <Settings> .TouchInstance();

            PersistentSingleton <UISingleton> .TouchInstance();

            UISingleton.RegMenuButton();

            BSMLSettings.instance.AddSettingsMenu("ARCompanion", "ARCompanion.Views.SettingsMenu.bsml", Settings.instance);

            SceneManager.sceneLoaded += OnSceneLoaded;
            InitBackground();
        }
Example #8
0
 private void Awake()
 {
     if (instance != null)
     {
         Debug.Log("Destroy " + Tag + " " + gameObject.name);
         Destroy(gameObject);
     }
     else
     {
         Debug.Log("Assign this " + Tag + " instance  with name " + gameObject.name);
         instance = this;
         DontDestroyOnLoad(gameObject);
     }
 }
Example #9
0
        public void OnApplicationStart()
        {
            PersistentSingleton <ConfigOptions> .TouchInstance();

            var harmonyInstance = HarmonyInstance.Create("com.kylon99.beatsaber.alternativeplay");

            harmonyInstance.PatchAll(Assembly.GetExecutingAssembly());

            if (alternativePlayUI == null)
            {
                alternativePlayUI = new GameObject(nameof(AlternativePlayUI))
                                    .AddComponent <AlternativePlayUI>();
            }

            BSEvents.gameSceneLoaded += this.OnGameSceneLoaded;
        }
Example #10
0
        public void OnStart()
        {
            PersistentSingleton <CustomSabersMod> .TouchInstance();

            PersistentSingleton <ConfigOptions> .TouchInstance();

            PersistentSingleton <CustomMenuPointers> .TouchInstance();

            if (this.customMenuPointersUI == null)
            {
                this.customMenuPointersUI = new GameObject(nameof(CustomMenuPointersUI)).AddComponent <CustomMenuPointersUI>();
            }

            BSEvents.menuSceneLoadedFresh += this.OnMenuSceneLoadedFresh;
            BSEvents.menuSceneLoaded      += this.OnMenuSceneLoaded;
            BSEvents.gameSceneLoaded      += this.OnGameSceneLoaded;
        }
        public void Start()
        {
            PersistentSingleton <Configuration> .TouchInstance();

            Configuration.instance.LoadConfiguration();

            var harmonyInstance = new Harmony("com.kylon99.beatsaber.alternativeplay");

            harmonyInstance.PatchAll(Assembly.GetExecutingAssembly());

            PersistentSingleton <BehaviorCatalog> .TouchInstance();

            BehaviorCatalog.instance.LoadStartBehaviors();

            BSEvents.gameSceneLoaded          += this.OnGameSceneLoaded;
            BSEvents.menuSceneLoaded          += this.OnMenuSceneLoaded;
            BSEvents.lateMenuSceneLoadedFresh += this.LateMenuSceneLoadedFresh;
        }
Example #12
0
        public void OnStart()
        {
            PersistentSingleton <InputManager> .TouchInstance();

            PersistentSingleton <TrackedDeviceManager> .TouchInstance();

            if (this.stageDressingUI == null)
            {
                this.stageDressingUI = new GameObject(nameof(StageDressingUI)).AddComponent <StageDressingUI>();
            }

            PersistentSingleton <StageManager> .TouchInstance();

            StageManager.instance.LoadConfiguration();

            TrackedDeviceManager.instance.StageDressing = this;
            StageManager.instance.LoadPrefabs();

            BSEvents.OnLoad();
            BSEvents.menuSceneLoaded          += this.MenuSceneLoaded;
            BSEvents.lateMenuSceneLoadedFresh += this.LateMenuSceneLoadedFresh;
            BSEvents.gameSceneLoaded          += this.GameSceneLoaded;
        }
Example #13
0
        public bool IsValidTool()
        {
            var fing = Process.GetProcessesByName("fing");

            if (fing.Length > 0)
            {
                fing.First().Close();
            }
            try
            {
                var settings = PersistentSingleton <Settings> .Instance;
                if (string.IsNullOrEmpty(settings.FingXml))
                {
                    settings.FingXml = "fing.xml";
                }
                if (string.IsNullOrEmpty(settings.FingArgs))
                {
                    settings.FingArgs = /*"--session data.dat " + */ "-o table,xml,fing.xml -o table,csv,console";
                }
                var psi = new ProcessStartInfo("fing", settings.FingArgs)
                {
                    UseShellExecute = true,
                    CreateNoWindow  = true,
                    WindowStyle     = ProcessWindowStyle.Hidden,
                };
                Process.Start(psi);
                if (string.IsNullOrEmpty(settings.FingArgs))
                {
                    PersistentSingleton <Settings> .Dirty();
                }
                return(true);
            }
            catch (System.ComponentModel.Win32Exception)
            {
            }
            return(false);
        }
Example #14
0
        public void OnApplicationStart()
        {
            PersistentSingleton <ConfigOptions> .TouchInstance();

            beatSpearModifiersUI = new GameObject(nameof(BeatSpearModifiersUI)).AddComponent <BeatSpearModifiersUI>();
        }
Example #15
0
        static void Main(string[] args)
        {
            //AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;
            AppDomain.CurrentDomain.UnhandledException += AppDomain_CurrentDomain_UnhandledException;
            string confdir;

            Directory.CreateDirectory(confdir        = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Fingbot"));
            Environment.CurrentDirectory             = confdir;
            PersistentSingleton <Settings> .SavePath = "config.json";
#if REMINDERS
            PersistentSingleton <Reminders> .SavePath = "reminders.json";
#endif
            var settings = PersistentSingleton <Settings> .Instance;
            Singleton <NetworkData> .Instance.Refresh();

            //var missing = Singleton<NetworkData>.Instance.PickIncompleteHost();
            Singleton <NetworkData> .Instance.Save();

            var Slacks = settings.Tokens.Select(token => new Slack(token)).ToArray();
            if (Slacks.Length == 0)
            {
                Slack slack  = new Slack();
                bool  Authed = false;
                do
                {
                    if (String.IsNullOrEmpty(settings.Token))
                    {
                        Console.WriteLine("Please obtain a Token, and paste it below:");
                        settings.Token = Console.ReadLine();
                        PersistentSingleton <Settings> .Save();
                    }
                    slack  = new Slack(settings.Token);
                    Authed = slack.Init();
                    if (!Authed)
                    {
                        settings.Token = "";
                    }
                } while (Authed == false);
                Slacks = new Slack[] { slack };
            }
            foreach (var slack in Slacks)
            {
                slack.OnEvent += slack_OnEvent;
                Console.WriteLine("Connecting...");
                slack.Connect();
                Running = true;

                //var idlefunc = new Thread(new ThreadStart(IdleFunc(slack)));
                //idlefunc.Start();
            }
            int attempts = 0;
            while (Running)
            {
                foreach (var slack in Slacks)
                {
                    if (!slack.Connected)
                    {
                        try
                        {
                            Console.WriteLine("Reconnecting...");
                            slack.Connect();
                            attempts = 0;
                        }
                        catch (WebException c)
                        {
                            Console.WriteLine(c);
                            Thread.Sleep(new TimeSpan(0, attempts++, 1)); // Longer wait, because something's wrong.
                        }
                    }
                    Thread.Sleep(1000);
                }
            }
        }
Example #16
0
        static void slack_OnEvent(object sender, SlackEventArgs e)
        {
            try
            {
                var instance = sender as Slack;
                var network  = Singleton <NetworkData> .Instance;
                if (!Idlefuncs.ContainsKey(instance) || !Idlefuncs[instance].IsAlive)
                {
                    Idlefuncs[instance] = new Thread(new ThreadStart(IdleFunc(instance)));
                    Idlefuncs[instance].Start();
                }
                //LogglyInst.Log(e.Data);
                if (e.Data.Type == "hello")
                {
                    Console.WriteLine(string.Format("Connected to {0}.", instance.TeamInfo.Name));
                    var settings = PersistentSingleton <Settings> .Instance;

                    if (!settings.HasDoneIntroSpiel)
                    {
                        var channel = instance.PrimaryChannel.IsMember ? instance.PrimaryChannel : instance.JoinedChannels.FirstOrDefault();
                        HelpCommand.Introduce(instance, channel);
                        PersistentSingleton <Settings> .Save();
                    }
                }
                if (e.Data is Message)
                {
                    network.Refresh();
                    var message = e.Data as Message;
                    if (message.Hidden)
                    {
                        return;
                    }
                    var substMessage = SubstituteMarkup(message.Text, sender as Slack);
                    Console.WriteLine(SubstituteMarkup(message.ToString(), sender as Slack));

                    if (message.User == instance.Self.Id)
                    {
                        return;
                    }

                    bool targeted = substMessage.StartsWith(string.Concat("@", instance.Self.Name), StringComparison.InvariantCultureIgnoreCase);
                    if (message.Channel[0] == 'D')
                    {
                        targeted = true;
                    }

                    foreach (var cmd in Commands)
                    {
                        bool fired = cmd.Run(substMessage, message, targeted, instance);
                        if (fired)
                        {
                            return;
                        }
                    }

                    // Leave this one here for now

                    /* ****
                    * Restart.
                    * ****/
                    var pmatch = Regex.Match(
                        SubstituteMarkup(message.Text, sender as Slack),
                        @"Re(start|boot)",
                        RegexOptions.IgnoreCase);
                    if (targeted && pmatch.Success)
                    {
                        instance.SendMessage(message.Channel, "Rebooting!");
                        Running = false;
                    }
                }
            }
            catch (Exception c)
            {
                Console.WriteLine("!An Error has been caught!\n{0}", c);
            }
        }