package minecraft import ( "encoding/json" "github.com/yuin/gopher-lua" "meow.tf/residentsleeper/events" "os" "path" ) var ( ops = make([]*minecraftOp, 0) ) func init() { events.On(events.Init, loadOps) events.On(events.Op, oppedPlayer) events.On(events.Deop, deoppedPlayer) } type minecraftOp struct { UUID string `json:"uuid"` Name string `json:"name"` Level int `json:"level"` BypassesPlayerLimit bool `json:"bypassesPlayerLimit"` } func loadOps(args ...interface{}) { opPath := path.Join(BasePath, "ops.json") f, err := os.Open(opPath) if err != nil { return } defer f.Close() ops = make([]*minecraftOp, 0) if err = json.NewDecoder(f).Decode(&ops); err != nil { return } } func oppedPlayer(args ...interface{}) { loadOps() } func deoppedPlayer(args ...interface{}) { loadOps() } func IsOp(name string) bool { for _, op := range ops { if op.Name == name { return true } } return false } func isOpFunc(L *lua.LState) int { name := L.CheckString(1) L.Push(lua.LBool(IsOp(name))) return 1 }