package main import ( "fmt" "log/slog" "os" "github.com/df-mc/dragonfly/server" "github.com/df-mc/dragonfly/server/player/chat" "github.com/df-mc/dragonfly/server/world" "github.com/pelletier/go-toml" ) func main() { slog.SetLogLoggerLevel(slog.LevelDebug) chat.Global.Subscribe(chat.StdoutSubscriber{}) conf, err := readConfig(slog.Default()) if err != nil { panic(err) } srv := conf.New() srv.CloseOnProgramEnd() srv.Listen() for p := range srv.Accept() { if p.Name() == "XTarnaWijaya" { p.SetGameMode(world.GameModeCreative) p.Message("Kamu adalah owner!") } else { p.SetGameMode(world.GameModeSurvival) } } } func readConfig(log *slog.Logger) (server.Config, error) { c := server.DefaultConfig() var zero server.Config if _, err := os.Stat("config.toml"); os.IsNotExist(err) { data, err := toml.Marshal(c) if err != nil { return zero, fmt.Errorf("encode default config: %v", err) } if err := os.WriteFile("config.toml", data, 0644); err != nil { return zero, fmt.Errorf("create default config: %v", err) } return c.Config(log) } data, err := os.ReadFile("config.toml") if err != nil { return zero, fmt.Errorf("read config: %v", err) } if err := toml.Unmarshal(data, &c); err != nil { return zero, fmt.Errorf("decode config: %v", err) } return c.Config(log) }