1.1.5 • Published 1 month ago

minestat-es v1.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

minestat-es

Package Version Code Coverage

features

  • Written in TypeScript
  • Less than 5kB of code
  • No runtime dependencies
  • Supports ESM and CommonJS
  • Comprehensive unit tests

requirements

  • Node 16+

usage

by address/port

To query a Minecraft server using an IP/hostname and a port, use:

fetchServerInfo({
  address: '1.2.3.4',
  port: 25565,
  timeout: 1000
});

by hostname

To perform an SRV record lookup and query a Minecraft server using only a hostname, use:

fetchServerInfo({
  hostname: 'example.com',
  timeout: 1000
});

Regardless of which way it was invoked, fetchServerInfo returns a promise which will resolve with an object containing the following properties:

KeyTypeDescription
onlinebooleanWhether the server is online or not

If the server is offline, the object will also contain the properties:

KeyTypeDescription
errorErrorA communications or validation error, if one occurred

If the server is online, the object will also contain the following properties:

KeyTypeDescription
versionstringThe server's version string
motdstringThe server's Message of the Day
playersnumberThe number of players on the server
maxPlayersnumberThe maximum number of players the server supports

fetchServerInfo rejects if an error occurs during SRV record resolution.

example

import { fetchServerInfo } from 'minestat-es';

(async () => {
  try {
    // query by hostname (SRV lookup)
    const { online, error, players } = await fetchServerInfo({
      hostname: 'mc.example.com'
    });

    // OR

    // query by address/port
    const { online, error, players } = await fetchServerInfo({
      address: 'example.com', // could also be an IP address
      port: 25565
    });

    // interpret the results
    console.log(`Server is ${online ? 'Online' : 'Offline'}`);
    if (online) {
      console.log(`There are ${players} player(s) online.`);
    } else if (error) {
      // either the SRV record failed to resolve, a socket error occurred,
      // or the response from the server was invalid
      console.error(error);
    }
  } catch (error) {
    // an unexpected error occurred
    console.error(error);
  }
})();
1.1.5

1 month ago

1.1.4

3 months ago

1.1.3

9 months ago

1.1.2

10 months ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.4.2

1 year ago

0.3.0

2 years ago

0.3.2

1 year ago

0.3.1

2 years ago

0.3.3

1 year ago

0.2.0

2 years ago

0.1.0

2 years ago