mcstatus

package module
v0.0.0-...-eb638a3 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2024 License: MIT Imports: 13 Imported by: 0

README

go-mcstatus

The official Go library for interacting with the mcstatus.io API.

Getting Started

Firstly, you will need to install the library. Open your terminal/command line in your workspace and run the following command.

go get github.com/mcstatus-io/go-mcstatus

Usage

Java Status
package main

import (
    "fmt"

    "github.com/mcstatus-io/go-mcstatus"
)

func main() {
    resp, err := mcstatus.GetJavaStatus("demo.mcstatus.io", 25565)

    if err != nil {
        panic(err)
    }

    fmt.Printf("%+v\n", resp)
}
Bedrock Status
package main

import (
    "fmt"
    
    "github.com/mcstatus-io/go-mcstatus"
)

func main() {
    resp, err := mcstatus.GetBedrockStatus("demo.mcstatus.io", 19132)

    if err != nil {
        panic(err)
    }

    fmt.Printf("%+v\n", resp)
}
Java Widget
package main

import "github.com/mcstatus-io/go-mcstatus"

func main() {
    img, err := mcstatus.GetJavaWidget("demo.mcstatus.io", 25565)

    if err != nil {
        panic(err)
    }

    // ...
}
Icon
package main

import "github.com/mcstatus-io/go-mcstatus"

func main() {
    img, err := mcstatus.GetIcon("demo.mcstatus.io", 25565)

    if err != nil {
        panic(err)
    }

    // ...
}
Default Icon
package main

import "github.com/mcstatus-io/go-mcstatus"

func main() {
    img := mcstatus.GetDefaultIcon()

    // ...
}

License

MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDefaultIcon

func GetDefaultIcon() image.Image

func GetIcon

func GetIcon(host string, port uint16, options ...IconOptions) (image.Image, error)

func GetJavaWidget

func GetJavaWidget(host string, port uint16, options ...JavaWidgetOptions) (image.Image, error)

func SendVote

func SendVote(host string, port uint16, options ...SendVoteOptions) error

Types

type BedrockStatusOptions

type BedrockStatusOptions struct {
	Timeout float64
}

type BedrockStatusResponse

type BedrockStatusResponse struct {
	Online      bool      `json:"online"`
	Host        string    `json:"host"`
	Port        uint16    `json:"port"`
	IPAddress   string    `json:"ip_address"`
	EULABlocked bool      `json:"eula_blocked"`
	RetrievedAt time.Time `json:"retrieved_at"`
	ExpiresAt   time.Time `json:"expires_at"`
	Version     *struct {
		Name     string `json:"name"`
		Protocol int    `json:"protocol"`
	} `json:"version,omitempty"`
	Players *struct {
		Online int `json:"online"`
		Max    int `json:"max"`
	} `json:"players,omitempty"`
	MOTD struct {
		Raw   string `json:"raw"`
		Clean string `json:"clean"`
		HTML  string `json:"html"`
	} `json:"motd,omitempty"`
	Gamemode string `json:"gamemode,omitempty"`
	ServerID string `json:"server_id,omitempty"`
	Edition  string `json:"edition,omitempty"`
}

func GetBedrockStatus

func GetBedrockStatus(host string, port uint16, options ...BedrockStatusOptions) (*BedrockStatusResponse, error)

type IconOptions

type IconOptions struct {
	Timeout float64
}

type JavaStatusOptions

type JavaStatusOptions struct {
	Query   bool
	Timeout float64
}

type JavaStatusResponse

type JavaStatusResponse struct {
	Online      bool      `json:"online"`
	Host        string    `json:"host"`
	Port        uint16    `json:"port"`
	IPAddress   string    `json:"ip_address"`
	EULABlocked bool      `json:"eula_blocked"`
	RetrievedAt time.Time `json:"retrieved_at"`
	ExpiresAt   time.Time `json:"expires_at"`
	Version     *struct {
		NameRaw   string `json:"name_raw"`
		NameClean string `json:"name_clean"`
		NameHTML  string `json:"name_html"`
		Protocol  int    `json:"protocol"`
	} `json:"version,omitempty"`
	Players *struct {
		Online int `json:"online"`
		Max    int `json:"max"`
		List   []struct {
			UUID      string `json:"uuid"`
			NameRaw   string `json:"name_raw"`
			NameClean string `json:"name_clean"`
			NameHTML  string `json:"name_html"`
		} `json:"list"`
	} `json:"players,omitempty"`
	MOTD struct {
		Raw   string `json:"raw"`
		Clean string `json:"clean"`
		HTML  string `json:"html"`
	} `json:"motd,omitempty"`
	Icon image.Image `json:"icon,omitempty"`
	Mods []struct {
		Name    string `json:"name"`
		Version string `json:"version"`
	} `json:"mods,omitempty"`
	Software *string `json:"software"`
	Plugins  []struct {
		Name    string `json:"name"`
		Version string `json:"version"`
	} `json:"plugins,omitempty"`
	SRVRecord *struct {
		Host string `json:"host"`
		Port uint16 `json:"port"`
	} `json:"srv_record,omitempty"`
}

func GetJavaStatus

func GetJavaStatus(host string, port uint16, options ...JavaStatusOptions) (*JavaStatusResponse, error)

type JavaWidgetOptions

type JavaWidgetOptions struct {
	Dark    bool
	Rounded bool
	Timeout float64
}

type SendVoteOptions

type SendVoteOptions struct {
	Version     uint
	Host        string
	Port        uint16
	Timeout     time.Duration
	Username    string
	ServiceName string
	Timestamp   time.Time

	// Votifier 1
	PublicKey string
	IP        string

	// Votifier 2
	Token string
	UUID  string
}

Jump to

Keyboard shortcuts

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