multiserver/plugin.go
2021-01-09 11:26:30 +00:00

42 lines
735 B
Go

package multiserver
import (
"io/ioutil"
"log"
)
type plugin struct {
Name string
Path string
}
var plugins []plugin
func LoadPlugins() error {
files, err := ioutil.ReadDir("plugins")
if err != nil {
return err
}
for _, file := range files {
if file.IsDir() {
subfiles, err := ioutil.ReadDir("plugins/" + file.Name())
if err != nil {
return err
}
for _, subfile := range subfiles {
if subfile.Name() == "init.lua" {
log.Print("Loading plugin " + file.Name())
plugins = append(plugins, plugin{Name: file.Name(), Path: "plugins/" + file.Name()})
if err = l.DoFile("plugins/" + file.Name() + "/" + subfile.Name()); err != nil {
return err
}
}
}
}
}
return nil
}