# statsmc.js

> Minecraft StatsMC

Latest version **0.1.1** (published 2022-05-21) · ISC license · 0 weekly downloads

## Install

```sh
npm install statsmc.js
pnpm add statsmc.js
yarn add statsmc.js
bun add statsmc.js
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.1 |
| Published | 2022-05-21 |
| First published | 2022-05-21 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 5.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | strelok.js |
| Maintainers | strelok.js |
| Keywords | minecraft, stats, StatsMC |

## Links

- npm: https://www.npmjs.com/package/statsmc.js
- npm.io page: https://npm.io/package/statsmc.js

## Dependencies (1)

- [node-fetch](https://npm.io/package/node-fetch.md) ^3.2.4

## Recent versions

- 0.1.1 (latest) — 2022-05-21
- 0.1.0 — 2022-05-21
- 0.0.5 — 2022-05-21
- 0.0.3 — 2022-05-21
- 0.0.2 — 2022-05-21
- 0.0.1 — 2022-05-21

## README

# StatsMC
This is a simple library that can help get data from minecraft servers that support the [StatsMC](https://www.curseforge.com/minecraft/bukkit-plugins/statsmc) plugin (+[OnlineMC](https://www.curseforge.com/minecraft/bukkit-plugins/onlinemc)).

## Usage 
Connect the library as 
```
const StatsMCLib = require('statsmc.js');
const StatsMC = new StatsMC("ip addres");
```
If you intend to use the library for your servers, we can use `await StatsMC.easyUse()` which will simplify the use of the library in some moments.
The main functions of the library are listed below
```
await StatsMC.easyUse(); //Caches data about blocks/entities
await StatsMC.getPlayersOnline(); //Returns an array with the nicknames of the players on the server. (Only servers with the Online MC plugin)
await StatsMC.getStatisticList(); //Get a list of possible statistics (array). Then just <statistics>
await StatsMC.getMaterialsList(); //Get a list of possible materials (array). Then just <material>
await StatsMC.getEntitiesList(); //Get a list of possible entities (array). Then just <entitie>

await StatsMC.get(<statistics>, *<material>/or/<entitie>*); //Get statistics
```
**Example:**
The main command is `.get()`. It is she who returns any information.
The first argument is always the name of the statistics. The list of possible names can be seen in `await StatsMC.getStatisticList();`. 
Thus, the command may look like:
```
await StatsMC.get("DEATHS");
```
This will return an object with death statistics. For example:
```
{
	"GM_Strelok":23,
	"_jeb":12,
	"Notch":4,
}
```
Other statistics need some kind of target.
The target is set by the second argument. For example:
```
await StatsMC.get("MINE_BLOCK", "STONE");
```
For such a request, the second argument must be either `<material>` or `<entitie>`.
Lists can be obtained as `await StatsMC.getEntitiesList();` and `await StatsMC.getMaterialsList();`

*WARNING* 
If you don't use easeus the second argument will be an object with a parameter that contains the type and value
So `"STONE"` will be `{type: "block_type",value: "STONE"}`
and `"CREEPER"` will be `{type: "entity_type",value: "CREEPER"}`

The final query will look like:
```
await StatsMC.get("MINE_BLOCK", "STONE");
or
await StatsMC.get("MINE_BLOCK", {type: "block_type",value: "STONE"});
```
This will return an object with death statistics. For example:
```
{
	"_jeb":54,
	"GM_Strelok":12,
	"Notch":23,
}
```

---
_Source: https://npm.io/package/statsmc.js · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
