-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPlugin.lua
More file actions
38 lines (31 loc) · 800 Bytes
/
Plugin.lua
File metadata and controls
38 lines (31 loc) · 800 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
local PluginManager = {}
PluginManager.__index = PluginManager
function PluginManager.new()
local self = setmetatable({}, PluginManager)
self.plugins = {}
return self
end
function PluginManager:loadPlugin(pluginPath)
local env = {
print = print,
pairs = pairs,
ipairs = ipairs,
-- TODO: Add more functions
}
setfenv(plugin, env)
local success, result = pcall(plugin)
if not success then
print("Error executing plugin: " .. result)
return false
end
table.insert(self.plugins, result)
return true
end
function PluginManager:executePlugins()
for _, plugin in ipairs(self.plugins) do
if type(plugin.run) == "function" then
plugin.run()
end
end
end
return PluginManager