Compare commits
No commits in common. "6c297d0b8c6b31c088f65f7199fb11ecf89bf3bb" and "9dace3748bed34d2d45a602dd8ccb0c1c75f9ef9" have entirely different histories.
6c297d0b8c
...
9dace3748b
13
lib/java.js
13
lib/java.js
|
@ -8,15 +8,16 @@
|
||||||
import net from 'net';
|
import net from 'net';
|
||||||
import varint from './varint.js';
|
import varint from './varint.js';
|
||||||
|
|
||||||
|
const PROTOCOL_VERSION = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ping a Minecraft Java server.
|
* Ping a Minecraft Java server.
|
||||||
* @param {string} host The host of the Java server.
|
* @param {string} host The host of the Java server.
|
||||||
* @param {number} [port=25565] The port of the Java server.
|
* @param {number} [port=25565] The port of the Java server.
|
||||||
* @param {function} cb The callback function to handle the ping response.
|
* @param {function} cb The callback function to handle the ping response.
|
||||||
* @param {number} [timeout=5000] The timeout duration in milliseconds.
|
* @param {number} [timeout=5000] The timeout duration in milliseconds.
|
||||||
* @param {number} [protocolVersion=-1] The protocol version of the Java client.
|
|
||||||
*/
|
*/
|
||||||
function ping(host, port = 25565, cb, timeout = 5000, protocolVersion = -1) {
|
function ping(host, port = 25565, cb, timeout = 5000) {
|
||||||
const socket = net.createConnection(({ host, port }));
|
const socket = net.createConnection(({ host, port }));
|
||||||
|
|
||||||
// Set manual timeout interval.
|
// Set manual timeout interval.
|
||||||
|
@ -55,7 +56,7 @@ function ping(host, port = 25565, cb, timeout = 5000, protocolVersion = -1) {
|
||||||
socket.on('connect', () => {
|
socket.on('connect', () => {
|
||||||
const handshake = varint.concat([
|
const handshake = varint.concat([
|
||||||
varint.encodeInt(0),
|
varint.encodeInt(0),
|
||||||
varint.encodeInt(protocolVersion),
|
varint.encodeInt(PROTOCOL_VERSION),
|
||||||
varint.encodeInt(host.length),
|
varint.encodeInt(host.length),
|
||||||
varint.encodeString(host),
|
varint.encodeString(host),
|
||||||
varint.encodeUShort(port),
|
varint.encodeUShort(port),
|
||||||
|
@ -117,7 +118,7 @@ function ping(host, port = 25565, cb, timeout = 5000, protocolVersion = -1) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asynchronously ping Minecraft Java server.
|
* Asynchronously ping Minecraft Java server.
|
||||||
* The optional `options` argument can be an object with a `port` (default is `25565`) or/and `timeout` (default is `5000`) or/and `protocolVersion` (default is `-1`) property.
|
* The optional `options` argument can be an object with a `ping` (default is `25565`) or/and `timeout` (default is `5000`) property.
|
||||||
* @param {string} host The Java server address.
|
* @param {string} host The Java server address.
|
||||||
* @param {import('../types/index.js').PingOptions} options The configuration for pinging Minecraft Java server.
|
* @param {import('../types/index.js').PingOptions} options The configuration for pinging Minecraft Java server.
|
||||||
* @returns {Promise<import('../types/index.js').JavaPingResponse>}
|
* @returns {Promise<import('../types/index.js').JavaPingResponse>}
|
||||||
|
@ -125,11 +126,11 @@ function ping(host, port = 25565, cb, timeout = 5000, protocolVersion = -1) {
|
||||||
export function pingJava(host, options = {}) {
|
export function pingJava(host, options = {}) {
|
||||||
if (!host) throw new Error('Host argument is not provided');
|
if (!host) throw new Error('Host argument is not provided');
|
||||||
|
|
||||||
const { port = 25565, timeout = 5000, protocolVersion = -1 } = options;
|
const { port = 25565, timeout = 5000 } = options;
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
ping(host, port, (res, err) => {
|
ping(host, port, (res, err) => {
|
||||||
err ? reject(err) : resolve(res);
|
err ? reject(err) : resolve(res);
|
||||||
}, timeout, protocolVersion);
|
}, timeout);
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@minescope/mineping",
|
"name": "@minescope/mineping",
|
||||||
"version": "1.2.0",
|
"version": "1.1.1",
|
||||||
"description": "Ping both Minecraft Bedrock and Java servers.",
|
"description": "Ping both Minecraft Bedrock and Java servers.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"types": "types/index.d.ts",
|
"types": "types/index.d.ts",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @param port The server port.
|
* @param port The server port.
|
||||||
* @param timeout The read/write socket timeout.
|
* @param timeout The read/write socket timeout.
|
||||||
*/
|
*/
|
||||||
export type BedrockPingOptions = {
|
export type PingOptions = {
|
||||||
port: number,
|
port: number,
|
||||||
timeout: number;
|
timeout: number;
|
||||||
};
|
};
|
||||||
|
@ -45,5 +45,5 @@ export type BedrockPingResponse = {
|
||||||
* ```
|
* ```
|
||||||
* @see [source](https://github.com/minescope/mineping/blob/915edbec9c9ad811459458600af3531ec0836911/lib/bedrock.js#L204)
|
* @see [source](https://github.com/minescope/mineping/blob/915edbec9c9ad811459458600af3531ec0836911/lib/bedrock.js#L204)
|
||||||
*/
|
*/
|
||||||
export function pingBedrock(host: string, options?: BedrockPingOptions): Promise<BedrockPingResponse>;
|
export function pingBedrock(host: string, options?: PingOptions): Promise<BedrockPingResponse>;
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,4 @@
|
||||||
/**
|
import { PingOptions } from "./bedrock";
|
||||||
* @param port The server port.
|
|
||||||
* @param timeout The read/write socket timeout.
|
|
||||||
* @param protocolVersion The protocol version.
|
|
||||||
*/
|
|
||||||
export type JavaPingOptions = {
|
|
||||||
port: number,
|
|
||||||
timeout: number,
|
|
||||||
protocolVersion: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JSON format chat component used for description field.
|
* JSON format chat component used for description field.
|
||||||
|
@ -76,5 +67,5 @@ export type JavaPingResponse = {
|
||||||
* ```
|
* ```
|
||||||
* @see [source](https://github.com/minescope/mineping/blob/915edbec9c9ad811459458600af3531ec0836911/lib/java.js#L117)
|
* @see [source](https://github.com/minescope/mineping/blob/915edbec9c9ad811459458600af3531ec0836911/lib/java.js#L117)
|
||||||
*/
|
*/
|
||||||
export function pingJava(host: string, options?: JavaPingOptions): Promise<JavaPingResponse>;
|
export function pingJava(host: string, options?: PingOptions): Promise<JavaPingResponse>;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue