Skip to content
This repository has been archived by the owner on Feb 12, 2023. It is now read-only.
/ altconfig Public archive

Go package to read alt-config format files. Port of @altmp/alt-config

License

Notifications You must be signed in to change notification settings

Timo972/altconfig

Repository files navigation

alt-config port in go

Go package for reading alt-config format config files which are used by alt:V Multiplayer.
Maybe you want to use this package along the alt:V Go module.

altMP alt-config (C++)

Deprecation notice

⚠️ alt:V has moved to toml configuration files, so this package is obsolete

Usage

# server.cfg
name: Test
port: 7788
announce: true
token: 'my token with special chars'
modules: [
    'go-module'
]
resources: [
    test
]
voice: {
    port: 7789
    ip: 127.0.0.1
    external: true
}
// main.go
package main

import (
	"fmt"
	"github.com/timo972/altconfig/schemes"
	"io/ioutil"
	"github.com/timo972/altconfig"
)

const (
	ServerConfigFile = "server.cfg"
)

func main() {
	data, err := ioutil.ReadFile(ServerConfigFile)
	if err != nil {
		// Error if file not found or not permitted to read
		panic(err)
	}

	// schemes package contains predefined alt:V Config files (server.cfg, resource.cfg, stream.cfg voice.cfg, altv.cfg)
	var config schemes.ServerConfig
	err = altconfig.Unmarshal(data, &config)
	if err != nil {
		panic(err)
	}

	// Access server.cfg name field
	fmt.Printf("Server Name: %s\n", config.Name)

	// Set server port
	config.Port = 7787
	
	data, err = altconfig.Marshal(config)
	if err != nil {
		panic(err)
    }
	
	// Save server.cfg with port changed to 7787
	err = ioutil.WriteFile(ServerConfigFile, data, 0644)
	if err != nil {
		panic(err)
    }
}

Packages

No packages published

Languages