Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ahdg/minecraftstatuspinger

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ahdg/minecraftstatuspinger

The best modern library for getting the ping and status of Minecraft servers, written in TypeScript with zero dependencies.

  • 1.1.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source
big MinecraftStatusPinger logo

A modern, small, fast, performant, zero dependency TypeScript library made for pinging and getting status of Minecraft servers.


What can this be used for?

  • Getting server Latency (ping)
  • Getting server MOTD
  • Downloading server Thumbnail (favicon)
  • Viewing Server Version
  • Fetching Player Count and Playerlist

And in general, checking the status of Minecraft servers!

Getting started

Requirements

  • NodeJS or Deno (used to run JavaScript code)
  • NPM (used to install Node packages)

Installation

npm install minecraftstatuspinger

Basic Example

import mc from "minecraftstatuspinger";

let result = await mc.lookup({ host: "mc.hypixel.net" })
console.log(result);

Advanced Example


import mc from "minecraftstatuspinger";

let result = await mc.lookup({
    host: "mc.hypixel.net",
    port: 25565,
    ping: true,
    protocolVersion: 764,
    timeout: 10000,
    throwOnParseError: true,
    disableSRV: false,
    disableJSONParse: false
})

console.log(result);

Docs

emoji holding a heart, pleading to star the repository
  • .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. SRV lookup is disabled when using ports other than 25565.

      • timeout?: number default: 10000

        How long until an error is thrown if the transaction still hasn't finished. Default is 10 seconds.

      • ping?: boolean default: true

        Whether to send a payload at the end to measure the server latency. 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 (domains).

      • disableJSONParse?: boolean default: false

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

    • ServerStatus
      • latency?: number

        The time it takes to receive back a response after sending a small payload to a server, in milliseconds. Will be null if the ping option is false.

      • status?: DynamicObject

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

      • statusRaw: string

        Plaintext status response in the form of JSON. Useful when status fails to parse.

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

    It wraps the dns.setServers function, useful for looking up SRV records through different DNS servers.
    The first IP in the array will always be used first, others will be tried if the first one is unreachable.

    Accepts 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 usually the fastest for DNS queries.
    

    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, such as for mass scanning.

Changelog

View Changelog, Latest version: v1.1.5

Contact

If you have some questions, you can message me through Discord - woodendoors7

Acknowledgements

TINY Readme

To-do

  • Do SRV lookups
  • Support versions less than 1.7.
  • Support Bedrock

License

This project is licensed under the GNU General Public License v3.0.

Keywords

FAQs

Package last updated on 19 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc