Class containing most of the exported Lua functions. It as also a wrapper to the Main API.
Inheritance: Schumix.Irc.Commands.CommandInfo
Esempio n. 1
0
        /// <summary>
        /// Creates a new instance of <c>LuaEngine</c>
        /// </summary>
        /// <param name="scriptsPath">The directory where the Lua scripts are located.</param>
        public LuaEngine(string scriptsPath)
        {
            Log.Notice("LuaEngine", sLConsole.GetString("Initializing Lua engine."));
            _lua = new Lua();
            _luaFunctions = new Dictionary<string, LuaFunctionDescriptor>();
            _scriptPath = scriptsPath;
            _functions = new LuaFunctions(ref _lua);
            LuaHelper.RegisterLuaFunctions(_lua, ref _luaFunctions, _functions);
            LoadScripts();

            _watcher = new FileSystemWatcher(_scriptPath)
            {
                NotifyFilter = NotifyFilters.FileName | NotifyFilters.Attributes | NotifyFilters.LastAccess |
                NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size,
                EnableRaisingEvents = true
            };

            _watcher.Created += (s, e) => LoadScripts(true);
            _watcher.Changed += (s, e) => LoadScripts(true);
            _watcher.Deleted += (s, e) => LoadScripts(true);
            _watcher.Renamed += (s, e) => LoadScripts(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a new instance of <c>LuaEngine</c>
        /// </summary>
        /// <param name="scriptsPath">The directory where the Lua scripts are located.</param>
        public LuaEngine(string scriptsPath)
        {
            Log.Notice("LuaEngine", sLConsole.GetString("Initializing Lua engine."));
            _lua          = new Lua();
            _luaFunctions = new Dictionary <string, LuaFunctionDescriptor>();
            _scriptPath   = scriptsPath;
            _functions    = new LuaFunctions(ref _lua);
            LuaHelper.RegisterLuaFunctions(_lua, ref _luaFunctions, _functions);
            LoadScripts();

            _watcher = new FileSystemWatcher(_scriptPath)
            {
                NotifyFilter = NotifyFilters.FileName | NotifyFilters.Attributes | NotifyFilters.LastAccess |
                               NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size,
                EnableRaisingEvents = true
            };

            _watcher.Created += (s, e) => LoadScripts(true);
            _watcher.Changed += (s, e) => LoadScripts(true);
            _watcher.Deleted += (s, e) => LoadScripts(true);
            _watcher.Renamed += (s, e) => LoadScripts(true);
        }