예제 #1
0
 internal static void Load(this PluginLoader self, UnloadedPlugin uPlugin)
 {
     try
     {
         var p = new Plugin(uPlugin);
     }
     catch (Exception e)
     {
         Log.Error("Failed to load plugin {p}: {message}", uPlugin.Config.Name, e.Message);
     }
 }
예제 #2
0
        public Plugin(UnloadedPlugin p)
        {
            _script.Options.DebugPrint = Log.Information;

            var entryPoint = Path.Combine(p.Dir, p.Config.EntryFile);

            if (!File.Exists(entryPoint))
            {
                throw new PluginLoadFailException($"File {p.Config.EntryFile} not found!");
            }

            _script.DoFile(entryPoint);
            var mainFunc = _script.Globals[p.Config.EntryFunction];

            _script.Call(mainFunc);
        }