Skip to content
This repository has been archived by the owner on Mar 20, 2023. It is now read-only.

Go wrapper for querying Minecraft Java Edition servers.

License

Notifications You must be signed in to change notification settings

Cryptkeeper/go-minecraftping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

go-minecraftping Go Report Card GoDoc

A wrapper for querying Minecraft Java Edition servers using the vanilla Server List Ping protocol.

Usage

Installation

Install using go get github.com/Cryptkeeper/go-minecraftping

Example Usage

package main

import (
	"fmt"
	"github.com/Cryptkeeper/go-minecraftping"
	"log"
	"time"
)

func main() {
	var protocolVersion = 575 // Minecraft Java Edition 1.15.1
	resp, err := minecraftping.Ping("myip", 25565, protocolVersion, time.Second * 5)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%d/%d players are online.", resp.Players.Online, resp.Players.Max)
}

(The default Minecraft port, 25565, is also available as a const, minecraftping.DefaultPort.)

protocolVersion is ever changing as Minecraft updates. See protocol version numbers for a complete and updated listing. If the server compatible with the sent protocol version, the server will reply with the same protocol version in the Response object, otherwise it will send its required protocol version (keep in mind, some servers may be compatible with multiple protocol versions.)

Response

The response structure is described in minecraftping.Response

Compatibility

  1. This does not support Minecraft's legacy ping protocol for pre-Minecraft version 1.6 servers.
  2. The description field of Response is provided as a json.RawMessage object. This is because the field's schema follows the Chat schema (a Minecraft specific schema) that I'm not willing to support at this functionality level.
  3. This does not support the Ping or Pong behavior of the Server List Ping protocol. If you wish to determine the latency of the connection do you should do so manually.

About

Go wrapper for querying Minecraft Java Edition servers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages