altconfig

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2022 License: MIT Imports: 1 Imported by: 0

README

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++)

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)
    }
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Marshal

func Marshal(v interface{}) ([]byte, error)

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL