# Documentation

  • .lookup(): ((options: ServerStatusOptions) => Promise<ServerStatus>)

    • options: ServerStatusOptions
      • host: string

        Either an IP, or a hostname of the server. (alias: hostname)

      • port?: number default: 25565

        Port of the server. Any port other than 25565 disables SRV lookup.

      • timeout?: number default: 10000

        Timeout of when an error is thrown after no response. Default is 10 seconds.

      • ping?: boolean default: true

        Whether to send a payload at the end to get the latency of the server. If false, the latency field will be null.

      • protocolVersion?: number default: 764

        Protocol version to send to the server to simulate different Minecraft client versions. Here, you can see the Protocol Version Numbers. The current default protocol version is for 1.20.2 (764) and will be irregularly updated to newer versions.

      • throwOnParseError?: boolean default: true

        Whether to throw an error if the status packet fails to parse the status field. The statusRaw field is always included.

      • disableSrv?: boolean default: false

        Whether to force skip SRV lookups. Useful when only pinging IP addresses and not hostnames.

      • disableJSONParse?: boolean default: false

        Whether to skip JSON parsing. Useful if you only want the raw text response. If true, the status field to be undefined.

    • ServerStatus
      • latency?: number

        The time it takes to send and receive a payload from the server. Will be null if ping option is false.

      • status?: DynamicObject

        Parsed status response from the sever. Will be null if the status fails to parse, or if disableJSONParse is true. Example of a valid Status Response.

      • statusRaw: string

        Raw status response in the form of a string. Useful when status fails to parse.

  • .setDnsServers(): ((serverArray: string[]) => Promise<boolean>)

    It wraps the dns.setServers function, ueful when you want to look up the SRV records with different DNS servers.
    The first IP in the array is always the main DNS server, others are backup servers.

    Pass in a parameter which is an array of hostnames or IP addresses of DNS servers. It will either return true, or throw an error.

    Usage:

      // For example:
      mc.setDnsServers(["9.9.9.9", "1.1.1.1", "8.8.8.8"])
      // (Quad9, Cloudflare, Google)
      // Cloudflare is the fastest for DNS queries in most of the world.

    If you never changed the DNS settings of your computer, the default DNS server will be your ISP's.
    I recommend changing your default DNS servers if you're doing thousands of lookups, for better performance.