bool cmdToggle(VPServices app, Avatar who, string data, string key)
        {
            string msg    = null;
            bool   toggle;

            if ( data != "" )
            {
                // Try to parse user given boolean; reject command on failure
                if ( !VPServices.TryParseBool(data, out toggle) )
                    return false;
            }
            else
                toggle = !who.GetSettingBool(key);

            who.SetSetting(key, toggle);
            switch (key)
            {
                case SettingGreetMe:
                    msg = toggle ? msgGreetMe : msgGreetMeNot;
                    break;

                case SettingShowGreets:
                    msg = toggle ? msgShowGreets : msgHideGreets;
                    break;
            }

            app.Notify(who.Session, msg);
            return Log.Debug(Name, "Toggled greet-me for {0} to {1}", who.Name, toggle);
        }
Beispiel #2
0
        public static int Main(string[] args)
        {
            int exit = 0;

            // Set up logger
            new ConsoleLogger();
            Console.WriteLine("### [{0}] Services is starting...", DateTime.Now);

            try
            {
                App = new VPServices();
                App.SetupSettings(args);
                App.Setup();

                while (true)
                {
                    App.UpdateLoop();
                }
            }
            catch (Exception e)
            {
                e.LogFullStackTrace();
                exit = 1;
            }
            finally
            {
                App.Dispose();
            }

            Console.WriteLine("### [{0}] Services is now exiting", DateTime.Now);
            return(exit);
        }
Beispiel #3
0
        public static int Main(string[] args)
        {
            int exit = 0;

            // Set up logger
            new ConsoleLogger();
            Console.WriteLine("### [{0}] Services is starting...", DateTime.Now);

            try
            {
                App = new VPServices();
                App.SetupSettings(args);
                App.Setup();

                while (true)
                    App.UpdateLoop();
            }
            catch (Exception e)
            {
                e.LogFullStackTrace();
                exit = 1;
            }
            finally
            {
                App.Dispose();
            }

            Console.WriteLine("### [{0}] Services is now exiting", DateTime.Now);
            return exit;
        }
        public void Init(VPServices app, Instance bot)
        {
            app.Commands.AddRange(new[] {
                new Command
                (
                    "Greetings: Show/hide", "^greet(ing)?s?$", (o,e,a) => { return cmdToggle(o,e,a, SettingShowGreets); },
                    @"Toggles or sets whether or not the bot sends you user entry/exit messages",
                    @"!greets `[true|false]`"
                ),

                new Command
                (
                    "Greetings: Greet me", "^greetme$", (o,e,a) => { return cmdToggle(o,e,a, SettingGreetMe); },
                    @"Toggles or sets whether or not the bot should announce your entry and exit to other users",
                    @"!greetme `[true|false]`"
                ),
            });

            app.AvatarEnter += (b,a) => { doGreet(b, a, true);  };
            app.AvatarLeave += (b,a) => { doGreet(b, a, false); };
        }
        void setupEvents(VPServices app)
        {
            // VP (outgoing) events
            app.AvatarEnter += onWorldEnter;
            app.AvatarLeave += onWorldLeave;
            app.Chat        += onWorldChat;
            app.Bot.Console += onWorldConsole;

            // IRC (incoming) events
            irc.OnChannelMessage += onIRCMessage;
            irc.OnChannelAction  += onIRCAction;
            irc.OnJoin           += onIRCJoin;
            irc.OnPart           += onIRCPart;
            irc.OnQuit           += onIRCQuit;
            irc.OnKick           += onIRCKick;
            irc.OnBan            += onIRCBan;
            irc.OnNickChange     += onIRCNick;

            // IRC error events
            irc.OnConnectionError += onIRCConnError;
        }
Beispiel #6
0
        public static void Main(string[] args)
        {
            // Set up logger
            new ConsoleLogger();

            init:
            try
            {
                App = new VPServices();
                App.SetupSettings(args);
                App.Setup();

                while (true)
                    App.UpdateLoop();
            }
            catch (Exception e)
            {
                e.LogFullStackTrace();
                App.Dispose();
                goto init;
            }
        }
 public void Migrate(VPServices app, int target)
 {
 }